diff --git a/edit/apidoc/global.html b/edit/apidoc/global.html new file mode 100644 index 0000000000..291eeafada --- /dev/null +++ b/edit/apidoc/global.html @@ -0,0 +1,612 @@ + + + + + OpenLayers 3 API Documentation - Global + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ Meters per unit lookup table. +

+ +
+ +
+
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • proj.js, line 44
+ + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ +
+

+ grid +

+ +
+ +
+
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • tilejsonsource.js, line 32
+ + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ +
+

+ {boolean} +

+ +
+ +
+
+ + + + +

Have Proj4js.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • proj.js, line 20
+ + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ +
+

+ {number} +

+ +
+ +
+
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • dragzoominteraction.js, line 22
+ + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ +
+

+ {number} +

+ +
+ +
+
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • priorityqueue.js, line 56
+ + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ +
+

+ {string} +

+ +
+ +
+
+ + + + +

The CSS class that we'll give the DOM elements to have them unselectable.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • css.js, line 4
+ + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ +
+

+ {string} +

+ +
+ +
+
+ + + + +

The CSS class for unsupported feature.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • css.js, line 12
+ + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ + + + + + + diff --git a/edit/apidoc/index.html b/edit/apidoc/index.html new file mode 100644 index 0000000000..f9ab7b2b53 --- /dev/null +++ b/edit/apidoc/index.html @@ -0,0 +1,100 @@ + + + + + OpenLayers 3 API Documentation - Index + + + + + + + + + + + + + + + +
+ + + + + + +

+ + + + + + + + + + + + + + +
+

Finding your way around

+ +

See the class list to the right and especially take a look at ol.Map and ol.layer.Layer because those are the central objects.

+ +

In general every use of OpenLayers starts by initializing a map, then adding the required layers. Controls and interactions can be added to change the behavior of the map.

+ +

Projections

+ +

A ol.Projection defines which point on earth is represented by a pair of coordinates. +Coordinates within OpenLayers can be used in various projections where some common projections are always supported, +others can be used via Proj4js.

+ +

Maps and Layers

+ +

A map in OpenLayers is essentially a staple of layers that is viewed from the top. Layers are responsible for retieving data and displaying it.

+ +

Contributing

+ +

See CONTRIBUTING.md for instructions +on building and tesing OpenLayers. The file does also describe how to commit your changes to OpenLayers.

+
+ + + + + + +
+ + + +
+ + + + + + + diff --git a/edit/apidoc/ol.Attribution.html b/edit/apidoc/ol.Attribution.html new file mode 100644 index 0000000000..650a551b55 --- /dev/null +++ b/edit/apidoc/ol.Attribution.html @@ -0,0 +1,221 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.Attribution + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol. + + ol.Attribution +

+ +
+ +
+
+ + + + +
+

new Attribution

+ + +
+
+ + +
+

Create a new attribution to be associated with a layer source.

+ +

Example:

+ +
source: new ol.source.OSM({
+  attributions: [
+  new ol.Attribution({
+    html: 'All maps © ' +
+        '<a href="http://www.opencyclemap.org/">OpenCycleMap</a>'
+  }),
+  ol.source.OSM.DATA_ATTRIBUTION
+],
+..
+
+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.AttributionOptions + + + +

Attribution options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • attribution.js, line 25
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ + + + + + + diff --git a/edit/apidoc/ol.Collection.html b/edit/apidoc/ol.Collection.html new file mode 100644 index 0000000000..9dda01059d --- /dev/null +++ b/edit/apidoc/ol.Collection.html @@ -0,0 +1,3277 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.Collection + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol. + + ol.Collection +

+ +
+ +
+
+ + + + +
+

new Collection

+ + +
+
+ + +
+

A mutable MVC Array.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
array + + +Array + + + + + + <optional>
+ + + +
(Optional)

Array.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • collection.js, line 70
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + +

Methods

+ +
+ +
+

bindTo

+ + +
+
+ + +
+

Binds a View to a Model.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
key + + +string + + + + + + + +

Key.

target + + +ol.Object + + + + + + + +

Target.

targetKey + + +string + + + + + + <optional>
+ + + +
(Optional)

Target key.

noNotify + + +boolean + + + + + + <optional>
+ + + +
(Optional)

No notify.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 147
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

clear

+ + +
+
+ + +
+

Remove all elements from the collection.

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • collection.js, line 89
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

extend

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
arr + + +Array + + + +

Array.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • collection.js, line 100
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

This collection.

+
+ + + +
+
+ Type +
+
+ +ol.Collection + + +
+
+ + + + +
+ + + +
+

forEach

+ + +
+
+ + +
+

Iterate over each element, calling the provided callback.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
f + + +Function + + + + + + + +

The function to call for every element. This function + takes 3 arguments (the element, the index and the array). The return + value is ignored.

obj + + +Object + + + + + + <optional>
+ + + +
(Optional)

The object to be used as the value of 'this' + within f.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • collection.js, line 117
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

get

+ + +
+
+ + +
+

Gets a value.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 170
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Value.

+
+ + + +
+
+ Type +
+
+ +* + + +
+
+ + + + +
+ + + +
+

getArray

+ + +
+
+ + +
+

Get a reference to the underlying Array object. Warning: if the array +is mutated, no events will be dispatched by the collection, and the +collection's "length" property won't be in sync with the actual length +of the array.

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • collection.js, line 129
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Array.

+
+ + + +
+
+ Type +
+
+ +Array + + +
+
+ + + + +
+ + + +
+

getAt

+ + +
+
+ + +
+

Get the element at the provided index.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
index + + +number + + + +

Index.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • collection.js, line 139
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Element.

+
+ + + +
+
+ Type +
+
+ +* + + +
+
+ + + + +
+ + + +
+

getLength

+ + +
+
+ + +
+

Get the length of this collection.

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • collection.js, line 148
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Length.

+
+ + + +
+
+ Type +
+
+ +number + + +
+
+ + + + +
+ + + +
+

insertAt

+ + +
+
+ + +
+

Insert an element at the provided index.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
index + + +number + + + +

Index.

elem + + +* + + + +

Element.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • collection.js, line 158
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

notify

+ + +
+
+ + +
+

Notify all observers of a change on this property. This notifies both +objects that are bound to the object's property as well as the object +that it is bound to.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 208
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

on

+ + +
+
+ + +
+

Listen for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 240
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + +
+ + + +
+

once

+ + +
+
+ + +
+

Listen once for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 253
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + +
+ + + +
+

pop

+ + +
+
+ + +
+

Remove the last element of the collection.

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • collection.js, line 170
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Element.

+
+ + + +
+
+ Type +
+
+ +* + + +
+
+ + + + +
+ + + +
+

push

+ + +
+
+ + +
+

Insert the provided element at the end of the collection.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
elem + + +* + + + +

Element.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • collection.js, line 180
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Length.

+
+ + + +
+
+ Type +
+
+ +number + + +
+
+ + + + +
+ + + +
+

remove

+ + +
+
+ + +
+

Removes the first occurence of elem from the collection.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
elem + + +* + + + +

Element.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • collection.js, line 192
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

The removed element or undefined if elem was not found.

+
+ + + +
+
+ Type +
+
+ +* + + +
+
+ + + + +
+ + + +
+

removeAt

+ + +
+
+ + +
+

Remove the element at the provided index.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
index + + +number + + + +

Index.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • collection.js, line 209
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Value.

+
+ + + +
+
+ Type +
+
+ +* + + +
+
+ + + + +
+ + + +
+

set

+ + +
+
+ + +
+

Sets a value.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

value + + +* + + + +

Value.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 263
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setAt

+ + +
+
+ + +
+

Set the element at the provided index.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
index + + +number + + + +

Index.

elem + + +* + + + +

Element.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • collection.js, line 224
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setValues

+ + +
+
+ + +
+

Sets a collection of key-value pairs.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
values + + +Object.<string, *> + + + +

Values.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 286
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

un

+ + +
+
+ + +
+

Unlisten for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 326
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unbind

+ + +
+
+ + +
+

Removes a binding. Unbinding will set the unbound property to the current + value. The object will not be notified, as the value has not changed.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 305
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unbindAll

+ + +
+
+ + +
+

Removes all bindings.

+
+ + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 344
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unByKey

+ + +
+
+ + +
+

Removes an event listener which was added with listen() by the key returned + by on().

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
key + + +number + + + + + + + + <nullable>
+ +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 336
+ + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ + + + + + + diff --git a/edit/apidoc/ol.DeviceOrientation.html b/edit/apidoc/ol.DeviceOrientation.html new file mode 100644 index 0000000000..ff487f7336 --- /dev/null +++ b/edit/apidoc/ol.DeviceOrientation.html @@ -0,0 +1,2512 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.DeviceOrientation + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol. + + ol.DeviceOrientation +

+ +
+ +
+
+ + + + +
+

new DeviceOrientation

+ + +
+
+ + +
+

The ol.DeviceOrientation class provides access to DeviceOrientation +information and events, see the [HTML 5 DeviceOrientation Specification]( +http://dev.w3.org/geo/api/spec-source-orientation) for more details.

+ +

Many new computers, and especially mobile phones +and tablets, provide hardware support for device orientation. Web +developers targetting mobile devices will be especially interested in this +class.

+ +

Device orientation data are relative to a common starting point. For mobile +devices, the starting point is to lay your phone face up on a table with the +top of the phone pointing north. This represents the zero state. All +angles are then relative to this state. For computers, it is the same except +the screen is open at 90 degrees.

+ +

Device orientation is reported as three angles - alpha, beta, and +gamma - relative to the starting position along the three planar axes X, Y +and Z. The X axis runs from the left edge to the right edge through the +middle of the device. Similarly, the Y axis runs from the bottom to the top +of the device through the middle. The Z axis runs from the back to the front +through the middle. In the starting position, the X axis points to the +right, the Y axis points away from you and the Z axis points straight up +from the device lying flat.

+ +

The three angles representing the device orientation are relative to the +three axes. alpha indicates how much the device has been rotated around the +Z axis, which is commonly interpreted as the compass heading (see note +below). beta indicates how much the device has been rotated around the X +axis, or how much it is tilted from front to back. gamma indicates how +much the device has been rotated around the Y axis, or how much it is tilted +from left to right.

+ +

For most browsers, the alpha value returns the compass heading so if the +device points north, it will be 0. With Safari on iOS, the 0 value of +alpha is calculated from when device orientation was first requested. +ol.DeviceOrientation provides the heading property which normalizes this +behavior across all browsers for you.

+ +

It is important to note that the HTML 5 DeviceOrientation specification +indicates that alpha, beta and gamma are in degrees while the +equivalent properties in ol.DeviceOrientation are in radians for consistency +with all other uses of angles throughout OpenLayers.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +ol.DeviceOrientationOptions + + + + + + <optional>
+ + + +
(Optional)

Options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • deviceorientation.js, line 73
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + +

Members

+ +
+ +
+

<static, constant> SUPPORTED :boolean

+ + +
+
+ +
+

Indicates if DeviceOrientation is supported in the user's browser.

+
+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • deviceorientation.js, line 109
+ + + + + + + +
+ + + +
+ +
+ + + +

Methods

+ +
+ +
+

bindTo

+ + +
+
+ + +
+

Binds a View to a Model.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
key + + +string + + + + + + + +

Key.

target + + +ol.Object + + + + + + + +

Target.

targetKey + + +string + + + + + + <optional>
+ + + +
(Optional)

Target key.

noNotify + + +boolean + + + + + + <optional>
+ + + +
(Optional)

No notify.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 147
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

get

+ + +
+
+ + +
+

Gets a value.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 170
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Value.

+
+ + + +
+
+ Type +
+
+ +* + + +
+
+ + + + +
+ + + +
+

getAlpha

+ + +
+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • deviceorientation.js, line 147
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

The alpha value of the DeviceOrientation, +in radians.

+
+ + + +
+
+ Type +
+
+ +number +| + +undefined + + +
+
+ + + + +
+ + + +
+

getBeta

+ + +
+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • deviceorientation.js, line 161
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

The beta value of the DeviceOrientation, +in radians.

+
+ + + +
+
+ Type +
+
+ +number +| + +undefined + + +
+
+ + + + +
+ + + +
+

getGamma

+ + +
+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • deviceorientation.js, line 175
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

The gamma value of the DeviceOrientation, +in radians.

+
+ + + +
+
+ Type +
+
+ +number +| + +undefined + + +
+
+ + + + +
+ + + +
+

getHeading

+ + +
+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • deviceorientation.js, line 189
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

The heading of the device relative to +north, in radians, normalizing for different browser behavior.

+
+ + + +
+
+ Type +
+
+ +number +| + +undefined + + +
+
+ + + + +
+ + + +
+

getTracking

+ + +
+
+ + +
+

Are we tracking the device's orientation?

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • deviceorientation.js, line 203
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

The current tracking state, true if tracking is on.

+
+ + + +
+
+ Type +
+
+ +boolean + + +
+
+ + + + +
+ + + +
+

notify

+ + +
+
+ + +
+

Notify all observers of a change on this property. This notifies both +objects that are bound to the object's property as well as the object +that it is bound to.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 208
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

on

+ + +
+
+ + +
+

Listen for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 240
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + +
+ + + +
+

once

+ + +
+
+ + +
+

Listen once for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 253
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + +
+ + + +
+

set

+ + +
+
+ + +
+

Sets a value.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

value + + +* + + + +

Value.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 263
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setTracking

+ + +
+
+ + +
+

Enable or disable tracking of DeviceOrientation events.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
tracking + + +boolean + + + +

True to enable and false to disable tracking.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • deviceorientation.js, line 234
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setValues

+ + +
+
+ + +
+

Sets a collection of key-value pairs.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
values + + +Object.<string, *> + + + +

Values.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 286
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

un

+ + +
+
+ + +
+

Unlisten for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 326
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unbind

+ + +
+
+ + +
+

Removes a binding. Unbinding will set the unbound property to the current + value. The object will not be notified, as the value has not changed.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 305
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unbindAll

+ + +
+
+ + +
+

Removes all bindings.

+
+ + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 344
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unByKey

+ + +
+
+ + +
+

Removes an event listener which was added with listen() by the key returned + by on().

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
key + + +number + + + + + + + + <nullable>
+ +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 336
+ + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ + + + + + + diff --git a/edit/apidoc/ol.Feature.html b/edit/apidoc/ol.Feature.html new file mode 100644 index 0000000000..5eaa03e91d --- /dev/null +++ b/edit/apidoc/ol.Feature.html @@ -0,0 +1,2251 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.Feature + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol. + + ol.Feature +

+ +
+ +
+
+ + + + +
+

new Feature

+ + +
+
+ + +
+

Create a new feature. A feature is the base entity for vectors and has +attributes, including normally a geometry attribute.

+ +

Example:

+ +
var feature = new ol.Feature({'foo': 'bar'});
+feature.setGeometry(new ol.geom.Point([100, 500]));
+
+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
values + + +Object.<string, *>= + + + + + + <optional>
+ + + +
(Optional)

Attributes.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • feature.js, line 22
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + +

Methods

+ +
+ +
+

bindTo

+ + +
+
+ + +
+

Binds a View to a Model.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
key + + +string + + + + + + + +

Key.

target + + +ol.Object + + + + + + + +

Target.

targetKey + + +string + + + + + + <optional>
+ + + +
(Optional)

Target key.

noNotify + + +boolean + + + + + + <optional>
+ + + +
(Optional)

No notify.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 147
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

get

+ + +
+
+ + +
+

Gets a value.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 170
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Value.

+
+ + + +
+
+ Type +
+
+ +* + + +
+
+ + + + +
+ + + +
+

getAttributes

+ + +
+
+ + +
+

Gets a copy of the attributes of this feature.

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • feature.js, line 58
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Attributes object.

+
+ + + +
+
+ Type +
+
+ +Object.<string, *> + + +
+
+ + + + +
+ + + +
+

getFeatureId

+ + +
+
+ + +
+

Returns the feature's commonly used identifier. This identifier is usually +the unique id in the source store.

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • feature.js, line 77
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

The feature's identifier.

+
+ + + +
+
+ Type +
+
+ +string +| + +undefined + + +
+
+ + + + +
+ + + +
+

getGeometry

+ + +
+
+ + +
+

Get the geometry associated with this feature.

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • feature.js, line 86
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

The geometry (or null if none).

+
+ + + +
+
+ Type +
+
+ +ol.geom.Geometry + + +
+
+ + + + +
+ + + +
+

notify

+ + +
+
+ + +
+

Notify all observers of a change on this property. This notifies both +objects that are bound to the object's property as well as the object +that it is bound to.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 208
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

on

+ + +
+
+ + +
+

Listen for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 240
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + +
+ + + +
+

once

+ + +
+
+ + +
+

Listen once for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 253
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + +
+ + + +
+

set

+ + +
+
+ + +
+

Sets a value.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

value + + +* + + + +

Value.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 263
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setGeometry

+ + +
+
+ + +
+

Set the geometry to be associated with this feature after its creation.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
geometry + + +ol.geom.Geometry + + + +

The geometry.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • feature.js, line 130
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setValues

+ + +
+
+ + +
+

Sets a collection of key-value pairs.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
values + + +Object.<string, *> + + + +

Values.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 286
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

un

+ + +
+
+ + +
+

Unlisten for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 326
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unbind

+ + +
+
+ + +
+

Removes a binding. Unbinding will set the unbound property to the current + value. The object will not be notified, as the value has not changed.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 305
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unbindAll

+ + +
+
+ + +
+

Removes all bindings.

+
+ + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 344
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unByKey

+ + +
+
+ + +
+

Removes an event listener which was added with listen() by the key returned + by on().

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
key + + +number + + + + + + + + <nullable>
+ +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 336
+ + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ + + + + + + diff --git a/master/apidoc/ol.renderer.Layer.html b/edit/apidoc/ol.Geolocation.html similarity index 52% rename from master/apidoc/ol.renderer.Layer.html rename to edit/apidoc/ol.Geolocation.html index d745cce223..90359263d7 100644 --- a/master/apidoc/ol.renderer.Layer.html +++ b/edit/apidoc/ol.Geolocation.html @@ -2,7 +2,7 @@ - OpenLayers: Class: ol.renderer.Layer + OpenLayers 3 API Documentation - Class: ol.Geolocation @@ -11,14 +11,28 @@ + + + -
- -

Class: ol.renderer.Layer

- + + +
@@ -27,7 +41,9 @@

- ol.renderer.Layer + ol. + + ol.Geolocation

@@ -39,13 +55,30 @@
-

new Layer

+

new Geolocation

+
+

Helper class for providing HTML5 Geolocation capabilities. +The Geolocation API +is used to locate a user's position.

+ +

Example:

+ +
var geolocation = new ol.Geolocation();
+// take the projection to use from the map's view
+geolocation.bindTo('projection', map.getView());
+// listen to changes in position
+geolocation.on('change:position', function(evt) {
+  window.console.log(geolocation.getPosition());
+});
+
+
+ @@ -65,6 +98,8 @@ Type + Argument + @@ -77,46 +112,31 @@ - mapRenderer + options -ol.renderer.Map +ol.GeolocationOptions - - - - Map renderer. - - - - - - - layer - - - - + -ol.layer.Layer - - - - + <optional>
+ + + + - - Layer. + (Optional)

Options.

@@ -146,7 +166,7 @@
Source:
-
  • layerrenderer.js, line 27
+
  • geolocation.js, line 52
@@ -191,62 +211,15 @@
-

changed

+

<static, constant> SUPPORTED :boolean

- - -
- - - - - - - -
Inherited From:
-
- - - - - - - - - - - - - -
Source:
-
  • object.js, line 166
- - - - - - - -
- - - -
- - - -
-

<protected> handleLayerBrightnessChange

- - -
-
+
+

Is HTML5 geolocation supported in the current browser?

+
@@ -271,288 +244,7 @@
Source:
-
  • layerrenderer.js, line 115
- - - - - - - -
- - - - - - - -
-

<protected> handleLayerContrastChange

- - -
-
- - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • layerrenderer.js, line 121
- - - - - - - -
- - - -
- - - -
-

<protected> handleLayerHueChange

- - -
-
- - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • layerrenderer.js, line 127
- - - - - - - -
- - - -
- - - -
-

<protected> handleLayerSaturationChange

- - -
-
- - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • layerrenderer.js, line 162
- - - - - - - -
- - - -
- - - -
-

<protected> observedTileKeys :Object.<string, boolean>

- - -
-
- - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • layerrenderer.js, line 47
- - - - - - - -
- - - -
- - - -
-

renderFrame

- - -
-
- - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • layerrenderer.js, line 206
- - - - - - - -
- - - -
- - - -
-

setValues

- - -
-
- - - -
- - - - - - - -
Inherited From:
-
- - - - - - - - - - - - - -
Source:
-
  • object.js, line 275
+
  • geolocation.js, line 146
@@ -582,6 +274,10 @@
+
+

Binds a View to a Model.

+
+ @@ -637,7 +333,7 @@ - Key. +

Key.

@@ -666,7 +362,7 @@ - Target. +

Target.

@@ -679,7 +375,7 @@ -string= +string @@ -697,7 +393,7 @@ - (Optional) Target key. + (Optional)

Target key.

@@ -710,7 +406,7 @@ -boolean= +boolean @@ -728,7 +424,7 @@ - (Optional) No notify. + (Optional)

No notify.

@@ -763,265 +459,7 @@
Source:
-
  • object.js, line 145
- - - - - - - -
- - - - - - - - - -
- - - -
-

createGetTileIfLoadedFunction

- - -
-
- - - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
isLoadedFunction - - -function(ol.Tile): boolean - - - - Function to - determine if the tile is loaded.
tileSource - - -ol.source.TileSource - - - - Tile source.
tileGrid - - -ol.tilegrid.TileGrid - - - - Tile grid.
projection - - -ol.Projection - - - - Projection.
- - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • layerrenderer.js, line 295
- - - - - - - -
- - - - - - - -
Returns:
- - -
- Returns a tile if it is loaded. -
- - - -
-
- Type -
-
- -function(ol.TileCoord): ol.Tile - - -
-
- - - - -
- - - -
-

<protected> dispatchChangeEvent

- - -
-
- - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • layerrenderer.js, line 83
+
  • object.js, line 147
@@ -1051,6 +489,10 @@
+
+

Gets a value.

+
+ @@ -1098,7 +540,7 @@ - Key. +

Key.

@@ -1133,7 +575,7 @@
Source:
-
  • object.js, line 173
+
  • object.js, line 170
@@ -1153,7 +595,7 @@
- Value. +

Value.

@@ -1178,7 +620,7 @@
-

getKeys

+

getAccuracy

@@ -1186,7 +628,7 @@
- Get a list of object property names. +

Get the accuracy of the position in meters.

@@ -1205,11 +647,6 @@ -
Inherited From:
-
- @@ -1223,7 +660,7 @@
Source:
-
  • object.js, line 197
+
  • geolocation.js, line 189
@@ -1243,7 +680,7 @@
- List of property names. +

accuracy in meters.

@@ -1254,7 +691,10 @@
-Array.<string> +number +| + +undefined
@@ -1268,250 +708,7 @@
-

getLayer

- - -
-
- - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • layerrenderer.js, line 91
- - - - - - - -
- - - - - - - -
Returns:
- - -
- Layer. -
- - - -
-
- Type -
-
- -ol.layer.Layer - - -
-
- - - - -
- - - -
-

getMap

- - -
-
- - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • layerrenderer.js, line 99
- - - - - - - -
- - - - - - - -
Returns:
- - -
- Map. -
- - - -
-
- Type -
-
- -ol.Map - - -
-
- - - - -
- - - -
-

getMapRenderer

- - -
-
- - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • layerrenderer.js, line 107
- - - - - - - -
- - - - - - - -
Returns:
- - -
- Map renderer. -
- - - -
-
- Type -
-
- -ol.renderer.Map - - -
-
- - - - -
- - - -
-

<protected> handleImageChange

+

getAltitude

@@ -1519,7 +716,7 @@
- Handle changes in image state. +

Get the altitude associated with the position.

@@ -1528,54 +725,6 @@ -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
event - - -goog.events.Event - - - - Image change event.
-
@@ -1599,7 +748,7 @@
Source:
-
  • layerrenderer.js, line 135
+
  • geolocation.js, line 203
@@ -1615,65 +764,31 @@ +
Returns:
- -
- - -
-

<protected> handleLayerLoad

- - -
-
- - +
+

The altitude in meters above the mean sea level.

+
- - - - - - - -
- - - - - - - - - - - - - - - - - - -
Source:
-
  • layerrenderer.js, line 146
- - - - - - - + +
+
+ Type +
+
+ +number +| + +undefined + + +
- - - - - - +
@@ -1681,125 +796,7 @@
-

<protected> handleLayerOpacityChange

- - -
-
- - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • layerrenderer.js, line 154
- - - - - - - -
- - - - - - - - - -
- - - -
-

<protected> handleLayerVisibleChange

- - -
-
- - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • layerrenderer.js, line 168
- - - - - - - -
- - - - - - - - - -
- - - -
-

<protected> listenToTileChange

+

getAltitudeAccuracy

@@ -1807,7 +804,7 @@
- Listen once to tileKey, le change event. +

Get the altitude accuracy of the position.

@@ -1816,53 +813,93 @@ -
Parameters:
+ + +
+ + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + +
Source:
+
  • geolocation.js, line 217
+ + + + + + + + + + + + + + + +
Returns:
+ - - - - - - - - - - - - - - -
NameTypeDescription
tile - - -ol.Tile +
+

Altitude accuracy.

+
+ +
+
+ Type +
+
+ +number +| + +undefined + + +
+
+ + + + + + + -
Tile.
+
+

getHeading

+ + +
+
+ + +
+

Get the heading as radians clockwise from North.

+
+ + + + + + @@ -1887,7 +924,7 @@
Source:
-
  • layerrenderer.js, line 192
+
  • geolocation.js, line 231
@@ -1903,6 +940,476 @@ +
Returns:
+ + +
+

Heading.

+
+ + + +
+
+ Type +
+
+ +number +| + +undefined + + +
+
+ + + + + + + + +
+

getPosition

+ + +
+
+ + +
+

Get the position of the device.

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • geolocation.js, line 245
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

position.

+
+ + + +
+
+ Type +
+
+ +ol.Coordinate +| + +undefined + + +
+
+ + + + +
+ + + +
+

getProjection

+ + +
+
+ + +
+

Get the projection associated with the position.

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • geolocation.js, line 259
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

projection.

+
+ + + +
+
+ Type +
+
+ +ol.Projection +| + +undefined + + +
+
+ + + + +
+ + + +
+

getSpeed

+ + +
+
+ + +
+

Get the speed in meters per second.

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • geolocation.js, line 273
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Speed.

+
+ + + +
+
+ Type +
+
+ +number +| + +undefined + + +
+
+ + + + +
+ + + +
+

getTracking

+ + +
+
+ + +
+

Are we tracking the user's position?

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • geolocation.js, line 287
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

tracking.

+
+ + + +
+
+ Type +
+
+ +boolean + + +
+
+ + + + +
+ + + +
+

getTrackingOptions

+ + +
+
+ + +
+

Get the tracking options.

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • geolocation.js, line 303
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + + + +
Returns:
+ + +
+

HTML 5 Gelocation +tracking options.

+
+ + + +
+
+ Type +
+
+ +GeolocationPositionOptions +| + +undefined + + +
+
+ +
@@ -1917,6 +1424,12 @@
+
+

Notify all observers of a change on this property. This notifies both +objects that are bound to the object's property as well as the object +that it is bound to.

+
+ @@ -1964,7 +1477,7 @@ - Key. +

Key.

@@ -2022,13 +1535,17 @@
-

<protected> scheduleExpireCache

+

on

+
+

Listen for a certain type of event.

+
+ @@ -2048,6 +1565,8 @@ Type + Argument + @@ -2060,46 +1579,93 @@ - frameState + type -ol.FrameState +string +| + +Array.<string> + + + + + - Frame state. + +

The event type or array of event types.

- tileSource + listener -ol.source.TileSource +Function + + + + + - Tile source. + +

The listener function.

+ + + + + + + scope + + + + + +Object + + + + + + + + + <optional>
+ + + + + + + + + (Optional)

Object is whose scope to call + the listener.

@@ -2116,6 +1682,11 @@ +
Inherited From:
+
+ @@ -2129,7 +1700,7 @@
Source:
-
  • layerrenderer.js, line 214
+
  • object.js, line 240
@@ -2145,6 +1716,238 @@ +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + + + + + +
+

once

+ + +
+
+ + +
+

Listen once for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 253
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ +
@@ -2159,6 +1962,10 @@
+
+

Sets a value.

+
+ @@ -2206,7 +2013,7 @@ - Key. +

Key.

@@ -2229,7 +2036,7 @@ - Value. +

Value.

@@ -2264,7 +2071,7 @@
Source:
-
  • object.js, line 236
+
  • object.js, line 263
@@ -2287,13 +2094,239 @@
-

setOptions

+

setProjection

+
+

Set the projection to use for transforming the coordinates.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
projection + + +ol.Projection + + + +

Projection.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • geolocation.js, line 317
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setTracking

+ + +
+
+ + +
+

Enable/disable tracking.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
tracking + + +boolean + + + +

Enable or disable tracking.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • geolocation.js, line 330
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setTrackingOptions

+ + +
+
+ + +
+

Set the tracking options.

+
+ @@ -2331,6 +2364,125 @@ +GeolocationPositionOptions + + + + + + + + + +

HTML 5 Geolocation +tracking options.

+ + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • geolocation.js, line 345
+ + + + + +
See:
+
+ +
+ + + +
+ + + + + + + + + +
+ + + +
+

setValues

+ + +
+
+ + +
+

Sets a collection of key-value pairs.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2360,7 +2512,7 @@
Inherited From:
@@ -2376,7 +2528,195 @@
Source:
-
  • object.js, line 258
+
  • object.js, line 286
+ + + + + + + + + + + + + + + + + + + + + +
+

un

+ + +
+
+ + +
+

Unlisten for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + +
NameTypeDescription
values + + Object.<string, *> @@ -2341,7 +2493,7 @@ - Options.

Values.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 326
@@ -2406,6 +2746,11 @@
+
+

Removes a binding. Unbinding will set the unbound property to the current + value. The object will not be notified, as the value has not changed.

+
+ @@ -2453,7 +2798,7 @@ - Key. +

Key.

@@ -2488,7 +2833,7 @@
Source:
-
  • object.js, line 281
+
  • object.js, line 305
@@ -2519,7 +2864,7 @@
- Removes all bindings. +

Removes all bindings.

@@ -2556,7 +2901,7 @@
Source:
-
  • object.js, line 298
+
  • object.js, line 344
@@ -2579,13 +2924,18 @@
-

<protected> updateAttributions

+

unByKey

+
+

Removes an event listener which was added with listen() by the key returned + by on().

+
+ @@ -2605,136 +2955,7 @@ Type - - - - Description - - - - - - - - - attributionsSet - - - - - -Object.<string, ol.Attribution> - - - - - - - - - - Attributions - set (target). - - - - - - - attributions - - - - - -Array.<ol.Attribution> - - - - - - - - - - Attributions (source). - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • layerrenderer.js, line 232
- - - - - - - -
- - - - - - - - - -
- - - -
-

<protected> updateUsedTiles

- - -
-
- - - - - - - - -
Parameters:
- - - - - - - - - - - + @@ -2748,53 +2969,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - + + + <nullable>
+ + - - + @@ -2850,158 +3010,10 @@ - - - - - - - - - - - - -
Source:
-
  • layerrenderer.js, line 252
- - - - - - - - - - - - - - - - - - - - - -
-

<protected> updateWantedTiles

- - -
-
- - - - - - - - -
Parameters:
- - -
NameTypeArgument
usedTiles - - -Object.<string, Object.<string, ol.TileRange>> - - - - Used tiles.
tileSource - - -ol.source.TileSource - - - - Tile source.
zkey @@ -2807,33 +2982,18 @@ Z.
tileRange - + -ol.TileRange - - - - Tile range.

Key.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
wantedTiles - - -Object.<string, Object.<string, boolean>> - - - - Wanted tiles.
tileSource - - -ol.source.TileSource - - - - Tile source.
tileCoord - - -ol.TileCoord - - - - Tile coordinate.
- - - -
- - - - - - +
Inherited From:
+
@@ -3016,7 +3028,7 @@
Source:
-
  • layerrenderer.js, line 276
+
  • object.js, line 336
@@ -3052,17 +3064,16 @@

+ diff --git a/master/apidoc/ol.Map.html b/edit/apidoc/ol.Map.html similarity index 59% rename from master/apidoc/ol.Map.html rename to edit/apidoc/ol.Map.html index 3cb7869779..086f6f2461 100644 --- a/master/apidoc/ol.Map.html +++ b/edit/apidoc/ol.Map.html @@ -2,7 +2,7 @@ - OpenLayers: Class: ol.Map + OpenLayers 3 API Documentation - Class: ol.Map @@ -11,14 +11,28 @@ + + + -
- -

Class: ol.Map

- + + +
@@ -27,9 +41,31 @@

+ ol. + ol.Map

+

The map is the core component of OpenLayers. In its minimal configuration it +needs a view, one or more layers, and a target container:

+ +
var map = new ol.Map({
+  view: new ol.View2D({
+    center: [0, 0],
+    zoom: 1
+  }),
+  layers: [
+    new ol.layer.Tile({
+      source: new ol.source.MapQuestOSM()
+    })
+  ],
+  target: 'map'
+});
+
+ +

The above snippet creates a map with a MapQuest OSM layer on a 2D view and +renders it to a DOM element with the id 'map'.

+
@@ -77,13 +113,13 @@ - mapOptions + options -ol.MapOptions +ol.MapOptions @@ -93,7 +129,7 @@ - Map options. +

Map options.

@@ -123,7 +159,7 @@
Source:
-
  • map.js, line 115
+
  • map.js, line 146
@@ -163,158 +199,6 @@ -

Members

- -
- -
-

changed

- - -
-
- - - -
- - - - - - - -
Inherited From:
-
- - - - - - - - - - - - - -
Source:
-
  • object.js, line 166
- - - - - - - -
- - - -
- - - -
-

<protected> logger :goog.debug.Logger

- - -
-
- - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • map.js, line 124
- - - - - - - -
- - - -
- - - -
-

setValues

- - -
-
- - - -
- - - - - - - -
Inherited From:
-
- - - - - - - - - - - - - -
Source:
-
  • object.js, line 275
- - - - - - - -
- - - -
- -
-

Methods

@@ -322,13 +206,17 @@
-

<static> createOptionsInternal

+

addControl

+
+

Add the given control to the map.

+
+ @@ -360,13 +248,13 @@ - mapOptions + control -ol.MapOptions +ol.control.Control @@ -376,7 +264,7 @@ - Map options. +

Control.

@@ -406,7 +294,7 @@
Source:
-
  • map.js, line 860
+
  • map.js, line 359
@@ -422,28 +310,6 @@ -
Returns:
- - -
- Map options. -
- - - -
-
- Type -
-
- -ol.MapOptionsInternal - - -
-
- - @@ -458,6 +324,10 @@
+
+

Adds the given layer to the top of this map.

+
+ @@ -495,7 +365,7 @@ -ol.layer.Layer +ol.layer.Base @@ -505,7 +375,7 @@ - Layer. +

Layer.

@@ -535,7 +405,7 @@
Source:
-
  • map.js, line 304
+
  • map.js, line 371
@@ -558,491 +428,7 @@
-

addPreRenderFunction

- - -
-
- - - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
preRenderFunction - - -ol.PreRenderFunction - - - - Pre-render function.
- - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • map.js, line 314
- - - - - - - -
- - - - - - - - - -
- - - -
-

addPreRenderFunctions

- - -
-
- - - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
preRenderFunctions - - -Array.<ol.PreRenderFunction> - - - - Pre-render functions.
- - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • map.js, line 324
- - - - - - - -
- - - - - - - - - -
- - - -
-

bindTo

- - -
-
- - - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeArgumentDescription
key - - -string - - - - - - - - Key.
target - - -ol.Object - - - - - - - - Target.
targetKey - - -string= - - - - - - <optional>
- - - -
(Optional) Target key.
noNotify - - -boolean= - - - - - - <optional>
- - - -
(Optional) No notify.
- - - -
- - - - - - - -
Inherited From:
-
- - - - - - - - - - - - - -
Source:
-
  • object.js, line 145
- - - - - - - -
- - - - - - - - - -
- - - -
-

disposeInternal

- - -
-
- - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • map.js, line 344
- - - - - - - -
- - - - - - - - - -
- - - -
-

freezeRendering

+

addOverlay

@@ -1050,7 +436,7 @@
- Freeze rendering. +

Add the given overlay to the map.

@@ -1059,65 +445,6 @@ - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • map.js, line 353
- - - - - - - -
- - - - - - - - - - - - - -
-

get

- - -
-
- - - - - - - -
Parameters:
@@ -1143,13 +470,13 @@ - key + overlay -string +ol.Overlay @@ -1159,7 +486,7 @@ - Key. +

Overlay.

@@ -1176,934 +503,6 @@ -
Inherited From:
-
- - - - - - - - - - - - - -
Source:
-
  • object.js, line 173
- - - - - - - -
- - - - - - - -
Returns:
- - -
- Value. -
- - - -
-
- Type -
-
- -* - - -
-
- - - - - - - - -
-

getBackgroundColor

- - -
-
- - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • map.js, line 361
- - - - - - - -
- - - - - - - -
Returns:
- - -
- Background color. -
- - - -
-
- Type -
-
- -ol.Color -| - -undefined - - -
-
- - - - -
- - - -
-

getCoordinateFromPixel

- - -
-
- - - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
pixel - - -ol.Pixel - - - - Pixel.
- - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • map.js, line 391
- - - - - - - -
- - - - - - - -
Returns:
- - -
- Coordinate. -
- - - -
-
- Type -
-
- -ol.Coordinate - - -
-
- - - - -
- - - -
-

getInteractions

- - -
-
- - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • map.js, line 406
- - - - - - - -
- - - - - - - -
Returns:
- - -
- Interactions. -
- - - -
-
- Type -
-
- -ol.Collection - - -
-
- - - - -
- - - -
-

getKeys

- - -
-
- - -
- Get a list of object property names. -
- - - - - - - - - -
- - - - - - - -
Inherited From:
-
- - - - - - - - - - - - - -
Source:
-
  • object.js, line 197
- - - - - - - -
- - - - - - - -
Returns:
- - -
- List of property names. -
- - - -
-
- Type -
-
- -Array.<string> - - -
-
- - - - -
- - - -
-

getLayers

- - -
-
- - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • map.js, line 414
- - - - - - - -
- - - - - - - -
Returns:
- - -
- Layers. -
- - - -
-
- Type -
-
- -ol.Collection - - -
-
- - - - -
- - - -
-

getOverlayContainer

- - -
-
- - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • map.js, line 476
- - - - - - - -
- - - - - - - -
Returns:
- - -
- The map's overlay container. Elements added to this -container won't let mousedown and touchstart events through to the map, so -clicks and gestures on an overlay don't trigger any MapBrowserEvent. -
- - - -
-
- Type -
-
- -Element - - -
-
- - - - -
- - - -
-

getPixelFromCoordinate

- - -
-
- - - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
coordinate - - -ol.Coordinate - - - - Coordinate.
- - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • map.js, line 427
- - - - - - - -
- - - - - - - -
Returns:
- - -
- Pixel. -
- - - -
-
- Type -
-
- -ol.Pixel - - -
-
- - - - -
- - - -
-

getRenderer

- - -
-
- - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • map.js, line 374
- - - - - - - -
- - - - - - - -
Returns:
- - -
- Renderer. -
- - - -
-
- Type -
-
- -ol.renderer.Map - - -
-
- - - - -
- - - -
-

getSize

- - -
-
- - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • map.js, line 442
- - - - - - - -
- - - - - - - -
Returns:
- - -
- Size. -
- - - -
-
- Type -
-
- -ol.Size -| - -undefined - - -
-
- - - - -
- - - -
-

getTarget

- - -
-
- - - - - - - - - - -
- - - - - - - @@ -2133,28 +532,6 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent. -
Returns:
- - -
- Container. -
- - - -
-
- Type -
-
- -Element - - -
-
- -
@@ -2162,13 +539,19 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
-

getTilePriority

+

beforeRender

+
+

Add functions to be called before rendering. This can be used for attaching +animations before updating the map's view. The ol.animation +namespace provides several static methods for creating prerender functions.

+
+ @@ -2200,13 +583,13 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent. - tile + var_args -ol.Tile +ol.PreRenderFunction @@ -2216,53 +599,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent. - Tile. - - - - - - - tileSourceKey - - - - - -string - - - - - - - - - - Tile source key. - - - - - - - tileCenter - - - - - -ol.Coordinate - - - - - - - - - - Tile center. +

Any number of pre-render functions.

@@ -2292,7 +629,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
Source:
-
  • map.js, line 487
+
  • map.js, line 396
@@ -2308,28 +645,6 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent. -
Returns:
- - -
- Tile priority. -
- - - -
-
- Type -
-
- -number - - -
-
- - @@ -2337,174 +652,16 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
-

getView

+

bindTo

- - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • map.js, line 454
- - - - - - - -
- - - - - - - -
Returns:
- - -
- View. -
- - - -
-
- Type -
-
- -ol.View - - -
-
- - - - -
- - - -
-

getViewport

- - -
-
- - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • map.js, line 466
- - - - - - - -
- - - - - - - -
Returns:
- - -
- Viewport. -
- - - -
-
- Type -
-
- -Element - - -
-
- - - - -
- - - -
-

handleBrowserEvent

- - -
-
- +
+

Binds a View to a Model.

+
@@ -2539,13 +696,13 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent. - browserEvent + key -goog.events.BrowserEvent +string @@ -2561,20 +718,49 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent. - Browser event. +

Key.

- type + target -string= +ol.Object + + + + + + + + + + + + + + + +

Target.

+ + + + + + + targetKey + + + + + +string @@ -2592,173 +778,38 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent. - (Optional) Type. + (Optional)

Target key.

- - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • map.js, line 508
- - - - - - - -
- - - - - - - - - -
- - - -
-

<protected> handleBrowserWindowResize

- - -
-
- - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • map.js, line 573
- - - - - - - -
- - - - - - - - - -
- - - -
-

handleMapBrowserEvent

- - -
-
- - - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - + + - + + @@ -2775,6 +826,11 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent. +
Inherited From:
+
+ @@ -2788,7 +844,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
Source:
-
  • map.js, line 523
+
  • object.js, line 147
@@ -2811,152 +867,16 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
-

<protected> handlePostRender

+

get

- - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • map.js, line 543
- - - - - - - -
- - - - - - - - - -
- - - -
-

isDef

- - -
-
- - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • map.js, line 616
- - - - - - - -
- - - - - - - -
Returns:
- - -
- Is defined. -
- - - -
-
- Type -
-
- -boolean - - -
-
- - - - -
- - - -
-

notify

- - -
-
- +
+

Gets a value.

+
@@ -3005,7 +925,1137 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent. -
+ + + + + +
NameTypeDescription
mapBrowserEventnoNotify -ol.MapBrowserEvent +boolean + + <optional>
+ + + +
The event to handle.(Optional)

No notify.

Key.

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 170
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Value.

+
+ + + +
+
+ Type +
+
+ +* + + +
+
+ + + + +
+ + + +
+

getControls

+ + +
+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • map.js, line 471
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Controls.

+
+ + + +
+
+ Type +
+
+ +ol.Collection + + +
+
+ + + + +
+ + + +
+

getFeatureInfo

+ + +
+
+ + +
+

Get feature information for a pixel on the map.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.GetFeatureInfoOptions + + + +

Options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • map.js, line 489
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

getFeatures

+ + +
+
+ + +
+

Get features for a pixel on the map.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.GetFeaturesOptions + + + +

Options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • map.js, line 502
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

getInteractions

+ + +
+
+ + +
+

Gets the collection on interactions associated with this map. +Interactions are used for e.g. pan, zoom and rotate.

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • map.js, line 515
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Interactions.

+
+ + + +
+
+ Type +
+
+ +ol.Collection + + +
+
+ + + + +
+ + + +
+

getLayerGroup

+ + +
+
+ + +
+

Get the layergroup associated with this map.

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • map.js, line 524
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

LayerGroup.

+
+ + + +
+
+ Type +
+
+ +ol.layer.Group + + +
+
+ + + + +
+ + + +
+

getLayers

+ + +
+
+ + +
+

Get the collection of layers associated with this map.

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • map.js, line 538
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Layers.

+
+ + + +
+
+ Type +
+
+ +ol.Collection + + +
+
+ + + + +
+ + + +
+

getOverlays

+ + +
+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • map.js, line 479
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Overlays.

+
+ + + +
+
+ Type +
+
+ +ol.Collection + + +
+
+ + + + +
+ + + +
+

getRenderer

+ + +
+
+ + +
+

Get the map's renderer.

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • map.js, line 434
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Renderer.

+
+ + + +
+
+ Type +
+
+ +ol.renderer.Map + + +
+
+ + + + +
+ + + +
+

getSize

+ + +
+
+ + +
+

Get the size of this map.

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • map.js, line 562
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Size.

+
+ + + +
+
+ Type +
+
+ +ol.Size +| + +undefined + + +
+
+ + + + +
+ + + +
+

getTarget

+ + +
+
+ + +
+

Get the element in which this map is rendered.

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • map.js, line 443
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Target.

+
+ + + +
+
+ Type +
+
+ +Element +| + +string +| + +undefined + + +
+
+ + + + +
+ + + +
+

getView

+ + +
+
+ + +
+

Get the view associated with this map. This can be a 2D or 3D view. A 2D +view manages properties such as center and resolution.

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • map.js, line 576
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

View.

+
+ + + +
+
+ Type +
+
+ +ol.View + + +
+
+ + + + +
+ + + +
+

notify

+ + +
+
+ + +
+

Notify all observers of a change on this property. This notifies both +objects that are bound to the object's property as well as the object +that it is bound to.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3058,6 +2108,563 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent. + + + + +
+

on

+ + +
+
+ + +
+

Listen for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 240
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + +
+ + + +
+

once

+ + +
+
+ + +
+

Listen once for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 253
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + +
+ + + +
+

removeControl

+ + +
+
+ + +
+

Remove the given control from the map.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
control + + +ol.control.Control + + + +

Control.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • map.js, line 864
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

The removed control of undefined + if the control was not found.

+
+ + + +
+
+ Type +
+
+ +ol.control.Control +| + +undefined + + +
+
+ + + +
@@ -3070,6 +2677,10 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
+
+

Removes the given layer from the map.

+
+ @@ -3107,7 +2718,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent. -ol.layer.Layer +ol.layer.Base @@ -3117,7 +2728,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent. - Layer. +

Layer.

@@ -3147,7 +2758,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
Source:
-
  • map.js, line 656
+
  • map.js, line 881
@@ -3167,8 +2778,8 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
- The removed layer or undefined if the - layer was not found. +

The removed layer or undefined if the + layer was not found.

@@ -3179,7 +2790,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
-ol.layer.Layer +ol.layer.Base | undefined @@ -3196,13 +2807,17 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
-

removePreRenderFunction

+

removeOverlay

+
+

Remove the given overlay from the map.

+
+ @@ -3234,13 +2849,13 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent. - preRenderFunction + overlay -ol.PreRenderFunction +ol.Overlay @@ -3250,7 +2865,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent. - Pre-render function. +

Overlay.

@@ -3280,7 +2895,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
Source:
-
  • map.js, line 335
+
  • map.js, line 894
@@ -3300,7 +2915,8 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
- Whether the preRenderFunction has been found and removed. +

The removed overlay of undefined + if the overlay was not found.

@@ -3311,7 +2927,10 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
-boolean +ol.Overlay +| + +undefined
@@ -3320,132 +2939,6 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent. - - - - -
-

render

- - -
-
- - -
- Render. -
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • map.js, line 626
- - - - - - - -
- - - - - - - - - -
- - - -
-

requestRenderFrame

- - -
-
- - -
- Request that renderFrame_ be called some time in the future. -
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • map.js, line 640
- - - - - - - -
- - - - - - - - -
@@ -3458,6 +2951,10 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
+
+

Sets a value.

+
+ @@ -3505,7 +3002,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent. - Key. +

Key.

@@ -3528,7 +3025,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent. - Value. +

Value.

@@ -3563,7 +3060,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
Source:
-
  • object.js, line 236
+
  • object.js, line 263
@@ -3586,13 +3083,17 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
-

setBackgroundColor

+

setLayerGroup

+
+

Sets the layergroup of this map.

+
+ @@ -3624,13 +3125,13 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent. - backgroundColor + layerGroup -ol.Color +ol.layer.Group @@ -3640,7 +3141,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent. - Background color. +

Layergroup.

@@ -3670,226 +3171,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
Source:
-
  • map.js, line 774
- - - - - - - - - - - - - - - - - - - - - -
-

setLayers

- - -
-
- - - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
layers - - -ol.Collection - - - - Layers.
- - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • map.js, line 786
- - - - - - - -
- - - - - - - - - -
- - - -
-

setOptions

- - -
-
- - - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
options - - -Object.<string, *> - - - - Options.
- - - -
- - - - - - - -
Inherited From:
-
- - - - - - - - - - - - - -
Source:
-
  • object.js, line 258
+
  • map.js, line 1007
@@ -3919,6 +3201,10 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
+
+

Set the size of this map.

+
+ @@ -3956,7 +3242,10 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent. -ol.Size +ol.Size +| + +undefined @@ -3966,7 +3255,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent. - Size. +

Size.

@@ -3996,7 +3285,240 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
Source:
-
  • map.js, line 798
+
  • map.js, line 1020
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setTarget

+ + +
+
+ + +
+

Set the target element to render this map into.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
target + + +Element +| + +string +| + +undefined + + + +

Target.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • map.js, line 1033
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setValues

+ + +
+
+ + +
+

Sets a collection of key-value pairs.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
values + + +Object.<string, *> + + + +

Values.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 286
@@ -4026,6 +3548,10 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
+
+

Set the view for this map.

+
+ @@ -4063,7 +3589,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent. -ol.IView +ol.IView @@ -4073,7 +3599,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent. - View. +

View.

@@ -4103,7 +3629,195 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
Source:
-
  • map.js, line 810
+
  • map.js, line 1046
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

un

+ + +
+
+ + +
+

Unlisten for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 326
@@ -4133,6 +3847,11 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
+
+

Removes a binding. Unbinding will set the unbound property to the current + value. The object will not be notified, as the value has not changed.

+
+ @@ -4180,7 +3899,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent. - Key. +

Key.

@@ -4215,7 +3934,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
Source:
-
  • object.js, line 281
+
  • object.js, line 305
@@ -4246,7 +3965,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
- Removes all bindings. +

Removes all bindings.

@@ -4283,7 +4002,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
Source:
-
  • object.js, line 298
+
  • object.js, line 344
@@ -4306,7 +4025,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
-

unfreezeRendering

+

unByKey

@@ -4314,7 +4033,8 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
- Unfreeze rendering. +

Removes an event listener which was added with listen() by the key returned + by on().

@@ -4323,65 +4043,6 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent. - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • map.js, line 822
- - - - - - - -
- - - - - - - - - -
- - - -
-

withFrozenRendering

- - -
-
- - - - - - - -
Parameters:
@@ -4409,13 +4070,13 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent. - f + key -function(this: T) +number @@ -4426,43 +4087,14 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent. - - - - - - Function. - - - - - - - obj - - - - - -T= - - - - - - - - - <optional>
- - + <nullable>
- (Optional) Object. +

Key.

@@ -4479,6 +4111,75 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent. +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 336
+ + + + + + + + + + + + + + + + + + + + + +
+

updateSize

+ + +
+
+ + +
+

Force a recalculation of the map viewport size. This should be called when +third-party code changes the size of the map viewport.

+
+ + + + + + + + + +
+ + + + + + + @@ -4492,7 +4193,7 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.
Source:
-
  • map.js, line 835
+
  • map.js, line 1070
@@ -4528,17 +4229,16 @@ clicks and gestures on an overlay don't trigger any MapBrowserEvent.

- Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:37 GMT+0100 (CET) + Documentation generated by JSDoc 3
+ diff --git a/edit/apidoc/ol.MapBrowserEvent.html b/edit/apidoc/ol.MapBrowserEvent.html new file mode 100644 index 0000000000..acd05db5b6 --- /dev/null +++ b/edit/apidoc/ol.MapBrowserEvent.html @@ -0,0 +1,473 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.MapBrowserEvent + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol. + + ol.MapBrowserEvent +

+ +
+ +
+
+ + + + +
+

new MapBrowserEvent

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string + + + + + + + +

Event type.

map + + +ol.Map + + + + + + + +

Map.

browserEvent + + +goog.events.BrowserEvent + + + + + + + +

Browser event.

frameState + + +ol.FrameState + + + + + + <optional>
+ + + + <nullable>
+ +
(Optional)

Frame state.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • mapbrowserevent.js, line 27
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + +

Methods

+ +
+ +
+

getCoordinate

+ + +
+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • mapbrowserevent.js, line 55
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Coordinate.

+
+ + + +
+
+ Type +
+
+ +ol.Coordinate + + +
+
+ + + + +
+ + + +
+

getPixel

+ + +
+
+ + +
+

Get pixel offset of the event from the top-left corner of the map viewport.

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • mapbrowserevent.js, line 67
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Pixel offset.

+
+ + + +
+
+ Type +
+
+ +ol.Pixel + + +
+
+ + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.Object.html b/edit/apidoc/ol.Object.html new file mode 100644 index 0000000000..8eb593aea4 --- /dev/null +++ b/edit/apidoc/ol.Object.html @@ -0,0 +1,1813 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.Object + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol. + + ol.Object +

+ +
+ +
+
+ + + + +
+

new Object

+ + +
+
+ + +
+

Base class implementing KVO (Key Value Observing).

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
values + + +Object.<string, *>= + + + + + + <optional>
+ + + +
(Optional)

Values.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • object.js, line 41
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + +

Methods

+ +
+ +
+

bindTo

+ + +
+
+ + +
+

Binds a View to a Model.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
key + + +string + + + + + + + +

Key.

target + + +ol.Object + + + + + + + +

Target.

targetKey + + +string + + + + + + <optional>
+ + + +
(Optional)

Target key.

noNotify + + +boolean + + + + + + <optional>
+ + + +
(Optional)

No notify.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • object.js, line 147
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

get

+ + +
+
+ + +
+

Gets a value.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • object.js, line 170
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Value.

+
+ + + +
+
+ Type +
+
+ +* + + +
+
+ + + + +
+ + + +
+

notify

+ + +
+
+ + +
+

Notify all observers of a change on this property. This notifies both +objects that are bound to the object's property as well as the object +that it is bound to.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • object.js, line 208
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

on

+ + +
+
+ + +
+

Listen for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • object.js, line 240
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + +
+ + + +
+

once

+ + +
+
+ + +
+

Listen once for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • object.js, line 253
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + +
+ + + +
+

set

+ + +
+
+ + +
+

Sets a value.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

value + + +* + + + +

Value.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • object.js, line 263
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setValues

+ + +
+
+ + +
+

Sets a collection of key-value pairs.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
values + + +Object.<string, *> + + + +

Values.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • object.js, line 286
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

un

+ + +
+
+ + +
+

Unlisten for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • object.js, line 326
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unbind

+ + +
+
+ + +
+

Removes a binding. Unbinding will set the unbound property to the current + value. The object will not be notified, as the value has not changed.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • object.js, line 305
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unbindAll

+ + +
+
+ + +
+

Removes all bindings.

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • object.js, line 344
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unByKey

+ + +
+
+ + +
+

Removes an event listener which was added with listen() by the key returned + by on().

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
key + + +number + + + + + + + + <nullable>
+ +

Key.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • object.js, line 336
+ + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/master/apidoc/ol.AnchoredElement.html b/edit/apidoc/ol.Overlay.html similarity index 50% rename from master/apidoc/ol.AnchoredElement.html rename to edit/apidoc/ol.Overlay.html index f2a3228c26..5d03c53e82 100644 --- a/master/apidoc/ol.AnchoredElement.html +++ b/edit/apidoc/ol.Overlay.html @@ -2,7 +2,7 @@ - OpenLayers: Class: ol.AnchoredElement + OpenLayers 3 API Documentation - Class: ol.Overlay @@ -11,14 +11,28 @@ + + + -
- -

Class: ol.AnchoredElement

- + + +
@@ -27,7 +41,9 @@

- ol.AnchoredElement + ol. + + ol.Overlay

@@ -39,13 +55,25 @@
-

new AnchoredElement

+

new Overlay

+
+

An element to show on top of the map, such as for a popup.

+ +

Example:

+ +
var popup = new ol.Overlay({
+  element: document.getElementById('popup')
+});
+popup.setPosition(coordinate);
+
+
+ @@ -77,13 +105,13 @@ - anchoredElementOptions + options -ol.AnchoredElementOptions +ol.OverlayOptions @@ -93,8 +121,7 @@ - Anchored element - options. +

Overlay options.

@@ -124,7 +151,7 @@
Source:
-
  • anchoredelement.js, line 43
+
  • overlay.js, line 53
@@ -164,112 +191,6 @@ -

Members

- -
- -
-

changed

- - -
-
- - - -
- - - - - - - -
Inherited From:
-
- - - - - - - - - - - - - -
Source:
-
  • object.js, line 166
- - - - - - - -
- - - -
- - - -
-

setValues

- - -
-
- - - -
- - - - - - - -
Inherited From:
-
- - - - - - - - - - - - - -
Source:
-
  • object.js, line 275
- - - - - - - -
- - - -
- -
-

Methods

@@ -284,6 +205,10 @@
+
+

Binds a View to a Model.

+
+ @@ -339,7 +264,7 @@ - Key. +

Key.

@@ -368,7 +293,7 @@ - Target. +

Target.

@@ -381,7 +306,7 @@ -string= +string @@ -399,7 +324,7 @@ - (Optional) Target key. + (Optional)

Target key.

@@ -412,7 +337,7 @@ -boolean= +boolean @@ -430,7 +355,7 @@ - (Optional) No notify. + (Optional)

No notify.

@@ -465,7 +390,7 @@
Source:
-
  • object.js, line 145
+
  • object.js, line 147
@@ -495,6 +420,10 @@
+
+

Gets a value.

+
+ @@ -542,7 +471,7 @@ - Key. +

Key.

@@ -577,7 +506,7 @@
Source:
-
  • object.js, line 173
+
  • object.js, line 170
@@ -597,7 +526,7 @@
- Value. +

Value.

@@ -629,6 +558,10 @@
+
+

Get the DOM element of this overlay.

+
+ @@ -658,7 +591,7 @@
Source:
-
  • anchoredelement.js, line 107
+
  • overlay.js, line 121
@@ -678,7 +611,7 @@
- Element. +

Element.

@@ -706,7 +639,7 @@
-

getKeys

+

getMap

@@ -714,7 +647,7 @@
- Get a list of object property names. +

Get the map associated with this overlay.

@@ -733,11 +666,6 @@ -
Inherited From:
-
- @@ -751,7 +679,7 @@
Source:
-
  • object.js, line 197
+
  • overlay.js, line 135
@@ -771,88 +699,7 @@
- List of property names. -
- - - -
-
- Type -
-
- -Array.<string> - - -
-
- - - - - - - - -
-

getMap

- - -
-
- - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • anchoredelement.js, line 120
- - - - - - - -
- - - - - - - -
Returns:
- - -
- Map. +

Map.

@@ -887,6 +734,10 @@
+
+

Get the current position of this overlay.

+
+ @@ -916,7 +767,7 @@
Source:
-
  • anchoredelement.js, line 133
+
  • overlay.js, line 149
@@ -936,7 +787,7 @@
- Position. +

Position.

@@ -947,7 +798,7 @@
-ol.Coordinate +ol.Coordinate | undefined @@ -971,6 +822,10 @@
+
+

Get the current positioning of this overlay.

+
+ @@ -1000,7 +855,7 @@
Source:
-
  • anchoredelement.js, line 146
+
  • overlay.js, line 163
@@ -1020,7 +875,7 @@
- Positioning. +

Positioning.

@@ -1031,7 +886,7 @@
-ol.AnchoredElementPositioning +ol.OverlayPositioning | undefined @@ -1043,301 +898,6 @@ -
- - - -
-

<protected> handleElementChanged

- - -
-
- - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • anchoredelement.js, line 159
- - - - - - - -
- - - - - - - - - -
- - - -
-

<protected> handleMapChanged

- - -
-
- - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • anchoredelement.js, line 171
- - - - - - - -
- - - - - - - - - -
- - - -
-

<protected> handleMapPostrender

- - -
-
- - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • anchoredelement.js, line 191
- - - - - - - -
- - - - - - - - - -
- - - -
-

<protected> handlePositionChanged

- - -
-
- - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • anchoredelement.js, line 199
- - - - - - - -
- - - - - - - - - -
- - - -
-

<protected> handlePositioningChanged

- - -
-
- - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • anchoredelement.js, line 207
- - - - - - - -
- - - - - - - - -
@@ -1350,6 +910,12 @@
+
+

Notify all observers of a change on this property. This notifies both +objects that are bound to the object's property as well as the object +that it is bound to.

+
+ @@ -1397,7 +963,7 @@ - Key. +

Key.

@@ -1450,6 +1016,426 @@ +
+ + + +
+

on

+ + +
+
+ + +
+

Listen for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 240
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + +
+ + + +
+

once

+ + +
+
+ + +
+

Listen once for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 253
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + +
@@ -1462,6 +1448,10 @@
+
+

Sets a value.

+
+ @@ -1509,7 +1499,7 @@ - Key. +

Key.

@@ -1532,7 +1522,7 @@ - Value. +

Value.

@@ -1567,7 +1557,7 @@
Source:
-
  • object.js, line 236
+
  • object.js, line 263
@@ -1597,6 +1587,10 @@
+
+

Set the DOM element to be associated with this overlay.

+
+ @@ -1647,7 +1641,7 @@ - Element. +

Element.

@@ -1677,7 +1671,7 @@
Source:
-
  • anchoredelement.js, line 215
+
  • overlay.js, line 233
@@ -1707,6 +1701,10 @@
+
+

Set the map to be associated with this overlay.

+
+ @@ -1757,7 +1755,7 @@ - Map. +

Map.

@@ -1787,119 +1785,7 @@
Source:
-
  • anchoredelement.js, line 227
- - - - - - - - - - - - - - - - - - - - - -
-

setOptions

- - -
-
- - - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
options - - -Object.<string, *> - - - - Options.
- - - -
- - - - - - - -
Inherited From:
-
- - - - - - - - - - - - - -
Source:
-
  • object.js, line 258
+
  • overlay.js, line 246
@@ -1929,6 +1815,10 @@
+
+

Set the position for this overlay.

+
+ @@ -1966,7 +1856,7 @@ -ol.Coordinate +ol.Coordinate | undefined @@ -1979,7 +1869,7 @@ - Position. +

Position.

@@ -2009,7 +1899,7 @@
Source:
-
  • anchoredelement.js, line 239
+
  • overlay.js, line 259
@@ -2032,13 +1922,17 @@
-

setPositioning

+

setValues

+
+

Sets a collection of key-value pairs.

+
+ @@ -2070,16 +1964,13 @@ - positioning + values -ol.AnchoredElementPositioning -| - -undefined +Object.<string, *> @@ -2089,7 +1980,7 @@ - Positioning. +

Values.

@@ -2106,6 +1997,11 @@ +
Inherited From:
+
+ @@ -2119,7 +2015,195 @@
Source:
-
  • anchoredelement.js, line 251
+
  • object.js, line 286
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

un

+ + +
+
+ + +
+

Unlisten for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 326
@@ -2149,6 +2233,11 @@
+
+

Removes a binding. Unbinding will set the unbound property to the current + value. The object will not be notified, as the value has not changed.

+
+ @@ -2196,7 +2285,7 @@ - Key. +

Key.

@@ -2231,7 +2320,7 @@
Source:
-
  • object.js, line 281
+
  • object.js, line 305
@@ -2262,7 +2351,7 @@
- Removes all bindings. +

Removes all bindings.

@@ -2299,7 +2388,134 @@
Source:
-
  • object.js, line 298
+
  • object.js, line 344
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unByKey

+ + +
+
+ + +
+

Removes an event listener which was added with listen() by the key returned + by on().

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
key + + +number + + + + + + + + <nullable>
+ +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 336
@@ -2335,17 +2551,16 @@

- Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:29 GMT+0100 (CET) + Documentation generated by JSDoc 3
+ diff --git a/edit/apidoc/ol.Projection.html b/edit/apidoc/ol.Projection.html new file mode 100644 index 0000000000..e82d251fe1 --- /dev/null +++ b/edit/apidoc/ol.Projection.html @@ -0,0 +1,786 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.Projection + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol. + + ol.Projection +

+ +
+ +
+
+ + + + +
+

new Projection

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.ProjectionOptions + + + +

Projection options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • proj.js, line 59
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + +

Members

+ +
+ +
+

getPointResolution

+ + +
+
+ +
+

Get the resolution of the point in degrees. For projections with degrees as +the unit this will simply return the provided resolution. For other +projections the point resolution is estimated by transforming the center +pixel to EPSG:4326, measuring its width and height on the normal sphere, +and taking the average of the width and height.

+
+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • proj.js, line 129
+ + + + + + + +
+ + + +
+ +
+ + + +

Methods

+ +
+ +
+

getAxisOrientation

+ + +
+
+ + +
+

Get the axis orientation of this projection. +Example values are: +enu - the default easting, northing, elevation. +neu - northing, easting, up - useful for "lat/long" geographic coordinates, + or south orientated transverse mercator. +wnu - westing, northing, up - some planetary coordinate systems have + "west positive" coordinate systems

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • proj.js, line 161
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Axis orientation.

+
+ + + +
+
+ Type +
+
+ +string + + +
+
+ + + + +
+ + + +
+

getCode

+ + +
+
+ + +
+

Get the code for this projection, e.g. 'EPSG:4326'.

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • proj.js, line 105
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Code.

+
+ + + +
+
+ Type +
+
+ +string + + +
+
+ + + + +
+ + + +
+

getExtent

+ + +
+
+ + +
+

Get the validity extent for this projection.

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • proj.js, line 114
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Extent.

+
+ + + +
+
+ Type +
+
+ +ol.Extent + + +
+
+ + + + +
+ + + +
+

getMetersPerUnit

+ + +
+
+ + +
+

Get the amount of meters per unit of this projection. If the projection is +not configured with a units identifier, the return is undefined.

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • proj.js, line 146
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Meters.

+
+ + + +
+
+ Type +
+
+ +number +| + +undefined + + +
+
+ + + + +
+ + + +
+

getUnits

+ + +
+
+ + +
+

Get the units of this projection.

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • proj.js, line 136
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Units.

+
+ + + +
+
+ Type +
+
+ +ol.ProjectionUnits + + +
+
+ + + + +
+ + + +
+

isGlobal

+ + +
+
+ + +
+

Is this projection a global projection which spans the whole world?

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • proj.js, line 170
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Wether the projection is global.

+
+ + + +
+
+ Type +
+
+ +boolean + + +
+
+ + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.View2D.html b/edit/apidoc/ol.View2D.html new file mode 100644 index 0000000000..957f1cdb87 --- /dev/null +++ b/edit/apidoc/ol.View2D.html @@ -0,0 +1,1574 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.View2D + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol. + + ol.View2D +

+ +

An ol.View2D object represents a simple 2D view of the map.

+ +

This is the object to act upon to change the center, resolution, +and rotation of the map.

+ +

The view states

+ +

An ol.View2D is determined by three states: center, resolution, +and rotation. To each state corresponds a getter and a setter. E.g. +getCenter and setCenter for the center state.

+ +

An ol.View2D has a projection. The projection determines the +coordinate system of the center, and its units determine the units of the +resolution (projection units per pixel). The default projection is +Spherical Mercator (EPSG:3857).

+ +

The constraints

+ +

setCenter, setResolution and setRotation can be used to change the +states of the view. Any value can be passed to the setters. And the value +that is passed to a setter will effectively be the value set in the view, +and returned by the corresponding getter.

+ +

But an ol.View2D object also has a resolution constraint and a +rotation constraint. There's currently no center constraint, but +this may change in the future.

+ +

As said above no constraints are applied when the setters are used to set +new states for the view. Applying constraints is done explicitly through +the use of the constrain* functions (constrainResolution and +constrainRotation).

+ +

The main users of the constraints are the interactions and the +controls. For example, double-clicking on the map changes the view to +the "next" resolution. And releasing the fingers after pinch-zooming +snaps to the closest resolution (with an animation).

+ +

So the resolution constraint snaps to specific resolutions. It is +determined by the following options: resolutions, maxResolution, +maxZoom, and zoomFactor. If resolutions is set, the other three +options are ignored. See ol.View2DOptions for more information.

+ +

The rotation constaint is currently not configurable. It snaps the +rotation value to zero when approaching the horizontal.

+ +
+ +
+
+ + + + +
+

new View2D

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +ol.View2DOptions + + + + + + <optional>
+ + + +
(Optional)

View2D options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • view2d.js, line 87
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + +

Methods

+ +
+ +
+

calculateExtent

+ + +
+
+ + +
+

Calculate the extent for the given size in pixels, based on the current +resolution and the current center.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
size + + +ol.Size + + + +

Box pixel size.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • view2d.js, line 221
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Extent.

+
+ + + +
+
+ Type +
+
+ +ol.Extent + + +
+
+ + + + +
+ + + +
+

constrainResolution

+ + +
+
+ + +
+

Get the constrained the resolution of this view.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
resolution + + +number +| + +undefined + + + + + + + +

Resolution.

delta + + +number + + + + + + <optional>
+ + + +
(Optional)

Delta.

direction + + +number + + + + + + <optional>
+ + + +
(Optional)

Direction.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • view2d.js, line 182
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Constrained resolution.

+
+ + + +
+
+ Type +
+
+ +number +| + +undefined + + +
+
+ + + + +
+ + + +
+

constrainRotation

+ + +
+
+ + +
+

Get the constrained rotation of this view.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
rotation + + +number +| + +undefined + + + + + + + +

Rotation.

delta + + +number + + + + + + <optional>
+ + + +
(Optional)

Delta.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • view2d.js, line 196
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Constrained rotation.

+
+ + + +
+
+ Type +
+
+ +number +| + +undefined + + +
+
+ + + + +
+ + + +
+

fitExtent

+ + +
+
+ + +
+

Fit the given extent based on the given map size.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
extent + + +ol.Extent + + + +

Extent.

size + + +ol.Size + + + +

Box pixel size.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • view2d.js, line 396
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

getZoom

+ + +
+
+ + +
+

Get the current zoom level. Return undefined if the current +resolution is undefined or not a "constrained resolution".

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • view2d.js, line 371
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Zoom.

+
+ + + +
+
+ Type +
+
+ +number +| + +undefined + + +
+
+ + + + +
+ + + +
+

setCenter

+ + +
+
+ + +
+

Set the center of the current view.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
center + + +ol.Coordinate +| + +undefined + + + +

Center.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • view2d.js, line 417
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setProjection

+ + +
+
+ + +
+

Set the projection of this view.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
projection + + +ol.Projection +| + +undefined + + + +

Projection.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • view2d.js, line 430
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setResolution

+ + +
+
+ + +
+

Set the resolution for this view.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
resolution + + +number +| + +undefined + + + +

Resolution.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • view2d.js, line 443
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setRotation

+ + +
+
+ + +
+

Set the rotation for this view.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
rotation + + +number +| + +undefined + + + +

Rotation.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • view2d.js, line 456
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setZoom

+ + +
+
+ + +
+

Zoom to a specific zoom level.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
zoom + + +number + + + +

Zoom level.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • view2d.js, line 469
+ + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.animation.html b/edit/apidoc/ol.animation.html new file mode 100644 index 0000000000..e1f8d178bf --- /dev/null +++ b/edit/apidoc/ol.animation.html @@ -0,0 +1,1356 @@ + + + + + OpenLayers 3 API Documentation - Namespace: ol.animation + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol. + + ol.animation +

+ +
+ +
+
+ + + + +

The {ol.animation} static methods are designed to be used with the ol.Map#beforeRender method. For example:

+ +
var map = new ol.Map({ ... });
+var zoom = ol.animation.zoom({
+  resolution: map.getView().getResolution()
+});
+map.beforeRender(zoom);
+map.getView().setResolution(map.getView().getResolution() * 2);
+
+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • animation.jsdoc, line 1
+ + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + +

Methods

+ +
+ +
+

<static> bounce

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.animation.BounceOptions + + + +

Bounce options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • animation.js, line 14
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Pre-render function.

+
+ + + +
+
+ Type +
+
+ +ol.PreRenderFunction + + +
+
+ + + + +
+ + + +
+

<static> pan

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.animation.PanOptions + + + +

Pan options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • animation.js, line 48
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Pre-render function.

+
+ + + +
+
+ Type +
+
+ +ol.PreRenderFunction + + +
+
+ + + + +
+ + + +
+

<static> rotate

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.animation.RotateOptions + + + +

Rotate options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • animation.js, line 86
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Pre-render function.

+
+ + + +
+
+ Type +
+
+ +ol.PreRenderFunction + + +
+
+ + + + +
+ + + +
+

<static> zoom

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.animation.ZoomOptions + + + +

Zoom options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • animation.js, line 122
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Pre-render function.

+
+ + + +
+
+ Type +
+
+ +ol.PreRenderFunction + + +
+
+ + + + +
+ +
+ + + +

TypeDefs

+ +
+ +
+

BounceOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
resolution + + +number + + + +

The resolution to start the bounce from, typically map.getView().getResolution().

start + + +number +| + +undefined + + + +

The start time of the animation. Default is immediately.

duration + + +number +| + +undefined + + + +

The duration of the animation in milliseconds. Default is 1000.

easing + + +function + + + +

The easing function to use. Default is ol.easing.upAndDown

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 21
+ + + + + + + +
+ + + +
+ + + +
+

PanOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
source + + +ol.Coordinate + + + +

The location to start panning from, typically map.getView().getCenter().

start + + +number +| + +undefined + + + +

The start time of the animation. Default is immediately.

duration + + +number +| + +undefined + + + +

The duration of the animation in milliseconds. Default is 1000.

easing + + +function + + + +

The easing function to use. Default is ol.easing.inAndOut

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 23
+ + + + + + + +
+ + + +
+ + + +
+

RotateOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
rotation + + +number + + + +

The rotation to apply, in radians.

start + + +number +| + +undefined + + + +

The start time of the animation. Default is immediately.

duration + + +number +| + +undefined + + + +

The duration of the animation in milliseconds. Default is 1000.

easing + + +function + + + +

The easing function to use. Default is ol.easing.inAndOut

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 25
+ + + + + + + +
+ + + +
+ + + +
+

ZoomOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
resolution + + +number + + + +

number The resolution to begin zooming from, typically map.getView().getResolution().

start + + +number +| + +undefined + + + +

The start time of the animation. Default is immediately.

duration + + +number +| + +undefined + + + +

The duration of the animation in milliseconds.

easing + + +function + + + +

Easing function.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 27
+ + + + + + + +
+ + + +
+ +
+ + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.control.Attribution.html b/edit/apidoc/ol.control.Attribution.html new file mode 100644 index 0000000000..fe724feb9b --- /dev/null +++ b/edit/apidoc/ol.control.Attribution.html @@ -0,0 +1,2085 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.control.Attribution + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.control. + + ol.control.Attribution +

+ +
+ +
+
+ + + + +
+

new Attribution

+ + +
+
+ + +
+

Create a new attribution control to show all the attributions associated +with the layer sources in the map. A default map has this control included. +By default it will show in the bottom right portion of the map, but it can +be changed by using a css selector for .ol-attribution.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +ol.control.AttributionOptions + + + + + + <optional>
+ + + +
(Optional)

Attribution options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • attributioncontrol.js, line 26
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + +

Methods

+ +
+ +
+

bindTo

+ + +
+
+ + +
+

Binds a View to a Model.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
key + + +string + + + + + + + +

Key.

target + + +ol.Object + + + + + + + +

Target.

targetKey + + +string + + + + + + <optional>
+ + + +
(Optional)

Target key.

noNotify + + +boolean + + + + + + <optional>
+ + + +
(Optional)

No notify.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 147
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

get

+ + +
+
+ + +
+

Gets a value.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 170
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Value.

+
+ + + +
+
+ Type +
+
+ +* + + +
+
+ + + + +
+ + + +
+

getMap

+ + +
+
+ + +
+

Get the map associated with this control.

+
+ + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • control.js, line 65
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Map.

+
+ + + +
+
+ Type +
+
+ +ol.Map + + +
+
+ + + + +
+ + + +
+

notify

+ + +
+
+ + +
+

Notify all observers of a change on this property. This notifies both +objects that are bound to the object's property as well as the object +that it is bound to.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 208
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

on

+ + +
+
+ + +
+

Listen for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 240
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + +
+ + + +
+

once

+ + +
+
+ + +
+

Listen once for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 253
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + +
+ + + +
+

set

+ + +
+
+ + +
+

Sets a value.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

value + + +* + + + +

Value.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 263
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setMap

+ + +
+
+ + +
+

Remove the control from its current map and attach it to the new map. +Subclasses may set up event handlers to get notified about changes to +the map here.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
map + + +ol.Map + + + +

Map.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • control.js, line 85
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setValues

+ + +
+
+ + +
+

Sets a collection of key-value pairs.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
values + + +Object.<string, *> + + + +

Values.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 286
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

un

+ + +
+
+ + +
+

Unlisten for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 326
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unbind

+ + +
+
+ + +
+

Removes a binding. Unbinding will set the unbound property to the current + value. The object will not be notified, as the value has not changed.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 305
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unbindAll

+ + +
+
+ + +
+

Removes all bindings.

+
+ + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 344
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unByKey

+ + +
+
+ + +
+

Removes an event listener which was added with listen() by the key returned + by on().

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
key + + +number + + + + + + + + <nullable>
+ +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 336
+ + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.control.Control.html b/edit/apidoc/ol.control.Control.html new file mode 100644 index 0000000000..780f9214dd --- /dev/null +++ b/edit/apidoc/ol.control.Control.html @@ -0,0 +1,2063 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.control.Control + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.control. + + ol.control.Control +

+ +
+ +
+
+ + + + +
+

new Control

+ + +
+
+ + +
+

Something to be painted over the map to provide a means for interaction +(buttons) or to show annotations (status bars).

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.control.ControlOptions + + + +

Control options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • control.js, line 20
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + +

Methods

+ +
+ +
+

bindTo

+ + +
+
+ + +
+

Binds a View to a Model.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
key + + +string + + + + + + + +

Key.

target + + +ol.Object + + + + + + + +

Target.

targetKey + + +string + + + + + + <optional>
+ + + +
(Optional)

Target key.

noNotify + + +boolean + + + + + + <optional>
+ + + +
(Optional)

No notify.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 147
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

get

+ + +
+
+ + +
+

Gets a value.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 170
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Value.

+
+ + + +
+
+ Type +
+
+ +* + + +
+
+ + + + +
+ + + +
+

getMap

+ + +
+
+ + +
+

Get the map associated with this control.

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • control.js, line 65
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Map.

+
+ + + +
+
+ Type +
+
+ +ol.Map + + +
+
+ + + + +
+ + + +
+

notify

+ + +
+
+ + +
+

Notify all observers of a change on this property. This notifies both +objects that are bound to the object's property as well as the object +that it is bound to.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 208
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

on

+ + +
+
+ + +
+

Listen for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 240
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + +
+ + + +
+

once

+ + +
+
+ + +
+

Listen once for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 253
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + +
+ + + +
+

set

+ + +
+
+ + +
+

Sets a value.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

value + + +* + + + +

Value.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 263
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setMap

+ + +
+
+ + +
+

Remove the control from its current map and attach it to the new map. +Subclasses may set up event handlers to get notified about changes to +the map here.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
map + + +ol.Map + + + +

Map.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • control.js, line 85
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setValues

+ + +
+
+ + +
+

Sets a collection of key-value pairs.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
values + + +Object.<string, *> + + + +

Values.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 286
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

un

+ + +
+
+ + +
+

Unlisten for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 326
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unbind

+ + +
+
+ + +
+

Removes a binding. Unbinding will set the unbound property to the current + value. The object will not be notified, as the value has not changed.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 305
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unbindAll

+ + +
+
+ + +
+

Removes all bindings.

+
+ + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 344
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unByKey

+ + +
+
+ + +
+

Removes an event listener which was added with listen() by the key returned + by on().

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
key + + +number + + + + + + + + <nullable>
+ +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 336
+ + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.control.FullScreen.html b/edit/apidoc/ol.control.FullScreen.html new file mode 100644 index 0000000000..788fae3fcb --- /dev/null +++ b/edit/apidoc/ol.control.FullScreen.html @@ -0,0 +1,2085 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.control.FullScreen + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.control. + + ol.control.FullScreen +

+ +
+ +
+
+ + + + +
+

new FullScreen

+ + +
+
+ + +
+

Provides a button that when clicked fills up the full screen with the map. +When in full screen mode, a close button is shown to exit full screen mode. +The Fullscreen API is used to +toggle the map in full screen mode.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +ol.control.FullScreenOptions + + + + + + <optional>
+ + + +
(Optional)

Options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • fullscreencontrol.js, line 27
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + +

Methods

+ +
+ +
+

bindTo

+ + +
+
+ + +
+

Binds a View to a Model.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
key + + +string + + + + + + + +

Key.

target + + +ol.Object + + + + + + + +

Target.

targetKey + + +string + + + + + + <optional>
+ + + +
(Optional)

Target key.

noNotify + + +boolean + + + + + + <optional>
+ + + +
(Optional)

No notify.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 147
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

get

+ + +
+
+ + +
+

Gets a value.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 170
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Value.

+
+ + + +
+
+ Type +
+
+ +* + + +
+
+ + + + +
+ + + +
+

getMap

+ + +
+
+ + +
+

Get the map associated with this control.

+
+ + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • control.js, line 65
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Map.

+
+ + + +
+
+ Type +
+
+ +ol.Map + + +
+
+ + + + +
+ + + +
+

notify

+ + +
+
+ + +
+

Notify all observers of a change on this property. This notifies both +objects that are bound to the object's property as well as the object +that it is bound to.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 208
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

on

+ + +
+
+ + +
+

Listen for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 240
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + +
+ + + +
+

once

+ + +
+
+ + +
+

Listen once for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 253
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + +
+ + + +
+

set

+ + +
+
+ + +
+

Sets a value.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

value + + +* + + + +

Value.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 263
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setMap

+ + +
+
+ + +
+

Remove the control from its current map and attach it to the new map. +Subclasses may set up event handlers to get notified about changes to +the map here.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
map + + +ol.Map + + + +

Map.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • control.js, line 85
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setValues

+ + +
+
+ + +
+

Sets a collection of key-value pairs.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
values + + +Object.<string, *> + + + +

Values.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 286
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

un

+ + +
+
+ + +
+

Unlisten for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 326
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unbind

+ + +
+
+ + +
+

Removes a binding. Unbinding will set the unbound property to the current + value. The object will not be notified, as the value has not changed.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 305
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unbindAll

+ + +
+
+ + +
+

Removes all bindings.

+
+ + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 344
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unByKey

+ + +
+
+ + +
+

Removes an event listener which was added with listen() by the key returned + by on().

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
key + + +number + + + + + + + + <nullable>
+ +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 336
+ + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.control.Logo.html b/edit/apidoc/ol.control.Logo.html new file mode 100644 index 0000000000..262a1fa508 --- /dev/null +++ b/edit/apidoc/ol.control.Logo.html @@ -0,0 +1,2085 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.control.Logo + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.control. + + ol.control.Logo +

+ +
+ +
+
+ + + + +
+ + + +
+
+ + +
+

Shows a logo for all the layer sources in the map that have a logo +associated with them, such as Bing. This control is part of a default map. +By default it will show in the bottom-left portion of the map, but it can +be styled by using a css selector for .ol-logo.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +ol.control.LogoOptions + + + + + + <optional>
+ + + +
(Optional)

Logo options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • logocontrol.js, line 22
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + +

Methods

+ +
+ +
+

bindTo

+ + +
+
+ + +
+

Binds a View to a Model.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
key + + +string + + + + + + + +

Key.

target + + +ol.Object + + + + + + + +

Target.

targetKey + + +string + + + + + + <optional>
+ + + +
(Optional)

Target key.

noNotify + + +boolean + + + + + + <optional>
+ + + +
(Optional)

No notify.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 147
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

get

+ + +
+
+ + +
+

Gets a value.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 170
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Value.

+
+ + + +
+
+ Type +
+
+ +* + + +
+
+ + + + +
+ + + +
+

getMap

+ + +
+
+ + +
+

Get the map associated with this control.

+
+ + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • control.js, line 65
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Map.

+
+ + + +
+
+ Type +
+
+ +ol.Map + + +
+
+ + + + +
+ + + +
+

notify

+ + +
+
+ + +
+

Notify all observers of a change on this property. This notifies both +objects that are bound to the object's property as well as the object +that it is bound to.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 208
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

on

+ + +
+
+ + +
+

Listen for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 240
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + +
+ + + +
+

once

+ + +
+
+ + +
+

Listen once for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 253
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + +
+ + + +
+

set

+ + +
+
+ + +
+

Sets a value.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

value + + +* + + + +

Value.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 263
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setMap

+ + +
+
+ + +
+

Remove the control from its current map and attach it to the new map. +Subclasses may set up event handlers to get notified about changes to +the map here.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
map + + +ol.Map + + + +

Map.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • control.js, line 85
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setValues

+ + +
+
+ + +
+

Sets a collection of key-value pairs.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
values + + +Object.<string, *> + + + +

Values.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 286
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

un

+ + +
+
+ + +
+

Unlisten for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 326
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unbind

+ + +
+
+ + +
+

Removes a binding. Unbinding will set the unbound property to the current + value. The object will not be notified, as the value has not changed.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 305
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unbindAll

+ + +
+
+ + +
+

Removes all bindings.

+
+ + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 344
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unByKey

+ + +
+
+ + +
+

Removes an event listener which was added with listen() by the key returned + by on().

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
key + + +number + + + + + + + + <nullable>
+ +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 336
+ + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.control.MousePosition.html b/edit/apidoc/ol.control.MousePosition.html new file mode 100644 index 0000000000..01fc007785 --- /dev/null +++ b/edit/apidoc/ol.control.MousePosition.html @@ -0,0 +1,2467 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.control.MousePosition + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.control. + + ol.control.MousePosition +

+ +
+ +
+
+ + + + +
+

new MousePosition

+ + +
+
+ + +
+

Create a new control to show the position of the mouse in the map's +projection (or any other supplied projection). By default the control is +shown in the top right corner of the map but this can be changed by using +a css selector .ol-mouse-position.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +ol.control.MousePositionOptions + + + + + + <optional>
+ + + +
(Optional)

Mouse position options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • mousepositioncontrol.js, line 41
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + +

Methods

+ +
+ +
+

bindTo

+ + +
+
+ + +
+

Binds a View to a Model.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
key + + +string + + + + + + + +

Key.

target + + +ol.Object + + + + + + + +

Target.

targetKey + + +string + + + + + + <optional>
+ + + +
(Optional)

Target key.

noNotify + + +boolean + + + + + + <optional>
+ + + +
(Optional)

No notify.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 147
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

get

+ + +
+
+ + +
+

Gets a value.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 170
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Value.

+
+ + + +
+
+ Type +
+
+ +* + + +
+
+ + + + +
+ + + +
+

getCoordinateFormat

+ + +
+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • mousepositioncontrol.js, line 131
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

projection.

+
+ + + +
+
+ Type +
+
+ +ol.CoordinateFormatType +| + +undefined + + +
+
+ + + + +
+ + + +
+

getMap

+ + +
+
+ + +
+

Get the map associated with this control.

+
+ + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • control.js, line 65
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Map.

+
+ + + +
+
+ Type +
+
+ +ol.Map + + +
+
+ + + + +
+ + + +
+

getProjection

+ + +
+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • mousepositioncontrol.js, line 144
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

projection.

+
+ + + +
+
+ Type +
+
+ +ol.Projection +| + +undefined + + +
+
+ + + + +
+ + + +
+

notify

+ + +
+
+ + +
+

Notify all observers of a change on this property. This notifies both +objects that are bound to the object's property as well as the object +that it is bound to.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 208
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

on

+ + +
+
+ + +
+

Listen for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 240
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + +
+ + + +
+

once

+ + +
+
+ + +
+

Listen once for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 253
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + +
+ + + +
+

set

+ + +
+
+ + +
+

Sets a value.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

value + + +* + + + +

Value.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 263
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setCoordinateFormat

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
format + + +ol.CoordinateFormatType + + + +

Coordinate format.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • mousepositioncontrol.js, line 197
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setMap

+ + +
+
+ + +
+

Remove the control from its current map and attach it to the new map. +Subclasses may set up event handlers to get notified about changes to +the map here.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
map + + +ol.Map + + + +

Map.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • control.js, line 85
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setProjection

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
projection + + +ol.Projection + + + +

Projection.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • mousepositioncontrol.js, line 209
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setValues

+ + +
+
+ + +
+

Sets a collection of key-value pairs.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
values + + +Object.<string, *> + + + +

Values.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 286
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

un

+ + +
+
+ + +
+

Unlisten for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 326
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unbind

+ + +
+
+ + +
+

Removes a binding. Unbinding will set the unbound property to the current + value. The object will not be notified, as the value has not changed.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 305
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unbindAll

+ + +
+
+ + +
+

Removes all bindings.

+
+ + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 344
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unByKey

+ + +
+
+ + +
+

Removes an event listener which was added with listen() by the key returned + by on().

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
key + + +number + + + + + + + + <nullable>
+ +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 336
+ + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.control.ScaleLine.html b/edit/apidoc/ol.control.ScaleLine.html new file mode 100644 index 0000000000..35a5f1a7a6 --- /dev/null +++ b/edit/apidoc/ol.control.ScaleLine.html @@ -0,0 +1,2273 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.control.ScaleLine + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.control. + + ol.control.ScaleLine +

+ +
+ +
+
+ + + + +
+

new ScaleLine

+ + +
+
+ + +
+

Create a control to help users estimate distances on a map.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +ol.control.ScaleLineOptions + + + + + + <optional>
+ + + +
(Optional)

Scale line options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • scalelinecontrol.js, line 50
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + +

Methods

+ +
+ +
+

bindTo

+ + +
+
+ + +
+

Binds a View to a Model.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
key + + +string + + + + + + + +

Key.

target + + +ol.Object + + + + + + + +

Target.

targetKey + + +string + + + + + + <optional>
+ + + +
(Optional)

Target key.

noNotify + + +boolean + + + + + + <optional>
+ + + +
(Optional)

No notify.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 147
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

get

+ + +
+
+ + +
+

Gets a value.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 170
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Value.

+
+ + + +
+
+ Type +
+
+ +* + + +
+
+ + + + +
+ + + +
+

getMap

+ + +
+
+ + +
+

Get the map associated with this control.

+
+ + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • control.js, line 65
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Map.

+
+ + + +
+
+ Type +
+
+ +ol.Map + + +
+
+ + + + +
+ + + +
+

getUnits

+ + +
+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • scalelinecontrol.js, line 134
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

units.

+
+ + + +
+
+ Type +
+
+ +ol.control.ScaleLineUnits +| + +undefined + + +
+
+ + + + +
+ + + +
+

notify

+ + +
+
+ + +
+

Notify all observers of a change on this property. This notifies both +objects that are bound to the object's property as well as the object +that it is bound to.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 208
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

on

+ + +
+
+ + +
+

Listen for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 240
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + +
+ + + +
+

once

+ + +
+
+ + +
+

Listen once for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 253
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + +
+ + + +
+

set

+ + +
+
+ + +
+

Sets a value.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

value + + +* + + + +

Value.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 263
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setMap

+ + +
+
+ + +
+

Remove the control from its current map and attach it to the new map. +Subclasses may set up event handlers to get notified about changes to +the map here.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
map + + +ol.Map + + + +

Map.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • control.js, line 85
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setUnits

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
units + + +ol.control.ScaleLineUnits + + + +

Units.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • scalelinecontrol.js, line 169
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setValues

+ + +
+
+ + +
+

Sets a collection of key-value pairs.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
values + + +Object.<string, *> + + + +

Values.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 286
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

un

+ + +
+
+ + +
+

Unlisten for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 326
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unbind

+ + +
+
+ + +
+

Removes a binding. Unbinding will set the unbound property to the current + value. The object will not be notified, as the value has not changed.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 305
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unbindAll

+ + +
+
+ + +
+

Removes all bindings.

+
+ + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 344
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unByKey

+ + +
+
+ + +
+

Removes an event listener which was added with listen() by the key returned + by on().

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
key + + +number + + + + + + + + <nullable>
+ +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 336
+ + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.control.Zoom.html b/edit/apidoc/ol.control.Zoom.html new file mode 100644 index 0000000000..a9176fb5e3 --- /dev/null +++ b/edit/apidoc/ol.control.Zoom.html @@ -0,0 +1,2084 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.control.Zoom + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.control. + + ol.control.Zoom +

+ +
+ +
+
+ + + + +
+

new Zoom

+ + +
+
+ + +
+

Create a new control with 2 buttons, one for zoom in and one for zoom out. +This control is part of the default controls of a map. To style this control +use css selectors .ol-zoom-in and .ol-zoom-out.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +ol.control.ZoomOptions + + + + + + <optional>
+ + + +
(Optional)

Zoom options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • zoomcontrol.js, line 30
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + +

Methods

+ +
+ +
+

bindTo

+ + +
+
+ + +
+

Binds a View to a Model.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
key + + +string + + + + + + + +

Key.

target + + +ol.Object + + + + + + + +

Target.

targetKey + + +string + + + + + + <optional>
+ + + +
(Optional)

Target key.

noNotify + + +boolean + + + + + + <optional>
+ + + +
(Optional)

No notify.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 147
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

get

+ + +
+
+ + +
+

Gets a value.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 170
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Value.

+
+ + + +
+
+ Type +
+
+ +* + + +
+
+ + + + +
+ + + +
+

getMap

+ + +
+
+ + +
+

Get the map associated with this control.

+
+ + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • control.js, line 65
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Map.

+
+ + + +
+
+ Type +
+
+ +ol.Map + + +
+
+ + + + +
+ + + +
+

notify

+ + +
+
+ + +
+

Notify all observers of a change on this property. This notifies both +objects that are bound to the object's property as well as the object +that it is bound to.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 208
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

on

+ + +
+
+ + +
+

Listen for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 240
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + +
+ + + +
+

once

+ + +
+
+ + +
+

Listen once for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 253
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + +
+ + + +
+

set

+ + +
+
+ + +
+

Sets a value.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

value + + +* + + + +

Value.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 263
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setMap

+ + +
+
+ + +
+

Remove the control from its current map and attach it to the new map. +Subclasses may set up event handlers to get notified about changes to +the map here.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
map + + +ol.Map + + + +

Map.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • control.js, line 85
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setValues

+ + +
+
+ + +
+

Sets a collection of key-value pairs.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
values + + +Object.<string, *> + + + +

Values.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 286
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

un

+ + +
+
+ + +
+

Unlisten for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 326
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unbind

+ + +
+
+ + +
+

Removes a binding. Unbinding will set the unbound property to the current + value. The object will not be notified, as the value has not changed.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 305
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unbindAll

+ + +
+
+ + +
+

Removes all bindings.

+
+ + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 344
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unByKey

+ + +
+
+ + +
+

Removes an event listener which was added with listen() by the key returned + by on().

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
key + + +number + + + + + + + + <nullable>
+ +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 336
+ + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.control.ZoomSlider.html b/edit/apidoc/ol.control.ZoomSlider.html new file mode 100644 index 0000000000..c1b143b2dc --- /dev/null +++ b/edit/apidoc/ol.control.ZoomSlider.html @@ -0,0 +1,2087 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.control.ZoomSlider + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.control. + + ol.control.ZoomSlider +

+ +
+ +
+
+ + + + +
+

new ZoomSlider

+ + +
+
+ + +
+

A slider type of control for zooming.

+ +

Example:

+ +
map.addControl(new ol.control.ZoomSlider());
+
+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +ol.control.ZoomSliderOptions + + + + + + <optional>
+ + + +
(Optional)

Zoom slider options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • zoomslidercontrol.js, line 42
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + +

Methods

+ +
+ +
+

bindTo

+ + +
+
+ + +
+

Binds a View to a Model.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
key + + +string + + + + + + + +

Key.

target + + +ol.Object + + + + + + + +

Target.

targetKey + + +string + + + + + + <optional>
+ + + +
(Optional)

Target key.

noNotify + + +boolean + + + + + + <optional>
+ + + +
(Optional)

No notify.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 147
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

get

+ + +
+
+ + +
+

Gets a value.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 170
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Value.

+
+ + + +
+
+ Type +
+
+ +* + + +
+
+ + + + +
+ + + +
+

getMap

+ + +
+
+ + +
+

Get the map associated with this control.

+
+ + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • control.js, line 65
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Map.

+
+ + + +
+
+ Type +
+
+ +ol.Map + + +
+
+ + + + +
+ + + +
+

notify

+ + +
+
+ + +
+

Notify all observers of a change on this property. This notifies both +objects that are bound to the object's property as well as the object +that it is bound to.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 208
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

on

+ + +
+
+ + +
+

Listen for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 240
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + +
+ + + +
+

once

+ + +
+
+ + +
+

Listen once for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 253
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + +
+ + + +
+

set

+ + +
+
+ + +
+

Sets a value.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

value + + +* + + + +

Value.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 263
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setMap

+ + +
+
+ + +
+

Remove the control from its current map and attach it to the new map. +Subclasses may set up event handlers to get notified about changes to +the map here.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
map + + +ol.Map + + + +

Map.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • control.js, line 85
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setValues

+ + +
+
+ + +
+

Sets a collection of key-value pairs.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
values + + +Object.<string, *> + + + +

Values.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 286
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

un

+ + +
+
+ + +
+

Unlisten for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 326
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unbind

+ + +
+
+ + +
+

Removes a binding. Unbinding will set the unbound property to the current + value. The object will not be notified, as the value has not changed.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 305
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unbindAll

+ + +
+
+ + +
+

Removes all bindings.

+
+ + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 344
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unByKey

+ + +
+
+ + +
+

Removes an event listener which was added with listen() by the key returned + by on().

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
key + + +number + + + + + + + + <nullable>
+ +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 336
+ + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.control.ZoomToExtent.html b/edit/apidoc/ol.control.ZoomToExtent.html new file mode 100644 index 0000000000..93c43afcfc --- /dev/null +++ b/edit/apidoc/ol.control.ZoomToExtent.html @@ -0,0 +1,2084 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.control.ZoomToExtent + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.control. + + ol.control.ZoomToExtent +

+ +
+ +
+
+ + + + +
+

new ZoomToExtent

+ + +
+
+ + +
+

Create a control that adds a button, which, when pressed, changes +the map view to a specific extent. To style this control use the +css selector .ol-zoom-extent.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +ol.control.ZoomToExtentOptions + + + + + + <optional>
+ + + +
(Optional)

Options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • zoomtoextentcontrol.js, line 22
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + +

Methods

+ +
+ +
+

bindTo

+ + +
+
+ + +
+

Binds a View to a Model.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
key + + +string + + + + + + + +

Key.

target + + +ol.Object + + + + + + + +

Target.

targetKey + + +string + + + + + + <optional>
+ + + +
(Optional)

Target key.

noNotify + + +boolean + + + + + + <optional>
+ + + +
(Optional)

No notify.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 147
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

get

+ + +
+
+ + +
+

Gets a value.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 170
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Value.

+
+ + + +
+
+ Type +
+
+ +* + + +
+
+ + + + +
+ + + +
+

getMap

+ + +
+
+ + +
+

Get the map associated with this control.

+
+ + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • control.js, line 65
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Map.

+
+ + + +
+
+ Type +
+
+ +ol.Map + + +
+
+ + + + +
+ + + +
+

notify

+ + +
+
+ + +
+

Notify all observers of a change on this property. This notifies both +objects that are bound to the object's property as well as the object +that it is bound to.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 208
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

on

+ + +
+
+ + +
+

Listen for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 240
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + +
+ + + +
+

once

+ + +
+
+ + +
+

Listen once for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 253
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Unique key for the listener.

+
+ + + +
+
+ Type +
+
+ +goog.events.Key + + +
+
+ + + + +
+ + + +
+

set

+ + +
+
+ + +
+

Sets a value.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

value + + +* + + + +

Value.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 263
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setMap

+ + +
+
+ + +
+

Remove the control from its current map and attach it to the new map. +Subclasses may set up event handlers to get notified about changes to +the map here.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
map + + +ol.Map + + + +

Map.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • control.js, line 85
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setValues

+ + +
+
+ + +
+

Sets a collection of key-value pairs.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
values + + +Object.<string, *> + + + +

Values.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 286
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

un

+ + +
+
+ + +
+

Unlisten for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 326
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unbind

+ + +
+
+ + +
+

Removes a binding. Unbinding will set the unbound property to the current + value. The object will not be notified, as the value has not changed.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 305
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unbindAll

+ + +
+
+ + +
+

Removes all bindings.

+
+ + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 344
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unByKey

+ + +
+
+ + +
+

Removes an event listener which was added with listen() by the key returned + by on().

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
key + + +number + + + + + + + + <nullable>
+ +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 336
+ + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.control.html b/edit/apidoc/ol.control.html new file mode 100644 index 0000000000..f5ebabec99 --- /dev/null +++ b/edit/apidoc/ol.control.html @@ -0,0 +1,2135 @@ + + + + + OpenLayers 3 API Documentation - Namespace: ol.control + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol. + + ol.control +

+ +
+ +
+
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • control.jsdoc, line 1
+ + + + + + + +
+ + + + +
+ + + + + + + + +

Classes

+ +
+
ol.control.Attribution
+
+ +
ol.control.Control
+
+ +
ol.control.FullScreen
+
+ +
ol.control.Logo
+
+ +
ol.control.MousePosition
+
+ +
ol.control.ScaleLine
+
+ +
ol.control.Zoom
+
+ +
ol.control.ZoomSlider
+
+ +
ol.control.ZoomToExtent
+
+
+ + + + + +

Members

+ +
+ +
+

<static> ScaleLineUnits :string

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
DEGREES + + +string + + + + + + degrees + +
IMPERIAL + + +string + + + + + + imperial + +
NAUTICAL + + +string + + + + + + nautical + +
METRIC + + +string + + + + + + metric + +
US + + +string + + + + + + us + +
+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • scalelinecontrol.js, line 33
+ + + + + + + +
+ + + +
+ +
+ + + +

Methods

+ +
+ +
+

<static> defaults

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +ol.control.DefaultsOptions + + + + + + <optional>
+ + + +
(Optional)

Defaults options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • controldefaults.js, line 13
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Controls.

+
+ + + +
+
+ Type +
+
+ +ol.Collection + + +
+
+ + + + +
+ +
+ + + +

TypeDefs

+ +
+ +
+

AttributionOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
className + + +string +| + +undefined + + + +

CSS class name. Default is 'ol-attribution'.

target + + +Element +| + +undefined + + + +

Target.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 29
+ + + + + + + +
+ + + +
+ + + +
+

ControlOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
element + + +Element +| + +undefined + + + +

Element.

target + + +Element +| + +undefined + + + +

Target.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 31
+ + + + + + + +
+ + + +
+ + + +
+

DefaultsOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
attribution + + +boolean +| + +undefined + + + +

Attribution.

attributionOptions + + +ol.control.AttributionOptions +| + +undefined + + + +

Attribution options.

logo + + +boolean +| + +undefined + + + +

Logo.

logoOptions + + +ol.control.LogoOptions +| + +undefined + + + +

Logo options.

zoom + + +boolean +| + +undefined + + + +

Zoom.

zoomOptions + + +ol.control.ZoomOptions +| + +undefined + + + +

Zoom options.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 33
+ + + + + + + +
+ + + +
+ + + +
+

FullScreenOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
className + + +string +| + +undefined + + + +

CSS class name. Default is 'ol-full-screen'.

keys + + +boolean +| + +undefined + + + +

Full keyboard access.

target + + +Element +| + +undefined + + + +

Target.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 35
+ + + + + + + +
+ + + +
+ + + +
+

LogoOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
className + + +string +| + +undefined + + + +

CSS class name. Default is 'ol-logo'.

target + + +Element +| + +undefined + + + +

Target.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 37
+ + + + + + + +
+ + + +
+ + + +
+

MousePositionOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
className + + +string +| + +undefined + + + +

CSS class name. Default is 'ol-mouse-position'.

coordinateFormat + + +ol.CoordinateFormatType +| + +undefined + + + +

Coordinate + format.

projection + + +ol.ProjectionLike + + + +

Projection.

target + + +Element +| + +undefined + + + +

Target.

undefinedHTML + + +string +| + +undefined + + + +

Markup for undefined coordinates. + Default is '' (empty string).

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 39
+ + + + + + + +
+ + + +
+ + + +
+

ScaleLineOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
className + + +string +| + +undefined + + + +

CSS Class name. Default is 'ol-scale-line'.

minWidth + + +number +| + +undefined + + + +

Minimum width in pixels.

target + + +Element +| + +undefined + + + +

Target.

units + + +ol.control.ScaleLineUnits +| + +undefined + + + +

Units.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 41
+ + + + + + + +
+ + + +
+ + + +
+

ZoomOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
className + + +string +| + +undefined + + + +

CSS class name. Default is 'ol-zoom'.

delta + + +number +| + +undefined + + + +

The zoom delta applied on each click.

target + + +Element +| + +undefined + + + +

Target.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 43
+ + + + + + + +
+ + + +
+ + + +
+

ZoomSliderOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
className + + +string +| + +undefined + + + +

CSS class name.

maxResolution + + +number +| + +undefined + + + +

Maximum resolution.

minResolution + + +number +| + +undefined + + + +

Minimum resolution.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 45
+ + + + + + + +
+ + + +
+ + + +
+

ZoomToExtentOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
className + + +string +| + +undefined + + + +

Class name.

target + + +Element +| + +undefined + + + +

Target.

extent + + +ol.Extent +| + +undefined + + + +

The extent to zoom to. If + undefined the validity extent of the view projection is used.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 47
+ + + + + + + +
+ + + +
+ +
+ + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/master/apidoc/ol.Collection.html b/edit/apidoc/ol.dom.Input.html similarity index 55% rename from master/apidoc/ol.Collection.html rename to edit/apidoc/ol.dom.Input.html index f363375756..3c1e32c65b 100644 --- a/master/apidoc/ol.Collection.html +++ b/edit/apidoc/ol.dom.Input.html @@ -2,7 +2,7 @@ - OpenLayers: Class: ol.Collection + OpenLayers 3 API Documentation - Class: ol.dom.Input @@ -11,14 +11,28 @@ + + + -
- -

Class: ol.Collection

- + + +
@@ -27,7 +41,7 @@

- ol.Collection + ol.dom.Input

@@ -39,13 +53,24 @@
-

new Collection

+

new Input

+
+

Helper class for binding HTML input to an ol.Object

+ +

Example:

+ +
// bind a checkbox with id 'visible' to a layer's visibility
+var visible = new ol.dom.Input(document.getElementById('visible'));
+visible.bindTo('checked', layer, 'visible');
+
+
+ @@ -65,8 +90,6 @@ Type - Argument - @@ -79,31 +102,23 @@ - array + target -Array= +Element - - - <optional>
- - - - - - (Optional) Array. +

Target element.

@@ -133,7 +148,7 @@
Source:
-
  • collection.js, line 60
+
  • input.js, line 33
@@ -173,112 +188,6 @@ -

Members

- -
- -
-

changed

- - -
-
- - - -
- - - - - - - -
Inherited From:
-
- - - - - - - - - - - - - -
Source:
-
  • object.js, line 166
- - - - - - - -
- - - -
- - - -
-

setValues

- - -
-
- - - -
- - - - - - - -
Inherited From:
-
- - - - - - - - - - - - - -
Source:
-
  • object.js, line 275
- - - - - - - -
- - - -
- -
-

Methods

@@ -293,6 +202,10 @@
+
+

Binds a View to a Model.

+
+ @@ -348,7 +261,7 @@ - Key. +

Key.

@@ -377,7 +290,7 @@ - Target. +

Target.

@@ -390,7 +303,7 @@ -string= +string @@ -408,7 +321,7 @@ - (Optional) Target key. + (Optional)

Target key.

@@ -421,7 +334,7 @@ -boolean= +boolean @@ -439,7 +352,7 @@ - (Optional) No notify. + (Optional)

No notify.

@@ -474,323 +387,7 @@
Source:
-
  • object.js, line 145
- - - - - - - - - - - - - - - - - - - - - -
-

clear

- - -
-
- - -
- Remove all elements from the collection. -
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • collection.js, line 79
- - - - - - - -
- - - - - - - - - -
- - - -
-

extend

- - -
-
- - - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
arr - - -Array - - - - Array.
- - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • collection.js, line 89
- - - - - - - -
- - - - - - - - - -
- - - -
-

forEach

- - -
-
- - - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeArgumentDescription
f - - -Function - - - - - - - - Function.
obj - - -Object= - - - - - - <optional>
- - - -
(Optional) Object.
- - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • collection.js, line 101
+
  • object.js, line 147
@@ -820,6 +417,10 @@
+
+

Gets a value.

+
+ @@ -867,7 +468,7 @@ - Key. +

Key.

@@ -902,7 +503,7 @@
Source:
-
  • object.js, line 173
+
  • object.js, line 170
@@ -922,7 +523,7 @@
- Value. +

Value.

@@ -947,217 +548,7 @@
-

getArray

- - -
-
- - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • collection.js, line 109
- - - - - - - -
- - - - - - - -
Returns:
- - -
- Array. -
- - - -
-
- Type -
-
- -Array - - -
-
- - - - -
- - - -
-

getAt

- - -
-
- - - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
index - - -number - - - - Index.
- - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • collection.js, line 118
- - - - - - - -
- - - - - - - -
Returns:
- - -
- Element. -
- - - -
-
- Type -
-
- -* - - -
-
- - - - -
- - - -
-

getKeys

+

getChecked

@@ -1165,7 +556,7 @@
- Get a list of object property names. +

If the input is a checkbox, return whether or not the checbox is checked.

@@ -1184,11 +575,6 @@ -
Inherited From:
-
- @@ -1202,7 +588,7 @@
Source:
-
  • object.js, line 197
+
  • input.js, line 62
@@ -1222,7 +608,7 @@
- List of property names. +

checked.

@@ -1233,7 +619,10 @@
-Array.<string> +boolean +| + +undefined
@@ -1247,13 +636,17 @@
-

getLength

+

getValue

+
+

Get the value of the input.

+
+ @@ -1283,7 +676,7 @@
Source:
-
  • collection.js, line 126
+
  • input.js, line 75
@@ -1303,7 +696,7 @@
- Length. +

input value.

@@ -1314,7 +707,10 @@
-number +string +| + +undefined
@@ -1328,90 +724,23 @@
-

insertAt

+

getValueAsNumber

+
+

Get the value of the input as a number.

+
+ -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
index - - -number - - - - Index.
elem - - -* - - - - Element.
-
@@ -1435,7 +764,7 @@
Source:
-
  • collection.js, line 135
+
  • input.js, line 88
@@ -1451,6 +780,34 @@ +
Returns:
+ + +
+

input value as number.

+
+ + + +
+
+ Type +
+
+ +number +| + +null +| + +undefined + + +
+
+ +
@@ -1465,6 +822,12 @@
+
+

Notify all observers of a change on this property. This notifies both +objects that are bound to the object's property as well as the object +that it is bound to.

+
+ @@ -1512,7 +875,7 @@ - Key. +

Key.

@@ -1570,217 +933,7 @@
-

pop

- - -
-
- - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • collection.js, line 146
- - - - - - - -
- - - - - - - -
Returns:
- - -
- Element. -
- - - -
-
- Type -
-
- -* - - -
-
- - - - -
- - - -
-

push

- - -
-
- - - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
elem - - -* - - - - Element.
- - - -
- - - - - - - - - - - - - - - - - - - -
Source:
-
  • collection.js, line 155
- - - - - - - -
- - - - - - - -
Returns:
- - -
- Length. -
- - - -
-
- Type -
-
- -number - - -
-
- - - - -
- - - -
-

remove

+

on

@@ -1788,7 +941,7 @@
- Removes the first occurence of elem from the collection. +

Listen for a certain type of event.

@@ -1810,6 +963,8 @@ Type + Argument + @@ -1822,23 +977,93 @@ - elem + type -* +string +| + +Array.<string> + + + + + - Element. + +

The event type or array of event types.

+ + + + + + + listener + + + + + +Function + + + + + + + + + + + + + + + +

The listener function.

+ + + + + + + scope + + + + + +Object + + + + + + + + + <optional>
+ + + + + + + + + (Optional)

Object is whose scope to call + the listener.

@@ -1855,6 +1080,11 @@ +
Inherited From:
+
+ @@ -1868,7 +1098,7 @@
Source:
-
  • collection.js, line 167
+
  • object.js, line 240
@@ -1888,7 +1118,7 @@
- The removed element or undefined if elem was not found. +

Unique key for the listener.

@@ -1899,7 +1129,7 @@
-* +goog.events.Key
@@ -1913,13 +1143,17 @@
-

removeAt

+

once

+
+

Listen once for a certain type of event.

+
+ @@ -1939,6 +1173,8 @@ Type + Argument + @@ -1951,23 +1187,93 @@ - index + type -number +string +| + +Array.<string> + + + + + - Index. + +

The event type or array of event types.

+ + + + + + + listener + + + + + +Function + + + + + + + + + + + + + + + +

The listener function.

+ + + + + + + scope + + + + + +Object + + + + + + + + + <optional>
+ + + + + + + + + (Optional)

Object is whose scope to call + the listener.

@@ -1984,6 +1290,11 @@ +
Inherited From:
+
+ @@ -1997,7 +1308,7 @@
Source:
-
  • collection.js, line 182
+
  • object.js, line 253
@@ -2017,7 +1328,7 @@
- Value. +

Unique key for the listener.

@@ -2028,7 +1339,7 @@
-* +goog.events.Key
@@ -2049,6 +1360,10 @@
+
+

Sets a value.

+
+ @@ -2096,7 +1411,7 @@ - Key. +

Key.

@@ -2119,7 +1434,7 @@ - Value. +

Value.

@@ -2154,7 +1469,7 @@
Source:
-
  • object.js, line 236
+
  • object.js, line 263
@@ -2177,13 +1492,17 @@
-

setAt

+

setChecked

+
+

Set whether or not a checkbox is checked.

+
+ @@ -2215,13 +1534,13 @@ - index + checked -number +boolean @@ -2231,30 +1550,7 @@ - Index. - - - - - - - elem - - - - - -* - - - - - - - - - - Element. +

Checked.

@@ -2284,7 +1580,7 @@
Source:
-
  • collection.js, line 196
+
  • input.js, line 127
@@ -2307,13 +1603,17 @@
-

setOptions

+

setValue

+
+

Sets the value of the input.

+
+ @@ -2345,7 +1645,229 @@ - options + value + + + + + +string + + + + + + + + + +

Value.

+ + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • input.js, line 101
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setValueAsNumber

+ + +
+
+ + +
+

Sets the number value of the input.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
value + + +number + + + +

Number value.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • input.js, line 114
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

setValues

+ + +
+
+ + +
+

Sets a collection of key-value pairs.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2380,7 +1902,7 @@
Inherited From:
@@ -2396,7 +1918,195 @@
Source:
-
  • object.js, line 258
+
  • object.js, line 286
+ + + + + + + + + + + + + + + + + + + + + +
+

un

+ + +
+
+ + +
+

Unlisten for a certain type of event.

+
+ + + + + + + +
Parameters:
+ + +
NameTypeDescription
values @@ -2361,7 +1883,7 @@ - Options.

Values.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
type + + +string +| + +Array.<string> + + + + + + + +

The event type or array of event types.

listener + + +Function + + + + + + + +

The listener function.

scope + + +Object + + + + + + <optional>
+ + + +
(Optional)

Object is whose scope to call + the listener.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 326
@@ -2426,6 +2136,11 @@
+
+

Removes a binding. Unbinding will set the unbound property to the current + value. The object will not be notified, as the value has not changed.

+
+ @@ -2473,7 +2188,7 @@ - Key. +

Key.

@@ -2508,7 +2223,7 @@
Source:
-
  • object.js, line 281
+
  • object.js, line 305
@@ -2539,7 +2254,7 @@
- Removes all bindings. +

Removes all bindings.

@@ -2576,7 +2291,134 @@
Source:
-
  • object.js, line 298
+
  • object.js, line 344
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

unByKey

+ + +
+
+ + +
+

Removes an event listener which was added with listen() by the key returned + by on().

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
key + + +number + + + + + + + + <nullable>
+ +

Key.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • object.js, line 336
@@ -2612,17 +2454,16 @@

- Documentation generated by JSDoc 3 on Mon Mar 11 2013 13:34:29 GMT+0100 (CET) + Documentation generated by JSDoc 3
+ diff --git a/edit/apidoc/ol.expr.html b/edit/apidoc/ol.expr.html new file mode 100644 index 0000000000..323566d7ed --- /dev/null +++ b/edit/apidoc/ol.expr.html @@ -0,0 +1,408 @@ + + + + + OpenLayers 3 API Documentation - Namespace: ol.expr + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol. + + ol.expr +

+ +
+ +
+
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • expr.jsdoc, line 1
+ + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + +

Methods

+ +
+ +
+

<static> parse

+ + +
+
+ + +
+

Parse an expression.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
source + + +string + + + +

The expression source (e.g. 'foo + 2').

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • expression.js, line 41
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

An expression instance that can be + evaluated within some scope to provide a value.

+
+ + + +
+
+ Type +
+
+ +ol.expr.Expression + + +
+
+ + + + +
+ + + +
+

<static> register

+ + +
+
+ + +
+

Register a library function to be used in expressions.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
name + + +string + + + +

The function name (e.g. 'myFunc').

func + + +function + + + +

The function to be called in an + expression. This function will be called with a feature as the this + argument when the expression is evaluated in the context of a features.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • expression.js, line 54
+ + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.geom.Geometry.html b/edit/apidoc/ol.geom.Geometry.html new file mode 100644 index 0000000000..5cfd27e035 --- /dev/null +++ b/edit/apidoc/ol.geom.Geometry.html @@ -0,0 +1,156 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.geom.Geometry + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.geom. + + ol.geom.Geometry +

+ +
+ +
+
+ + + + +
+

new Geometry

+ + +
+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • geometry.js, line 12
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.geom.LineString.html b/edit/apidoc/ol.geom.LineString.html new file mode 100644 index 0000000000..4f7648a9eb --- /dev/null +++ b/edit/apidoc/ol.geom.LineString.html @@ -0,0 +1,250 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.geom.LineString + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.geom. + + ol.geom.LineString +

+ +
+ +
+
+ + + + +
+

new LineString

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
coordinates + + +ol.CoordinateArray + + + + + + + +

Vertex array (e.g. + [[x0, y0], [x1, y1]]).

shared + + +ol.geom.SharedVertices + + + + + + <optional>
+ + + +
(Optional)

Shared vertices.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • linestring.js, line 19
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.geom.MultiLineString.html b/edit/apidoc/ol.geom.MultiLineString.html new file mode 100644 index 0000000000..14c323f180 --- /dev/null +++ b/edit/apidoc/ol.geom.MultiLineString.html @@ -0,0 +1,243 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.geom.MultiLineString + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.geom. + + ol.geom.MultiLineString +

+ +
+ +
+
+ + + + +
+

new MultiLineString

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
coordinates + + +Array.<ol.CoordinateArray> + + + + + + + +

Coordinates array.

shared + + +ol.geom.SharedVertices + + + + + + <optional>
+ + + +
(Optional)

Shared vertices.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • multilinestring.js, line 18
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.geom.MultiPoint.html b/edit/apidoc/ol.geom.MultiPoint.html new file mode 100644 index 0000000000..f8c165ce41 --- /dev/null +++ b/edit/apidoc/ol.geom.MultiPoint.html @@ -0,0 +1,243 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.geom.MultiPoint + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.geom. + + ol.geom.MultiPoint +

+ +
+ +
+
+ + + + +
+

new MultiPoint

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
coordinates + + +ol.CoordinateArray + + + + + + + +

Coordinates array.

shared + + +ol.geom.SharedVertices + + + + + + <optional>
+ + + +
(Optional)

Shared vertices.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • multipoint.js, line 18
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.geom.MultiPolygon.html b/edit/apidoc/ol.geom.MultiPolygon.html new file mode 100644 index 0000000000..db85bb28b0 --- /dev/null +++ b/edit/apidoc/ol.geom.MultiPolygon.html @@ -0,0 +1,244 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.geom.MultiPolygon + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.geom. + + ol.geom.MultiPolygon +

+ +
+ +
+
+ + + + +
+

new MultiPolygon

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
coordinates + + +Array.<Array.<ol.CoordinateArray>> + + + + + + + +

Coordinates + array.

shared + + +ol.geom.SharedVertices + + + + + + <optional>
+ + + +
(Optional)

Shared vertices.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • multipolygon.js, line 19
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.geom.Point.html b/edit/apidoc/ol.geom.Point.html new file mode 100644 index 0000000000..81a6ed466d --- /dev/null +++ b/edit/apidoc/ol.geom.Point.html @@ -0,0 +1,249 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.geom.Point + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.geom. + + ol.geom.Point +

+ +
+ +
+
+ + + + +
+

new Point

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
coordinates + + +ol.Coordinate + + + + + + + +

Coordinates array (e.g. [x, y]).

shared + + +ol.geom.SharedVertices + + + + + + <optional>
+ + + +
(Optional)

Shared vertices.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • point.js, line 17
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.geom.Polygon.html b/edit/apidoc/ol.geom.Polygon.html new file mode 100644 index 0000000000..6f77a85350 --- /dev/null +++ b/edit/apidoc/ol.geom.Polygon.html @@ -0,0 +1,343 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.geom.Polygon + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.geom. + + ol.geom.Polygon +

+ +
+ +
+
+ + + + +
+

new Polygon

+ + +
+
+ + +
+

Create a polygon from an array of vertex arrays. Coordinates for the +exterior ring will be forced to clockwise order. Coordinates for any +interior rings will be forced to counter-clockwise order. In cases where +the opposite winding order occurs in the passed vertex arrays, they will +be modified in place.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
coordinates + + +Array.<ol.CoordinateArray> + + + + + + + +

Array of rings. First + is outer, any remaining are inner.

shared + + +ol.geom.SharedVertices + + + + + + <optional>
+ + + +
(Optional)

Shared vertices.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • polygon.js, line 26
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + +

Methods

+ +
+ +
+

getCoordinates

+ + +
+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • polygon.js, line 94
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Coordinates array.

+
+ + + +
+
+ Type +
+
+ +Array.<ol.CoordinateArray> + + +
+
+ + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.geom.SharedVertices.html b/edit/apidoc/ol.geom.SharedVertices.html new file mode 100644 index 0000000000..6e2bdd3ad7 --- /dev/null +++ b/edit/apidoc/ol.geom.SharedVertices.html @@ -0,0 +1,218 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.geom.SharedVertices + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.geom. + + ol.geom.SharedVertices +

+ +
+ +
+
+ + + + +
+

new SharedVertices

+ + +
+
+ + +
+

Provides methods for dealing with shared, flattened arrays of vertices.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +ol.geom.SharedVerticesOptions + + + + + + <optional>
+ + + +
(Optional)

Shared vertices options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • sharedvertices.js, line 22
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.geom.html b/edit/apidoc/ol.geom.html new file mode 100644 index 0000000000..a757b4bb19 --- /dev/null +++ b/edit/apidoc/ol.geom.html @@ -0,0 +1,478 @@ + + + + + OpenLayers 3 API Documentation - Namespace: ol.geom + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol. + + ol.geom +

+ +
+ +
+
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • geom.jsdoc, line 1
+ + + + + + + +
+ + + + +
+ + + + + + + + +

Classes

+ +
+
ol.geom.Geometry
+
+ +
ol.geom.LineString
+
+ +
ol.geom.MultiLineString
+
+ +
ol.geom.MultiPoint
+
+ +
ol.geom.MultiPolygon
+
+ +
ol.geom.Point
+
+ +
ol.geom.Polygon
+
+ +
ol.geom.SharedVertices
+
+
+ + + + + +

Members

+ +
+ +
+

<static> GeometryType :string

+ + +
+
+ +
+

Geometry types.

+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
POINT + + +string + + + + + + point + +
LINESTRING + + +string + + + + + + linestring + +
LINEARRING + + +string + + + + + + linearring + +
POLYGON + + +string + + + + + + polygon + +
MULTIPOINT + + +string + + + + + + multipoint + +
MULTILINESTRING + + +string + + + + + + multilinestring + +
MULTIPOLYGON + + +string + + + + + + multipolygon + +
GEOMETRYCOLLECTION + + +string + + + + + + geometrycollection + +
+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • geometry.js, line 82
+ + + + + + + +
+ + + +
+ +
+ + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.geom2.LineStringCollection.html b/edit/apidoc/ol.geom2.LineStringCollection.html new file mode 100644 index 0000000000..db33750a24 --- /dev/null +++ b/edit/apidoc/ol.geom2.LineStringCollection.html @@ -0,0 +1,484 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.geom2.LineStringCollection + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.geom2.LineStringCollection +

+ +
+ +
+
+ + + + +
+

new LineStringCollection

+ + +
+
+ + +
+

This is an internal class that will be removed from the API.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
buf + + +ol.structs.Buffer + + + + + + + +

Buffer.

ranges + + +Object.<string, number>= + + + + + + <optional>
+ + + +
(Optional)

Ranges.

dim + + +number + + + + + + <optional>
+ + + +
(Optional)

Dimension.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • linestringcollection.js, line 25
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + +

Methods

+ +
+ +
+

<static> pack

+ + +
+
+ + +
+

This is an internal function that will be removed from the API.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
unpackedLineStrings + + +Array.<ol.geom2.LineString> + + + + + + + +

Unpacked line + strings.

capacity + + +number + + + + + + <optional>
+ + + +
(Optional)

Capacity.

dim + + +number + + + + + + <optional>
+ + + +
(Optional)

Dimension.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • linestringcollection.js, line 65
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Line string collection.

+
+ + + +
+
+ Type +
+
+ +ol.geom2.LineStringCollection + + +
+
+ + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.geom2.PointCollection.html b/edit/apidoc/ol.geom2.PointCollection.html new file mode 100644 index 0000000000..9594b9c73b --- /dev/null +++ b/edit/apidoc/ol.geom2.PointCollection.html @@ -0,0 +1,753 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.geom2.PointCollection + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.geom2.PointCollection +

+ +
+ +
+
+ + + + +
+

new PointCollection

+ + +
+
+ + +
+

This is an internal class that will be removed from the API.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
buf + + +ol.structs.Buffer + + + + + + + +

Buffer.

dim + + +number + + + + + + <optional>
+ + + +
(Optional)

Dimension.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • pointcollection.js, line 23
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + +

Methods

+ +
+ +
+

<static> createEmpty

+ + +
+
+ + +
+

This is an internal function that will be removed from the API.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
capacity + + +number + + + + + + + +

Capacity.

dim + + +number + + + + + + <optional>
+ + + +
(Optional)

Dimension.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • pointcollection.js, line 44
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Point collection.

+
+ + + +
+
+ Type +
+
+ +ol.geom2.PointCollection + + +
+
+ + + + +
+ + + +
+

<static> pack

+ + +
+
+ + +
+

This is an internal function that will be removed from the API.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
unpackedPoints + + +Array.<ol.geom2.Point> + + + + + + + +

Unpacked points.

capacity + + +number + + + + + + <optional>
+ + + +
(Optional)

Capacity.

dim + + +number + + + + + + <optional>
+ + + +
(Optional)

Dimension.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • pointcollection.js, line 58
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Point collection.

+
+ + + +
+
+ Type +
+
+ +ol.geom2.PointCollection + + +
+
+ + + + +
+ + + +
+

add

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
point + + +ol.geom2.Point + + + +

Point.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • pointcollection.js, line 76
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Offset.

+
+ + + +
+
+ Type +
+
+ +number + + +
+
+ + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.html b/edit/apidoc/ol.html new file mode 100644 index 0000000000..9f54b11b12 --- /dev/null +++ b/edit/apidoc/ol.html @@ -0,0 +1,2806 @@ + + + + + OpenLayers 3 API Documentation - Namespace: ol + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol +

+ +
+ +
+
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • ol.jsdoc, line 1
+ + + + + + + +
+ + + + +
+ + + + + + + + +

Classes

+ +
+
ol.Attribution
+
+ +
ol.Collection
+
+ +
ol.DeviceOrientation
+
+ +
ol.Feature
+
+ +
ol.Geolocation
+
+ +
ol.Map
+
+ +
ol.MapBrowserEvent
+
+ +
ol.Object
+
+ +
ol.Overlay
+
+ +
ol.Projection
+
+ +
ol.View2D
+
+
+ + + +

Namespaces

+ +
+
ol.animation
+
+ +
ol.control
+
+ +
ol.expr
+
+ +
ol.geom
+
+ +
ol.layer
+
+ +
ol.parser
+
+ +
ol.proj
+
+ +
ol.source
+
+ +
ol.style
+
+ +
ol.tilegrid
+
+
+ + + +

Members

+ +
+ +
+

<static> inherits

+ + +
+
+ +
+

ol.inherits is an alias to the goog.inherits function. It is exported +for use in non-compiled application code. See ol.exports.

+ +

FIXME: We use a new line to fake the linter. Without the new line the +linter complains with:

+ +

"Missing newline between constructor and goog.inherits"

+
+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • ol.js, line 13
+ + + + + + + +
+ + + +
+ + + +
+

<static> OverlayPositioning :string

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
BOTTOM_LEFT + + +string + + + + + + bottom-left + +
BOTTOM_RIGHT + + +string + + + + + + bottom-right + +
TOP_LEFT + + +string + + + + + + top-left + +
TOP_RIGHT + + +string + + + + + + top-right + +
+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • overlay.js, line 30
+ + + + + + + +
+ + + +
+ + + +
+

<static> ProjectionUnits :string

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
DEGREES + + +string + + + + + + degrees + +
FEET + + +string + + + + + + ft + +
METERS + + +string + + + + + + m + +
+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • proj.js, line 37
+ + + + + + + +
+ + + +
+ + + +
+

<static> RendererHint :string

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
CANVAS + + +string + + + + + + canvas + +
DOM + + +string + + + + + + dom + +
WEBGL + + +string + + + + + + webgl + +
+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • map.js, line 92
+ + + + + + + +
+ + + +
+ +
+ + + + + +

TypeDefs

+ +
+ +
+

AttributionOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
html + + +string + + + +

HTML markup for this attribution.

tileRanges + + +Object.<string, Array.<ol.TileRange>> +| + +undefined + + + +

Tile ranges (FOR INTERNAL USE ONLY).

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 1
+ + + + + + + +
+ + + +
+ + + +
+

Coordinate

+ + +
+
+ +
+

An array representing a coordinate.

+
+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • coordinate.js, line 15
+ + + + + + + +
+ + + +
+ + + +
+

DeviceOrientationOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
tracking + + +boolean +| + +undefined + + + +

Tracking.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 3
+ + + + + + + +
+ + + +
+ + + +
+

GeolocationOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
tracking + + +boolean +| + +undefined + + + +

Tracking.

trackingOptions + + +GeolocationPositionOptions +| + +undefined + + + +

Tracking options.

projection + + +ol.ProjectionLike + + + +

Projection.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 5
+ + + + + + + +
+ + + +
+ + + +
+

GetFeatureInfoOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
pixel + + +ol.Pixel + + + +

Pixel coordinate relative to the map viewport.

layers + + +Array.<ol.layer.Layer> +| + +undefined + + + +

Layers to restrict the + query to. All map layers will be queried if not provided.

success + + +function + + + +

Callback for + successful queries. The passed argument is the resulting feature + information for each layer, with array indices being the same as in the + passed layers array or in the layer collection as returned from + ol.Map#getLayers() if no layers were provided.

error + + +function +| + +undefined + + + +

Callback for unsuccessful queries. + Note that queries with no matching features trigger the success callback, + not the error callback.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 7
+ + + + + + + +
+ + + +
+ + + +
+

GetFeaturesOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
pixel + + +ol.Pixel + + + +

Pixel coordinate relative to the map viewport.

layers + + +Array.<ol.layer.Layer> +| + +undefined + + + +

Layers to restrict the + query to. All layers will be queried if not provided.

success + + +function + + + +

Callback + for successful queries. The passed argument is the resulting features for + each layer, with array indices being the same as in the passed layers + array or in the layer collection as returned from ol.Map#getLayers() if + no layers were provided.

error + + +function +| + +undefined + + + +

Callback for unsuccessful queries. + Note that queries with no matching features trigger the success callback, + not the error callback.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 9
+ + + + + + + +
+ + + +
+ + + +
+

MapOptions

+ + +
+
+ +
+

Object literal with config options for the map.

+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
controls + + +ol.Collection +| + +Array.<ol.control.Control> +| + +undefined + + + +

Controls initially added to the map.

interactions + + +ol.Collection +| + +undefined + + + +

Interactions.

layers + + +Array.<ol.layer.Base> +| + +ol.Collection +| + +undefined + + + +

Layers.

overlays + + +ol.Collection +| + +Array.<ol.Overlay> +| + +undefined + + + +

Overlays initially added to the map.

renderer + + +ol.RendererHint +| + +undefined + + + +

Renderer.

renderers + + +Array.<ol.RendererHint> +| + +undefined + + + +

Renderers.

target + + +Element +| + +string +| + +undefined + + + +

The container for the map.

view + + +ol.IView +| + +undefined + + + +

The map's view. Currently + ol.View2D is available as view.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 11
+ + + + + + + +
+ + + +
+ + + +
+

OverlayOptions

+ + +
+
+ +
+

Object literal with config options for the overlay.

+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
element + + +Element +| + +undefined + + + +

The overlay element.

position + + +ol.Coordinate +| + +undefined + + + +

The overlay position in map + projection.

positioning + + +ol.OverlayPositioning +| + +undefined + + + +

Positioning.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 13
+ + + + + + + +
+ + + +
+ + + +
+

Proj4jsProjectionOptions

+ + +
+
+ +
+

Object literal with config options for the Proj4js projection.

+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +string + + + +

The SRS identifier code, e.g. 'EPSG:31256'.

extent + + +ol.Extent +| + +undefined + + + +

The validity extent for the SRS.

global + + +boolean +| + +undefined + + + +

Whether the projection is valid for the + whole globe. Default is false.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 15
+ + + + + + + +
+ + + +
+ + + +
+

ProjectionLike

+ + +
+
+ +
+

A projection as ol.Projection, SRS identifier string or undefined.

+
+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • proj.js, line 27
+ + + + + + + +
+ + + +
+ + + +
+

ProjectionOptions

+ + +
+
+ +
+

Object literal with config options for the projection.

+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +string + + + +

The SRS identifier code, e.g. 'EPSG:4326'.

units + + +ol.ProjectionUnits + + + +

Units.

extent + + +ol.Extent +| + +undefined + + + +

The validity extent for the SRS.

axisOrientation + + +string +| + +undefined + + + +

The axis orientation as + specified in Proj4. The default is 'enu'.

global + + +boolean +| + +undefined + + + +

Whether the projection is valid for the + whole globe. Default is false.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 17
+ + + + + + + +
+ + + +
+ + + +
+

Size

+ + +
+
+ +
+

An array representing a size: [width, height].

+
+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • size.js, line 5
+ + + + + + + +
+ + + +
+ + + +
+

View2DOptions

+ + +
+
+ +
+

Object literal with config options for the view.

+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
center + + +ol.Coordinate +| + +undefined + + + +

The initial center for the view. + The coordinate system for the center is specified with the projection + option.

maxResolution + + +number +| + +undefined + + + +

The maximum resolution used to + determine the resolution constraint. It is used together with maxZoom + and zoomFactor. If unspecified it is calculated in such a way that the + projection's validity extent fits in a 256x256 px tile. If the projection + is Spherical Mercator (the default) then maxResolution defaults to + 40075016.68557849 / 256 = 156543.03392804097.

maxZoom + + +number +| + +undefined + + + +

The maximum zoom level used to determine + the resolution constraint. It is used together with maxResolution and + zoomFactor. Default is 28.

projection + + +ol.ProjectionLike + + + +

The projection. Default is + EPSG:3857 (Spherical Mercator).

resolution + + +number +| + +undefined + + + +

The initial resolution for the view. + The units are projection units per pixel (e.g. meters per pixel).

resolutions + + +Array.<number> +| + +undefined + + + +

Resolutions to determine the + resolution constraint. If set the maxResolution, maxZoom and + zoomFactor options are ignored.

rotation + + +number +| + +undefined + + + +

The initial rotation for the view + in radians (positive rotation clockwise).

zoom + + +number +| + +undefined + + + +

Zoom level used to calculate the initial + resolution for the view. The initial resolution is determined using the + ol.View2D#constrainResolution method.

zoomFactor + + +number +| + +undefined + + + +

The zoom factor used to determine the + resolution constraint. It is together with maxResolution and maxZoom. + Default is 2.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 19
+ + + + + + + +
+ + + +
+ +
+ + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.interaction.DragRotateAndZoom.html b/edit/apidoc/ol.interaction.DragRotateAndZoom.html new file mode 100644 index 0000000000..98fc86bd4a --- /dev/null +++ b/edit/apidoc/ol.interaction.DragRotateAndZoom.html @@ -0,0 +1,212 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.interaction.DragRotateAndZoom + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.interaction.DragRotateAndZoom +

+ +
+ +
+
+ + + + +
+

new DragRotateAndZoom

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +ol.interaction.DragRotateAndZoomOptions + + + + + + <optional>
+ + + +
(Optional)

Options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • dragrotateandzoominteraction.js, line 25
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.interaction.Modify.html b/edit/apidoc/ol.interaction.Modify.html new file mode 100644 index 0000000000..102c21c4aa --- /dev/null +++ b/edit/apidoc/ol.interaction.Modify.html @@ -0,0 +1,212 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.interaction.Modify + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.interaction.Modify +

+ +
+ +
+
+ + + + +
+

new Modify

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +ol.interaction.ModifyOptions + + + + + + <optional>
+ + + +
(Optional)

Options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • modifyinteraction.js, line 29
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.interaction.Select.html b/edit/apidoc/ol.interaction.Select.html new file mode 100644 index 0000000000..f5ed78218e --- /dev/null +++ b/edit/apidoc/ol.interaction.Select.html @@ -0,0 +1,212 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.interaction.Select + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.interaction.Select +

+ +
+ +
+
+ + + + +
+

new Select

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +ol.interaction.SelectOptions + + + + + + <optional>
+ + + +
(Optional)

Options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • selectinteraction.js, line 20
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.layer.Group.html b/edit/apidoc/ol.layer.Group.html new file mode 100644 index 0000000000..9231be3c84 --- /dev/null +++ b/edit/apidoc/ol.layer.Group.html @@ -0,0 +1,406 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.layer.Group + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.layer. + + ol.layer.Group +

+ +
+ +
+
+ + + + +
+

new Group

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +ol.layer.GroupOptions + + + + + + <optional>
+ + + +
(Optional)

Layer options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • layergroup.js, line 30
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + +

Methods

+ +
+ +
+

getLayers

+ + +
+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • layergroup.js, line 149
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Collection of layers.

+
+ + + +
+
+ Type +
+
+ +ol.Collection + + +
+
+ + + + +
+ + + +
+

setLayers

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
layers + + +ol.Collection + + + +

Collection of layers.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • layergroup.js, line 162
+ + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.layer.Image.html b/edit/apidoc/ol.layer.Image.html new file mode 100644 index 0000000000..a9deec4849 --- /dev/null +++ b/edit/apidoc/ol.layer.Image.html @@ -0,0 +1,300 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.layer.Image + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.layer. + + ol.layer.Image +

+ +
+ +
+
+ + + + +
+

new Image

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.layer.LayerOptions + + + +

Layer options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • imagelayer.js, line 13
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + +

Methods

+ +
+ +
+

getSource

+ + +
+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • layer.js, line 101
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Source.

+
+ + + +
+
+ Type +
+
+ +ol.source.Source + + +
+
+ + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.layer.ImageLayer.html b/edit/apidoc/ol.layer.ImageLayer.html new file mode 100644 index 0000000000..51c65c98b2 --- /dev/null +++ b/edit/apidoc/ol.layer.ImageLayer.html @@ -0,0 +1,300 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.layer.ImageLayer + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.layer. + + ol.layer.ImageLayer +

+ +
+ +
+
+ + + + +
+

new ImageLayer

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.layer.LayerOptions + + + +

Layer options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • imagelayer.js, line 13
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + +

Methods

+ +
+ +
+

getSource

+ + +
+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • layer.js, line 79
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Source.

+
+ + + +
+
+ Type +
+
+ +ol.source.Source + + +
+
+ + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.layer.Layer.html b/edit/apidoc/ol.layer.Layer.html new file mode 100644 index 0000000000..4a796ecb9b --- /dev/null +++ b/edit/apidoc/ol.layer.Layer.html @@ -0,0 +1,289 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.layer.Layer + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.layer. + + ol.layer.Layer +

+ +
+ +
+
+ + + + +
+

new Layer

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.layer.LayerOptions + + + +

Layer options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • layer.js, line 17
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + +

Methods

+ +
+ +
+

getSource

+ + +
+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • layer.js, line 101
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Source.

+
+ + + +
+
+ Type +
+
+ +ol.source.Source + + +
+
+ + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.layer.LayerGroup.html b/edit/apidoc/ol.layer.LayerGroup.html new file mode 100644 index 0000000000..eb1f461566 --- /dev/null +++ b/edit/apidoc/ol.layer.LayerGroup.html @@ -0,0 +1,406 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.layer.LayerGroup + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.layer. + + ol.layer.LayerGroup +

+ +
+ +
+
+ + + + +
+

new LayerGroup

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +ol.layer.LayerGroupOptions + + + + + + <optional>
+ + + +
(Optional)

Layer options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • layergroup.js, line 31
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + +

Methods

+ +
+ +
+

getLayers

+ + +
+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • layergroup.js, line 150
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Collection of layers.

+
+ + + +
+
+ Type +
+
+ +ol.Collection + + +
+
+ + + + +
+ + + +
+

setLayers

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
layers + + +ol.Collection + + + +

Collection of layers.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • layergroup.js, line 163
+ + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.layer.Tile.html b/edit/apidoc/ol.layer.Tile.html new file mode 100644 index 0000000000..4f92b85573 --- /dev/null +++ b/edit/apidoc/ol.layer.Tile.html @@ -0,0 +1,488 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.layer.Tile + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.layer. + + ol.layer.Tile +

+ +
+ +
+
+ + + + +
+

new Tile

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.layer.TileOptions + + + +

Tile layer options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • tilelayer.js, line 21
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + +

Methods

+ +
+ +
+

getPreload

+ + +
+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • tilelayer.js, line 35
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Preload.

+
+ + + +
+
+ Type +
+
+ +number + + +
+
+ + + + +
+ + + +
+

getSource

+ + +
+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • layer.js, line 101
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Source.

+
+ + + +
+
+ Type +
+
+ +ol.source.Source + + +
+
+ + + + +
+ + + +
+

setPreload

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
preload + + +number + + + +

Preload.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • tilelayer.js, line 55
+ + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.layer.TileLayer.html b/edit/apidoc/ol.layer.TileLayer.html new file mode 100644 index 0000000000..1d99fafc29 --- /dev/null +++ b/edit/apidoc/ol.layer.TileLayer.html @@ -0,0 +1,488 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.layer.TileLayer + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.layer. + + ol.layer.TileLayer +

+ +
+ +
+
+ + + + +
+

new TileLayer

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.layer.TileLayerOptions + + + +

Tile layer options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • tilelayer.js, line 21
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + +

Methods

+ +
+ +
+

getPreload

+ + +
+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • tilelayer.js, line 35
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Preload.

+
+ + + +
+
+ Type +
+
+ +number + + +
+
+ + + + +
+ + + +
+

getSource

+ + +
+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • layer.js, line 79
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Source.

+
+ + + +
+
+ Type +
+
+ +ol.source.Source + + +
+
+ + + + +
+ + + +
+

setPreload

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
preload + + +number + + + +

Preload.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • tilelayer.js, line 55
+ + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.layer.Vector.html b/edit/apidoc/ol.layer.Vector.html new file mode 100644 index 0000000000..a833c6d140 --- /dev/null +++ b/edit/apidoc/ol.layer.Vector.html @@ -0,0 +1,300 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.layer.Vector + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.layer. + + ol.layer.Vector +

+ +
+ +
+
+ + + + +
+

new Vector

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.layer.VectorLayerOptions + + + +

Vector layer options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • vectorlayer.js, line 273
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + +

Methods

+ +
+ +
+

getSource

+ + +
+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • layer.js, line 101
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Source.

+
+ + + +
+
+ Type +
+
+ +ol.source.Source + + +
+
+ + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.layer.Vector2.html b/edit/apidoc/ol.layer.Vector2.html new file mode 100644 index 0000000000..6a8b87ed41 --- /dev/null +++ b/edit/apidoc/ol.layer.Vector2.html @@ -0,0 +1,304 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.layer.Vector2 + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.layer. + + ol.layer.Vector2 +

+ +
+ +
+
+ + + + +
+

new Vector2

+ + +
+
+ + +
+

This is an internal class that will be removed from the API.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.layer.LayerOptions + + + +

Options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • vectorlayer2.js, line 14
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + +

Methods

+ +
+ +
+

getSource

+ + +
+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • layer.js, line 101
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Source.

+
+ + + +
+
+ Type +
+
+ +ol.source.Source + + +
+
+ + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.layer.VectorLayer2.html b/edit/apidoc/ol.layer.VectorLayer2.html new file mode 100644 index 0000000000..703cb1dadb --- /dev/null +++ b/edit/apidoc/ol.layer.VectorLayer2.html @@ -0,0 +1,304 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.layer.VectorLayer2 + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.layer. + + ol.layer.VectorLayer2 +

+ +
+ +
+
+ + + + +
+

new VectorLayer2

+ + +
+
+ + +
+

This is an internal class that will be removed from the API.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.layer.LayerOptions + + + +

Options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • vectorlayer2.js, line 14
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + +

Methods

+ +
+ +
+

getSource

+ + +
+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • layer.js, line 79
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Source.

+
+ + + +
+
+ Type +
+
+ +ol.source.Source + + +
+
+ + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.layer.html b/edit/apidoc/ol.layer.html new file mode 100644 index 0000000000..7c575866cd --- /dev/null +++ b/edit/apidoc/ol.layer.html @@ -0,0 +1,1381 @@ + + + + + OpenLayers 3 API Documentation - Namespace: ol.layer + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol. + + ol.layer +

+ +
+ +
+
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • layer.jsdoc, line 1
+ + + + + + + +
+ + + + +
+ + + + + + + + +

Classes

+ +
+
ol.layer.Group
+
+ +
ol.layer.Image
+
+ +
ol.layer.Layer
+
+ +
ol.layer.Tile
+
+ +
ol.layer.Vector
+
+ +
ol.layer.Vector2
+
+
+ + + + + + + + + +

TypeDefs

+ +
+ +
+

BaseOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
brightness + + +number +| + +undefined + + + +

Brightness.

contrast + + +number +| + +undefined + + + +

Contrast.

hue + + +number +| + +undefined + + + +

Hue.

opacity + + +number +| + +undefined + + + +

Opacity.

saturation + + +number +| + +undefined + + + +

Saturation.

visible + + +boolean +| + +undefined + + + +

Visibility.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 73
+ + + + + + + +
+ + + +
+ + + +
+

GroupOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
brightness + + +number +| + +undefined + + + +

Brightness.

contrast + + +number +| + +undefined + + + +

Contrast.

hue + + +number +| + +undefined + + + +

Hue.

opacity + + +number +| + +undefined + + + +

Opacity.

saturation + + +number +| + +undefined + + + +

Saturation.

visible + + +boolean +| + +undefined + + + +

Visibility.

layers + + +Array.<ol.layer.Base> +| + +ol.Collection +| + +undefined + + + +

Child layers.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 77
+ + + + + + + +
+ + + +
+ + + +
+

LayerOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
brightness + + +number +| + +undefined + + + +

Brightness.

contrast + + +number +| + +undefined + + + +

Contrast.

hue + + +number +| + +undefined + + + +

Hue.

opacity + + +number +| + +undefined + + + +

Opacity. 0-1. Default is 1.

saturation + + +number +| + +undefined + + + +

Saturation.

source + + +ol.source.Source + + + +

Source for this layer.

visible + + +boolean +| + +undefined + + + +

Visibility. Default is true (visible).

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 75
+ + + + + + + +
+ + + +
+ + + +
+

TileOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
brightness + + +number +| + +undefined + + + +

Brightness.

contrast + + +number +| + +undefined + + + +

Contrast.

hue + + +number +| + +undefined + + + +

Hue.

opacity + + +number +| + +undefined + + + +

Opacity. 0-1. Default is 1.

preload + + +number +| + +undefined + + + +

Preload.

saturation + + +number +| + +undefined + + + +

Saturation.

source + + +ol.source.Source + + + +

Source for this layer.

visible + + +boolean +| + +undefined + + + +

Visibility. Default is true (visible).

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 79
+ + + + + + + +
+ + + +
+ + + +
+

VectorLayerOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
transformFeatureInfo + + +function + + + +

Function to render an array of + features into feature info markup. If not provided, a comma separated + list of the unique ids of the resulting features will be returned.

opacity + + +number +| + +undefined + + + +

Opacity. 0-1. Default is 1.

source + + +ol.source.Source + + + +

Source for this layer.

style + + +ol.style.Style +| + +undefined + + + +

Style.

visible + + +boolean +| + +undefined + + + +

Visibility. Default is true (visible).

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 81
+ + + + + + + +
+ + + +
+ +
+ + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.parser.GPX.html b/edit/apidoc/ol.parser.GPX.html new file mode 100644 index 0000000000..c8ff48c085 --- /dev/null +++ b/edit/apidoc/ol.parser.GPX.html @@ -0,0 +1,490 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.parser.GPX + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.parser. + + ol.parser.GPX +

+ +
+ +
+
+ + + + +
+

new GPX

+ + +
+
+ + +
+

Read and write GPX version 1.1

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +ol.parser.GPXOptions + + + + + + <optional>
+ + + +
(Optional)

Optional configuration object.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • gpx.js, line 28
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + +

Methods

+ +
+ +
+

read

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
data + + +string +| + +Document +| + +Element +| + +Object + + + +

Data to read.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • gpx.js, line 241
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

An object representing the document.

+
+ + + +
+
+ Type +
+
+ +ol.parser.ReadFeaturesResult + + +
+
+ + + + +
+ + + +
+

write

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
obj + + +ol.parser.GPXWriteOptions + + + +

Object structure to write out + as GPX.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • gpx.js, line 298
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

An string representing the GPX document.

+
+ + + +
+
+ Type +
+
+ +string + + +
+
+ + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.parser.GeoJSON.html b/edit/apidoc/ol.parser.GeoJSON.html new file mode 100644 index 0000000000..471dd39594 --- /dev/null +++ b/edit/apidoc/ol.parser.GeoJSON.html @@ -0,0 +1,736 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.parser.GeoJSON + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.parser. + + ol.parser.GeoJSON +

+ +
+ +
+
+ + + + +
+

new GeoJSON

+ + +
+
+ + +
+

Read and write GeoJSON

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • geojson.js, line 30
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + +

Methods

+ +
+ +
+

<static> read

+ + +
+
+ + +
+

Parse a GeoJSON string.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
str + + +string + + + +

GeoJSON string.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • geojson.js, line 55
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Parsed geometry or array + of geometries.

+
+ + + +
+
+ Type +
+
+ +ol.Feature +| + +Array.<ol.Feature> +| + +ol.geom.Geometry +| + +Array.<ol.geom.Geometry> + + +
+
+ + + + +
+ + + +
+

<static> write

+ + +
+
+ + +
+

Write out a geometry, geometry collection, feature or an array of features + as a GeoJSON string.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
obj + + +ol.geom.Geometry +| + +ol.geom.GeometryCollection +| + +ol.Feature +| + +Array.<ol.Feature> + + + +

The object to encode.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • geojson.js, line 426
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

GeoJSON for the geometry.

+
+ + + +
+
+ Type +
+
+ +string + + +
+
+ + + + +
+ + + +
+

read

+ + +
+
+ + +
+

Parse a GeoJSON string.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
str + + +string + + + +

GeoJSON string.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • geojson.js, line 42
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Parsed geometry or array + of geometries.

+
+ + + +
+
+ Type +
+
+ +ol.Feature +| + +Array.<ol.Feature> +| + +ol.geom.Geometry +| + +Array.<ol.geom.Geometry> + + +
+
+ + + + +
+ + + +
+

write

+ + +
+
+ + +
+

Write out a geometry, geometry collection, feature or an array of features + as a GeoJSON string.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
obj + + +ol.geom.Geometry +| + +ol.geom.GeometryCollection +| + +ol.Feature +| + +Array.<ol.Feature> + + + +

The object to encode.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • geojson.js, line 438
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

GeoJSON for the geometry.

+
+ + + +
+
+ Type +
+
+ +string + + +
+
+ + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.parser.KML.html b/edit/apidoc/ol.parser.KML.html new file mode 100644 index 0000000000..653415ce16 --- /dev/null +++ b/edit/apidoc/ol.parser.KML.html @@ -0,0 +1,535 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.parser.KML + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.parser. + + ol.parser.KML +

+ +
+ +
+
+ + + + +
+

new KML

+ + +
+
+ + +
+

Read and write KML +version 2.2

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +ol.parser.KMLOptions + + + + + + <optional>
+ + + +
(Optional)

Optional configuration object.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • kml.js, line 48
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + +

Methods

+ +
+ +
+

read

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
data + + +string +| + +Document +| + +Element +| + +Object + + + + + + + +

Data to read.

callback + + +function + + + + + + <optional>
+ + + +
(Optional)

Optional + callback to call when reading is done. If provided, this method will + return undefined.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • kml.js, line 957
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

An object representing the + document if opt_callback was not provided.

+
+ + + +
+
+ Type +
+
+ +ol.parser.ReadFeaturesResult +| + +undefined + + +
+
+ + + + +
+ + + +
+

write

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
obj + + +Object + + + +

Object structure to write out as XML.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • kml.js, line 1082
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

An string representing the XML document.

+
+ + + +
+
+ Type +
+
+ +string + + +
+
+ + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.parser.TopoJSON.html b/edit/apidoc/ol.parser.TopoJSON.html new file mode 100644 index 0000000000..79f2ea9244 --- /dev/null +++ b/edit/apidoc/ol.parser.TopoJSON.html @@ -0,0 +1,430 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.parser.TopoJSON + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.parser. + + ol.parser.TopoJSON +

+ +
+ +
+
+ + + + +
+

new TopoJSON

+ + +
+
+ + +
+

Read TopoJSON

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • topojson.js, line 26
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + +

Methods

+ +
+ +
+

<static> read

+ + +
+
+ + +
+

Parse a TopoJSON string.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
str + + +string + + + +

TopoJSON string.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • topojson.js, line 441
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Array of features.

+
+ + + +
+
+ Type +
+
+ +Array.<ol.Feature> + + +
+
+ + + + +
+ + + +
+

read

+ + +
+
+ + +
+

Parse a TopoJSON string.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
str + + +string + + + +

TopoJSON string.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • topojson.js, line 77
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Array of features.

+
+ + + +
+
+ Type +
+
+ +Array.<ol.Feature> + + +
+
+ + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.parser.WKT.html b/edit/apidoc/ol.parser.WKT.html new file mode 100644 index 0000000000..6cb7cc4435 --- /dev/null +++ b/edit/apidoc/ol.parser.WKT.html @@ -0,0 +1,698 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.parser.WKT + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.parser. + + ol.parser.WKT +

+ +
+ +
+
+ + + + +
+

new WKT

+ + +
+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • wkt.js, line 21
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + +

Methods

+ +
+ +
+

<static> read

+ + +
+
+ + +
+

Parse a WKT string.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
str + + +string + + + +

WKT string.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • wkt.js, line 354
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Parsed geometry.

+
+ + + +
+
+ Type +
+
+ +ol.geom.Geometry +| + +undefined + + +
+
+ + + + +
+ + + +
+

<static> write

+ + +
+
+ + +
+

Write out a geometry as a WKT string.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
geom + + +ol.geom.Geometry + + + +

The geometry to encode.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • wkt.js, line 364
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

WKT for the geometry.

+
+ + + +
+
+ Type +
+
+ +string + + +
+
+ + + + +
+ + + +
+

read

+ + +
+
+ + +
+

Parse a WKT string.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
str + + +string + + + +

WKT string.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • wkt.js, line 334
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Parsed geometry.

+
+ + + +
+
+ Type +
+
+ +ol.geom.Geometry +| + +undefined + + +
+
+ + + + +
+ + + +
+

write

+ + +
+
+ + +
+

Write out a geometry as a WKT string.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
geom + + +ol.geom.Geometry + + + +

The geometry to encode.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • wkt.js, line 344
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

WKT for the geometry.

+
+ + + +
+
+ Type +
+
+ +string + + +
+
+ + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.parser.html b/edit/apidoc/ol.parser.html new file mode 100644 index 0000000000..c8adca5391 --- /dev/null +++ b/edit/apidoc/ol.parser.html @@ -0,0 +1,1333 @@ + + + + + OpenLayers 3 API Documentation - Namespace: ol.parser + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol. + + ol.parser +

+ +
+ +
+
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • parser.jsdoc, line 1
+ + + + + + + +
+ + + + +
+ + + + + + + + +

Classes

+ +
+
ol.parser.GeoJSON
+
+ +
ol.parser.GPX
+
+ +
ol.parser.KML
+
+ +
ol.parser.TopoJSON
+
+ +
ol.parser.WKT
+
+
+ + + + + + + + + +

TypeDefs

+ +
+ +
+

GMLOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
curve + + +boolean +| + +undefined + + + +

Write gml:Curve instead of + gml:LineString elements. This also affects the elements in multi-part + geometries. Default is `false´. This only applies to GML version 3.

extractAttributes + + +boolean +| + +undefined + + + +

Should we extract attributes + from the GML? Default is `true´.

featureNS + + +string +| + +undefined + + + +

The feature namespace. If not set it + will be automatically configured from the GML.

featureType + + +Array.<string> +| + +string +| + +undefined + + + +

The local + (without prefix) feature typeName(s).

geometryName + + +string +| + +undefined + + + +

Name of geometry element. + Defaults to `geometry´. If null, it will be set on when the + first geometry is parsed.

multiCurve + + +boolean +| + +undefined + + + +

Write gml:MultiCurve instead of + gml:MultiLineString. Since the latter is deprecated in GML 3, the + default is `true´. This only applies to GML version 3.

multiSurface + + +boolean +| + +undefined + + + +

Write gml:multiSurface instead + of gml:MultiPolygon. Since the latter is deprecated in GML 3, the + default is `true´. This only applies to GML version 3.

schemaLocation + + +string +| + +undefined + + + +

Optional schemaLocation to use + when writing out the GML, this will override the default provided.

surface + + +boolean +| + +undefined + + + +

Write gml:Surface instead of + gml:Polygon elements. This also affects the elements in multi-part + geometries. Default is `false´. This only applies to GML version 3.

readOptions + + +ol.parser.GMLReadOptions +| + +undefined + + + +

readOptions to + use for this instance.

writeOptions + + +ol.parser.GMLWriteOptions +| + +undefined + + + +

writeOptions + to use for this instance.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 89
+ + + + + + + +
+ + + +
+ + + +
+

GMLReadOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
axisOrientation + + +string +| + +undefined + + + +

The axis orientation.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 85
+ + + + + + + +
+ + + +
+ + + +
+

GMLWriteOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
srsName + + +ol.ProjectionLike + + + +

The srsName to use when writing.

axisOrientation + + +string +| + +undefined + + + +

The axis orientation.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 87
+ + + + + + + +
+ + + +
+ + + +
+

GPXOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
creator + + +string +| + +undefined + + + +

The creator attribute to be added to + the written GPX files. Defaults to `OpenLayers´.

defaultDesc + + +string +| + +undefined + + + +

Default description for the + waypoints/tracks in the case where the feature has no 'description' + attribute. Default is 'No description available'.

extractAttributes + + +boolean +| + +undefined + + + +

Should we extract attributes + from the GPX? Default is `true´.

extractWaypoints + + +boolean +| + +undefined + + + +

Extract waypoints from GPX. + Default is `true´.

extractTracks + + +boolean +| + +undefined + + + +

Extract tracks from GPX. + Default is `true´.

extractRoutes + + +boolean +| + +undefined + + + +

Extract routes from GPX. + Default is `true´.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 91
+ + + + + + + +
+ + + +
+ + + +
+

GPXWriteOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
features + + +Array.<ol.Feature> +| + +ol.Feature + + + +

The features to write + out.

metadata + + +Object +| + +undefined + + + +

Metadata key/value pair with keys: + name, desc and author.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 93
+ + + + + + + +
+ + + +
+ + + +
+

KMLOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
dimension + + +number +| + +undefined + + + +

Create geometries with dimension + dimensions. Default is 3.

extractAttributes + + +boolean +| + +undefined + + + +

Should we extract attributes + from the KML? Default is `true´.

extractStyles + + +boolean +| + +undefined + + + +

Should we extract styles from the + KML? Default is false.

maxDepth + + +number +| + +undefined + + + +

Maximum depth to follow network links. + Default is 0, which means we don't follow network links at all.

trackAttributes + + +Array.<string> +| + +undefined + + + +

Track attributes to + parse.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 83
+ + + + + + + +
+ + + +
+ +
+ + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.parser.ogc.GML_v2.html b/edit/apidoc/ol.parser.ogc.GML_v2.html new file mode 100644 index 0000000000..94dc877cf7 --- /dev/null +++ b/edit/apidoc/ol.parser.ogc.GML_v2.html @@ -0,0 +1,390 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.parser.ogc.GML_v2 + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.parser.ogc.GML_v2 +

+ +
+ +
+
+ + + + +
+

new GML_v2

+ + +
+
+ + +
+

Read and write GML +version 2.1.2

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +ol.parser.GMLOptions + + + + + + <optional>
+ + + +
(Optional)

Optional configuration object.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • gml_v2.js, line 17
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + +

Methods

+ +
+ +
+

write

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
obj + + +ol.parser.ReadFeaturesResult + + + + + + + +

Object structure to write out as +GML.

options + + +ol.parser.GMLWriteOptions + + + + + + <optional>
+ + + +
(Optional)

Write options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • gml_v2.js, line 126
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

A string representing the GML document.

+
+ + + +
+
+ Type +
+
+ +string + + +
+
+ + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.parser.ogc.GML_v3.html b/edit/apidoc/ol.parser.ogc.GML_v3.html new file mode 100644 index 0000000000..99ee58e62e --- /dev/null +++ b/edit/apidoc/ol.parser.ogc.GML_v3.html @@ -0,0 +1,390 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.parser.ogc.GML_v3 + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.parser.ogc.GML_v3 +

+ +
+ +
+
+ + + + +
+

new GML_v3

+ + +
+
+ + +
+

Read and write GML +version 3.1.1

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +ol.parser.GMLOptions + + + + + + <optional>
+ + + +
(Optional)

Optional configuration object.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • gml_v3.js, line 19
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + +

Methods

+ +
+ +
+

write

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
obj + + +ol.parser.ReadFeaturesResult + + + + + + + +

Object structure to write out as + XML.

options + + +ol.parser.GMLWriteOptions + + + + + + <optional>
+ + + +
(Optional)

Write options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • gml_v3.js, line 425
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

An string representing the XML document.

+
+ + + +
+
+ Type +
+
+ +string + + +
+
+ + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.parser.ogc.WMSCapabilities.html b/edit/apidoc/ol.parser.ogc.WMSCapabilities.html new file mode 100644 index 0000000000..861bf5e2a4 --- /dev/null +++ b/edit/apidoc/ol.parser.ogc.WMSCapabilities.html @@ -0,0 +1,212 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.parser.ogc.WMSCapabilities + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.parser.ogc.WMSCapabilities +

+ +
+ +
+
+ + + + +
+

new WMSCapabilities

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +Object + + + + + + <optional>
+ + + +
(Optional)

Options which will be set on this object.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • wmscapabilities.js, line 47
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.parser.ogc.WMTSCapabilities.html b/edit/apidoc/ol.parser.ogc.WMTSCapabilities.html new file mode 100644 index 0000000000..df85582d39 --- /dev/null +++ b/edit/apidoc/ol.parser.ogc.WMTSCapabilities.html @@ -0,0 +1,216 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.parser.ogc.WMTSCapabilities + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.parser.ogc.WMTSCapabilities +

+ +
+ +
+
+ + + + +
+

new WMTSCapabilities

+ + +
+
+ + +
+

Read WMTS capabilities

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +Object + + + + + + <optional>
+ + + +
(Optional)

Options which will be set on this object.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • wmtscapabilities.js, line 14
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.proj.html b/edit/apidoc/ol.proj.html new file mode 100644 index 0000000000..5156553ba2 --- /dev/null +++ b/edit/apidoc/ol.proj.html @@ -0,0 +1,1174 @@ + + + + + OpenLayers 3 API Documentation - Namespace: ol.proj + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol. + + ol.proj +

+ +
+ +
+
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • proj.jsdoc, line 1
+ + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + +

Methods

+ +
+ +
+

<static> addProjection

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
projection + + +ol.Projection + + + +

Projection.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • proj.js, line 363
+ + + + + + + +
+ + + + + + + + + +
+ + + +
+

<static> configureProj4jsProjection

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.Proj4jsProjectionOptions + + + +

Proj4js projection options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • proj.js, line 702
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Proj4js projection.

+
+ + + +
+
+ Type +
+
+ +ol.Projection + + +
+
+ + + + +
+ + + +
+

<static> get

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
projectionLike + + +ol.ProjectionLike + + + +

Either a code string which is a + combination of authority and identifier such as "EPSG:4326", or an + existing projection object, or undefined.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • proj.js, line 460
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Projection.

+
+ + + +
+
+ Type +
+
+ +ol.Projection + + +
+
+ + + + +
+ + + +
+

<static> getTransform

+ + +
+
+ + +
+

Given the projection-like objects this method searches for a transformation +function to convert a coordinates array from the source projection to the +destination projection.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
source + + +ol.ProjectionLike + + + +

Source.

destination + + +ol.ProjectionLike + + + +

Destination.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • proj.js, line 541
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Transform.

+
+ + + +
+
+ Type +
+
+ +ol.TransformFunction + + +
+
+ + + + +
+ + + +
+

<static> getTransformFromProjections

+ + +
+
+ + +
+

Searches a function that can be used to convert coordinates from the source +projection to the destination projection.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
sourceProjection + + +ol.Projection + + + +

Source projection.

destinationProjection + + +ol.Projection + + + +

Destination projection.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • proj.js, line 557
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Transform.

+
+ + + +
+
+ Type +
+
+ +ol.TransformFunction + + +
+
+ + + + +
+ + + +
+

<static> transform

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
point + + +ol.Coordinate + + + +

Point.

source + + +ol.ProjectionLike + + + +

Source.

destination + + +ol.ProjectionLike + + + +

Destination.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • proj.js, line 676
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Point.

+
+ + + +
+
+ Type +
+
+ +ol.Coordinate + + +
+
+ + + + +
+ + + +
+

<static> transformWithProjections

+ + +
+
+ + +
+

Transforms the given point to the destination projection.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
point + + +ol.Coordinate + + + +

Point.

sourceProjection + + +ol.Projection + + + +

Source projection.

destinationProjection + + +ol.Projection + + + +

Destination projection.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • proj.js, line 690
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Point.

+
+ + + +
+
+ Type +
+
+ +ol.Coordinate + + +
+
+ + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.source.BingMaps.html b/edit/apidoc/ol.source.BingMaps.html new file mode 100644 index 0000000000..2fa650df1d --- /dev/null +++ b/edit/apidoc/ol.source.BingMaps.html @@ -0,0 +1,204 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.source.BingMaps + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.source. + + ol.source.BingMaps +

+ +
+ +
+
+ + + + +
+

new BingMaps

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.source.BingMapsOptions + + + +

Bing Maps options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • bingmapssource.js, line 22
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.source.DebugTileSource.html b/edit/apidoc/ol.source.DebugTileSource.html new file mode 100644 index 0000000000..408d22f300 --- /dev/null +++ b/edit/apidoc/ol.source.DebugTileSource.html @@ -0,0 +1,300 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.source.DebugTileSource + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.source. + + ol.source.DebugTileSource +

+ +
+ +
+
+ + + + +
+

new DebugTileSource

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.source.DebugTileSourceOptions + + + +

Debug tile options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • debugtilesource.js, line 89
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + +

Methods

+ +
+ +
+

getTileGrid

+ + +
+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • tilesource.js, line 136
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Tile grid.

+
+ + + +
+
+ Type +
+
+ +ol.tilegrid.TileGrid + + +
+
+ + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.source.ImageStatic.html b/edit/apidoc/ol.source.ImageStatic.html new file mode 100644 index 0000000000..73f17cc231 --- /dev/null +++ b/edit/apidoc/ol.source.ImageStatic.html @@ -0,0 +1,204 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.source.ImageStatic + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.source. + + ol.source.ImageStatic +

+ +
+ +
+
+ + + + +
+

new ImageStatic

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.source.ImageStaticOptions + + + +

Options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • imagestaticsource.js, line 16
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.source.ImageWMS.html b/edit/apidoc/ol.source.ImageWMS.html new file mode 100644 index 0000000000..3b62ac367d --- /dev/null +++ b/edit/apidoc/ol.source.ImageWMS.html @@ -0,0 +1,405 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.source.ImageWMS + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.source. + + ol.source.ImageWMS +

+ +
+ +
+
+ + + + +
+

new ImageWMS

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.source.ImageWMSOptions + + + +

Options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • imagewmssource.js, line 20
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + +

Methods

+ +
+ +
+

getParams

+ + +
+
+ + +
+

Get the user-provided params, i.e. those passed to the constructor through +the "params" option, and possibly updated using the updateParams method.

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • imagewmssource.js, line 71
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Params.

+
+ + + +
+
+ Type +
+
+ +Object + + +
+
+ + + + +
+ + + +
+

updateParams

+ + +
+
+ + +
+

Update the user-provided params.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
params + + +Object + + + +

Params.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • imagewmssource.js, line 124
+ + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.source.MapQuestOSM.html b/edit/apidoc/ol.source.MapQuestOSM.html new file mode 100644 index 0000000000..0337611e02 --- /dev/null +++ b/edit/apidoc/ol.source.MapQuestOSM.html @@ -0,0 +1,278 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.source.MapQuestOSM + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.source. + + ol.source.MapQuestOSM +

+ +
+ +
+
+ + + + +
+

new MapQuestOSM

+ + +
+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • mapquestsource.js, line 14
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + +

Methods

+ +
+ +
+

setUrl

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
url + + +string + + + +

URL.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • xyzsource.js, line 70
+ + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.source.MapQuestOpenAerial.html b/edit/apidoc/ol.source.MapQuestOpenAerial.html new file mode 100644 index 0000000000..5857d983a4 --- /dev/null +++ b/edit/apidoc/ol.source.MapQuestOpenAerial.html @@ -0,0 +1,278 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.source.MapQuestOpenAerial + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.source. + + ol.source.MapQuestOpenAerial +

+ +
+ +
+
+ + + + +
+

new MapQuestOpenAerial

+ + +
+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • mapquestsource.js, line 42
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + +

Methods

+ +
+ +
+

setUrl

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
url + + +string + + + +

URL.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • xyzsource.js, line 70
+ + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.source.OSM.html b/edit/apidoc/ol.source.OSM.html new file mode 100644 index 0000000000..3a5dc13d78 --- /dev/null +++ b/edit/apidoc/ol.source.OSM.html @@ -0,0 +1,432 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.source.OSM + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.source. + + ol.source.OSM +

+ +
+ +
+
+ + + + +
+

new OSM

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +ol.source.OSMOptions + + + + + + <optional>
+ + + +
(Optional)

Open Street Map options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • osmsource.js, line 13
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + +

Members

+ +
+ +
+

<static, constant> DATA_ATTRIBUTION :ol.Attribution

+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • osmsource.js, line 45
+ + + + + + + +
+ + + +
+ + + +
+

<static, constant> TILE_ATTRIBUTION :ol.Attribution

+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • osmsource.js, line 57
+ + + + + + + +
+ + + +
+ +
+ + + +

Methods

+ +
+ +
+

setUrl

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
url + + +string + + + +

URL.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • xyzsource.js, line 70
+ + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.source.SingleImageWMS.html b/edit/apidoc/ol.source.SingleImageWMS.html new file mode 100644 index 0000000000..8c8fcc9479 --- /dev/null +++ b/edit/apidoc/ol.source.SingleImageWMS.html @@ -0,0 +1,204 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.source.SingleImageWMS + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.source. + + ol.source.SingleImageWMS +

+ +
+ +
+
+ + + + +
+

new SingleImageWMS

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.source.SingleImageWMSOptions + + + +

Options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • singleimagewmssource.js, line 19
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.source.Stamen.html b/edit/apidoc/ol.source.Stamen.html new file mode 100644 index 0000000000..b1f905dfda --- /dev/null +++ b/edit/apidoc/ol.source.Stamen.html @@ -0,0 +1,326 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.source.Stamen + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.source. + + ol.source.Stamen +

+ +
+ +
+
+ + + + +
+

new Stamen

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.source.StamenOptions + + + +

Stamen options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • stamensource.js, line 85
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + +

Methods

+ +
+ +
+

setUrl

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
url + + +string + + + +

URL.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • xyzsource.js, line 70
+ + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.source.StaticImage.html b/edit/apidoc/ol.source.StaticImage.html new file mode 100644 index 0000000000..7f67705c4f --- /dev/null +++ b/edit/apidoc/ol.source.StaticImage.html @@ -0,0 +1,204 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.source.StaticImage + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.source. + + ol.source.StaticImage +

+ +
+ +
+
+ + + + +
+

new StaticImage

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.source.StaticImageOptions + + + +

Static image options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • staticimagesource.js, line 16
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.source.Tile.html b/edit/apidoc/ol.source.Tile.html new file mode 100644 index 0000000000..e82dda1ae0 --- /dev/null +++ b/edit/apidoc/ol.source.Tile.html @@ -0,0 +1,289 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.source.Tile + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.source. + + ol.source.Tile +

+ +
+ +
+
+ + + + +
+

new Tile

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.source.TileOptions + + + +

Tile source options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • tilesource.js, line 31
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + +

Methods

+ +
+ +
+

getTileGrid

+ + +
+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • tilesource.js, line 148
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Tile grid.

+
+ + + +
+
+ Type +
+
+ +ol.tilegrid.TileGrid + + +
+
+ + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.source.TileDebug.html b/edit/apidoc/ol.source.TileDebug.html new file mode 100644 index 0000000000..3b1f489c2e --- /dev/null +++ b/edit/apidoc/ol.source.TileDebug.html @@ -0,0 +1,300 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.source.TileDebug + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.source. + + ol.source.TileDebug +

+ +
+ +
+
+ + + + +
+

new TileDebug

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.source.TileDebugOptions + + + +

Debug tile options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • debugtilesource.js, line 89
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + +

Methods

+ +
+ +
+

getTileGrid

+ + +
+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • tilesource.js, line 148
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Tile grid.

+
+ + + +
+
+ Type +
+
+ +ol.tilegrid.TileGrid + + +
+
+ + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.source.TileJSON.html b/edit/apidoc/ol.source.TileJSON.html new file mode 100644 index 0000000000..db74513ada --- /dev/null +++ b/edit/apidoc/ol.source.TileJSON.html @@ -0,0 +1,204 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.source.TileJSON + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.source. + + ol.source.TileJSON +

+ +
+ +
+
+ + + + +
+

new TileJSON

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.source.TileJSONOptions + + + +

TileJSON options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • tilejsonsource.js, line 44
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.source.TileSource.html b/edit/apidoc/ol.source.TileSource.html new file mode 100644 index 0000000000..81847198ac --- /dev/null +++ b/edit/apidoc/ol.source.TileSource.html @@ -0,0 +1,289 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.source.TileSource + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.source. + + ol.source.TileSource +

+ +
+ +
+
+ + + + +
+

new TileSource

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.source.TileSourceOptions + + + +

Tile source options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • tilesource.js, line 31
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + +

Methods

+ +
+ +
+

getTileGrid

+ + +
+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • tilesource.js, line 136
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Tile grid.

+
+ + + +
+
+ Type +
+
+ +ol.tilegrid.TileGrid + + +
+
+ + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.source.TileWMS.html b/edit/apidoc/ol.source.TileWMS.html new file mode 100644 index 0000000000..67b4451533 --- /dev/null +++ b/edit/apidoc/ol.source.TileWMS.html @@ -0,0 +1,405 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.source.TileWMS + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.source. + + ol.source.TileWMS +

+ +
+ +
+
+ + + + +
+

new TileWMS

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.source.TileWMSOptions + + + +

Tile WMS options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • tilewmssource.js, line 24
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + +

Methods

+ +
+ +
+

getParams

+ + +
+
+ + +
+

Get the user-provided params, i.e. those passed to the constructor through +the "params" option, and possibly updated using the updateParams method.

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • tilewmssource.js, line 127
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Params.

+
+ + + +
+
+ Type +
+
+ +Object + + +
+
+ + + + +
+ + + +
+

updateParams

+ + +
+
+ + +
+

Update the user-provided params.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
params + + +Object + + + +

Params.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • tilewmssource.js, line 172
+ + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.source.TiledWMS.html b/edit/apidoc/ol.source.TiledWMS.html new file mode 100644 index 0000000000..9c4a572899 --- /dev/null +++ b/edit/apidoc/ol.source.TiledWMS.html @@ -0,0 +1,204 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.source.TiledWMS + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.source. + + ol.source.TiledWMS +

+ +
+ +
+
+ + + + +
+

new TiledWMS

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.source.TiledWMSOptions + + + +

Tiled WMS options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • tiledwmssource.js, line 23
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.source.Vector.html b/edit/apidoc/ol.source.Vector.html new file mode 100644 index 0000000000..c5bfdcc443 --- /dev/null +++ b/edit/apidoc/ol.source.Vector.html @@ -0,0 +1,204 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.source.Vector + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.source. + + ol.source.Vector +

+ +
+ +
+
+ + + + +
+

new Vector

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.source.VectorOptions + + + +

Vector source options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • vectorsource.js, line 25
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.source.Vector2.html b/edit/apidoc/ol.source.Vector2.html new file mode 100644 index 0000000000..e955374252 --- /dev/null +++ b/edit/apidoc/ol.source.Vector2.html @@ -0,0 +1,208 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.source.Vector2 + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.source. + + ol.source.Vector2 +

+ +
+ +
+
+ + + + +
+

new Vector2

+ + +
+
+ + +
+

This is an internal class that will be removed from the API.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.source.Vector2Options + + + +

Options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • vectorsource2.js, line 15
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.source.VectorSource2.html b/edit/apidoc/ol.source.VectorSource2.html new file mode 100644 index 0000000000..da1ffc6e0e --- /dev/null +++ b/edit/apidoc/ol.source.VectorSource2.html @@ -0,0 +1,208 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.source.VectorSource2 + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.source. + + ol.source.VectorSource2 +

+ +
+ +
+
+ + + + +
+

new VectorSource2

+ + +
+
+ + +
+

This is an internal class that will be removed from the API.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.source.VectorSource2Options + + + +

Options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • vectorsource2.js, line 15
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.source.WMTS.html b/edit/apidoc/ol.source.WMTS.html new file mode 100644 index 0000000000..a13249b593 --- /dev/null +++ b/edit/apidoc/ol.source.WMTS.html @@ -0,0 +1,558 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.source.WMTS + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.source. + + ol.source.WMTS +

+ +
+ +
+
+ + + + +
+

new WMTS

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.source.WMTSOptions + + + +

WMTS options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • wmtssource.js, line 33
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + +

Methods

+ +
+ +
+

<static> optionsFromCapabilities

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
wmtsCap + + +Object + + + +

An object representing the capabilities document.

layer + + +string + + + +

The layer identifier.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • wmtssource.js, line 235
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

WMTS source options object.

+
+ + + +
+
+ Type +
+
+ +ol.source.WMTSOptions + + +
+
+ + + + +
+ + + +
+

getDimensions

+ + +
+
+ + +
+

Get the dimensions, i.e. those passed to the constructor through the +"dimensions" option, and possibly updated using the updateDimensions +method.

+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • wmtssource.js, line 193
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Dimensions.

+
+ + + +
+
+ Type +
+
+ +Object + + +
+
+ + + + +
+ + + +
+

updateDimensions

+ + +
+
+ + +
+

Update the dimensions.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
dimensions + + +Object + + + +

Dimensions.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • wmtssource.js, line 223
+ + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.source.XYZ.html b/edit/apidoc/ol.source.XYZ.html new file mode 100644 index 0000000000..a78d68dd7d --- /dev/null +++ b/edit/apidoc/ol.source.XYZ.html @@ -0,0 +1,315 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.source.XYZ + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.source. + + ol.source.XYZ +

+ +
+ +
+
+ + + + +
+

new XYZ

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.source.XYZOptions + + + +

XYZ options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • xyzsource.js, line 17
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + +

Methods

+ +
+ +
+

setUrl

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
url + + +string + + + +

URL.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • xyzsource.js, line 70
+ + + + + + + +
+ + + + + + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.source.html b/edit/apidoc/ol.source.html new file mode 100644 index 0000000000..8311ac938e --- /dev/null +++ b/edit/apidoc/ol.source.html @@ -0,0 +1,3589 @@ + + + + + OpenLayers 3 API Documentation - Namespace: ol.source + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol. + + ol.source +

+ +
+ +
+
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • source.jsdoc, line 1
+ + + + + + + +
+ + + + +
+ + + + + + + + +

Classes

+ +
+
ol.source.BingMaps
+
+ +
ol.source.ImageStatic
+
+ +
ol.source.ImageWMS
+
+ +
ol.source.MapQuestOpenAerial
+
+ +
ol.source.MapQuestOSM
+
+ +
ol.source.OSM
+
+ +
ol.source.Stamen
+
+ +
ol.source.Tile
+
+ +
ol.source.TileDebug
+
+ +
ol.source.TileJSON
+
+ +
ol.source.TileWMS
+
+ +
ol.source.Vector
+
+ +
ol.source.Vector2
+
+ +
ol.source.WMTS
+
+ +
ol.source.XYZ
+
+
+ + + + + +

Members

+ +
+ +
+

<static> WMSGetFeatureInfoMethod :string

+ + +
+
+ +
+

Method to use to get WMS feature info.

+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
IFRAME + + +string + + + + + + iframe + +

Load the info in an IFRAME. Only works with 'text/html and 'text/plain' as +INFO_FORMAT.

XHR_GET + + +string + + + + + + xhr_get + +

Use an asynchronous GET request. Requires CORS headers or a server at the +same origin as the application script.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • wmssource.js, line 13
+ + + + + + + +
+ + + +
+ +
+ + + + + +

TypeDefs

+ +
+ +
+

BingMapsOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
culture + + +string +| + +undefined + + + +

Culture.

key + + +string + + + +

Bing Maps API key. Get yours at + http://bingmapsportal.com/.

style + + +string + + + +

Style.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 95
+ + + + + + + +
+ + + +
+ + + +
+

ImageStaticOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
attributions + + +Array.<ol.Attribution> +| + +undefined + + + +

Attributions.

crossOrigin + + +null +| + +string +| + +undefined + + + +

crossOrigin setting for image + requests.

extent + + +ol.Extent +| + +undefined + + + +

Extent.

imageExtent + + +ol.Extent +| + +undefined + + + +

Extent of the image.

imageSize + + +ol.Size +| + +undefined + + + +

Size of the image.

projection + + +ol.ProjectionLike + + + +

Projection.

url + + +string +| + +undefined + + + +

Url.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 107
+ + + + + + + +
+ + + +
+ + + +
+

ImageWMSOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
attributions + + +Array.<ol.Attribution> +| + +undefined + + + +

Attributions.

crossOrigin + + +null +| + +string +| + +undefined + + + +

crossOrigin setting for image + requests.

extent + + +ol.Extent +| + +undefined + + + +

Extent.

getFeatureInfoOptions + + +ol.source.WMSGetFeatureInfoOptions +| + +undefined + + + +

Options for GetFeatureInfo.

params + + +Object.<string, *> + + + +

WMS request parameters. At least a + LAYERS param is required. STYLES is '' by default. VERSION is + '1.3.0' by default. WIDTH, HEIGHT, BBOX and CRS (SRS for WMS + version < 1.3.0) will be set dynamically.

projection + + +ol.ProjectionLike + + + +

Projection.

ratio + + +number +| + +undefined + + + +

Ratio. 1 means image requests are the size + of the map viewport, 2 means twice the size of the map viewport, and so + on.

resolutions + + +Array.<number> +| + +undefined + + + +

Resolutions. If specified, + requests will be made for these resolutions only.

url + + +string +| + +undefined + + + +

WMS service url.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 101
+ + + + + + + +
+ + + +
+ + + +
+

OSMOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
attribution + + +ol.Attribution +| + +undefined + + + +

Attribution.

attributions + + +Array.<ol.Attribution> +| + +undefined + + + +

Attributions.

maxZoom + + +number +| + +undefined + + + +

Max zoom.

url + + +string +| + +undefined + + + +

URL.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 99
+ + + + + + + +
+ + + +
+ + + +
+

SourceOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
attributions + + +Array.<ol.Attribution> +| + +undefined + + + +

Attributions.

extent + + +ol.Extent +| + +undefined + + + +

Extent.

logo + + +string +| + +undefined + + + +

Logo.

projection + + +ol.ProjectionLike + + + +

Projection.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 103
+ + + + + + + +
+ + + +
+ + + +
+

StamenOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
layer + + +string + + + +

Layer.

minZoom + + +number +| + +undefined + + + +

Minimum zoom.

maxZoom + + +number +| + +undefined + + + +

Maximum zoom.

opaque + + +boolean +| + +undefined + + + +

Whether the layer is opaque.

url + + +string +| + +undefined + + + +

Url.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 105
+ + + + + + + +
+ + + +
+ + + +
+

TileDebugOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
extent + + +ol.Extent +| + +undefined + + + +

Extent.

projection + + +ol.ProjectionLike + + + +

Projection.

tileGrid + + +ol.tilegrid.TileGrid +| + +undefined + + + +

Tile grid.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 97
+ + + + + + + +
+ + + +
+ + + +
+

TileJSONOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
crossOrigin + + +null +| + +string +| + +undefined + + + +

crossOriin setting for image + requests.

url + + +string + + + +

Url.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 109
+ + + + + + + +
+ + + +
+ + + +
+

TileWMSOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
attributions + + +Array.<ol.Attribution> +| + +undefined + + + +

Attributions.

params + + +Object.<string, *> + + + +

WMS request parameters. At least a + LAYERS param is required. STYLES is '' by default. VERSION is + '1.3.0' by default. WIDTH, HEIGHT, BBOX and CRS (SRS for WMS + version < 1.3.0) will be set dynamically.

crossOrigin + + +null +| + +string +| + +undefined + + + +

crossOrigin setting for image + requests.

extent + + +ol.Extent +| + +undefined + + + +

Extent.

getFeatureInfoOptions + + +ol.source.WMSGetFeatureInfoOptions +| + +undefined + + + +

Options for GetFeatureInfo.

tileGrid + + +ol.tilegrid.TileGrid +| + +undefined + + + +

Tile grid.

maxZoom + + +number +| + +undefined + + + +

Maximum zoom.

projection + + +ol.ProjectionLike + + + +

Projection.

url + + +string +| + +undefined + + + +

WMS service url.

urls + + +Array.<string> +| + +undefined + + + +

WMS service urls. Use this instead + of url when the WMS supports multiple urls for GetMap requests.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 111
+ + + + + + + +
+ + + +
+ + + +
+

Vector2Options

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
attributions + + +Array.<ol.Attribution> +| + +undefined + + + +

Attributions.

extent + + +ol.Extent +| + +undefined + + + +

Extent.

lineStringCollections + + +Array.<ol.geom2.LineStringCollection> +| + +undefined + + + +

Line string collections.

pointCollections + + +Array.<ol.geom2.PointCollection> +| + +undefined + + + +

Point collections.

projection + + +ol.ProjectionLike + + + +

Projection.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 115
+ + + + + + + +
+ + + +
+ + + +
+

VectorOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
attributions + + +Array.<ol.Attribution> +| + +undefined + + + +

Attributions.

data + + +Object +| + +string +| + +undefined + + + +

Data to parse.

extent + + +ol.Extent +| + +undefined + + + +

Extent.

logo + + +string +| + +undefined + + + +

Logo.

parser + + +ol.parser.Parser + + + +

Parser instance to parse data + provided as data or fetched from url.

projection + + +ol.ProjectionLike +| + +undefined + + + +

Projection. Usually the + projection is provided by the parser, so this only needs to be set if + the parser does not know the SRS (e.g. in some GML flavors), or if the + projection determined by the parser needs to be overridden.

url + + +string +| + +undefined + + + +

Server url providing the vector data.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 113
+ + + + + + + +
+ + + +
+ + + +
+

WMSGetFeatureInfoOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
method + + +ol.source.WMSGetFeatureInfoMethod + + + +

Method for requesting + GetFeatureInfo. Default is ol.source.WMSGetFeatureInfoMethod.IFRAME.

params + + +Object + + + +

Params for the GetFeatureInfo request. Default is + {'INFO_FORMAT': 'text/html'}.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 118
+ + + + + + + +
+ + + +
+ + + +
+

WMTSOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
attributions + + +Array.<ol.Attribution> +| + +undefined + + + +

Attributions.

crossOrigin + + +string +| + +null +| + +undefined + + + +

crossOrigin setting for image + requests.

extent + + +ol.Extent +| + +undefined + + + +

Extent.

tileGrid + + +ol.tilegrid.WMTS + + + +

Tile grid.

projection + + +ol.ProjectionLike + + + +

Projection.

requestEncoding + + +ol.source.WMTSRequestEncoding +| + +undefined + + + +

Request + encoding.

layer + + +string + + + +

Layer.

style + + +string + + + +

Style.

version + + +string +| + +undefined + + + +

WMTS version. Default to '1.0.0'.

format + + +string +| + +undefined + + + +

Format.

matrixSet + + +string + + + +

Matrix set.

dimensions + + +Object +| + +undefined + + + +

Dimensions.

url + + +string +| + +undefined + + + +

Url.

maxZoom + + +number +| + +undefined + + + +

Maximum zoom.

urls + + +Array.<string> +| + +undefined + + + +

Urls.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 121
+ + + + + + + +
+ + + +
+ + + +
+

XYZOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
attributions + + +Array.<ol.Attribution> +| + +undefined + + + +

Attributions.

crossOrigin + + +null +| + +string +| + +undefined + + + +

Cross origin setting for image + requests.

extent + + +ol.Extent +| + +undefined + + + +

Extent.

logo + + +string +| + +undefined + + + +

Logo.

projection + + +ol.ProjectionLike + + + +

Projection.

maxZoom + + +number +| + +undefined + + + +

Optional max zoom level. The default is + 18.

minZoom + + +number +| + +undefined + + + +

Unsupported (TODO: remove this).

tileUrlFunction + + +ol.TileUrlFunctionType +| + +undefined + + + +

Optional + function to get tile URL given a tile coordinate and the projection. + Required if url or urls are not provided.

url + + +string +| + +undefined + + + +

URL template. Must include '{x}', '{y}', + and '{z}' placeholders.

urls + + +Array.<string> +| + +undefined + + + +

An array of URL templates.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 123
+ + + + + + + +
+ + + +
+ +
+ + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.structs.Buffer.html b/edit/apidoc/ol.structs.Buffer.html new file mode 100644 index 0000000000..8b4614e5b7 --- /dev/null +++ b/edit/apidoc/ol.structs.Buffer.html @@ -0,0 +1,274 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.structs.Buffer + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.structs.Buffer +

+ +
+ +
+
+ + + + +
+

new Buffer

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
arr + + +Array.<number>= + + + + + + <optional>
+ + + +
(Optional)

Array.

used + + +number + + + + + + <optional>
+ + + +
(Optional)

Used.

usage + + +number + + + + + + <optional>
+ + + +
(Optional)

Usage.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • buffer.js, line 32
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.style.Fill.html b/edit/apidoc/ol.style.Fill.html new file mode 100644 index 0000000000..19d7c4f3ed --- /dev/null +++ b/edit/apidoc/ol.style.Fill.html @@ -0,0 +1,214 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.style.Fill + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.style. + + ol.style.Fill +

+ +
+ +
+
+ + + + +
+

new Fill

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +ol.style.FillOptions + + + + + + <optional>
+ + + +
(Optional)

Polygon options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • fillsymbolizer.js, line 19
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.style.Icon.html b/edit/apidoc/ol.style.Icon.html new file mode 100644 index 0000000000..d251bd80e7 --- /dev/null +++ b/edit/apidoc/ol.style.Icon.html @@ -0,0 +1,204 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.style.Icon + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.style. + + ol.style.Icon +

+ +
+ +
+
+ + + + +
+

new Icon

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.style.IconOptions + + + +

Icon options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • iconsymbolizer.js, line 19
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.style.Rule.html b/edit/apidoc/ol.style.Rule.html new file mode 100644 index 0000000000..aca4b2fbdf --- /dev/null +++ b/edit/apidoc/ol.style.Rule.html @@ -0,0 +1,204 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.style.Rule + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.style. + + ol.style.Rule +

+ +
+ +
+
+ + + + +
+

new Rule

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.style.RuleOptions + + + +

Rule options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • rule.js, line 16
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.style.Shape.html b/edit/apidoc/ol.style.Shape.html new file mode 100644 index 0000000000..300ffcbfbb --- /dev/null +++ b/edit/apidoc/ol.style.Shape.html @@ -0,0 +1,204 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.style.Shape + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.style. + + ol.style.Shape +

+ +
+ +
+
+ + + + +
+

new Shape

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.style.ShapeOptions + + + +

Shape options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • shapesymbolizer.js, line 22
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.style.Stroke.html b/edit/apidoc/ol.style.Stroke.html new file mode 100644 index 0000000000..6c951cca2e --- /dev/null +++ b/edit/apidoc/ol.style.Stroke.html @@ -0,0 +1,214 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.style.Stroke + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.style. + + ol.style.Stroke +

+ +
+ +
+
+ + + + +
+

new Stroke

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +ol.style.StrokeOptions + + + + + + <optional>
+ + + +
(Optional)

Stroke options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • strokesymbolizer.js, line 21
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.style.Style.html b/edit/apidoc/ol.style.Style.html new file mode 100644 index 0000000000..eb49609e9c --- /dev/null +++ b/edit/apidoc/ol.style.Style.html @@ -0,0 +1,204 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.style.Style + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.style. + + ol.style.Style +

+ +
+ +
+
+ + + + +
+

new Style

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.style.StyleOptions + + + +

Style options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • style.js, line 25
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.style.Text.html b/edit/apidoc/ol.style.Text.html new file mode 100644 index 0000000000..e43a99c3c1 --- /dev/null +++ b/edit/apidoc/ol.style.Text.html @@ -0,0 +1,204 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.style.Text + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.style. + + ol.style.Text +

+ +
+ +
+
+ + + + +
+

new Text

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.style.TextOptions + + + +

Text options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • textsymbolizer.js, line 18
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.style.html b/edit/apidoc/ol.style.html new file mode 100644 index 0000000000..d3370f560f --- /dev/null +++ b/edit/apidoc/ol.style.html @@ -0,0 +1,1501 @@ + + + + + OpenLayers 3 API Documentation - Namespace: ol.style + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol. + + ol.style +

+ +
+ +
+
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • style.jsdoc, line 1
+ + + + + + + +
+ + + + +
+ + + + + + + + +

Classes

+ +
+
ol.style.Fill
+
+ +
ol.style.Icon
+
+ +
ol.style.Rule
+
+ +
ol.style.Shape
+
+ +
ol.style.Stroke
+
+ +
ol.style.Style
+
+ +
ol.style.Text
+
+
+ + + + + +

Members

+ +
+ +
+

<static> ShapeType :string

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
CIRCLE + + +string + + + + + + circle + +
+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • shapeliteral.js, line 11
+ + + + + + + +
+ + + +
+ +
+ + + + + +

TypeDefs

+ +
+ +
+

FillOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
color + + +string +| + +ol.expr.Expression +| + +undefined + + + +

Fill color as hex color + code.

opacity + + +number +| + +ol.expr.Expression +| + +undefined + + + +

Opacity (0-1).

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 127
+ + + + + + + +
+ + + +
+ + + +
+

IconOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
url + + +string +| + +ol.expr.Expression + + + +

Icon image url.

width + + +number +| + +ol.expr.Expression +| + +undefined + + + +

Width of the icon + in pixels. Default is the width of the icon image.

height + + +number +| + +ol.expr.Expression +| + +undefined + + + +

Height of the + icon in pixels. Default is the height of the icon image.

opacity + + +number +| + +ol.expr.Expression +| + +undefined + + + +

Icon opacity + (0-1).

rotation + + +number +| + +ol.expr.Expression +| + +undefined + + + +

Rotation in + radians (positive rotation clockwise).

xOffset + + +number +| + +ol.expr.Expression +| + +undefined + + + +

Pixel offset from the + point to the center of the icon (positive values shift image left).

yOffset + + +number +| + +ol.expr.Expression +| + +undefined + + + +

Pixel offset from the + point to the center of the icon (positive values shift image down).

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 125
+ + + + + + + +
+ + + +
+ + + +
+

RuleOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
filter + + +ol.expr.Expression +| + +string +| + +undefined + + + +

Filter.

symbolizers + + +Array.<ol.style.Symbolizer> +| + +undefined + + + +

Symbolizers.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 129
+ + + + + + + +
+ + + +
+ + + +
+

ShapeOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
type + + +ol.style.ShapeType +| + +undefined + + + +

Type.

size + + +number +| + +ol.expr.Expression +| + +undefined + + + +

Size in pixels.

fill + + +ol.style.Fill +| + +undefined + + + +

Fill symbolizer for shape.

stroke + + +ol.style.Stroke +| + +undefined + + + +

Stroke symbolizer for shape.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 131
+ + + + + + + +
+ + + +
+ + + +
+

StrokeOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
color + + +string +| + +ol.expr.Expression +| + +undefined + + + +

Stroke color as hex + color code.

opacity + + +number +| + +ol.expr.Expression +| + +undefined + + + +

Stroke opacity (0-1).

width + + +number +| + +ol.expr.Expression +| + +undefined + + + +

Stroke width in pixels.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 133
+ + + + + + + +
+ + + +
+ + + +
+

StyleOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
rules + + +Array.<ol.style.Rule> +| + +undefined + + + +

Rules.

symbolizers + + +Array.<ol.style.Symbolizer> +| + +undefined + + + +

Symbolizers + (that apply if no rules are provided or where none of the provided rules + apply).

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 135
+ + + + + + + +
+ + + +
+ + + +
+

TextOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
color + + +string +| + +ol.expr.Expression +| + +undefined + + + +

Color.

fontFamily + + +string +| + +ol.expr.Expression +| + +undefined + + + +

Font family.

fontSize + + +number +| + +ol.expr.Expression +| + +undefined + + + +

Font size in pixels.

text + + +string +| + +ol.expr.Expression + + + +

Text for the label.

opacity + + +number +| + +ol.expr.Expression +| + +undefined + + + +

Opacity (0-1).

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 137
+ + + + + + + +
+ + + +
+ +
+ + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.tilegrid.TileGrid.html b/edit/apidoc/ol.tilegrid.TileGrid.html new file mode 100644 index 0000000000..dd4f917636 --- /dev/null +++ b/edit/apidoc/ol.tilegrid.TileGrid.html @@ -0,0 +1,628 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.tilegrid.TileGrid + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.tilegrid. + + ol.tilegrid.TileGrid +

+ +
+ +
+
+ + + + +
+

new TileGrid

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.tilegrid.TileGridOptions + + + +

Tile grid options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • tilegrid.js, line 32
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + +

Methods

+ +
+ +
+

getMinZoom

+ + +
+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • tilegrid.js, line 150
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Min zoom.

+
+ + + +
+
+ Type +
+
+ +number + + +
+
+ + + + +
+ + + +
+

getOrigin

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
z + + +number + + + +

Z.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • tilegrid.js, line 159
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Origin.

+
+ + + +
+
+ Type +
+
+ +ol.Coordinate + + +
+
+ + + + +
+ + + +
+

getResolutions

+ + +
+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • tilegrid.js, line 183
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Resolutions.

+
+ + + +
+
+ Type +
+
+ +Array.<number> + + +
+
+ + + + +
+ + + +
+

getTileSize

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
z + + +number + + + +

Z.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • tilegrid.js, line 371
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Tile size.

+
+ + + +
+
+ Type +
+
+ +ol.Size + + +
+
+ + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.tilegrid.WMTS.html b/edit/apidoc/ol.tilegrid.WMTS.html new file mode 100644 index 0000000000..7df63fd833 --- /dev/null +++ b/edit/apidoc/ol.tilegrid.WMTS.html @@ -0,0 +1,735 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.tilegrid.WMTS + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.tilegrid. + + ol.tilegrid.WMTS +

+ +
+ +
+
+ + + + +
+

new WMTS

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.tilegrid.WMTSOptions + + + +

WMTS options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • wmtstilegrid.js, line 15
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + +

Methods

+ +
+ +
+

getMatrixIds

+ + +
+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • wmtstilegrid.js, line 52
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

MatrixIds.

+
+ + + +
+
+ Type +
+
+ +Array.<string> + + +
+
+ + + + +
+ + + +
+

getMinZoom

+ + +
+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • tilegrid.js, line 150
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Min zoom.

+
+ + + +
+
+ Type +
+
+ +number + + +
+
+ + + + +
+ + + +
+

getOrigin

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
z + + +number + + + +

Z.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • tilegrid.js, line 159
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Origin.

+
+ + + +
+
+ Type +
+
+ +ol.Coordinate + + +
+
+ + + + +
+ + + +
+

getResolutions

+ + +
+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • tilegrid.js, line 183
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Resolutions.

+
+ + + +
+
+ Type +
+
+ +Array.<number> + + +
+
+ + + + +
+ + + +
+

getTileSize

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
z + + +number + + + +

Z.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • tilegrid.js, line 371
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Tile size.

+
+ + + +
+
+ Type +
+
+ +ol.Size + + +
+
+ + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.tilegrid.XYZ.html b/edit/apidoc/ol.tilegrid.XYZ.html new file mode 100644 index 0000000000..5025be9bf4 --- /dev/null +++ b/edit/apidoc/ol.tilegrid.XYZ.html @@ -0,0 +1,654 @@ + + + + + OpenLayers 3 API Documentation - Class: ol.tilegrid.XYZ + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol.tilegrid. + + ol.tilegrid.XYZ +

+ +
+ +
+
+ + + + +
+

new XYZ

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
options + + +ol.tilegrid.XYZOptions + + + +

XYZ options.

+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • xyztilegrid.js, line 17
+ + + + + + + +
+ + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + +

Methods

+ +
+ +
+

getMinZoom

+ + +
+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • tilegrid.js, line 150
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Min zoom.

+
+ + + +
+
+ Type +
+
+ +number + + +
+
+ + + + +
+ + + +
+

getOrigin

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
z + + +number + + + +

Z.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • tilegrid.js, line 159
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Origin.

+
+ + + +
+
+ Type +
+
+ +ol.Coordinate + + +
+
+ + + + +
+ + + +
+

getResolutions

+ + +
+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • tilegrid.js, line 183
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Resolutions.

+
+ + + +
+
+ Type +
+
+ +Array.<number> + + +
+
+ + + + +
+ + + +
+

getTileSize

+ + +
+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
z + + +number + + + +

Z.

+ + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source:
+
  • tilegrid.js, line 371
+ + + + + + + +
+ + + + + + + +
Returns:
+ + +
+

Tile size.

+
+ + + +
+
+ Type +
+
+ +ol.Size + + +
+
+ + + + +
+ +
+ + + + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/apidoc/ol.tilegrid.html b/edit/apidoc/ol.tilegrid.html new file mode 100644 index 0000000000..ca7620260b --- /dev/null +++ b/edit/apidoc/ol.tilegrid.html @@ -0,0 +1,699 @@ + + + + + OpenLayers 3 API Documentation - Namespace: ol.tilegrid + + + + + + + + + + + + + + + +
+ + + + +
+ +
+

+ ol. + + ol.tilegrid +

+ +
+ +
+
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source:
+
  • tilegrid.jsdoc, line 1
+ + + + + + + +
+ + + + +
+ + + + + + + + +

Classes

+ +
+
ol.tilegrid.TileGrid
+
+ +
ol.tilegrid.WMTS
+
+ +
ol.tilegrid.XYZ
+
+
+ + + + + + + + + +

TypeDefs

+ +
+ +
+

TileGridOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
minZoom + + +number +| + +undefined + + + +

Minimum zoom.

origin + + +ol.Coordinate +| + +undefined + + + +

Origin.

origins + + +Array.<ol.Coordinate> +| + +undefined + + + +

Origins.

resolutions + + +!Array.<number> + + + +

Resolutions.

tileSize + + +ol.Size +| + +undefined + + + +

Tile size.

tileSizes + + +Array.<ol.Size> +| + +undefined + + + +

Tile sizes.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 139
+ + + + + + + +
+ + + +
+ + + +
+

WMTSOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
origin + + +ol.Coordinate +| + +undefined + + + +

Origin.

origins + + +Array.<ol.Coordinate> +| + +undefined + + + +

Origins.

resolutions + + +!Array.<number> + + + +

Resolutions.

matrixIds + + +!Array.<string> + + + +

matrix IDs.

tileSize + + +ol.Size +| + +undefined + + + +

Tile size.

tileSizes + + +Array.<ol.Size> +| + +undefined + + + +

Tile sizes.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 141
+ + + + + + + +
+ + + +
+ + + +
+

XYZOptions

+ + +
+
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
maxZoom + + +number + + + +

Maximum zoom.

+ + + + + + + + + + + + + + + + + + + + +
Source:
+
  • objectliterals.jsdoc, line 143
+ + + + + + + +
+ + + +
+ +
+ + + +
+ +
+ + + + +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/master/apidoc/scripts/prettify/Apache-License-2.0.txt b/edit/apidoc/scripts/prettify/Apache-License-2.0.txt similarity index 100% rename from master/apidoc/scripts/prettify/Apache-License-2.0.txt rename to edit/apidoc/scripts/prettify/Apache-License-2.0.txt diff --git a/master/apidoc/scripts/prettify/lang-css.js b/edit/apidoc/scripts/prettify/lang-css.js similarity index 100% rename from master/apidoc/scripts/prettify/lang-css.js rename to edit/apidoc/scripts/prettify/lang-css.js diff --git a/master/apidoc/scripts/prettify/prettify.js b/edit/apidoc/scripts/prettify/prettify.js similarity index 100% rename from master/apidoc/scripts/prettify/prettify.js rename to edit/apidoc/scripts/prettify/prettify.js diff --git a/master/apidoc/styles/jsdoc-default.css b/edit/apidoc/styles/jsdoc-default.css similarity index 98% rename from master/apidoc/styles/jsdoc-default.css rename to edit/apidoc/styles/jsdoc-default.css index 47b2756c09..56bbb5b4e4 100644 --- a/master/apidoc/styles/jsdoc-default.css +++ b/edit/apidoc/styles/jsdoc-default.css @@ -203,7 +203,7 @@ dt.tag-source, dd.tag-source { } .details { margin-top: 14px; } -.details dt { width:100px; float:left; border-left: 2px solid #DDD; padding-left: 10px; padding-top: 6px; } +.details dt { width:110px; float:left; border-left: 2px solid #DDD; padding-left: 10px; padding-top: 6px; } .details dd { margin-left: 50px; } .details ul { margin: 0; } .details ul { list-style-type: none; } diff --git a/master/apidoc/styles/prettify-jsdoc.css b/edit/apidoc/styles/prettify-jsdoc.css similarity index 100% rename from master/apidoc/styles/prettify-jsdoc.css rename to edit/apidoc/styles/prettify-jsdoc.css diff --git a/edit/apidoc/styles/prettify-tomorrow.css b/edit/apidoc/styles/prettify-tomorrow.css new file mode 100644 index 0000000000..aa2908c251 --- /dev/null +++ b/edit/apidoc/styles/prettify-tomorrow.css @@ -0,0 +1,132 @@ +/* Tomorrow Theme */ +/* Original theme - https://github.com/chriskempson/tomorrow-theme */ +/* Pretty printing styles. Used with prettify.js. */ +/* SPAN elements with the classes below are added by prettyprint. */ +/* plain text */ +.pln { + color: #4d4d4c; } + +@media screen { + /* string content */ + .str { + color: #718c00; } + + /* a keyword */ + .kwd { + color: #8959a8; } + + /* a comment */ + .com { + color: #8e908c; } + + /* a type name */ + .typ { + color: #4271ae; } + + /* a literal value */ + .lit { + color: #f5871f; } + + /* punctuation */ + .pun { + color: #4d4d4c; } + + /* lisp open bracket */ + .opn { + color: #4d4d4c; } + + /* lisp close bracket */ + .clo { + color: #4d4d4c; } + + /* a markup tag name */ + .tag { + color: #c82829; } + + /* a markup attribute name */ + .atn { + color: #f5871f; } + + /* a markup attribute value */ + .atv { + color: #3e999f; } + + /* a declaration */ + .dec { + color: #f5871f; } + + /* a variable name */ + .var { + color: #c82829; } + + /* a function name */ + .fun { + color: #4271ae; } } +/* Use higher contrast and text-weight for printable form. */ +@media print, projection { + .str { + color: #060; } + + .kwd { + color: #006; + font-weight: bold; } + + .com { + color: #600; + font-style: italic; } + + .typ { + color: #404; + font-weight: bold; } + + .lit { + color: #044; } + + .pun, .opn, .clo { + color: #440; } + + .tag { + color: #006; + font-weight: bold; } + + .atn { + color: #404; } + + .atv { + color: #060; } } +/* Style */ +/* +pre.prettyprint { + background: white; + font-family: Menlo, Monaco, Consolas, monospace; + font-size: 12px; + line-height: 1.5; + border: 1px solid #ccc; + padding: 10px; } +*/ + +/* Specify class=linenums on a pre to get line numbering */ +ol.linenums { + margin-top: 0; + margin-bottom: 0; } + +/* IE indents via margin-left */ +li.L0, +li.L1, +li.L2, +li.L3, +li.L4, +li.L5, +li.L6, +li.L7, +li.L8, +li.L9 { + /* */ } + +/* Alternate shading for lines */ +li.L1, +li.L3, +li.L5, +li.L7, +li.L9 { + /* */ } diff --git a/edit/apidoc/tutorial-ol3.html b/edit/apidoc/tutorial-ol3.html new file mode 100644 index 0000000000..b94a3f2ffa --- /dev/null +++ b/edit/apidoc/tutorial-ol3.html @@ -0,0 +1,348 @@ + + + + + OpenLayers 3 API Documentation - Tutorial: OpenLayers 3 Architecture + + + + + + + + + + + + + + + +
+
+ +
+ + +

OpenLayers 3 Architecture

+
+ +
+

CLASS HIERARCHY

+ +
goog.math.Coordinate  // Simple 2D point
+|
++- TileCoord
+
+goog.math.Box
+|
++- Extent // The extent of a single object in two dimensions, projection not stored
+|
++- TileBounds  // A range of tiles in two dimensions, integer coordinates, z not stored
+
+
+Projection
+
+
+goog.events.EventTarget
+|
++- MVCObject
+|  |
+|  +- Camera
+|  |
+|  +- Control
+|  |  |
+|  |  +- ?
+|  |
+|  +- Layer
+|  |  |
+|  |  +- TileLayer
+|  |  |  |
+|  |  |  +- TMSTileLayer
+|  |  |  |
+|  |  |  +- WMTSTileLayer
+|  |  |  |
+|  |  |  +- XYZTileLayer / OSMTileLayer
+|  |  |
+|  |  +- VectorLayer
+|  |  |
+|  |  +- ImageLayer
+|  |
+|  +- LayerRenderer
+|  |
+|  +- LayerRendererOptions
+|  |
+|  +- Map
+|  |
+|  +- MapRenderer
+|  |  |
+|  |  +- HTMLMapRenderer
+|  |  |
+|  |  +- WebGLMapRenderer
+|  |
+|  +- MVCArray
+|  |  |
+|  |  +- ControlArray
+|  |  |
+|  |  +- LayerViewArray
+|
+|  +- TileQueue
+|
++- Tile
+
+ +

Layer renderer hierarchy

+ +
goog.events.EventTarget
+|
++- MVCObject
+   |
+   +- LayerRenderer
+      |
+      +- SingleTileLayerRenderer
+      |  |
+      |  +- HTMLSingleTileLayerRenderer
+      |  |
+      |  +- WebGLSingleTileLayerRenderer
+      |
+      +- TileLayerRenderer
+      |  |
+      |  +- HTMLTileLayerRenderer
+      |  |
+      |  +- WebGLTileLayerRenderer
+      |
+      +- VectorLayerRenderer
+      |  |
+      |  +- HTMLVectorLayerRenderer
+      |  |  |
+      |  |  +- SVGHTMLVectorLayerRenderer
+      |  |  |
+      |  |  +- Canvas2DHTMLVectorLayerRenderer
+      |  |  |
+      |  |  +- VMLHTMLVectorLayerRenderer
+      |  |
+      |  +- WebGLVectorLayerRenderer
+
+ +

OBJECT PROPERTIES AND METHODS

+ +

Notation:

+ +
    +
  • property type property with type, trailing ? indicates unsure, getters and setters are assumed to exist.
  • +
  • f(args) -> type function taking args returning type.
  • +
  • f(args) -> type = something f is a trivial wrapper around something.
  • +
  • fires 'x' fires events of type 'x'.
  • +
+ +

Principles:

+ +
    +
  • All non-trivial objects inherit from MVCObject.
  • +
  • All non-trivial collections are either MVCArrays or a child class thereof.
  • +
  • Resolutions are Array., infinitely scalable resources (e.g. vectore layers) have resolutions == null.
  • +
+ +
MVCObject
+  as Google Maps MVCObject
+  freeze()
+  unfreeze()
+
+TileCoord
+  clone() -> TileCoord
+  getHash() -> number
+
+TileBounds
+  forEachTileCoord(z, function(tileCoord))
+
+Tile
+  tileCoord TileCoord
+  url string
+  state UNLOADED | LOADING | LOADED
+  fires 'loaded' // when loaded
+  fires 'aborted'  // when loading is aborted
+
+Camera
+   position goog.math.Coordinate
+   resolution number
+   rotation number
+
+Layer
+   projections Array.
+   extent Extent
+   getResolutions() -> Array.|null
+   fires 'change' // when data changes
+
+LayerArray
+   getResolutions() -> Array.|null
+   getMaxResolution() = this.getResolutions()[0] | null
+
+LayerRendererOptions
+   layer Layer
+   visible boolean
+   opacity number
+   brightness number
+   color number
+   hue number
+   saturation number
+
+Map
+   projection Projection
+   renderer Renderer
+   layers LayerArray
+   addLayer(layer) = layers.push(layer)
+   getExtent() -> Extent
+   getMaxResolution() = layers.getMaxResolution()
+
+TileGrid
+   resolutions Array.
+   extent ol.Extent
+   xEast boolean
+   ySouth boolean
+   origin(s) Coord|Array.
+   tileSize goog.math.Size
+   forEachTileCoordChild(tileCoord, function(z, TileBounds))
+   forEachTileCoordParent(tileCoord, function(z, TileBounds))
+   getExtentTileBounds(z, extent) -> TileBounds
+   getTileCoord(coordinate) -> TileCoord
+   getTileCoordCenter(tileCoord) -> goog.math.Coordinate
+   getTileCoordExtent(tileCoord) -> ol.Extent
+   getTileCoordResolution(tileCoord) -> number
+   getZForResolution(resolution) -> number
+
+TileLayer
+   tileGrid TileGrid
+   tileUrl function(tileCoord) -> string
+   getTileCoordUrl(tileCoord) -> string = this.tileUrl(tileCoord)
+
+TileQueue
+   camera Camera  // or maybe MVCArray. ?
+   getTileCoordPriority(tileCoord) -> number  // private
+   enqueueTile(Tile)
+
+VectorLayer
+   forEachFeature(resolution, extent, projection, function(Feature))
+
+Renderer
+   target HTMLDivElement
+   map Map
+   camera Camera
+   getCapabilities() -> Array.  // maybe ?
+
+ +

Questions:

+ +
    +
  • Store tile layer extent in TileLayer or in TileGrid? (not clear)
  • +
+ +

Two concepts: tile coordinate system range and and available data extent. +TileGrid extent is range (or validity extent) of the tile coordinate system. +TileLayer extent is the available data extent. A particular TileGrid may range +from 0,0 to 10,10. My cache may conform to that grid but I may only have tiles +ranging from 2,2 to 8,8. When you need to wrap multiple worlds, you pay +attention to the TileGrid extent. When you need to decide whether or not to +bother requesting a tile, you pay attention to the TileLayer extent.

+ +
    +
  • Who determines "best" resolution? (static function?)
  • +
+ +

Todo: if tile layer extent stored in TileLayer rather than TileGrid then extent +will occasionally need to be passed to TileGrid functions for cropping.

+ +

DESIGN ASSERTIONS

+ +

Map

+ +
    +
  • A map has a renderer (the map renderer).
  • +
  • A map has a camera.
  • +
  • Multiple maps can share the same camera.
  • +
  • A map has a layer list.
  • +
+ +

Layer

+ +
    +
  • A layer can have multiple projections (the supported projections).
  • +
  • A layer advertizes the projections it supports.
  • +
  • A layer returns no data if asked data for an unsupported projection.
  • +
+ +

LayerRendererOptions

+ +
    +
  • A layer renderer options object stores view-related states for a layer.
  • +
  • Options include visibility, opacity, saturation, hue, etc.
  • +
  • A layer renderer options object has a layer.
  • +
  • Multiple layer renderer options can share the same layer.
  • +
  • In other words a layer can be viewed in different manners.
  • +
+ +

Renderer

+ +
    +
  • The map renderer responds to events.
  • +
  • The map renderer receives events from the camera.
  • +
  • The map renderer creates layer renderers.
  • +
+ +

Control

+ +
    +
  • A control may listen to map events.
  • +
  • A control may listen to camera events.
  • +
  • A map navigation control acts on the camera.
  • +
+ +

MVC

+ +
    +
  • Types can be described in MVC terms.
  • +
  • Models don't know what rendering means.
  • +
  • Maps are models.
  • +
  • Layers are models.
  • +
  • Layer views are models (sorry!).
  • +
  • Cameras are models.
  • +
  • Layer lists are collections.
  • +
  • Renderers are views.
  • +
  • Controls are views or controllers or both.
  • +
  • An attribution control is a view.
  • +
  • A map navigation control is a controller.
  • +
  • A zoom slider control is both a view and a controller.
  • +
+
+ +
+ +
+ + + +
+ +
+ Documentation generated by JSDoc 3 +
+ + + + + diff --git a/edit/build/ol-deps.js b/edit/build/ol-deps.js new file mode 100644 index 0000000000..1cc7698ff5 --- /dev/null +++ b/edit/build/ol-deps.js @@ -0,0 +1,1114 @@ +// This file was autogenerated by bin/closure/depswriter.py. +// Please do not edit. +goog.addDependency('../../../ol/ol/animation.js', ['ol.animation'], ['ol.PreRenderFunction', 'ol.ViewHint', 'ol.easing']); +goog.addDependency('../../../ol/ol/array.js', ['ol.array'], ['goog.array', 'goog.asserts']); +goog.addDependency('../../../ol/ol/attribution.js', ['ol.Attribution'], ['ol.TileRange']); +goog.addDependency('../../../ol/ol/browserfeature.js', ['ol.BrowserFeature'], []); +goog.addDependency('../../../ol/ol/canvas/canvas.js', ['ol.canvas', 'ol.canvas.SUPPORTED'], ['goog.dom', 'goog.dom.TagName']); +goog.addDependency('../../../ol/ol/collection.js', ['ol.Collection', 'ol.CollectionEvent', 'ol.CollectionEventType'], ['goog.array', 'goog.events.Event', 'ol.Object']); +goog.addDependency('../../../ol/ol/color.js', ['ol.Color'], ['goog.color', 'goog.math']); +goog.addDependency('../../../ol/ol/constraints.js', ['ol.Constraints'], ['ol.ResolutionConstraintType', 'ol.RotationConstraintType']); +goog.addDependency('../../../ol/ol/control/attributioncontrol.js', ['ol.control.Attribution'], ['goog.array', 'goog.dom', 'goog.dom.TagName', 'goog.object', 'goog.style', 'ol.Attribution', 'ol.FrameState', 'ol.control.Control', 'ol.css']); +goog.addDependency('../../../ol/ol/control/control.js', ['ol.control.Control'], ['goog.array', 'goog.dom', 'goog.events', 'ol.MapEventType', 'ol.Object']); +goog.addDependency('../../../ol/ol/control/controldefaults.js', ['ol.control'], ['ol.Collection', 'ol.control.Attribution', 'ol.control.Logo', 'ol.control.Zoom']); +goog.addDependency('../../../ol/ol/control/dragboxcontrol.js', ['ol.control.DragBox'], ['goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.math.Size', 'goog.style', 'ol.Coordinate', 'ol.MapBrowserEvent', 'ol.MapBrowserEvent.EventType', 'ol.Pixel', 'ol.control.Control']); +goog.addDependency('../../../ol/ol/control/fullscreencontrol.js', ['ol.control.FullScreen'], ['goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classes', 'goog.dom.fullscreen', 'goog.dom.fullscreen.EventType', 'goog.events', 'goog.events.EventType', 'ol.control.Control', 'ol.css']); +goog.addDependency('../../../ol/ol/control/logocontrol.js', ['ol.control.Logo'], ['goog.dom', 'goog.dom.TagName', 'goog.object', 'goog.style', 'ol.FrameState', 'ol.control.Control', 'ol.css']); +goog.addDependency('../../../ol/ol/control/mousepositioncontrol.js', ['ol.control.MousePosition'], ['goog.array', 'goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.events.EventType', 'goog.style', 'ol.CoordinateFormatType', 'ol.Object', 'ol.Pixel', 'ol.Projection', 'ol.TransformFunction', 'ol.control.Control', 'ol.proj']); +goog.addDependency('../../../ol/ol/control/scalelinecontrol.js', ['ol.control.ScaleLine', 'ol.control.ScaleLineProperty', 'ol.control.ScaleLineUnits'], ['goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.math', 'goog.style', 'ol.Object', 'ol.ProjectionUnits', 'ol.TransformFunction', 'ol.View2DState', 'ol.control.Control', 'ol.css', 'ol.proj', 'ol.sphere.NORMAL']); +goog.addDependency('../../../ol/ol/control/zoomcontrol.js', ['ol.control.Zoom'], ['goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.events.EventType', 'ol.animation', 'ol.control.Control', 'ol.css', 'ol.easing']); +goog.addDependency('../../../ol/ol/control/zoomslidercontrol.js', ['ol.control.ZoomSlider'], ['goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.events.EventType', 'goog.fx.Dragger', 'goog.fx.Dragger.EventType', 'goog.math', 'goog.math.Rect', 'goog.style', 'ol.animation', 'ol.control.Control', 'ol.css', 'ol.easing']); +goog.addDependency('../../../ol/ol/control/zoomtoextentcontrol.js', ['ol.control.ZoomToExtent'], ['goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.events.EventType', 'ol.control.Control', 'ol.css']); +goog.addDependency('../../../ol/ol/coordinate.js', ['ol.Coordinate', 'ol.CoordinateArray', 'ol.CoordinateFormatType', 'ol.coordinate'], ['goog.math']); +goog.addDependency('../../../ol/ol/css.js', ['ol.css'], []); +goog.addDependency('../../../ol/ol/deviceorientation.js', ['ol.DeviceOrientation', 'ol.DeviceOrientation.SUPPORTED', 'ol.DeviceOrientationProperty'], ['goog.events', 'goog.math', 'ol.Object']); +goog.addDependency('../../../ol/ol/dom/dom.js', ['ol.dom', 'ol.dom.BrowserFeature'], ['goog.asserts', 'goog.vec.Mat4']); +goog.addDependency('../../../ol/ol/dom/input.js', ['ol.dom.Input', 'ol.dom.InputProperty'], ['goog.events', 'goog.events.EventType', 'ol.Object']); +goog.addDependency('../../../ol/ol/easing.js', ['ol.easing'], ['goog.fx.easing']); +goog.addDependency('../../../ol/ol/ellipsoid/bessel1841ellipsoid.js', ['ol.ellipsoid.BESSEL1841'], ['ol.Ellipsoid']); +goog.addDependency('../../../ol/ol/ellipsoid/ellipsoid.js', ['ol.Ellipsoid'], ['goog.math', 'ol.Coordinate']); +goog.addDependency('../../../ol/ol/ellipsoid/wgs84ellipsoid.js', ['ol.ellipsoid.WGS84'], ['ol.Ellipsoid']); +goog.addDependency('../../../ol/ol/expr/expression.js', ['ol.expr', 'ol.expr.functions'], ['ol.Extent', 'ol.Feature', 'ol.expr.Call', 'ol.expr.Expression', 'ol.expr.Identifier', 'ol.expr.Parser', 'ol.extent', 'ol.geom.GeometryType']); +goog.addDependency('../../../ol/ol/expr/expressions.js', ['ol.expr.Call', 'ol.expr.Comparison', 'ol.expr.ComparisonOp', 'ol.expr.Expression', 'ol.expr.Identifier', 'ol.expr.Literal', 'ol.expr.Logical', 'ol.expr.LogicalOp', 'ol.expr.Math', 'ol.expr.MathOp', 'ol.expr.Member', 'ol.expr.Not'], []); +goog.addDependency('../../../ol/ol/expr/lexer.js', ['ol.expr.Char', 'ol.expr.Lexer', 'ol.expr.Token', 'ol.expr.TokenType', 'ol.expr.UnexpectedToken'], ['goog.asserts', 'goog.debug.Error']); +goog.addDependency('../../../ol/ol/expr/parser.js', ['ol.expr.Parser'], ['goog.asserts', 'ol.expr.Call', 'ol.expr.Comparison', 'ol.expr.ComparisonOp', 'ol.expr.Expression', 'ol.expr.Identifier', 'ol.expr.Lexer', 'ol.expr.Literal', 'ol.expr.Logical', 'ol.expr.LogicalOp', 'ol.expr.Math', 'ol.expr.MathOp', 'ol.expr.Member', 'ol.expr.Not', 'ol.expr.Token', 'ol.expr.TokenType', 'ol.expr.UnexpectedToken']); +goog.addDependency('../../../ol/ol/extent.js', ['ol.Extent', 'ol.extent'], ['goog.asserts', 'ol.Coordinate', 'ol.Size', 'ol.TransformFunction']); +goog.addDependency('../../../ol/ol/feature.js', ['ol.Feature'], ['ol.Object', 'ol.geom.Geometry', 'ol.layer.VectorLayerRenderIntent']); +goog.addDependency('../../../ol/ol/framestate.js', ['ol.FrameState', 'ol.PostRenderFunction', 'ol.PreRenderFunction'], ['goog.vec.Mat4', 'ol.Attribution', 'ol.Extent', 'ol.Size', 'ol.TileQueue', 'ol.TileRange', 'ol.View2DState', 'ol.layer.Layer', 'ol.layer.LayerState']); +goog.addDependency('../../../ol/ol/geolocation.js', ['ol.Geolocation', 'ol.Geolocation.SUPPORTED', 'ol.GeolocationProperty'], ['goog.events', 'goog.events.EventType', 'goog.math', 'ol.Coordinate', 'ol.Object', 'ol.Projection', 'ol.proj']); +goog.addDependency('../../../ol/ol/geom/abstractcollection.js', ['ol.geom.AbstractCollection'], ['ol.geom.Geometry']); +goog.addDependency('../../../ol/ol/geom/base.js', ['ol.geom'], ['ol.coordinate']); +goog.addDependency('../../../ol/ol/geom/geometry.js', ['ol.geom.Geometry', 'ol.geom.GeometryType'], ['ol.Extent', 'ol.geom.SharedVertices']); +goog.addDependency('../../../ol/ol/geom/geometrycollection.js', ['ol.geom.GeometryCollection'], ['goog.asserts', 'ol.geom.AbstractCollection', 'ol.geom.Geometry', 'ol.geom.GeometryType']); +goog.addDependency('../../../ol/ol/geom/linearring.js', ['ol.geom.LinearRing'], ['ol.CoordinateArray', 'ol.geom.GeometryType', 'ol.geom.LineString', 'ol.geom.SharedVertices']); +goog.addDependency('../../../ol/ol/geom/linestring.js', ['ol.geom.LineString'], ['goog.asserts', 'ol.CoordinateArray', 'ol.geom', 'ol.geom.Geometry', 'ol.geom.GeometryType', 'ol.geom.SharedVertices']); +goog.addDependency('../../../ol/ol/geom/multilinestring.js', ['ol.geom.MultiLineString'], ['goog.asserts', 'ol.CoordinateArray', 'ol.geom.AbstractCollection', 'ol.geom.GeometryType', 'ol.geom.LineString', 'ol.geom.SharedVertices']); +goog.addDependency('../../../ol/ol/geom/multipoint.js', ['ol.geom.MultiPoint'], ['goog.asserts', 'ol.CoordinateArray', 'ol.geom.AbstractCollection', 'ol.geom.GeometryType', 'ol.geom.Point', 'ol.geom.SharedVertices']); +goog.addDependency('../../../ol/ol/geom/multipolygon.js', ['ol.geom.MultiPolygon'], ['goog.asserts', 'ol.CoordinateArray', 'ol.geom.AbstractCollection', 'ol.geom.GeometryType', 'ol.geom.Polygon', 'ol.geom.SharedVertices']); +goog.addDependency('../../../ol/ol/geom/point.js', ['ol.geom.Point'], ['goog.asserts', 'ol.Coordinate', 'ol.geom.Geometry', 'ol.geom.GeometryType', 'ol.geom.SharedVertices']); +goog.addDependency('../../../ol/ol/geom/polygon.js', ['ol.geom.Polygon'], ['goog.asserts', 'ol.CoordinateArray', 'ol.extent', 'ol.geom.Geometry', 'ol.geom.GeometryType', 'ol.geom.LinearRing', 'ol.geom.SharedVertices']); +goog.addDependency('../../../ol/ol/geom/sharedvertices.js', ['ol.geom.SharedVertices'], ['goog.asserts', 'ol.Coordinate', 'ol.CoordinateArray']); +goog.addDependency('../../../ol/ol/geom2/geom2.js', ['ol.geom2'], ['goog.asserts', 'ol.Extent']); +goog.addDependency('../../../ol/ol/geom2/linestringcollection.js', ['ol.geom2.LineString', 'ol.geom2.LineStringCollection'], ['goog.array', 'goog.asserts', 'goog.object', 'ol.geom2', 'ol.structs.Buffer']); +goog.addDependency('../../../ol/ol/geom2/pointcollection.js', ['ol.geom2.Point', 'ol.geom2.PointCollection'], ['goog.asserts', 'ol.Extent', 'ol.geom2', 'ol.structs.Buffer']); +goog.addDependency('../../../ol/ol/image.js', ['ol.Image', 'ol.ImageState'], ['goog.array', 'goog.asserts', 'goog.events', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.object', 'ol.Attribution', 'ol.Extent']); +goog.addDependency('../../../ol/ol/imagetile.js', ['ol.ImageTile'], ['goog.array', 'goog.asserts', 'goog.events', 'goog.events.EventType', 'goog.object', 'ol.Tile', 'ol.TileCoord', 'ol.TileState']); +goog.addDependency('../../../ol/ol/imageurlfunction.js', ['ol.ImageUrlFunction', 'ol.ImageUrlFunctionType'], ['ol.Size']); +goog.addDependency('../../../ol/ol/interaction/condition.js', ['ol.interaction.ConditionType', 'ol.interaction.condition'], ['goog.dom.TagName', 'goog.events.EventType', 'goog.functions']); +goog.addDependency('../../../ol/ol/interaction/doubleclickzoominteraction.js', ['ol.interaction.DoubleClickZoom'], ['goog.asserts', 'ol.MapBrowserEvent', 'ol.MapBrowserEvent.EventType', 'ol.interaction.Interaction']); +goog.addDependency('../../../ol/ol/interaction/draginteraction.js', ['ol.interaction.Drag'], ['goog.asserts', 'goog.events.BrowserEvent', 'goog.functions', 'ol.Coordinate', 'ol.MapBrowserEvent', 'ol.MapBrowserEvent.EventType', 'ol.ViewHint', 'ol.interaction.Interaction']); +goog.addDependency('../../../ol/ol/interaction/dragpaninteraction.js', ['ol.interaction.DragPan'], ['goog.asserts', 'ol.Kinetic', 'ol.PreRenderFunction', 'ol.View2D', 'ol.coordinate', 'ol.interaction.ConditionType', 'ol.interaction.Drag', 'ol.interaction.condition']); +goog.addDependency('../../../ol/ol/interaction/dragrotateandzoominteraction.js', ['ol.interaction.DragRotateAndZoom'], ['goog.asserts', 'goog.math.Vec2', 'ol.interaction.ConditionType', 'ol.interaction.Drag', 'ol.interaction.Interaction', 'ol.interaction.condition']); +goog.addDependency('../../../ol/ol/interaction/dragrotateinteraction.js', ['ol.interaction.DragRotate'], ['goog.asserts', 'ol.interaction.ConditionType', 'ol.interaction.Drag', 'ol.interaction.Interaction', 'ol.interaction.condition']); +goog.addDependency('../../../ol/ol/interaction/dragzoominteraction.js', ['ol.interaction.DragZoom'], ['goog.asserts', 'ol.Size', 'ol.View2D', 'ol.control.DragBox', 'ol.extent', 'ol.interaction.ConditionType', 'ol.interaction.Drag', 'ol.interaction.condition']); +goog.addDependency('../../../ol/ol/interaction/interaction.js', ['ol.interaction.Interaction'], ['ol.MapBrowserEvent', 'ol.animation', 'ol.easing']); +goog.addDependency('../../../ol/ol/interaction/interactiondefaults.js', ['ol.interaction'], ['ol.Collection', 'ol.Kinetic', 'ol.interaction.DoubleClickZoom', 'ol.interaction.DragPan', 'ol.interaction.DragRotate', 'ol.interaction.DragZoom', 'ol.interaction.KeyboardPan', 'ol.interaction.KeyboardZoom', 'ol.interaction.MouseWheelZoom', 'ol.interaction.TouchPan', 'ol.interaction.TouchRotate', 'ol.interaction.TouchZoom']); +goog.addDependency('../../../ol/ol/interaction/keyboardpaninteraction.js', ['ol.interaction.KeyboardPan'], ['goog.asserts', 'goog.events.KeyCodes', 'goog.events.KeyHandler.EventType', 'goog.functions', 'ol.View2D', 'ol.coordinate', 'ol.interaction.ConditionType', 'ol.interaction.Interaction', 'ol.interaction.condition']); +goog.addDependency('../../../ol/ol/interaction/keyboardzoominteraction.js', ['ol.interaction.KeyboardZoom'], ['goog.asserts', 'goog.events.KeyHandler.EventType', 'goog.functions', 'ol.interaction.ConditionType', 'ol.interaction.Interaction', 'ol.interaction.condition']); +goog.addDependency('../../../ol/ol/interaction/modifyinteraction.js', ['ol.interaction.Modify'], ['goog.array', 'goog.events', 'goog.object', 'ol.Feature', 'ol.MapBrowserEvent.EventType', 'ol.ViewHint', 'ol.coordinate', 'ol.extent', 'ol.geom.AbstractCollection', 'ol.geom.LineString', 'ol.geom.LinearRing', 'ol.geom.Point', 'ol.geom.Polygon', 'ol.interaction.Drag', 'ol.layer.Vector', 'ol.layer.VectorLayerEventType', 'ol.layer.VectorLayerRenderIntent', 'ol.structs.RTree']); +goog.addDependency('../../../ol/ol/interaction/mousewheelzoominteraction.js', ['ol.interaction.MouseWheelZoom'], ['goog.asserts', 'goog.events.MouseWheelEvent', 'goog.events.MouseWheelHandler.EventType', 'goog.math', 'ol.Coordinate', 'ol.interaction.Interaction']); +goog.addDependency('../../../ol/ol/interaction/selectinteraction.js', ['ol.interaction.Select'], ['goog.array', 'goog.object', 'ol.Feature', 'ol.interaction.ConditionType', 'ol.interaction.Interaction', 'ol.interaction.condition', 'ol.layer.Vector', 'ol.layer.VectorLayerRenderIntent', 'ol.source.Vector']); +goog.addDependency('../../../ol/ol/interaction/touchinteraction.js', ['ol.interaction.Touch'], ['goog.asserts', 'goog.functions', 'goog.object', 'ol.MapBrowserEvent', 'ol.MapBrowserEvent.EventType', 'ol.Pixel', 'ol.ViewHint', 'ol.interaction.Interaction']); +goog.addDependency('../../../ol/ol/interaction/touchpaninteraction.js', ['ol.interaction.TouchPan'], ['goog.asserts', 'ol.Kinetic', 'ol.Pixel', 'ol.PreRenderFunction', 'ol.coordinate', 'ol.interaction.Touch']); +goog.addDependency('../../../ol/ol/interaction/touchrotateinteraction.js', ['ol.interaction.TouchRotate'], ['goog.asserts', 'goog.style', 'ol.Coordinate', 'ol.interaction.Interaction', 'ol.interaction.Touch']); +goog.addDependency('../../../ol/ol/interaction/touchzoominteraction.js', ['ol.interaction.TouchZoom'], ['goog.asserts', 'goog.style', 'ol.Coordinate', 'ol.interaction.Interaction', 'ol.interaction.Touch']); +goog.addDependency('../../../ol/ol/iview.js', ['ol.IView'], ['ol.IView2D', 'ol.IView3D']); +goog.addDependency('../../../ol/ol/iview2d.js', ['ol.IView2D', 'ol.View2DState'], ['ol.Coordinate', 'ol.Projection']); +goog.addDependency('../../../ol/ol/iview3d.js', ['ol.IView3D'], []); +goog.addDependency('../../../ol/ol/kinetic.js', ['ol.Kinetic'], ['ol.Coordinate', 'ol.PreRenderFunction', 'ol.animation']); +goog.addDependency('../../../ol/ol/layer/imagelayer.js', ['ol.layer.Image'], ['ol.layer.Layer', 'ol.source.Image']); +goog.addDependency('../../../ol/ol/layer/layer.js', ['ol.layer.Layer'], ['goog.asserts', 'goog.events', 'goog.events.EventType', 'goog.object', 'ol.layer.Base', 'ol.source.Source']); +goog.addDependency('../../../ol/ol/layer/layerbase.js', ['ol.layer.Base', 'ol.layer.LayerProperty', 'ol.layer.LayerState'], ['goog.events', 'goog.events.EventType', 'goog.math', 'goog.object', 'ol.Object']); +goog.addDependency('../../../ol/ol/layer/layergroup.js', ['ol.layer.Group'], ['goog.array', 'goog.asserts', 'goog.events', 'goog.events.EventType', 'goog.math', 'goog.object', 'ol.Collection', 'ol.CollectionEvent', 'ol.CollectionEventType', 'ol.Object', 'ol.layer.Base']); +goog.addDependency('../../../ol/ol/layer/tilelayer.js', ['ol.layer.Tile'], ['ol.layer.Layer', 'ol.source.Tile']); +goog.addDependency('../../../ol/ol/layer/vectorlayer.js', ['ol.layer.Vector', 'ol.layer.VectorLayerEventType'], ['goog.array', 'goog.asserts', 'goog.events.EventType', 'goog.object', 'ol.Feature', 'ol.expr', 'ol.expr.Literal', 'ol.expr.Logical', 'ol.expr.LogicalOp', 'ol.expr.functions', 'ol.extent', 'ol.geom.GeometryType', 'ol.geom.SharedVertices', 'ol.layer.Layer', 'ol.proj', 'ol.source.Vector', 'ol.structs.RTree', 'ol.style', 'ol.style.Style', 'ol.style.TextLiteral']); +goog.addDependency('../../../ol/ol/layer/vectorlayer2.js', ['ol.layer.Vector2'], ['ol.layer.Layer', 'ol.source.Vector2']); +goog.addDependency('../../../ol/ol/layer/vectorlayerrenderintent.js', ['ol.layer.VectorLayerRenderIntent'], []); +goog.addDependency('../../../ol/ol/map.js', ['ol.Map', 'ol.MapProperty', 'ol.RendererHint', 'ol.RendererHints'], ['goog.Uri.QueryData', 'goog.array', 'goog.asserts', 'goog.async.AnimationDelay', 'goog.async.Delay', 'goog.debug.Console', 'goog.dispose', 'goog.dom', 'goog.dom.TagName', 'goog.dom.ViewportSizeMonitor', 'goog.events', 'goog.events.BrowserEvent', 'goog.events.Event', 'goog.events.EventType', 'goog.events.KeyHandler', 'goog.events.KeyHandler.EventType', 'goog.events.MouseWheelHandler', 'goog.events.MouseWheelHandler.EventType', 'goog.log', 'goog.log.Level', 'goog.object', 'goog.style', 'goog.vec.Mat4', 'ol.BrowserFeature', 'ol.Collection', 'ol.FrameState', 'ol.IView', 'ol.MapBrowserEvent', 'ol.MapBrowserEvent.EventType', 'ol.MapBrowserEventHandler', 'ol.MapEvent', 'ol.MapEventType', 'ol.Object', 'ol.ObjectEventType', 'ol.Pixel', 'ol.PostRenderFunction', 'ol.PreRenderFunction', 'ol.Size', 'ol.Tile', 'ol.TileQueue', 'ol.View', 'ol.View2D', 'ol.ViewHint', 'ol.control', 'ol.extent', 'ol.interaction', 'ol.layer.Base', 'ol.layer.Group', 'ol.proj', 'ol.proj.common', 'ol.renderer.Map', 'ol.renderer.canvas.Map', 'ol.renderer.canvas.SUPPORTED', 'ol.renderer.dom.Map', 'ol.renderer.dom.SUPPORTED', 'ol.renderer.webgl.Map', 'ol.renderer.webgl.SUPPORTED', 'ol.structs.PriorityQueue', 'ol.vec.Mat4']); +goog.addDependency('../../../ol/ol/mapbrowserevent.js', ['ol.MapBrowserEvent', 'ol.MapBrowserEvent.EventType', 'ol.MapBrowserEventHandler'], ['goog.array', 'goog.events', 'goog.events.BrowserEvent', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.style', 'ol.BrowserFeature', 'ol.Coordinate', 'ol.FrameState', 'ol.MapEvent', 'ol.Pixel']); +goog.addDependency('../../../ol/ol/mapevent.js', ['ol.MapEvent', 'ol.MapEventType'], ['goog.events.Event', 'ol.FrameState']); +goog.addDependency('../../../ol/ol/math.js', ['ol.math'], ['goog.asserts']); +goog.addDependency('../../../ol/ol/object.js', ['ol.Object', 'ol.ObjectEventType'], ['goog.array', 'goog.events', 'goog.events.EventTarget', 'goog.object']); +goog.addDependency('../../../ol/ol/ol.js', ['ol'], []); +goog.addDependency('../../../ol/ol/overlay.js', ['ol.Overlay', 'ol.OverlayPositioning', 'ol.OverlayProperty'], ['goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.style', 'ol.Coordinate', 'ol.Map', 'ol.MapEventType', 'ol.Object']); +goog.addDependency('../../../ol/ol/parser/featureparser.js', ['ol.parser.AsyncObjectFeatureParser', 'ol.parser.AsyncStringFeatureParser', 'ol.parser.DomFeatureParser', 'ol.parser.ObjectFeatureParser', 'ol.parser.ReadFeaturesOptions', 'ol.parser.ReadFeaturesResult', 'ol.parser.StringFeatureParser'], ['ol.Feature']); +goog.addDependency('../../../ol/ol/parser/geojson.js', ['ol.parser.GeoJSON'], ['goog.asserts', 'goog.object', 'ol.Feature', 'ol.geom.Geometry', 'ol.geom.GeometryCollection', 'ol.geom.GeometryType', 'ol.geom.LineString', 'ol.geom.MultiLineString', 'ol.geom.MultiPoint', 'ol.geom.MultiPolygon', 'ol.geom.Point', 'ol.geom.Polygon', 'ol.geom.SharedVertices', 'ol.parser.Parser', 'ol.parser.ReadFeaturesOptions', 'ol.parser.ReadFeaturesResult', 'ol.parser.StringFeatureParser']); +goog.addDependency('../../../ol/ol/parser/gpx.js', ['ol.parser.GPX'], ['goog.dom.xml', 'ol.Feature', 'ol.geom.GeometryType', 'ol.geom.LineString', 'ol.geom.MultiLineString', 'ol.geom.Point', 'ol.geom.Polygon', 'ol.parser.DomFeatureParser', 'ol.parser.ObjectFeatureParser', 'ol.parser.ReadFeaturesOptions', 'ol.parser.StringFeatureParser', 'ol.parser.XML']); +goog.addDependency('../../../ol/ol/parser/kml.js', ['ol.parser.KML'], ['goog.array', 'goog.async.Deferred', 'goog.async.DeferredList', 'goog.date', 'goog.dispose', 'goog.dom.xml', 'goog.events', 'goog.net.EventType', 'goog.net.XhrIo', 'goog.object', 'goog.string', 'ol.Feature', 'ol.geom.AbstractCollection', 'ol.geom.GeometryCollection', 'ol.geom.GeometryType', 'ol.geom.LineString', 'ol.geom.MultiLineString', 'ol.geom.MultiPoint', 'ol.geom.MultiPolygon', 'ol.geom.Point', 'ol.geom.Polygon', 'ol.geom.SharedVertices', 'ol.parser.AsyncObjectFeatureParser', 'ol.parser.AsyncStringFeatureParser', 'ol.parser.DomFeatureParser', 'ol.parser.ReadFeaturesOptions', 'ol.parser.StringFeatureParser', 'ol.parser.XML', 'ol.style.Fill', 'ol.style.Icon', 'ol.style.Stroke']); +goog.addDependency('../../../ol/ol/parser/ogc/exceptionreport.js', ['ol.parser.ogc.ExceptionReport'], ['goog.dom.xml', 'ol.parser.XML']); +goog.addDependency('../../../ol/ol/parser/ogc/filter.js', ['ol.parser.ogc.Filter'], ['ol.parser.ogc.Filter_v1_0_0', 'ol.parser.ogc.Filter_v1_1_0', 'ol.parser.ogc.Versioned']); +goog.addDependency('../../../ol/ol/parser/ogc/filter_v1.js', ['ol.parser.ogc.Filter_v1'], ['goog.array', 'goog.asserts', 'goog.dom.xml', 'goog.object', 'goog.string', 'ol.expr', 'ol.expr.Call', 'ol.expr.Comparison', 'ol.expr.ComparisonOp', 'ol.expr.Identifier', 'ol.expr.Literal', 'ol.expr.Logical', 'ol.expr.LogicalOp', 'ol.expr.Not', 'ol.expr.functions', 'ol.parser.XML']); +goog.addDependency('../../../ol/ol/parser/ogc/filter_v1_0_0.js', ['ol.parser.ogc.Filter_v1_0_0'], ['goog.asserts', 'goog.object', 'ol.expr', 'ol.expr.Call', 'ol.expr.Comparison', 'ol.expr.ComparisonOp', 'ol.expr.Identifier', 'ol.expr.Literal', 'ol.expr.functions', 'ol.geom.Geometry', 'ol.parser.ogc.Filter_v1', 'ol.parser.ogc.GML_v2']); +goog.addDependency('../../../ol/ol/parser/ogc/filter_v1_1_0.js', ['ol.parser.ogc.Filter_v1_1_0'], ['goog.asserts', 'goog.object', 'ol.expr', 'ol.expr.Call', 'ol.expr.Comparison', 'ol.expr.ComparisonOp', 'ol.expr.Identifier', 'ol.expr.Literal', 'ol.expr.functions', 'ol.geom.Geometry', 'ol.parser.ogc.Filter_v1', 'ol.parser.ogc.GML_v3']); +goog.addDependency('../../../ol/ol/parser/ogc/gml.js', ['ol.parser.ogc.GML'], ['goog.array', 'goog.asserts', 'goog.dom.xml', 'ol.Feature', 'ol.geom.Geometry', 'ol.geom.GeometryCollection', 'ol.geom.GeometryType', 'ol.geom.LineString', 'ol.geom.LinearRing', 'ol.geom.MultiLineString', 'ol.geom.MultiPoint', 'ol.geom.MultiPolygon', 'ol.geom.Point', 'ol.geom.Polygon', 'ol.parser.StringFeatureParser', 'ol.parser.XML', 'ol.proj']); +goog.addDependency('../../../ol/ol/parser/ogc/gml_v2.js', ['ol.parser.ogc.GML_v2'], ['goog.array', 'goog.object', 'ol.parser.ogc.GML']); +goog.addDependency('../../../ol/ol/parser/ogc/gml_v3.js', ['ol.parser.ogc.GML_v3'], ['goog.array', 'goog.functions', 'goog.object', 'ol.geom.GeometryType', 'ol.parser.ogc.GML']); +goog.addDependency('../../../ol/ol/parser/ogc/owscommon_v1.js', ['ol.parser.ogc.OWSCommon_v1'], ['ol.parser.XML']); +goog.addDependency('../../../ol/ol/parser/ogc/owscommon_v1_1_0.js', ['ol.parser.ogc.OWSCommon_v1_1_0'], ['goog.object', 'ol.parser.ogc.OWSCommon_v1']); +goog.addDependency('../../../ol/ol/parser/ogc/versioned.js', ['ol.parser.ogc.Versioned'], ['goog.dom.xml', 'ol.parser.ogc.ExceptionReport']); +goog.addDependency('../../../ol/ol/parser/ogc/wmscapabilities.js', ['ol.parser.ogc.WMSCapabilities'], ['ol.parser.ogc.Versioned', 'ol.parser.ogc.WMSCapabilities_v1_0_0', 'ol.parser.ogc.WMSCapabilities_v1_1_0', 'ol.parser.ogc.WMSCapabilities_v1_1_1', 'ol.parser.ogc.WMSCapabilities_v1_1_1_WMSC', 'ol.parser.ogc.WMSCapabilities_v1_3_0']); +goog.addDependency('../../../ol/ol/parser/ogc/wmscapabilities_v1.js', ['ol.parser.ogc.WMSCapabilities_v1'], ['goog.dom.xml', 'goog.object', 'ol.parser.XML']); +goog.addDependency('../../../ol/ol/parser/ogc/wmscapabilities_v1_0_0.js', ['ol.parser.ogc.WMSCapabilities_v1_0_0'], ['goog.object', 'goog.string', 'ol.parser.ogc.WMSCapabilities_v1_1_0']); +goog.addDependency('../../../ol/ol/parser/ogc/wmscapabilities_v1_1.js', ['ol.parser.ogc.WMSCapabilities_v1_1'], ['goog.object', 'ol.parser.ogc.WMSCapabilities_v1']); +goog.addDependency('../../../ol/ol/parser/ogc/wmscapabilities_v1_1_0.js', ['ol.parser.ogc.WMSCapabilities_v1_1_0'], ['goog.object', 'ol.parser.ogc.WMSCapabilities_v1_1']); +goog.addDependency('../../../ol/ol/parser/ogc/wmscapabilities_v1_1_1.js', ['ol.parser.ogc.WMSCapabilities_v1_1_1'], ['goog.object', 'ol.parser.ogc.WMSCapabilities_v1_1']); +goog.addDependency('../../../ol/ol/parser/ogc/wmscapabilities_v1_1_1_WMSC.js', ['ol.parser.ogc.WMSCapabilities_v1_1_1_WMSC'], ['goog.object', 'ol.parser.ogc.WMSCapabilities_v1_1_1']); +goog.addDependency('../../../ol/ol/parser/ogc/wmscapabilities_v1_3_0.js', ['ol.parser.ogc.WMSCapabilities_v1_3_0'], ['goog.object', 'ol.parser.ogc.WMSCapabilities_v1']); +goog.addDependency('../../../ol/ol/parser/ogc/wmtscapabilities.js', ['ol.parser.ogc.WMTSCapabilities'], ['ol.parser.ogc.Versioned', 'ol.parser.ogc.WMTSCapabilities_v1_0_0']); +goog.addDependency('../../../ol/ol/parser/ogc/wmtscapabilities_v1_0_0.js', ['ol.parser.ogc.WMTSCapabilities_v1_0_0'], ['goog.dom.xml', 'ol.coordinate', 'ol.parser.XML', 'ol.parser.ogc.OWSCommon_v1_1_0', 'ol.proj']); +goog.addDependency('../../../ol/ol/parser/parser.js', ['ol.parser.Parser'], []); +goog.addDependency('../../../ol/ol/parser/polyline.js', ['ol.parser.polyline'], []); +goog.addDependency('../../../ol/ol/parser/topojson.js', ['ol.parser.TopoJSON'], ['ol.Coordinate', 'ol.CoordinateArray', 'ol.Feature', 'ol.geom.GeometryType', 'ol.geom.LineString', 'ol.geom.MultiLineString', 'ol.geom.MultiPoint', 'ol.geom.MultiPolygon', 'ol.geom.Point', 'ol.geom.Polygon', 'ol.parser.Parser', 'ol.parser.ReadFeaturesOptions', 'ol.parser.StringFeatureParser']); +goog.addDependency('../../../ol/ol/parser/wkt.js', ['ol.parser.WKT'], ['goog.array', 'goog.string', 'ol.geom.Geometry', 'ol.geom.GeometryCollection', 'ol.geom.LineString', 'ol.geom.MultiLineString', 'ol.geom.MultiPoint', 'ol.geom.MultiPolygon', 'ol.geom.Point', 'ol.geom.Polygon', 'ol.parser.Parser']); +goog.addDependency('../../../ol/ol/parser/xml.js', ['ol.parser.XML'], ['goog.dom.xml', 'ol.parser.Parser']); +goog.addDependency('../../../ol/ol/pixel.js', ['ol.Pixel'], []); +goog.addDependency('../../../ol/ol/proj/chprojection.js', ['ol.proj.CH', 'ol.proj.EPSG2056', 'ol.proj.EPSG21781'], ['goog.asserts', 'goog.math', 'ol.Projection', 'ol.ProjectionUnits', 'ol.ellipsoid.BESSEL1841', 'ol.proj', 'ol.proj.EPSG4326']); +goog.addDependency('../../../ol/ol/proj/common.js', ['ol.proj.common'], ['ol.proj', 'ol.proj.EPSG3857', 'ol.proj.EPSG4326']); +goog.addDependency('../../../ol/ol/proj/epsg3857projection.js', ['ol.proj.EPSG3857'], ['goog.array', 'goog.asserts', 'ol.Projection', 'ol.ProjectionUnits', 'ol.math', 'ol.proj']); +goog.addDependency('../../../ol/ol/proj/epsg4326projection.js', ['ol.proj.EPSG4326'], ['ol.Projection', 'ol.ProjectionUnits', 'ol.proj']); +goog.addDependency('../../../ol/ol/proj/proj.js', ['ol.Projection', 'ol.ProjectionLike', 'ol.ProjectionUnits', 'ol.proj'], ['goog.array', 'goog.asserts', 'goog.object', 'ol.Extent', 'ol.TransformFunction', 'ol.sphere.NORMAL']); +goog.addDependency('../../../ol/ol/renderer/canvas/canvasimagelayerrenderer.js', ['ol.renderer.canvas.ImageLayer'], ['goog.events', 'goog.events.EventType', 'goog.vec.Mat4', 'ol.Image', 'ol.ImageState', 'ol.ViewHint', 'ol.layer.Image', 'ol.renderer.Map', 'ol.renderer.canvas.Layer']); +goog.addDependency('../../../ol/ol/renderer/canvas/canvaslayerrenderer.js', ['ol.renderer.canvas.Layer'], ['ol.layer.Layer', 'ol.renderer.Layer']); +goog.addDependency('../../../ol/ol/renderer/canvas/canvasmaprenderer.js', ['ol.renderer.canvas.Map'], ['goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.style', 'goog.vec.Mat4', 'ol.Size', 'ol.css', 'ol.layer.Image', 'ol.layer.Tile', 'ol.layer.Vector', 'ol.renderer.Map', 'ol.renderer.canvas.ImageLayer', 'ol.renderer.canvas.TileLayer', 'ol.renderer.canvas.VectorLayer', 'ol.size']); +goog.addDependency('../../../ol/ol/renderer/canvas/canvasrenderer.js', ['ol.renderer.canvas.SUPPORTED'], ['ol.canvas.SUPPORTED']); +goog.addDependency('../../../ol/ol/renderer/canvas/canvastilelayerrenderer.js', ['ol.renderer.canvas.TileLayer'], ['goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.object', 'goog.vec.Mat4', 'ol.Size', 'ol.Tile', 'ol.TileCoord', 'ol.TileRange', 'ol.TileState', 'ol.extent', 'ol.layer.Tile', 'ol.renderer.Map', 'ol.renderer.canvas.Layer']); +goog.addDependency('../../../ol/ol/renderer/canvas/canvasvectorlayerrenderer.js', ['ol.renderer.canvas.VectorLayer'], ['goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.object', 'goog.vec.Mat4', 'ol.Pixel', 'ol.TileCache', 'ol.TileCoord', 'ol.TileRange', 'ol.ViewHint', 'ol.extent', 'ol.geom.GeometryType', 'ol.layer.Vector', 'ol.layer.VectorLayerEventType', 'ol.renderer.canvas.Layer', 'ol.renderer.canvas.VectorRenderer', 'ol.tilegrid.TileGrid']); +goog.addDependency('../../../ol/ol/renderer/canvas/canvasvectorrenderer.js', ['ol.renderer.canvas.VectorRenderer'], ['goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.events.EventType', 'goog.vec.Mat4', 'ol.Feature', 'ol.geom.AbstractCollection', 'ol.geom.Geometry', 'ol.geom.GeometryType', 'ol.geom.LineString', 'ol.geom.MultiLineString', 'ol.geom.MultiPoint', 'ol.geom.MultiPolygon', 'ol.geom.Point', 'ol.geom.Polygon', 'ol.layer.VectorLayerRenderIntent', 'ol.style.IconLiteral', 'ol.style.LineLiteral', 'ol.style.Literal', 'ol.style.PointLiteral', 'ol.style.PolygonLiteral', 'ol.style.ShapeLiteral', 'ol.style.ShapeType', 'ol.style.TextLiteral']); +goog.addDependency('../../../ol/ol/renderer/dom/domimagelayerrenderer.js', ['ol.renderer.dom.ImageLayer'], ['goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.events.EventType', 'goog.vec.Mat4', 'ol.Image', 'ol.ImageState', 'ol.ViewHint', 'ol.dom', 'ol.layer.Image', 'ol.renderer.dom.Layer']); +goog.addDependency('../../../ol/ol/renderer/dom/domlayerrenderer.js', ['ol.renderer.dom.Layer'], ['goog.dom', 'ol.layer.Layer', 'ol.renderer.Layer']); +goog.addDependency('../../../ol/ol/renderer/dom/dommaprenderer.js', ['ol.renderer.dom.Map'], ['goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.style', 'ol.css', 'ol.layer.Image', 'ol.layer.Tile', 'ol.renderer.Map', 'ol.renderer.dom.ImageLayer', 'ol.renderer.dom.TileLayer']); +goog.addDependency('../../../ol/ol/renderer/dom/domrenderer.js', ['ol.renderer.dom.SUPPORTED'], []); +goog.addDependency('../../../ol/ol/renderer/dom/domtilelayerrenderer.js', ['ol.renderer.dom.TileLayer'], ['goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.object', 'goog.style', 'goog.vec.Mat4', 'ol.Coordinate', 'ol.Tile', 'ol.TileCoord', 'ol.TileRange', 'ol.TileState', 'ol.ViewHint', 'ol.dom', 'ol.extent', 'ol.layer.Tile', 'ol.renderer.dom.Layer', 'ol.tilegrid.TileGrid']); +goog.addDependency('../../../ol/ol/renderer/layerrenderer.js', ['ol.renderer.Layer'], ['goog.Disposable', 'ol.FrameState', 'ol.Image', 'ol.ImageState', 'ol.Tile', 'ol.TileRange', 'ol.TileState', 'ol.layer.Layer', 'ol.layer.LayerState', 'ol.source.Source', 'ol.source.Tile']); +goog.addDependency('../../../ol/ol/renderer/maprenderer.js', ['ol.renderer.Map'], ['goog.Disposable', 'goog.array', 'goog.asserts', 'goog.dispose', 'goog.functions', 'goog.object', 'goog.vec.Mat4', 'ol.FrameState', 'ol.layer.Layer', 'ol.renderer.Layer']); +goog.addDependency('../../../ol/ol/renderer/webgl/webglimagelayerrenderer.js', ['ol.renderer.webgl.ImageLayer'], ['goog.asserts', 'goog.events', 'goog.events.EventType', 'goog.vec.Mat4', 'goog.webgl', 'ol.Coordinate', 'ol.Extent', 'ol.Image', 'ol.ImageState', 'ol.ViewHint', 'ol.layer.Image', 'ol.renderer.webgl.Layer']); +goog.addDependency('../../../ol/ol/renderer/webgl/webgllayerrenderer.js', ['ol.renderer.webgl.Layer'], ['goog.vec.Mat4', 'goog.webgl', 'ol.FrameState', 'ol.layer.Layer', 'ol.renderer.Layer', 'ol.vec.Mat4']); +goog.addDependency('../../../ol/ol/renderer/webgl/webglmapcolorshader.js', ['ol.renderer.webgl.map.shader.Color'], ['ol.webgl.shader']); +goog.addDependency('../../../ol/ol/renderer/webgl/webglmapdefaultshader.js', ['ol.renderer.webgl.map.shader.Default'], ['ol.webgl.shader']); +goog.addDependency('../../../ol/ol/renderer/webgl/webglmaprenderer.js', ['ol.renderer.webgl.Map'], ['goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.events.Event', 'goog.log', 'goog.log.Logger', 'goog.object', 'goog.style', 'goog.webgl', 'ol.FrameState', 'ol.Size', 'ol.Tile', 'ol.css', 'ol.layer.Image', 'ol.layer.Tile', 'ol.layer.Vector2', 'ol.renderer.Map', 'ol.renderer.webgl.ImageLayer', 'ol.renderer.webgl.TileLayer', 'ol.renderer.webgl.VectorLayer2', 'ol.renderer.webgl.map.shader.Color', 'ol.renderer.webgl.map.shader.Default', 'ol.size', 'ol.structs.Buffer', 'ol.structs.IntegerSet', 'ol.structs.LRUCache', 'ol.structs.PriorityQueue', 'ol.webgl', 'ol.webgl.WebGLContextEventType', 'ol.webgl.shader']); +goog.addDependency('../../../ol/ol/renderer/webgl/webglrenderer.js', ['ol.renderer.webgl.SUPPORTED'], ['ol.webgl.SUPPORTED']); +goog.addDependency('../../../ol/ol/renderer/webgl/webgltilelayerrenderer.js', ['ol.renderer.webgl.TileLayer'], ['goog.array', 'goog.object', 'goog.vec.Mat4', 'goog.vec.Vec4', 'goog.webgl', 'ol.Tile', 'ol.TileRange', 'ol.TileState', 'ol.extent', 'ol.layer.Tile', 'ol.math', 'ol.renderer.webgl.Layer', 'ol.renderer.webgl.tilelayer.shader', 'ol.structs.Buffer']); +goog.addDependency('../../../ol/ol/renderer/webgl/webgltilelayershader.js', ['ol.renderer.webgl.tilelayer.shader'], ['ol.webgl.shader']); +goog.addDependency('../../../ol/ol/renderer/webgl/webglvectorlayer2linestringcollectionshader.js', ['ol.renderer.webgl.vectorlayer2.shader.LineStringCollection'], ['ol.webgl.shader']); +goog.addDependency('../../../ol/ol/renderer/webgl/webglvectorlayer2pointcollectionshader.js', ['ol.renderer.webgl.vectorlayer2.shader.PointCollection'], ['ol.webgl.shader']); +goog.addDependency('../../../ol/ol/renderer/webgl/webglvectorlayer2renderer.js', ['ol.renderer.webgl.VectorLayer2'], ['goog.vec.Mat4', 'goog.webgl', 'ol.math', 'ol.renderer.webgl.Layer', 'ol.renderer.webgl.vectorlayer2.shader.LineStringCollection', 'ol.renderer.webgl.vectorlayer2.shader.PointCollection']); +goog.addDependency('../../../ol/ol/resolutionconstraint.js', ['ol.ResolutionConstraint', 'ol.ResolutionConstraintType'], ['goog.math', 'ol.array']); +goog.addDependency('../../../ol/ol/rotationconstraint.js', ['ol.RotationConstraint', 'ol.RotationConstraintType'], []); +goog.addDependency('../../../ol/ol/size.js', ['ol.Size', 'ol.size'], []); +goog.addDependency('../../../ol/ol/source/bingmapssource.js', ['ol.source.BingMaps'], ['goog.Uri', 'goog.array', 'goog.asserts', 'goog.net.Jsonp', 'ol.Attribution', 'ol.TileRange', 'ol.TileUrlFunction', 'ol.extent', 'ol.proj', 'ol.source.TileImage', 'ol.tilegrid.XYZ']); +goog.addDependency('../../../ol/ol/source/debugtilesource.js', ['ol.source.TileDebug'], ['goog.dom', 'goog.dom.TagName', 'ol.Size', 'ol.Tile', 'ol.TileCache', 'ol.TileCoord', 'ol.TileState', 'ol.source.Tile', 'ol.tilegrid.TileGrid']); +goog.addDependency('../../../ol/ol/source/featureinfosource.js', ['ol.source.FeatureInfoSource'], []); +goog.addDependency('../../../ol/ol/source/imagesource.js', ['ol.source.Image'], ['goog.array', 'goog.asserts', 'ol.Attribution', 'ol.Extent', 'ol.Image', 'ol.ImageUrlFunction', 'ol.ImageUrlFunctionType', 'ol.Projection', 'ol.Size', 'ol.array', 'ol.source.Source']); +goog.addDependency('../../../ol/ol/source/imagestaticsource.js', ['ol.source.ImageStatic'], ['ol.Image', 'ol.ImageUrlFunctionType', 'ol.extent', 'ol.proj', 'ol.source.Image']); +goog.addDependency('../../../ol/ol/source/imagewmssource.js', ['ol.source.ImageWMS'], ['goog.asserts', 'goog.object', 'ol.Image', 'ol.ImageUrlFunction', 'ol.extent', 'ol.source.FeatureInfoSource', 'ol.source.Image', 'ol.source.wms']); +goog.addDependency('../../../ol/ol/source/mapquestsource.js', ['ol.source.MapQuestOSM', 'ol.source.MapQuestOpenAerial'], ['ol.Attribution', 'ol.source.OSM', 'ol.source.XYZ']); +goog.addDependency('../../../ol/ol/source/osmsource.js', ['ol.source.OSM'], ['ol.Attribution', 'ol.source.XYZ']); +goog.addDependency('../../../ol/ol/source/source.js', ['ol.source.Source'], ['goog.events.EventTarget', 'goog.events.EventType', 'goog.functions', 'ol.Attribution', 'ol.Extent', 'ol.proj']); +goog.addDependency('../../../ol/ol/source/stamensource.js', ['ol.source.Stamen'], ['goog.asserts', 'ol.Attribution', 'ol.source.OSM', 'ol.source.XYZ']); +goog.addDependency('../../../ol/ol/source/tileimagesource.js', ['ol.source.TileImage'], ['goog.asserts', 'ol.Attribution', 'ol.Extent', 'ol.ImageTile', 'ol.Projection', 'ol.Tile', 'ol.TileCache', 'ol.TileCoord', 'ol.TileState', 'ol.TileUrlFunction', 'ol.TileUrlFunctionType', 'ol.source.Tile', 'ol.tilegrid.TileGrid']); +goog.addDependency('../../../ol/ol/source/tilejsonsource.js', ['ol.source.TileJSON', 'ol.tilejson'], ['goog.asserts', 'goog.net.jsloader', 'ol.Attribution', 'ol.TileRange', 'ol.TileUrlFunction', 'ol.extent', 'ol.proj', 'ol.source.TileImage', 'ol.tilegrid.XYZ']); +goog.addDependency('../../../ol/ol/source/tilesource.js', ['ol.source.Tile', 'ol.source.TileOptions'], ['goog.functions', 'ol.Attribution', 'ol.Extent', 'ol.Tile', 'ol.TileCoord', 'ol.TileRange', 'ol.source.Source', 'ol.tilegrid.TileGrid']); +goog.addDependency('../../../ol/ol/source/tilewmssource.js', ['ol.source.TileWMS'], ['goog.array', 'goog.asserts', 'goog.math', 'goog.object', 'ol.TileCoord', 'ol.TileUrlFunction', 'ol.extent', 'ol.source.FeatureInfoSource', 'ol.source.TileImage', 'ol.source.wms']); +goog.addDependency('../../../ol/ol/source/vectorsource.js', ['ol.source.Vector'], ['goog.asserts', 'goog.net.XhrIo', 'ol.source.Source']); +goog.addDependency('../../../ol/ol/source/vectorsource2.js', ['ol.source.Vector2'], ['ol.geom2.LineStringCollection', 'ol.geom2.PointCollection', 'ol.source.Source']); +goog.addDependency('../../../ol/ol/source/wmssource.js', ['ol.source.WMSGetFeatureInfoMethod', 'ol.source.wms'], ['goog.net.XhrIo', 'goog.object', 'goog.uri.utils']); +goog.addDependency('../../../ol/ol/source/wmtssource.js', ['ol.source.WMTS', 'ol.source.WMTSRequestEncoding'], ['goog.array', 'goog.asserts', 'goog.math', 'goog.object', 'goog.uri.utils', 'ol.TileCoord', 'ol.TileUrlFunction', 'ol.TileUrlFunctionType', 'ol.extent', 'ol.proj', 'ol.source.TileImage', 'ol.tilegrid.WMTS']); +goog.addDependency('../../../ol/ol/source/xyzsource.js', ['ol.source.XYZ'], ['ol.Attribution', 'ol.TileUrlFunction', 'ol.TileUrlFunctionType', 'ol.proj', 'ol.source.TileImage', 'ol.tilegrid.XYZ']); +goog.addDependency('../../../ol/ol/sphere/normal.js', ['ol.sphere.NORMAL'], ['ol.Sphere']); +goog.addDependency('../../../ol/ol/sphere/sphere.js', ['ol.Sphere'], ['goog.math']); +goog.addDependency('../../../ol/ol/sphere/wgs84sphere.js', ['ol.sphere.WGS84'], ['ol.Sphere']); +goog.addDependency('../../../ol/ol/structs/buffer.js', ['ol.structs.Buffer'], ['goog.array', 'goog.asserts', 'goog.webgl', 'ol.structs.IntegerSet']); +goog.addDependency('../../../ol/ol/structs/integerset.js', ['ol.structs.IntegerSet'], ['goog.asserts']); +goog.addDependency('../../../ol/ol/structs/lrucache.js', ['ol.structs.LRUCache'], ['goog.asserts', 'goog.object']); +goog.addDependency('../../../ol/ol/structs/priorityqueue.js', ['ol.structs.PriorityQueue'], ['goog.asserts', 'goog.object']); +goog.addDependency('../../../ol/ol/structs/rtree.js', ['ol.structs.RTree'], ['goog.array', 'ol.extent']); +goog.addDependency('../../../ol/ol/style/fillsymbolizer.js', ['ol.style.Fill'], ['goog.asserts', 'ol.Feature', 'ol.expr', 'ol.expr.Expression', 'ol.expr.Literal', 'ol.geom.GeometryType', 'ol.style.PolygonLiteral', 'ol.style.Symbolizer']); +goog.addDependency('../../../ol/ol/style/iconliteral.js', ['ol.style.IconLiteral'], ['ol.style.PointLiteral']); +goog.addDependency('../../../ol/ol/style/iconsymbolizer.js', ['ol.style.Icon'], ['goog.asserts', 'ol.Feature', 'ol.expr', 'ol.expr.Expression', 'ol.expr.Literal', 'ol.geom.GeometryType', 'ol.style.IconLiteral', 'ol.style.Point']); +goog.addDependency('../../../ol/ol/style/lineliteral.js', ['ol.style.LineLiteral'], ['goog.asserts', 'ol.style.Literal']); +goog.addDependency('../../../ol/ol/style/literal.js', ['ol.style.Literal'], []); +goog.addDependency('../../../ol/ol/style/pointliteral.js', ['ol.style.PointLiteral'], ['ol.style.Literal']); +goog.addDependency('../../../ol/ol/style/pointsymbolizer.js', ['ol.style.Point'], ['ol.style.Symbolizer']); +goog.addDependency('../../../ol/ol/style/polygonliteral.js', ['ol.style.PolygonLiteral'], ['goog.asserts', 'ol.style.Literal']); +goog.addDependency('../../../ol/ol/style/rule.js', ['ol.style.Rule'], ['goog.asserts', 'ol.Feature', 'ol.expr', 'ol.expr.Expression', 'ol.style.Symbolizer']); +goog.addDependency('../../../ol/ol/style/shapeliteral.js', ['ol.style.ShapeLiteral', 'ol.style.ShapeType'], ['goog.asserts', 'ol.style.PointLiteral']); +goog.addDependency('../../../ol/ol/style/shapesymbolizer.js', ['ol.style.Shape'], ['goog.asserts', 'ol.Feature', 'ol.expr', 'ol.expr.Expression', 'ol.expr.Literal', 'ol.geom.GeometryType', 'ol.style.Fill', 'ol.style.Point', 'ol.style.ShapeLiteral', 'ol.style.ShapeType', 'ol.style.Stroke']); +goog.addDependency('../../../ol/ol/style/strokesymbolizer.js', ['ol.style.Stroke', 'ol.style.StrokeDefaults'], ['goog.asserts', 'ol.Feature', 'ol.expr', 'ol.expr.Expression', 'ol.expr.Literal', 'ol.geom.GeometryType', 'ol.style.LineLiteral', 'ol.style.PolygonLiteral', 'ol.style.Symbolizer']); +goog.addDependency('../../../ol/ol/style/style.js', ['ol.style', 'ol.style.Style'], ['goog.object', 'ol.Feature', 'ol.expr.Call', 'ol.expr.Identifier', 'ol.expr.Literal', 'ol.expr.functions', 'ol.geom.GeometryType', 'ol.style.Fill', 'ol.style.Literal', 'ol.style.PolygonLiteral', 'ol.style.Rule', 'ol.style.Shape', 'ol.style.Stroke', 'ol.style.Symbolizer']); +goog.addDependency('../../../ol/ol/style/symbolizer.js', ['ol.style.Symbolizer'], ['ol.Feature', 'ol.style.Literal']); +goog.addDependency('../../../ol/ol/style/textliteral.js', ['ol.style.TextLiteral'], ['goog.asserts', 'ol.style.Literal']); +goog.addDependency('../../../ol/ol/style/textsymbolizer.js', ['ol.style.Text'], ['goog.asserts', 'ol.Feature', 'ol.expr', 'ol.expr.Expression', 'ol.expr.Literal', 'ol.style.Symbolizer', 'ol.style.TextLiteral']); +goog.addDependency('../../../ol/ol/tile.js', ['ol.Tile', 'ol.TileState'], ['goog.events', 'goog.events.EventTarget', 'goog.events.EventType', 'ol.TileCoord']); +goog.addDependency('../../../ol/ol/tilecache.js', ['ol.TileCache'], ['goog.asserts', 'ol.Tile', 'ol.TileCoord', 'ol.TileRange', 'ol.structs.LRUCache']); +goog.addDependency('../../../ol/ol/tilecoord.js', ['ol.TileCoord'], ['goog.array']); +goog.addDependency('../../../ol/ol/tilegrid/tilegrid.js', ['ol.tilegrid.TileGrid'], ['goog.array', 'goog.asserts', 'ol.Coordinate', 'ol.Projection', 'ol.ProjectionUnits', 'ol.Size', 'ol.TileCoord', 'ol.TileRange', 'ol.array', 'ol.extent']); +goog.addDependency('../../../ol/ol/tilegrid/wmtstilegrid.js', ['ol.tilegrid.WMTS'], ['goog.array', 'goog.asserts', 'ol.proj', 'ol.tilegrid.TileGrid']); +goog.addDependency('../../../ol/ol/tilegrid/xyztilegrid.js', ['ol.tilegrid.XYZ'], ['goog.math', 'ol.TileCoord', 'ol.TileRange', 'ol.proj', 'ol.proj.EPSG3857', 'ol.tilegrid.TileGrid']); +goog.addDependency('../../../ol/ol/tilequeue.js', ['ol.TilePriorityFunction', 'ol.TileQueue'], ['goog.events', 'goog.events.EventType', 'ol.Coordinate', 'ol.Tile', 'ol.structs.PriorityQueue']); +goog.addDependency('../../../ol/ol/tilerange.js', ['ol.TileRange'], ['goog.asserts', 'ol.Size', 'ol.TileCoord']); +goog.addDependency('../../../ol/ol/tileurlfunction.js', ['ol.TileUrlFunction', 'ol.TileUrlFunctionType'], ['goog.array', 'goog.math', 'ol.TileCoord', 'ol.extent']); +goog.addDependency('../../../ol/ol/transformfunction.js', ['ol.TransformFunction'], []); +goog.addDependency('../../../ol/ol/vec/mat4.js', ['ol.vec.Mat4'], ['goog.vec.Mat4']); +goog.addDependency('../../../ol/ol/view.js', ['ol.View', 'ol.ViewHint'], ['goog.array', 'goog.asserts', 'ol.IView', 'ol.Object']); +goog.addDependency('../../../ol/ol/view2d.js', ['ol.View2D', 'ol.View2DProperty'], ['goog.asserts', 'ol.Constraints', 'ol.IView2D', 'ol.IView3D', 'ol.Projection', 'ol.ProjectionUnits', 'ol.ResolutionConstraint', 'ol.RotationConstraint', 'ol.RotationConstraintType', 'ol.Size', 'ol.View', 'ol.coordinate', 'ol.extent', 'ol.proj']); +goog.addDependency('../../../ol/ol/webgl/shader.js', ['ol.webgl.shader'], ['goog.functions', 'goog.webgl', 'ol.webgl']); +goog.addDependency('../../../ol/ol/webgl/webgl.js', ['ol.webgl', 'ol.webgl.SUPPORTED', 'ol.webgl.WebGLContextEventType'], ['goog.dom', 'goog.dom.TagName']); +goog.addDependency('../../third_party/closure/goog/caja/string/html/htmlparser.js', ['goog.string.html.HtmlParser', 'goog.string.html.HtmlParser.EFlags', 'goog.string.html.HtmlParser.Elements', 'goog.string.html.HtmlParser.Entities', 'goog.string.html.HtmlSaxHandler'], []); +goog.addDependency('../../third_party/closure/goog/caja/string/html/htmlsanitizer.js', ['goog.string.html.HtmlSanitizer', 'goog.string.html.HtmlSanitizer.AttributeType', 'goog.string.html.HtmlSanitizer.Attributes', 'goog.string.html.htmlSanitize'], ['goog.string.StringBuffer', 'goog.string.html.HtmlParser', 'goog.string.html.HtmlParser.EFlags', 'goog.string.html.HtmlParser.Elements', 'goog.string.html.HtmlSaxHandler']); +goog.addDependency('../../third_party/closure/goog/dojo/dom/query.js', ['goog.dom.query'], ['goog.array', 'goog.dom', 'goog.functions', 'goog.string', 'goog.userAgent']); +goog.addDependency('../../third_party/closure/goog/jpeg_encoder/jpeg_encoder_basic.js', ['goog.crypt.JpegEncoder'], ['goog.crypt.base64']); +goog.addDependency('../../third_party/closure/goog/loremipsum/text/loremipsum.js', ['goog.text.LoremIpsum'], ['goog.array', 'goog.math', 'goog.string', 'goog.structs.Map', 'goog.structs.Set']); +goog.addDependency('../../third_party/closure/goog/mochikit/async/deferred.js', ['goog.async.Deferred', 'goog.async.Deferred.AlreadyCalledError', 'goog.async.Deferred.CanceledError'], ['goog.array', 'goog.asserts', 'goog.debug.Error', 'goog.functions']); +goog.addDependency('../../third_party/closure/goog/mochikit/async/deferredlist.js', ['goog.async.DeferredList'], ['goog.async.Deferred']); +goog.addDependency('../../third_party/closure/goog/osapi/osapi.js', ['goog.osapi'], []); +goog.addDependency('a11y/aria/announcer.js', ['goog.a11y.aria.Announcer'], ['goog.Disposable', 'goog.a11y.aria', 'goog.a11y.aria.LivePriority', 'goog.a11y.aria.State', 'goog.dom', 'goog.object']); +goog.addDependency('a11y/aria/aria.js', ['goog.a11y.aria'], ['goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.a11y.aria.datatables', 'goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.object', 'goog.string']); +goog.addDependency('a11y/aria/attributes.js', ['goog.a11y.aria.AutoCompleteValues', 'goog.a11y.aria.CheckedValues', 'goog.a11y.aria.DropEffectValues', 'goog.a11y.aria.ExpandedValues', 'goog.a11y.aria.GrabbedValues', 'goog.a11y.aria.InvalidValues', 'goog.a11y.aria.LivePriority', 'goog.a11y.aria.OrientationValues', 'goog.a11y.aria.PressedValues', 'goog.a11y.aria.RelevantValues', 'goog.a11y.aria.SelectedValues', 'goog.a11y.aria.SortValues', 'goog.a11y.aria.State'], []); +goog.addDependency('a11y/aria/datatables.js', ['goog.a11y.aria.datatables'], ['goog.a11y.aria.State', 'goog.object']); +goog.addDependency('a11y/aria/roles.js', ['goog.a11y.aria.Role'], []); +goog.addDependency('array/array.js', ['goog.array', 'goog.array.ArrayLike'], ['goog.asserts']); +goog.addDependency('asserts/asserts.js', ['goog.asserts', 'goog.asserts.AssertionError'], ['goog.debug.Error', 'goog.string']); +goog.addDependency('async/animationdelay.js', ['goog.async.AnimationDelay'], ['goog.Disposable', 'goog.events', 'goog.functions']); +goog.addDependency('async/conditionaldelay.js', ['goog.async.ConditionalDelay'], ['goog.Disposable', 'goog.async.Delay']); +goog.addDependency('async/delay.js', ['goog.Delay', 'goog.async.Delay'], ['goog.Disposable', 'goog.Timer']); +goog.addDependency('async/nexttick.js', ['goog.async.nextTick'], ['goog.debug.entryPointRegistry', 'goog.functions']); +goog.addDependency('async/throttle.js', ['goog.Throttle', 'goog.async.Throttle'], ['goog.Disposable', 'goog.Timer']); +goog.addDependency('color/alpha.js', ['goog.color.alpha'], ['goog.color']); +goog.addDependency('color/color.js', ['goog.color'], ['goog.color.names', 'goog.math']); +goog.addDependency('color/names.js', ['goog.color.names'], []); +goog.addDependency('crypt/aes.js', ['goog.crypt.Aes'], ['goog.asserts', 'goog.crypt.BlockCipher']); +goog.addDependency('crypt/arc4.js', ['goog.crypt.Arc4'], ['goog.asserts']); +goog.addDependency('crypt/base64.js', ['goog.crypt.base64'], ['goog.crypt', 'goog.userAgent']); +goog.addDependency('crypt/basen.js', ['goog.crypt.baseN'], []); +goog.addDependency('crypt/blobhasher.js', ['goog.crypt.BlobHasher', 'goog.crypt.BlobHasher.EventType'], ['goog.asserts', 'goog.crypt', 'goog.crypt.Hash', 'goog.events.EventTarget', 'goog.fs', 'goog.log']); +goog.addDependency('crypt/blockcipher.js', ['goog.crypt.BlockCipher'], []); +goog.addDependency('crypt/cbc.js', ['goog.crypt.Cbc'], ['goog.array', 'goog.crypt']); +goog.addDependency('crypt/cbc_test.js', ['goog.crypt.CbcTest'], ['goog.crypt', 'goog.crypt.Aes', 'goog.crypt.Cbc', 'goog.testing.jsunit']); +goog.addDependency('crypt/crypt.js', ['goog.crypt'], ['goog.array']); +goog.addDependency('crypt/hash.js', ['goog.crypt.Hash'], []); +goog.addDependency('crypt/hash32.js', ['goog.crypt.hash32'], ['goog.crypt']); +goog.addDependency('crypt/hashtester.js', ['goog.crypt.hashTester'], ['goog.array', 'goog.crypt', 'goog.testing.PerformanceTable', 'goog.testing.PseudoRandom', 'goog.testing.asserts']); +goog.addDependency('crypt/hmac.js', ['goog.crypt.Hmac'], ['goog.asserts', 'goog.crypt.Hash']); +goog.addDependency('crypt/md5.js', ['goog.crypt.Md5'], ['goog.crypt.Hash']); +goog.addDependency('crypt/pbkdf2.js', ['goog.crypt.pbkdf2'], ['goog.asserts', 'goog.crypt', 'goog.crypt.Hmac', 'goog.crypt.Sha1']); +goog.addDependency('crypt/sha1.js', ['goog.crypt.Sha1'], ['goog.crypt.Hash']); +goog.addDependency('crypt/sha2.js', ['goog.crypt.Sha2'], ['goog.array', 'goog.asserts', 'goog.crypt.Hash']); +goog.addDependency('crypt/sha224.js', ['goog.crypt.Sha224'], ['goog.crypt.Sha2']); +goog.addDependency('crypt/sha256.js', ['goog.crypt.Sha256'], ['goog.crypt.Sha2']); +goog.addDependency('cssom/cssom.js', ['goog.cssom', 'goog.cssom.CssRuleType'], ['goog.array', 'goog.dom']); +goog.addDependency('cssom/iframe/style.js', ['goog.cssom.iframe.style'], ['goog.cssom', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.dom.classes', 'goog.string', 'goog.style', 'goog.userAgent']); +goog.addDependency('datasource/datamanager.js', ['goog.ds.DataManager'], ['goog.ds.BasicNodeList', 'goog.ds.DataNode', 'goog.ds.Expr', 'goog.string', 'goog.structs', 'goog.structs.Map']); +goog.addDependency('datasource/datasource.js', ['goog.ds.BaseDataNode', 'goog.ds.BasicNodeList', 'goog.ds.DataNode', 'goog.ds.DataNodeList', 'goog.ds.EmptyNodeList', 'goog.ds.LoadState', 'goog.ds.SortedNodeList', 'goog.ds.Util', 'goog.ds.logger'], ['goog.array', 'goog.log']); +goog.addDependency('datasource/expr.js', ['goog.ds.Expr'], ['goog.ds.BasicNodeList', 'goog.ds.EmptyNodeList', 'goog.string']); +goog.addDependency('datasource/fastdatanode.js', ['goog.ds.AbstractFastDataNode', 'goog.ds.FastDataNode', 'goog.ds.FastListNode', 'goog.ds.PrimitiveFastDataNode'], ['goog.ds.DataManager', 'goog.ds.EmptyNodeList', 'goog.string']); +goog.addDependency('datasource/jsdatasource.js', ['goog.ds.JsDataSource', 'goog.ds.JsPropertyDataSource'], ['goog.ds.BaseDataNode', 'goog.ds.BasicNodeList', 'goog.ds.DataManager', 'goog.ds.EmptyNodeList', 'goog.ds.LoadState']); +goog.addDependency('datasource/jsondatasource.js', ['goog.ds.JsonDataSource'], ['goog.Uri', 'goog.dom', 'goog.ds.DataManager', 'goog.ds.JsDataSource', 'goog.ds.LoadState', 'goog.ds.logger']); +goog.addDependency('datasource/jsxmlhttpdatasource.js', ['goog.ds.JsXmlHttpDataSource'], ['goog.Uri', 'goog.ds.DataManager', 'goog.ds.FastDataNode', 'goog.ds.LoadState', 'goog.ds.logger', 'goog.events', 'goog.log', 'goog.net.EventType', 'goog.net.XhrIo']); +goog.addDependency('datasource/xmldatasource.js', ['goog.ds.XmlDataSource', 'goog.ds.XmlHttpDataSource'], ['goog.Uri', 'goog.dom.NodeType', 'goog.dom.xml', 'goog.ds.BasicNodeList', 'goog.ds.DataManager', 'goog.ds.LoadState', 'goog.ds.logger', 'goog.net.XhrIo', 'goog.string']); +goog.addDependency('date/date.js', ['goog.date', 'goog.date.Date', 'goog.date.DateTime', 'goog.date.Interval', 'goog.date.month', 'goog.date.weekDay'], ['goog.asserts', 'goog.date.DateLike', 'goog.i18n.DateTimeSymbols', 'goog.string']); +goog.addDependency('date/datelike.js', ['goog.date.DateLike'], []); +goog.addDependency('date/daterange.js', ['goog.date.DateRange', 'goog.date.DateRange.Iterator', 'goog.date.DateRange.StandardDateRangeKeys'], ['goog.date.Date', 'goog.date.Interval', 'goog.iter.Iterator', 'goog.iter.StopIteration']); +goog.addDependency('date/relative.js', ['goog.date.relative'], ['goog.i18n.DateTimeFormat']); +goog.addDependency('date/utcdatetime.js', ['goog.date.UtcDateTime'], ['goog.date', 'goog.date.Date', 'goog.date.DateTime', 'goog.date.Interval']); +goog.addDependency('db/cursor.js', ['goog.db.Cursor'], ['goog.async.Deferred', 'goog.db.Error', 'goog.debug', 'goog.events.EventTarget']); +goog.addDependency('db/db.js', ['goog.db'], ['goog.async.Deferred', 'goog.db.Error', 'goog.db.IndexedDb', 'goog.db.Transaction']); +goog.addDependency('db/error.js', ['goog.db.Error', 'goog.db.Error.ErrorCode', 'goog.db.Error.ErrorName', 'goog.db.Error.VersionChangeBlockedError'], ['goog.debug.Error']); +goog.addDependency('db/index.js', ['goog.db.Index'], ['goog.async.Deferred', 'goog.db.Cursor', 'goog.db.Error', 'goog.debug']); +goog.addDependency('db/indexeddb.js', ['goog.db.IndexedDb'], ['goog.async.Deferred', 'goog.db.Error', 'goog.db.Error.VersionChangeBlockedError', 'goog.db.ObjectStore', 'goog.db.Transaction', 'goog.db.Transaction.TransactionMode', 'goog.events.Event', 'goog.events.EventHandler', 'goog.events.EventTarget']); +goog.addDependency('db/keyrange.js', ['goog.db.KeyRange'], []); +goog.addDependency('db/objectstore.js', ['goog.db.ObjectStore'], ['goog.async.Deferred', 'goog.db.Cursor', 'goog.db.Error', 'goog.db.Index', 'goog.debug', 'goog.events']); +goog.addDependency('db/transaction.js', ['goog.db.Transaction', 'goog.db.Transaction.TransactionMode'], ['goog.async.Deferred', 'goog.db.Error', 'goog.db.ObjectStore', 'goog.events.EventHandler', 'goog.events.EventTarget']); +goog.addDependency('debug/console.js', ['goog.debug.Console'], ['goog.debug.LogManager', 'goog.debug.Logger.Level', 'goog.debug.TextFormatter']); +goog.addDependency('debug/debug.js', ['goog.debug'], ['goog.array', 'goog.string', 'goog.structs.Set', 'goog.userAgent']); +goog.addDependency('debug/debugwindow.js', ['goog.debug.DebugWindow'], ['goog.debug.HtmlFormatter', 'goog.debug.LogManager', 'goog.debug.Logger', 'goog.structs.CircularBuffer', 'goog.userAgent']); +goog.addDependency('debug/devcss/devcss.js', ['goog.debug.DevCss', 'goog.debug.DevCss.UserAgent'], ['goog.cssom', 'goog.dom.classes', 'goog.events', 'goog.events.EventType', 'goog.string', 'goog.userAgent']); +goog.addDependency('debug/devcss/devcssrunner.js', ['goog.debug.devCssRunner'], ['goog.debug.DevCss']); +goog.addDependency('debug/divconsole.js', ['goog.debug.DivConsole'], ['goog.debug.HtmlFormatter', 'goog.debug.LogManager', 'goog.style']); +goog.addDependency('debug/entrypointregistry.js', ['goog.debug.EntryPointMonitor', 'goog.debug.entryPointRegistry'], ['goog.asserts']); +goog.addDependency('debug/error.js', ['goog.debug.Error'], []); +goog.addDependency('debug/errorhandler.js', ['goog.debug.ErrorHandler', 'goog.debug.ErrorHandler.ProtectedFunctionError'], ['goog.asserts', 'goog.debug', 'goog.debug.EntryPointMonitor', 'goog.debug.Trace']); +goog.addDependency('debug/errorhandlerweakdep.js', ['goog.debug.errorHandlerWeakDep'], []); +goog.addDependency('debug/errorreporter.js', ['goog.debug.ErrorReporter', 'goog.debug.ErrorReporter.ExceptionEvent'], ['goog.asserts', 'goog.debug', 'goog.debug.ErrorHandler', 'goog.debug.entryPointRegistry', 'goog.events', 'goog.events.Event', 'goog.events.EventTarget', 'goog.log', 'goog.net.XhrIo', 'goog.object', 'goog.string', 'goog.uri.utils', 'goog.userAgent']); +goog.addDependency('debug/fancywindow.js', ['goog.debug.FancyWindow'], ['goog.debug.DebugWindow', 'goog.debug.LogManager', 'goog.debug.Logger', 'goog.dom.DomHelper', 'goog.object', 'goog.string', 'goog.userAgent']); +goog.addDependency('debug/formatter.js', ['goog.debug.Formatter', 'goog.debug.HtmlFormatter', 'goog.debug.TextFormatter'], ['goog.debug.RelativeTimeProvider', 'goog.string']); +goog.addDependency('debug/fpsdisplay.js', ['goog.debug.FpsDisplay'], ['goog.asserts', 'goog.async.AnimationDelay', 'goog.ui.Component']); +goog.addDependency('debug/gcdiagnostics.js', ['goog.debug.GcDiagnostics'], ['goog.debug.Trace', 'goog.log', 'goog.userAgent']); +goog.addDependency('debug/logbuffer.js', ['goog.debug.LogBuffer'], ['goog.asserts', 'goog.debug.LogRecord']); +goog.addDependency('debug/logger.js', ['goog.debug.LogManager', 'goog.debug.Logger', 'goog.debug.Logger.Level'], ['goog.array', 'goog.asserts', 'goog.debug', 'goog.debug.LogBuffer', 'goog.debug.LogRecord']); +goog.addDependency('debug/logrecord.js', ['goog.debug.LogRecord'], []); +goog.addDependency('debug/logrecordserializer.js', ['goog.debug.logRecordSerializer'], ['goog.debug.LogRecord', 'goog.debug.Logger.Level', 'goog.json', 'goog.object']); +goog.addDependency('debug/reflect.js', ['goog.debug.reflect'], []); +goog.addDependency('debug/relativetimeprovider.js', ['goog.debug.RelativeTimeProvider'], []); +goog.addDependency('debug/tracer.js', ['goog.debug.Trace'], ['goog.array', 'goog.iter', 'goog.log', 'goog.structs.Map', 'goog.structs.SimplePool']); +goog.addDependency('demos/editor/equationeditor.js', ['goog.demos.editor.EquationEditor'], ['goog.ui.equation.EquationEditorDialog']); +goog.addDependency('demos/editor/helloworld.js', ['goog.demos.editor.HelloWorld'], ['goog.dom', 'goog.dom.TagName', 'goog.editor.Plugin']); +goog.addDependency('demos/editor/helloworlddialog.js', ['goog.demos.editor.HelloWorldDialog', 'goog.demos.editor.HelloWorldDialog.OkEvent'], ['goog.dom.TagName', 'goog.events.Event', 'goog.string', 'goog.ui.editor.AbstractDialog']); +goog.addDependency('demos/editor/helloworlddialogplugin.js', ['goog.demos.editor.HelloWorldDialogPlugin', 'goog.demos.editor.HelloWorldDialogPlugin.Command'], ['goog.demos.editor.HelloWorldDialog', 'goog.dom.TagName', 'goog.editor.plugins.AbstractDialogPlugin', 'goog.editor.range', 'goog.functions', 'goog.ui.editor.AbstractDialog']); +goog.addDependency('demos/samplecomponent.js', ['goog.demos.SampleComponent'], ['goog.dom', 'goog.dom.classes', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.events.KeyHandler', 'goog.ui.Component']); +goog.addDependency('disposable/disposable.js', ['goog.Disposable', 'goog.dispose'], ['goog.disposable.IDisposable']); +goog.addDependency('disposable/idisposable.js', ['goog.disposable.IDisposable'], []); +goog.addDependency('dom/a11y.js', ['goog.dom.a11y', 'goog.dom.a11y.Announcer', 'goog.dom.a11y.LivePriority', 'goog.dom.a11y.Role', 'goog.dom.a11y.State'], ['goog.a11y.aria', 'goog.a11y.aria.Announcer', 'goog.a11y.aria.LivePriority', 'goog.a11y.aria.Role', 'goog.a11y.aria.State']); +goog.addDependency('dom/abstractmultirange.js', ['goog.dom.AbstractMultiRange'], ['goog.array', 'goog.dom', 'goog.dom.AbstractRange']); +goog.addDependency('dom/abstractrange.js', ['goog.dom.AbstractRange', 'goog.dom.RangeIterator', 'goog.dom.RangeType'], ['goog.dom', 'goog.dom.NodeType', 'goog.dom.SavedCaretRange', 'goog.dom.TagIterator', 'goog.userAgent']); +goog.addDependency('dom/annotate.js', ['goog.dom.annotate'], ['goog.array', 'goog.dom', 'goog.dom.NodeType', 'goog.string']); +goog.addDependency('dom/browserfeature.js', ['goog.dom.BrowserFeature'], ['goog.userAgent']); +goog.addDependency('dom/browserrange/abstractrange.js', ['goog.dom.browserrange.AbstractRange'], ['goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.RangeEndpoint', 'goog.dom.TagName', 'goog.dom.TextRangeIterator', 'goog.iter', 'goog.math.Coordinate', 'goog.string', 'goog.string.StringBuffer', 'goog.userAgent']); +goog.addDependency('dom/browserrange/browserrange.js', ['goog.dom.browserrange', 'goog.dom.browserrange.Error'], ['goog.dom', 'goog.dom.NodeType', 'goog.dom.browserrange.GeckoRange', 'goog.dom.browserrange.IeRange', 'goog.dom.browserrange.OperaRange', 'goog.dom.browserrange.W3cRange', 'goog.dom.browserrange.WebKitRange', 'goog.userAgent']); +goog.addDependency('dom/browserrange/geckorange.js', ['goog.dom.browserrange.GeckoRange'], ['goog.dom.browserrange.W3cRange']); +goog.addDependency('dom/browserrange/ierange.js', ['goog.dom.browserrange.IeRange'], ['goog.array', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.RangeEndpoint', 'goog.dom.TagName', 'goog.dom.browserrange.AbstractRange', 'goog.log', 'goog.string']); +goog.addDependency('dom/browserrange/operarange.js', ['goog.dom.browserrange.OperaRange'], ['goog.dom.browserrange.W3cRange']); +goog.addDependency('dom/browserrange/w3crange.js', ['goog.dom.browserrange.W3cRange'], ['goog.dom', 'goog.dom.NodeType', 'goog.dom.RangeEndpoint', 'goog.dom.browserrange.AbstractRange', 'goog.string']); +goog.addDependency('dom/browserrange/webkitrange.js', ['goog.dom.browserrange.WebKitRange'], ['goog.dom.RangeEndpoint', 'goog.dom.browserrange.W3cRange', 'goog.userAgent']); +goog.addDependency('dom/bufferedviewportsizemonitor.js', ['goog.dom.BufferedViewportSizeMonitor'], ['goog.asserts', 'goog.async.Delay', 'goog.events', 'goog.events.EventTarget', 'goog.events.EventType']); +goog.addDependency('dom/bufferedviewportsizemonitor_test.js', ['goog.dom.BufferedViewportSizeMonitorTest'], ['goog.dom.BufferedViewportSizeMonitor', 'goog.dom.ViewportSizeMonitor', 'goog.events', 'goog.events.EventType', 'goog.math.Size', 'goog.testing.MockClock', 'goog.testing.events', 'goog.testing.events.Event', 'goog.testing.jsunit']); +goog.addDependency('dom/classes.js', ['goog.dom.classes'], ['goog.array']); +goog.addDependency('dom/classes_test.js', ['goog.dom.classes_test'], ['goog.dom', 'goog.dom.classes', 'goog.testing.jsunit']); +goog.addDependency('dom/classlist.js', ['goog.dom.classlist'], ['goog.array', 'goog.asserts']); +goog.addDependency('dom/classlist_test.js', ['goog.dom.classlist_test'], ['goog.dom', 'goog.dom.classlist', 'goog.testing.jsunit']); +goog.addDependency('dom/controlrange.js', ['goog.dom.ControlRange', 'goog.dom.ControlRangeIterator'], ['goog.array', 'goog.dom', 'goog.dom.AbstractMultiRange', 'goog.dom.AbstractRange', 'goog.dom.RangeIterator', 'goog.dom.RangeType', 'goog.dom.SavedRange', 'goog.dom.TagWalkType', 'goog.dom.TextRange', 'goog.iter.StopIteration', 'goog.userAgent']); +goog.addDependency('dom/dataset.js', ['goog.dom.dataset'], ['goog.string']); +goog.addDependency('dom/dom.js', ['goog.dom', 'goog.dom.Appendable', 'goog.dom.DomHelper', 'goog.dom.NodeType'], ['goog.array', 'goog.dom.BrowserFeature', 'goog.dom.TagName', 'goog.dom.classes', 'goog.math.Coordinate', 'goog.math.Size', 'goog.object', 'goog.string', 'goog.userAgent']); +goog.addDependency('dom/dom_test.js', ['goog.dom.dom_test'], ['goog.dom', 'goog.dom.BrowserFeature', 'goog.dom.DomHelper', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.object', 'goog.string.Unicode', 'goog.testing.asserts', 'goog.userAgent', 'goog.userAgent.product', 'goog.userAgent.product.isVersion']); +goog.addDependency('dom/fontsizemonitor.js', ['goog.dom.FontSizeMonitor', 'goog.dom.FontSizeMonitor.EventType'], ['goog.dom', 'goog.events', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.userAgent']); +goog.addDependency('dom/forms.js', ['goog.dom.forms'], ['goog.structs.Map']); +goog.addDependency('dom/fullscreen.js', ['goog.dom.fullscreen', 'goog.dom.fullscreen.EventType'], ['goog.dom', 'goog.userAgent', 'goog.userAgent.product']); +goog.addDependency('dom/iframe.js', ['goog.dom.iframe'], ['goog.dom', 'goog.userAgent']); +goog.addDependency('dom/iter.js', ['goog.dom.iter.AncestorIterator', 'goog.dom.iter.ChildIterator', 'goog.dom.iter.SiblingIterator'], ['goog.iter.Iterator', 'goog.iter.StopIteration']); +goog.addDependency('dom/multirange.js', ['goog.dom.MultiRange', 'goog.dom.MultiRangeIterator'], ['goog.array', 'goog.dom.AbstractMultiRange', 'goog.dom.AbstractRange', 'goog.dom.RangeIterator', 'goog.dom.RangeType', 'goog.dom.SavedRange', 'goog.dom.TextRange', 'goog.iter.StopIteration', 'goog.log']); +goog.addDependency('dom/nodeiterator.js', ['goog.dom.NodeIterator'], ['goog.dom.TagIterator']); +goog.addDependency('dom/nodeoffset.js', ['goog.dom.NodeOffset'], ['goog.Disposable', 'goog.dom.TagName']); +goog.addDependency('dom/pattern/abstractpattern.js', ['goog.dom.pattern.AbstractPattern'], ['goog.dom.pattern.MatchType']); +goog.addDependency('dom/pattern/allchildren.js', ['goog.dom.pattern.AllChildren'], ['goog.dom.pattern.AbstractPattern', 'goog.dom.pattern.MatchType']); +goog.addDependency('dom/pattern/callback/callback.js', ['goog.dom.pattern.callback'], ['goog.dom', 'goog.dom.TagWalkType', 'goog.iter']); +goog.addDependency('dom/pattern/callback/counter.js', ['goog.dom.pattern.callback.Counter'], []); +goog.addDependency('dom/pattern/callback/test.js', ['goog.dom.pattern.callback.Test'], ['goog.iter.StopIteration']); +goog.addDependency('dom/pattern/childmatches.js', ['goog.dom.pattern.ChildMatches'], ['goog.dom.pattern.AllChildren', 'goog.dom.pattern.MatchType']); +goog.addDependency('dom/pattern/endtag.js', ['goog.dom.pattern.EndTag'], ['goog.dom.TagWalkType', 'goog.dom.pattern.Tag']); +goog.addDependency('dom/pattern/fulltag.js', ['goog.dom.pattern.FullTag'], ['goog.dom.pattern.MatchType', 'goog.dom.pattern.StartTag', 'goog.dom.pattern.Tag']); +goog.addDependency('dom/pattern/matcher.js', ['goog.dom.pattern.Matcher'], ['goog.dom.TagIterator', 'goog.dom.pattern.MatchType', 'goog.iter']); +goog.addDependency('dom/pattern/nodetype.js', ['goog.dom.pattern.NodeType'], ['goog.dom.pattern.AbstractPattern', 'goog.dom.pattern.MatchType']); +goog.addDependency('dom/pattern/pattern.js', ['goog.dom.pattern', 'goog.dom.pattern.MatchType'], []); +goog.addDependency('dom/pattern/repeat.js', ['goog.dom.pattern.Repeat'], ['goog.dom.NodeType', 'goog.dom.pattern.AbstractPattern', 'goog.dom.pattern.MatchType']); +goog.addDependency('dom/pattern/sequence.js', ['goog.dom.pattern.Sequence'], ['goog.dom.NodeType', 'goog.dom.pattern.AbstractPattern', 'goog.dom.pattern.MatchType']); +goog.addDependency('dom/pattern/starttag.js', ['goog.dom.pattern.StartTag'], ['goog.dom.TagWalkType', 'goog.dom.pattern.Tag']); +goog.addDependency('dom/pattern/tag.js', ['goog.dom.pattern.Tag'], ['goog.dom.pattern', 'goog.dom.pattern.AbstractPattern', 'goog.dom.pattern.MatchType', 'goog.object']); +goog.addDependency('dom/pattern/text.js', ['goog.dom.pattern.Text'], ['goog.dom.NodeType', 'goog.dom.pattern', 'goog.dom.pattern.AbstractPattern', 'goog.dom.pattern.MatchType']); +goog.addDependency('dom/range.js', ['goog.dom.Range'], ['goog.dom', 'goog.dom.AbstractRange', 'goog.dom.ControlRange', 'goog.dom.MultiRange', 'goog.dom.NodeType', 'goog.dom.TextRange', 'goog.userAgent']); +goog.addDependency('dom/rangeendpoint.js', ['goog.dom.RangeEndpoint'], []); +goog.addDependency('dom/savedcaretrange.js', ['goog.dom.SavedCaretRange'], ['goog.array', 'goog.dom', 'goog.dom.SavedRange', 'goog.dom.TagName', 'goog.string']); +goog.addDependency('dom/savedrange.js', ['goog.dom.SavedRange'], ['goog.Disposable', 'goog.log']); +goog.addDependency('dom/selection.js', ['goog.dom.selection'], ['goog.string', 'goog.userAgent']); +goog.addDependency('dom/tagiterator.js', ['goog.dom.TagIterator', 'goog.dom.TagWalkType'], ['goog.dom.NodeType', 'goog.iter.Iterator', 'goog.iter.StopIteration']); +goog.addDependency('dom/tagname.js', ['goog.dom.TagName'], []); +goog.addDependency('dom/textrange.js', ['goog.dom.TextRange'], ['goog.array', 'goog.dom', 'goog.dom.AbstractRange', 'goog.dom.RangeType', 'goog.dom.SavedRange', 'goog.dom.TagName', 'goog.dom.TextRangeIterator', 'goog.dom.browserrange', 'goog.string', 'goog.userAgent']); +goog.addDependency('dom/textrangeiterator.js', ['goog.dom.TextRangeIterator'], ['goog.array', 'goog.dom.NodeType', 'goog.dom.RangeIterator', 'goog.dom.TagName', 'goog.iter.StopIteration']); +goog.addDependency('dom/vendor.js', ['goog.dom.vendor'], ['goog.userAgent']); +goog.addDependency('dom/viewportsizemonitor.js', ['goog.dom.ViewportSizeMonitor'], ['goog.dom', 'goog.events', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.math.Size']); +goog.addDependency('dom/xml.js', ['goog.dom.xml'], ['goog.dom', 'goog.dom.NodeType']); +goog.addDependency('editor/browserfeature.js', ['goog.editor.BrowserFeature'], ['goog.editor.defines', 'goog.userAgent', 'goog.userAgent.product', 'goog.userAgent.product.isVersion']); +goog.addDependency('editor/clicktoeditwrapper.js', ['goog.editor.ClickToEditWrapper'], ['goog.Disposable', 'goog.asserts', 'goog.dom', 'goog.dom.Range', 'goog.dom.TagName', 'goog.editor.BrowserFeature', 'goog.editor.Command', 'goog.editor.Field.EventType', 'goog.editor.range', 'goog.events.BrowserEvent.MouseButton', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.log']); +goog.addDependency('editor/command.js', ['goog.editor.Command'], []); +goog.addDependency('editor/contenteditablefield.js', ['goog.editor.ContentEditableField'], ['goog.asserts', 'goog.editor.Field', 'goog.log']); +goog.addDependency('editor/defines.js', ['goog.editor.defines'], []); +goog.addDependency('editor/field.js', ['goog.editor.Field', 'goog.editor.Field.EventType'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.array', 'goog.asserts', 'goog.async.Delay', 'goog.dom', 'goog.dom.Range', 'goog.dom.TagName', 'goog.editor.BrowserFeature', 'goog.editor.Command', 'goog.editor.Plugin', 'goog.editor.icontent', 'goog.editor.icontent.FieldFormatInfo', 'goog.editor.icontent.FieldStyleInfo', 'goog.editor.node', 'goog.editor.range', 'goog.events', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.functions', 'goog.log', 'goog.string', 'goog.string.Unicode', 'goog.style', 'goog.userAgent', 'goog.userAgent.product']); +goog.addDependency('editor/field_test.js', ['goog.editor.field_test'], ['goog.dom', 'goog.dom.Range', 'goog.editor.BrowserFeature', 'goog.editor.Field', 'goog.editor.Plugin', 'goog.editor.range', 'goog.events', 'goog.events.BrowserEvent', 'goog.events.KeyCodes', 'goog.functions', 'goog.testing.LooseMock', 'goog.testing.MockClock', 'goog.testing.dom', 'goog.testing.events', 'goog.testing.events.Event', 'goog.testing.recordFunction', 'goog.userAgent']); +goog.addDependency('editor/focus.js', ['goog.editor.focus'], ['goog.dom.selection']); +goog.addDependency('editor/icontent.js', ['goog.editor.icontent', 'goog.editor.icontent.FieldFormatInfo', 'goog.editor.icontent.FieldStyleInfo'], ['goog.editor.BrowserFeature', 'goog.style', 'goog.userAgent']); +goog.addDependency('editor/link.js', ['goog.editor.Link'], ['goog.array', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.Range', 'goog.editor.BrowserFeature', 'goog.editor.Command', 'goog.editor.node', 'goog.editor.range', 'goog.string', 'goog.string.Unicode', 'goog.uri.utils', 'goog.uri.utils.ComponentIndex']); +goog.addDependency('editor/node.js', ['goog.editor.node'], ['goog.dom', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.dom.iter.ChildIterator', 'goog.dom.iter.SiblingIterator', 'goog.iter', 'goog.object', 'goog.string', 'goog.string.Unicode', 'goog.userAgent']); +goog.addDependency('editor/plugin.js', ['goog.editor.Plugin'], ['goog.editor.Command', 'goog.events.EventTarget', 'goog.functions', 'goog.log', 'goog.object', 'goog.reflect']); +goog.addDependency('editor/plugins/abstractbubbleplugin.js', ['goog.editor.plugins.AbstractBubblePlugin'], ['goog.dom', 'goog.dom.NodeType', 'goog.dom.Range', 'goog.dom.TagName', 'goog.editor.Plugin', 'goog.editor.style', 'goog.events', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.events.actionEventWrapper', 'goog.functions', 'goog.string.Unicode', 'goog.ui.Component.EventType', 'goog.ui.editor.Bubble', 'goog.userAgent']); +goog.addDependency('editor/plugins/abstractdialogplugin.js', ['goog.editor.plugins.AbstractDialogPlugin', 'goog.editor.plugins.AbstractDialogPlugin.EventType'], ['goog.dom', 'goog.dom.Range', 'goog.editor.Field.EventType', 'goog.editor.Plugin', 'goog.editor.range', 'goog.events', 'goog.ui.editor.AbstractDialog.EventType']); +goog.addDependency('editor/plugins/abstracttabhandler.js', ['goog.editor.plugins.AbstractTabHandler'], ['goog.editor.Plugin', 'goog.events.KeyCodes']); +goog.addDependency('editor/plugins/basictextformatter.js', ['goog.editor.plugins.BasicTextFormatter', 'goog.editor.plugins.BasicTextFormatter.COMMAND'], ['goog.array', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.Range', 'goog.dom.TagName', 'goog.editor.BrowserFeature', 'goog.editor.Command', 'goog.editor.Link', 'goog.editor.Plugin', 'goog.editor.node', 'goog.editor.range', 'goog.editor.style', 'goog.iter', 'goog.iter.StopIteration', 'goog.log', 'goog.object', 'goog.string', 'goog.string.Unicode', 'goog.style', 'goog.ui.editor.messages', 'goog.userAgent']); +goog.addDependency('editor/plugins/blockquote.js', ['goog.editor.plugins.Blockquote'], ['goog.dom', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.dom.classes', 'goog.editor.BrowserFeature', 'goog.editor.Command', 'goog.editor.Plugin', 'goog.editor.node', 'goog.functions', 'goog.log']); +goog.addDependency('editor/plugins/emoticons.js', ['goog.editor.plugins.Emoticons'], ['goog.dom.TagName', 'goog.editor.Plugin', 'goog.editor.range', 'goog.functions', 'goog.ui.emoji.Emoji', 'goog.userAgent']); +goog.addDependency('editor/plugins/enterhandler.js', ['goog.editor.plugins.EnterHandler'], ['goog.dom', 'goog.dom.NodeOffset', 'goog.dom.NodeType', 'goog.dom.Range', 'goog.dom.TagName', 'goog.editor.BrowserFeature', 'goog.editor.Plugin', 'goog.editor.node', 'goog.editor.plugins.Blockquote', 'goog.editor.range', 'goog.editor.style', 'goog.events.KeyCodes', 'goog.functions', 'goog.object', 'goog.string', 'goog.userAgent']); +goog.addDependency('editor/plugins/equationeditorbubble.js', ['goog.editor.plugins.equation.EquationBubble'], ['goog.dom', 'goog.dom.TagName', 'goog.editor.Command', 'goog.editor.plugins.AbstractBubblePlugin', 'goog.string.Unicode', 'goog.ui.editor.Bubble', 'goog.ui.equation.ImageRenderer']); +goog.addDependency('editor/plugins/equationeditorplugin.js', ['goog.editor.plugins.EquationEditorPlugin'], ['goog.dom', 'goog.editor.Command', 'goog.editor.plugins.AbstractDialogPlugin', 'goog.editor.range', 'goog.events', 'goog.events.EventType', 'goog.functions', 'goog.log', 'goog.ui.editor.AbstractDialog', 'goog.ui.editor.EquationEditorDialog', 'goog.ui.equation.ImageRenderer', 'goog.ui.equation.PaletteManager']); +goog.addDependency('editor/plugins/firststrong.js', ['goog.editor.plugins.FirstStrong'], ['goog.dom.NodeType', 'goog.dom.TagIterator', 'goog.dom.TagName', 'goog.editor.Command', 'goog.editor.Plugin', 'goog.editor.node', 'goog.editor.range', 'goog.i18n.bidi', 'goog.i18n.uChar', 'goog.iter', 'goog.userAgent']); +goog.addDependency('editor/plugins/headerformatter.js', ['goog.editor.plugins.HeaderFormatter'], ['goog.editor.Command', 'goog.editor.Plugin', 'goog.userAgent']); +goog.addDependency('editor/plugins/linkbubble.js', ['goog.editor.plugins.LinkBubble', 'goog.editor.plugins.LinkBubble.Action'], ['goog.array', 'goog.dom', 'goog.editor.BrowserFeature', 'goog.editor.Command', 'goog.editor.Link', 'goog.editor.plugins.AbstractBubblePlugin', 'goog.editor.range', 'goog.string', 'goog.style', 'goog.ui.editor.messages', 'goog.uri.utils', 'goog.window']); +goog.addDependency('editor/plugins/linkdialogplugin.js', ['goog.editor.plugins.LinkDialogPlugin'], ['goog.array', 'goog.dom', 'goog.editor.Command', 'goog.editor.plugins.AbstractDialogPlugin', 'goog.events.EventHandler', 'goog.functions', 'goog.ui.editor.AbstractDialog.EventType', 'goog.ui.editor.LinkDialog', 'goog.ui.editor.LinkDialog.EventType', 'goog.ui.editor.LinkDialog.OkEvent', 'goog.uri.utils']); +goog.addDependency('editor/plugins/linkshortcutplugin.js', ['goog.editor.plugins.LinkShortcutPlugin'], ['goog.editor.Command', 'goog.editor.Link', 'goog.editor.Plugin', 'goog.string']); +goog.addDependency('editor/plugins/listtabhandler.js', ['goog.editor.plugins.ListTabHandler'], ['goog.dom.TagName', 'goog.editor.Command', 'goog.editor.plugins.AbstractTabHandler']); +goog.addDependency('editor/plugins/loremipsum.js', ['goog.editor.plugins.LoremIpsum'], ['goog.asserts', 'goog.dom', 'goog.editor.Command', 'goog.editor.Plugin', 'goog.editor.node', 'goog.functions']); +goog.addDependency('editor/plugins/removeformatting.js', ['goog.editor.plugins.RemoveFormatting'], ['goog.dom', 'goog.dom.NodeType', 'goog.dom.Range', 'goog.dom.TagName', 'goog.editor.BrowserFeature', 'goog.editor.Plugin', 'goog.editor.node', 'goog.editor.range', 'goog.string', 'goog.userAgent']); +goog.addDependency('editor/plugins/spacestabhandler.js', ['goog.editor.plugins.SpacesTabHandler'], ['goog.dom', 'goog.dom.TagName', 'goog.editor.plugins.AbstractTabHandler', 'goog.editor.range']); +goog.addDependency('editor/plugins/tableeditor.js', ['goog.editor.plugins.TableEditor'], ['goog.array', 'goog.dom', 'goog.dom.TagName', 'goog.editor.Plugin', 'goog.editor.Table', 'goog.editor.node', 'goog.editor.range', 'goog.object']); +goog.addDependency('editor/plugins/tagonenterhandler.js', ['goog.editor.plugins.TagOnEnterHandler'], ['goog.dom', 'goog.dom.NodeType', 'goog.dom.Range', 'goog.dom.TagName', 'goog.editor.Command', 'goog.editor.node', 'goog.editor.plugins.EnterHandler', 'goog.editor.range', 'goog.editor.style', 'goog.events.KeyCodes', 'goog.string', 'goog.style', 'goog.userAgent']); +goog.addDependency('editor/plugins/undoredo.js', ['goog.editor.plugins.UndoRedo'], ['goog.dom', 'goog.dom.NodeOffset', 'goog.dom.Range', 'goog.editor.BrowserFeature', 'goog.editor.Command', 'goog.editor.Field.EventType', 'goog.editor.Plugin', 'goog.editor.node', 'goog.editor.plugins.UndoRedoManager', 'goog.editor.plugins.UndoRedoState', 'goog.events', 'goog.events.EventHandler', 'goog.log']); +goog.addDependency('editor/plugins/undoredomanager.js', ['goog.editor.plugins.UndoRedoManager', 'goog.editor.plugins.UndoRedoManager.EventType'], ['goog.editor.plugins.UndoRedoState', 'goog.events.EventTarget']); +goog.addDependency('editor/plugins/undoredostate.js', ['goog.editor.plugins.UndoRedoState'], ['goog.events.EventTarget']); +goog.addDependency('editor/range.js', ['goog.editor.range', 'goog.editor.range.Point'], ['goog.array', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.Range', 'goog.dom.RangeEndpoint', 'goog.dom.SavedCaretRange', 'goog.editor.node', 'goog.editor.style', 'goog.iter', 'goog.userAgent']); +goog.addDependency('editor/seamlessfield.js', ['goog.editor.SeamlessField'], ['goog.cssom.iframe.style', 'goog.dom', 'goog.dom.Range', 'goog.dom.TagName', 'goog.editor.BrowserFeature', 'goog.editor.Field', 'goog.editor.icontent', 'goog.editor.icontent.FieldFormatInfo', 'goog.editor.icontent.FieldStyleInfo', 'goog.editor.node', 'goog.events', 'goog.events.EventType', 'goog.log', 'goog.style']); +goog.addDependency('editor/seamlessfield_test.js', ['goog.editor.seamlessfield_test'], ['goog.dom', 'goog.dom.DomHelper', 'goog.dom.Range', 'goog.editor.BrowserFeature', 'goog.editor.Field', 'goog.editor.SeamlessField', 'goog.events', 'goog.functions', 'goog.style', 'goog.testing.MockClock', 'goog.testing.MockRange', 'goog.testing.jsunit']); +goog.addDependency('editor/style.js', ['goog.editor.style'], ['goog.dom', 'goog.dom.NodeType', 'goog.editor.BrowserFeature', 'goog.events.EventType', 'goog.object', 'goog.style', 'goog.userAgent']); +goog.addDependency('editor/table.js', ['goog.editor.Table', 'goog.editor.TableCell', 'goog.editor.TableRow'], ['goog.dom', 'goog.dom.DomHelper', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.log', 'goog.string.Unicode', 'goog.style']); +goog.addDependency('events/actioneventwrapper.js', ['goog.events.actionEventWrapper'], ['goog.events', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.events.EventWrapper', 'goog.events.KeyCodes']); +goog.addDependency('events/actionhandler.js', ['goog.events.ActionEvent', 'goog.events.ActionHandler', 'goog.events.ActionHandler.EventType', 'goog.events.BeforeActionEvent'], ['goog.events', 'goog.events.BrowserEvent', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.userAgent']); +goog.addDependency('events/browserevent.js', ['goog.events.BrowserEvent', 'goog.events.BrowserEvent.MouseButton'], ['goog.events.BrowserFeature', 'goog.events.Event', 'goog.events.EventType', 'goog.reflect', 'goog.userAgent']); +goog.addDependency('events/browserfeature.js', ['goog.events.BrowserFeature'], ['goog.userAgent']); +goog.addDependency('events/event.js', ['goog.events.Event', 'goog.events.EventLike'], ['goog.Disposable']); +goog.addDependency('events/eventhandler.js', ['goog.events.EventHandler'], ['goog.Disposable', 'goog.events', 'goog.object']); +goog.addDependency('events/events.js', ['goog.events', 'goog.events.Key', 'goog.events.ListenableType'], ['goog.array', 'goog.asserts', 'goog.debug.entryPointRegistry', 'goog.events.BrowserEvent', 'goog.events.BrowserFeature', 'goog.events.Listenable', 'goog.events.Listener', 'goog.object']); +goog.addDependency('events/eventtarget.js', ['goog.events.EventTarget'], ['goog.Disposable', 'goog.array', 'goog.asserts', 'goog.events', 'goog.events.Event', 'goog.events.Listenable', 'goog.events.ListenerMap', 'goog.object']); +goog.addDependency('events/eventtargettester.js', ['goog.events.eventTargetTester', 'goog.events.eventTargetTester.KeyType', 'goog.events.eventTargetTester.UnlistenReturnType'], ['goog.array', 'goog.events', 'goog.events.Event', 'goog.events.EventTarget', 'goog.testing.asserts', 'goog.testing.recordFunction']); +goog.addDependency('events/eventtype.js', ['goog.events.EventType'], ['goog.userAgent']); +goog.addDependency('events/eventwrapper.js', ['goog.events.EventWrapper'], []); +goog.addDependency('events/filedrophandler.js', ['goog.events.FileDropHandler', 'goog.events.FileDropHandler.EventType'], ['goog.array', 'goog.dom', 'goog.events', 'goog.events.BrowserEvent', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.log']); +goog.addDependency('events/focushandler.js', ['goog.events.FocusHandler', 'goog.events.FocusHandler.EventType'], ['goog.events', 'goog.events.BrowserEvent', 'goog.events.EventTarget', 'goog.userAgent']); +goog.addDependency('events/imehandler.js', ['goog.events.ImeHandler', 'goog.events.ImeHandler.Event', 'goog.events.ImeHandler.EventType'], ['goog.events.Event', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.userAgent']); +goog.addDependency('events/inputhandler.js', ['goog.events.InputHandler', 'goog.events.InputHandler.EventType'], ['goog.Timer', 'goog.dom', 'goog.events.BrowserEvent', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.KeyCodes', 'goog.userAgent']); +goog.addDependency('events/keycodes.js', ['goog.events.KeyCodes'], ['goog.userAgent']); +goog.addDependency('events/keyhandler.js', ['goog.events.KeyEvent', 'goog.events.KeyHandler', 'goog.events.KeyHandler.EventType'], ['goog.events', 'goog.events.BrowserEvent', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.userAgent']); +goog.addDependency('events/keynames.js', ['goog.events.KeyNames'], []); +goog.addDependency('events/listenable.js', ['goog.events.Listenable', 'goog.events.ListenableKey'], []); +goog.addDependency('events/listener.js', ['goog.events.Listener'], ['goog.events.ListenableKey']); +goog.addDependency('events/listenermap.js', ['goog.events.ListenerMap'], ['goog.array', 'goog.events.Listener', 'goog.object']); +goog.addDependency('events/listenermap_test.js', ['goog.events.ListenerMapTest'], ['goog.dispose', 'goog.events.EventTarget', 'goog.events.ListenerMap', 'goog.testing.jsunit']); +goog.addDependency('events/mousewheelhandler.js', ['goog.events.MouseWheelEvent', 'goog.events.MouseWheelHandler', 'goog.events.MouseWheelHandler.EventType'], ['goog.dom', 'goog.events', 'goog.events.BrowserEvent', 'goog.events.EventTarget', 'goog.math', 'goog.style', 'goog.userAgent']); +goog.addDependency('events/onlinehandler.js', ['goog.events.OnlineHandler', 'goog.events.OnlineHandler.EventType'], ['goog.Timer', 'goog.events.BrowserFeature', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.net.NetworkStatusMonitor', 'goog.userAgent']); +goog.addDependency('events/pastehandler.js', ['goog.events.PasteHandler', 'goog.events.PasteHandler.EventType', 'goog.events.PasteHandler.State'], ['goog.Timer', 'goog.async.ConditionalDelay', 'goog.events.BrowserEvent', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.log', 'goog.userAgent']); +goog.addDependency('format/emailaddress.js', ['goog.format.EmailAddress'], ['goog.string']); +goog.addDependency('format/format.js', ['goog.format'], ['goog.i18n.GraphemeBreak', 'goog.string', 'goog.userAgent']); +goog.addDependency('format/htmlprettyprinter.js', ['goog.format.HtmlPrettyPrinter', 'goog.format.HtmlPrettyPrinter.Buffer'], ['goog.object', 'goog.string.StringBuffer']); +goog.addDependency('format/jsonprettyprinter.js', ['goog.format.JsonPrettyPrinter', 'goog.format.JsonPrettyPrinter.HtmlDelimiters', 'goog.format.JsonPrettyPrinter.TextDelimiters'], ['goog.json', 'goog.json.Serializer', 'goog.string', 'goog.string.StringBuffer', 'goog.string.format']); +goog.addDependency('fs/entry.js', ['goog.fs.DirectoryEntry', 'goog.fs.DirectoryEntry.Behavior', 'goog.fs.Entry', 'goog.fs.FileEntry'], []); +goog.addDependency('fs/entryimpl.js', ['goog.fs.DirectoryEntryImpl', 'goog.fs.EntryImpl', 'goog.fs.FileEntryImpl'], ['goog.array', 'goog.async.Deferred', 'goog.fs.DirectoryEntry', 'goog.fs.Entry', 'goog.fs.Error', 'goog.fs.FileEntry', 'goog.fs.FileWriter', 'goog.functions', 'goog.string']); +goog.addDependency('fs/error.js', ['goog.fs.Error', 'goog.fs.Error.ErrorCode'], ['goog.debug.Error', 'goog.string']); +goog.addDependency('fs/filereader.js', ['goog.fs.FileReader', 'goog.fs.FileReader.EventType', 'goog.fs.FileReader.ReadyState'], ['goog.async.Deferred', 'goog.events.Event', 'goog.events.EventTarget', 'goog.fs.Error', 'goog.fs.ProgressEvent']); +goog.addDependency('fs/filesaver.js', ['goog.fs.FileSaver', 'goog.fs.FileSaver.EventType', 'goog.fs.FileSaver.ProgressEvent', 'goog.fs.FileSaver.ReadyState'], ['goog.events.Event', 'goog.events.EventTarget', 'goog.fs.Error', 'goog.fs.ProgressEvent']); +goog.addDependency('fs/filesystem.js', ['goog.fs.FileSystem'], []); +goog.addDependency('fs/filesystemimpl.js', ['goog.fs.FileSystemImpl'], ['goog.fs.DirectoryEntryImpl', 'goog.fs.FileSystem']); +goog.addDependency('fs/filewriter.js', ['goog.fs.FileWriter'], ['goog.fs.Error', 'goog.fs.FileSaver']); +goog.addDependency('fs/fs.js', ['goog.fs'], ['goog.array', 'goog.async.Deferred', 'goog.fs.Error', 'goog.fs.FileReader', 'goog.fs.FileSystemImpl', 'goog.userAgent']); +goog.addDependency('fs/progressevent.js', ['goog.fs.ProgressEvent'], ['goog.events.Event']); +goog.addDependency('functions/functions.js', ['goog.functions'], []); +goog.addDependency('fx/abstractdragdrop.js', ['goog.fx.AbstractDragDrop', 'goog.fx.AbstractDragDrop.EventType', 'goog.fx.DragDropEvent', 'goog.fx.DragDropItem'], ['goog.dom', 'goog.dom.classes', 'goog.events', 'goog.events.Event', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.fx.Dragger', 'goog.fx.Dragger.EventType', 'goog.math.Box', 'goog.math.Coordinate', 'goog.style']); +goog.addDependency('fx/anim/anim.js', ['goog.fx.anim', 'goog.fx.anim.Animated'], ['goog.async.AnimationDelay', 'goog.async.Delay', 'goog.object']); +goog.addDependency('fx/animation.js', ['goog.fx.Animation', 'goog.fx.Animation.EventType', 'goog.fx.Animation.State', 'goog.fx.AnimationEvent'], ['goog.array', 'goog.events.Event', 'goog.fx.Transition', 'goog.fx.Transition.EventType', 'goog.fx.TransitionBase.State', 'goog.fx.anim', 'goog.fx.anim.Animated']); +goog.addDependency('fx/animationqueue.js', ['goog.fx.AnimationParallelQueue', 'goog.fx.AnimationQueue', 'goog.fx.AnimationSerialQueue'], ['goog.array', 'goog.asserts', 'goog.events.EventHandler', 'goog.fx.Transition.EventType', 'goog.fx.TransitionBase', 'goog.fx.TransitionBase.State']); +goog.addDependency('fx/css3/fx.js', ['goog.fx.css3'], ['goog.fx.css3.Transition']); +goog.addDependency('fx/css3/transition.js', ['goog.fx.css3.Transition'], ['goog.Timer', 'goog.fx.TransitionBase', 'goog.style', 'goog.style.transition']); +goog.addDependency('fx/cssspriteanimation.js', ['goog.fx.CssSpriteAnimation'], ['goog.fx.Animation']); +goog.addDependency('fx/dom.js', ['goog.fx.dom', 'goog.fx.dom.BgColorTransform', 'goog.fx.dom.ColorTransform', 'goog.fx.dom.Fade', 'goog.fx.dom.FadeIn', 'goog.fx.dom.FadeInAndShow', 'goog.fx.dom.FadeOut', 'goog.fx.dom.FadeOutAndHide', 'goog.fx.dom.PredefinedEffect', 'goog.fx.dom.Resize', 'goog.fx.dom.ResizeHeight', 'goog.fx.dom.ResizeWidth', 'goog.fx.dom.Scroll', 'goog.fx.dom.Slide', 'goog.fx.dom.SlideFrom', 'goog.fx.dom.Swipe'], ['goog.color', 'goog.events', 'goog.fx.Animation', 'goog.fx.Transition.EventType', 'goog.style', 'goog.style.bidi']); +goog.addDependency('fx/dragdrop.js', ['goog.fx.DragDrop'], ['goog.fx.AbstractDragDrop', 'goog.fx.DragDropItem']); +goog.addDependency('fx/dragdropgroup.js', ['goog.fx.DragDropGroup'], ['goog.dom', 'goog.fx.AbstractDragDrop', 'goog.fx.DragDropItem']); +goog.addDependency('fx/dragger.js', ['goog.fx.DragEvent', 'goog.fx.Dragger', 'goog.fx.Dragger.EventType'], ['goog.dom', 'goog.events', 'goog.events.Event', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.math.Coordinate', 'goog.math.Rect', 'goog.style', 'goog.style.bidi', 'goog.userAgent']); +goog.addDependency('fx/draglistgroup.js', ['goog.fx.DragListDirection', 'goog.fx.DragListGroup', 'goog.fx.DragListGroup.EventType', 'goog.fx.DragListGroupEvent'], ['goog.asserts', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.classes', 'goog.events.Event', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.fx.Dragger', 'goog.fx.Dragger.EventType', 'goog.math.Coordinate', 'goog.style']); +goog.addDependency('fx/dragscrollsupport.js', ['goog.fx.DragScrollSupport'], ['goog.Disposable', 'goog.Timer', 'goog.dom', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.math.Coordinate', 'goog.style']); +goog.addDependency('fx/easing.js', ['goog.fx.easing'], []); +goog.addDependency('fx/fx.js', ['goog.fx'], ['goog.asserts', 'goog.fx.Animation', 'goog.fx.Animation.EventType', 'goog.fx.Animation.State', 'goog.fx.AnimationEvent', 'goog.fx.Transition.EventType', 'goog.fx.easing']); +goog.addDependency('fx/transition.js', ['goog.fx.Transition', 'goog.fx.Transition.EventType'], []); +goog.addDependency('fx/transitionbase.js', ['goog.fx.TransitionBase', 'goog.fx.TransitionBase.State'], ['goog.events.EventTarget', 'goog.fx.Transition', 'goog.fx.Transition.EventType']); +goog.addDependency('gears/basestore.js', ['goog.gears.BaseStore', 'goog.gears.BaseStore.SchemaType'], ['goog.Disposable']); +goog.addDependency('gears/database.js', ['goog.gears.Database', 'goog.gears.Database.EventType', 'goog.gears.Database.TransactionEvent'], ['goog.array', 'goog.debug', 'goog.events.Event', 'goog.events.EventTarget', 'goog.gears', 'goog.json', 'goog.log']); +goog.addDependency('gears/gears.js', ['goog.gears'], ['goog.string']); +goog.addDependency('gears/httprequest.js', ['goog.gears.HttpRequest'], ['goog.Timer', 'goog.gears', 'goog.net.WrapperXmlHttpFactory', 'goog.net.XmlHttp']); +goog.addDependency('gears/loggerclient.js', ['goog.gears.LoggerClient'], ['goog.Disposable', 'goog.debug', 'goog.debug.Logger']); +goog.addDependency('gears/loggerserver.js', ['goog.gears.LoggerServer'], ['goog.Disposable', 'goog.gears.Worker.EventType', 'goog.log', 'goog.log.Level']); +goog.addDependency('gears/logstore.js', ['goog.gears.LogStore', 'goog.gears.LogStore.Query'], ['goog.async.Delay', 'goog.debug.LogManager', 'goog.gears.BaseStore', 'goog.gears.BaseStore.SchemaType', 'goog.json', 'goog.log', 'goog.log.Level', 'goog.log.LogRecord']); +goog.addDependency('gears/managedresourcestore.js', ['goog.gears.ManagedResourceStore', 'goog.gears.ManagedResourceStore.EventType', 'goog.gears.ManagedResourceStore.UpdateStatus', 'goog.gears.ManagedResourceStoreEvent'], ['goog.events.Event', 'goog.events.EventTarget', 'goog.gears', 'goog.log', 'goog.string']); +goog.addDependency('gears/multipartformdata.js', ['goog.gears.MultipartFormData'], ['goog.asserts', 'goog.gears', 'goog.string']); +goog.addDependency('gears/statustype.js', ['goog.gears.StatusType'], []); +goog.addDependency('gears/urlcapture.js', ['goog.gears.UrlCapture', 'goog.gears.UrlCapture.Event', 'goog.gears.UrlCapture.EventType'], ['goog.Uri', 'goog.events.Event', 'goog.events.EventTarget', 'goog.gears', 'goog.log']); +goog.addDependency('gears/worker.js', ['goog.gears.Worker', 'goog.gears.Worker.EventType', 'goog.gears.WorkerEvent'], ['goog.events.Event', 'goog.events.EventTarget']); +goog.addDependency('gears/workerchannel.js', ['goog.gears.WorkerChannel'], ['goog.Disposable', 'goog.debug', 'goog.events', 'goog.gears.Worker', 'goog.gears.Worker.EventType', 'goog.gears.WorkerEvent', 'goog.json', 'goog.log', 'goog.messaging.AbstractChannel']); +goog.addDependency('gears/workerpool.js', ['goog.gears.WorkerPool', 'goog.gears.WorkerPool.Event', 'goog.gears.WorkerPool.EventType'], ['goog.events.Event', 'goog.events.EventTarget', 'goog.gears', 'goog.gears.Worker']); +goog.addDependency('graphics/abstractgraphics.js', ['goog.graphics.AbstractGraphics'], ['goog.dom', 'goog.graphics.Path', 'goog.math.Coordinate', 'goog.math.Size', 'goog.style', 'goog.ui.Component']); +goog.addDependency('graphics/affinetransform.js', ['goog.graphics.AffineTransform'], ['goog.math']); +goog.addDependency('graphics/canvaselement.js', ['goog.graphics.CanvasEllipseElement', 'goog.graphics.CanvasGroupElement', 'goog.graphics.CanvasImageElement', 'goog.graphics.CanvasPathElement', 'goog.graphics.CanvasRectElement', 'goog.graphics.CanvasTextElement'], ['goog.array', 'goog.dom', 'goog.dom.TagName', 'goog.graphics.EllipseElement', 'goog.graphics.GroupElement', 'goog.graphics.ImageElement', 'goog.graphics.Path', 'goog.graphics.PathElement', 'goog.graphics.RectElement', 'goog.graphics.TextElement', 'goog.math', 'goog.string']); +goog.addDependency('graphics/canvasgraphics.js', ['goog.graphics.CanvasGraphics'], ['goog.events.EventType', 'goog.graphics.AbstractGraphics', 'goog.graphics.CanvasEllipseElement', 'goog.graphics.CanvasGroupElement', 'goog.graphics.CanvasImageElement', 'goog.graphics.CanvasPathElement', 'goog.graphics.CanvasRectElement', 'goog.graphics.CanvasTextElement', 'goog.graphics.SolidFill', 'goog.math.Size', 'goog.style']); +goog.addDependency('graphics/element.js', ['goog.graphics.Element'], ['goog.events', 'goog.events.EventTarget', 'goog.events.Listenable', 'goog.graphics.AffineTransform', 'goog.math']); +goog.addDependency('graphics/ellipseelement.js', ['goog.graphics.EllipseElement'], ['goog.graphics.StrokeAndFillElement']); +goog.addDependency('graphics/ext/coordinates.js', ['goog.graphics.ext.coordinates'], ['goog.string']); +goog.addDependency('graphics/ext/element.js', ['goog.graphics.ext.Element'], ['goog.events', 'goog.events.EventTarget', 'goog.functions', 'goog.graphics', 'goog.graphics.ext.coordinates']); +goog.addDependency('graphics/ext/ellipse.js', ['goog.graphics.ext.Ellipse'], ['goog.graphics.ext.StrokeAndFillElement']); +goog.addDependency('graphics/ext/ext.js', ['goog.graphics.ext'], ['goog.graphics.ext.Ellipse', 'goog.graphics.ext.Graphics', 'goog.graphics.ext.Group', 'goog.graphics.ext.Image', 'goog.graphics.ext.Rectangle', 'goog.graphics.ext.Shape', 'goog.graphics.ext.coordinates']); +goog.addDependency('graphics/ext/graphics.js', ['goog.graphics.ext.Graphics'], ['goog.events.EventType', 'goog.graphics.ext.Group']); +goog.addDependency('graphics/ext/group.js', ['goog.graphics.ext.Group'], ['goog.graphics.ext.Element']); +goog.addDependency('graphics/ext/image.js', ['goog.graphics.ext.Image'], ['goog.graphics.ext.Element']); +goog.addDependency('graphics/ext/path.js', ['goog.graphics.ext.Path'], ['goog.graphics.AffineTransform', 'goog.graphics.Path', 'goog.math', 'goog.math.Rect']); +goog.addDependency('graphics/ext/rectangle.js', ['goog.graphics.ext.Rectangle'], ['goog.graphics.ext.StrokeAndFillElement']); +goog.addDependency('graphics/ext/shape.js', ['goog.graphics.ext.Shape'], ['goog.graphics.ext.Path', 'goog.graphics.ext.StrokeAndFillElement', 'goog.math.Rect']); +goog.addDependency('graphics/ext/strokeandfillelement.js', ['goog.graphics.ext.StrokeAndFillElement'], ['goog.graphics.ext.Element']); +goog.addDependency('graphics/fill.js', ['goog.graphics.Fill'], []); +goog.addDependency('graphics/font.js', ['goog.graphics.Font'], []); +goog.addDependency('graphics/graphics.js', ['goog.graphics'], ['goog.graphics.CanvasGraphics', 'goog.graphics.SvgGraphics', 'goog.graphics.VmlGraphics', 'goog.userAgent']); +goog.addDependency('graphics/groupelement.js', ['goog.graphics.GroupElement'], ['goog.graphics.Element']); +goog.addDependency('graphics/imageelement.js', ['goog.graphics.ImageElement'], ['goog.graphics.Element']); +goog.addDependency('graphics/lineargradient.js', ['goog.graphics.LinearGradient'], ['goog.asserts', 'goog.graphics.Fill']); +goog.addDependency('graphics/path.js', ['goog.graphics.Path', 'goog.graphics.Path.Segment'], ['goog.array', 'goog.math']); +goog.addDependency('graphics/pathelement.js', ['goog.graphics.PathElement'], ['goog.graphics.StrokeAndFillElement']); +goog.addDependency('graphics/paths.js', ['goog.graphics.paths'], ['goog.graphics.Path', 'goog.math.Coordinate']); +goog.addDependency('graphics/rectelement.js', ['goog.graphics.RectElement'], ['goog.graphics.StrokeAndFillElement']); +goog.addDependency('graphics/solidfill.js', ['goog.graphics.SolidFill'], ['goog.graphics.Fill']); +goog.addDependency('graphics/stroke.js', ['goog.graphics.Stroke'], []); +goog.addDependency('graphics/strokeandfillelement.js', ['goog.graphics.StrokeAndFillElement'], ['goog.graphics.Element']); +goog.addDependency('graphics/svgelement.js', ['goog.graphics.SvgEllipseElement', 'goog.graphics.SvgGroupElement', 'goog.graphics.SvgImageElement', 'goog.graphics.SvgPathElement', 'goog.graphics.SvgRectElement', 'goog.graphics.SvgTextElement'], ['goog.dom', 'goog.graphics.EllipseElement', 'goog.graphics.GroupElement', 'goog.graphics.ImageElement', 'goog.graphics.PathElement', 'goog.graphics.RectElement', 'goog.graphics.TextElement']); +goog.addDependency('graphics/svggraphics.js', ['goog.graphics.SvgGraphics'], ['goog.Timer', 'goog.dom', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.graphics.AbstractGraphics', 'goog.graphics.LinearGradient', 'goog.graphics.Path', 'goog.graphics.SolidFill', 'goog.graphics.Stroke', 'goog.graphics.SvgEllipseElement', 'goog.graphics.SvgGroupElement', 'goog.graphics.SvgImageElement', 'goog.graphics.SvgPathElement', 'goog.graphics.SvgRectElement', 'goog.graphics.SvgTextElement', 'goog.math', 'goog.math.Size', 'goog.style', 'goog.userAgent']); +goog.addDependency('graphics/textelement.js', ['goog.graphics.TextElement'], ['goog.graphics.StrokeAndFillElement']); +goog.addDependency('graphics/vmlelement.js', ['goog.graphics.VmlEllipseElement', 'goog.graphics.VmlGroupElement', 'goog.graphics.VmlImageElement', 'goog.graphics.VmlPathElement', 'goog.graphics.VmlRectElement', 'goog.graphics.VmlTextElement'], ['goog.dom', 'goog.graphics.EllipseElement', 'goog.graphics.GroupElement', 'goog.graphics.ImageElement', 'goog.graphics.PathElement', 'goog.graphics.RectElement', 'goog.graphics.TextElement']); +goog.addDependency('graphics/vmlgraphics.js', ['goog.graphics.VmlGraphics'], ['goog.array', 'goog.events', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.graphics.AbstractGraphics', 'goog.graphics.LinearGradient', 'goog.graphics.Path', 'goog.graphics.SolidFill', 'goog.graphics.VmlEllipseElement', 'goog.graphics.VmlGroupElement', 'goog.graphics.VmlImageElement', 'goog.graphics.VmlPathElement', 'goog.graphics.VmlRectElement', 'goog.graphics.VmlTextElement', 'goog.math', 'goog.math.Size', 'goog.string', 'goog.style']); +goog.addDependency('history/event.js', ['goog.history.Event'], ['goog.events.Event', 'goog.history.EventType']); +goog.addDependency('history/eventtype.js', ['goog.history.EventType'], []); +goog.addDependency('history/history.js', ['goog.History', 'goog.History.Event', 'goog.History.EventType'], ['goog.Timer', 'goog.dom', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.history.Event', 'goog.history.EventType', 'goog.memoize', 'goog.string', 'goog.userAgent']); +goog.addDependency('history/history_test.js', ['goog.HistoryTest'], ['goog.History', 'goog.testing.jsunit', 'goog.userAgent']); +goog.addDependency('history/html5history.js', ['goog.history.Html5History', 'goog.history.Html5History.TokenTransformer'], ['goog.asserts', 'goog.events', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.history.Event', 'goog.history.EventType']); +goog.addDependency('i18n/bidi.js', ['goog.i18n.bidi'], []); +goog.addDependency('i18n/bidiformatter.js', ['goog.i18n.BidiFormatter'], ['goog.i18n.bidi', 'goog.string']); +goog.addDependency('i18n/charlistdecompressor.js', ['goog.i18n.CharListDecompressor'], ['goog.array', 'goog.i18n.uChar']); +goog.addDependency('i18n/charpickerdata.js', ['goog.i18n.CharPickerData'], []); +goog.addDependency('i18n/collation.js', ['goog.i18n.collation'], []); +goog.addDependency('i18n/compactnumberformatsymbols.js', ['goog.i18n.CompactNumberFormatSymbols', 'goog.i18n.CompactNumberFormatSymbols_af', 'goog.i18n.CompactNumberFormatSymbols_af_ZA', 'goog.i18n.CompactNumberFormatSymbols_am', 'goog.i18n.CompactNumberFormatSymbols_am_ET', 'goog.i18n.CompactNumberFormatSymbols_ar', 'goog.i18n.CompactNumberFormatSymbols_ar_001', 'goog.i18n.CompactNumberFormatSymbols_ar_EG', 'goog.i18n.CompactNumberFormatSymbols_bg', 'goog.i18n.CompactNumberFormatSymbols_bg_BG', 'goog.i18n.CompactNumberFormatSymbols_bn', 'goog.i18n.CompactNumberFormatSymbols_bn_BD', 'goog.i18n.CompactNumberFormatSymbols_br', 'goog.i18n.CompactNumberFormatSymbols_br_FR', 'goog.i18n.CompactNumberFormatSymbols_ca', 'goog.i18n.CompactNumberFormatSymbols_ca_AD', 'goog.i18n.CompactNumberFormatSymbols_ca_ES', 'goog.i18n.CompactNumberFormatSymbols_chr', 'goog.i18n.CompactNumberFormatSymbols_chr_US', 'goog.i18n.CompactNumberFormatSymbols_cs', 'goog.i18n.CompactNumberFormatSymbols_cs_CZ', 'goog.i18n.CompactNumberFormatSymbols_cy', 'goog.i18n.CompactNumberFormatSymbols_cy_GB', 'goog.i18n.CompactNumberFormatSymbols_da', 'goog.i18n.CompactNumberFormatSymbols_da_DK', 'goog.i18n.CompactNumberFormatSymbols_de', 'goog.i18n.CompactNumberFormatSymbols_de_AT', 'goog.i18n.CompactNumberFormatSymbols_de_BE', 'goog.i18n.CompactNumberFormatSymbols_de_CH', 'goog.i18n.CompactNumberFormatSymbols_de_DE', 'goog.i18n.CompactNumberFormatSymbols_de_LU', 'goog.i18n.CompactNumberFormatSymbols_el', 'goog.i18n.CompactNumberFormatSymbols_el_GR', 'goog.i18n.CompactNumberFormatSymbols_en', 'goog.i18n.CompactNumberFormatSymbols_en_AS', 'goog.i18n.CompactNumberFormatSymbols_en_AU', 'goog.i18n.CompactNumberFormatSymbols_en_Dsrt_US', 'goog.i18n.CompactNumberFormatSymbols_en_FM', 'goog.i18n.CompactNumberFormatSymbols_en_GB', 'goog.i18n.CompactNumberFormatSymbols_en_GU', 'goog.i18n.CompactNumberFormatSymbols_en_IE', 'goog.i18n.CompactNumberFormatSymbols_en_IN', 'goog.i18n.CompactNumberFormatSymbols_en_MH', 'goog.i18n.CompactNumberFormatSymbols_en_MP', 'goog.i18n.CompactNumberFormatSymbols_en_PR', 'goog.i18n.CompactNumberFormatSymbols_en_PW', 'goog.i18n.CompactNumberFormatSymbols_en_SG', 'goog.i18n.CompactNumberFormatSymbols_en_TC', 'goog.i18n.CompactNumberFormatSymbols_en_UM', 'goog.i18n.CompactNumberFormatSymbols_en_US', 'goog.i18n.CompactNumberFormatSymbols_en_VG', 'goog.i18n.CompactNumberFormatSymbols_en_VI', 'goog.i18n.CompactNumberFormatSymbols_en_ZA', 'goog.i18n.CompactNumberFormatSymbols_es', 'goog.i18n.CompactNumberFormatSymbols_es_419', 'goog.i18n.CompactNumberFormatSymbols_es_EA', 'goog.i18n.CompactNumberFormatSymbols_es_ES', 'goog.i18n.CompactNumberFormatSymbols_es_IC', 'goog.i18n.CompactNumberFormatSymbols_et', 'goog.i18n.CompactNumberFormatSymbols_et_EE', 'goog.i18n.CompactNumberFormatSymbols_eu', 'goog.i18n.CompactNumberFormatSymbols_eu_ES', 'goog.i18n.CompactNumberFormatSymbols_fa', 'goog.i18n.CompactNumberFormatSymbols_fa_IR', 'goog.i18n.CompactNumberFormatSymbols_fi', 'goog.i18n.CompactNumberFormatSymbols_fi_FI', 'goog.i18n.CompactNumberFormatSymbols_fil', 'goog.i18n.CompactNumberFormatSymbols_fil_PH', 'goog.i18n.CompactNumberFormatSymbols_fr', 'goog.i18n.CompactNumberFormatSymbols_fr_BL', 'goog.i18n.CompactNumberFormatSymbols_fr_CA', 'goog.i18n.CompactNumberFormatSymbols_fr_FR', 'goog.i18n.CompactNumberFormatSymbols_fr_GF', 'goog.i18n.CompactNumberFormatSymbols_fr_GP', 'goog.i18n.CompactNumberFormatSymbols_fr_MC', 'goog.i18n.CompactNumberFormatSymbols_fr_MF', 'goog.i18n.CompactNumberFormatSymbols_fr_MQ', 'goog.i18n.CompactNumberFormatSymbols_fr_RE', 'goog.i18n.CompactNumberFormatSymbols_fr_YT', 'goog.i18n.CompactNumberFormatSymbols_gl', 'goog.i18n.CompactNumberFormatSymbols_gl_ES', 'goog.i18n.CompactNumberFormatSymbols_gsw', 'goog.i18n.CompactNumberFormatSymbols_gsw_CH', 'goog.i18n.CompactNumberFormatSymbols_gu', 'goog.i18n.CompactNumberFormatSymbols_gu_IN', 'goog.i18n.CompactNumberFormatSymbols_haw', 'goog.i18n.CompactNumberFormatSymbols_haw_US', 'goog.i18n.CompactNumberFormatSymbols_he', 'goog.i18n.CompactNumberFormatSymbols_he_IL', 'goog.i18n.CompactNumberFormatSymbols_hi', 'goog.i18n.CompactNumberFormatSymbols_hi_IN', 'goog.i18n.CompactNumberFormatSymbols_hr', 'goog.i18n.CompactNumberFormatSymbols_hr_HR', 'goog.i18n.CompactNumberFormatSymbols_hu', 'goog.i18n.CompactNumberFormatSymbols_hu_HU', 'goog.i18n.CompactNumberFormatSymbols_id', 'goog.i18n.CompactNumberFormatSymbols_id_ID', 'goog.i18n.CompactNumberFormatSymbols_in', 'goog.i18n.CompactNumberFormatSymbols_is', 'goog.i18n.CompactNumberFormatSymbols_is_IS', 'goog.i18n.CompactNumberFormatSymbols_it', 'goog.i18n.CompactNumberFormatSymbols_it_IT', 'goog.i18n.CompactNumberFormatSymbols_it_SM', 'goog.i18n.CompactNumberFormatSymbols_iw', 'goog.i18n.CompactNumberFormatSymbols_ja', 'goog.i18n.CompactNumberFormatSymbols_ja_JP', 'goog.i18n.CompactNumberFormatSymbols_kn', 'goog.i18n.CompactNumberFormatSymbols_kn_IN', 'goog.i18n.CompactNumberFormatSymbols_ko', 'goog.i18n.CompactNumberFormatSymbols_ko_KR', 'goog.i18n.CompactNumberFormatSymbols_ln', 'goog.i18n.CompactNumberFormatSymbols_ln_CD', 'goog.i18n.CompactNumberFormatSymbols_lt', 'goog.i18n.CompactNumberFormatSymbols_lt_LT', 'goog.i18n.CompactNumberFormatSymbols_lv', 'goog.i18n.CompactNumberFormatSymbols_lv_LV', 'goog.i18n.CompactNumberFormatSymbols_ml', 'goog.i18n.CompactNumberFormatSymbols_ml_IN', 'goog.i18n.CompactNumberFormatSymbols_mr', 'goog.i18n.CompactNumberFormatSymbols_mr_IN', 'goog.i18n.CompactNumberFormatSymbols_ms', 'goog.i18n.CompactNumberFormatSymbols_ms_Latn_MY', 'goog.i18n.CompactNumberFormatSymbols_mt', 'goog.i18n.CompactNumberFormatSymbols_mt_MT', 'goog.i18n.CompactNumberFormatSymbols_nb', 'goog.i18n.CompactNumberFormatSymbols_nb_NO', 'goog.i18n.CompactNumberFormatSymbols_nl', 'goog.i18n.CompactNumberFormatSymbols_nl_NL', 'goog.i18n.CompactNumberFormatSymbols_no', 'goog.i18n.CompactNumberFormatSymbols_or', 'goog.i18n.CompactNumberFormatSymbols_or_IN', 'goog.i18n.CompactNumberFormatSymbols_pl', 'goog.i18n.CompactNumberFormatSymbols_pl_PL', 'goog.i18n.CompactNumberFormatSymbols_pt', 'goog.i18n.CompactNumberFormatSymbols_pt_BR', 'goog.i18n.CompactNumberFormatSymbols_pt_PT', 'goog.i18n.CompactNumberFormatSymbols_ro', 'goog.i18n.CompactNumberFormatSymbols_ro_RO', 'goog.i18n.CompactNumberFormatSymbols_ru', 'goog.i18n.CompactNumberFormatSymbols_ru_RU', 'goog.i18n.CompactNumberFormatSymbols_sk', 'goog.i18n.CompactNumberFormatSymbols_sk_SK', 'goog.i18n.CompactNumberFormatSymbols_sl', 'goog.i18n.CompactNumberFormatSymbols_sl_SI', 'goog.i18n.CompactNumberFormatSymbols_sq', 'goog.i18n.CompactNumberFormatSymbols_sq_AL', 'goog.i18n.CompactNumberFormatSymbols_sr', 'goog.i18n.CompactNumberFormatSymbols_sr_Cyrl_RS', 'goog.i18n.CompactNumberFormatSymbols_sv', 'goog.i18n.CompactNumberFormatSymbols_sv_SE', 'goog.i18n.CompactNumberFormatSymbols_sw', 'goog.i18n.CompactNumberFormatSymbols_sw_TZ', 'goog.i18n.CompactNumberFormatSymbols_ta', 'goog.i18n.CompactNumberFormatSymbols_ta_IN', 'goog.i18n.CompactNumberFormatSymbols_te', 'goog.i18n.CompactNumberFormatSymbols_te_IN', 'goog.i18n.CompactNumberFormatSymbols_th', 'goog.i18n.CompactNumberFormatSymbols_th_TH', 'goog.i18n.CompactNumberFormatSymbols_tl', 'goog.i18n.CompactNumberFormatSymbols_tr', 'goog.i18n.CompactNumberFormatSymbols_tr_TR', 'goog.i18n.CompactNumberFormatSymbols_uk', 'goog.i18n.CompactNumberFormatSymbols_uk_UA', 'goog.i18n.CompactNumberFormatSymbols_ur', 'goog.i18n.CompactNumberFormatSymbols_ur_PK', 'goog.i18n.CompactNumberFormatSymbols_vi', 'goog.i18n.CompactNumberFormatSymbols_vi_VN', 'goog.i18n.CompactNumberFormatSymbols_zh', 'goog.i18n.CompactNumberFormatSymbols_zh_CN', 'goog.i18n.CompactNumberFormatSymbols_zh_HK', 'goog.i18n.CompactNumberFormatSymbols_zh_Hans_CN', 'goog.i18n.CompactNumberFormatSymbols_zh_TW', 'goog.i18n.CompactNumberFormatSymbols_zu', 'goog.i18n.CompactNumberFormatSymbols_zu_ZA'], []); +goog.addDependency('i18n/compactnumberformatsymbols_ext.js', ['goog.i18n.CompactNumberFormatSymbolsExt', 'goog.i18n.CompactNumberFormatSymbols_aa', 'goog.i18n.CompactNumberFormatSymbols_aa_DJ', 'goog.i18n.CompactNumberFormatSymbols_aa_ER', 'goog.i18n.CompactNumberFormatSymbols_aa_ET', 'goog.i18n.CompactNumberFormatSymbols_af_NA', 'goog.i18n.CompactNumberFormatSymbols_agq', 'goog.i18n.CompactNumberFormatSymbols_agq_CM', 'goog.i18n.CompactNumberFormatSymbols_ak', 'goog.i18n.CompactNumberFormatSymbols_ak_GH', 'goog.i18n.CompactNumberFormatSymbols_ar_AE', 'goog.i18n.CompactNumberFormatSymbols_ar_BH', 'goog.i18n.CompactNumberFormatSymbols_ar_DJ', 'goog.i18n.CompactNumberFormatSymbols_ar_DZ', 'goog.i18n.CompactNumberFormatSymbols_ar_EH', 'goog.i18n.CompactNumberFormatSymbols_ar_ER', 'goog.i18n.CompactNumberFormatSymbols_ar_IL', 'goog.i18n.CompactNumberFormatSymbols_ar_IQ', 'goog.i18n.CompactNumberFormatSymbols_ar_JO', 'goog.i18n.CompactNumberFormatSymbols_ar_KM', 'goog.i18n.CompactNumberFormatSymbols_ar_KW', 'goog.i18n.CompactNumberFormatSymbols_ar_LB', 'goog.i18n.CompactNumberFormatSymbols_ar_LY', 'goog.i18n.CompactNumberFormatSymbols_ar_MA', 'goog.i18n.CompactNumberFormatSymbols_ar_MR', 'goog.i18n.CompactNumberFormatSymbols_ar_OM', 'goog.i18n.CompactNumberFormatSymbols_ar_PS', 'goog.i18n.CompactNumberFormatSymbols_ar_QA', 'goog.i18n.CompactNumberFormatSymbols_ar_SA', 'goog.i18n.CompactNumberFormatSymbols_ar_SD', 'goog.i18n.CompactNumberFormatSymbols_ar_SO', 'goog.i18n.CompactNumberFormatSymbols_ar_SY', 'goog.i18n.CompactNumberFormatSymbols_ar_TD', 'goog.i18n.CompactNumberFormatSymbols_ar_TN', 'goog.i18n.CompactNumberFormatSymbols_ar_YE', 'goog.i18n.CompactNumberFormatSymbols_as', 'goog.i18n.CompactNumberFormatSymbols_as_IN', 'goog.i18n.CompactNumberFormatSymbols_asa', 'goog.i18n.CompactNumberFormatSymbols_asa_TZ', 'goog.i18n.CompactNumberFormatSymbols_ast', 'goog.i18n.CompactNumberFormatSymbols_ast_ES', 'goog.i18n.CompactNumberFormatSymbols_az', 'goog.i18n.CompactNumberFormatSymbols_az_Cyrl', 'goog.i18n.CompactNumberFormatSymbols_az_Cyrl_AZ', 'goog.i18n.CompactNumberFormatSymbols_az_Latn', 'goog.i18n.CompactNumberFormatSymbols_az_Latn_AZ', 'goog.i18n.CompactNumberFormatSymbols_bas', 'goog.i18n.CompactNumberFormatSymbols_bas_CM', 'goog.i18n.CompactNumberFormatSymbols_be', 'goog.i18n.CompactNumberFormatSymbols_be_BY', 'goog.i18n.CompactNumberFormatSymbols_bem', 'goog.i18n.CompactNumberFormatSymbols_bem_ZM', 'goog.i18n.CompactNumberFormatSymbols_bez', 'goog.i18n.CompactNumberFormatSymbols_bez_TZ', 'goog.i18n.CompactNumberFormatSymbols_bm', 'goog.i18n.CompactNumberFormatSymbols_bm_ML', 'goog.i18n.CompactNumberFormatSymbols_bn_IN', 'goog.i18n.CompactNumberFormatSymbols_bo', 'goog.i18n.CompactNumberFormatSymbols_bo_CN', 'goog.i18n.CompactNumberFormatSymbols_bo_IN', 'goog.i18n.CompactNumberFormatSymbols_brx', 'goog.i18n.CompactNumberFormatSymbols_brx_IN', 'goog.i18n.CompactNumberFormatSymbols_bs', 'goog.i18n.CompactNumberFormatSymbols_bs_Cyrl', 'goog.i18n.CompactNumberFormatSymbols_bs_Cyrl_BA', 'goog.i18n.CompactNumberFormatSymbols_bs_Latn', 'goog.i18n.CompactNumberFormatSymbols_bs_Latn_BA', 'goog.i18n.CompactNumberFormatSymbols_byn', 'goog.i18n.CompactNumberFormatSymbols_byn_ER', 'goog.i18n.CompactNumberFormatSymbols_cgg', 'goog.i18n.CompactNumberFormatSymbols_cgg_UG', 'goog.i18n.CompactNumberFormatSymbols_ckb', 'goog.i18n.CompactNumberFormatSymbols_ckb_Arab', 'goog.i18n.CompactNumberFormatSymbols_ckb_Arab_IQ', 'goog.i18n.CompactNumberFormatSymbols_ckb_Arab_IR', 'goog.i18n.CompactNumberFormatSymbols_ckb_IQ', 'goog.i18n.CompactNumberFormatSymbols_ckb_IR', 'goog.i18n.CompactNumberFormatSymbols_ckb_Latn', 'goog.i18n.CompactNumberFormatSymbols_ckb_Latn_IQ', 'goog.i18n.CompactNumberFormatSymbols_dav', 'goog.i18n.CompactNumberFormatSymbols_dav_KE', 'goog.i18n.CompactNumberFormatSymbols_de_LI', 'goog.i18n.CompactNumberFormatSymbols_dje', 'goog.i18n.CompactNumberFormatSymbols_dje_NE', 'goog.i18n.CompactNumberFormatSymbols_dua', 'goog.i18n.CompactNumberFormatSymbols_dua_CM', 'goog.i18n.CompactNumberFormatSymbols_dyo', 'goog.i18n.CompactNumberFormatSymbols_dyo_SN', 'goog.i18n.CompactNumberFormatSymbols_dz', 'goog.i18n.CompactNumberFormatSymbols_dz_BT', 'goog.i18n.CompactNumberFormatSymbols_ebu', 'goog.i18n.CompactNumberFormatSymbols_ebu_KE', 'goog.i18n.CompactNumberFormatSymbols_ee', 'goog.i18n.CompactNumberFormatSymbols_ee_GH', 'goog.i18n.CompactNumberFormatSymbols_ee_TG', 'goog.i18n.CompactNumberFormatSymbols_el_CY', 'goog.i18n.CompactNumberFormatSymbols_en_150', 'goog.i18n.CompactNumberFormatSymbols_en_AG', 'goog.i18n.CompactNumberFormatSymbols_en_BB', 'goog.i18n.CompactNumberFormatSymbols_en_BE', 'goog.i18n.CompactNumberFormatSymbols_en_BM', 'goog.i18n.CompactNumberFormatSymbols_en_BS', 'goog.i18n.CompactNumberFormatSymbols_en_BW', 'goog.i18n.CompactNumberFormatSymbols_en_BZ', 'goog.i18n.CompactNumberFormatSymbols_en_CA', 'goog.i18n.CompactNumberFormatSymbols_en_CM', 'goog.i18n.CompactNumberFormatSymbols_en_DM', 'goog.i18n.CompactNumberFormatSymbols_en_Dsrt', 'goog.i18n.CompactNumberFormatSymbols_en_FJ', 'goog.i18n.CompactNumberFormatSymbols_en_GD', 'goog.i18n.CompactNumberFormatSymbols_en_GG', 'goog.i18n.CompactNumberFormatSymbols_en_GH', 'goog.i18n.CompactNumberFormatSymbols_en_GI', 'goog.i18n.CompactNumberFormatSymbols_en_GM', 'goog.i18n.CompactNumberFormatSymbols_en_GY', 'goog.i18n.CompactNumberFormatSymbols_en_HK', 'goog.i18n.CompactNumberFormatSymbols_en_IM', 'goog.i18n.CompactNumberFormatSymbols_en_JE', 'goog.i18n.CompactNumberFormatSymbols_en_JM', 'goog.i18n.CompactNumberFormatSymbols_en_KE', 'goog.i18n.CompactNumberFormatSymbols_en_KI', 'goog.i18n.CompactNumberFormatSymbols_en_KN', 'goog.i18n.CompactNumberFormatSymbols_en_KY', 'goog.i18n.CompactNumberFormatSymbols_en_LC', 'goog.i18n.CompactNumberFormatSymbols_en_LR', 'goog.i18n.CompactNumberFormatSymbols_en_LS', 'goog.i18n.CompactNumberFormatSymbols_en_MG', 'goog.i18n.CompactNumberFormatSymbols_en_MT', 'goog.i18n.CompactNumberFormatSymbols_en_MU', 'goog.i18n.CompactNumberFormatSymbols_en_MW', 'goog.i18n.CompactNumberFormatSymbols_en_NA', 'goog.i18n.CompactNumberFormatSymbols_en_NG', 'goog.i18n.CompactNumberFormatSymbols_en_NZ', 'goog.i18n.CompactNumberFormatSymbols_en_PG', 'goog.i18n.CompactNumberFormatSymbols_en_PH', 'goog.i18n.CompactNumberFormatSymbols_en_PK', 'goog.i18n.CompactNumberFormatSymbols_en_SB', 'goog.i18n.CompactNumberFormatSymbols_en_SC', 'goog.i18n.CompactNumberFormatSymbols_en_SL', 'goog.i18n.CompactNumberFormatSymbols_en_SS', 'goog.i18n.CompactNumberFormatSymbols_en_SZ', 'goog.i18n.CompactNumberFormatSymbols_en_TO', 'goog.i18n.CompactNumberFormatSymbols_en_TT', 'goog.i18n.CompactNumberFormatSymbols_en_TZ', 'goog.i18n.CompactNumberFormatSymbols_en_UG', 'goog.i18n.CompactNumberFormatSymbols_en_VC', 'goog.i18n.CompactNumberFormatSymbols_en_VU', 'goog.i18n.CompactNumberFormatSymbols_en_WS', 'goog.i18n.CompactNumberFormatSymbols_en_ZM', 'goog.i18n.CompactNumberFormatSymbols_en_ZW', 'goog.i18n.CompactNumberFormatSymbols_eo', 'goog.i18n.CompactNumberFormatSymbols_es_AR', 'goog.i18n.CompactNumberFormatSymbols_es_BO', 'goog.i18n.CompactNumberFormatSymbols_es_CL', 'goog.i18n.CompactNumberFormatSymbols_es_CO', 'goog.i18n.CompactNumberFormatSymbols_es_CR', 'goog.i18n.CompactNumberFormatSymbols_es_CU', 'goog.i18n.CompactNumberFormatSymbols_es_DO', 'goog.i18n.CompactNumberFormatSymbols_es_EC', 'goog.i18n.CompactNumberFormatSymbols_es_GQ', 'goog.i18n.CompactNumberFormatSymbols_es_GT', 'goog.i18n.CompactNumberFormatSymbols_es_HN', 'goog.i18n.CompactNumberFormatSymbols_es_MX', 'goog.i18n.CompactNumberFormatSymbols_es_NI', 'goog.i18n.CompactNumberFormatSymbols_es_PA', 'goog.i18n.CompactNumberFormatSymbols_es_PE', 'goog.i18n.CompactNumberFormatSymbols_es_PH', 'goog.i18n.CompactNumberFormatSymbols_es_PR', 'goog.i18n.CompactNumberFormatSymbols_es_PY', 'goog.i18n.CompactNumberFormatSymbols_es_SV', 'goog.i18n.CompactNumberFormatSymbols_es_US', 'goog.i18n.CompactNumberFormatSymbols_es_UY', 'goog.i18n.CompactNumberFormatSymbols_es_VE', 'goog.i18n.CompactNumberFormatSymbols_ewo', 'goog.i18n.CompactNumberFormatSymbols_ewo_CM', 'goog.i18n.CompactNumberFormatSymbols_fa_AF', 'goog.i18n.CompactNumberFormatSymbols_ff', 'goog.i18n.CompactNumberFormatSymbols_ff_SN', 'goog.i18n.CompactNumberFormatSymbols_fo', 'goog.i18n.CompactNumberFormatSymbols_fo_FO', 'goog.i18n.CompactNumberFormatSymbols_fr_BE', 'goog.i18n.CompactNumberFormatSymbols_fr_BF', 'goog.i18n.CompactNumberFormatSymbols_fr_BI', 'goog.i18n.CompactNumberFormatSymbols_fr_BJ', 'goog.i18n.CompactNumberFormatSymbols_fr_CD', 'goog.i18n.CompactNumberFormatSymbols_fr_CF', 'goog.i18n.CompactNumberFormatSymbols_fr_CG', 'goog.i18n.CompactNumberFormatSymbols_fr_CH', 'goog.i18n.CompactNumberFormatSymbols_fr_CI', 'goog.i18n.CompactNumberFormatSymbols_fr_CM', 'goog.i18n.CompactNumberFormatSymbols_fr_DJ', 'goog.i18n.CompactNumberFormatSymbols_fr_DZ', 'goog.i18n.CompactNumberFormatSymbols_fr_GA', 'goog.i18n.CompactNumberFormatSymbols_fr_GN', 'goog.i18n.CompactNumberFormatSymbols_fr_GQ', 'goog.i18n.CompactNumberFormatSymbols_fr_HT', 'goog.i18n.CompactNumberFormatSymbols_fr_KM', 'goog.i18n.CompactNumberFormatSymbols_fr_LU', 'goog.i18n.CompactNumberFormatSymbols_fr_MA', 'goog.i18n.CompactNumberFormatSymbols_fr_MG', 'goog.i18n.CompactNumberFormatSymbols_fr_ML', 'goog.i18n.CompactNumberFormatSymbols_fr_MR', 'goog.i18n.CompactNumberFormatSymbols_fr_MU', 'goog.i18n.CompactNumberFormatSymbols_fr_NC', 'goog.i18n.CompactNumberFormatSymbols_fr_NE', 'goog.i18n.CompactNumberFormatSymbols_fr_PF', 'goog.i18n.CompactNumberFormatSymbols_fr_RW', 'goog.i18n.CompactNumberFormatSymbols_fr_SC', 'goog.i18n.CompactNumberFormatSymbols_fr_SN', 'goog.i18n.CompactNumberFormatSymbols_fr_SY', 'goog.i18n.CompactNumberFormatSymbols_fr_TD', 'goog.i18n.CompactNumberFormatSymbols_fr_TG', 'goog.i18n.CompactNumberFormatSymbols_fr_TN', 'goog.i18n.CompactNumberFormatSymbols_fr_VU', 'goog.i18n.CompactNumberFormatSymbols_fur', 'goog.i18n.CompactNumberFormatSymbols_fur_IT', 'goog.i18n.CompactNumberFormatSymbols_ga', 'goog.i18n.CompactNumberFormatSymbols_ga_IE', 'goog.i18n.CompactNumberFormatSymbols_gd', 'goog.i18n.CompactNumberFormatSymbols_gd_GB', 'goog.i18n.CompactNumberFormatSymbols_guz', 'goog.i18n.CompactNumberFormatSymbols_guz_KE', 'goog.i18n.CompactNumberFormatSymbols_gv', 'goog.i18n.CompactNumberFormatSymbols_gv_GB', 'goog.i18n.CompactNumberFormatSymbols_ha', 'goog.i18n.CompactNumberFormatSymbols_ha_Latn', 'goog.i18n.CompactNumberFormatSymbols_ha_Latn_GH', 'goog.i18n.CompactNumberFormatSymbols_ha_Latn_NE', 'goog.i18n.CompactNumberFormatSymbols_ha_Latn_NG', 'goog.i18n.CompactNumberFormatSymbols_hr_BA', 'goog.i18n.CompactNumberFormatSymbols_hy', 'goog.i18n.CompactNumberFormatSymbols_hy_AM', 'goog.i18n.CompactNumberFormatSymbols_ia', 'goog.i18n.CompactNumberFormatSymbols_ia_FR', 'goog.i18n.CompactNumberFormatSymbols_ig', 'goog.i18n.CompactNumberFormatSymbols_ig_NG', 'goog.i18n.CompactNumberFormatSymbols_ii', 'goog.i18n.CompactNumberFormatSymbols_ii_CN', 'goog.i18n.CompactNumberFormatSymbols_it_CH', 'goog.i18n.CompactNumberFormatSymbols_jgo', 'goog.i18n.CompactNumberFormatSymbols_jgo_CM', 'goog.i18n.CompactNumberFormatSymbols_jmc', 'goog.i18n.CompactNumberFormatSymbols_jmc_TZ', 'goog.i18n.CompactNumberFormatSymbols_ka', 'goog.i18n.CompactNumberFormatSymbols_ka_GE', 'goog.i18n.CompactNumberFormatSymbols_kab', 'goog.i18n.CompactNumberFormatSymbols_kab_DZ', 'goog.i18n.CompactNumberFormatSymbols_kam', 'goog.i18n.CompactNumberFormatSymbols_kam_KE', 'goog.i18n.CompactNumberFormatSymbols_kde', 'goog.i18n.CompactNumberFormatSymbols_kde_TZ', 'goog.i18n.CompactNumberFormatSymbols_kea', 'goog.i18n.CompactNumberFormatSymbols_kea_CV', 'goog.i18n.CompactNumberFormatSymbols_khq', 'goog.i18n.CompactNumberFormatSymbols_khq_ML', 'goog.i18n.CompactNumberFormatSymbols_ki', 'goog.i18n.CompactNumberFormatSymbols_ki_KE', 'goog.i18n.CompactNumberFormatSymbols_kk', 'goog.i18n.CompactNumberFormatSymbols_kk_Cyrl', 'goog.i18n.CompactNumberFormatSymbols_kk_Cyrl_KZ', 'goog.i18n.CompactNumberFormatSymbols_kkj', 'goog.i18n.CompactNumberFormatSymbols_kkj_CM', 'goog.i18n.CompactNumberFormatSymbols_kl', 'goog.i18n.CompactNumberFormatSymbols_kl_GL', 'goog.i18n.CompactNumberFormatSymbols_kln', 'goog.i18n.CompactNumberFormatSymbols_kln_KE', 'goog.i18n.CompactNumberFormatSymbols_km', 'goog.i18n.CompactNumberFormatSymbols_km_KH', 'goog.i18n.CompactNumberFormatSymbols_ko_KP', 'goog.i18n.CompactNumberFormatSymbols_kok', 'goog.i18n.CompactNumberFormatSymbols_kok_IN', 'goog.i18n.CompactNumberFormatSymbols_ks', 'goog.i18n.CompactNumberFormatSymbols_ks_Arab', 'goog.i18n.CompactNumberFormatSymbols_ks_Arab_IN', 'goog.i18n.CompactNumberFormatSymbols_ksb', 'goog.i18n.CompactNumberFormatSymbols_ksb_TZ', 'goog.i18n.CompactNumberFormatSymbols_ksf', 'goog.i18n.CompactNumberFormatSymbols_ksf_CM', 'goog.i18n.CompactNumberFormatSymbols_ksh', 'goog.i18n.CompactNumberFormatSymbols_ksh_DE', 'goog.i18n.CompactNumberFormatSymbols_kw', 'goog.i18n.CompactNumberFormatSymbols_kw_GB', 'goog.i18n.CompactNumberFormatSymbols_ky', 'goog.i18n.CompactNumberFormatSymbols_ky_KG', 'goog.i18n.CompactNumberFormatSymbols_lag', 'goog.i18n.CompactNumberFormatSymbols_lag_TZ', 'goog.i18n.CompactNumberFormatSymbols_lg', 'goog.i18n.CompactNumberFormatSymbols_lg_UG', 'goog.i18n.CompactNumberFormatSymbols_ln_AO', 'goog.i18n.CompactNumberFormatSymbols_ln_CF', 'goog.i18n.CompactNumberFormatSymbols_ln_CG', 'goog.i18n.CompactNumberFormatSymbols_lo', 'goog.i18n.CompactNumberFormatSymbols_lo_LA', 'goog.i18n.CompactNumberFormatSymbols_lu', 'goog.i18n.CompactNumberFormatSymbols_lu_CD', 'goog.i18n.CompactNumberFormatSymbols_luo', 'goog.i18n.CompactNumberFormatSymbols_luo_KE', 'goog.i18n.CompactNumberFormatSymbols_luy', 'goog.i18n.CompactNumberFormatSymbols_luy_KE', 'goog.i18n.CompactNumberFormatSymbols_mas', 'goog.i18n.CompactNumberFormatSymbols_mas_KE', 'goog.i18n.CompactNumberFormatSymbols_mas_TZ', 'goog.i18n.CompactNumberFormatSymbols_mer', 'goog.i18n.CompactNumberFormatSymbols_mer_KE', 'goog.i18n.CompactNumberFormatSymbols_mfe', 'goog.i18n.CompactNumberFormatSymbols_mfe_MU', 'goog.i18n.CompactNumberFormatSymbols_mg', 'goog.i18n.CompactNumberFormatSymbols_mg_MG', 'goog.i18n.CompactNumberFormatSymbols_mgh', 'goog.i18n.CompactNumberFormatSymbols_mgh_MZ', 'goog.i18n.CompactNumberFormatSymbols_mgo', 'goog.i18n.CompactNumberFormatSymbols_mgo_CM', 'goog.i18n.CompactNumberFormatSymbols_mk', 'goog.i18n.CompactNumberFormatSymbols_mk_MK', 'goog.i18n.CompactNumberFormatSymbols_mn', 'goog.i18n.CompactNumberFormatSymbols_mn_Cyrl', 'goog.i18n.CompactNumberFormatSymbols_mn_Cyrl_MN', 'goog.i18n.CompactNumberFormatSymbols_ms_Latn', 'goog.i18n.CompactNumberFormatSymbols_ms_Latn_BN', 'goog.i18n.CompactNumberFormatSymbols_ms_Latn_SG', 'goog.i18n.CompactNumberFormatSymbols_mua', 'goog.i18n.CompactNumberFormatSymbols_mua_CM', 'goog.i18n.CompactNumberFormatSymbols_my', 'goog.i18n.CompactNumberFormatSymbols_my_MM', 'goog.i18n.CompactNumberFormatSymbols_naq', 'goog.i18n.CompactNumberFormatSymbols_naq_NA', 'goog.i18n.CompactNumberFormatSymbols_nd', 'goog.i18n.CompactNumberFormatSymbols_nd_ZW', 'goog.i18n.CompactNumberFormatSymbols_ne', 'goog.i18n.CompactNumberFormatSymbols_ne_IN', 'goog.i18n.CompactNumberFormatSymbols_ne_NP', 'goog.i18n.CompactNumberFormatSymbols_nl_AW', 'goog.i18n.CompactNumberFormatSymbols_nl_BE', 'goog.i18n.CompactNumberFormatSymbols_nl_CW', 'goog.i18n.CompactNumberFormatSymbols_nl_SR', 'goog.i18n.CompactNumberFormatSymbols_nl_SX', 'goog.i18n.CompactNumberFormatSymbols_nmg', 'goog.i18n.CompactNumberFormatSymbols_nmg_CM', 'goog.i18n.CompactNumberFormatSymbols_nn', 'goog.i18n.CompactNumberFormatSymbols_nn_NO', 'goog.i18n.CompactNumberFormatSymbols_nnh', 'goog.i18n.CompactNumberFormatSymbols_nnh_CM', 'goog.i18n.CompactNumberFormatSymbols_nr', 'goog.i18n.CompactNumberFormatSymbols_nr_ZA', 'goog.i18n.CompactNumberFormatSymbols_nso', 'goog.i18n.CompactNumberFormatSymbols_nso_ZA', 'goog.i18n.CompactNumberFormatSymbols_nus', 'goog.i18n.CompactNumberFormatSymbols_nus_SD', 'goog.i18n.CompactNumberFormatSymbols_nyn', 'goog.i18n.CompactNumberFormatSymbols_nyn_UG', 'goog.i18n.CompactNumberFormatSymbols_om', 'goog.i18n.CompactNumberFormatSymbols_om_ET', 'goog.i18n.CompactNumberFormatSymbols_om_KE', 'goog.i18n.CompactNumberFormatSymbols_os', 'goog.i18n.CompactNumberFormatSymbols_os_GE', 'goog.i18n.CompactNumberFormatSymbols_os_RU', 'goog.i18n.CompactNumberFormatSymbols_pa', 'goog.i18n.CompactNumberFormatSymbols_pa_Arab', 'goog.i18n.CompactNumberFormatSymbols_pa_Arab_PK', 'goog.i18n.CompactNumberFormatSymbols_pa_Guru', 'goog.i18n.CompactNumberFormatSymbols_pa_Guru_IN', 'goog.i18n.CompactNumberFormatSymbols_ps', 'goog.i18n.CompactNumberFormatSymbols_ps_AF', 'goog.i18n.CompactNumberFormatSymbols_pt_AO', 'goog.i18n.CompactNumberFormatSymbols_pt_CV', 'goog.i18n.CompactNumberFormatSymbols_pt_GW', 'goog.i18n.CompactNumberFormatSymbols_pt_MO', 'goog.i18n.CompactNumberFormatSymbols_pt_MZ', 'goog.i18n.CompactNumberFormatSymbols_pt_ST', 'goog.i18n.CompactNumberFormatSymbols_pt_TL', 'goog.i18n.CompactNumberFormatSymbols_rm', 'goog.i18n.CompactNumberFormatSymbols_rm_CH', 'goog.i18n.CompactNumberFormatSymbols_rn', 'goog.i18n.CompactNumberFormatSymbols_rn_BI', 'goog.i18n.CompactNumberFormatSymbols_ro_MD', 'goog.i18n.CompactNumberFormatSymbols_rof', 'goog.i18n.CompactNumberFormatSymbols_rof_TZ', 'goog.i18n.CompactNumberFormatSymbols_ru_BY', 'goog.i18n.CompactNumberFormatSymbols_ru_KG', 'goog.i18n.CompactNumberFormatSymbols_ru_KZ', 'goog.i18n.CompactNumberFormatSymbols_ru_MD', 'goog.i18n.CompactNumberFormatSymbols_ru_UA', 'goog.i18n.CompactNumberFormatSymbols_rw', 'goog.i18n.CompactNumberFormatSymbols_rw_RW', 'goog.i18n.CompactNumberFormatSymbols_rwk', 'goog.i18n.CompactNumberFormatSymbols_rwk_TZ', 'goog.i18n.CompactNumberFormatSymbols_sah', 'goog.i18n.CompactNumberFormatSymbols_sah_RU', 'goog.i18n.CompactNumberFormatSymbols_saq', 'goog.i18n.CompactNumberFormatSymbols_saq_KE', 'goog.i18n.CompactNumberFormatSymbols_sbp', 'goog.i18n.CompactNumberFormatSymbols_sbp_TZ', 'goog.i18n.CompactNumberFormatSymbols_se', 'goog.i18n.CompactNumberFormatSymbols_se_FI', 'goog.i18n.CompactNumberFormatSymbols_se_NO', 'goog.i18n.CompactNumberFormatSymbols_seh', 'goog.i18n.CompactNumberFormatSymbols_seh_MZ', 'goog.i18n.CompactNumberFormatSymbols_ses', 'goog.i18n.CompactNumberFormatSymbols_ses_ML', 'goog.i18n.CompactNumberFormatSymbols_sg', 'goog.i18n.CompactNumberFormatSymbols_sg_CF', 'goog.i18n.CompactNumberFormatSymbols_shi', 'goog.i18n.CompactNumberFormatSymbols_shi_Latn', 'goog.i18n.CompactNumberFormatSymbols_shi_Latn_MA', 'goog.i18n.CompactNumberFormatSymbols_shi_Tfng', 'goog.i18n.CompactNumberFormatSymbols_shi_Tfng_MA', 'goog.i18n.CompactNumberFormatSymbols_si', 'goog.i18n.CompactNumberFormatSymbols_si_LK', 'goog.i18n.CompactNumberFormatSymbols_sn', 'goog.i18n.CompactNumberFormatSymbols_sn_ZW', 'goog.i18n.CompactNumberFormatSymbols_so', 'goog.i18n.CompactNumberFormatSymbols_so_DJ', 'goog.i18n.CompactNumberFormatSymbols_so_ET', 'goog.i18n.CompactNumberFormatSymbols_so_KE', 'goog.i18n.CompactNumberFormatSymbols_so_SO', 'goog.i18n.CompactNumberFormatSymbols_sq_MK', 'goog.i18n.CompactNumberFormatSymbols_sq_XK', 'goog.i18n.CompactNumberFormatSymbols_sr_Cyrl', 'goog.i18n.CompactNumberFormatSymbols_sr_Cyrl_BA', 'goog.i18n.CompactNumberFormatSymbols_sr_Cyrl_ME', 'goog.i18n.CompactNumberFormatSymbols_sr_Cyrl_XK', 'goog.i18n.CompactNumberFormatSymbols_sr_Latn', 'goog.i18n.CompactNumberFormatSymbols_sr_Latn_BA', 'goog.i18n.CompactNumberFormatSymbols_sr_Latn_ME', 'goog.i18n.CompactNumberFormatSymbols_sr_Latn_RS', 'goog.i18n.CompactNumberFormatSymbols_sr_Latn_XK', 'goog.i18n.CompactNumberFormatSymbols_ss', 'goog.i18n.CompactNumberFormatSymbols_ss_SZ', 'goog.i18n.CompactNumberFormatSymbols_ss_ZA', 'goog.i18n.CompactNumberFormatSymbols_ssy', 'goog.i18n.CompactNumberFormatSymbols_ssy_ER', 'goog.i18n.CompactNumberFormatSymbols_st', 'goog.i18n.CompactNumberFormatSymbols_st_LS', 'goog.i18n.CompactNumberFormatSymbols_st_ZA', 'goog.i18n.CompactNumberFormatSymbols_sv_AX', 'goog.i18n.CompactNumberFormatSymbols_sv_FI', 'goog.i18n.CompactNumberFormatSymbols_sw_KE', 'goog.i18n.CompactNumberFormatSymbols_sw_UG', 'goog.i18n.CompactNumberFormatSymbols_swc', 'goog.i18n.CompactNumberFormatSymbols_swc_CD', 'goog.i18n.CompactNumberFormatSymbols_ta_LK', 'goog.i18n.CompactNumberFormatSymbols_ta_MY', 'goog.i18n.CompactNumberFormatSymbols_ta_SG', 'goog.i18n.CompactNumberFormatSymbols_teo', 'goog.i18n.CompactNumberFormatSymbols_teo_KE', 'goog.i18n.CompactNumberFormatSymbols_teo_UG', 'goog.i18n.CompactNumberFormatSymbols_tg', 'goog.i18n.CompactNumberFormatSymbols_tg_Cyrl', 'goog.i18n.CompactNumberFormatSymbols_tg_Cyrl_TJ', 'goog.i18n.CompactNumberFormatSymbols_ti', 'goog.i18n.CompactNumberFormatSymbols_ti_ER', 'goog.i18n.CompactNumberFormatSymbols_ti_ET', 'goog.i18n.CompactNumberFormatSymbols_tig', 'goog.i18n.CompactNumberFormatSymbols_tig_ER', 'goog.i18n.CompactNumberFormatSymbols_tn', 'goog.i18n.CompactNumberFormatSymbols_tn_BW', 'goog.i18n.CompactNumberFormatSymbols_tn_ZA', 'goog.i18n.CompactNumberFormatSymbols_to', 'goog.i18n.CompactNumberFormatSymbols_to_TO', 'goog.i18n.CompactNumberFormatSymbols_tr_CY', 'goog.i18n.CompactNumberFormatSymbols_ts', 'goog.i18n.CompactNumberFormatSymbols_ts_ZA', 'goog.i18n.CompactNumberFormatSymbols_twq', 'goog.i18n.CompactNumberFormatSymbols_twq_NE', 'goog.i18n.CompactNumberFormatSymbols_tzm', 'goog.i18n.CompactNumberFormatSymbols_tzm_Latn', 'goog.i18n.CompactNumberFormatSymbols_tzm_Latn_MA', 'goog.i18n.CompactNumberFormatSymbols_ur_IN', 'goog.i18n.CompactNumberFormatSymbols_uz', 'goog.i18n.CompactNumberFormatSymbols_uz_Arab', 'goog.i18n.CompactNumberFormatSymbols_uz_Arab_AF', 'goog.i18n.CompactNumberFormatSymbols_uz_Cyrl', 'goog.i18n.CompactNumberFormatSymbols_uz_Cyrl_UZ', 'goog.i18n.CompactNumberFormatSymbols_uz_Latn', 'goog.i18n.CompactNumberFormatSymbols_uz_Latn_UZ', 'goog.i18n.CompactNumberFormatSymbols_vai', 'goog.i18n.CompactNumberFormatSymbols_vai_Latn', 'goog.i18n.CompactNumberFormatSymbols_vai_Latn_LR', 'goog.i18n.CompactNumberFormatSymbols_vai_Vaii', 'goog.i18n.CompactNumberFormatSymbols_vai_Vaii_LR', 'goog.i18n.CompactNumberFormatSymbols_ve', 'goog.i18n.CompactNumberFormatSymbols_ve_ZA', 'goog.i18n.CompactNumberFormatSymbols_vo', 'goog.i18n.CompactNumberFormatSymbols_vun', 'goog.i18n.CompactNumberFormatSymbols_vun_TZ', 'goog.i18n.CompactNumberFormatSymbols_wae', 'goog.i18n.CompactNumberFormatSymbols_wae_CH', 'goog.i18n.CompactNumberFormatSymbols_wal', 'goog.i18n.CompactNumberFormatSymbols_wal_ET', 'goog.i18n.CompactNumberFormatSymbols_xh', 'goog.i18n.CompactNumberFormatSymbols_xh_ZA', 'goog.i18n.CompactNumberFormatSymbols_xog', 'goog.i18n.CompactNumberFormatSymbols_xog_UG', 'goog.i18n.CompactNumberFormatSymbols_yav', 'goog.i18n.CompactNumberFormatSymbols_yav_CM', 'goog.i18n.CompactNumberFormatSymbols_yo', 'goog.i18n.CompactNumberFormatSymbols_yo_NG', 'goog.i18n.CompactNumberFormatSymbols_zh_Hans', 'goog.i18n.CompactNumberFormatSymbols_zh_Hans_HK', 'goog.i18n.CompactNumberFormatSymbols_zh_Hans_MO', 'goog.i18n.CompactNumberFormatSymbols_zh_Hans_SG', 'goog.i18n.CompactNumberFormatSymbols_zh_Hant', 'goog.i18n.CompactNumberFormatSymbols_zh_Hant_HK', 'goog.i18n.CompactNumberFormatSymbols_zh_Hant_MO', 'goog.i18n.CompactNumberFormatSymbols_zh_Hant_TW'], []); +goog.addDependency('i18n/currency.js', ['goog.i18n.currency', 'goog.i18n.currency.CurrencyInfo', 'goog.i18n.currency.CurrencyInfoTier2'], []); +goog.addDependency('i18n/currencycodemap.js', ['goog.i18n.currencyCodeMap', 'goog.i18n.currencyCodeMapTier2'], []); +goog.addDependency('i18n/datetimeformat.js', ['goog.i18n.DateTimeFormat', 'goog.i18n.DateTimeFormat.Format'], ['goog.asserts', 'goog.i18n.DateTimeSymbols', 'goog.i18n.TimeZone', 'goog.string']); +goog.addDependency('i18n/datetimeparse.js', ['goog.i18n.DateTimeParse'], ['goog.i18n.DateTimeFormat', 'goog.i18n.DateTimeSymbols']); +goog.addDependency('i18n/datetimepatterns.js', ['goog.i18n.DateTimePatterns', 'goog.i18n.DateTimePatterns_af', 'goog.i18n.DateTimePatterns_am', 'goog.i18n.DateTimePatterns_ar', 'goog.i18n.DateTimePatterns_bg', 'goog.i18n.DateTimePatterns_bn', 'goog.i18n.DateTimePatterns_br', 'goog.i18n.DateTimePatterns_ca', 'goog.i18n.DateTimePatterns_chr', 'goog.i18n.DateTimePatterns_cs', 'goog.i18n.DateTimePatterns_cy', 'goog.i18n.DateTimePatterns_da', 'goog.i18n.DateTimePatterns_de', 'goog.i18n.DateTimePatterns_de_AT', 'goog.i18n.DateTimePatterns_de_CH', 'goog.i18n.DateTimePatterns_el', 'goog.i18n.DateTimePatterns_en', 'goog.i18n.DateTimePatterns_en_AU', 'goog.i18n.DateTimePatterns_en_GB', 'goog.i18n.DateTimePatterns_en_IE', 'goog.i18n.DateTimePatterns_en_IN', 'goog.i18n.DateTimePatterns_en_SG', 'goog.i18n.DateTimePatterns_en_US', 'goog.i18n.DateTimePatterns_en_ZA', 'goog.i18n.DateTimePatterns_es', 'goog.i18n.DateTimePatterns_es_419', 'goog.i18n.DateTimePatterns_es_ES', 'goog.i18n.DateTimePatterns_et', 'goog.i18n.DateTimePatterns_eu', 'goog.i18n.DateTimePatterns_fa', 'goog.i18n.DateTimePatterns_fi', 'goog.i18n.DateTimePatterns_fil', 'goog.i18n.DateTimePatterns_fr', 'goog.i18n.DateTimePatterns_fr_CA', 'goog.i18n.DateTimePatterns_gl', 'goog.i18n.DateTimePatterns_gsw', 'goog.i18n.DateTimePatterns_gu', 'goog.i18n.DateTimePatterns_haw', 'goog.i18n.DateTimePatterns_he', 'goog.i18n.DateTimePatterns_hi', 'goog.i18n.DateTimePatterns_hr', 'goog.i18n.DateTimePatterns_hu', 'goog.i18n.DateTimePatterns_id', 'goog.i18n.DateTimePatterns_in', 'goog.i18n.DateTimePatterns_is', 'goog.i18n.DateTimePatterns_it', 'goog.i18n.DateTimePatterns_iw', 'goog.i18n.DateTimePatterns_ja', 'goog.i18n.DateTimePatterns_kn', 'goog.i18n.DateTimePatterns_ko', 'goog.i18n.DateTimePatterns_ln', 'goog.i18n.DateTimePatterns_lt', 'goog.i18n.DateTimePatterns_lv', 'goog.i18n.DateTimePatterns_ml', 'goog.i18n.DateTimePatterns_mo', 'goog.i18n.DateTimePatterns_mr', 'goog.i18n.DateTimePatterns_ms', 'goog.i18n.DateTimePatterns_mt', 'goog.i18n.DateTimePatterns_nb', 'goog.i18n.DateTimePatterns_nl', 'goog.i18n.DateTimePatterns_no', 'goog.i18n.DateTimePatterns_or', 'goog.i18n.DateTimePatterns_pl', 'goog.i18n.DateTimePatterns_pt', 'goog.i18n.DateTimePatterns_pt_BR', 'goog.i18n.DateTimePatterns_pt_PT', 'goog.i18n.DateTimePatterns_ro', 'goog.i18n.DateTimePatterns_ru', 'goog.i18n.DateTimePatterns_sk', 'goog.i18n.DateTimePatterns_sl', 'goog.i18n.DateTimePatterns_sq', 'goog.i18n.DateTimePatterns_sr', 'goog.i18n.DateTimePatterns_sv', 'goog.i18n.DateTimePatterns_sw', 'goog.i18n.DateTimePatterns_ta', 'goog.i18n.DateTimePatterns_te', 'goog.i18n.DateTimePatterns_th', 'goog.i18n.DateTimePatterns_tl', 'goog.i18n.DateTimePatterns_tr', 'goog.i18n.DateTimePatterns_uk', 'goog.i18n.DateTimePatterns_ur', 'goog.i18n.DateTimePatterns_vi', 'goog.i18n.DateTimePatterns_zh', 'goog.i18n.DateTimePatterns_zh_CN', 'goog.i18n.DateTimePatterns_zh_HK', 'goog.i18n.DateTimePatterns_zh_TW', 'goog.i18n.DateTimePatterns_zu'], []); +goog.addDependency('i18n/datetimepatternsext.js', ['goog.i18n.DateTimePatternsExt', 'goog.i18n.DateTimePatterns_af_NA', 'goog.i18n.DateTimePatterns_af_ZA', 'goog.i18n.DateTimePatterns_agq', 'goog.i18n.DateTimePatterns_agq_CM', 'goog.i18n.DateTimePatterns_ak', 'goog.i18n.DateTimePatterns_ak_GH', 'goog.i18n.DateTimePatterns_am_ET', 'goog.i18n.DateTimePatterns_ar_001', 'goog.i18n.DateTimePatterns_ar_AE', 'goog.i18n.DateTimePatterns_ar_BH', 'goog.i18n.DateTimePatterns_ar_DJ', 'goog.i18n.DateTimePatterns_ar_DZ', 'goog.i18n.DateTimePatterns_ar_EG', 'goog.i18n.DateTimePatterns_ar_EH', 'goog.i18n.DateTimePatterns_ar_ER', 'goog.i18n.DateTimePatterns_ar_IL', 'goog.i18n.DateTimePatterns_ar_IQ', 'goog.i18n.DateTimePatterns_ar_JO', 'goog.i18n.DateTimePatterns_ar_KM', 'goog.i18n.DateTimePatterns_ar_KW', 'goog.i18n.DateTimePatterns_ar_LB', 'goog.i18n.DateTimePatterns_ar_LY', 'goog.i18n.DateTimePatterns_ar_MA', 'goog.i18n.DateTimePatterns_ar_MR', 'goog.i18n.DateTimePatterns_ar_OM', 'goog.i18n.DateTimePatterns_ar_PS', 'goog.i18n.DateTimePatterns_ar_QA', 'goog.i18n.DateTimePatterns_ar_SA', 'goog.i18n.DateTimePatterns_ar_SD', 'goog.i18n.DateTimePatterns_ar_SO', 'goog.i18n.DateTimePatterns_ar_SY', 'goog.i18n.DateTimePatterns_ar_TD', 'goog.i18n.DateTimePatterns_ar_TN', 'goog.i18n.DateTimePatterns_ar_YE', 'goog.i18n.DateTimePatterns_as', 'goog.i18n.DateTimePatterns_as_IN', 'goog.i18n.DateTimePatterns_asa', 'goog.i18n.DateTimePatterns_asa_TZ', 'goog.i18n.DateTimePatterns_az', 'goog.i18n.DateTimePatterns_az_Cyrl', 'goog.i18n.DateTimePatterns_az_Cyrl_AZ', 'goog.i18n.DateTimePatterns_az_Latn', 'goog.i18n.DateTimePatterns_az_Latn_AZ', 'goog.i18n.DateTimePatterns_bas', 'goog.i18n.DateTimePatterns_bas_CM', 'goog.i18n.DateTimePatterns_be', 'goog.i18n.DateTimePatterns_be_BY', 'goog.i18n.DateTimePatterns_bem', 'goog.i18n.DateTimePatterns_bem_ZM', 'goog.i18n.DateTimePatterns_bez', 'goog.i18n.DateTimePatterns_bez_TZ', 'goog.i18n.DateTimePatterns_bg_BG', 'goog.i18n.DateTimePatterns_bm', 'goog.i18n.DateTimePatterns_bm_ML', 'goog.i18n.DateTimePatterns_bn_BD', 'goog.i18n.DateTimePatterns_bn_IN', 'goog.i18n.DateTimePatterns_bo', 'goog.i18n.DateTimePatterns_bo_CN', 'goog.i18n.DateTimePatterns_bo_IN', 'goog.i18n.DateTimePatterns_br_FR', 'goog.i18n.DateTimePatterns_brx', 'goog.i18n.DateTimePatterns_brx_IN', 'goog.i18n.DateTimePatterns_bs', 'goog.i18n.DateTimePatterns_bs_Cyrl', 'goog.i18n.DateTimePatterns_bs_Cyrl_BA', 'goog.i18n.DateTimePatterns_bs_Latn', 'goog.i18n.DateTimePatterns_bs_Latn_BA', 'goog.i18n.DateTimePatterns_ca_AD', 'goog.i18n.DateTimePatterns_ca_ES', 'goog.i18n.DateTimePatterns_cgg', 'goog.i18n.DateTimePatterns_cgg_UG', 'goog.i18n.DateTimePatterns_chr_US', 'goog.i18n.DateTimePatterns_cs_CZ', 'goog.i18n.DateTimePatterns_cy_GB', 'goog.i18n.DateTimePatterns_da_DK', 'goog.i18n.DateTimePatterns_dav', 'goog.i18n.DateTimePatterns_dav_KE', 'goog.i18n.DateTimePatterns_de_BE', 'goog.i18n.DateTimePatterns_de_DE', 'goog.i18n.DateTimePatterns_de_LI', 'goog.i18n.DateTimePatterns_de_LU', 'goog.i18n.DateTimePatterns_dje', 'goog.i18n.DateTimePatterns_dje_NE', 'goog.i18n.DateTimePatterns_dua', 'goog.i18n.DateTimePatterns_dua_CM', 'goog.i18n.DateTimePatterns_dyo', 'goog.i18n.DateTimePatterns_dyo_SN', 'goog.i18n.DateTimePatterns_dz', 'goog.i18n.DateTimePatterns_dz_BT', 'goog.i18n.DateTimePatterns_ebu', 'goog.i18n.DateTimePatterns_ebu_KE', 'goog.i18n.DateTimePatterns_ee', 'goog.i18n.DateTimePatterns_ee_GH', 'goog.i18n.DateTimePatterns_ee_TG', 'goog.i18n.DateTimePatterns_el_CY', 'goog.i18n.DateTimePatterns_el_GR', 'goog.i18n.DateTimePatterns_en_150', 'goog.i18n.DateTimePatterns_en_AG', 'goog.i18n.DateTimePatterns_en_AS', 'goog.i18n.DateTimePatterns_en_BB', 'goog.i18n.DateTimePatterns_en_BE', 'goog.i18n.DateTimePatterns_en_BM', 'goog.i18n.DateTimePatterns_en_BS', 'goog.i18n.DateTimePatterns_en_BW', 'goog.i18n.DateTimePatterns_en_BZ', 'goog.i18n.DateTimePatterns_en_CA', 'goog.i18n.DateTimePatterns_en_CM', 'goog.i18n.DateTimePatterns_en_DM', 'goog.i18n.DateTimePatterns_en_FJ', 'goog.i18n.DateTimePatterns_en_FM', 'goog.i18n.DateTimePatterns_en_GD', 'goog.i18n.DateTimePatterns_en_GG', 'goog.i18n.DateTimePatterns_en_GH', 'goog.i18n.DateTimePatterns_en_GI', 'goog.i18n.DateTimePatterns_en_GM', 'goog.i18n.DateTimePatterns_en_GU', 'goog.i18n.DateTimePatterns_en_GY', 'goog.i18n.DateTimePatterns_en_HK', 'goog.i18n.DateTimePatterns_en_IM', 'goog.i18n.DateTimePatterns_en_JE', 'goog.i18n.DateTimePatterns_en_JM', 'goog.i18n.DateTimePatterns_en_KE', 'goog.i18n.DateTimePatterns_en_KI', 'goog.i18n.DateTimePatterns_en_KN', 'goog.i18n.DateTimePatterns_en_KY', 'goog.i18n.DateTimePatterns_en_LC', 'goog.i18n.DateTimePatterns_en_LR', 'goog.i18n.DateTimePatterns_en_LS', 'goog.i18n.DateTimePatterns_en_MG', 'goog.i18n.DateTimePatterns_en_MH', 'goog.i18n.DateTimePatterns_en_MP', 'goog.i18n.DateTimePatterns_en_MT', 'goog.i18n.DateTimePatterns_en_MU', 'goog.i18n.DateTimePatterns_en_MW', 'goog.i18n.DateTimePatterns_en_NA', 'goog.i18n.DateTimePatterns_en_NG', 'goog.i18n.DateTimePatterns_en_NZ', 'goog.i18n.DateTimePatterns_en_PG', 'goog.i18n.DateTimePatterns_en_PH', 'goog.i18n.DateTimePatterns_en_PK', 'goog.i18n.DateTimePatterns_en_PR', 'goog.i18n.DateTimePatterns_en_PW', 'goog.i18n.DateTimePatterns_en_SB', 'goog.i18n.DateTimePatterns_en_SC', 'goog.i18n.DateTimePatterns_en_SL', 'goog.i18n.DateTimePatterns_en_SS', 'goog.i18n.DateTimePatterns_en_SZ', 'goog.i18n.DateTimePatterns_en_TC', 'goog.i18n.DateTimePatterns_en_TO', 'goog.i18n.DateTimePatterns_en_TT', 'goog.i18n.DateTimePatterns_en_TZ', 'goog.i18n.DateTimePatterns_en_UG', 'goog.i18n.DateTimePatterns_en_UM', 'goog.i18n.DateTimePatterns_en_US_POSIX', 'goog.i18n.DateTimePatterns_en_VC', 'goog.i18n.DateTimePatterns_en_VG', 'goog.i18n.DateTimePatterns_en_VI', 'goog.i18n.DateTimePatterns_en_VU', 'goog.i18n.DateTimePatterns_en_WS', 'goog.i18n.DateTimePatterns_en_ZM', 'goog.i18n.DateTimePatterns_en_ZW', 'goog.i18n.DateTimePatterns_eo', 'goog.i18n.DateTimePatterns_es_AR', 'goog.i18n.DateTimePatterns_es_BO', 'goog.i18n.DateTimePatterns_es_CL', 'goog.i18n.DateTimePatterns_es_CO', 'goog.i18n.DateTimePatterns_es_CR', 'goog.i18n.DateTimePatterns_es_CU', 'goog.i18n.DateTimePatterns_es_DO', 'goog.i18n.DateTimePatterns_es_EA', 'goog.i18n.DateTimePatterns_es_EC', 'goog.i18n.DateTimePatterns_es_GQ', 'goog.i18n.DateTimePatterns_es_GT', 'goog.i18n.DateTimePatterns_es_HN', 'goog.i18n.DateTimePatterns_es_IC', 'goog.i18n.DateTimePatterns_es_MX', 'goog.i18n.DateTimePatterns_es_NI', 'goog.i18n.DateTimePatterns_es_PA', 'goog.i18n.DateTimePatterns_es_PE', 'goog.i18n.DateTimePatterns_es_PH', 'goog.i18n.DateTimePatterns_es_PR', 'goog.i18n.DateTimePatterns_es_PY', 'goog.i18n.DateTimePatterns_es_SV', 'goog.i18n.DateTimePatterns_es_US', 'goog.i18n.DateTimePatterns_es_UY', 'goog.i18n.DateTimePatterns_es_VE', 'goog.i18n.DateTimePatterns_et_EE', 'goog.i18n.DateTimePatterns_eu_ES', 'goog.i18n.DateTimePatterns_ewo', 'goog.i18n.DateTimePatterns_ewo_CM', 'goog.i18n.DateTimePatterns_fa_AF', 'goog.i18n.DateTimePatterns_fa_IR', 'goog.i18n.DateTimePatterns_ff', 'goog.i18n.DateTimePatterns_ff_SN', 'goog.i18n.DateTimePatterns_fi_FI', 'goog.i18n.DateTimePatterns_fil_PH', 'goog.i18n.DateTimePatterns_fo', 'goog.i18n.DateTimePatterns_fo_FO', 'goog.i18n.DateTimePatterns_fr_BE', 'goog.i18n.DateTimePatterns_fr_BF', 'goog.i18n.DateTimePatterns_fr_BI', 'goog.i18n.DateTimePatterns_fr_BJ', 'goog.i18n.DateTimePatterns_fr_BL', 'goog.i18n.DateTimePatterns_fr_CD', 'goog.i18n.DateTimePatterns_fr_CF', 'goog.i18n.DateTimePatterns_fr_CG', 'goog.i18n.DateTimePatterns_fr_CH', 'goog.i18n.DateTimePatterns_fr_CI', 'goog.i18n.DateTimePatterns_fr_CM', 'goog.i18n.DateTimePatterns_fr_DJ', 'goog.i18n.DateTimePatterns_fr_DZ', 'goog.i18n.DateTimePatterns_fr_FR', 'goog.i18n.DateTimePatterns_fr_GA', 'goog.i18n.DateTimePatterns_fr_GF', 'goog.i18n.DateTimePatterns_fr_GN', 'goog.i18n.DateTimePatterns_fr_GP', 'goog.i18n.DateTimePatterns_fr_GQ', 'goog.i18n.DateTimePatterns_fr_HT', 'goog.i18n.DateTimePatterns_fr_KM', 'goog.i18n.DateTimePatterns_fr_LU', 'goog.i18n.DateTimePatterns_fr_MA', 'goog.i18n.DateTimePatterns_fr_MC', 'goog.i18n.DateTimePatterns_fr_MF', 'goog.i18n.DateTimePatterns_fr_MG', 'goog.i18n.DateTimePatterns_fr_ML', 'goog.i18n.DateTimePatterns_fr_MQ', 'goog.i18n.DateTimePatterns_fr_MR', 'goog.i18n.DateTimePatterns_fr_MU', 'goog.i18n.DateTimePatterns_fr_NC', 'goog.i18n.DateTimePatterns_fr_NE', 'goog.i18n.DateTimePatterns_fr_PF', 'goog.i18n.DateTimePatterns_fr_RE', 'goog.i18n.DateTimePatterns_fr_RW', 'goog.i18n.DateTimePatterns_fr_SC', 'goog.i18n.DateTimePatterns_fr_SN', 'goog.i18n.DateTimePatterns_fr_SY', 'goog.i18n.DateTimePatterns_fr_TD', 'goog.i18n.DateTimePatterns_fr_TG', 'goog.i18n.DateTimePatterns_fr_TN', 'goog.i18n.DateTimePatterns_fr_VU', 'goog.i18n.DateTimePatterns_fr_YT', 'goog.i18n.DateTimePatterns_ga', 'goog.i18n.DateTimePatterns_ga_IE', 'goog.i18n.DateTimePatterns_gl_ES', 'goog.i18n.DateTimePatterns_gsw_CH', 'goog.i18n.DateTimePatterns_gu_IN', 'goog.i18n.DateTimePatterns_guz', 'goog.i18n.DateTimePatterns_guz_KE', 'goog.i18n.DateTimePatterns_gv', 'goog.i18n.DateTimePatterns_gv_GB', 'goog.i18n.DateTimePatterns_ha', 'goog.i18n.DateTimePatterns_ha_Latn', 'goog.i18n.DateTimePatterns_ha_Latn_GH', 'goog.i18n.DateTimePatterns_ha_Latn_NE', 'goog.i18n.DateTimePatterns_ha_Latn_NG', 'goog.i18n.DateTimePatterns_haw_US', 'goog.i18n.DateTimePatterns_he_IL', 'goog.i18n.DateTimePatterns_hi_IN', 'goog.i18n.DateTimePatterns_hr_BA', 'goog.i18n.DateTimePatterns_hr_HR', 'goog.i18n.DateTimePatterns_hu_HU', 'goog.i18n.DateTimePatterns_hy', 'goog.i18n.DateTimePatterns_hy_AM', 'goog.i18n.DateTimePatterns_id_ID', 'goog.i18n.DateTimePatterns_ig', 'goog.i18n.DateTimePatterns_ig_NG', 'goog.i18n.DateTimePatterns_ii', 'goog.i18n.DateTimePatterns_ii_CN', 'goog.i18n.DateTimePatterns_is_IS', 'goog.i18n.DateTimePatterns_it_CH', 'goog.i18n.DateTimePatterns_it_IT', 'goog.i18n.DateTimePatterns_it_SM', 'goog.i18n.DateTimePatterns_ja_JP', 'goog.i18n.DateTimePatterns_jgo', 'goog.i18n.DateTimePatterns_jgo_CM', 'goog.i18n.DateTimePatterns_jmc', 'goog.i18n.DateTimePatterns_jmc_TZ', 'goog.i18n.DateTimePatterns_ka', 'goog.i18n.DateTimePatterns_ka_GE', 'goog.i18n.DateTimePatterns_kab', 'goog.i18n.DateTimePatterns_kab_DZ', 'goog.i18n.DateTimePatterns_kam', 'goog.i18n.DateTimePatterns_kam_KE', 'goog.i18n.DateTimePatterns_kde', 'goog.i18n.DateTimePatterns_kde_TZ', 'goog.i18n.DateTimePatterns_kea', 'goog.i18n.DateTimePatterns_kea_CV', 'goog.i18n.DateTimePatterns_khq', 'goog.i18n.DateTimePatterns_khq_ML', 'goog.i18n.DateTimePatterns_ki', 'goog.i18n.DateTimePatterns_ki_KE', 'goog.i18n.DateTimePatterns_kk', 'goog.i18n.DateTimePatterns_kk_Cyrl', 'goog.i18n.DateTimePatterns_kk_Cyrl_KZ', 'goog.i18n.DateTimePatterns_kl', 'goog.i18n.DateTimePatterns_kl_GL', 'goog.i18n.DateTimePatterns_kln', 'goog.i18n.DateTimePatterns_kln_KE', 'goog.i18n.DateTimePatterns_km', 'goog.i18n.DateTimePatterns_km_KH', 'goog.i18n.DateTimePatterns_kn_IN', 'goog.i18n.DateTimePatterns_ko_KP', 'goog.i18n.DateTimePatterns_ko_KR', 'goog.i18n.DateTimePatterns_kok', 'goog.i18n.DateTimePatterns_kok_IN', 'goog.i18n.DateTimePatterns_ks', 'goog.i18n.DateTimePatterns_ks_Arab', 'goog.i18n.DateTimePatterns_ks_Arab_IN', 'goog.i18n.DateTimePatterns_ksb', 'goog.i18n.DateTimePatterns_ksb_TZ', 'goog.i18n.DateTimePatterns_ksf', 'goog.i18n.DateTimePatterns_ksf_CM', 'goog.i18n.DateTimePatterns_kw', 'goog.i18n.DateTimePatterns_kw_GB', 'goog.i18n.DateTimePatterns_lag', 'goog.i18n.DateTimePatterns_lag_TZ', 'goog.i18n.DateTimePatterns_lg', 'goog.i18n.DateTimePatterns_lg_UG', 'goog.i18n.DateTimePatterns_ln_AO', 'goog.i18n.DateTimePatterns_ln_CD', 'goog.i18n.DateTimePatterns_ln_CF', 'goog.i18n.DateTimePatterns_ln_CG', 'goog.i18n.DateTimePatterns_lo', 'goog.i18n.DateTimePatterns_lo_LA', 'goog.i18n.DateTimePatterns_lt_LT', 'goog.i18n.DateTimePatterns_lu', 'goog.i18n.DateTimePatterns_lu_CD', 'goog.i18n.DateTimePatterns_luo', 'goog.i18n.DateTimePatterns_luo_KE', 'goog.i18n.DateTimePatterns_luy', 'goog.i18n.DateTimePatterns_luy_KE', 'goog.i18n.DateTimePatterns_lv_LV', 'goog.i18n.DateTimePatterns_mas', 'goog.i18n.DateTimePatterns_mas_KE', 'goog.i18n.DateTimePatterns_mas_TZ', 'goog.i18n.DateTimePatterns_mer', 'goog.i18n.DateTimePatterns_mer_KE', 'goog.i18n.DateTimePatterns_mfe', 'goog.i18n.DateTimePatterns_mfe_MU', 'goog.i18n.DateTimePatterns_mg', 'goog.i18n.DateTimePatterns_mg_MG', 'goog.i18n.DateTimePatterns_mgh', 'goog.i18n.DateTimePatterns_mgh_MZ', 'goog.i18n.DateTimePatterns_mgo', 'goog.i18n.DateTimePatterns_mgo_CM', 'goog.i18n.DateTimePatterns_mk', 'goog.i18n.DateTimePatterns_mk_MK', 'goog.i18n.DateTimePatterns_ml_IN', 'goog.i18n.DateTimePatterns_mn', 'goog.i18n.DateTimePatterns_mn_Cyrl', 'goog.i18n.DateTimePatterns_mn_Cyrl_MN', 'goog.i18n.DateTimePatterns_mr_IN', 'goog.i18n.DateTimePatterns_ms_Latn', 'goog.i18n.DateTimePatterns_ms_Latn_BN', 'goog.i18n.DateTimePatterns_ms_Latn_MY', 'goog.i18n.DateTimePatterns_ms_Latn_SG', 'goog.i18n.DateTimePatterns_mt_MT', 'goog.i18n.DateTimePatterns_mua', 'goog.i18n.DateTimePatterns_mua_CM', 'goog.i18n.DateTimePatterns_my', 'goog.i18n.DateTimePatterns_my_MM', 'goog.i18n.DateTimePatterns_naq', 'goog.i18n.DateTimePatterns_naq_NA', 'goog.i18n.DateTimePatterns_nb_NO', 'goog.i18n.DateTimePatterns_nd', 'goog.i18n.DateTimePatterns_nd_ZW', 'goog.i18n.DateTimePatterns_ne', 'goog.i18n.DateTimePatterns_ne_IN', 'goog.i18n.DateTimePatterns_ne_NP', 'goog.i18n.DateTimePatterns_nl_AW', 'goog.i18n.DateTimePatterns_nl_BE', 'goog.i18n.DateTimePatterns_nl_CW', 'goog.i18n.DateTimePatterns_nl_NL', 'goog.i18n.DateTimePatterns_nl_SR', 'goog.i18n.DateTimePatterns_nl_SX', 'goog.i18n.DateTimePatterns_nmg', 'goog.i18n.DateTimePatterns_nmg_CM', 'goog.i18n.DateTimePatterns_nn', 'goog.i18n.DateTimePatterns_nn_NO', 'goog.i18n.DateTimePatterns_nus', 'goog.i18n.DateTimePatterns_nus_SD', 'goog.i18n.DateTimePatterns_nyn', 'goog.i18n.DateTimePatterns_nyn_UG', 'goog.i18n.DateTimePatterns_om', 'goog.i18n.DateTimePatterns_om_ET', 'goog.i18n.DateTimePatterns_om_KE', 'goog.i18n.DateTimePatterns_or_IN', 'goog.i18n.DateTimePatterns_pa', 'goog.i18n.DateTimePatterns_pa_Arab', 'goog.i18n.DateTimePatterns_pa_Arab_PK', 'goog.i18n.DateTimePatterns_pa_Guru', 'goog.i18n.DateTimePatterns_pa_Guru_IN', 'goog.i18n.DateTimePatterns_pl_PL', 'goog.i18n.DateTimePatterns_ps', 'goog.i18n.DateTimePatterns_ps_AF', 'goog.i18n.DateTimePatterns_pt_AO', 'goog.i18n.DateTimePatterns_pt_CV', 'goog.i18n.DateTimePatterns_pt_GW', 'goog.i18n.DateTimePatterns_pt_MO', 'goog.i18n.DateTimePatterns_pt_MZ', 'goog.i18n.DateTimePatterns_pt_ST', 'goog.i18n.DateTimePatterns_pt_TL', 'goog.i18n.DateTimePatterns_rm', 'goog.i18n.DateTimePatterns_rm_CH', 'goog.i18n.DateTimePatterns_rn', 'goog.i18n.DateTimePatterns_rn_BI', 'goog.i18n.DateTimePatterns_ro_MD', 'goog.i18n.DateTimePatterns_ro_RO', 'goog.i18n.DateTimePatterns_rof', 'goog.i18n.DateTimePatterns_rof_TZ', 'goog.i18n.DateTimePatterns_ru_BY', 'goog.i18n.DateTimePatterns_ru_KG', 'goog.i18n.DateTimePatterns_ru_KZ', 'goog.i18n.DateTimePatterns_ru_MD', 'goog.i18n.DateTimePatterns_ru_RU', 'goog.i18n.DateTimePatterns_ru_UA', 'goog.i18n.DateTimePatterns_rw', 'goog.i18n.DateTimePatterns_rw_RW', 'goog.i18n.DateTimePatterns_rwk', 'goog.i18n.DateTimePatterns_rwk_TZ', 'goog.i18n.DateTimePatterns_saq', 'goog.i18n.DateTimePatterns_saq_KE', 'goog.i18n.DateTimePatterns_sbp', 'goog.i18n.DateTimePatterns_sbp_TZ', 'goog.i18n.DateTimePatterns_seh', 'goog.i18n.DateTimePatterns_seh_MZ', 'goog.i18n.DateTimePatterns_ses', 'goog.i18n.DateTimePatterns_ses_ML', 'goog.i18n.DateTimePatterns_sg', 'goog.i18n.DateTimePatterns_sg_CF', 'goog.i18n.DateTimePatterns_shi', 'goog.i18n.DateTimePatterns_shi_Latn', 'goog.i18n.DateTimePatterns_shi_Latn_MA', 'goog.i18n.DateTimePatterns_shi_Tfng', 'goog.i18n.DateTimePatterns_shi_Tfng_MA', 'goog.i18n.DateTimePatterns_si', 'goog.i18n.DateTimePatterns_si_LK', 'goog.i18n.DateTimePatterns_sk_SK', 'goog.i18n.DateTimePatterns_sl_SI', 'goog.i18n.DateTimePatterns_sn', 'goog.i18n.DateTimePatterns_sn_ZW', 'goog.i18n.DateTimePatterns_so', 'goog.i18n.DateTimePatterns_so_DJ', 'goog.i18n.DateTimePatterns_so_ET', 'goog.i18n.DateTimePatterns_so_KE', 'goog.i18n.DateTimePatterns_so_SO', 'goog.i18n.DateTimePatterns_sq_AL', 'goog.i18n.DateTimePatterns_sq_MK', 'goog.i18n.DateTimePatterns_sr_Cyrl', 'goog.i18n.DateTimePatterns_sr_Cyrl_BA', 'goog.i18n.DateTimePatterns_sr_Cyrl_ME', 'goog.i18n.DateTimePatterns_sr_Cyrl_RS', 'goog.i18n.DateTimePatterns_sr_Latn', 'goog.i18n.DateTimePatterns_sr_Latn_BA', 'goog.i18n.DateTimePatterns_sr_Latn_ME', 'goog.i18n.DateTimePatterns_sr_Latn_RS', 'goog.i18n.DateTimePatterns_sv_AX', 'goog.i18n.DateTimePatterns_sv_FI', 'goog.i18n.DateTimePatterns_sv_SE', 'goog.i18n.DateTimePatterns_sw_KE', 'goog.i18n.DateTimePatterns_sw_TZ', 'goog.i18n.DateTimePatterns_sw_UG', 'goog.i18n.DateTimePatterns_swc', 'goog.i18n.DateTimePatterns_swc_CD', 'goog.i18n.DateTimePatterns_ta_IN', 'goog.i18n.DateTimePatterns_ta_LK', 'goog.i18n.DateTimePatterns_ta_MY', 'goog.i18n.DateTimePatterns_ta_SG', 'goog.i18n.DateTimePatterns_te_IN', 'goog.i18n.DateTimePatterns_teo', 'goog.i18n.DateTimePatterns_teo_KE', 'goog.i18n.DateTimePatterns_teo_UG', 'goog.i18n.DateTimePatterns_th_TH', 'goog.i18n.DateTimePatterns_ti', 'goog.i18n.DateTimePatterns_ti_ER', 'goog.i18n.DateTimePatterns_ti_ET', 'goog.i18n.DateTimePatterns_to', 'goog.i18n.DateTimePatterns_to_TO', 'goog.i18n.DateTimePatterns_tr_CY', 'goog.i18n.DateTimePatterns_tr_TR', 'goog.i18n.DateTimePatterns_twq', 'goog.i18n.DateTimePatterns_twq_NE', 'goog.i18n.DateTimePatterns_tzm', 'goog.i18n.DateTimePatterns_tzm_Latn', 'goog.i18n.DateTimePatterns_tzm_Latn_MA', 'goog.i18n.DateTimePatterns_uk_UA', 'goog.i18n.DateTimePatterns_ur_IN', 'goog.i18n.DateTimePatterns_ur_PK', 'goog.i18n.DateTimePatterns_uz', 'goog.i18n.DateTimePatterns_uz_Arab', 'goog.i18n.DateTimePatterns_uz_Arab_AF', 'goog.i18n.DateTimePatterns_uz_Cyrl', 'goog.i18n.DateTimePatterns_uz_Cyrl_UZ', 'goog.i18n.DateTimePatterns_uz_Latn', 'goog.i18n.DateTimePatterns_uz_Latn_UZ', 'goog.i18n.DateTimePatterns_vai', 'goog.i18n.DateTimePatterns_vai_Latn', 'goog.i18n.DateTimePatterns_vai_Latn_LR', 'goog.i18n.DateTimePatterns_vai_Vaii', 'goog.i18n.DateTimePatterns_vai_Vaii_LR', 'goog.i18n.DateTimePatterns_vi_VN', 'goog.i18n.DateTimePatterns_vun', 'goog.i18n.DateTimePatterns_vun_TZ', 'goog.i18n.DateTimePatterns_xog', 'goog.i18n.DateTimePatterns_xog_UG', 'goog.i18n.DateTimePatterns_yav', 'goog.i18n.DateTimePatterns_yav_CM', 'goog.i18n.DateTimePatterns_yo', 'goog.i18n.DateTimePatterns_yo_NG', 'goog.i18n.DateTimePatterns_zh_Hans', 'goog.i18n.DateTimePatterns_zh_Hans_CN', 'goog.i18n.DateTimePatterns_zh_Hans_HK', 'goog.i18n.DateTimePatterns_zh_Hans_MO', 'goog.i18n.DateTimePatterns_zh_Hans_SG', 'goog.i18n.DateTimePatterns_zh_Hant', 'goog.i18n.DateTimePatterns_zh_Hant_HK', 'goog.i18n.DateTimePatterns_zh_Hant_MO', 'goog.i18n.DateTimePatterns_zh_Hant_TW', 'goog.i18n.DateTimePatterns_zu_ZA'], ['goog.i18n.DateTimePatterns']); +goog.addDependency('i18n/datetimesymbols.js', ['goog.i18n.DateTimeSymbols', 'goog.i18n.DateTimeSymbols_af', 'goog.i18n.DateTimeSymbols_am', 'goog.i18n.DateTimeSymbols_ar', 'goog.i18n.DateTimeSymbols_bg', 'goog.i18n.DateTimeSymbols_bn', 'goog.i18n.DateTimeSymbols_br', 'goog.i18n.DateTimeSymbols_ca', 'goog.i18n.DateTimeSymbols_chr', 'goog.i18n.DateTimeSymbols_cs', 'goog.i18n.DateTimeSymbols_cy', 'goog.i18n.DateTimeSymbols_da', 'goog.i18n.DateTimeSymbols_de', 'goog.i18n.DateTimeSymbols_de_AT', 'goog.i18n.DateTimeSymbols_de_CH', 'goog.i18n.DateTimeSymbols_el', 'goog.i18n.DateTimeSymbols_en', 'goog.i18n.DateTimeSymbols_en_AU', 'goog.i18n.DateTimeSymbols_en_GB', 'goog.i18n.DateTimeSymbols_en_IE', 'goog.i18n.DateTimeSymbols_en_IN', 'goog.i18n.DateTimeSymbols_en_ISO', 'goog.i18n.DateTimeSymbols_en_SG', 'goog.i18n.DateTimeSymbols_en_US', 'goog.i18n.DateTimeSymbols_en_ZA', 'goog.i18n.DateTimeSymbols_es', 'goog.i18n.DateTimeSymbols_es_419', 'goog.i18n.DateTimeSymbols_es_ES', 'goog.i18n.DateTimeSymbols_et', 'goog.i18n.DateTimeSymbols_eu', 'goog.i18n.DateTimeSymbols_fa', 'goog.i18n.DateTimeSymbols_fi', 'goog.i18n.DateTimeSymbols_fil', 'goog.i18n.DateTimeSymbols_fr', 'goog.i18n.DateTimeSymbols_fr_CA', 'goog.i18n.DateTimeSymbols_gl', 'goog.i18n.DateTimeSymbols_gsw', 'goog.i18n.DateTimeSymbols_gu', 'goog.i18n.DateTimeSymbols_haw', 'goog.i18n.DateTimeSymbols_he', 'goog.i18n.DateTimeSymbols_hi', 'goog.i18n.DateTimeSymbols_hr', 'goog.i18n.DateTimeSymbols_hu', 'goog.i18n.DateTimeSymbols_id', 'goog.i18n.DateTimeSymbols_in', 'goog.i18n.DateTimeSymbols_is', 'goog.i18n.DateTimeSymbols_it', 'goog.i18n.DateTimeSymbols_iw', 'goog.i18n.DateTimeSymbols_ja', 'goog.i18n.DateTimeSymbols_kn', 'goog.i18n.DateTimeSymbols_ko', 'goog.i18n.DateTimeSymbols_ln', 'goog.i18n.DateTimeSymbols_lt', 'goog.i18n.DateTimeSymbols_lv', 'goog.i18n.DateTimeSymbols_ml', 'goog.i18n.DateTimeSymbols_mr', 'goog.i18n.DateTimeSymbols_ms', 'goog.i18n.DateTimeSymbols_mt', 'goog.i18n.DateTimeSymbols_nb', 'goog.i18n.DateTimeSymbols_nl', 'goog.i18n.DateTimeSymbols_no', 'goog.i18n.DateTimeSymbols_or', 'goog.i18n.DateTimeSymbols_pl', 'goog.i18n.DateTimeSymbols_pt', 'goog.i18n.DateTimeSymbols_pt_BR', 'goog.i18n.DateTimeSymbols_pt_PT', 'goog.i18n.DateTimeSymbols_ro', 'goog.i18n.DateTimeSymbols_ru', 'goog.i18n.DateTimeSymbols_sk', 'goog.i18n.DateTimeSymbols_sl', 'goog.i18n.DateTimeSymbols_sq', 'goog.i18n.DateTimeSymbols_sr', 'goog.i18n.DateTimeSymbols_sv', 'goog.i18n.DateTimeSymbols_sw', 'goog.i18n.DateTimeSymbols_ta', 'goog.i18n.DateTimeSymbols_te', 'goog.i18n.DateTimeSymbols_th', 'goog.i18n.DateTimeSymbols_tl', 'goog.i18n.DateTimeSymbols_tr', 'goog.i18n.DateTimeSymbols_uk', 'goog.i18n.DateTimeSymbols_ur', 'goog.i18n.DateTimeSymbols_vi', 'goog.i18n.DateTimeSymbols_zh', 'goog.i18n.DateTimeSymbols_zh_CN', 'goog.i18n.DateTimeSymbols_zh_HK', 'goog.i18n.DateTimeSymbols_zh_TW', 'goog.i18n.DateTimeSymbols_zu'], []); +goog.addDependency('i18n/datetimesymbolsext.js', ['goog.i18n.DateTimeSymbolsExt', 'goog.i18n.DateTimeSymbols_aa', 'goog.i18n.DateTimeSymbols_aa_DJ', 'goog.i18n.DateTimeSymbols_aa_ER', 'goog.i18n.DateTimeSymbols_aa_ET', 'goog.i18n.DateTimeSymbols_af_NA', 'goog.i18n.DateTimeSymbols_af_ZA', 'goog.i18n.DateTimeSymbols_agq', 'goog.i18n.DateTimeSymbols_agq_CM', 'goog.i18n.DateTimeSymbols_ak', 'goog.i18n.DateTimeSymbols_ak_GH', 'goog.i18n.DateTimeSymbols_am_ET', 'goog.i18n.DateTimeSymbols_ar_001', 'goog.i18n.DateTimeSymbols_ar_AE', 'goog.i18n.DateTimeSymbols_ar_BH', 'goog.i18n.DateTimeSymbols_ar_DJ', 'goog.i18n.DateTimeSymbols_ar_DZ', 'goog.i18n.DateTimeSymbols_ar_EG', 'goog.i18n.DateTimeSymbols_ar_EH', 'goog.i18n.DateTimeSymbols_ar_ER', 'goog.i18n.DateTimeSymbols_ar_IL', 'goog.i18n.DateTimeSymbols_ar_IQ', 'goog.i18n.DateTimeSymbols_ar_JO', 'goog.i18n.DateTimeSymbols_ar_KM', 'goog.i18n.DateTimeSymbols_ar_KW', 'goog.i18n.DateTimeSymbols_ar_LB', 'goog.i18n.DateTimeSymbols_ar_LY', 'goog.i18n.DateTimeSymbols_ar_MA', 'goog.i18n.DateTimeSymbols_ar_MR', 'goog.i18n.DateTimeSymbols_ar_OM', 'goog.i18n.DateTimeSymbols_ar_PS', 'goog.i18n.DateTimeSymbols_ar_QA', 'goog.i18n.DateTimeSymbols_ar_SA', 'goog.i18n.DateTimeSymbols_ar_SD', 'goog.i18n.DateTimeSymbols_ar_SO', 'goog.i18n.DateTimeSymbols_ar_SY', 'goog.i18n.DateTimeSymbols_ar_TD', 'goog.i18n.DateTimeSymbols_ar_TN', 'goog.i18n.DateTimeSymbols_ar_YE', 'goog.i18n.DateTimeSymbols_as', 'goog.i18n.DateTimeSymbols_as_IN', 'goog.i18n.DateTimeSymbols_asa', 'goog.i18n.DateTimeSymbols_asa_TZ', 'goog.i18n.DateTimeSymbols_ast', 'goog.i18n.DateTimeSymbols_ast_ES', 'goog.i18n.DateTimeSymbols_az', 'goog.i18n.DateTimeSymbols_az_Cyrl', 'goog.i18n.DateTimeSymbols_az_Cyrl_AZ', 'goog.i18n.DateTimeSymbols_az_Latn', 'goog.i18n.DateTimeSymbols_az_Latn_AZ', 'goog.i18n.DateTimeSymbols_bas', 'goog.i18n.DateTimeSymbols_bas_CM', 'goog.i18n.DateTimeSymbols_be', 'goog.i18n.DateTimeSymbols_be_BY', 'goog.i18n.DateTimeSymbols_bem', 'goog.i18n.DateTimeSymbols_bem_ZM', 'goog.i18n.DateTimeSymbols_bez', 'goog.i18n.DateTimeSymbols_bez_TZ', 'goog.i18n.DateTimeSymbols_bg_BG', 'goog.i18n.DateTimeSymbols_bm', 'goog.i18n.DateTimeSymbols_bm_ML', 'goog.i18n.DateTimeSymbols_bn_BD', 'goog.i18n.DateTimeSymbols_bn_IN', 'goog.i18n.DateTimeSymbols_bo', 'goog.i18n.DateTimeSymbols_bo_CN', 'goog.i18n.DateTimeSymbols_bo_IN', 'goog.i18n.DateTimeSymbols_br_FR', 'goog.i18n.DateTimeSymbols_brx', 'goog.i18n.DateTimeSymbols_brx_IN', 'goog.i18n.DateTimeSymbols_bs', 'goog.i18n.DateTimeSymbols_bs_Cyrl', 'goog.i18n.DateTimeSymbols_bs_Cyrl_BA', 'goog.i18n.DateTimeSymbols_bs_Latn', 'goog.i18n.DateTimeSymbols_bs_Latn_BA', 'goog.i18n.DateTimeSymbols_byn', 'goog.i18n.DateTimeSymbols_byn_ER', 'goog.i18n.DateTimeSymbols_ca_AD', 'goog.i18n.DateTimeSymbols_ca_ES', 'goog.i18n.DateTimeSymbols_cgg', 'goog.i18n.DateTimeSymbols_cgg_UG', 'goog.i18n.DateTimeSymbols_chr_US', 'goog.i18n.DateTimeSymbols_ckb', 'goog.i18n.DateTimeSymbols_ckb_Arab', 'goog.i18n.DateTimeSymbols_ckb_Arab_IQ', 'goog.i18n.DateTimeSymbols_ckb_Arab_IR', 'goog.i18n.DateTimeSymbols_ckb_IQ', 'goog.i18n.DateTimeSymbols_ckb_IR', 'goog.i18n.DateTimeSymbols_ckb_Latn', 'goog.i18n.DateTimeSymbols_ckb_Latn_IQ', 'goog.i18n.DateTimeSymbols_cs_CZ', 'goog.i18n.DateTimeSymbols_cy_GB', 'goog.i18n.DateTimeSymbols_da_DK', 'goog.i18n.DateTimeSymbols_dav', 'goog.i18n.DateTimeSymbols_dav_KE', 'goog.i18n.DateTimeSymbols_de_BE', 'goog.i18n.DateTimeSymbols_de_DE', 'goog.i18n.DateTimeSymbols_de_LI', 'goog.i18n.DateTimeSymbols_de_LU', 'goog.i18n.DateTimeSymbols_dje', 'goog.i18n.DateTimeSymbols_dje_NE', 'goog.i18n.DateTimeSymbols_dua', 'goog.i18n.DateTimeSymbols_dua_CM', 'goog.i18n.DateTimeSymbols_dyo', 'goog.i18n.DateTimeSymbols_dyo_SN', 'goog.i18n.DateTimeSymbols_dz', 'goog.i18n.DateTimeSymbols_dz_BT', 'goog.i18n.DateTimeSymbols_ebu', 'goog.i18n.DateTimeSymbols_ebu_KE', 'goog.i18n.DateTimeSymbols_ee', 'goog.i18n.DateTimeSymbols_ee_GH', 'goog.i18n.DateTimeSymbols_ee_TG', 'goog.i18n.DateTimeSymbols_el_CY', 'goog.i18n.DateTimeSymbols_el_GR', 'goog.i18n.DateTimeSymbols_en_150', 'goog.i18n.DateTimeSymbols_en_AG', 'goog.i18n.DateTimeSymbols_en_AS', 'goog.i18n.DateTimeSymbols_en_BB', 'goog.i18n.DateTimeSymbols_en_BE', 'goog.i18n.DateTimeSymbols_en_BM', 'goog.i18n.DateTimeSymbols_en_BS', 'goog.i18n.DateTimeSymbols_en_BW', 'goog.i18n.DateTimeSymbols_en_BZ', 'goog.i18n.DateTimeSymbols_en_CA', 'goog.i18n.DateTimeSymbols_en_CM', 'goog.i18n.DateTimeSymbols_en_DM', 'goog.i18n.DateTimeSymbols_en_Dsrt', 'goog.i18n.DateTimeSymbols_en_Dsrt_US', 'goog.i18n.DateTimeSymbols_en_FJ', 'goog.i18n.DateTimeSymbols_en_FM', 'goog.i18n.DateTimeSymbols_en_GD', 'goog.i18n.DateTimeSymbols_en_GG', 'goog.i18n.DateTimeSymbols_en_GH', 'goog.i18n.DateTimeSymbols_en_GI', 'goog.i18n.DateTimeSymbols_en_GM', 'goog.i18n.DateTimeSymbols_en_GU', 'goog.i18n.DateTimeSymbols_en_GY', 'goog.i18n.DateTimeSymbols_en_HK', 'goog.i18n.DateTimeSymbols_en_IM', 'goog.i18n.DateTimeSymbols_en_JE', 'goog.i18n.DateTimeSymbols_en_JM', 'goog.i18n.DateTimeSymbols_en_KE', 'goog.i18n.DateTimeSymbols_en_KI', 'goog.i18n.DateTimeSymbols_en_KN', 'goog.i18n.DateTimeSymbols_en_KY', 'goog.i18n.DateTimeSymbols_en_LC', 'goog.i18n.DateTimeSymbols_en_LR', 'goog.i18n.DateTimeSymbols_en_LS', 'goog.i18n.DateTimeSymbols_en_MG', 'goog.i18n.DateTimeSymbols_en_MH', 'goog.i18n.DateTimeSymbols_en_MP', 'goog.i18n.DateTimeSymbols_en_MT', 'goog.i18n.DateTimeSymbols_en_MU', 'goog.i18n.DateTimeSymbols_en_MW', 'goog.i18n.DateTimeSymbols_en_NA', 'goog.i18n.DateTimeSymbols_en_NG', 'goog.i18n.DateTimeSymbols_en_NZ', 'goog.i18n.DateTimeSymbols_en_PG', 'goog.i18n.DateTimeSymbols_en_PH', 'goog.i18n.DateTimeSymbols_en_PK', 'goog.i18n.DateTimeSymbols_en_PR', 'goog.i18n.DateTimeSymbols_en_PW', 'goog.i18n.DateTimeSymbols_en_SB', 'goog.i18n.DateTimeSymbols_en_SC', 'goog.i18n.DateTimeSymbols_en_SL', 'goog.i18n.DateTimeSymbols_en_SS', 'goog.i18n.DateTimeSymbols_en_SZ', 'goog.i18n.DateTimeSymbols_en_TC', 'goog.i18n.DateTimeSymbols_en_TO', 'goog.i18n.DateTimeSymbols_en_TT', 'goog.i18n.DateTimeSymbols_en_TZ', 'goog.i18n.DateTimeSymbols_en_UG', 'goog.i18n.DateTimeSymbols_en_UM', 'goog.i18n.DateTimeSymbols_en_VC', 'goog.i18n.DateTimeSymbols_en_VG', 'goog.i18n.DateTimeSymbols_en_VI', 'goog.i18n.DateTimeSymbols_en_VU', 'goog.i18n.DateTimeSymbols_en_WS', 'goog.i18n.DateTimeSymbols_en_ZM', 'goog.i18n.DateTimeSymbols_en_ZW', 'goog.i18n.DateTimeSymbols_eo', 'goog.i18n.DateTimeSymbols_es_AR', 'goog.i18n.DateTimeSymbols_es_BO', 'goog.i18n.DateTimeSymbols_es_CL', 'goog.i18n.DateTimeSymbols_es_CO', 'goog.i18n.DateTimeSymbols_es_CR', 'goog.i18n.DateTimeSymbols_es_CU', 'goog.i18n.DateTimeSymbols_es_DO', 'goog.i18n.DateTimeSymbols_es_EA', 'goog.i18n.DateTimeSymbols_es_EC', 'goog.i18n.DateTimeSymbols_es_GQ', 'goog.i18n.DateTimeSymbols_es_GT', 'goog.i18n.DateTimeSymbols_es_HN', 'goog.i18n.DateTimeSymbols_es_IC', 'goog.i18n.DateTimeSymbols_es_MX', 'goog.i18n.DateTimeSymbols_es_NI', 'goog.i18n.DateTimeSymbols_es_PA', 'goog.i18n.DateTimeSymbols_es_PE', 'goog.i18n.DateTimeSymbols_es_PH', 'goog.i18n.DateTimeSymbols_es_PR', 'goog.i18n.DateTimeSymbols_es_PY', 'goog.i18n.DateTimeSymbols_es_SV', 'goog.i18n.DateTimeSymbols_es_US', 'goog.i18n.DateTimeSymbols_es_UY', 'goog.i18n.DateTimeSymbols_es_VE', 'goog.i18n.DateTimeSymbols_et_EE', 'goog.i18n.DateTimeSymbols_eu_ES', 'goog.i18n.DateTimeSymbols_ewo', 'goog.i18n.DateTimeSymbols_ewo_CM', 'goog.i18n.DateTimeSymbols_fa_AF', 'goog.i18n.DateTimeSymbols_fa_IR', 'goog.i18n.DateTimeSymbols_ff', 'goog.i18n.DateTimeSymbols_ff_SN', 'goog.i18n.DateTimeSymbols_fi_FI', 'goog.i18n.DateTimeSymbols_fil_PH', 'goog.i18n.DateTimeSymbols_fo', 'goog.i18n.DateTimeSymbols_fo_FO', 'goog.i18n.DateTimeSymbols_fr_BE', 'goog.i18n.DateTimeSymbols_fr_BF', 'goog.i18n.DateTimeSymbols_fr_BI', 'goog.i18n.DateTimeSymbols_fr_BJ', 'goog.i18n.DateTimeSymbols_fr_BL', 'goog.i18n.DateTimeSymbols_fr_CD', 'goog.i18n.DateTimeSymbols_fr_CF', 'goog.i18n.DateTimeSymbols_fr_CG', 'goog.i18n.DateTimeSymbols_fr_CH', 'goog.i18n.DateTimeSymbols_fr_CI', 'goog.i18n.DateTimeSymbols_fr_CM', 'goog.i18n.DateTimeSymbols_fr_DJ', 'goog.i18n.DateTimeSymbols_fr_DZ', 'goog.i18n.DateTimeSymbols_fr_FR', 'goog.i18n.DateTimeSymbols_fr_GA', 'goog.i18n.DateTimeSymbols_fr_GF', 'goog.i18n.DateTimeSymbols_fr_GN', 'goog.i18n.DateTimeSymbols_fr_GP', 'goog.i18n.DateTimeSymbols_fr_GQ', 'goog.i18n.DateTimeSymbols_fr_HT', 'goog.i18n.DateTimeSymbols_fr_KM', 'goog.i18n.DateTimeSymbols_fr_LU', 'goog.i18n.DateTimeSymbols_fr_MA', 'goog.i18n.DateTimeSymbols_fr_MC', 'goog.i18n.DateTimeSymbols_fr_MF', 'goog.i18n.DateTimeSymbols_fr_MG', 'goog.i18n.DateTimeSymbols_fr_ML', 'goog.i18n.DateTimeSymbols_fr_MQ', 'goog.i18n.DateTimeSymbols_fr_MR', 'goog.i18n.DateTimeSymbols_fr_MU', 'goog.i18n.DateTimeSymbols_fr_NC', 'goog.i18n.DateTimeSymbols_fr_NE', 'goog.i18n.DateTimeSymbols_fr_PF', 'goog.i18n.DateTimeSymbols_fr_RE', 'goog.i18n.DateTimeSymbols_fr_RW', 'goog.i18n.DateTimeSymbols_fr_SC', 'goog.i18n.DateTimeSymbols_fr_SN', 'goog.i18n.DateTimeSymbols_fr_SY', 'goog.i18n.DateTimeSymbols_fr_TD', 'goog.i18n.DateTimeSymbols_fr_TG', 'goog.i18n.DateTimeSymbols_fr_TN', 'goog.i18n.DateTimeSymbols_fr_VU', 'goog.i18n.DateTimeSymbols_fr_YT', 'goog.i18n.DateTimeSymbols_fur', 'goog.i18n.DateTimeSymbols_fur_IT', 'goog.i18n.DateTimeSymbols_ga', 'goog.i18n.DateTimeSymbols_ga_IE', 'goog.i18n.DateTimeSymbols_gd', 'goog.i18n.DateTimeSymbols_gd_GB', 'goog.i18n.DateTimeSymbols_gl_ES', 'goog.i18n.DateTimeSymbols_gsw_CH', 'goog.i18n.DateTimeSymbols_gu_IN', 'goog.i18n.DateTimeSymbols_guz', 'goog.i18n.DateTimeSymbols_guz_KE', 'goog.i18n.DateTimeSymbols_gv', 'goog.i18n.DateTimeSymbols_gv_GB', 'goog.i18n.DateTimeSymbols_ha', 'goog.i18n.DateTimeSymbols_ha_Latn', 'goog.i18n.DateTimeSymbols_ha_Latn_GH', 'goog.i18n.DateTimeSymbols_ha_Latn_NE', 'goog.i18n.DateTimeSymbols_ha_Latn_NG', 'goog.i18n.DateTimeSymbols_haw_US', 'goog.i18n.DateTimeSymbols_he_IL', 'goog.i18n.DateTimeSymbols_hi_IN', 'goog.i18n.DateTimeSymbols_hr_BA', 'goog.i18n.DateTimeSymbols_hr_HR', 'goog.i18n.DateTimeSymbols_hu_HU', 'goog.i18n.DateTimeSymbols_hy', 'goog.i18n.DateTimeSymbols_hy_AM', 'goog.i18n.DateTimeSymbols_ia', 'goog.i18n.DateTimeSymbols_ia_FR', 'goog.i18n.DateTimeSymbols_id_ID', 'goog.i18n.DateTimeSymbols_ig', 'goog.i18n.DateTimeSymbols_ig_NG', 'goog.i18n.DateTimeSymbols_ii', 'goog.i18n.DateTimeSymbols_ii_CN', 'goog.i18n.DateTimeSymbols_is_IS', 'goog.i18n.DateTimeSymbols_it_CH', 'goog.i18n.DateTimeSymbols_it_IT', 'goog.i18n.DateTimeSymbols_it_SM', 'goog.i18n.DateTimeSymbols_ja_JP', 'goog.i18n.DateTimeSymbols_jgo', 'goog.i18n.DateTimeSymbols_jgo_CM', 'goog.i18n.DateTimeSymbols_jmc', 'goog.i18n.DateTimeSymbols_jmc_TZ', 'goog.i18n.DateTimeSymbols_ka', 'goog.i18n.DateTimeSymbols_ka_GE', 'goog.i18n.DateTimeSymbols_kab', 'goog.i18n.DateTimeSymbols_kab_DZ', 'goog.i18n.DateTimeSymbols_kam', 'goog.i18n.DateTimeSymbols_kam_KE', 'goog.i18n.DateTimeSymbols_kde', 'goog.i18n.DateTimeSymbols_kde_TZ', 'goog.i18n.DateTimeSymbols_kea', 'goog.i18n.DateTimeSymbols_kea_CV', 'goog.i18n.DateTimeSymbols_khq', 'goog.i18n.DateTimeSymbols_khq_ML', 'goog.i18n.DateTimeSymbols_ki', 'goog.i18n.DateTimeSymbols_ki_KE', 'goog.i18n.DateTimeSymbols_kk', 'goog.i18n.DateTimeSymbols_kk_Cyrl', 'goog.i18n.DateTimeSymbols_kk_Cyrl_KZ', 'goog.i18n.DateTimeSymbols_kkj', 'goog.i18n.DateTimeSymbols_kkj_CM', 'goog.i18n.DateTimeSymbols_kl', 'goog.i18n.DateTimeSymbols_kl_GL', 'goog.i18n.DateTimeSymbols_kln', 'goog.i18n.DateTimeSymbols_kln_KE', 'goog.i18n.DateTimeSymbols_km', 'goog.i18n.DateTimeSymbols_km_KH', 'goog.i18n.DateTimeSymbols_kn_IN', 'goog.i18n.DateTimeSymbols_ko_KP', 'goog.i18n.DateTimeSymbols_ko_KR', 'goog.i18n.DateTimeSymbols_kok', 'goog.i18n.DateTimeSymbols_kok_IN', 'goog.i18n.DateTimeSymbols_ks', 'goog.i18n.DateTimeSymbols_ks_Arab', 'goog.i18n.DateTimeSymbols_ks_Arab_IN', 'goog.i18n.DateTimeSymbols_ksb', 'goog.i18n.DateTimeSymbols_ksb_TZ', 'goog.i18n.DateTimeSymbols_ksf', 'goog.i18n.DateTimeSymbols_ksf_CM', 'goog.i18n.DateTimeSymbols_ksh', 'goog.i18n.DateTimeSymbols_ksh_DE', 'goog.i18n.DateTimeSymbols_kw', 'goog.i18n.DateTimeSymbols_kw_GB', 'goog.i18n.DateTimeSymbols_ky', 'goog.i18n.DateTimeSymbols_ky_KG', 'goog.i18n.DateTimeSymbols_lag', 'goog.i18n.DateTimeSymbols_lag_TZ', 'goog.i18n.DateTimeSymbols_lg', 'goog.i18n.DateTimeSymbols_lg_UG', 'goog.i18n.DateTimeSymbols_ln_AO', 'goog.i18n.DateTimeSymbols_ln_CD', 'goog.i18n.DateTimeSymbols_ln_CF', 'goog.i18n.DateTimeSymbols_ln_CG', 'goog.i18n.DateTimeSymbols_lo', 'goog.i18n.DateTimeSymbols_lo_LA', 'goog.i18n.DateTimeSymbols_lt_LT', 'goog.i18n.DateTimeSymbols_lu', 'goog.i18n.DateTimeSymbols_lu_CD', 'goog.i18n.DateTimeSymbols_luo', 'goog.i18n.DateTimeSymbols_luo_KE', 'goog.i18n.DateTimeSymbols_luy', 'goog.i18n.DateTimeSymbols_luy_KE', 'goog.i18n.DateTimeSymbols_lv_LV', 'goog.i18n.DateTimeSymbols_mas', 'goog.i18n.DateTimeSymbols_mas_KE', 'goog.i18n.DateTimeSymbols_mas_TZ', 'goog.i18n.DateTimeSymbols_mer', 'goog.i18n.DateTimeSymbols_mer_KE', 'goog.i18n.DateTimeSymbols_mfe', 'goog.i18n.DateTimeSymbols_mfe_MU', 'goog.i18n.DateTimeSymbols_mg', 'goog.i18n.DateTimeSymbols_mg_MG', 'goog.i18n.DateTimeSymbols_mgh', 'goog.i18n.DateTimeSymbols_mgh_MZ', 'goog.i18n.DateTimeSymbols_mgo', 'goog.i18n.DateTimeSymbols_mgo_CM', 'goog.i18n.DateTimeSymbols_mk', 'goog.i18n.DateTimeSymbols_mk_MK', 'goog.i18n.DateTimeSymbols_ml_IN', 'goog.i18n.DateTimeSymbols_mn', 'goog.i18n.DateTimeSymbols_mn_Cyrl', 'goog.i18n.DateTimeSymbols_mn_Cyrl_MN', 'goog.i18n.DateTimeSymbols_mr_IN', 'goog.i18n.DateTimeSymbols_ms_Latn', 'goog.i18n.DateTimeSymbols_ms_Latn_BN', 'goog.i18n.DateTimeSymbols_ms_Latn_MY', 'goog.i18n.DateTimeSymbols_ms_Latn_SG', 'goog.i18n.DateTimeSymbols_mt_MT', 'goog.i18n.DateTimeSymbols_mua', 'goog.i18n.DateTimeSymbols_mua_CM', 'goog.i18n.DateTimeSymbols_my', 'goog.i18n.DateTimeSymbols_my_MM', 'goog.i18n.DateTimeSymbols_naq', 'goog.i18n.DateTimeSymbols_naq_NA', 'goog.i18n.DateTimeSymbols_nb_NO', 'goog.i18n.DateTimeSymbols_nd', 'goog.i18n.DateTimeSymbols_nd_ZW', 'goog.i18n.DateTimeSymbols_ne', 'goog.i18n.DateTimeSymbols_ne_IN', 'goog.i18n.DateTimeSymbols_ne_NP', 'goog.i18n.DateTimeSymbols_nl_AW', 'goog.i18n.DateTimeSymbols_nl_BE', 'goog.i18n.DateTimeSymbols_nl_CW', 'goog.i18n.DateTimeSymbols_nl_NL', 'goog.i18n.DateTimeSymbols_nl_SR', 'goog.i18n.DateTimeSymbols_nl_SX', 'goog.i18n.DateTimeSymbols_nmg', 'goog.i18n.DateTimeSymbols_nmg_CM', 'goog.i18n.DateTimeSymbols_nn', 'goog.i18n.DateTimeSymbols_nn_NO', 'goog.i18n.DateTimeSymbols_nnh', 'goog.i18n.DateTimeSymbols_nnh_CM', 'goog.i18n.DateTimeSymbols_nr', 'goog.i18n.DateTimeSymbols_nr_ZA', 'goog.i18n.DateTimeSymbols_nso', 'goog.i18n.DateTimeSymbols_nso_ZA', 'goog.i18n.DateTimeSymbols_nus', 'goog.i18n.DateTimeSymbols_nus_SD', 'goog.i18n.DateTimeSymbols_nyn', 'goog.i18n.DateTimeSymbols_nyn_UG', 'goog.i18n.DateTimeSymbols_om', 'goog.i18n.DateTimeSymbols_om_ET', 'goog.i18n.DateTimeSymbols_om_KE', 'goog.i18n.DateTimeSymbols_or_IN', 'goog.i18n.DateTimeSymbols_os', 'goog.i18n.DateTimeSymbols_os_GE', 'goog.i18n.DateTimeSymbols_os_RU', 'goog.i18n.DateTimeSymbols_pa', 'goog.i18n.DateTimeSymbols_pa_Arab', 'goog.i18n.DateTimeSymbols_pa_Arab_PK', 'goog.i18n.DateTimeSymbols_pa_Guru', 'goog.i18n.DateTimeSymbols_pa_Guru_IN', 'goog.i18n.DateTimeSymbols_pl_PL', 'goog.i18n.DateTimeSymbols_ps', 'goog.i18n.DateTimeSymbols_ps_AF', 'goog.i18n.DateTimeSymbols_pt_AO', 'goog.i18n.DateTimeSymbols_pt_CV', 'goog.i18n.DateTimeSymbols_pt_GW', 'goog.i18n.DateTimeSymbols_pt_MO', 'goog.i18n.DateTimeSymbols_pt_MZ', 'goog.i18n.DateTimeSymbols_pt_ST', 'goog.i18n.DateTimeSymbols_pt_TL', 'goog.i18n.DateTimeSymbols_rm', 'goog.i18n.DateTimeSymbols_rm_CH', 'goog.i18n.DateTimeSymbols_rn', 'goog.i18n.DateTimeSymbols_rn_BI', 'goog.i18n.DateTimeSymbols_ro_MD', 'goog.i18n.DateTimeSymbols_ro_RO', 'goog.i18n.DateTimeSymbols_rof', 'goog.i18n.DateTimeSymbols_rof_TZ', 'goog.i18n.DateTimeSymbols_ru_BY', 'goog.i18n.DateTimeSymbols_ru_KG', 'goog.i18n.DateTimeSymbols_ru_KZ', 'goog.i18n.DateTimeSymbols_ru_MD', 'goog.i18n.DateTimeSymbols_ru_RU', 'goog.i18n.DateTimeSymbols_ru_UA', 'goog.i18n.DateTimeSymbols_rw', 'goog.i18n.DateTimeSymbols_rw_RW', 'goog.i18n.DateTimeSymbols_rwk', 'goog.i18n.DateTimeSymbols_rwk_TZ', 'goog.i18n.DateTimeSymbols_sah', 'goog.i18n.DateTimeSymbols_sah_RU', 'goog.i18n.DateTimeSymbols_saq', 'goog.i18n.DateTimeSymbols_saq_KE', 'goog.i18n.DateTimeSymbols_sbp', 'goog.i18n.DateTimeSymbols_sbp_TZ', 'goog.i18n.DateTimeSymbols_se', 'goog.i18n.DateTimeSymbols_se_FI', 'goog.i18n.DateTimeSymbols_se_NO', 'goog.i18n.DateTimeSymbols_seh', 'goog.i18n.DateTimeSymbols_seh_MZ', 'goog.i18n.DateTimeSymbols_ses', 'goog.i18n.DateTimeSymbols_ses_ML', 'goog.i18n.DateTimeSymbols_sg', 'goog.i18n.DateTimeSymbols_sg_CF', 'goog.i18n.DateTimeSymbols_shi', 'goog.i18n.DateTimeSymbols_shi_Latn', 'goog.i18n.DateTimeSymbols_shi_Latn_MA', 'goog.i18n.DateTimeSymbols_shi_Tfng', 'goog.i18n.DateTimeSymbols_shi_Tfng_MA', 'goog.i18n.DateTimeSymbols_si', 'goog.i18n.DateTimeSymbols_si_LK', 'goog.i18n.DateTimeSymbols_sk_SK', 'goog.i18n.DateTimeSymbols_sl_SI', 'goog.i18n.DateTimeSymbols_sn', 'goog.i18n.DateTimeSymbols_sn_ZW', 'goog.i18n.DateTimeSymbols_so', 'goog.i18n.DateTimeSymbols_so_DJ', 'goog.i18n.DateTimeSymbols_so_ET', 'goog.i18n.DateTimeSymbols_so_KE', 'goog.i18n.DateTimeSymbols_so_SO', 'goog.i18n.DateTimeSymbols_sq_AL', 'goog.i18n.DateTimeSymbols_sq_MK', 'goog.i18n.DateTimeSymbols_sq_XK', 'goog.i18n.DateTimeSymbols_sr_Cyrl', 'goog.i18n.DateTimeSymbols_sr_Cyrl_BA', 'goog.i18n.DateTimeSymbols_sr_Cyrl_ME', 'goog.i18n.DateTimeSymbols_sr_Cyrl_RS', 'goog.i18n.DateTimeSymbols_sr_Cyrl_XK', 'goog.i18n.DateTimeSymbols_sr_Latn', 'goog.i18n.DateTimeSymbols_sr_Latn_BA', 'goog.i18n.DateTimeSymbols_sr_Latn_ME', 'goog.i18n.DateTimeSymbols_sr_Latn_RS', 'goog.i18n.DateTimeSymbols_sr_Latn_XK', 'goog.i18n.DateTimeSymbols_ss', 'goog.i18n.DateTimeSymbols_ss_SZ', 'goog.i18n.DateTimeSymbols_ss_ZA', 'goog.i18n.DateTimeSymbols_ssy', 'goog.i18n.DateTimeSymbols_ssy_ER', 'goog.i18n.DateTimeSymbols_st', 'goog.i18n.DateTimeSymbols_st_LS', 'goog.i18n.DateTimeSymbols_st_ZA', 'goog.i18n.DateTimeSymbols_sv_AX', 'goog.i18n.DateTimeSymbols_sv_FI', 'goog.i18n.DateTimeSymbols_sv_SE', 'goog.i18n.DateTimeSymbols_sw_KE', 'goog.i18n.DateTimeSymbols_sw_TZ', 'goog.i18n.DateTimeSymbols_sw_UG', 'goog.i18n.DateTimeSymbols_swc', 'goog.i18n.DateTimeSymbols_swc_CD', 'goog.i18n.DateTimeSymbols_ta_IN', 'goog.i18n.DateTimeSymbols_ta_LK', 'goog.i18n.DateTimeSymbols_ta_MY', 'goog.i18n.DateTimeSymbols_ta_SG', 'goog.i18n.DateTimeSymbols_te_IN', 'goog.i18n.DateTimeSymbols_teo', 'goog.i18n.DateTimeSymbols_teo_KE', 'goog.i18n.DateTimeSymbols_teo_UG', 'goog.i18n.DateTimeSymbols_tg', 'goog.i18n.DateTimeSymbols_tg_Cyrl', 'goog.i18n.DateTimeSymbols_tg_Cyrl_TJ', 'goog.i18n.DateTimeSymbols_th_TH', 'goog.i18n.DateTimeSymbols_ti', 'goog.i18n.DateTimeSymbols_ti_ER', 'goog.i18n.DateTimeSymbols_ti_ET', 'goog.i18n.DateTimeSymbols_tig', 'goog.i18n.DateTimeSymbols_tig_ER', 'goog.i18n.DateTimeSymbols_tn', 'goog.i18n.DateTimeSymbols_tn_BW', 'goog.i18n.DateTimeSymbols_tn_ZA', 'goog.i18n.DateTimeSymbols_to', 'goog.i18n.DateTimeSymbols_to_TO', 'goog.i18n.DateTimeSymbols_tr_CY', 'goog.i18n.DateTimeSymbols_tr_TR', 'goog.i18n.DateTimeSymbols_ts', 'goog.i18n.DateTimeSymbols_ts_ZA', 'goog.i18n.DateTimeSymbols_twq', 'goog.i18n.DateTimeSymbols_twq_NE', 'goog.i18n.DateTimeSymbols_tzm', 'goog.i18n.DateTimeSymbols_tzm_Latn', 'goog.i18n.DateTimeSymbols_tzm_Latn_MA', 'goog.i18n.DateTimeSymbols_uk_UA', 'goog.i18n.DateTimeSymbols_ur_IN', 'goog.i18n.DateTimeSymbols_ur_PK', 'goog.i18n.DateTimeSymbols_uz', 'goog.i18n.DateTimeSymbols_uz_Arab', 'goog.i18n.DateTimeSymbols_uz_Arab_AF', 'goog.i18n.DateTimeSymbols_uz_Cyrl', 'goog.i18n.DateTimeSymbols_uz_Cyrl_UZ', 'goog.i18n.DateTimeSymbols_uz_Latn', 'goog.i18n.DateTimeSymbols_uz_Latn_UZ', 'goog.i18n.DateTimeSymbols_vai', 'goog.i18n.DateTimeSymbols_vai_Latn', 'goog.i18n.DateTimeSymbols_vai_Latn_LR', 'goog.i18n.DateTimeSymbols_vai_Vaii', 'goog.i18n.DateTimeSymbols_vai_Vaii_LR', 'goog.i18n.DateTimeSymbols_ve', 'goog.i18n.DateTimeSymbols_ve_ZA', 'goog.i18n.DateTimeSymbols_vi_VN', 'goog.i18n.DateTimeSymbols_vo', 'goog.i18n.DateTimeSymbols_vun', 'goog.i18n.DateTimeSymbols_vun_TZ', 'goog.i18n.DateTimeSymbols_wae', 'goog.i18n.DateTimeSymbols_wae_CH', 'goog.i18n.DateTimeSymbols_wal', 'goog.i18n.DateTimeSymbols_wal_ET', 'goog.i18n.DateTimeSymbols_xh', 'goog.i18n.DateTimeSymbols_xh_ZA', 'goog.i18n.DateTimeSymbols_xog', 'goog.i18n.DateTimeSymbols_xog_UG', 'goog.i18n.DateTimeSymbols_yav', 'goog.i18n.DateTimeSymbols_yav_CM', 'goog.i18n.DateTimeSymbols_yo', 'goog.i18n.DateTimeSymbols_yo_NG', 'goog.i18n.DateTimeSymbols_zh_Hans', 'goog.i18n.DateTimeSymbols_zh_Hans_CN', 'goog.i18n.DateTimeSymbols_zh_Hans_HK', 'goog.i18n.DateTimeSymbols_zh_Hans_MO', 'goog.i18n.DateTimeSymbols_zh_Hans_SG', 'goog.i18n.DateTimeSymbols_zh_Hant', 'goog.i18n.DateTimeSymbols_zh_Hant_HK', 'goog.i18n.DateTimeSymbols_zh_Hant_MO', 'goog.i18n.DateTimeSymbols_zh_Hant_TW', 'goog.i18n.DateTimeSymbols_zu_ZA'], ['goog.i18n.DateTimeSymbols']); +goog.addDependency('i18n/graphemebreak.js', ['goog.i18n.GraphemeBreak'], ['goog.structs.InversionMap']); +goog.addDependency('i18n/messageformat.js', ['goog.i18n.MessageFormat'], ['goog.asserts', 'goog.i18n.NumberFormat', 'goog.i18n.ordinalRules', 'goog.i18n.pluralRules']); +goog.addDependency('i18n/mime.js', ['goog.i18n.mime', 'goog.i18n.mime.encode'], ['goog.array']); +goog.addDependency('i18n/numberformat.js', ['goog.i18n.NumberFormat', 'goog.i18n.NumberFormat.CurrencyStyle', 'goog.i18n.NumberFormat.Format'], ['goog.asserts', 'goog.i18n.CompactNumberFormatSymbols', 'goog.i18n.NumberFormatSymbols', 'goog.i18n.currency', 'goog.math']); +goog.addDependency('i18n/numberformatsymbols.js', ['goog.i18n.NumberFormatSymbols', 'goog.i18n.NumberFormatSymbols_af', 'goog.i18n.NumberFormatSymbols_af_ZA', 'goog.i18n.NumberFormatSymbols_am', 'goog.i18n.NumberFormatSymbols_am_ET', 'goog.i18n.NumberFormatSymbols_ar', 'goog.i18n.NumberFormatSymbols_ar_001', 'goog.i18n.NumberFormatSymbols_ar_EG', 'goog.i18n.NumberFormatSymbols_bg', 'goog.i18n.NumberFormatSymbols_bg_BG', 'goog.i18n.NumberFormatSymbols_bn', 'goog.i18n.NumberFormatSymbols_bn_BD', 'goog.i18n.NumberFormatSymbols_br', 'goog.i18n.NumberFormatSymbols_br_FR', 'goog.i18n.NumberFormatSymbols_ca', 'goog.i18n.NumberFormatSymbols_ca_AD', 'goog.i18n.NumberFormatSymbols_ca_ES', 'goog.i18n.NumberFormatSymbols_chr', 'goog.i18n.NumberFormatSymbols_chr_US', 'goog.i18n.NumberFormatSymbols_cs', 'goog.i18n.NumberFormatSymbols_cs_CZ', 'goog.i18n.NumberFormatSymbols_cy', 'goog.i18n.NumberFormatSymbols_cy_GB', 'goog.i18n.NumberFormatSymbols_da', 'goog.i18n.NumberFormatSymbols_da_DK', 'goog.i18n.NumberFormatSymbols_de', 'goog.i18n.NumberFormatSymbols_de_AT', 'goog.i18n.NumberFormatSymbols_de_BE', 'goog.i18n.NumberFormatSymbols_de_CH', 'goog.i18n.NumberFormatSymbols_de_DE', 'goog.i18n.NumberFormatSymbols_de_LU', 'goog.i18n.NumberFormatSymbols_el', 'goog.i18n.NumberFormatSymbols_el_GR', 'goog.i18n.NumberFormatSymbols_en', 'goog.i18n.NumberFormatSymbols_en_AS', 'goog.i18n.NumberFormatSymbols_en_AU', 'goog.i18n.NumberFormatSymbols_en_Dsrt_US', 'goog.i18n.NumberFormatSymbols_en_FM', 'goog.i18n.NumberFormatSymbols_en_GB', 'goog.i18n.NumberFormatSymbols_en_GU', 'goog.i18n.NumberFormatSymbols_en_IE', 'goog.i18n.NumberFormatSymbols_en_IN', 'goog.i18n.NumberFormatSymbols_en_MH', 'goog.i18n.NumberFormatSymbols_en_MP', 'goog.i18n.NumberFormatSymbols_en_PR', 'goog.i18n.NumberFormatSymbols_en_PW', 'goog.i18n.NumberFormatSymbols_en_SG', 'goog.i18n.NumberFormatSymbols_en_TC', 'goog.i18n.NumberFormatSymbols_en_UM', 'goog.i18n.NumberFormatSymbols_en_US', 'goog.i18n.NumberFormatSymbols_en_VG', 'goog.i18n.NumberFormatSymbols_en_VI', 'goog.i18n.NumberFormatSymbols_en_ZA', 'goog.i18n.NumberFormatSymbols_es', 'goog.i18n.NumberFormatSymbols_es_419', 'goog.i18n.NumberFormatSymbols_es_EA', 'goog.i18n.NumberFormatSymbols_es_ES', 'goog.i18n.NumberFormatSymbols_es_IC', 'goog.i18n.NumberFormatSymbols_et', 'goog.i18n.NumberFormatSymbols_et_EE', 'goog.i18n.NumberFormatSymbols_eu', 'goog.i18n.NumberFormatSymbols_eu_ES', 'goog.i18n.NumberFormatSymbols_fa', 'goog.i18n.NumberFormatSymbols_fa_IR', 'goog.i18n.NumberFormatSymbols_fi', 'goog.i18n.NumberFormatSymbols_fi_FI', 'goog.i18n.NumberFormatSymbols_fil', 'goog.i18n.NumberFormatSymbols_fil_PH', 'goog.i18n.NumberFormatSymbols_fr', 'goog.i18n.NumberFormatSymbols_fr_BL', 'goog.i18n.NumberFormatSymbols_fr_CA', 'goog.i18n.NumberFormatSymbols_fr_FR', 'goog.i18n.NumberFormatSymbols_fr_GF', 'goog.i18n.NumberFormatSymbols_fr_GP', 'goog.i18n.NumberFormatSymbols_fr_MC', 'goog.i18n.NumberFormatSymbols_fr_MF', 'goog.i18n.NumberFormatSymbols_fr_MQ', 'goog.i18n.NumberFormatSymbols_fr_RE', 'goog.i18n.NumberFormatSymbols_fr_YT', 'goog.i18n.NumberFormatSymbols_gl', 'goog.i18n.NumberFormatSymbols_gl_ES', 'goog.i18n.NumberFormatSymbols_gsw', 'goog.i18n.NumberFormatSymbols_gsw_CH', 'goog.i18n.NumberFormatSymbols_gu', 'goog.i18n.NumberFormatSymbols_gu_IN', 'goog.i18n.NumberFormatSymbols_haw', 'goog.i18n.NumberFormatSymbols_haw_US', 'goog.i18n.NumberFormatSymbols_he', 'goog.i18n.NumberFormatSymbols_he_IL', 'goog.i18n.NumberFormatSymbols_hi', 'goog.i18n.NumberFormatSymbols_hi_IN', 'goog.i18n.NumberFormatSymbols_hr', 'goog.i18n.NumberFormatSymbols_hr_HR', 'goog.i18n.NumberFormatSymbols_hu', 'goog.i18n.NumberFormatSymbols_hu_HU', 'goog.i18n.NumberFormatSymbols_id', 'goog.i18n.NumberFormatSymbols_id_ID', 'goog.i18n.NumberFormatSymbols_in', 'goog.i18n.NumberFormatSymbols_is', 'goog.i18n.NumberFormatSymbols_is_IS', 'goog.i18n.NumberFormatSymbols_it', 'goog.i18n.NumberFormatSymbols_it_IT', 'goog.i18n.NumberFormatSymbols_it_SM', 'goog.i18n.NumberFormatSymbols_iw', 'goog.i18n.NumberFormatSymbols_ja', 'goog.i18n.NumberFormatSymbols_ja_JP', 'goog.i18n.NumberFormatSymbols_kn', 'goog.i18n.NumberFormatSymbols_kn_IN', 'goog.i18n.NumberFormatSymbols_ko', 'goog.i18n.NumberFormatSymbols_ko_KR', 'goog.i18n.NumberFormatSymbols_ln', 'goog.i18n.NumberFormatSymbols_ln_CD', 'goog.i18n.NumberFormatSymbols_lt', 'goog.i18n.NumberFormatSymbols_lt_LT', 'goog.i18n.NumberFormatSymbols_lv', 'goog.i18n.NumberFormatSymbols_lv_LV', 'goog.i18n.NumberFormatSymbols_ml', 'goog.i18n.NumberFormatSymbols_ml_IN', 'goog.i18n.NumberFormatSymbols_mr', 'goog.i18n.NumberFormatSymbols_mr_IN', 'goog.i18n.NumberFormatSymbols_ms', 'goog.i18n.NumberFormatSymbols_ms_Latn_MY', 'goog.i18n.NumberFormatSymbols_mt', 'goog.i18n.NumberFormatSymbols_mt_MT', 'goog.i18n.NumberFormatSymbols_nb', 'goog.i18n.NumberFormatSymbols_nb_NO', 'goog.i18n.NumberFormatSymbols_nl', 'goog.i18n.NumberFormatSymbols_nl_NL', 'goog.i18n.NumberFormatSymbols_no', 'goog.i18n.NumberFormatSymbols_or', 'goog.i18n.NumberFormatSymbols_or_IN', 'goog.i18n.NumberFormatSymbols_pl', 'goog.i18n.NumberFormatSymbols_pl_PL', 'goog.i18n.NumberFormatSymbols_pt', 'goog.i18n.NumberFormatSymbols_pt_BR', 'goog.i18n.NumberFormatSymbols_pt_PT', 'goog.i18n.NumberFormatSymbols_ro', 'goog.i18n.NumberFormatSymbols_ro_RO', 'goog.i18n.NumberFormatSymbols_ru', 'goog.i18n.NumberFormatSymbols_ru_RU', 'goog.i18n.NumberFormatSymbols_sk', 'goog.i18n.NumberFormatSymbols_sk_SK', 'goog.i18n.NumberFormatSymbols_sl', 'goog.i18n.NumberFormatSymbols_sl_SI', 'goog.i18n.NumberFormatSymbols_sq', 'goog.i18n.NumberFormatSymbols_sq_AL', 'goog.i18n.NumberFormatSymbols_sr', 'goog.i18n.NumberFormatSymbols_sr_Cyrl_RS', 'goog.i18n.NumberFormatSymbols_sv', 'goog.i18n.NumberFormatSymbols_sv_SE', 'goog.i18n.NumberFormatSymbols_sw', 'goog.i18n.NumberFormatSymbols_sw_TZ', 'goog.i18n.NumberFormatSymbols_ta', 'goog.i18n.NumberFormatSymbols_ta_IN', 'goog.i18n.NumberFormatSymbols_te', 'goog.i18n.NumberFormatSymbols_te_IN', 'goog.i18n.NumberFormatSymbols_th', 'goog.i18n.NumberFormatSymbols_th_TH', 'goog.i18n.NumberFormatSymbols_tl', 'goog.i18n.NumberFormatSymbols_tr', 'goog.i18n.NumberFormatSymbols_tr_TR', 'goog.i18n.NumberFormatSymbols_uk', 'goog.i18n.NumberFormatSymbols_uk_UA', 'goog.i18n.NumberFormatSymbols_ur', 'goog.i18n.NumberFormatSymbols_ur_PK', 'goog.i18n.NumberFormatSymbols_vi', 'goog.i18n.NumberFormatSymbols_vi_VN', 'goog.i18n.NumberFormatSymbols_zh', 'goog.i18n.NumberFormatSymbols_zh_CN', 'goog.i18n.NumberFormatSymbols_zh_HK', 'goog.i18n.NumberFormatSymbols_zh_Hans_CN', 'goog.i18n.NumberFormatSymbols_zh_TW', 'goog.i18n.NumberFormatSymbols_zu', 'goog.i18n.NumberFormatSymbols_zu_ZA'], []); +goog.addDependency('i18n/numberformatsymbolsext.js', ['goog.i18n.NumberFormatSymbolsExt', 'goog.i18n.NumberFormatSymbols_aa', 'goog.i18n.NumberFormatSymbols_aa_DJ', 'goog.i18n.NumberFormatSymbols_aa_ER', 'goog.i18n.NumberFormatSymbols_aa_ET', 'goog.i18n.NumberFormatSymbols_af_NA', 'goog.i18n.NumberFormatSymbols_agq', 'goog.i18n.NumberFormatSymbols_agq_CM', 'goog.i18n.NumberFormatSymbols_ak', 'goog.i18n.NumberFormatSymbols_ak_GH', 'goog.i18n.NumberFormatSymbols_ar_AE', 'goog.i18n.NumberFormatSymbols_ar_BH', 'goog.i18n.NumberFormatSymbols_ar_DJ', 'goog.i18n.NumberFormatSymbols_ar_DZ', 'goog.i18n.NumberFormatSymbols_ar_EH', 'goog.i18n.NumberFormatSymbols_ar_ER', 'goog.i18n.NumberFormatSymbols_ar_IL', 'goog.i18n.NumberFormatSymbols_ar_IQ', 'goog.i18n.NumberFormatSymbols_ar_JO', 'goog.i18n.NumberFormatSymbols_ar_KM', 'goog.i18n.NumberFormatSymbols_ar_KW', 'goog.i18n.NumberFormatSymbols_ar_LB', 'goog.i18n.NumberFormatSymbols_ar_LY', 'goog.i18n.NumberFormatSymbols_ar_MA', 'goog.i18n.NumberFormatSymbols_ar_MR', 'goog.i18n.NumberFormatSymbols_ar_OM', 'goog.i18n.NumberFormatSymbols_ar_PS', 'goog.i18n.NumberFormatSymbols_ar_QA', 'goog.i18n.NumberFormatSymbols_ar_SA', 'goog.i18n.NumberFormatSymbols_ar_SD', 'goog.i18n.NumberFormatSymbols_ar_SO', 'goog.i18n.NumberFormatSymbols_ar_SY', 'goog.i18n.NumberFormatSymbols_ar_TD', 'goog.i18n.NumberFormatSymbols_ar_TN', 'goog.i18n.NumberFormatSymbols_ar_YE', 'goog.i18n.NumberFormatSymbols_as', 'goog.i18n.NumberFormatSymbols_as_IN', 'goog.i18n.NumberFormatSymbols_asa', 'goog.i18n.NumberFormatSymbols_asa_TZ', 'goog.i18n.NumberFormatSymbols_ast', 'goog.i18n.NumberFormatSymbols_ast_ES', 'goog.i18n.NumberFormatSymbols_az', 'goog.i18n.NumberFormatSymbols_az_Cyrl', 'goog.i18n.NumberFormatSymbols_az_Cyrl_AZ', 'goog.i18n.NumberFormatSymbols_az_Latn', 'goog.i18n.NumberFormatSymbols_az_Latn_AZ', 'goog.i18n.NumberFormatSymbols_bas', 'goog.i18n.NumberFormatSymbols_bas_CM', 'goog.i18n.NumberFormatSymbols_be', 'goog.i18n.NumberFormatSymbols_be_BY', 'goog.i18n.NumberFormatSymbols_bem', 'goog.i18n.NumberFormatSymbols_bem_ZM', 'goog.i18n.NumberFormatSymbols_bez', 'goog.i18n.NumberFormatSymbols_bez_TZ', 'goog.i18n.NumberFormatSymbols_bm', 'goog.i18n.NumberFormatSymbols_bm_ML', 'goog.i18n.NumberFormatSymbols_bn_IN', 'goog.i18n.NumberFormatSymbols_bo', 'goog.i18n.NumberFormatSymbols_bo_CN', 'goog.i18n.NumberFormatSymbols_bo_IN', 'goog.i18n.NumberFormatSymbols_brx', 'goog.i18n.NumberFormatSymbols_brx_IN', 'goog.i18n.NumberFormatSymbols_bs', 'goog.i18n.NumberFormatSymbols_bs_Cyrl', 'goog.i18n.NumberFormatSymbols_bs_Cyrl_BA', 'goog.i18n.NumberFormatSymbols_bs_Latn', 'goog.i18n.NumberFormatSymbols_bs_Latn_BA', 'goog.i18n.NumberFormatSymbols_byn', 'goog.i18n.NumberFormatSymbols_byn_ER', 'goog.i18n.NumberFormatSymbols_cgg', 'goog.i18n.NumberFormatSymbols_cgg_UG', 'goog.i18n.NumberFormatSymbols_ckb', 'goog.i18n.NumberFormatSymbols_ckb_Arab', 'goog.i18n.NumberFormatSymbols_ckb_Arab_IQ', 'goog.i18n.NumberFormatSymbols_ckb_Arab_IR', 'goog.i18n.NumberFormatSymbols_ckb_IQ', 'goog.i18n.NumberFormatSymbols_ckb_IR', 'goog.i18n.NumberFormatSymbols_ckb_Latn', 'goog.i18n.NumberFormatSymbols_ckb_Latn_IQ', 'goog.i18n.NumberFormatSymbols_dav', 'goog.i18n.NumberFormatSymbols_dav_KE', 'goog.i18n.NumberFormatSymbols_de_LI', 'goog.i18n.NumberFormatSymbols_dje', 'goog.i18n.NumberFormatSymbols_dje_NE', 'goog.i18n.NumberFormatSymbols_dua', 'goog.i18n.NumberFormatSymbols_dua_CM', 'goog.i18n.NumberFormatSymbols_dyo', 'goog.i18n.NumberFormatSymbols_dyo_SN', 'goog.i18n.NumberFormatSymbols_dz', 'goog.i18n.NumberFormatSymbols_dz_BT', 'goog.i18n.NumberFormatSymbols_ebu', 'goog.i18n.NumberFormatSymbols_ebu_KE', 'goog.i18n.NumberFormatSymbols_ee', 'goog.i18n.NumberFormatSymbols_ee_GH', 'goog.i18n.NumberFormatSymbols_ee_TG', 'goog.i18n.NumberFormatSymbols_el_CY', 'goog.i18n.NumberFormatSymbols_en_150', 'goog.i18n.NumberFormatSymbols_en_AG', 'goog.i18n.NumberFormatSymbols_en_BB', 'goog.i18n.NumberFormatSymbols_en_BE', 'goog.i18n.NumberFormatSymbols_en_BM', 'goog.i18n.NumberFormatSymbols_en_BS', 'goog.i18n.NumberFormatSymbols_en_BW', 'goog.i18n.NumberFormatSymbols_en_BZ', 'goog.i18n.NumberFormatSymbols_en_CA', 'goog.i18n.NumberFormatSymbols_en_CM', 'goog.i18n.NumberFormatSymbols_en_DM', 'goog.i18n.NumberFormatSymbols_en_Dsrt', 'goog.i18n.NumberFormatSymbols_en_FJ', 'goog.i18n.NumberFormatSymbols_en_GD', 'goog.i18n.NumberFormatSymbols_en_GG', 'goog.i18n.NumberFormatSymbols_en_GH', 'goog.i18n.NumberFormatSymbols_en_GI', 'goog.i18n.NumberFormatSymbols_en_GM', 'goog.i18n.NumberFormatSymbols_en_GY', 'goog.i18n.NumberFormatSymbols_en_HK', 'goog.i18n.NumberFormatSymbols_en_IM', 'goog.i18n.NumberFormatSymbols_en_JE', 'goog.i18n.NumberFormatSymbols_en_JM', 'goog.i18n.NumberFormatSymbols_en_KE', 'goog.i18n.NumberFormatSymbols_en_KI', 'goog.i18n.NumberFormatSymbols_en_KN', 'goog.i18n.NumberFormatSymbols_en_KY', 'goog.i18n.NumberFormatSymbols_en_LC', 'goog.i18n.NumberFormatSymbols_en_LR', 'goog.i18n.NumberFormatSymbols_en_LS', 'goog.i18n.NumberFormatSymbols_en_MG', 'goog.i18n.NumberFormatSymbols_en_MT', 'goog.i18n.NumberFormatSymbols_en_MU', 'goog.i18n.NumberFormatSymbols_en_MW', 'goog.i18n.NumberFormatSymbols_en_NA', 'goog.i18n.NumberFormatSymbols_en_NG', 'goog.i18n.NumberFormatSymbols_en_NZ', 'goog.i18n.NumberFormatSymbols_en_PG', 'goog.i18n.NumberFormatSymbols_en_PH', 'goog.i18n.NumberFormatSymbols_en_PK', 'goog.i18n.NumberFormatSymbols_en_SB', 'goog.i18n.NumberFormatSymbols_en_SC', 'goog.i18n.NumberFormatSymbols_en_SL', 'goog.i18n.NumberFormatSymbols_en_SS', 'goog.i18n.NumberFormatSymbols_en_SZ', 'goog.i18n.NumberFormatSymbols_en_TO', 'goog.i18n.NumberFormatSymbols_en_TT', 'goog.i18n.NumberFormatSymbols_en_TZ', 'goog.i18n.NumberFormatSymbols_en_UG', 'goog.i18n.NumberFormatSymbols_en_VC', 'goog.i18n.NumberFormatSymbols_en_VU', 'goog.i18n.NumberFormatSymbols_en_WS', 'goog.i18n.NumberFormatSymbols_en_ZM', 'goog.i18n.NumberFormatSymbols_en_ZW', 'goog.i18n.NumberFormatSymbols_eo', 'goog.i18n.NumberFormatSymbols_es_AR', 'goog.i18n.NumberFormatSymbols_es_BO', 'goog.i18n.NumberFormatSymbols_es_CL', 'goog.i18n.NumberFormatSymbols_es_CO', 'goog.i18n.NumberFormatSymbols_es_CR', 'goog.i18n.NumberFormatSymbols_es_CU', 'goog.i18n.NumberFormatSymbols_es_DO', 'goog.i18n.NumberFormatSymbols_es_EC', 'goog.i18n.NumberFormatSymbols_es_GQ', 'goog.i18n.NumberFormatSymbols_es_GT', 'goog.i18n.NumberFormatSymbols_es_HN', 'goog.i18n.NumberFormatSymbols_es_MX', 'goog.i18n.NumberFormatSymbols_es_NI', 'goog.i18n.NumberFormatSymbols_es_PA', 'goog.i18n.NumberFormatSymbols_es_PE', 'goog.i18n.NumberFormatSymbols_es_PH', 'goog.i18n.NumberFormatSymbols_es_PR', 'goog.i18n.NumberFormatSymbols_es_PY', 'goog.i18n.NumberFormatSymbols_es_SV', 'goog.i18n.NumberFormatSymbols_es_US', 'goog.i18n.NumberFormatSymbols_es_UY', 'goog.i18n.NumberFormatSymbols_es_VE', 'goog.i18n.NumberFormatSymbols_ewo', 'goog.i18n.NumberFormatSymbols_ewo_CM', 'goog.i18n.NumberFormatSymbols_fa_AF', 'goog.i18n.NumberFormatSymbols_ff', 'goog.i18n.NumberFormatSymbols_ff_SN', 'goog.i18n.NumberFormatSymbols_fo', 'goog.i18n.NumberFormatSymbols_fo_FO', 'goog.i18n.NumberFormatSymbols_fr_BE', 'goog.i18n.NumberFormatSymbols_fr_BF', 'goog.i18n.NumberFormatSymbols_fr_BI', 'goog.i18n.NumberFormatSymbols_fr_BJ', 'goog.i18n.NumberFormatSymbols_fr_CD', 'goog.i18n.NumberFormatSymbols_fr_CF', 'goog.i18n.NumberFormatSymbols_fr_CG', 'goog.i18n.NumberFormatSymbols_fr_CH', 'goog.i18n.NumberFormatSymbols_fr_CI', 'goog.i18n.NumberFormatSymbols_fr_CM', 'goog.i18n.NumberFormatSymbols_fr_DJ', 'goog.i18n.NumberFormatSymbols_fr_DZ', 'goog.i18n.NumberFormatSymbols_fr_GA', 'goog.i18n.NumberFormatSymbols_fr_GN', 'goog.i18n.NumberFormatSymbols_fr_GQ', 'goog.i18n.NumberFormatSymbols_fr_HT', 'goog.i18n.NumberFormatSymbols_fr_KM', 'goog.i18n.NumberFormatSymbols_fr_LU', 'goog.i18n.NumberFormatSymbols_fr_MA', 'goog.i18n.NumberFormatSymbols_fr_MG', 'goog.i18n.NumberFormatSymbols_fr_ML', 'goog.i18n.NumberFormatSymbols_fr_MR', 'goog.i18n.NumberFormatSymbols_fr_MU', 'goog.i18n.NumberFormatSymbols_fr_NC', 'goog.i18n.NumberFormatSymbols_fr_NE', 'goog.i18n.NumberFormatSymbols_fr_PF', 'goog.i18n.NumberFormatSymbols_fr_RW', 'goog.i18n.NumberFormatSymbols_fr_SC', 'goog.i18n.NumberFormatSymbols_fr_SN', 'goog.i18n.NumberFormatSymbols_fr_SY', 'goog.i18n.NumberFormatSymbols_fr_TD', 'goog.i18n.NumberFormatSymbols_fr_TG', 'goog.i18n.NumberFormatSymbols_fr_TN', 'goog.i18n.NumberFormatSymbols_fr_VU', 'goog.i18n.NumberFormatSymbols_fur', 'goog.i18n.NumberFormatSymbols_fur_IT', 'goog.i18n.NumberFormatSymbols_ga', 'goog.i18n.NumberFormatSymbols_ga_IE', 'goog.i18n.NumberFormatSymbols_gd', 'goog.i18n.NumberFormatSymbols_gd_GB', 'goog.i18n.NumberFormatSymbols_guz', 'goog.i18n.NumberFormatSymbols_guz_KE', 'goog.i18n.NumberFormatSymbols_gv', 'goog.i18n.NumberFormatSymbols_gv_GB', 'goog.i18n.NumberFormatSymbols_ha', 'goog.i18n.NumberFormatSymbols_ha_Latn', 'goog.i18n.NumberFormatSymbols_ha_Latn_GH', 'goog.i18n.NumberFormatSymbols_ha_Latn_NE', 'goog.i18n.NumberFormatSymbols_ha_Latn_NG', 'goog.i18n.NumberFormatSymbols_hr_BA', 'goog.i18n.NumberFormatSymbols_hy', 'goog.i18n.NumberFormatSymbols_hy_AM', 'goog.i18n.NumberFormatSymbols_ia', 'goog.i18n.NumberFormatSymbols_ia_FR', 'goog.i18n.NumberFormatSymbols_ig', 'goog.i18n.NumberFormatSymbols_ig_NG', 'goog.i18n.NumberFormatSymbols_ii', 'goog.i18n.NumberFormatSymbols_ii_CN', 'goog.i18n.NumberFormatSymbols_it_CH', 'goog.i18n.NumberFormatSymbols_jgo', 'goog.i18n.NumberFormatSymbols_jgo_CM', 'goog.i18n.NumberFormatSymbols_jmc', 'goog.i18n.NumberFormatSymbols_jmc_TZ', 'goog.i18n.NumberFormatSymbols_ka', 'goog.i18n.NumberFormatSymbols_ka_GE', 'goog.i18n.NumberFormatSymbols_kab', 'goog.i18n.NumberFormatSymbols_kab_DZ', 'goog.i18n.NumberFormatSymbols_kam', 'goog.i18n.NumberFormatSymbols_kam_KE', 'goog.i18n.NumberFormatSymbols_kde', 'goog.i18n.NumberFormatSymbols_kde_TZ', 'goog.i18n.NumberFormatSymbols_kea', 'goog.i18n.NumberFormatSymbols_kea_CV', 'goog.i18n.NumberFormatSymbols_khq', 'goog.i18n.NumberFormatSymbols_khq_ML', 'goog.i18n.NumberFormatSymbols_ki', 'goog.i18n.NumberFormatSymbols_ki_KE', 'goog.i18n.NumberFormatSymbols_kk', 'goog.i18n.NumberFormatSymbols_kk_Cyrl', 'goog.i18n.NumberFormatSymbols_kk_Cyrl_KZ', 'goog.i18n.NumberFormatSymbols_kkj', 'goog.i18n.NumberFormatSymbols_kkj_CM', 'goog.i18n.NumberFormatSymbols_kl', 'goog.i18n.NumberFormatSymbols_kl_GL', 'goog.i18n.NumberFormatSymbols_kln', 'goog.i18n.NumberFormatSymbols_kln_KE', 'goog.i18n.NumberFormatSymbols_km', 'goog.i18n.NumberFormatSymbols_km_KH', 'goog.i18n.NumberFormatSymbols_ko_KP', 'goog.i18n.NumberFormatSymbols_kok', 'goog.i18n.NumberFormatSymbols_kok_IN', 'goog.i18n.NumberFormatSymbols_ks', 'goog.i18n.NumberFormatSymbols_ks_Arab', 'goog.i18n.NumberFormatSymbols_ks_Arab_IN', 'goog.i18n.NumberFormatSymbols_ksb', 'goog.i18n.NumberFormatSymbols_ksb_TZ', 'goog.i18n.NumberFormatSymbols_ksf', 'goog.i18n.NumberFormatSymbols_ksf_CM', 'goog.i18n.NumberFormatSymbols_ksh', 'goog.i18n.NumberFormatSymbols_ksh_DE', 'goog.i18n.NumberFormatSymbols_kw', 'goog.i18n.NumberFormatSymbols_kw_GB', 'goog.i18n.NumberFormatSymbols_ky', 'goog.i18n.NumberFormatSymbols_ky_KG', 'goog.i18n.NumberFormatSymbols_lag', 'goog.i18n.NumberFormatSymbols_lag_TZ', 'goog.i18n.NumberFormatSymbols_lg', 'goog.i18n.NumberFormatSymbols_lg_UG', 'goog.i18n.NumberFormatSymbols_ln_AO', 'goog.i18n.NumberFormatSymbols_ln_CF', 'goog.i18n.NumberFormatSymbols_ln_CG', 'goog.i18n.NumberFormatSymbols_lo', 'goog.i18n.NumberFormatSymbols_lo_LA', 'goog.i18n.NumberFormatSymbols_lu', 'goog.i18n.NumberFormatSymbols_lu_CD', 'goog.i18n.NumberFormatSymbols_luo', 'goog.i18n.NumberFormatSymbols_luo_KE', 'goog.i18n.NumberFormatSymbols_luy', 'goog.i18n.NumberFormatSymbols_luy_KE', 'goog.i18n.NumberFormatSymbols_mas', 'goog.i18n.NumberFormatSymbols_mas_KE', 'goog.i18n.NumberFormatSymbols_mas_TZ', 'goog.i18n.NumberFormatSymbols_mer', 'goog.i18n.NumberFormatSymbols_mer_KE', 'goog.i18n.NumberFormatSymbols_mfe', 'goog.i18n.NumberFormatSymbols_mfe_MU', 'goog.i18n.NumberFormatSymbols_mg', 'goog.i18n.NumberFormatSymbols_mg_MG', 'goog.i18n.NumberFormatSymbols_mgh', 'goog.i18n.NumberFormatSymbols_mgh_MZ', 'goog.i18n.NumberFormatSymbols_mgo', 'goog.i18n.NumberFormatSymbols_mgo_CM', 'goog.i18n.NumberFormatSymbols_mk', 'goog.i18n.NumberFormatSymbols_mk_MK', 'goog.i18n.NumberFormatSymbols_mn', 'goog.i18n.NumberFormatSymbols_mn_Cyrl', 'goog.i18n.NumberFormatSymbols_mn_Cyrl_MN', 'goog.i18n.NumberFormatSymbols_ms_Latn', 'goog.i18n.NumberFormatSymbols_ms_Latn_BN', 'goog.i18n.NumberFormatSymbols_ms_Latn_SG', 'goog.i18n.NumberFormatSymbols_mua', 'goog.i18n.NumberFormatSymbols_mua_CM', 'goog.i18n.NumberFormatSymbols_my', 'goog.i18n.NumberFormatSymbols_my_MM', 'goog.i18n.NumberFormatSymbols_naq', 'goog.i18n.NumberFormatSymbols_naq_NA', 'goog.i18n.NumberFormatSymbols_nd', 'goog.i18n.NumberFormatSymbols_nd_ZW', 'goog.i18n.NumberFormatSymbols_ne', 'goog.i18n.NumberFormatSymbols_ne_IN', 'goog.i18n.NumberFormatSymbols_ne_NP', 'goog.i18n.NumberFormatSymbols_nl_AW', 'goog.i18n.NumberFormatSymbols_nl_BE', 'goog.i18n.NumberFormatSymbols_nl_CW', 'goog.i18n.NumberFormatSymbols_nl_SR', 'goog.i18n.NumberFormatSymbols_nl_SX', 'goog.i18n.NumberFormatSymbols_nmg', 'goog.i18n.NumberFormatSymbols_nmg_CM', 'goog.i18n.NumberFormatSymbols_nn', 'goog.i18n.NumberFormatSymbols_nn_NO', 'goog.i18n.NumberFormatSymbols_nnh', 'goog.i18n.NumberFormatSymbols_nnh_CM', 'goog.i18n.NumberFormatSymbols_nr', 'goog.i18n.NumberFormatSymbols_nr_ZA', 'goog.i18n.NumberFormatSymbols_nso', 'goog.i18n.NumberFormatSymbols_nso_ZA', 'goog.i18n.NumberFormatSymbols_nus', 'goog.i18n.NumberFormatSymbols_nus_SD', 'goog.i18n.NumberFormatSymbols_nyn', 'goog.i18n.NumberFormatSymbols_nyn_UG', 'goog.i18n.NumberFormatSymbols_om', 'goog.i18n.NumberFormatSymbols_om_ET', 'goog.i18n.NumberFormatSymbols_om_KE', 'goog.i18n.NumberFormatSymbols_os', 'goog.i18n.NumberFormatSymbols_os_GE', 'goog.i18n.NumberFormatSymbols_os_RU', 'goog.i18n.NumberFormatSymbols_pa', 'goog.i18n.NumberFormatSymbols_pa_Arab', 'goog.i18n.NumberFormatSymbols_pa_Arab_PK', 'goog.i18n.NumberFormatSymbols_pa_Guru', 'goog.i18n.NumberFormatSymbols_pa_Guru_IN', 'goog.i18n.NumberFormatSymbols_ps', 'goog.i18n.NumberFormatSymbols_ps_AF', 'goog.i18n.NumberFormatSymbols_pt_AO', 'goog.i18n.NumberFormatSymbols_pt_CV', 'goog.i18n.NumberFormatSymbols_pt_GW', 'goog.i18n.NumberFormatSymbols_pt_MO', 'goog.i18n.NumberFormatSymbols_pt_MZ', 'goog.i18n.NumberFormatSymbols_pt_ST', 'goog.i18n.NumberFormatSymbols_pt_TL', 'goog.i18n.NumberFormatSymbols_rm', 'goog.i18n.NumberFormatSymbols_rm_CH', 'goog.i18n.NumberFormatSymbols_rn', 'goog.i18n.NumberFormatSymbols_rn_BI', 'goog.i18n.NumberFormatSymbols_ro_MD', 'goog.i18n.NumberFormatSymbols_rof', 'goog.i18n.NumberFormatSymbols_rof_TZ', 'goog.i18n.NumberFormatSymbols_ru_BY', 'goog.i18n.NumberFormatSymbols_ru_KG', 'goog.i18n.NumberFormatSymbols_ru_KZ', 'goog.i18n.NumberFormatSymbols_ru_MD', 'goog.i18n.NumberFormatSymbols_ru_UA', 'goog.i18n.NumberFormatSymbols_rw', 'goog.i18n.NumberFormatSymbols_rw_RW', 'goog.i18n.NumberFormatSymbols_rwk', 'goog.i18n.NumberFormatSymbols_rwk_TZ', 'goog.i18n.NumberFormatSymbols_sah', 'goog.i18n.NumberFormatSymbols_sah_RU', 'goog.i18n.NumberFormatSymbols_saq', 'goog.i18n.NumberFormatSymbols_saq_KE', 'goog.i18n.NumberFormatSymbols_sbp', 'goog.i18n.NumberFormatSymbols_sbp_TZ', 'goog.i18n.NumberFormatSymbols_se', 'goog.i18n.NumberFormatSymbols_se_FI', 'goog.i18n.NumberFormatSymbols_se_NO', 'goog.i18n.NumberFormatSymbols_seh', 'goog.i18n.NumberFormatSymbols_seh_MZ', 'goog.i18n.NumberFormatSymbols_ses', 'goog.i18n.NumberFormatSymbols_ses_ML', 'goog.i18n.NumberFormatSymbols_sg', 'goog.i18n.NumberFormatSymbols_sg_CF', 'goog.i18n.NumberFormatSymbols_shi', 'goog.i18n.NumberFormatSymbols_shi_Latn', 'goog.i18n.NumberFormatSymbols_shi_Latn_MA', 'goog.i18n.NumberFormatSymbols_shi_Tfng', 'goog.i18n.NumberFormatSymbols_shi_Tfng_MA', 'goog.i18n.NumberFormatSymbols_si', 'goog.i18n.NumberFormatSymbols_si_LK', 'goog.i18n.NumberFormatSymbols_sn', 'goog.i18n.NumberFormatSymbols_sn_ZW', 'goog.i18n.NumberFormatSymbols_so', 'goog.i18n.NumberFormatSymbols_so_DJ', 'goog.i18n.NumberFormatSymbols_so_ET', 'goog.i18n.NumberFormatSymbols_so_KE', 'goog.i18n.NumberFormatSymbols_so_SO', 'goog.i18n.NumberFormatSymbols_sq_MK', 'goog.i18n.NumberFormatSymbols_sq_XK', 'goog.i18n.NumberFormatSymbols_sr_Cyrl', 'goog.i18n.NumberFormatSymbols_sr_Cyrl_BA', 'goog.i18n.NumberFormatSymbols_sr_Cyrl_ME', 'goog.i18n.NumberFormatSymbols_sr_Cyrl_XK', 'goog.i18n.NumberFormatSymbols_sr_Latn', 'goog.i18n.NumberFormatSymbols_sr_Latn_BA', 'goog.i18n.NumberFormatSymbols_sr_Latn_ME', 'goog.i18n.NumberFormatSymbols_sr_Latn_RS', 'goog.i18n.NumberFormatSymbols_sr_Latn_XK', 'goog.i18n.NumberFormatSymbols_ss', 'goog.i18n.NumberFormatSymbols_ss_SZ', 'goog.i18n.NumberFormatSymbols_ss_ZA', 'goog.i18n.NumberFormatSymbols_ssy', 'goog.i18n.NumberFormatSymbols_ssy_ER', 'goog.i18n.NumberFormatSymbols_st', 'goog.i18n.NumberFormatSymbols_st_LS', 'goog.i18n.NumberFormatSymbols_st_ZA', 'goog.i18n.NumberFormatSymbols_sv_AX', 'goog.i18n.NumberFormatSymbols_sv_FI', 'goog.i18n.NumberFormatSymbols_sw_KE', 'goog.i18n.NumberFormatSymbols_sw_UG', 'goog.i18n.NumberFormatSymbols_swc', 'goog.i18n.NumberFormatSymbols_swc_CD', 'goog.i18n.NumberFormatSymbols_ta_LK', 'goog.i18n.NumberFormatSymbols_ta_MY', 'goog.i18n.NumberFormatSymbols_ta_SG', 'goog.i18n.NumberFormatSymbols_teo', 'goog.i18n.NumberFormatSymbols_teo_KE', 'goog.i18n.NumberFormatSymbols_teo_UG', 'goog.i18n.NumberFormatSymbols_tg', 'goog.i18n.NumberFormatSymbols_tg_Cyrl', 'goog.i18n.NumberFormatSymbols_tg_Cyrl_TJ', 'goog.i18n.NumberFormatSymbols_ti', 'goog.i18n.NumberFormatSymbols_ti_ER', 'goog.i18n.NumberFormatSymbols_ti_ET', 'goog.i18n.NumberFormatSymbols_tig', 'goog.i18n.NumberFormatSymbols_tig_ER', 'goog.i18n.NumberFormatSymbols_tn', 'goog.i18n.NumberFormatSymbols_tn_BW', 'goog.i18n.NumberFormatSymbols_tn_ZA', 'goog.i18n.NumberFormatSymbols_to', 'goog.i18n.NumberFormatSymbols_to_TO', 'goog.i18n.NumberFormatSymbols_tr_CY', 'goog.i18n.NumberFormatSymbols_ts', 'goog.i18n.NumberFormatSymbols_ts_ZA', 'goog.i18n.NumberFormatSymbols_twq', 'goog.i18n.NumberFormatSymbols_twq_NE', 'goog.i18n.NumberFormatSymbols_tzm', 'goog.i18n.NumberFormatSymbols_tzm_Latn', 'goog.i18n.NumberFormatSymbols_tzm_Latn_MA', 'goog.i18n.NumberFormatSymbols_ur_IN', 'goog.i18n.NumberFormatSymbols_uz', 'goog.i18n.NumberFormatSymbols_uz_Arab', 'goog.i18n.NumberFormatSymbols_uz_Arab_AF', 'goog.i18n.NumberFormatSymbols_uz_Cyrl', 'goog.i18n.NumberFormatSymbols_uz_Cyrl_UZ', 'goog.i18n.NumberFormatSymbols_uz_Latn', 'goog.i18n.NumberFormatSymbols_uz_Latn_UZ', 'goog.i18n.NumberFormatSymbols_vai', 'goog.i18n.NumberFormatSymbols_vai_Latn', 'goog.i18n.NumberFormatSymbols_vai_Latn_LR', 'goog.i18n.NumberFormatSymbols_vai_Vaii', 'goog.i18n.NumberFormatSymbols_vai_Vaii_LR', 'goog.i18n.NumberFormatSymbols_ve', 'goog.i18n.NumberFormatSymbols_ve_ZA', 'goog.i18n.NumberFormatSymbols_vo', 'goog.i18n.NumberFormatSymbols_vun', 'goog.i18n.NumberFormatSymbols_vun_TZ', 'goog.i18n.NumberFormatSymbols_wae', 'goog.i18n.NumberFormatSymbols_wae_CH', 'goog.i18n.NumberFormatSymbols_wal', 'goog.i18n.NumberFormatSymbols_wal_ET', 'goog.i18n.NumberFormatSymbols_xh', 'goog.i18n.NumberFormatSymbols_xh_ZA', 'goog.i18n.NumberFormatSymbols_xog', 'goog.i18n.NumberFormatSymbols_xog_UG', 'goog.i18n.NumberFormatSymbols_yav', 'goog.i18n.NumberFormatSymbols_yav_CM', 'goog.i18n.NumberFormatSymbols_yo', 'goog.i18n.NumberFormatSymbols_yo_NG', 'goog.i18n.NumberFormatSymbols_zh_Hans', 'goog.i18n.NumberFormatSymbols_zh_Hans_HK', 'goog.i18n.NumberFormatSymbols_zh_Hans_MO', 'goog.i18n.NumberFormatSymbols_zh_Hans_SG', 'goog.i18n.NumberFormatSymbols_zh_Hant', 'goog.i18n.NumberFormatSymbols_zh_Hant_HK', 'goog.i18n.NumberFormatSymbols_zh_Hant_MO', 'goog.i18n.NumberFormatSymbols_zh_Hant_TW'], ['goog.i18n.NumberFormatSymbols']); +goog.addDependency('i18n/ordinalrules.js', ['goog.i18n.ordinalRules'], []); +goog.addDependency('i18n/pluralrules.js', ['goog.i18n.pluralRules'], []); +goog.addDependency('i18n/timezone.js', ['goog.i18n.TimeZone'], ['goog.array', 'goog.date.DateLike', 'goog.string']); +goog.addDependency('i18n/uchar.js', ['goog.i18n.uChar'], []); +goog.addDependency('i18n/uchar/localnamefetcher.js', ['goog.i18n.uChar.LocalNameFetcher'], ['goog.i18n.uChar', 'goog.i18n.uChar.NameFetcher', 'goog.log']); +goog.addDependency('i18n/uchar/namefetcher.js', ['goog.i18n.uChar.NameFetcher'], []); +goog.addDependency('i18n/uchar/remotenamefetcher.js', ['goog.i18n.uChar.RemoteNameFetcher'], ['goog.Disposable', 'goog.Uri', 'goog.i18n.uChar', 'goog.i18n.uChar.NameFetcher', 'goog.log', 'goog.net.XhrIo', 'goog.structs.Map']); +goog.addDependency('iter/iter.js', ['goog.iter', 'goog.iter.Iterator', 'goog.iter.StopIteration'], ['goog.array', 'goog.asserts']); +goog.addDependency('json/evaljsonprocessor.js', ['goog.json.EvalJsonProcessor'], ['goog.json', 'goog.json.Processor', 'goog.json.Serializer']); +goog.addDependency('json/json.js', ['goog.json', 'goog.json.Serializer'], []); +goog.addDependency('json/nativejsonprocessor.js', ['goog.json.NativeJsonProcessor'], ['goog.asserts', 'goog.json', 'goog.json.Processor']); +goog.addDependency('json/processor.js', ['goog.json.Processor'], ['goog.string.Parser', 'goog.string.Stringifier']); +goog.addDependency('labs/classdef/classdef.js', ['goog.labs.classdef'], []); +goog.addDependency('labs/events/touch.js', ['goog.labs.events.touch', 'goog.labs.events.touch.TouchData'], ['goog.array', 'goog.asserts', 'goog.events.EventType', 'goog.string']); +goog.addDependency('labs/events/touch_test.js', ['goog.labs.events.touchTest'], ['goog.labs.events.touch', 'goog.testing.jsunit']); +goog.addDependency('labs/format/csv.js', ['goog.labs.format.csv', 'goog.labs.format.csv.ParseError', 'goog.labs.format.csv.Token'], ['goog.array', 'goog.asserts', 'goog.debug.Error', 'goog.object', 'goog.string', 'goog.string.newlines']); +goog.addDependency('labs/format/csv_test.js', ['goog.labs.format.csvTest'], ['goog.labs.format.csv', 'goog.labs.format.csv.ParseError', 'goog.object', 'goog.testing.asserts', 'goog.testing.jsunit']); +goog.addDependency('labs/mock/mock.js', ['goog.labs.mock'], ['goog.array', 'goog.debug', 'goog.debug.Error', 'goog.functions', 'goog.json']); +goog.addDependency('labs/net/image.js', ['goog.labs.net.image'], ['goog.events.EventHandler', 'goog.events.EventType', 'goog.net.EventType', 'goog.result.SimpleResult', 'goog.userAgent']); +goog.addDependency('labs/net/image_test.js', ['goog.labs.net.imageTest'], ['goog.events', 'goog.labs.net.image', 'goog.result', 'goog.result.Result', 'goog.string', 'goog.testing.AsyncTestCase', 'goog.testing.jsunit', 'goog.testing.recordFunction']); +goog.addDependency('labs/net/webchannel.js', ['goog.net.WebChannel'], ['goog.events', 'goog.events.Event']); +goog.addDependency('labs/net/webchannel/basetestchannel.js', ['goog.labs.net.webChannel.BaseTestChannel'], ['goog.json.EvalJsonProcessor', 'goog.labs.net.webChannel.Channel', 'goog.labs.net.webChannel.WebChannelRequest', 'goog.labs.net.webChannel.requestStats', 'goog.labs.net.webChannel.requestStats.ServerReachability', 'goog.labs.net.webChannel.requestStats.Stat', 'goog.net.tmpnetwork']); +goog.addDependency('labs/net/webchannel/channel.js', ['goog.labs.net.webChannel.Channel'], []); +goog.addDependency('labs/net/webchannel/requeststats.js', ['goog.labs.net.webChannel.requestStats', 'goog.labs.net.webChannel.requestStats.Event', 'goog.labs.net.webChannel.requestStats.ServerReachability', 'goog.labs.net.webChannel.requestStats.ServerReachabilityEvent', 'goog.labs.net.webChannel.requestStats.Stat', 'goog.labs.net.webChannel.requestStats.StatEvent', 'goog.labs.net.webChannel.requestStats.TimingEvent'], ['goog.events.Event', 'goog.events.EventTarget']); +goog.addDependency('labs/net/webchannel/webchannelbase.js', ['goog.labs.net.webChannel.WebChannelBase'], ['goog.Uri', 'goog.array', 'goog.asserts', 'goog.debug.TextFormatter', 'goog.json', 'goog.json.EvalJsonProcessor', 'goog.labs.net.webChannel.BaseTestChannel', 'goog.labs.net.webChannel.Channel', 'goog.labs.net.webChannel.WebChannelDebug', 'goog.labs.net.webChannel.WebChannelRequest', 'goog.labs.net.webChannel.requestStats', 'goog.labs.net.webChannel.requestStats.Stat', 'goog.log', 'goog.net.XhrIo', 'goog.net.tmpnetwork', 'goog.string', 'goog.structs', 'goog.structs.CircularBuffer']); +goog.addDependency('labs/net/webchannel/webchannelbase_test.js', ['goog.labs.net.webChannel.webChannelBaseTest'], ['goog.Timer', 'goog.array', 'goog.dom', 'goog.functions', 'goog.json', 'goog.labs.net.webChannel.WebChannelBase', 'goog.labs.net.webChannel.WebChannelDebug', 'goog.labs.net.webChannel.WebChannelRequest', 'goog.labs.net.webChannel.requestStats', 'goog.labs.net.webChannel.requestStats.Stat', 'goog.net.tmpnetwork', 'goog.structs.Map', 'goog.testing.MockClock', 'goog.testing.PropertyReplacer', 'goog.testing.asserts', 'goog.testing.jsunit', 'goog.testing.recordFunction']); +goog.addDependency('labs/net/webchannel/webchannelbasetransport.js', ['goog.labs.net.webChannel.WebChannelBaseTransport'], ['goog.asserts', 'goog.events.EventTarget', 'goog.labs.net.webChannel.WebChannelBase', 'goog.log', 'goog.net.WebChannel', 'goog.net.WebChannelTransport', 'goog.string.path']); +goog.addDependency('labs/net/webchannel/webchanneldebug.js', ['goog.labs.net.webChannel.WebChannelDebug'], ['goog.json', 'goog.log']); +goog.addDependency('labs/net/webchannel/webchannelrequest.js', ['goog.labs.net.webChannel.WebChannelRequest'], ['goog.Timer', 'goog.async.Throttle', 'goog.events.EventHandler', 'goog.labs.net.webChannel.requestStats', 'goog.labs.net.webChannel.requestStats.ServerReachability', 'goog.labs.net.webChannel.requestStats.Stat', 'goog.net.ErrorCode', 'goog.net.EventType', 'goog.net.XmlHttp', 'goog.object', 'goog.userAgent']); +goog.addDependency('labs/net/webchanneltransport.js', ['goog.net.WebChannelTransport'], []); +goog.addDependency('labs/net/webchanneltransportfactory.js', ['goog.net.createWebChannelTransport'], ['goog.functions', 'goog.labs.net.webChannel.WebChannelBaseTransport']); +goog.addDependency('labs/net/xhr.js', ['goog.labs.net.xhr', 'goog.labs.net.xhr.Error', 'goog.labs.net.xhr.HttpError', 'goog.labs.net.xhr.TimeoutError'], ['goog.debug.Error', 'goog.json', 'goog.net.HttpStatus', 'goog.net.XmlHttp', 'goog.result', 'goog.result.SimpleResult', 'goog.string', 'goog.uri.utils']); +goog.addDependency('labs/object/object.js', ['goog.labs.object'], []); +goog.addDependency('labs/observe/notice.js', ['goog.labs.observe.Notice'], []); +goog.addDependency('labs/observe/observable.js', ['goog.labs.observe.Observable'], ['goog.disposable.IDisposable']); +goog.addDependency('labs/observe/observableset.js', ['goog.labs.observe.ObservableSet'], ['goog.array', 'goog.labs.observe.Observer']); +goog.addDependency('labs/observe/observationset.js', ['goog.labs.observe.ObservationSet'], ['goog.array', 'goog.labs.observe.Observer']); +goog.addDependency('labs/observe/observer.js', ['goog.labs.observe.Observer'], []); +goog.addDependency('labs/observe/simpleobservable.js', ['goog.labs.observe.SimpleObservable'], ['goog.Disposable', 'goog.array', 'goog.asserts', 'goog.labs.observe.Notice', 'goog.labs.observe.Observable', 'goog.labs.observe.Observer', 'goog.object']); +goog.addDependency('labs/structs/map.js', ['goog.labs.structs.Map'], ['goog.array', 'goog.asserts', 'goog.labs.object', 'goog.object']); +goog.addDependency('labs/structs/map_perf.js', ['goog.labs.structs.mapPerf'], ['goog.dom', 'goog.labs.structs.Map', 'goog.structs.Map', 'goog.testing.PerformanceTable', 'goog.testing.jsunit']); +goog.addDependency('labs/structs/multimap.js', ['goog.labs.structs.Multimap'], ['goog.array', 'goog.labs.object', 'goog.labs.structs.Map']); +goog.addDependency('labs/style/pixeldensitymonitor.js', ['goog.labs.style.PixelDensityMonitor', 'goog.labs.style.PixelDensityMonitor.Density', 'goog.labs.style.PixelDensityMonitor.EventType'], ['goog.events', 'goog.events.EventTarget']); +goog.addDependency('labs/style/pixeldensitymonitor_test.js', ['goog.labs.style.PixelDensityMonitorTest'], ['goog.array', 'goog.dom.DomHelper', 'goog.events', 'goog.labs.style.PixelDensityMonitor', 'goog.testing.MockControl', 'goog.testing.jsunit', 'goog.testing.recordFunction']); +goog.addDependency('labs/testing/assertthat.js', ['goog.labs.testing.MatcherError', 'goog.labs.testing.assertThat'], ['goog.asserts', 'goog.debug.Error', 'goog.labs.testing.Matcher']); +goog.addDependency('labs/testing/decoratormatcher.js', ['goog.labs.testing.AnythingMatcher'], ['goog.labs.testing.Matcher']); +goog.addDependency('labs/testing/dictionarymatcher.js', ['goog.labs.testing.HasEntriesMatcher', 'goog.labs.testing.HasEntryMatcher', 'goog.labs.testing.HasKeyMatcher', 'goog.labs.testing.HasValueMatcher'], ['goog.array', 'goog.asserts', 'goog.labs.testing.Matcher', 'goog.string']); +goog.addDependency('labs/testing/logicmatcher.js', ['goog.labs.testing.AllOfMatcher', 'goog.labs.testing.AnyOfMatcher', 'goog.labs.testing.IsNotMatcher'], ['goog.array', 'goog.labs.testing.Matcher']); +goog.addDependency('labs/testing/matcher.js', ['goog.labs.testing.Matcher'], []); +goog.addDependency('labs/testing/numbermatcher.js', ['goog.labs.testing.CloseToMatcher', 'goog.labs.testing.EqualToMatcher', 'goog.labs.testing.GreaterThanEqualToMatcher', 'goog.labs.testing.GreaterThanMatcher', 'goog.labs.testing.LessThanEqualToMatcher', 'goog.labs.testing.LessThanMatcher'], ['goog.asserts', 'goog.labs.testing.Matcher']); +goog.addDependency('labs/testing/objectmatcher.js', ['goog.labs.testing.HasPropertyMatcher', 'goog.labs.testing.InstanceOfMatcher', 'goog.labs.testing.IsNullMatcher', 'goog.labs.testing.IsNullOrUndefinedMatcher', 'goog.labs.testing.IsUndefinedMatcher', 'goog.labs.testing.ObjectEqualsMatcher'], ['goog.labs.testing.Matcher', 'goog.string']); +goog.addDependency('labs/testing/stringmatcher.js', ['goog.labs.testing.ContainsStringMatcher', 'goog.labs.testing.EndsWithMatcher', 'goog.labs.testing.EqualToIgnoringCaseMatcher', 'goog.labs.testing.EqualToIgnoringWhitespaceMatcher', 'goog.labs.testing.EqualsMatcher', 'goog.labs.testing.RegexMatcher', 'goog.labs.testing.StartsWithMatcher', 'goog.labs.testing.StringContainsInOrderMatcher'], ['goog.asserts', 'goog.labs.testing.Matcher', 'goog.string']); +goog.addDependency('labs/useragent/browser.js', ['goog.labs.userAgent.browser'], ['goog.asserts', 'goog.labs.userAgent.util', 'goog.memoize', 'goog.string']); +goog.addDependency('labs/useragent/browser_test.js', ['goog.labs.userAgent.browserTest'], ['goog.labs.userAgent.browser', 'goog.labs.userAgent.testAgents', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit']); +goog.addDependency('labs/useragent/device.js', ['goog.labs.userAgent.device'], ['goog.labs.userAgent.util']); +goog.addDependency('labs/useragent/device_test.js', ['goog.labs.userAgent.deviceTest'], ['goog.labs.userAgent.device', 'goog.labs.userAgent.testAgents', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit']); +goog.addDependency('labs/useragent/engine.js', ['goog.labs.userAgent.engine'], ['goog.array', 'goog.labs.userAgent.util', 'goog.memoize', 'goog.string']); +goog.addDependency('labs/useragent/engine_test.js', ['goog.labs.userAgent.engineTest'], ['goog.labs.userAgent.engine', 'goog.labs.userAgent.testAgents', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit']); +goog.addDependency('labs/useragent/platform.js', ['goog.labs.userAgent.platform'], ['goog.labs.userAgent.util', 'goog.memoize', 'goog.string']); +goog.addDependency('labs/useragent/platform_test.js', ['goog.labs.userAgent.platformTest'], ['goog.labs.userAgent.platform', 'goog.labs.userAgent.testAgents', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit']); +goog.addDependency('labs/useragent/test_agents.js', ['goog.labs.userAgent.testAgents'], []); +goog.addDependency('labs/useragent/util.js', ['goog.labs.userAgent.util'], ['goog.memoize', 'goog.string']); +goog.addDependency('labs/useragent/util_test.js', ['goog.labs.userAgent.utilTest'], ['goog.labs.userAgent.testAgents', 'goog.labs.userAgent.util', 'goog.testing.jsunit']); +goog.addDependency('locale/countries.js', ['goog.locale.countries'], []); +goog.addDependency('locale/defaultlocalenameconstants.js', ['goog.locale.defaultLocaleNameConstants'], []); +goog.addDependency('locale/genericfontnames.js', ['goog.locale.genericFontNames'], []); +goog.addDependency('locale/genericfontnamesdata.js', ['goog.locale.genericFontNamesData'], []); +goog.addDependency('locale/locale.js', ['goog.locale'], ['goog.locale.nativeNameConstants']); +goog.addDependency('locale/nativenameconstants.js', ['goog.locale.nativeNameConstants'], []); +goog.addDependency('locale/scriptToLanguages.js', ['goog.locale.scriptToLanguages'], ['goog.locale']); +goog.addDependency('locale/timezonedetection.js', ['goog.locale.timeZoneDetection'], ['goog.locale', 'goog.locale.TimeZoneFingerprint']); +goog.addDependency('locale/timezonefingerprint.js', ['goog.locale.TimeZoneFingerprint'], []); +goog.addDependency('locale/timezonelist.js', ['goog.locale.TimeZoneList'], ['goog.locale']); +goog.addDependency('log/log.js', ['goog.log', 'goog.log.Level', 'goog.log.LogRecord', 'goog.log.Logger'], ['goog.debug', 'goog.debug.LogRecord', 'goog.debug.Logger']); +goog.addDependency('log/log_test.js', ['goog.logTest'], ['goog.debug.LogManager', 'goog.log', 'goog.log.Level', 'goog.testing.jsunit']); +goog.addDependency('math/bezier.js', ['goog.math.Bezier'], ['goog.math', 'goog.math.Coordinate']); +goog.addDependency('math/box.js', ['goog.math.Box'], ['goog.math.Coordinate']); +goog.addDependency('math/coordinate.js', ['goog.math.Coordinate'], ['goog.math']); +goog.addDependency('math/coordinate3.js', ['goog.math.Coordinate3'], []); +goog.addDependency('math/exponentialbackoff.js', ['goog.math.ExponentialBackoff'], ['goog.asserts']); +goog.addDependency('math/integer.js', ['goog.math.Integer'], []); +goog.addDependency('math/interpolator/interpolator1.js', ['goog.math.interpolator.Interpolator1'], []); +goog.addDependency('math/interpolator/linear1.js', ['goog.math.interpolator.Linear1'], ['goog.array', 'goog.math', 'goog.math.interpolator.Interpolator1']); +goog.addDependency('math/interpolator/pchip1.js', ['goog.math.interpolator.Pchip1'], ['goog.math', 'goog.math.interpolator.Spline1']); +goog.addDependency('math/interpolator/spline1.js', ['goog.math.interpolator.Spline1'], ['goog.array', 'goog.math', 'goog.math.interpolator.Interpolator1', 'goog.math.tdma']); +goog.addDependency('math/line.js', ['goog.math.Line'], ['goog.math', 'goog.math.Coordinate']); +goog.addDependency('math/long.js', ['goog.math.Long'], []); +goog.addDependency('math/math.js', ['goog.math'], ['goog.array', 'goog.asserts']); +goog.addDependency('math/matrix.js', ['goog.math.Matrix'], ['goog.array', 'goog.math', 'goog.math.Size', 'goog.string']); +goog.addDependency('math/range.js', ['goog.math.Range'], []); +goog.addDependency('math/rangeset.js', ['goog.math.RangeSet'], ['goog.array', 'goog.iter.Iterator', 'goog.iter.StopIteration', 'goog.math.Range']); +goog.addDependency('math/rect.js', ['goog.math.Rect'], ['goog.math.Box', 'goog.math.Coordinate', 'goog.math.Size']); +goog.addDependency('math/size.js', ['goog.math.Size'], []); +goog.addDependency('math/tdma.js', ['goog.math.tdma'], []); +goog.addDependency('math/vec2.js', ['goog.math.Vec2'], ['goog.math', 'goog.math.Coordinate']); +goog.addDependency('math/vec3.js', ['goog.math.Vec3'], ['goog.math', 'goog.math.Coordinate3']); +goog.addDependency('memoize/memoize.js', ['goog.memoize'], []); +goog.addDependency('messaging/abstractchannel.js', ['goog.messaging.AbstractChannel'], ['goog.Disposable', 'goog.debug', 'goog.json', 'goog.log', 'goog.messaging.MessageChannel']); +goog.addDependency('messaging/bufferedchannel.js', ['goog.messaging.BufferedChannel'], ['goog.Timer', 'goog.Uri', 'goog.debug.Error', 'goog.events', 'goog.log', 'goog.messaging.MessageChannel', 'goog.messaging.MultiChannel']); +goog.addDependency('messaging/deferredchannel.js', ['goog.messaging.DeferredChannel'], ['goog.Disposable', 'goog.async.Deferred', 'goog.messaging.MessageChannel']); +goog.addDependency('messaging/loggerclient.js', ['goog.messaging.LoggerClient'], ['goog.Disposable', 'goog.debug', 'goog.debug.LogManager', 'goog.debug.Logger']); +goog.addDependency('messaging/loggerserver.js', ['goog.messaging.LoggerServer'], ['goog.Disposable', 'goog.log']); +goog.addDependency('messaging/messagechannel.js', ['goog.messaging.MessageChannel'], []); +goog.addDependency('messaging/messaging.js', ['goog.messaging'], ['goog.messaging.MessageChannel']); +goog.addDependency('messaging/multichannel.js', ['goog.messaging.MultiChannel', 'goog.messaging.MultiChannel.VirtualChannel'], ['goog.Disposable', 'goog.events.EventHandler', 'goog.log', 'goog.messaging.MessageChannel', 'goog.object']); +goog.addDependency('messaging/portcaller.js', ['goog.messaging.PortCaller'], ['goog.Disposable', 'goog.async.Deferred', 'goog.messaging.DeferredChannel', 'goog.messaging.PortChannel', 'goog.messaging.PortNetwork', 'goog.object']); +goog.addDependency('messaging/portchannel.js', ['goog.messaging.PortChannel'], ['goog.Timer', 'goog.array', 'goog.async.Deferred', 'goog.debug', 'goog.dom', 'goog.dom.DomHelper', 'goog.events', 'goog.events.EventType', 'goog.json', 'goog.log', 'goog.messaging.AbstractChannel', 'goog.messaging.DeferredChannel', 'goog.object', 'goog.string']); +goog.addDependency('messaging/portnetwork.js', ['goog.messaging.PortNetwork'], []); +goog.addDependency('messaging/portoperator.js', ['goog.messaging.PortOperator'], ['goog.Disposable', 'goog.asserts', 'goog.log', 'goog.messaging.PortChannel', 'goog.messaging.PortNetwork', 'goog.object']); +goog.addDependency('messaging/respondingchannel.js', ['goog.messaging.RespondingChannel'], ['goog.Disposable', 'goog.log', 'goog.messaging.MessageChannel', 'goog.messaging.MultiChannel', 'goog.messaging.MultiChannel.VirtualChannel']); +goog.addDependency('messaging/testdata/portchannel_worker.js', ['goog.messaging.testdata.portchannel_worker'], ['goog.messaging.PortChannel']); +goog.addDependency('messaging/testdata/portnetwork_worker1.js', ['goog.messaging.testdata.portnetwork_worker1'], ['goog.messaging.PortCaller', 'goog.messaging.PortChannel']); +goog.addDependency('messaging/testdata/portnetwork_worker2.js', ['goog.messaging.testdata.portnetwork_worker2'], ['goog.messaging.PortCaller', 'goog.messaging.PortChannel']); +goog.addDependency('module/abstractmoduleloader.js', ['goog.module.AbstractModuleLoader'], []); +goog.addDependency('module/basemodule.js', ['goog.module.BaseModule'], ['goog.Disposable']); +goog.addDependency('module/loader.js', ['goog.module.Loader'], ['goog.Timer', 'goog.array', 'goog.dom', 'goog.object']); +goog.addDependency('module/module.js', ['goog.module'], ['goog.array', 'goog.module.Loader']); +goog.addDependency('module/moduleinfo.js', ['goog.module.ModuleInfo'], ['goog.Disposable', 'goog.functions', 'goog.module.BaseModule', 'goog.module.ModuleLoadCallback']); +goog.addDependency('module/moduleloadcallback.js', ['goog.module.ModuleLoadCallback'], ['goog.debug.entryPointRegistry', 'goog.debug.errorHandlerWeakDep']); +goog.addDependency('module/moduleloader.js', ['goog.module.ModuleLoader'], ['goog.Timer', 'goog.array', 'goog.events', 'goog.events.Event', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.log', 'goog.module.AbstractModuleLoader', 'goog.net.BulkLoader', 'goog.net.EventType', 'goog.net.jsloader', 'goog.userAgent.product']); +goog.addDependency('module/moduleloader_test.js', ['goog.module.ModuleLoaderTest'], ['goog.array', 'goog.dom', 'goog.functions', 'goog.module.ModuleLoader', 'goog.module.ModuleManager', 'goog.module.ModuleManager.CallbackType', 'goog.object', 'goog.testing.AsyncTestCase', 'goog.testing.PropertyReplacer', 'goog.testing.events.EventObserver', 'goog.testing.jsunit', 'goog.testing.recordFunction', 'goog.userAgent.product']); +goog.addDependency('module/modulemanager.js', ['goog.module.ModuleManager', 'goog.module.ModuleManager.CallbackType', 'goog.module.ModuleManager.FailureType'], ['goog.Disposable', 'goog.array', 'goog.asserts', 'goog.async.Deferred', 'goog.debug.Trace', 'goog.dispose', 'goog.log', 'goog.module.ModuleInfo', 'goog.module.ModuleLoadCallback', 'goog.object']); +goog.addDependency('module/testdata/modA_1.js', ['goog.module.testdata.modA_1'], []); +goog.addDependency('module/testdata/modA_2.js', ['goog.module.testdata.modA_2'], ['goog.module.ModuleManager']); +goog.addDependency('module/testdata/modB_1.js', ['goog.module.testdata.modB_1'], ['goog.module.ModuleManager']); +goog.addDependency('net/browserchannel.js', ['goog.net.BrowserChannel', 'goog.net.BrowserChannel.Error', 'goog.net.BrowserChannel.Event', 'goog.net.BrowserChannel.Handler', 'goog.net.BrowserChannel.LogSaver', 'goog.net.BrowserChannel.QueuedMap', 'goog.net.BrowserChannel.ServerReachability', 'goog.net.BrowserChannel.ServerReachabilityEvent', 'goog.net.BrowserChannel.Stat', 'goog.net.BrowserChannel.StatEvent', 'goog.net.BrowserChannel.State', 'goog.net.BrowserChannel.TimingEvent'], ['goog.Uri', 'goog.array', 'goog.asserts', 'goog.debug.TextFormatter', 'goog.events.Event', 'goog.events.EventTarget', 'goog.json', 'goog.json.EvalJsonProcessor', 'goog.log', 'goog.net.BrowserTestChannel', 'goog.net.ChannelDebug', 'goog.net.ChannelRequest', 'goog.net.XhrIo', 'goog.net.tmpnetwork', 'goog.string', 'goog.structs', 'goog.structs.CircularBuffer']); +goog.addDependency('net/browsertestchannel.js', ['goog.net.BrowserTestChannel'], ['goog.json.EvalJsonProcessor', 'goog.net.ChannelRequest', 'goog.net.ChannelRequest.Error', 'goog.net.tmpnetwork', 'goog.string.Parser', 'goog.userAgent']); +goog.addDependency('net/bulkloader.js', ['goog.net.BulkLoader'], ['goog.events.EventHandler', 'goog.events.EventTarget', 'goog.log', 'goog.net.BulkLoaderHelper', 'goog.net.EventType', 'goog.net.XhrIo']); +goog.addDependency('net/bulkloaderhelper.js', ['goog.net.BulkLoaderHelper'], ['goog.Disposable', 'goog.log']); +goog.addDependency('net/channeldebug.js', ['goog.net.ChannelDebug'], ['goog.json', 'goog.log']); +goog.addDependency('net/channelrequest.js', ['goog.net.ChannelRequest', 'goog.net.ChannelRequest.Error'], ['goog.Timer', 'goog.async.Throttle', 'goog.events.EventHandler', 'goog.net.ErrorCode', 'goog.net.EventType', 'goog.net.XmlHttp', 'goog.object', 'goog.userAgent']); +goog.addDependency('net/cookies.js', ['goog.net.Cookies', 'goog.net.cookies'], []); +goog.addDependency('net/crossdomainrpc.js', ['goog.net.CrossDomainRpc'], ['goog.Uri', 'goog.dom', 'goog.events', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.json', 'goog.log', 'goog.net.EventType', 'goog.net.HttpStatus', 'goog.string', 'goog.userAgent']); +goog.addDependency('net/errorcode.js', ['goog.net.ErrorCode'], []); +goog.addDependency('net/eventtype.js', ['goog.net.EventType'], []); +goog.addDependency('net/filedownloader.js', ['goog.net.FileDownloader', 'goog.net.FileDownloader.Error'], ['goog.Disposable', 'goog.asserts', 'goog.async.Deferred', 'goog.crypt.hash32', 'goog.debug.Error', 'goog.events', 'goog.events.EventHandler', 'goog.fs', 'goog.fs.DirectoryEntry', 'goog.fs.Error', 'goog.fs.FileSaver', 'goog.net.EventType', 'goog.net.XhrIo', 'goog.net.XhrIoPool', 'goog.object']); +goog.addDependency('net/httpstatus.js', ['goog.net.HttpStatus'], []); +goog.addDependency('net/iframeio.js', ['goog.net.IframeIo', 'goog.net.IframeIo.IncrementalDataEvent'], ['goog.Timer', 'goog.Uri', 'goog.debug', 'goog.dom', 'goog.events', 'goog.events.Event', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.json', 'goog.log', 'goog.net.ErrorCode', 'goog.net.EventType', 'goog.reflect', 'goog.string', 'goog.structs', 'goog.userAgent']); +goog.addDependency('net/iframeloadmonitor.js', ['goog.net.IframeLoadMonitor'], ['goog.dom', 'goog.events', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.userAgent']); +goog.addDependency('net/imageloader.js', ['goog.net.ImageLoader'], ['goog.array', 'goog.dom', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.net.EventType', 'goog.object', 'goog.userAgent']); +goog.addDependency('net/ipaddress.js', ['goog.net.IpAddress', 'goog.net.Ipv4Address', 'goog.net.Ipv6Address'], ['goog.array', 'goog.math.Integer', 'goog.object', 'goog.string']); +goog.addDependency('net/jsloader.js', ['goog.net.jsloader', 'goog.net.jsloader.Error', 'goog.net.jsloader.ErrorCode', 'goog.net.jsloader.Options'], ['goog.array', 'goog.async.Deferred', 'goog.debug.Error', 'goog.dom', 'goog.dom.TagName']); +goog.addDependency('net/jsonp.js', ['goog.net.Jsonp'], ['goog.Uri', 'goog.net.jsloader']); +goog.addDependency('net/mockiframeio.js', ['goog.net.MockIFrameIo'], ['goog.events.EventTarget', 'goog.json', 'goog.net.ErrorCode', 'goog.net.EventType', 'goog.net.IframeIo']); +goog.addDependency('net/multiiframeloadmonitor.js', ['goog.net.MultiIframeLoadMonitor'], ['goog.events', 'goog.net.IframeLoadMonitor']); +goog.addDependency('net/networkstatusmonitor.js', ['goog.net.NetworkStatusMonitor'], ['goog.events.Listenable']); +goog.addDependency('net/networktester.js', ['goog.net.NetworkTester'], ['goog.Timer', 'goog.Uri', 'goog.log']); +goog.addDependency('net/testdata/jsloader_test1.js', ['goog.net.testdata.jsloader_test1'], []); +goog.addDependency('net/testdata/jsloader_test2.js', ['goog.net.testdata.jsloader_test2'], []); +goog.addDependency('net/testdata/jsloader_test3.js', ['goog.net.testdata.jsloader_test3'], []); +goog.addDependency('net/testdata/jsloader_test4.js', ['goog.net.testdata.jsloader_test4'], []); +goog.addDependency('net/tmpnetwork.js', ['goog.net.tmpnetwork'], ['goog.Uri', 'goog.net.ChannelDebug']); +goog.addDependency('net/websocket.js', ['goog.net.WebSocket', 'goog.net.WebSocket.ErrorEvent', 'goog.net.WebSocket.EventType', 'goog.net.WebSocket.MessageEvent'], ['goog.Timer', 'goog.asserts', 'goog.debug.entryPointRegistry', 'goog.events', 'goog.events.Event', 'goog.events.EventTarget', 'goog.log']); +goog.addDependency('net/wrapperxmlhttpfactory.js', ['goog.net.WrapperXmlHttpFactory'], ['goog.net.XmlHttpFactory']); +goog.addDependency('net/xhrio.js', ['goog.net.XhrIo', 'goog.net.XhrIo.ResponseType'], ['goog.Timer', 'goog.array', 'goog.debug.entryPointRegistry', 'goog.events.EventTarget', 'goog.json', 'goog.log', 'goog.net.ErrorCode', 'goog.net.EventType', 'goog.net.HttpStatus', 'goog.net.XmlHttp', 'goog.object', 'goog.string', 'goog.structs', 'goog.structs.Map', 'goog.uri.utils', 'goog.userAgent']); +goog.addDependency('net/xhriopool.js', ['goog.net.XhrIoPool'], ['goog.net.XhrIo', 'goog.structs', 'goog.structs.PriorityPool']); +goog.addDependency('net/xhrmanager.js', ['goog.net.XhrManager', 'goog.net.XhrManager.Event', 'goog.net.XhrManager.Request'], ['goog.Disposable', 'goog.events', 'goog.events.Event', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.net.ErrorCode', 'goog.net.EventType', 'goog.net.XhrIo', 'goog.net.XhrIoPool', 'goog.structs', 'goog.structs.Map']); +goog.addDependency('net/xmlhttp.js', ['goog.net.DefaultXmlHttpFactory', 'goog.net.XmlHttp', 'goog.net.XmlHttp.OptionType', 'goog.net.XmlHttp.ReadyState'], ['goog.net.WrapperXmlHttpFactory', 'goog.net.XmlHttpFactory']); +goog.addDependency('net/xmlhttpfactory.js', ['goog.net.XmlHttpFactory'], []); +goog.addDependency('net/xpc/crosspagechannel.js', ['goog.net.xpc.CrossPageChannel'], ['goog.Disposable', 'goog.Uri', 'goog.async.Deferred', 'goog.async.Delay', 'goog.dom', 'goog.events', 'goog.events.EventHandler', 'goog.json', 'goog.messaging.AbstractChannel', 'goog.net.xpc', 'goog.net.xpc.CrossPageChannelRole', 'goog.net.xpc.FrameElementMethodTransport', 'goog.net.xpc.IframePollingTransport', 'goog.net.xpc.IframeRelayTransport', 'goog.net.xpc.NativeMessagingTransport', 'goog.net.xpc.NixTransport', 'goog.net.xpc.Transport', 'goog.userAgent']); +goog.addDependency('net/xpc/crosspagechannelrole.js', ['goog.net.xpc.CrossPageChannelRole'], []); +goog.addDependency('net/xpc/frameelementmethodtransport.js', ['goog.net.xpc.FrameElementMethodTransport'], ['goog.net.xpc', 'goog.net.xpc.CrossPageChannelRole', 'goog.net.xpc.Transport']); +goog.addDependency('net/xpc/iframepollingtransport.js', ['goog.net.xpc.IframePollingTransport', 'goog.net.xpc.IframePollingTransport.Receiver', 'goog.net.xpc.IframePollingTransport.Sender'], ['goog.array', 'goog.dom', 'goog.net.xpc', 'goog.net.xpc.CrossPageChannelRole', 'goog.net.xpc.Transport', 'goog.userAgent']); +goog.addDependency('net/xpc/iframerelaytransport.js', ['goog.net.xpc.IframeRelayTransport'], ['goog.dom', 'goog.events', 'goog.net.xpc', 'goog.net.xpc.Transport', 'goog.userAgent']); +goog.addDependency('net/xpc/nativemessagingtransport.js', ['goog.net.xpc.NativeMessagingTransport'], ['goog.Timer', 'goog.asserts', 'goog.async.Deferred', 'goog.events', 'goog.events.EventHandler', 'goog.net.xpc', 'goog.net.xpc.CrossPageChannelRole', 'goog.net.xpc.Transport']); +goog.addDependency('net/xpc/nixtransport.js', ['goog.net.xpc.NixTransport'], ['goog.net.xpc', 'goog.net.xpc.CrossPageChannelRole', 'goog.net.xpc.Transport', 'goog.reflect']); +goog.addDependency('net/xpc/relay.js', ['goog.net.xpc.relay'], []); +goog.addDependency('net/xpc/transport.js', ['goog.net.xpc.Transport'], ['goog.Disposable', 'goog.dom', 'goog.net.xpc']); +goog.addDependency('net/xpc/xpc.js', ['goog.net.xpc', 'goog.net.xpc.CfgFields', 'goog.net.xpc.ChannelStates', 'goog.net.xpc.TransportNames', 'goog.net.xpc.TransportTypes', 'goog.net.xpc.UriCfgFields'], ['goog.log']); +goog.addDependency('object/object.js', ['goog.object'], []); +goog.addDependency('positioning/absoluteposition.js', ['goog.positioning.AbsolutePosition'], ['goog.math.Box', 'goog.math.Coordinate', 'goog.math.Size', 'goog.positioning', 'goog.positioning.AbstractPosition']); +goog.addDependency('positioning/abstractposition.js', ['goog.positioning.AbstractPosition'], ['goog.math.Box', 'goog.math.Size', 'goog.positioning.Corner']); +goog.addDependency('positioning/anchoredposition.js', ['goog.positioning.AnchoredPosition'], ['goog.math.Box', 'goog.positioning', 'goog.positioning.AbstractPosition']); +goog.addDependency('positioning/anchoredviewportposition.js', ['goog.positioning.AnchoredViewportPosition'], ['goog.math.Box', 'goog.positioning', 'goog.positioning.AnchoredPosition', 'goog.positioning.Corner', 'goog.positioning.Overflow', 'goog.positioning.OverflowStatus']); +goog.addDependency('positioning/clientposition.js', ['goog.positioning.ClientPosition'], ['goog.asserts', 'goog.math.Box', 'goog.math.Coordinate', 'goog.math.Size', 'goog.positioning', 'goog.positioning.AbstractPosition', 'goog.style']); +goog.addDependency('positioning/clientposition_test.js', ['goog.positioning.clientPositionTest'], ['goog.dom', 'goog.positioning.ClientPosition', 'goog.style', 'goog.testing.jsunit']); +goog.addDependency('positioning/menuanchoredposition.js', ['goog.positioning.MenuAnchoredPosition'], ['goog.math.Box', 'goog.math.Size', 'goog.positioning', 'goog.positioning.AnchoredViewportPosition', 'goog.positioning.Corner', 'goog.positioning.Overflow']); +goog.addDependency('positioning/positioning.js', ['goog.positioning', 'goog.positioning.Corner', 'goog.positioning.CornerBit', 'goog.positioning.Overflow', 'goog.positioning.OverflowStatus'], ['goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.math.Box', 'goog.math.Coordinate', 'goog.math.Size', 'goog.style', 'goog.style.bidi']); +goog.addDependency('positioning/positioning_test.js', ['goog.positioningTest'], ['goog.dom', 'goog.dom.DomHelper', 'goog.math.Box', 'goog.math.Coordinate', 'goog.math.Rect', 'goog.math.Size', 'goog.positioning', 'goog.positioning.Corner', 'goog.positioning.Overflow', 'goog.positioning.OverflowStatus', 'goog.style', 'goog.testing.ExpectedFailures', 'goog.testing.jsunit', 'goog.userAgent', 'goog.userAgent.product']); +goog.addDependency('positioning/viewportclientposition.js', ['goog.positioning.ViewportClientPosition'], ['goog.math.Box', 'goog.math.Coordinate', 'goog.math.Size', 'goog.positioning.ClientPosition']); +goog.addDependency('positioning/viewportposition.js', ['goog.positioning.ViewportPosition'], ['goog.math.Box', 'goog.math.Coordinate', 'goog.math.Size', 'goog.positioning.AbstractPosition']); +goog.addDependency('proto/proto.js', ['goog.proto'], ['goog.proto.Serializer']); +goog.addDependency('proto/serializer.js', ['goog.proto.Serializer'], ['goog.json.Serializer', 'goog.string']); +goog.addDependency('proto2/descriptor.js', ['goog.proto2.Descriptor', 'goog.proto2.Metadata'], ['goog.array', 'goog.object', 'goog.proto2.Util']); +goog.addDependency('proto2/fielddescriptor.js', ['goog.proto2.FieldDescriptor'], ['goog.proto2.Util', 'goog.string']); +goog.addDependency('proto2/lazydeserializer.js', ['goog.proto2.LazyDeserializer'], ['goog.proto2.Message', 'goog.proto2.Serializer', 'goog.proto2.Util']); +goog.addDependency('proto2/message.js', ['goog.proto2.Message'], ['goog.proto2.Descriptor', 'goog.proto2.FieldDescriptor', 'goog.proto2.Util', 'goog.string']); +goog.addDependency('proto2/objectserializer.js', ['goog.proto2.ObjectSerializer'], ['goog.proto2.Serializer', 'goog.proto2.Util', 'goog.string']); +goog.addDependency('proto2/package_test.pb.js', ['someprotopackage.TestPackageTypes'], ['goog.proto2.Message', 'proto2.TestAllTypes']); +goog.addDependency('proto2/pbliteserializer.js', ['goog.proto2.PbLiteSerializer'], ['goog.proto2.LazyDeserializer', 'goog.proto2.Util']); +goog.addDependency('proto2/serializer.js', ['goog.proto2.Serializer'], ['goog.proto2.Descriptor', 'goog.proto2.FieldDescriptor', 'goog.proto2.Message', 'goog.proto2.Util']); +goog.addDependency('proto2/test.pb.js', ['proto2.TestAllTypes', 'proto2.TestAllTypes.NestedEnum', 'proto2.TestAllTypes.NestedMessage', 'proto2.TestAllTypes.OptionalGroup', 'proto2.TestAllTypes.RepeatedGroup'], ['goog.proto2.Message']); +goog.addDependency('proto2/textformatserializer.js', ['goog.proto2.TextFormatSerializer', 'goog.proto2.TextFormatSerializer.Parser'], ['goog.array', 'goog.asserts', 'goog.json', 'goog.proto2.Serializer', 'goog.proto2.Util', 'goog.string']); +goog.addDependency('proto2/textformatserializer_test.js', ['goog.proto2.TextFormatSerializerTest'], ['goog.proto2.TextFormatSerializer', 'goog.testing.jsunit', 'proto2.TestAllTypes']); +goog.addDependency('proto2/util.js', ['goog.proto2.Util'], ['goog.asserts']); +goog.addDependency('pubsub/pubsub.js', ['goog.pubsub.PubSub'], ['goog.Disposable', 'goog.array']); +goog.addDependency('reflect/reflect.js', ['goog.reflect'], []); +goog.addDependency('result/deferredadaptor.js', ['goog.result.DeferredAdaptor'], ['goog.async.Deferred', 'goog.result', 'goog.result.Result']); +goog.addDependency('result/dependentresult.js', ['goog.result.DependentResult'], ['goog.result.Result']); +goog.addDependency('result/result_interface.js', ['goog.result.Result'], []); +goog.addDependency('result/resultutil.js', ['goog.result'], ['goog.array', 'goog.result.DependentResult', 'goog.result.Result', 'goog.result.SimpleResult']); +goog.addDependency('result/simpleresult.js', ['goog.result.SimpleResult', 'goog.result.SimpleResult.StateError'], ['goog.debug.Error', 'goog.result.Result']); +goog.addDependency('soy/data.js', ['goog.soy.data', 'goog.soy.data.SanitizedContent', 'goog.soy.data.SanitizedContentKind'], []); +goog.addDependency('soy/renderer.js', ['goog.soy.InjectedDataSupplier', 'goog.soy.Renderer'], ['goog.asserts', 'goog.dom', 'goog.soy', 'goog.soy.data.SanitizedContent', 'goog.soy.data.SanitizedContentKind']); +goog.addDependency('soy/soy.js', ['goog.soy'], ['goog.asserts', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.soy.data', 'goog.string']); +goog.addDependency('soy/soy_test.js', ['goog.soy.testHelper'], ['goog.dom', 'goog.dom.TagName', 'goog.soy.data.SanitizedContent', 'goog.soy.data.SanitizedContentKind', 'goog.string', 'goog.userAgent']); +goog.addDependency('spell/spellcheck.js', ['goog.spell.SpellCheck', 'goog.spell.SpellCheck.WordChangedEvent'], ['goog.Timer', 'goog.events.EventTarget', 'goog.structs.Set']); +goog.addDependency('stats/basicstat.js', ['goog.stats.BasicStat'], ['goog.array', 'goog.iter', 'goog.log', 'goog.object', 'goog.string.format', 'goog.structs.CircularBuffer']); +goog.addDependency('storage/collectablestorage.js', ['goog.storage.CollectableStorage'], ['goog.array', 'goog.asserts', 'goog.iter', 'goog.storage.ErrorCode', 'goog.storage.ExpiringStorage', 'goog.storage.RichStorage.Wrapper', 'goog.storage.mechanism.IterableMechanism']); +goog.addDependency('storage/encryptedstorage.js', ['goog.storage.EncryptedStorage'], ['goog.crypt', 'goog.crypt.Arc4', 'goog.crypt.Sha1', 'goog.crypt.base64', 'goog.json', 'goog.json.Serializer', 'goog.storage.CollectableStorage', 'goog.storage.ErrorCode', 'goog.storage.RichStorage', 'goog.storage.RichStorage.Wrapper', 'goog.storage.mechanism.IterableMechanism']); +goog.addDependency('storage/errorcode.js', ['goog.storage.ErrorCode'], []); +goog.addDependency('storage/expiringstorage.js', ['goog.storage.ExpiringStorage'], ['goog.storage.RichStorage', 'goog.storage.RichStorage.Wrapper', 'goog.storage.mechanism.Mechanism']); +goog.addDependency('storage/mechanism/errorcode.js', ['goog.storage.mechanism.ErrorCode'], []); +goog.addDependency('storage/mechanism/errorhandlingmechanism.js', ['goog.storage.mechanism.ErrorHandlingMechanism'], ['goog.storage.mechanism.Mechanism']); +goog.addDependency('storage/mechanism/html5localstorage.js', ['goog.storage.mechanism.HTML5LocalStorage'], ['goog.storage.mechanism.HTML5WebStorage']); +goog.addDependency('storage/mechanism/html5sessionstorage.js', ['goog.storage.mechanism.HTML5SessionStorage'], ['goog.storage.mechanism.HTML5WebStorage']); +goog.addDependency('storage/mechanism/html5webstorage.js', ['goog.storage.mechanism.HTML5WebStorage'], ['goog.asserts', 'goog.iter.Iterator', 'goog.iter.StopIteration', 'goog.storage.mechanism.ErrorCode', 'goog.storage.mechanism.IterableMechanism']); +goog.addDependency('storage/mechanism/ieuserdata.js', ['goog.storage.mechanism.IEUserData'], ['goog.asserts', 'goog.iter.Iterator', 'goog.iter.StopIteration', 'goog.storage.mechanism.ErrorCode', 'goog.storage.mechanism.IterableMechanism', 'goog.structs.Map', 'goog.userAgent']); +goog.addDependency('storage/mechanism/iterablemechanism.js', ['goog.storage.mechanism.IterableMechanism'], ['goog.array', 'goog.asserts', 'goog.iter', 'goog.iter.Iterator', 'goog.storage.mechanism.Mechanism']); +goog.addDependency('storage/mechanism/iterablemechanismtester.js', ['goog.storage.mechanism.iterableMechanismTester'], ['goog.iter.Iterator', 'goog.storage.mechanism.IterableMechanism', 'goog.testing.asserts']); +goog.addDependency('storage/mechanism/mechanism.js', ['goog.storage.mechanism.Mechanism'], []); +goog.addDependency('storage/mechanism/mechanismfactory.js', ['goog.storage.mechanism.mechanismfactory'], ['goog.storage.mechanism.HTML5LocalStorage', 'goog.storage.mechanism.HTML5SessionStorage', 'goog.storage.mechanism.IEUserData', 'goog.storage.mechanism.IterableMechanism', 'goog.storage.mechanism.PrefixedMechanism']); +goog.addDependency('storage/mechanism/mechanismseparationtester.js', ['goog.storage.mechanism.mechanismSeparationTester'], ['goog.iter.Iterator', 'goog.storage.mechanism.IterableMechanism', 'goog.testing.asserts']); +goog.addDependency('storage/mechanism/mechanismsharingtester.js', ['goog.storage.mechanism.mechanismSharingTester'], ['goog.iter.Iterator', 'goog.storage.mechanism.IterableMechanism', 'goog.testing.asserts']); +goog.addDependency('storage/mechanism/mechanismtester.js', ['goog.storage.mechanism.mechanismTester'], ['goog.storage.mechanism.ErrorCode', 'goog.storage.mechanism.HTML5LocalStorage', 'goog.storage.mechanism.Mechanism', 'goog.testing.asserts', 'goog.userAgent.product', 'goog.userAgent.product.isVersion']); +goog.addDependency('storage/mechanism/prefixedmechanism.js', ['goog.storage.mechanism.PrefixedMechanism'], ['goog.iter.Iterator', 'goog.storage.mechanism.IterableMechanism']); +goog.addDependency('storage/richstorage.js', ['goog.storage.RichStorage', 'goog.storage.RichStorage.Wrapper'], ['goog.storage.ErrorCode', 'goog.storage.Storage', 'goog.storage.mechanism.Mechanism']); +goog.addDependency('storage/storage.js', ['goog.storage.Storage'], ['goog.json', 'goog.json.Serializer', 'goog.storage.ErrorCode']); +goog.addDependency('storage/storage_test.js', ['goog.storage.storage_test'], ['goog.storage.Storage', 'goog.structs.Map', 'goog.testing.asserts']); +goog.addDependency('string/linkify.js', ['goog.string.linkify'], ['goog.string']); +goog.addDependency('string/newlines.js', ['goog.string.newlines', 'goog.string.newlines.Line'], ['goog.array']); +goog.addDependency('string/newlines_test.js', ['goog.string.newlinesTest'], ['goog.string.newlines', 'goog.testing.jsunit']); +goog.addDependency('string/parser.js', ['goog.string.Parser'], []); +goog.addDependency('string/path.js', ['goog.string.path'], ['goog.array', 'goog.string']); +goog.addDependency('string/string.js', ['goog.string', 'goog.string.Unicode'], []); +goog.addDependency('string/string_test.js', ['goog.stringTest'], ['goog.functions', 'goog.object', 'goog.string', 'goog.testing.PropertyReplacer', 'goog.testing.jsunit']); +goog.addDependency('string/stringbuffer.js', ['goog.string.StringBuffer'], []); +goog.addDependency('string/stringformat.js', ['goog.string.format'], ['goog.string']); +goog.addDependency('string/stringifier.js', ['goog.string.Stringifier'], []); +goog.addDependency('structs/avltree.js', ['goog.structs.AvlTree', 'goog.structs.AvlTree.Node'], ['goog.structs.Collection']); +goog.addDependency('structs/circularbuffer.js', ['goog.structs.CircularBuffer'], []); +goog.addDependency('structs/collection.js', ['goog.structs.Collection'], []); +goog.addDependency('structs/heap.js', ['goog.structs.Heap'], ['goog.array', 'goog.object', 'goog.structs.Node']); +goog.addDependency('structs/inversionmap.js', ['goog.structs.InversionMap'], ['goog.array']); +goog.addDependency('structs/linkedmap.js', ['goog.structs.LinkedMap'], ['goog.structs.Map']); +goog.addDependency('structs/map.js', ['goog.structs.Map'], ['goog.iter.Iterator', 'goog.iter.StopIteration', 'goog.object']); +goog.addDependency('structs/node.js', ['goog.structs.Node'], []); +goog.addDependency('structs/pool.js', ['goog.structs.Pool'], ['goog.Disposable', 'goog.structs.Queue', 'goog.structs.Set']); +goog.addDependency('structs/prioritypool.js', ['goog.structs.PriorityPool'], ['goog.structs.Pool', 'goog.structs.PriorityQueue']); +goog.addDependency('structs/priorityqueue.js', ['goog.structs.PriorityQueue'], ['goog.structs.Heap']); +goog.addDependency('structs/quadtree.js', ['goog.structs.QuadTree', 'goog.structs.QuadTree.Node', 'goog.structs.QuadTree.Point'], ['goog.math.Coordinate']); +goog.addDependency('structs/queue.js', ['goog.structs.Queue'], ['goog.array']); +goog.addDependency('structs/set.js', ['goog.structs.Set'], ['goog.structs', 'goog.structs.Collection', 'goog.structs.Map']); +goog.addDependency('structs/simplepool.js', ['goog.structs.SimplePool'], ['goog.Disposable']); +goog.addDependency('structs/stringset.js', ['goog.structs.StringSet'], ['goog.asserts', 'goog.iter']); +goog.addDependency('structs/structs.js', ['goog.structs'], ['goog.array', 'goog.object']); +goog.addDependency('structs/treenode.js', ['goog.structs.TreeNode'], ['goog.array', 'goog.asserts', 'goog.structs.Node']); +goog.addDependency('structs/trie.js', ['goog.structs.Trie'], ['goog.object', 'goog.structs']); +goog.addDependency('style/bidi.js', ['goog.style.bidi'], ['goog.dom', 'goog.style', 'goog.userAgent']); +goog.addDependency('style/cursor.js', ['goog.style.cursor'], ['goog.userAgent']); +goog.addDependency('style/style.js', ['goog.style'], ['goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.vendor', 'goog.math.Box', 'goog.math.Coordinate', 'goog.math.Rect', 'goog.math.Size', 'goog.object', 'goog.string', 'goog.userAgent']); +goog.addDependency('style/style_test.js', ['goog.style_test'], ['goog.array', 'goog.color', 'goog.dom', 'goog.events.BrowserEvent', 'goog.math.Box', 'goog.math.Coordinate', 'goog.math.Rect', 'goog.math.Size', 'goog.object', 'goog.string', 'goog.style', 'goog.testing.ExpectedFailures', 'goog.testing.PropertyReplacer', 'goog.testing.asserts', 'goog.testing.jsunit', 'goog.userAgent', 'goog.userAgent.product', 'goog.userAgent.product.isVersion']); +goog.addDependency('style/stylescrollbartester.js', ['goog.styleScrollbarTester'], ['goog.dom', 'goog.style', 'goog.testing.asserts']); +goog.addDependency('style/transition.js', ['goog.style.transition', 'goog.style.transition.Css3Property'], ['goog.array', 'goog.asserts', 'goog.dom.vendor', 'goog.style', 'goog.userAgent']); +goog.addDependency('testing/asserts.js', ['goog.testing.JsUnitException', 'goog.testing.asserts'], ['goog.testing.stacktrace']); +goog.addDependency('testing/async/mockcontrol.js', ['goog.testing.async.MockControl'], ['goog.asserts', 'goog.async.Deferred', 'goog.debug', 'goog.testing.asserts', 'goog.testing.mockmatchers.IgnoreArgument']); +goog.addDependency('testing/asynctestcase.js', ['goog.testing.AsyncTestCase', 'goog.testing.AsyncTestCase.ControlBreakingException'], ['goog.testing.TestCase', 'goog.testing.TestCase.Test', 'goog.testing.asserts']); +goog.addDependency('testing/benchmark.js', ['goog.testing.benchmark'], ['goog.dom', 'goog.dom.TagName', 'goog.testing.PerformanceTable', 'goog.testing.PerformanceTimer', 'goog.testing.TestCase']); +goog.addDependency('testing/continuationtestcase.js', ['goog.testing.ContinuationTestCase', 'goog.testing.ContinuationTestCase.Step', 'goog.testing.ContinuationTestCase.Test'], ['goog.array', 'goog.events.EventHandler', 'goog.testing.TestCase', 'goog.testing.TestCase.Test', 'goog.testing.asserts']); +goog.addDependency('testing/deferredtestcase.js', ['goog.testing.DeferredTestCase'], ['goog.async.Deferred', 'goog.testing.AsyncTestCase', 'goog.testing.TestCase']); +goog.addDependency('testing/dom.js', ['goog.testing.dom'], ['goog.dom', 'goog.dom.NodeIterator', 'goog.dom.NodeType', 'goog.dom.TagIterator', 'goog.dom.TagName', 'goog.dom.classes', 'goog.iter', 'goog.object', 'goog.string', 'goog.style', 'goog.testing.asserts', 'goog.userAgent']); +goog.addDependency('testing/editor/dom.js', ['goog.testing.editor.dom'], ['goog.dom.NodeType', 'goog.dom.TagIterator', 'goog.dom.TagWalkType', 'goog.iter', 'goog.string', 'goog.testing.asserts']); +goog.addDependency('testing/editor/fieldmock.js', ['goog.testing.editor.FieldMock'], ['goog.dom', 'goog.dom.Range', 'goog.editor.Field', 'goog.testing.LooseMock', 'goog.testing.mockmatchers']); +goog.addDependency('testing/editor/testhelper.js', ['goog.testing.editor.TestHelper'], ['goog.Disposable', 'goog.dom', 'goog.dom.Range', 'goog.editor.BrowserFeature', 'goog.editor.node', 'goog.editor.plugins.AbstractBubblePlugin', 'goog.testing.dom']); +goog.addDependency('testing/events/eventobserver.js', ['goog.testing.events.EventObserver'], ['goog.array']); +goog.addDependency('testing/events/events.js', ['goog.testing.events', 'goog.testing.events.Event'], ['goog.Disposable', 'goog.asserts', 'goog.dom.NodeType', 'goog.events', 'goog.events.BrowserEvent', 'goog.events.BrowserFeature', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.object', 'goog.style', 'goog.userAgent']); +goog.addDependency('testing/events/matchers.js', ['goog.testing.events.EventMatcher'], ['goog.events.Event', 'goog.testing.mockmatchers.ArgumentMatcher']); +goog.addDependency('testing/events/onlinehandler.js', ['goog.testing.events.OnlineHandler'], ['goog.events.EventTarget', 'goog.net.NetworkStatusMonitor']); +goog.addDependency('testing/expectedfailures.js', ['goog.testing.ExpectedFailures'], ['goog.debug.DivConsole', 'goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.events.EventType', 'goog.log', 'goog.style', 'goog.testing.JsUnitException', 'goog.testing.TestCase', 'goog.testing.asserts']); +goog.addDependency('testing/fs/blob.js', ['goog.testing.fs.Blob'], ['goog.crypt.base64']); +goog.addDependency('testing/fs/entry.js', ['goog.testing.fs.DirectoryEntry', 'goog.testing.fs.Entry', 'goog.testing.fs.FileEntry'], ['goog.Timer', 'goog.array', 'goog.asserts', 'goog.async.Deferred', 'goog.fs.DirectoryEntry', 'goog.fs.DirectoryEntryImpl', 'goog.fs.Entry', 'goog.fs.Error', 'goog.fs.FileEntry', 'goog.functions', 'goog.object', 'goog.string', 'goog.testing.fs.File', 'goog.testing.fs.FileWriter']); +goog.addDependency('testing/fs/file.js', ['goog.testing.fs.File'], ['goog.testing.fs.Blob']); +goog.addDependency('testing/fs/filereader.js', ['goog.testing.fs.FileReader'], ['goog.Timer', 'goog.events.EventTarget', 'goog.fs.Error', 'goog.fs.FileReader.EventType', 'goog.fs.FileReader.ReadyState', 'goog.testing.fs.File', 'goog.testing.fs.ProgressEvent']); +goog.addDependency('testing/fs/filesystem.js', ['goog.testing.fs.FileSystem'], ['goog.fs.FileSystem', 'goog.testing.fs.DirectoryEntry']); +goog.addDependency('testing/fs/filewriter.js', ['goog.testing.fs.FileWriter'], ['goog.Timer', 'goog.events.Event', 'goog.events.EventTarget', 'goog.fs.Error', 'goog.fs.FileSaver.EventType', 'goog.fs.FileSaver.ReadyState', 'goog.string', 'goog.testing.fs.File', 'goog.testing.fs.ProgressEvent']); +goog.addDependency('testing/fs/fs.js', ['goog.testing.fs'], ['goog.Timer', 'goog.array', 'goog.async.Deferred', 'goog.fs', 'goog.testing.fs.Blob', 'goog.testing.fs.FileSystem']); +goog.addDependency('testing/fs/progressevent.js', ['goog.testing.fs.ProgressEvent'], ['goog.events.Event']); +goog.addDependency('testing/functionmock.js', ['goog.testing', 'goog.testing.FunctionMock', 'goog.testing.GlobalFunctionMock', 'goog.testing.MethodMock'], ['goog.object', 'goog.testing.LooseMock', 'goog.testing.Mock', 'goog.testing.MockInterface', 'goog.testing.PropertyReplacer', 'goog.testing.StrictMock']); +goog.addDependency('testing/graphics.js', ['goog.testing.graphics'], ['goog.graphics.Path.Segment', 'goog.testing.asserts']); +goog.addDependency('testing/i18n/asserts.js', ['goog.testing.i18n.asserts'], ['goog.testing.jsunit']); +goog.addDependency('testing/i18n/asserts_test.js', ['goog.testing.i18n.assertsTest'], ['goog.testing.ExpectedFailures', 'goog.testing.i18n.asserts']); +goog.addDependency('testing/jsunit.js', ['goog.testing.jsunit'], ['goog.testing.TestCase', 'goog.testing.TestRunner']); +goog.addDependency('testing/loosemock.js', ['goog.testing.LooseExpectationCollection', 'goog.testing.LooseMock'], ['goog.array', 'goog.structs.Map', 'goog.testing.Mock']); +goog.addDependency('testing/messaging/mockmessagechannel.js', ['goog.testing.messaging.MockMessageChannel'], ['goog.messaging.AbstractChannel', 'goog.testing.asserts']); +goog.addDependency('testing/messaging/mockmessageevent.js', ['goog.testing.messaging.MockMessageEvent'], ['goog.events.BrowserEvent', 'goog.events.EventType', 'goog.testing.events']); +goog.addDependency('testing/messaging/mockmessageport.js', ['goog.testing.messaging.MockMessagePort'], ['goog.events.EventTarget']); +goog.addDependency('testing/messaging/mockportnetwork.js', ['goog.testing.messaging.MockPortNetwork'], ['goog.messaging.PortNetwork', 'goog.testing.messaging.MockMessageChannel']); +goog.addDependency('testing/mock.js', ['goog.testing.Mock', 'goog.testing.MockExpectation'], ['goog.array', 'goog.object', 'goog.testing.JsUnitException', 'goog.testing.MockInterface', 'goog.testing.mockmatchers']); +goog.addDependency('testing/mockclassfactory.js', ['goog.testing.MockClassFactory', 'goog.testing.MockClassRecord'], ['goog.array', 'goog.object', 'goog.testing.LooseMock', 'goog.testing.StrictMock', 'goog.testing.TestCase', 'goog.testing.mockmatchers']); +goog.addDependency('testing/mockclock.js', ['goog.testing.MockClock'], ['goog.Disposable', 'goog.testing.PropertyReplacer', 'goog.testing.events', 'goog.testing.events.Event']); +goog.addDependency('testing/mockcontrol.js', ['goog.testing.MockControl'], ['goog.array', 'goog.testing', 'goog.testing.LooseMock', 'goog.testing.MockInterface', 'goog.testing.StrictMock']); +goog.addDependency('testing/mockinterface.js', ['goog.testing.MockInterface'], []); +goog.addDependency('testing/mockmatchers.js', ['goog.testing.mockmatchers', 'goog.testing.mockmatchers.ArgumentMatcher', 'goog.testing.mockmatchers.IgnoreArgument', 'goog.testing.mockmatchers.InstanceOf', 'goog.testing.mockmatchers.ObjectEquals', 'goog.testing.mockmatchers.RegexpMatch', 'goog.testing.mockmatchers.SaveArgument', 'goog.testing.mockmatchers.TypeOf'], ['goog.array', 'goog.dom', 'goog.testing.asserts']); +goog.addDependency('testing/mockrandom.js', ['goog.testing.MockRandom'], ['goog.Disposable']); +goog.addDependency('testing/mockrange.js', ['goog.testing.MockRange'], ['goog.dom.AbstractRange', 'goog.testing.LooseMock']); +goog.addDependency('testing/mockstorage.js', ['goog.testing.MockStorage'], ['goog.structs.Map']); +goog.addDependency('testing/mockuseragent.js', ['goog.testing.MockUserAgent'], ['goog.Disposable', 'goog.userAgent']); +goog.addDependency('testing/multitestrunner.js', ['goog.testing.MultiTestRunner', 'goog.testing.MultiTestRunner.TestFrame'], ['goog.Timer', 'goog.array', 'goog.dom', 'goog.dom.classes', 'goog.events.EventHandler', 'goog.functions', 'goog.string', 'goog.ui.Component', 'goog.ui.ServerChart', 'goog.ui.TableSorter']); +goog.addDependency('testing/net/xhrio.js', ['goog.testing.net.XhrIo'], ['goog.array', 'goog.dom.xml', 'goog.events', 'goog.events.EventTarget', 'goog.json', 'goog.net.ErrorCode', 'goog.net.EventType', 'goog.net.HttpStatus', 'goog.net.XhrIo', 'goog.net.XmlHttp', 'goog.object', 'goog.structs.Map']); +goog.addDependency('testing/net/xhriopool.js', ['goog.testing.net.XhrIoPool'], ['goog.net.XhrIoPool', 'goog.testing.net.XhrIo']); +goog.addDependency('testing/objectpropertystring.js', ['goog.testing.ObjectPropertyString'], []); +goog.addDependency('testing/performancetable.js', ['goog.testing.PerformanceTable'], ['goog.dom', 'goog.testing.PerformanceTimer']); +goog.addDependency('testing/performancetimer.js', ['goog.testing.PerformanceTimer', 'goog.testing.PerformanceTimer.Task'], ['goog.array', 'goog.async.Deferred', 'goog.math']); +goog.addDependency('testing/propertyreplacer.js', ['goog.testing.PropertyReplacer'], ['goog.userAgent']); +goog.addDependency('testing/proto2/proto2.js', ['goog.testing.proto2'], ['goog.proto2.Message', 'goog.testing.asserts']); +goog.addDependency('testing/pseudorandom.js', ['goog.testing.PseudoRandom'], ['goog.Disposable']); +goog.addDependency('testing/recordfunction.js', ['goog.testing.FunctionCall', 'goog.testing.recordConstructor', 'goog.testing.recordFunction'], []); +goog.addDependency('testing/shardingtestcase.js', ['goog.testing.ShardingTestCase'], ['goog.asserts', 'goog.testing.TestCase']); +goog.addDependency('testing/singleton.js', ['goog.testing.singleton'], []); +goog.addDependency('testing/stacktrace.js', ['goog.testing.stacktrace', 'goog.testing.stacktrace.Frame'], []); +goog.addDependency('testing/storage/fakemechanism.js', ['goog.testing.storage.FakeMechanism'], ['goog.storage.mechanism.IterableMechanism', 'goog.structs.Map']); +goog.addDependency('testing/strictmock.js', ['goog.testing.StrictMock'], ['goog.array', 'goog.testing.Mock']); +goog.addDependency('testing/style/layoutasserts.js', ['goog.testing.style.layoutasserts'], ['goog.style', 'goog.testing.asserts', 'goog.testing.style']); +goog.addDependency('testing/style/style.js', ['goog.testing.style'], ['goog.dom', 'goog.math.Rect', 'goog.style']); +goog.addDependency('testing/testcase.js', ['goog.testing.TestCase', 'goog.testing.TestCase.Error', 'goog.testing.TestCase.Order', 'goog.testing.TestCase.Result', 'goog.testing.TestCase.Test'], ['goog.object', 'goog.testing.asserts', 'goog.testing.stacktrace']); +goog.addDependency('testing/testqueue.js', ['goog.testing.TestQueue'], []); +goog.addDependency('testing/testrunner.js', ['goog.testing.TestRunner'], ['goog.testing.TestCase']); +goog.addDependency('testing/ui/rendererasserts.js', ['goog.testing.ui.rendererasserts'], ['goog.testing.asserts']); +goog.addDependency('testing/ui/rendererharness.js', ['goog.testing.ui.RendererHarness'], ['goog.Disposable', 'goog.dom.NodeType', 'goog.testing.asserts', 'goog.testing.dom']); +goog.addDependency('testing/ui/style.js', ['goog.testing.ui.style'], ['goog.array', 'goog.dom', 'goog.dom.classes', 'goog.testing.asserts']); +goog.addDependency('timer/timer.js', ['goog.Timer'], ['goog.events.EventTarget']); +goog.addDependency('tweak/entries.js', ['goog.tweak.BaseEntry', 'goog.tweak.BasePrimitiveSetting', 'goog.tweak.BaseSetting', 'goog.tweak.BooleanGroup', 'goog.tweak.BooleanInGroupSetting', 'goog.tweak.BooleanSetting', 'goog.tweak.ButtonAction', 'goog.tweak.NumericSetting', 'goog.tweak.StringSetting'], ['goog.array', 'goog.asserts', 'goog.log', 'goog.object']); +goog.addDependency('tweak/registry.js', ['goog.tweak.Registry'], ['goog.asserts', 'goog.log', 'goog.object', 'goog.string', 'goog.tweak.BaseEntry', 'goog.uri.utils']); +goog.addDependency('tweak/testhelpers.js', ['goog.tweak.testhelpers'], ['goog.tweak', 'goog.tweak.BooleanGroup', 'goog.tweak.BooleanInGroupSetting', 'goog.tweak.BooleanSetting', 'goog.tweak.ButtonAction', 'goog.tweak.NumericSetting', 'goog.tweak.Registry', 'goog.tweak.StringSetting']); +goog.addDependency('tweak/tweak.js', ['goog.tweak', 'goog.tweak.ConfigParams'], ['goog.asserts', 'goog.tweak.BaseSetting', 'goog.tweak.BooleanGroup', 'goog.tweak.BooleanInGroupSetting', 'goog.tweak.BooleanSetting', 'goog.tweak.ButtonAction', 'goog.tweak.NumericSetting', 'goog.tweak.Registry', 'goog.tweak.StringSetting']); +goog.addDependency('tweak/tweakui.js', ['goog.tweak.EntriesPanel', 'goog.tweak.TweakUi'], ['goog.array', 'goog.asserts', 'goog.dom.DomHelper', 'goog.object', 'goog.style', 'goog.tweak', 'goog.ui.Zippy', 'goog.userAgent']); +goog.addDependency('ui/abstractspellchecker.js', ['goog.ui.AbstractSpellChecker', 'goog.ui.AbstractSpellChecker.AsyncResult'], ['goog.a11y.aria', 'goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.classes', 'goog.dom.selection', 'goog.events', 'goog.events.Event', 'goog.events.EventType', 'goog.math.Coordinate', 'goog.spell.SpellCheck', 'goog.structs.Set', 'goog.style', 'goog.ui.Component', 'goog.ui.MenuItem', 'goog.ui.MenuSeparator', 'goog.ui.PopupMenu']); +goog.addDependency('ui/ac/ac.js', ['goog.ui.ac'], ['goog.ui.ac.ArrayMatcher', 'goog.ui.ac.AutoComplete', 'goog.ui.ac.InputHandler', 'goog.ui.ac.Renderer']); +goog.addDependency('ui/ac/arraymatcher.js', ['goog.ui.ac.ArrayMatcher'], ['goog.string']); +goog.addDependency('ui/ac/autocomplete.js', ['goog.ui.ac.AutoComplete', 'goog.ui.ac.AutoComplete.EventType'], ['goog.array', 'goog.asserts', 'goog.events', 'goog.events.EventTarget', 'goog.object']); +goog.addDependency('ui/ac/inputhandler.js', ['goog.ui.ac.InputHandler'], ['goog.Disposable', 'goog.Timer', 'goog.a11y.aria', 'goog.dom', 'goog.dom.selection', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.events.KeyHandler', 'goog.string', 'goog.userAgent', 'goog.userAgent.product']); +goog.addDependency('ui/ac/remote.js', ['goog.ui.ac.Remote'], ['goog.ui.ac.AutoComplete', 'goog.ui.ac.InputHandler', 'goog.ui.ac.RemoteArrayMatcher', 'goog.ui.ac.Renderer']); +goog.addDependency('ui/ac/remotearraymatcher.js', ['goog.ui.ac.RemoteArrayMatcher'], ['goog.Disposable', 'goog.Uri', 'goog.events', 'goog.json', 'goog.net.EventType', 'goog.net.XhrIo']); +goog.addDependency('ui/ac/renderer.js', ['goog.ui.ac.Renderer', 'goog.ui.ac.Renderer.CustomRenderer'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.array', 'goog.dispose', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.classes', 'goog.events', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.fx.dom.FadeInAndShow', 'goog.fx.dom.FadeOutAndHide', 'goog.positioning', 'goog.positioning.Corner', 'goog.positioning.Overflow', 'goog.string', 'goog.style', 'goog.ui.IdGenerator', 'goog.ui.ac.AutoComplete']); +goog.addDependency('ui/ac/renderoptions.js', ['goog.ui.ac.RenderOptions'], []); +goog.addDependency('ui/ac/richinputhandler.js', ['goog.ui.ac.RichInputHandler'], ['goog.ui.ac.InputHandler']); +goog.addDependency('ui/ac/richremote.js', ['goog.ui.ac.RichRemote'], ['goog.ui.ac.AutoComplete', 'goog.ui.ac.Remote', 'goog.ui.ac.Renderer', 'goog.ui.ac.RichInputHandler', 'goog.ui.ac.RichRemoteArrayMatcher']); +goog.addDependency('ui/ac/richremotearraymatcher.js', ['goog.ui.ac.RichRemoteArrayMatcher'], ['goog.json', 'goog.ui.ac.RemoteArrayMatcher']); +goog.addDependency('ui/activitymonitor.js', ['goog.ui.ActivityMonitor'], ['goog.array', 'goog.asserts', 'goog.dom', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType']); +goog.addDependency('ui/advancedtooltip.js', ['goog.ui.AdvancedTooltip'], ['goog.events', 'goog.events.EventType', 'goog.math.Box', 'goog.math.Coordinate', 'goog.style', 'goog.ui.Tooltip', 'goog.userAgent']); +goog.addDependency('ui/animatedzippy.js', ['goog.ui.AnimatedZippy'], ['goog.dom', 'goog.events', 'goog.fx.Animation', 'goog.fx.Transition', 'goog.fx.easing', 'goog.ui.Zippy', 'goog.ui.ZippyEvent']); +goog.addDependency('ui/attachablemenu.js', ['goog.ui.AttachableMenu'], ['goog.a11y.aria', 'goog.a11y.aria.State', 'goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.classes', 'goog.events.Event', 'goog.events.KeyCodes', 'goog.string', 'goog.style', 'goog.ui.ItemEvent', 'goog.ui.MenuBase', 'goog.ui.PopupBase', 'goog.userAgent']); +goog.addDependency('ui/bidiinput.js', ['goog.ui.BidiInput'], ['goog.dom', 'goog.events', 'goog.events.InputHandler', 'goog.i18n.bidi', 'goog.ui.Component']); +goog.addDependency('ui/bubble.js', ['goog.ui.Bubble'], ['goog.Timer', 'goog.events', 'goog.events.EventType', 'goog.math.Box', 'goog.positioning', 'goog.positioning.AbsolutePosition', 'goog.positioning.AnchoredPosition', 'goog.positioning.Corner', 'goog.positioning.CornerBit', 'goog.style', 'goog.ui.Component', 'goog.ui.Popup']); +goog.addDependency('ui/button.js', ['goog.ui.Button', 'goog.ui.Button.Side'], ['goog.events.EventType', 'goog.events.KeyCodes', 'goog.events.KeyHandler', 'goog.ui.ButtonRenderer', 'goog.ui.ButtonSide', 'goog.ui.Component', 'goog.ui.Control', 'goog.ui.NativeButtonRenderer', 'goog.ui.registry']); +goog.addDependency('ui/buttonrenderer.js', ['goog.ui.ButtonRenderer'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.asserts', 'goog.ui.ButtonSide', 'goog.ui.Component', 'goog.ui.ControlRenderer']); +goog.addDependency('ui/buttonside.js', ['goog.ui.ButtonSide'], []); +goog.addDependency('ui/charcounter.js', ['goog.ui.CharCounter', 'goog.ui.CharCounter.Display'], ['goog.dom', 'goog.events', 'goog.events.EventTarget', 'goog.events.InputHandler']); +goog.addDependency('ui/charpicker.js', ['goog.ui.CharPicker'], ['goog.a11y.aria', 'goog.a11y.aria.State', 'goog.array', 'goog.asserts', 'goog.dom.classes', 'goog.events', 'goog.events.Event', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.events.InputHandler', 'goog.events.KeyCodes', 'goog.events.KeyHandler', 'goog.i18n.CharListDecompressor', 'goog.i18n.uChar', 'goog.structs.Set', 'goog.style', 'goog.ui.Button', 'goog.ui.Component', 'goog.ui.ContainerScroller', 'goog.ui.FlatButtonRenderer', 'goog.ui.HoverCard', 'goog.ui.LabelInput', 'goog.ui.Menu', 'goog.ui.MenuButton', 'goog.ui.MenuItem', 'goog.ui.Tooltip']); +goog.addDependency('ui/checkbox.js', ['goog.ui.Checkbox', 'goog.ui.Checkbox.State'], ['goog.a11y.aria', 'goog.a11y.aria.State', 'goog.asserts', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.ui.CheckboxRenderer', 'goog.ui.Component.EventType', 'goog.ui.Component.State', 'goog.ui.Control', 'goog.ui.registry']); +goog.addDependency('ui/checkboxmenuitem.js', ['goog.ui.CheckBoxMenuItem'], ['goog.ui.MenuItem', 'goog.ui.registry']); +goog.addDependency('ui/checkboxrenderer.js', ['goog.ui.CheckboxRenderer'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.array', 'goog.asserts', 'goog.dom.classes', 'goog.object', 'goog.ui.ControlRenderer']); +goog.addDependency('ui/colorbutton.js', ['goog.ui.ColorButton'], ['goog.ui.Button', 'goog.ui.ColorButtonRenderer', 'goog.ui.registry']); +goog.addDependency('ui/colorbuttonrenderer.js', ['goog.ui.ColorButtonRenderer'], ['goog.dom.classes', 'goog.functions', 'goog.ui.ColorMenuButtonRenderer']); +goog.addDependency('ui/colormenubutton.js', ['goog.ui.ColorMenuButton'], ['goog.array', 'goog.object', 'goog.ui.ColorMenuButtonRenderer', 'goog.ui.ColorPalette', 'goog.ui.Component', 'goog.ui.Menu', 'goog.ui.MenuButton', 'goog.ui.registry']); +goog.addDependency('ui/colormenubuttonrenderer.js', ['goog.ui.ColorMenuButtonRenderer'], ['goog.color', 'goog.dom.classes', 'goog.ui.MenuButtonRenderer', 'goog.userAgent']); +goog.addDependency('ui/colorpalette.js', ['goog.ui.ColorPalette'], ['goog.array', 'goog.color', 'goog.style', 'goog.ui.Palette', 'goog.ui.PaletteRenderer']); +goog.addDependency('ui/colorpicker.js', ['goog.ui.ColorPicker', 'goog.ui.ColorPicker.EventType'], ['goog.ui.ColorPalette', 'goog.ui.Component']); +goog.addDependency('ui/colorsplitbehavior.js', ['goog.ui.ColorSplitBehavior'], ['goog.ui.ColorMenuButton', 'goog.ui.SplitBehavior']); +goog.addDependency('ui/combobox.js', ['goog.ui.ComboBox', 'goog.ui.ComboBoxItem'], ['goog.Timer', 'goog.dom', 'goog.dom.classlist', 'goog.events.EventType', 'goog.events.InputHandler', 'goog.events.KeyCodes', 'goog.events.KeyHandler', 'goog.log', 'goog.positioning.Corner', 'goog.positioning.MenuAnchoredPosition', 'goog.string', 'goog.style', 'goog.ui.Component', 'goog.ui.ItemEvent', 'goog.ui.LabelInput', 'goog.ui.Menu', 'goog.ui.MenuItem', 'goog.ui.MenuSeparator', 'goog.ui.registry', 'goog.userAgent']); +goog.addDependency('ui/component.js', ['goog.ui.Component', 'goog.ui.Component.Error', 'goog.ui.Component.EventType', 'goog.ui.Component.State'], ['goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.NodeType', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.object', 'goog.style', 'goog.ui.IdGenerator']); +goog.addDependency('ui/container.js', ['goog.ui.Container', 'goog.ui.Container.EventType', 'goog.ui.Container.Orientation'], ['goog.a11y.aria', 'goog.a11y.aria.State', 'goog.asserts', 'goog.dom', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.events.KeyHandler', 'goog.object', 'goog.style', 'goog.ui.Component', 'goog.ui.ContainerRenderer', 'goog.ui.Control']); +goog.addDependency('ui/containerrenderer.js', ['goog.ui.ContainerRenderer'], ['goog.a11y.aria', 'goog.array', 'goog.asserts', 'goog.dom.NodeType', 'goog.dom.classes', 'goog.string', 'goog.style', 'goog.ui.registry', 'goog.userAgent']); +goog.addDependency('ui/containerscroller.js', ['goog.ui.ContainerScroller'], ['goog.Disposable', 'goog.Timer', 'goog.events.EventHandler', 'goog.style', 'goog.ui.Component', 'goog.ui.Container']); +goog.addDependency('ui/control.js', ['goog.ui.Control'], ['goog.array', 'goog.dom', 'goog.events.Event', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.events.KeyHandler', 'goog.string', 'goog.ui.Component', 'goog.ui.ControlContent', 'goog.ui.ControlRenderer', 'goog.ui.decorate', 'goog.ui.registry', 'goog.userAgent']); +goog.addDependency('ui/controlcontent.js', ['goog.ui.ControlContent'], []); +goog.addDependency('ui/controlrenderer.js', ['goog.ui.ControlRenderer'], ['goog.a11y.aria', 'goog.a11y.aria.State', 'goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.classes', 'goog.object', 'goog.style', 'goog.ui.Component', 'goog.userAgent']); +goog.addDependency('ui/cookieeditor.js', ['goog.ui.CookieEditor'], ['goog.asserts', 'goog.dom', 'goog.dom.TagName', 'goog.events.EventType', 'goog.net.cookies', 'goog.string', 'goog.style', 'goog.ui.Component']); +goog.addDependency('ui/css3buttonrenderer.js', ['goog.ui.Css3ButtonRenderer'], ['goog.dom.TagName', 'goog.dom.classes', 'goog.ui.Button', 'goog.ui.ButtonRenderer', 'goog.ui.Component', 'goog.ui.INLINE_BLOCK_CLASSNAME', 'goog.ui.registry']); +goog.addDependency('ui/css3menubuttonrenderer.js', ['goog.ui.Css3MenuButtonRenderer'], ['goog.dom', 'goog.dom.TagName', 'goog.ui.INLINE_BLOCK_CLASSNAME', 'goog.ui.MenuButton', 'goog.ui.MenuButtonRenderer', 'goog.ui.registry']); +goog.addDependency('ui/cssnames.js', ['goog.ui.INLINE_BLOCK_CLASSNAME'], []); +goog.addDependency('ui/custombutton.js', ['goog.ui.CustomButton'], ['goog.ui.Button', 'goog.ui.CustomButtonRenderer', 'goog.ui.registry']); +goog.addDependency('ui/custombuttonrenderer.js', ['goog.ui.CustomButtonRenderer'], ['goog.a11y.aria.Role', 'goog.dom.NodeType', 'goog.dom.classes', 'goog.string', 'goog.ui.ButtonRenderer', 'goog.ui.INLINE_BLOCK_CLASSNAME']); +goog.addDependency('ui/customcolorpalette.js', ['goog.ui.CustomColorPalette'], ['goog.color', 'goog.dom', 'goog.dom.classes', 'goog.ui.ColorPalette', 'goog.ui.Component']); +goog.addDependency('ui/datepicker.js', ['goog.ui.DatePicker', 'goog.ui.DatePicker.Events', 'goog.ui.DatePickerEvent'], ['goog.a11y.aria', 'goog.asserts', 'goog.date', 'goog.date.Date', 'goog.date.Interval', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.classes', 'goog.events.Event', 'goog.events.EventType', 'goog.events.KeyHandler', 'goog.i18n.DateTimeFormat', 'goog.i18n.DateTimeSymbols', 'goog.string', 'goog.style', 'goog.ui.Component', 'goog.ui.DefaultDatePickerRenderer', 'goog.ui.IdGenerator']); +goog.addDependency('ui/datepickerrenderer.js', ['goog.ui.DatePickerRenderer'], []); +goog.addDependency('ui/decorate.js', ['goog.ui.decorate'], ['goog.ui.registry']); +goog.addDependency('ui/defaultdatepickerrenderer.js', ['goog.ui.DefaultDatePickerRenderer'], ['goog.dom', 'goog.dom.TagName', 'goog.ui.DatePickerRenderer']); +goog.addDependency('ui/dialog.js', ['goog.ui.Dialog', 'goog.ui.Dialog.ButtonSet', 'goog.ui.Dialog.ButtonSet.DefaultButtons', 'goog.ui.Dialog.DefaultButtonCaptions', 'goog.ui.Dialog.DefaultButtonKeys', 'goog.ui.Dialog.Event', 'goog.ui.Dialog.EventType'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.asserts', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.dom.classes', 'goog.events', 'goog.events.Event', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.fx.Dragger', 'goog.math.Rect', 'goog.structs', 'goog.structs.Map', 'goog.style', 'goog.ui.ModalPopup', 'goog.userAgent']); +goog.addDependency('ui/dimensionpicker.js', ['goog.ui.DimensionPicker'], ['goog.events.EventType', 'goog.events.KeyCodes', 'goog.math.Size', 'goog.ui.Component', 'goog.ui.Control', 'goog.ui.DimensionPickerRenderer', 'goog.ui.registry']); +goog.addDependency('ui/dimensionpickerrenderer.js', ['goog.ui.DimensionPickerRenderer'], ['goog.a11y.aria', 'goog.a11y.aria.State', 'goog.dom', 'goog.dom.TagName', 'goog.i18n.bidi', 'goog.style', 'goog.ui.ControlRenderer', 'goog.userAgent']); +goog.addDependency('ui/dragdropdetector.js', ['goog.ui.DragDropDetector', 'goog.ui.DragDropDetector.EventType', 'goog.ui.DragDropDetector.ImageDropEvent', 'goog.ui.DragDropDetector.LinkDropEvent'], ['goog.dom', 'goog.dom.TagName', 'goog.events.Event', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.math.Coordinate', 'goog.string', 'goog.style', 'goog.userAgent']); +goog.addDependency('ui/drilldownrow.js', ['goog.ui.DrilldownRow'], ['goog.dom', 'goog.dom.classes', 'goog.ui.Component']); +goog.addDependency('ui/editor/abstractdialog.js', ['goog.ui.editor.AbstractDialog', 'goog.ui.editor.AbstractDialog.Builder', 'goog.ui.editor.AbstractDialog.EventType'], ['goog.dom', 'goog.dom.classes', 'goog.events.EventTarget', 'goog.string', 'goog.ui.Dialog']); +goog.addDependency('ui/editor/bubble.js', ['goog.ui.editor.Bubble'], ['goog.dom', 'goog.dom.TagName', 'goog.dom.ViewportSizeMonitor', 'goog.dom.classes', 'goog.editor.style', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.log', 'goog.math.Box', 'goog.object', 'goog.positioning', 'goog.positioning.Corner', 'goog.positioning.Overflow', 'goog.positioning.OverflowStatus', 'goog.string', 'goog.style', 'goog.ui.Component', 'goog.ui.PopupBase', 'goog.userAgent']); +goog.addDependency('ui/editor/defaulttoolbar.js', ['goog.ui.editor.ButtonDescriptor', 'goog.ui.editor.DefaultToolbar'], ['goog.dom', 'goog.dom.TagName', 'goog.dom.classes', 'goog.editor.Command', 'goog.style', 'goog.ui.editor.ToolbarFactory', 'goog.ui.editor.messages', 'goog.userAgent']); +goog.addDependency('ui/editor/equationeditordialog.js', ['goog.ui.editor.EquationEditorDialog'], ['goog.editor.Command', 'goog.ui.Dialog', 'goog.ui.editor.AbstractDialog', 'goog.ui.editor.EquationEditorOkEvent', 'goog.ui.equation.TexEditor']); +goog.addDependency('ui/editor/equationeditorokevent.js', ['goog.ui.editor.EquationEditorOkEvent'], ['goog.events.Event', 'goog.ui.editor.AbstractDialog']); +goog.addDependency('ui/editor/linkdialog.js', ['goog.ui.editor.LinkDialog', 'goog.ui.editor.LinkDialog.BeforeTestLinkEvent', 'goog.ui.editor.LinkDialog.EventType', 'goog.ui.editor.LinkDialog.OkEvent'], ['goog.dom', 'goog.dom.TagName', 'goog.editor.BrowserFeature', 'goog.editor.Link', 'goog.editor.focus', 'goog.editor.node', 'goog.events.Event', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.events.InputHandler', 'goog.string', 'goog.style', 'goog.ui.Button', 'goog.ui.Component', 'goog.ui.LinkButtonRenderer', 'goog.ui.editor.AbstractDialog', 'goog.ui.editor.TabPane', 'goog.ui.editor.messages', 'goog.userAgent', 'goog.window']); +goog.addDependency('ui/editor/messages.js', ['goog.ui.editor.messages'], []); +goog.addDependency('ui/editor/tabpane.js', ['goog.ui.editor.TabPane'], ['goog.dom.TagName', 'goog.dom.classes', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.style', 'goog.ui.Component', 'goog.ui.Control', 'goog.ui.Tab', 'goog.ui.TabBar']); +goog.addDependency('ui/editor/toolbarcontroller.js', ['goog.ui.editor.ToolbarController'], ['goog.editor.Field', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.ui.Component']); +goog.addDependency('ui/editor/toolbarfactory.js', ['goog.ui.editor.ToolbarFactory'], ['goog.array', 'goog.dom', 'goog.dom.TagName', 'goog.string', 'goog.string.Unicode', 'goog.style', 'goog.ui.Component', 'goog.ui.Container', 'goog.ui.Option', 'goog.ui.Toolbar', 'goog.ui.ToolbarButton', 'goog.ui.ToolbarColorMenuButton', 'goog.ui.ToolbarMenuButton', 'goog.ui.ToolbarRenderer', 'goog.ui.ToolbarSelect', 'goog.userAgent']); +goog.addDependency('ui/emoji/emoji.js', ['goog.ui.emoji.Emoji'], []); +goog.addDependency('ui/emoji/emojipalette.js', ['goog.ui.emoji.EmojiPalette'], ['goog.events.EventType', 'goog.net.ImageLoader', 'goog.ui.Palette', 'goog.ui.emoji.Emoji', 'goog.ui.emoji.EmojiPaletteRenderer']); +goog.addDependency('ui/emoji/emojipaletterenderer.js', ['goog.ui.emoji.EmojiPaletteRenderer'], ['goog.a11y.aria', 'goog.dom.NodeType', 'goog.dom.classes', 'goog.style', 'goog.ui.PaletteRenderer', 'goog.ui.emoji.Emoji']); +goog.addDependency('ui/emoji/emojipicker.js', ['goog.ui.emoji.EmojiPicker'], ['goog.log', 'goog.style', 'goog.ui.Component', 'goog.ui.TabPane', 'goog.ui.emoji.Emoji', 'goog.ui.emoji.EmojiPalette', 'goog.ui.emoji.EmojiPaletteRenderer', 'goog.ui.emoji.ProgressiveEmojiPaletteRenderer']); +goog.addDependency('ui/emoji/popupemojipicker.js', ['goog.ui.emoji.PopupEmojiPicker'], ['goog.events.EventType', 'goog.positioning.AnchoredPosition', 'goog.positioning.Corner', 'goog.ui.Component', 'goog.ui.Popup', 'goog.ui.emoji.EmojiPicker']); +goog.addDependency('ui/emoji/progressiveemojipaletterenderer.js', ['goog.ui.emoji.ProgressiveEmojiPaletteRenderer'], ['goog.style', 'goog.ui.emoji.EmojiPaletteRenderer']); +goog.addDependency('ui/emoji/spriteinfo.js', ['goog.ui.emoji.SpriteInfo'], []); +goog.addDependency('ui/equation/arrowpalette.js', ['goog.ui.equation.ArrowPalette'], ['goog.math.Size', 'goog.ui.equation.Palette']); +goog.addDependency('ui/equation/changeevent.js', ['goog.ui.equation.ChangeEvent'], ['goog.events.Event']); +goog.addDependency('ui/equation/comparisonpalette.js', ['goog.ui.equation.ComparisonPalette'], ['goog.math.Size', 'goog.ui.equation.Palette']); +goog.addDependency('ui/equation/editorpane.js', ['goog.ui.equation.EditorPane'], ['goog.style', 'goog.ui.Component']); +goog.addDependency('ui/equation/equationeditor.js', ['goog.ui.equation.EquationEditor'], ['goog.events', 'goog.ui.Component', 'goog.ui.TabBar', 'goog.ui.equation.ImageRenderer', 'goog.ui.equation.TexPane']); +goog.addDependency('ui/equation/equationeditordialog.js', ['goog.ui.equation.EquationEditorDialog'], ['goog.dom', 'goog.dom.classes', 'goog.ui.Dialog', 'goog.ui.equation.EquationEditor', 'goog.ui.equation.PaletteManager', 'goog.ui.equation.TexEditor']); +goog.addDependency('ui/equation/greekpalette.js', ['goog.ui.equation.GreekPalette'], ['goog.math.Size', 'goog.ui.equation.Palette']); +goog.addDependency('ui/equation/imagerenderer.js', ['goog.ui.equation.ImageRenderer'], ['goog.dom.TagName', 'goog.dom.classes', 'goog.string', 'goog.uri.utils']); +goog.addDependency('ui/equation/mathpalette.js', ['goog.ui.equation.MathPalette'], ['goog.math.Size', 'goog.ui.equation.Palette']); +goog.addDependency('ui/equation/menupalette.js', ['goog.ui.equation.MenuPalette', 'goog.ui.equation.MenuPaletteRenderer'], ['goog.math.Size', 'goog.ui.PaletteRenderer', 'goog.ui.equation.Palette', 'goog.ui.equation.PaletteRenderer']); +goog.addDependency('ui/equation/palette.js', ['goog.ui.equation.Palette', 'goog.ui.equation.PaletteEvent', 'goog.ui.equation.PaletteRenderer'], ['goog.dom', 'goog.dom.TagName', 'goog.events.Event', 'goog.ui.Palette', 'goog.ui.PaletteRenderer']); +goog.addDependency('ui/equation/palettemanager.js', ['goog.ui.equation.PaletteManager'], ['goog.Timer', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.ui.equation.ArrowPalette', 'goog.ui.equation.ComparisonPalette', 'goog.ui.equation.GreekPalette', 'goog.ui.equation.MathPalette', 'goog.ui.equation.MenuPalette', 'goog.ui.equation.Palette', 'goog.ui.equation.SymbolPalette']); +goog.addDependency('ui/equation/symbolpalette.js', ['goog.ui.equation.SymbolPalette'], ['goog.math.Size', 'goog.ui.equation.Palette']); +goog.addDependency('ui/equation/texeditor.js', ['goog.ui.equation.TexEditor'], ['goog.ui.Component', 'goog.ui.equation.ImageRenderer', 'goog.ui.equation.TexPane']); +goog.addDependency('ui/equation/texpane.js', ['goog.ui.equation.TexPane'], ['goog.Timer', 'goog.dom', 'goog.dom.TagName', 'goog.dom.selection', 'goog.events', 'goog.events.EventType', 'goog.events.InputHandler', 'goog.style', 'goog.ui.equation.ChangeEvent', 'goog.ui.equation.EditorPane', 'goog.ui.equation.ImageRenderer', 'goog.ui.equation.Palette', 'goog.ui.equation.PaletteEvent']); +goog.addDependency('ui/filteredmenu.js', ['goog.ui.FilteredMenu'], ['goog.dom', 'goog.events', 'goog.events.EventType', 'goog.events.InputHandler', 'goog.events.KeyCodes', 'goog.string', 'goog.style', 'goog.ui.Component', 'goog.ui.FilterObservingMenuItem', 'goog.ui.Menu', 'goog.userAgent']); +goog.addDependency('ui/filterobservingmenuitem.js', ['goog.ui.FilterObservingMenuItem'], ['goog.ui.FilterObservingMenuItemRenderer', 'goog.ui.MenuItem', 'goog.ui.registry']); +goog.addDependency('ui/filterobservingmenuitemrenderer.js', ['goog.ui.FilterObservingMenuItemRenderer'], ['goog.ui.MenuItemRenderer']); +goog.addDependency('ui/flatbuttonrenderer.js', ['goog.ui.FlatButtonRenderer'], ['goog.a11y.aria.Role', 'goog.dom.classes', 'goog.ui.Button', 'goog.ui.ButtonRenderer', 'goog.ui.INLINE_BLOCK_CLASSNAME', 'goog.ui.registry']); +goog.addDependency('ui/flatmenubuttonrenderer.js', ['goog.ui.FlatMenuButtonRenderer'], ['goog.a11y.aria', 'goog.a11y.aria.State', 'goog.asserts', 'goog.dom', 'goog.string', 'goog.style', 'goog.ui.Component', 'goog.ui.FlatButtonRenderer', 'goog.ui.INLINE_BLOCK_CLASSNAME', 'goog.ui.Menu', 'goog.ui.MenuButton', 'goog.ui.MenuRenderer', 'goog.ui.registry']); +goog.addDependency('ui/formpost.js', ['goog.ui.FormPost'], ['goog.array', 'goog.dom.TagName', 'goog.string', 'goog.string.StringBuffer', 'goog.ui.Component']); +goog.addDependency('ui/gauge.js', ['goog.ui.Gauge', 'goog.ui.GaugeColoredRange'], ['goog.a11y.aria', 'goog.asserts', 'goog.events', 'goog.fx.Animation', 'goog.fx.Transition', 'goog.fx.easing', 'goog.graphics', 'goog.graphics.Font', 'goog.graphics.Path', 'goog.graphics.SolidFill', 'goog.math', 'goog.ui.Component', 'goog.ui.GaugeTheme']); +goog.addDependency('ui/gaugetheme.js', ['goog.ui.GaugeTheme'], ['goog.graphics.LinearGradient', 'goog.graphics.SolidFill', 'goog.graphics.Stroke']); +goog.addDependency('ui/hovercard.js', ['goog.ui.HoverCard', 'goog.ui.HoverCard.EventType', 'goog.ui.HoverCard.TriggerEvent'], ['goog.array', 'goog.dom', 'goog.events', 'goog.events.Event', 'goog.events.EventType', 'goog.ui.AdvancedTooltip', 'goog.ui.PopupBase', 'goog.ui.Tooltip']); +goog.addDependency('ui/hsvapalette.js', ['goog.ui.HsvaPalette'], ['goog.array', 'goog.color.alpha', 'goog.dom', 'goog.dom.TagName', 'goog.events', 'goog.events.EventType', 'goog.style', 'goog.ui.Component', 'goog.ui.HsvPalette']); +goog.addDependency('ui/hsvpalette.js', ['goog.ui.HsvPalette'], ['goog.color', 'goog.dom.TagName', 'goog.events', 'goog.events.EventType', 'goog.events.InputHandler', 'goog.style', 'goog.style.bidi', 'goog.ui.Component', 'goog.userAgent']); +goog.addDependency('ui/idgenerator.js', ['goog.ui.IdGenerator'], []); +goog.addDependency('ui/idletimer.js', ['goog.ui.IdleTimer'], ['goog.Timer', 'goog.events', 'goog.events.EventTarget', 'goog.structs.Set', 'goog.ui.ActivityMonitor']); +goog.addDependency('ui/iframemask.js', ['goog.ui.IframeMask'], ['goog.Disposable', 'goog.Timer', 'goog.dom', 'goog.dom.iframe', 'goog.events.EventHandler', 'goog.style']); +goog.addDependency('ui/imagelessbuttonrenderer.js', ['goog.ui.ImagelessButtonRenderer'], ['goog.dom.classes', 'goog.ui.Button', 'goog.ui.Component', 'goog.ui.CustomButtonRenderer', 'goog.ui.INLINE_BLOCK_CLASSNAME', 'goog.ui.registry']); +goog.addDependency('ui/imagelessmenubuttonrenderer.js', ['goog.ui.ImagelessMenuButtonRenderer'], ['goog.dom', 'goog.dom.TagName', 'goog.dom.classes', 'goog.ui.INLINE_BLOCK_CLASSNAME', 'goog.ui.MenuButton', 'goog.ui.MenuButtonRenderer', 'goog.ui.registry']); +goog.addDependency('ui/inputdatepicker.js', ['goog.ui.InputDatePicker'], ['goog.date.DateTime', 'goog.dom', 'goog.string', 'goog.ui.Component', 'goog.ui.DatePicker', 'goog.ui.PopupBase', 'goog.ui.PopupDatePicker']); +goog.addDependency('ui/itemevent.js', ['goog.ui.ItemEvent'], ['goog.events.Event']); +goog.addDependency('ui/keyboardshortcuthandler.js', ['goog.ui.KeyboardShortcutEvent', 'goog.ui.KeyboardShortcutHandler', 'goog.ui.KeyboardShortcutHandler.EventType'], ['goog.Timer', 'goog.events', 'goog.events.Event', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.events.KeyNames', 'goog.object', 'goog.userAgent']); +goog.addDependency('ui/labelinput.js', ['goog.ui.LabelInput'], ['goog.Timer', 'goog.a11y.aria', 'goog.a11y.aria.State', 'goog.asserts', 'goog.dom', 'goog.dom.classlist', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.ui.Component', 'goog.userAgent']); +goog.addDependency('ui/linkbuttonrenderer.js', ['goog.ui.LinkButtonRenderer'], ['goog.ui.Button', 'goog.ui.FlatButtonRenderer', 'goog.ui.registry']); +goog.addDependency('ui/media/flashobject.js', ['goog.ui.media.FlashObject', 'goog.ui.media.FlashObject.ScriptAccessLevel', 'goog.ui.media.FlashObject.Wmodes'], ['goog.asserts', 'goog.events.Event', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.log', 'goog.object', 'goog.string', 'goog.structs.Map', 'goog.style', 'goog.ui.Component', 'goog.userAgent', 'goog.userAgent.flash']); +goog.addDependency('ui/media/flickr.js', ['goog.ui.media.FlickrSet', 'goog.ui.media.FlickrSetModel'], ['goog.ui.media.FlashObject', 'goog.ui.media.Media', 'goog.ui.media.MediaModel', 'goog.ui.media.MediaRenderer']); +goog.addDependency('ui/media/googlevideo.js', ['goog.ui.media.GoogleVideo', 'goog.ui.media.GoogleVideoModel'], ['goog.string', 'goog.ui.media.FlashObject', 'goog.ui.media.Media', 'goog.ui.media.MediaModel', 'goog.ui.media.MediaRenderer']); +goog.addDependency('ui/media/media.js', ['goog.ui.media.Media', 'goog.ui.media.MediaRenderer'], ['goog.style', 'goog.ui.Component', 'goog.ui.Control', 'goog.ui.ControlRenderer']); +goog.addDependency('ui/media/mediamodel.js', ['goog.ui.media.MediaModel', 'goog.ui.media.MediaModel.Category', 'goog.ui.media.MediaModel.Credit', 'goog.ui.media.MediaModel.Credit.Role', 'goog.ui.media.MediaModel.Credit.Scheme', 'goog.ui.media.MediaModel.Medium', 'goog.ui.media.MediaModel.MimeType', 'goog.ui.media.MediaModel.Player', 'goog.ui.media.MediaModel.SubTitle', 'goog.ui.media.MediaModel.Thumbnail'], ['goog.array']); +goog.addDependency('ui/media/mp3.js', ['goog.ui.media.Mp3'], ['goog.string', 'goog.ui.media.FlashObject', 'goog.ui.media.Media', 'goog.ui.media.MediaRenderer']); +goog.addDependency('ui/media/photo.js', ['goog.ui.media.Photo'], ['goog.ui.media.Media', 'goog.ui.media.MediaRenderer']); +goog.addDependency('ui/media/picasa.js', ['goog.ui.media.PicasaAlbum', 'goog.ui.media.PicasaAlbumModel'], ['goog.ui.media.FlashObject', 'goog.ui.media.Media', 'goog.ui.media.MediaModel', 'goog.ui.media.MediaRenderer']); +goog.addDependency('ui/media/vimeo.js', ['goog.ui.media.Vimeo', 'goog.ui.media.VimeoModel'], ['goog.string', 'goog.ui.media.FlashObject', 'goog.ui.media.Media', 'goog.ui.media.MediaModel', 'goog.ui.media.MediaRenderer']); +goog.addDependency('ui/media/youtube.js', ['goog.ui.media.Youtube', 'goog.ui.media.YoutubeModel'], ['goog.string', 'goog.ui.Component', 'goog.ui.media.FlashObject', 'goog.ui.media.Media', 'goog.ui.media.MediaModel', 'goog.ui.media.MediaRenderer']); +goog.addDependency('ui/menu.js', ['goog.ui.Menu', 'goog.ui.Menu.EventType'], ['goog.math.Coordinate', 'goog.string', 'goog.style', 'goog.ui.Component.EventType', 'goog.ui.Component.State', 'goog.ui.Container', 'goog.ui.Container.Orientation', 'goog.ui.MenuHeader', 'goog.ui.MenuItem', 'goog.ui.MenuRenderer', 'goog.ui.MenuSeparator']); +goog.addDependency('ui/menubar.js', ['goog.ui.menuBar'], ['goog.ui.Container', 'goog.ui.MenuBarRenderer']); +goog.addDependency('ui/menubardecorator.js', ['goog.ui.menuBarDecorator'], ['goog.ui.MenuBarRenderer', 'goog.ui.menuBar', 'goog.ui.registry']); +goog.addDependency('ui/menubarrenderer.js', ['goog.ui.MenuBarRenderer'], ['goog.a11y.aria.Role', 'goog.ui.Container', 'goog.ui.ContainerRenderer']); +goog.addDependency('ui/menubase.js', ['goog.ui.MenuBase'], ['goog.events.EventHandler', 'goog.events.EventType', 'goog.events.KeyHandler', 'goog.ui.Popup']); +goog.addDependency('ui/menubutton.js', ['goog.ui.MenuButton'], ['goog.Timer', 'goog.a11y.aria', 'goog.a11y.aria.State', 'goog.asserts', 'goog.dom', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.events.KeyHandler', 'goog.math.Box', 'goog.math.Rect', 'goog.positioning', 'goog.positioning.Corner', 'goog.positioning.MenuAnchoredPosition', 'goog.positioning.Overflow', 'goog.style', 'goog.ui.Button', 'goog.ui.Component', 'goog.ui.Menu', 'goog.ui.MenuButtonRenderer', 'goog.ui.registry', 'goog.userAgent', 'goog.userAgent.product']); +goog.addDependency('ui/menubuttonrenderer.js', ['goog.ui.MenuButtonRenderer'], ['goog.a11y.aria', 'goog.a11y.aria.State', 'goog.asserts', 'goog.dom', 'goog.string', 'goog.style', 'goog.ui.Component', 'goog.ui.CustomButtonRenderer', 'goog.ui.INLINE_BLOCK_CLASSNAME', 'goog.ui.Menu', 'goog.ui.MenuRenderer', 'goog.userAgent']); +goog.addDependency('ui/menuheader.js', ['goog.ui.MenuHeader'], ['goog.ui.Component', 'goog.ui.Control', 'goog.ui.MenuHeaderRenderer', 'goog.ui.registry']); +goog.addDependency('ui/menuheaderrenderer.js', ['goog.ui.MenuHeaderRenderer'], ['goog.ui.ControlRenderer']); +goog.addDependency('ui/menuitem.js', ['goog.ui.MenuItem'], ['goog.array', 'goog.dom', 'goog.dom.classes', 'goog.math.Coordinate', 'goog.string', 'goog.ui.Component', 'goog.ui.Control', 'goog.ui.MenuItemRenderer', 'goog.ui.registry']); +goog.addDependency('ui/menuitemrenderer.js', ['goog.ui.MenuItemRenderer'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.dom', 'goog.dom.classes', 'goog.ui.Component', 'goog.ui.ControlRenderer']); +goog.addDependency('ui/menurenderer.js', ['goog.ui.MenuRenderer'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.asserts', 'goog.dom', 'goog.ui.ContainerRenderer', 'goog.ui.Separator']); +goog.addDependency('ui/menuseparator.js', ['goog.ui.MenuSeparator'], ['goog.ui.MenuSeparatorRenderer', 'goog.ui.Separator', 'goog.ui.registry']); +goog.addDependency('ui/menuseparatorrenderer.js', ['goog.ui.MenuSeparatorRenderer'], ['goog.dom', 'goog.dom.classes', 'goog.ui.ControlContent', 'goog.ui.ControlRenderer']); +goog.addDependency('ui/mockactivitymonitor.js', ['goog.ui.MockActivityMonitor'], ['goog.events.EventType', 'goog.ui.ActivityMonitor']); +goog.addDependency('ui/mockactivitymonitor_test.js', ['goog.ui.MockActivityMonitorTest'], ['goog.events', 'goog.functions', 'goog.testing.jsunit', 'goog.testing.recordFunction', 'goog.ui.ActivityMonitor', 'goog.ui.MockActivityMonitor']); +goog.addDependency('ui/modalpopup.js', ['goog.ui.ModalPopup'], ['goog.Timer', 'goog.a11y.aria', 'goog.a11y.aria.State', 'goog.asserts', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.dom.classes', 'goog.dom.iframe', 'goog.events', 'goog.events.EventType', 'goog.events.FocusHandler', 'goog.fx.Transition', 'goog.style', 'goog.ui.Component', 'goog.ui.PopupBase', 'goog.userAgent']); +goog.addDependency('ui/nativebuttonrenderer.js', ['goog.ui.NativeButtonRenderer'], ['goog.dom.classes', 'goog.events.EventType', 'goog.ui.ButtonRenderer', 'goog.ui.Component']); +goog.addDependency('ui/offlineinstalldialog.js', ['goog.ui.OfflineInstallDialog', 'goog.ui.OfflineInstallDialog.ButtonKeyType', 'goog.ui.OfflineInstallDialog.EnableScreen', 'goog.ui.OfflineInstallDialog.InstallScreen', 'goog.ui.OfflineInstallDialog.InstallingGearsScreen', 'goog.ui.OfflineInstallDialog.ScreenType', 'goog.ui.OfflineInstallDialog.UpgradeScreen', 'goog.ui.OfflineInstallDialogScreen'], ['goog.Disposable', 'goog.dom.classes', 'goog.gears', 'goog.string', 'goog.string.StringBuffer', 'goog.ui.Dialog', 'goog.window']); +goog.addDependency('ui/offlinestatuscard.js', ['goog.ui.OfflineStatusCard', 'goog.ui.OfflineStatusCard.EventType'], ['goog.dom', 'goog.events.EventType', 'goog.gears.StatusType', 'goog.structs.Map', 'goog.style', 'goog.ui.Component', 'goog.ui.ProgressBar']); +goog.addDependency('ui/offlinestatuscomponent.js', ['goog.ui.OfflineStatusComponent', 'goog.ui.OfflineStatusComponent.StatusClassNames'], ['goog.dom.classes', 'goog.events.EventType', 'goog.gears.StatusType', 'goog.positioning.AnchoredPosition', 'goog.positioning.Corner', 'goog.positioning.Overflow', 'goog.ui.Component', 'goog.ui.OfflineStatusCard', 'goog.ui.Popup']); +goog.addDependency('ui/option.js', ['goog.ui.Option'], ['goog.ui.Component', 'goog.ui.MenuItem', 'goog.ui.registry']); +goog.addDependency('ui/palette.js', ['goog.ui.Palette'], ['goog.array', 'goog.dom', 'goog.events', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.math.Size', 'goog.ui.Component', 'goog.ui.Control', 'goog.ui.PaletteRenderer', 'goog.ui.SelectionModel']); +goog.addDependency('ui/paletterenderer.js', ['goog.ui.PaletteRenderer'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.array', 'goog.dom', 'goog.dom.NodeIterator', 'goog.dom.NodeType', 'goog.dom.TagName', 'goog.dom.classes', 'goog.iter', 'goog.style', 'goog.ui.ControlRenderer', 'goog.userAgent']); +goog.addDependency('ui/plaintextspellchecker.js', ['goog.ui.PlainTextSpellChecker'], ['goog.Timer', 'goog.a11y.aria', 'goog.asserts', 'goog.dom', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.events.KeyHandler', 'goog.spell.SpellCheck', 'goog.style', 'goog.ui.AbstractSpellChecker', 'goog.ui.Component', 'goog.userAgent']); +goog.addDependency('ui/popup.js', ['goog.ui.Popup', 'goog.ui.Popup.AbsolutePosition', 'goog.ui.Popup.AnchoredPosition', 'goog.ui.Popup.AnchoredViewPortPosition', 'goog.ui.Popup.ClientPosition', 'goog.ui.Popup.Corner', 'goog.ui.Popup.Overflow', 'goog.ui.Popup.ViewPortClientPosition', 'goog.ui.Popup.ViewPortPosition'], ['goog.math.Box', 'goog.positioning.AbsolutePosition', 'goog.positioning.AnchoredPosition', 'goog.positioning.AnchoredViewportPosition', 'goog.positioning.ClientPosition', 'goog.positioning.Corner', 'goog.positioning.Overflow', 'goog.positioning.ViewportClientPosition', 'goog.positioning.ViewportPosition', 'goog.style', 'goog.ui.PopupBase']); +goog.addDependency('ui/popupbase.js', ['goog.ui.PopupBase', 'goog.ui.PopupBase.EventType', 'goog.ui.PopupBase.Type'], ['goog.Timer', 'goog.dom', 'goog.events', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.fx.Transition', 'goog.style', 'goog.userAgent']); +goog.addDependency('ui/popupcolorpicker.js', ['goog.ui.PopupColorPicker'], ['goog.dom.classes', 'goog.events.EventType', 'goog.positioning.AnchoredPosition', 'goog.positioning.Corner', 'goog.ui.ColorPicker', 'goog.ui.Component', 'goog.ui.Popup']); +goog.addDependency('ui/popupdatepicker.js', ['goog.ui.PopupDatePicker'], ['goog.events.EventType', 'goog.positioning.AnchoredPosition', 'goog.positioning.Corner', 'goog.style', 'goog.ui.Component', 'goog.ui.DatePicker', 'goog.ui.Popup', 'goog.ui.PopupBase']); +goog.addDependency('ui/popupmenu.js', ['goog.ui.PopupMenu'], ['goog.events.EventType', 'goog.positioning.AnchoredViewportPosition', 'goog.positioning.Corner', 'goog.positioning.MenuAnchoredPosition', 'goog.positioning.ViewportClientPosition', 'goog.structs', 'goog.structs.Map', 'goog.style', 'goog.ui.Component.EventType', 'goog.ui.Menu', 'goog.ui.PopupBase', 'goog.userAgent']); +goog.addDependency('ui/progressbar.js', ['goog.ui.ProgressBar', 'goog.ui.ProgressBar.Orientation'], ['goog.a11y.aria', 'goog.asserts', 'goog.dom', 'goog.dom.classes', 'goog.events', 'goog.events.EventType', 'goog.ui.Component', 'goog.ui.RangeModel', 'goog.userAgent']); +goog.addDependency('ui/prompt.js', ['goog.ui.Prompt'], ['goog.Timer', 'goog.dom', 'goog.events', 'goog.events.EventType', 'goog.functions', 'goog.ui.Component', 'goog.ui.Dialog', 'goog.userAgent']); +goog.addDependency('ui/rangemodel.js', ['goog.ui.RangeModel'], ['goog.events.EventTarget', 'goog.ui.Component']); +goog.addDependency('ui/ratings.js', ['goog.ui.Ratings', 'goog.ui.Ratings.EventType'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.asserts', 'goog.dom.classes', 'goog.events.EventType', 'goog.ui.Component']); +goog.addDependency('ui/registry.js', ['goog.ui.registry'], ['goog.dom.classes']); +goog.addDependency('ui/richtextspellchecker.js', ['goog.ui.RichTextSpellChecker'], ['goog.Timer', 'goog.dom', 'goog.dom.NodeType', 'goog.events', 'goog.events.EventType', 'goog.spell.SpellCheck', 'goog.string.StringBuffer', 'goog.ui.AbstractSpellChecker']); +goog.addDependency('ui/roundedpanel.js', ['goog.ui.BaseRoundedPanel', 'goog.ui.CssRoundedPanel', 'goog.ui.GraphicsRoundedPanel', 'goog.ui.RoundedPanel', 'goog.ui.RoundedPanel.Corner'], ['goog.dom', 'goog.dom.classes', 'goog.graphics', 'goog.graphics.Path', 'goog.graphics.SolidFill', 'goog.graphics.Stroke', 'goog.math', 'goog.math.Coordinate', 'goog.style', 'goog.ui.Component', 'goog.userAgent']); +goog.addDependency('ui/roundedtabrenderer.js', ['goog.ui.RoundedTabRenderer'], ['goog.dom', 'goog.ui.Tab', 'goog.ui.TabBar', 'goog.ui.TabRenderer', 'goog.ui.registry']); +goog.addDependency('ui/scrollfloater.js', ['goog.ui.ScrollFloater', 'goog.ui.ScrollFloater.EventType'], ['goog.array', 'goog.dom', 'goog.dom.classes', 'goog.events.EventType', 'goog.style', 'goog.ui.Component', 'goog.userAgent']); +goog.addDependency('ui/select.js', ['goog.ui.Select'], ['goog.a11y.aria.Role', 'goog.events.EventType', 'goog.ui.Component', 'goog.ui.MenuButton', 'goog.ui.MenuItem', 'goog.ui.SelectionModel', 'goog.ui.registry']); +goog.addDependency('ui/selectionmenubutton.js', ['goog.ui.SelectionMenuButton', 'goog.ui.SelectionMenuButton.SelectionState'], ['goog.events.EventType', 'goog.style', 'goog.ui.Component', 'goog.ui.MenuButton', 'goog.ui.MenuItem', 'goog.ui.registry']); +goog.addDependency('ui/selectionmodel.js', ['goog.ui.SelectionModel'], ['goog.array', 'goog.events.EventTarget', 'goog.events.EventType']); +goog.addDependency('ui/separator.js', ['goog.ui.Separator'], ['goog.a11y.aria', 'goog.asserts', 'goog.ui.Component', 'goog.ui.Control', 'goog.ui.MenuSeparatorRenderer', 'goog.ui.registry']); +goog.addDependency('ui/serverchart.js', ['goog.ui.ServerChart', 'goog.ui.ServerChart.AxisDisplayType', 'goog.ui.ServerChart.ChartType', 'goog.ui.ServerChart.EncodingType', 'goog.ui.ServerChart.Event', 'goog.ui.ServerChart.LegendPosition', 'goog.ui.ServerChart.MaximumValue', 'goog.ui.ServerChart.MultiAxisAlignment', 'goog.ui.ServerChart.MultiAxisType', 'goog.ui.ServerChart.UriParam', 'goog.ui.ServerChart.UriTooLongEvent'], ['goog.Uri', 'goog.array', 'goog.asserts', 'goog.events.Event', 'goog.string', 'goog.ui.Component']); +goog.addDependency('ui/slider.js', ['goog.ui.Slider', 'goog.ui.Slider.Orientation'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.dom', 'goog.ui.SliderBase']); +goog.addDependency('ui/sliderbase.js', ['goog.ui.SliderBase', 'goog.ui.SliderBase.AnimationFactory', 'goog.ui.SliderBase.Orientation'], ['goog.Timer', 'goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.array', 'goog.asserts', 'goog.dom', 'goog.dom.classes', 'goog.events', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.events.KeyHandler', 'goog.events.MouseWheelHandler', 'goog.fx.AnimationParallelQueue', 'goog.fx.Dragger', 'goog.fx.Transition', 'goog.fx.dom.ResizeHeight', 'goog.fx.dom.ResizeWidth', 'goog.fx.dom.Slide', 'goog.math', 'goog.math.Coordinate', 'goog.style', 'goog.style.bidi', 'goog.ui.Component', 'goog.ui.RangeModel']); +goog.addDependency('ui/splitbehavior.js', ['goog.ui.SplitBehavior', 'goog.ui.SplitBehavior.DefaultHandlers'], ['goog.Disposable', 'goog.dispose', 'goog.dom', 'goog.dom.NodeType', 'goog.dom.classes', 'goog.events.EventHandler', 'goog.ui.ButtonSide', 'goog.ui.Component', 'goog.ui.decorate', 'goog.ui.registry']); +goog.addDependency('ui/splitpane.js', ['goog.ui.SplitPane', 'goog.ui.SplitPane.Orientation'], ['goog.dom', 'goog.dom.classes', 'goog.events.EventType', 'goog.fx.Dragger', 'goog.math.Rect', 'goog.math.Size', 'goog.style', 'goog.ui.Component', 'goog.userAgent']); +goog.addDependency('ui/style/app/buttonrenderer.js', ['goog.ui.style.app.ButtonRenderer'], ['goog.dom.classes', 'goog.ui.Button', 'goog.ui.CustomButtonRenderer', 'goog.ui.INLINE_BLOCK_CLASSNAME', 'goog.ui.registry']); +goog.addDependency('ui/style/app/menubuttonrenderer.js', ['goog.ui.style.app.MenuButtonRenderer'], ['goog.a11y.aria.Role', 'goog.array', 'goog.dom', 'goog.style', 'goog.ui.Menu', 'goog.ui.MenuRenderer', 'goog.ui.style.app.ButtonRenderer']); +goog.addDependency('ui/style/app/primaryactionbuttonrenderer.js', ['goog.ui.style.app.PrimaryActionButtonRenderer'], ['goog.ui.Button', 'goog.ui.registry', 'goog.ui.style.app.ButtonRenderer']); +goog.addDependency('ui/submenu.js', ['goog.ui.SubMenu'], ['goog.Timer', 'goog.dom', 'goog.dom.classes', 'goog.events.KeyCodes', 'goog.positioning.AnchoredViewportPosition', 'goog.positioning.Corner', 'goog.style', 'goog.ui.Component', 'goog.ui.Menu', 'goog.ui.MenuItem', 'goog.ui.SubMenuRenderer', 'goog.ui.registry']); +goog.addDependency('ui/submenurenderer.js', ['goog.ui.SubMenuRenderer'], ['goog.a11y.aria', 'goog.a11y.aria.State', 'goog.asserts', 'goog.dom', 'goog.dom.classes', 'goog.style', 'goog.ui.Menu', 'goog.ui.MenuItemRenderer']); +goog.addDependency('ui/tab.js', ['goog.ui.Tab'], ['goog.ui.Component', 'goog.ui.Control', 'goog.ui.TabRenderer', 'goog.ui.registry']); +goog.addDependency('ui/tabbar.js', ['goog.ui.TabBar', 'goog.ui.TabBar.Location'], ['goog.ui.Component.EventType', 'goog.ui.Container', 'goog.ui.Container.Orientation', 'goog.ui.Tab', 'goog.ui.TabBarRenderer', 'goog.ui.registry']); +goog.addDependency('ui/tabbarrenderer.js', ['goog.ui.TabBarRenderer'], ['goog.a11y.aria.Role', 'goog.object', 'goog.ui.ContainerRenderer']); +goog.addDependency('ui/tablesorter.js', ['goog.ui.TableSorter', 'goog.ui.TableSorter.EventType'], ['goog.array', 'goog.dom', 'goog.dom.TagName', 'goog.dom.classes', 'goog.events.EventType', 'goog.functions', 'goog.ui.Component']); +goog.addDependency('ui/tabpane.js', ['goog.ui.TabPane', 'goog.ui.TabPane.Events', 'goog.ui.TabPane.TabLocation', 'goog.ui.TabPane.TabPage', 'goog.ui.TabPaneEvent'], ['goog.dom', 'goog.dom.classes', 'goog.events', 'goog.events.Event', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.style']); +goog.addDependency('ui/tabrenderer.js', ['goog.ui.TabRenderer'], ['goog.a11y.aria.Role', 'goog.ui.Component', 'goog.ui.ControlRenderer']); +goog.addDependency('ui/textarea.js', ['goog.ui.Textarea', 'goog.ui.Textarea.EventType'], ['goog.dom', 'goog.events.EventType', 'goog.style', 'goog.ui.Control', 'goog.ui.TextareaRenderer', 'goog.userAgent']); +goog.addDependency('ui/textarearenderer.js', ['goog.ui.TextareaRenderer'], ['goog.dom.TagName', 'goog.ui.Component', 'goog.ui.ControlRenderer']); +goog.addDependency('ui/togglebutton.js', ['goog.ui.ToggleButton'], ['goog.ui.Button', 'goog.ui.Component', 'goog.ui.CustomButtonRenderer', 'goog.ui.registry']); +goog.addDependency('ui/toolbar.js', ['goog.ui.Toolbar'], ['goog.ui.Container', 'goog.ui.ToolbarRenderer']); +goog.addDependency('ui/toolbarbutton.js', ['goog.ui.ToolbarButton'], ['goog.ui.Button', 'goog.ui.ToolbarButtonRenderer', 'goog.ui.registry']); +goog.addDependency('ui/toolbarbuttonrenderer.js', ['goog.ui.ToolbarButtonRenderer'], ['goog.ui.CustomButtonRenderer']); +goog.addDependency('ui/toolbarcolormenubutton.js', ['goog.ui.ToolbarColorMenuButton'], ['goog.ui.ColorMenuButton', 'goog.ui.ToolbarColorMenuButtonRenderer', 'goog.ui.registry']); +goog.addDependency('ui/toolbarcolormenubuttonrenderer.js', ['goog.ui.ToolbarColorMenuButtonRenderer'], ['goog.dom.classes', 'goog.ui.ColorMenuButtonRenderer', 'goog.ui.MenuButtonRenderer', 'goog.ui.ToolbarMenuButtonRenderer']); +goog.addDependency('ui/toolbarmenubutton.js', ['goog.ui.ToolbarMenuButton'], ['goog.ui.MenuButton', 'goog.ui.ToolbarMenuButtonRenderer', 'goog.ui.registry']); +goog.addDependency('ui/toolbarmenubuttonrenderer.js', ['goog.ui.ToolbarMenuButtonRenderer'], ['goog.ui.MenuButtonRenderer']); +goog.addDependency('ui/toolbarrenderer.js', ['goog.ui.ToolbarRenderer'], ['goog.a11y.aria.Role', 'goog.ui.Container', 'goog.ui.ContainerRenderer', 'goog.ui.Separator', 'goog.ui.ToolbarSeparatorRenderer']); +goog.addDependency('ui/toolbarselect.js', ['goog.ui.ToolbarSelect'], ['goog.ui.Select', 'goog.ui.ToolbarMenuButtonRenderer', 'goog.ui.registry']); +goog.addDependency('ui/toolbarseparator.js', ['goog.ui.ToolbarSeparator'], ['goog.ui.Separator', 'goog.ui.ToolbarSeparatorRenderer', 'goog.ui.registry']); +goog.addDependency('ui/toolbarseparatorrenderer.js', ['goog.ui.ToolbarSeparatorRenderer'], ['goog.dom.classes', 'goog.ui.INLINE_BLOCK_CLASSNAME', 'goog.ui.MenuSeparatorRenderer']); +goog.addDependency('ui/toolbartogglebutton.js', ['goog.ui.ToolbarToggleButton'], ['goog.ui.ToggleButton', 'goog.ui.ToolbarButtonRenderer', 'goog.ui.registry']); +goog.addDependency('ui/tooltip.js', ['goog.ui.Tooltip', 'goog.ui.Tooltip.CursorTooltipPosition', 'goog.ui.Tooltip.ElementTooltipPosition', 'goog.ui.Tooltip.State'], ['goog.Timer', 'goog.array', 'goog.dom', 'goog.events', 'goog.events.EventType', 'goog.math.Box', 'goog.math.Coordinate', 'goog.positioning', 'goog.positioning.AnchoredPosition', 'goog.positioning.Corner', 'goog.positioning.Overflow', 'goog.positioning.OverflowStatus', 'goog.positioning.ViewportPosition', 'goog.structs.Set', 'goog.style', 'goog.ui.Popup', 'goog.ui.PopupBase']); +goog.addDependency('ui/tree/basenode.js', ['goog.ui.tree.BaseNode', 'goog.ui.tree.BaseNode.EventType'], ['goog.Timer', 'goog.a11y.aria', 'goog.asserts', 'goog.events.KeyCodes', 'goog.string', 'goog.string.StringBuffer', 'goog.style', 'goog.ui.Component', 'goog.userAgent']); +goog.addDependency('ui/tree/treecontrol.js', ['goog.ui.tree.TreeControl'], ['goog.a11y.aria', 'goog.asserts', 'goog.dom.classes', 'goog.events.EventType', 'goog.events.FocusHandler', 'goog.events.KeyHandler', 'goog.log', 'goog.ui.tree.BaseNode', 'goog.ui.tree.TreeNode', 'goog.ui.tree.TypeAhead', 'goog.userAgent']); +goog.addDependency('ui/tree/treenode.js', ['goog.ui.tree.TreeNode'], ['goog.ui.tree.BaseNode']); +goog.addDependency('ui/tree/typeahead.js', ['goog.ui.tree.TypeAhead', 'goog.ui.tree.TypeAhead.Offset'], ['goog.array', 'goog.events.KeyCodes', 'goog.string', 'goog.structs.Trie']); +goog.addDependency('ui/tristatemenuitem.js', ['goog.ui.TriStateMenuItem', 'goog.ui.TriStateMenuItem.State'], ['goog.dom.classes', 'goog.ui.Component', 'goog.ui.MenuItem', 'goog.ui.TriStateMenuItemRenderer', 'goog.ui.registry']); +goog.addDependency('ui/tristatemenuitemrenderer.js', ['goog.ui.TriStateMenuItemRenderer'], ['goog.dom.classes', 'goog.ui.MenuItemRenderer']); +goog.addDependency('ui/twothumbslider.js', ['goog.ui.TwoThumbSlider'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.dom', 'goog.ui.SliderBase']); +goog.addDependency('ui/zippy.js', ['goog.ui.Zippy', 'goog.ui.Zippy.Events', 'goog.ui.ZippyEvent'], ['goog.a11y.aria', 'goog.a11y.aria.Role', 'goog.a11y.aria.State', 'goog.dom', 'goog.dom.classes', 'goog.events.Event', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.style']); +goog.addDependency('uri/uri.js', ['goog.Uri', 'goog.Uri.QueryData'], ['goog.array', 'goog.string', 'goog.structs', 'goog.structs.Map', 'goog.uri.utils', 'goog.uri.utils.ComponentIndex', 'goog.uri.utils.StandardQueryParam']); +goog.addDependency('uri/uri_test.js', ['goog.UriTest'], ['goog.Uri', 'goog.testing.jsunit']); +goog.addDependency('uri/utils.js', ['goog.uri.utils', 'goog.uri.utils.ComponentIndex', 'goog.uri.utils.QueryArray', 'goog.uri.utils.QueryValue', 'goog.uri.utils.StandardQueryParam'], ['goog.asserts', 'goog.string', 'goog.userAgent']); +goog.addDependency('useragent/adobereader.js', ['goog.userAgent.adobeReader'], ['goog.string', 'goog.userAgent']); +goog.addDependency('useragent/flash.js', ['goog.userAgent.flash'], ['goog.string']); +goog.addDependency('useragent/iphoto.js', ['goog.userAgent.iphoto'], ['goog.string', 'goog.userAgent']); +goog.addDependency('useragent/jscript.js', ['goog.userAgent.jscript'], ['goog.string']); +goog.addDependency('useragent/picasa.js', ['goog.userAgent.picasa'], ['goog.string', 'goog.userAgent']); +goog.addDependency('useragent/platform.js', ['goog.userAgent.platform'], ['goog.userAgent']); +goog.addDependency('useragent/product.js', ['goog.userAgent.product'], ['goog.userAgent']); +goog.addDependency('useragent/product_isversion.js', ['goog.userAgent.product.isVersion'], ['goog.userAgent.product']); +goog.addDependency('useragent/useragent.js', ['goog.userAgent'], ['goog.string']); +goog.addDependency('vec/float32array.js', ['goog.vec.Float32Array'], []); +goog.addDependency('vec/float64array.js', ['goog.vec.Float64Array'], []); +goog.addDependency('vec/mat3.js', ['goog.vec.Mat3'], ['goog.vec']); +goog.addDependency('vec/mat3d.js', ['goog.vec.mat3d', 'goog.vec.mat3d.Type'], ['goog.vec']); +goog.addDependency('vec/mat3f.js', ['goog.vec.mat3f', 'goog.vec.mat3f.Type'], ['goog.vec']); +goog.addDependency('vec/mat4.js', ['goog.vec.Mat4'], ['goog.vec', 'goog.vec.Vec3', 'goog.vec.Vec4']); +goog.addDependency('vec/mat4d.js', ['goog.vec.mat4d', 'goog.vec.mat4d.Type'], ['goog.vec', 'goog.vec.vec3d', 'goog.vec.vec4d']); +goog.addDependency('vec/mat4f.js', ['goog.vec.mat4f', 'goog.vec.mat4f.Type'], ['goog.vec', 'goog.vec.vec3f', 'goog.vec.vec4f']); +goog.addDependency('vec/matrix3.js', ['goog.vec.Matrix3'], []); +goog.addDependency('vec/matrix4.js', ['goog.vec.Matrix4'], ['goog.vec', 'goog.vec.Vec3', 'goog.vec.Vec4']); +goog.addDependency('vec/quaternion.js', ['goog.vec.Quaternion'], ['goog.vec', 'goog.vec.Vec3', 'goog.vec.Vec4']); +goog.addDependency('vec/ray.js', ['goog.vec.Ray'], ['goog.vec.Vec3']); +goog.addDependency('vec/vec.js', ['goog.vec', 'goog.vec.AnyType', 'goog.vec.ArrayType', 'goog.vec.Float32', 'goog.vec.Float64', 'goog.vec.Number'], ['goog.vec.Float32Array', 'goog.vec.Float64Array']); +goog.addDependency('vec/vec2.js', ['goog.vec.Vec2'], ['goog.vec']); +goog.addDependency('vec/vec2d.js', ['goog.vec.vec2d', 'goog.vec.vec2d.Type'], ['goog.vec']); +goog.addDependency('vec/vec2f.js', ['goog.vec.vec2f', 'goog.vec.vec2f.Type'], ['goog.vec']); +goog.addDependency('vec/vec3.js', ['goog.vec.Vec3'], ['goog.vec']); +goog.addDependency('vec/vec3d.js', ['goog.vec.vec3d', 'goog.vec.vec3d.Type'], ['goog.vec']); +goog.addDependency('vec/vec3f.js', ['goog.vec.vec3f', 'goog.vec.vec3f.Type'], ['goog.vec']); +goog.addDependency('vec/vec4.js', ['goog.vec.Vec4'], ['goog.vec']); +goog.addDependency('vec/vec4d.js', ['goog.vec.vec4d', 'goog.vec.vec4d.Type'], ['goog.vec']); +goog.addDependency('vec/vec4f.js', ['goog.vec.vec4f', 'goog.vec.vec4f.Type'], ['goog.vec']); +goog.addDependency('webgl/webgl.js', ['goog.webgl'], []); +goog.addDependency('window/window.js', ['goog.window'], ['goog.string', 'goog.userAgent']); diff --git a/edit/build/ol-simple.js b/edit/build/ol-simple.js new file mode 100644 index 0000000000..aad3d4a431 --- /dev/null +++ b/edit/build/ol-simple.js @@ -0,0 +1,1784 @@ +var COMPILED=!0,goog=goog||{};goog.global=this;goog.exportPath_=function(a,b,c){a=a.split(".");c=c||goog.global;a[0]in c||!c.execScript||c.execScript("var "+a[0]);for(var d;a.length&&(d=a.shift());)a.length||void 0===b?c=c[d]?c[d]:c[d]={}:c[d]=b};goog.define=function(a,b){var c=b;COMPILED||goog.global.CLOSURE_DEFINES&&Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_DEFINES,a)&&(c=goog.global.CLOSURE_DEFINES[a]);goog.exportPath_(a,c)};goog.DEBUG=!1;goog.LOCALE="en";goog.TRUSTED_SITE=!0; +goog.provide=function(a){if(!COMPILED){if(goog.isProvided_(a))throw Error('Namespace "'+a+'" already declared.');delete goog.implicitNamespaces_[a];for(var b=a;(b=b.substring(0,b.lastIndexOf(".")))&&!goog.getObjectByName(b);)goog.implicitNamespaces_[b]=!0}goog.exportPath_(a)};goog.setTestOnly=function(a){if(COMPILED&&!goog.DEBUG)throw a=a||"",Error("Importing test-only code into non-debug environment"+a?": "+a:".");}; +COMPILED||(goog.isProvided_=function(a){return!goog.implicitNamespaces_[a]&&!!goog.getObjectByName(a)},goog.implicitNamespaces_={});goog.getObjectByName=function(a,b){for(var c=a.split("."),d=b||goog.global,e;e=c.shift();)if(goog.isDefAndNotNull(d[e]))d=d[e];else return null;return d};goog.globalize=function(a,b){var c=b||goog.global,d;for(d in a)c[d]=a[d]}; +goog.addDependency=function(a,b,c){if(goog.DEPENDENCIES_ENABLED){var d;a=a.replace(/\\/g,"/");for(var e=goog.dependencies_,f=0;d=b[f];f++)e.nameToPath[d]=a,a in e.pathToNames||(e.pathToNames[a]={}),e.pathToNames[a][d]=!0;for(d=0;b=c[d];d++)a in e.requires||(e.requires[a]={}),e.requires[a][b]=!0}};goog.ENABLE_DEBUG_LOADER=!0; +goog.require=function(a){if(!COMPILED&&!goog.isProvided_(a)){if(goog.ENABLE_DEBUG_LOADER){var b=goog.getPathFromDeps_(a);if(b){goog.included_[b]=!0;goog.writeScripts_();return}}a="goog.require could not find: "+a;goog.global.console&&goog.global.console.error(a);throw Error(a);}};goog.basePath="";goog.nullFunction=function(){};goog.identityFunction=function(a,b){return a};goog.abstractMethod=function(){throw Error("unimplemented abstract method");}; +goog.addSingletonGetter=function(a){a.getInstance=function(){if(a.instance_)return a.instance_;goog.DEBUG&&(goog.instantiatedSingletons_[goog.instantiatedSingletons_.length]=a);return a.instance_=new a}};goog.instantiatedSingletons_=[];goog.DEPENDENCIES_ENABLED=!COMPILED&&goog.ENABLE_DEBUG_LOADER; +goog.DEPENDENCIES_ENABLED&&(goog.included_={},goog.dependencies_={pathToNames:{},nameToPath:{},requires:{},visited:{},written:{}},goog.inHtmlDocument_=function(){var a=goog.global.document;return"undefined"!=typeof a&&"write"in a},goog.findBasePath_=function(){if(goog.global.CLOSURE_BASE_PATH)goog.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_())for(var a=goog.global.document.getElementsByTagName("script"),b=a.length-1;0<=b;--b){var c=a[b].src,d=c.lastIndexOf("?"),d=-1==d?c.length: +d;if("base.js"==c.substr(d-7,7)){goog.basePath=c.substr(0,d-7);break}}},goog.importScript_=function(a){var b=goog.global.CLOSURE_IMPORT_SCRIPT||goog.writeScriptTag_;!goog.dependencies_.written[a]&&b(a)&&(goog.dependencies_.written[a]=!0)},goog.writeScriptTag_=function(a){if(goog.inHtmlDocument_()){var b=goog.global.document;if("complete"==b.readyState){if(/\bdeps.js$/.test(a))return!1;throw Error('Cannot write "'+a+'" after document load');}b.write('\x3cscript type\x3d"text/javascript" src\x3d"'+ +a+'"\x3e\x3c/script\x3e');return!0}return!1},goog.writeScripts_=function(){function a(e){if(!(e in d.written)){if(!(e in d.visited)&&(d.visited[e]=!0,e in d.requires))for(var g in d.requires[e])if(!goog.isProvided_(g))if(g in d.nameToPath)a(d.nameToPath[g]);else throw Error("Undefined nameToPath for "+g);e in c||(c[e]=!0,b.push(e))}}var b=[],c={},d=goog.dependencies_,e;for(e in goog.included_)d.written[e]||a(e);for(e=0;e>>0);goog.uidCounter_=0;goog.getHashCode=goog.getUid;goog.removeHashCode=goog.removeUid;goog.cloneObject=function(a){var b=goog.typeOf(a);if("object"==b||"array"==b){if(a.clone)return a.clone();var b="array"==b?[]:{},c;for(c in a)b[c]=goog.cloneObject(a[c]);return b}return a};goog.bindNative_=function(a,b,c){return a.call.apply(a.bind,arguments)}; +goog.bindJs_=function(a,b,c){if(!a)throw Error();if(2=a||"\u0080"<=a&&"\ufffd">=a};goog.string.stripNewlines=function(a){return a.replace(/(\r\n|\r|\n)+/g," ")}; +goog.string.canonicalizeNewlines=function(a){return a.replace(/(\r\n|\r|\n)/g,"\n")};goog.string.normalizeWhitespace=function(a){return a.replace(/\xa0|\s/g," ")};goog.string.normalizeSpaces=function(a){return a.replace(/\xa0|[ \t]+/g," ")};goog.string.collapseBreakingSpaces=function(a){return a.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")};goog.string.trim=function(a){return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")}; +goog.string.trimLeft=function(a){return a.replace(/^[\s\xa0]+/,"")};goog.string.trimRight=function(a){return a.replace(/[\s\xa0]+$/,"")};goog.string.caseInsensitiveCompare=function(a,b){var c=String(a).toLowerCase(),d=String(b).toLowerCase();return c/g;goog.string.quotRe_=/\"/g;goog.string.allRe_=/[&<>\"]/;goog.string.unescapeEntities=function(a){return goog.string.contains(a,"\x26")?"document"in goog.global?goog.string.unescapeEntitiesUsingDom_(a):goog.string.unescapePureXmlEntities_(a):a}; +goog.string.unescapeEntitiesUsingDom_=function(a){var b={"\x26amp;":"\x26","\x26lt;":"\x3c","\x26gt;":"\x3e","\x26quot;":'"'},c=document.createElement("div");return a.replace(goog.string.HTML_ENTITY_PATTERN_,function(a,e){var f=b[a];if(f)return f;if("#"==e.charAt(0)){var g=Number("0"+e.substr(1));isNaN(g)||(f=String.fromCharCode(g))}f||(c.innerHTML=a+" ",f=c.firstChild.nodeValue.slice(0,-1));return b[a]=f})}; +goog.string.unescapePureXmlEntities_=function(a){return a.replace(/&([^;]+);/g,function(a,c){switch(c){case "amp":return"\x26";case "lt":return"\x3c";case "gt":return"\x3e";case "quot":return'"';default:if("#"==c.charAt(0)){var d=Number("0"+c.substr(1));if(!isNaN(d))return String.fromCharCode(d)}return a}})};goog.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g;goog.string.whitespaceEscape=function(a,b){return goog.string.newLineToBr(a.replace(/ /g," \x26#160;"),b)}; +goog.string.stripQuotes=function(a,b){for(var c=b.length,d=0;db&&(a=a.substring(0,b-3)+"...");c&&(a=goog.string.htmlEscape(a));return a}; +goog.string.truncateMiddle=function(a,b,c,d){c&&(a=goog.string.unescapeEntities(a));if(d&&a.length>b){d>b&&(d=b);var e=a.length-d;a=a.substring(0,b-d)+"..."+a.substring(e)}else a.length>b&&(d=Math.floor(b/2),e=a.length-d,a=a.substring(0,d+b%2)+"..."+a.substring(e));c&&(a=goog.string.htmlEscape(a));return a};goog.string.specialEscapeChars_={"\x00":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\x0B",'"':'\\"',"\\":"\\\\"};goog.string.jsEscapeCache_={"'":"\\'"}; +goog.string.quote=function(a){a=String(a);if(a.quote)return a.quote();for(var b=['"'],c=0;ce?d:goog.string.escapeChar(d))}b.push('"');return b.join("")};goog.string.escapeString=function(a){for(var b=[],c=0;cc)b=a;else{if(256>c){if(b="\\x",16>c||256c&&(b+="0");b+=c.toString(16).toUpperCase()}return goog.string.jsEscapeCache_[a]=b};goog.string.toMap=function(a){for(var b={},c=0;cb?1:0};goog.string.HASHCODE_MAX_=4294967296;goog.string.hashCode=function(a){for(var b=0,c=0;cc?Math.max(0,a.length+c):c;if(goog.isString(a))return goog.isString(b)&&1==b.length?a.indexOf(b,c):-1;for(;cc&&(c=Math.max(0,a.length+c));if(goog.isString(a))return goog.isString(b)&&1==b.length?a.lastIndexOf(b,c):-1;for(;0<=c;c--)if(c in a&&a[c]===b)return c;return-1}; +goog.array.forEach=goog.NATIVE_ARRAY_PROTOTYPES&&goog.array.ARRAY_PROTOTYPE_.forEach?function(a,b,c){goog.array.ARRAY_PROTOTYPE_.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;fb?null:goog.isString(a)?a.charAt(b):a[b]};goog.array.findIndex=function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;fb?null:goog.isString(a)?a.charAt(b):a[b]}; +goog.array.findIndexRight=function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,d=d-1;0<=d;d--)if(d in e&&b.call(c,e[d],d,a))return d;return-1};goog.array.contains=function(a,b){return 0<=goog.array.indexOf(a,b)};goog.array.isEmpty=function(a){return 0==a.length};goog.array.clear=function(a){if(!goog.isArray(a))for(var b=a.length-1;0<=b;b--)delete a[b];a.length=0};goog.array.insert=function(a,b){goog.array.contains(a,b)||a.push(b)}; +goog.array.insertAt=function(a,b,c){goog.array.splice(a,c,0,b)};goog.array.insertArrayAt=function(a,b,c){goog.partial(goog.array.splice,a,c,0).apply(null,b)};goog.array.insertBefore=function(a,b,c){var d;2==arguments.length||0>(d=goog.array.indexOf(a,c))?a.push(b):goog.array.insertAt(a,b,d)};goog.array.remove=function(a,b){var c=goog.array.indexOf(a,b),d;(d=0<=c)&&goog.array.removeAt(a,c);return d};goog.array.removeAt=function(a,b){return 1==goog.array.ARRAY_PROTOTYPE_.splice.call(a,b,1).length}; +goog.array.removeIf=function(a,b,c){b=goog.array.findIndex(a,b,c);return 0<=b?(goog.array.removeAt(a,b),!0):!1};goog.array.concat=function(a){return goog.array.ARRAY_PROTOTYPE_.concat.apply(goog.array.ARRAY_PROTOTYPE_,arguments)};goog.array.toArray=function(a){var b=a.length;if(0=arguments.length?goog.array.ARRAY_PROTOTYPE_.slice.call(a,b):goog.array.ARRAY_PROTOTYPE_.slice.call(a,b,c)};goog.array.removeDuplicates=function(a,b){for(var c=b||a,d={},e=0,f=0;f>1,l;l=c?b.call(e,a[k],k,a):b(d,a[k]);0b?1:ac?(goog.array.insertAt(a,b,-(c+1)),!0):!1}; +goog.array.binaryRemove=function(a,b,c){b=goog.array.binarySearch(a,b,c);return 0<=b?goog.array.removeAt(a,b):!1};goog.array.bucket=function(a,b,c){for(var d={},e=0;ec*(f-e))return[];if(0f;a+=c)d.push(a);return d};goog.array.repeat=function(a,b){for(var c=[],d=0;db&&goog.array.ARRAY_PROTOTYPE_.push.apply(a,a.splice(0,-b)));return a};goog.array.moveItem=function(a,b,c){b=goog.array.ARRAY_PROTOTYPE_.splice.call(a,b,1);goog.array.ARRAY_PROTOTYPE_.splice.call(a,c,0,b[0])};goog.array.zip=function(a){if(!arguments.length)return[];for(var b=[],c=0;;c++){for(var d=[],e=0;e=f.length)return b;d.push(f[c])}b.push(d)}}; +goog.array.shuffle=function(a,b){for(var c=b||Math.random,d=a.length-1;0>=1}return new ol.TileCoord(b,c,d)}; +ol.TileCoord.createFromString=function(a){a=a.split("/");a=goog.array.map(a,function(a,c,d){return parseInt(a,10)});return new ol.TileCoord(a[0],a[1],a[2])};ol.TileCoord.createOrUpdate=function(a,b,c,d){return goog.isDef(d)?(d.z=a,d.x=b,d.y=c,d):new ol.TileCoord(a,b,c)};ol.TileCoord.getKeyZXY=function(a,b,c){return[a,b,c].join("/")};ol.TileCoord.prototype.hash=function(){return(this.x<>=1;return a.join("")};ol.TileCoord.prototype.toString=function(){return ol.TileCoord.getKeyZXY(this.z,this.x,this.y)};ol.TileRange=function(a,b,c,d){this.minX=a;this.maxX=b;this.minY=c;this.maxY=d};ol.TileRange.boundingTileRange=function(a){var b=arguments[0],b=new ol.TileRange(b.x,b.x,b.y,b.y),c,d,e;c=1;for(d=arguments.length;cthis.maxX&&(this.maxX=a.maxX);a.minYthis.maxY&&(this.maxY=a.maxY)};ol.TileRange.prototype.getHeight=function(){return this.maxY-this.minY+1};ol.TileRange.prototype.getSize=function(){return[this.getWidth(),this.getHeight()]};ol.TileRange.prototype.getWidth=function(){return this.maxX-this.minX+1}; +ol.TileRange.prototype.intersects=function(a){return this.minX<=a.maxX&&this.maxX>=a.minX&&this.minY<=a.maxY&&this.maxY>=a.minY};ol.Attribution=function(a){this.html_=a.html;this.tileRanges_=goog.isDef(a.tileRanges)?a.tileRanges:null};ol.Attribution.prototype.getHTML=function(){return this.html_};ol.Attribution.prototype.intersectsAnyTileRange=function(a){if(goog.isNull(this.tileRanges_))return!0;var b,c,d,e;for(e in a)if(e in this.tileRanges_)for(d=a[e],b=0,c=this.tileRanges_[e].length;bparseFloat(a))?String(b):a}; +goog.userAgent.getDocumentMode_=function(){var a=goog.global.document;return a?a.documentMode:void 0};goog.userAgent.VERSION=goog.userAgent.determineVersion_();goog.userAgent.compare=function(a,b){return goog.string.compareVersions(a,b)};goog.userAgent.isVersionOrHigherCache_={}; +goog.userAgent.isVersionOrHigher=function(a){return goog.userAgent.ASSUME_ANY_VERSION||goog.userAgent.isVersionOrHigherCache_[a]||(goog.userAgent.isVersionOrHigherCache_[a]=0<=goog.string.compareVersions(goog.userAgent.VERSION,a))};goog.userAgent.isVersion=goog.userAgent.isVersionOrHigher;goog.userAgent.isDocumentModeOrHigher=function(a){return goog.userAgent.IE&&goog.userAgent.DOCUMENT_MODE>=a};goog.userAgent.isDocumentMode=goog.userAgent.isDocumentModeOrHigher; +goog.userAgent.DOCUMENT_MODE=function(){var a=goog.global.document;return a&&goog.userAgent.IE?goog.userAgent.getDocumentMode_()||("CSS1Compat"==a.compatMode?parseInt(goog.userAgent.VERSION,10):5):void 0}();goog.events.BrowserFeature={HAS_W3C_BUTTON:!goog.userAgent.IE||goog.userAgent.isDocumentModeOrHigher(9),HAS_W3C_EVENT_SUPPORT:!goog.userAgent.IE||goog.userAgent.isDocumentModeOrHigher(9),SET_KEY_CODE_TO_PREVENT_DEFAULT:goog.userAgent.IE&&!goog.userAgent.isVersionOrHigher("9"),HAS_NAVIGATOR_ONLINE_PROPERTY:!goog.userAgent.WEBKIT||goog.userAgent.isVersionOrHigher("528"),HAS_HTML5_NETWORK_EVENT_SUPPORT:goog.userAgent.GECKO&&goog.userAgent.isVersionOrHigher("1.9b")||goog.userAgent.IE&&goog.userAgent.isVersionOrHigher("8")|| +goog.userAgent.OPERA&&goog.userAgent.isVersionOrHigher("9.5")||goog.userAgent.WEBKIT&&goog.userAgent.isVersionOrHigher("528"),HTML5_NETWORK_EVENTS_FIRE_ON_BODY:goog.userAgent.GECKO&&!goog.userAgent.isVersionOrHigher("8")||goog.userAgent.IE&&!goog.userAgent.isVersionOrHigher("9"),TOUCH_ENABLED:"ontouchstart"in goog.global||!!(goog.global.document&&document.documentElement&&"ontouchstart"in document.documentElement)||!(!goog.global.navigator||!goog.global.navigator.msMaxTouchPoints)};goog.events.EventType={CLICK:"click",DBLCLICK:"dblclick",MOUSEDOWN:"mousedown",MOUSEUP:"mouseup",MOUSEOVER:"mouseover",MOUSEOUT:"mouseout",MOUSEMOVE:"mousemove",SELECTSTART:"selectstart",KEYPRESS:"keypress",KEYDOWN:"keydown",KEYUP:"keyup",BLUR:"blur",FOCUS:"focus",DEACTIVATE:"deactivate",FOCUSIN:goog.userAgent.IE?"focusin":"DOMFocusIn",FOCUSOUT:goog.userAgent.IE?"focusout":"DOMFocusOut",CHANGE:"change",SELECT:"select",SUBMIT:"submit",INPUT:"input",PROPERTYCHANGE:"propertychange",DRAGSTART:"dragstart", +DRAG:"drag",DRAGENTER:"dragenter",DRAGOVER:"dragover",DRAGLEAVE:"dragleave",DROP:"drop",DRAGEND:"dragend",TOUCHSTART:"touchstart",TOUCHMOVE:"touchmove",TOUCHEND:"touchend",TOUCHCANCEL:"touchcancel",BEFOREUNLOAD:"beforeunload",CONSOLEMESSAGE:"consolemessage",CONTEXTMENU:"contextmenu",DOMCONTENTLOADED:"DOMContentLoaded",ERROR:"error",HELP:"help",LOAD:"load",LOSECAPTURE:"losecapture",READYSTATECHANGE:"readystatechange",RESIZE:"resize",SCROLL:"scroll",UNLOAD:"unload",HASHCHANGE:"hashchange",PAGEHIDE:"pagehide", +PAGESHOW:"pageshow",POPSTATE:"popstate",COPY:"copy",PASTE:"paste",CUT:"cut",BEFORECOPY:"beforecopy",BEFORECUT:"beforecut",BEFOREPASTE:"beforepaste",ONLINE:"online",OFFLINE:"offline",MESSAGE:"message",CONNECT:"connect",TRANSITIONEND:goog.userAgent.WEBKIT?"webkitTransitionEnd":goog.userAgent.OPERA?"oTransitionEnd":"transitionend",MSGESTURECHANGE:"MSGestureChange",MSGESTUREEND:"MSGestureEnd",MSGESTUREHOLD:"MSGestureHold",MSGESTURESTART:"MSGestureStart",MSGESTURETAP:"MSGestureTap",MSGOTPOINTERCAPTURE:"MSGotPointerCapture", +MSINERTIASTART:"MSInertiaStart",MSLOSTPOINTERCAPTURE:"MSLostPointerCapture",MSPOINTERCANCEL:"MSPointerCancel",MSPOINTERDOWN:"MSPointerDown",MSPOINTERMOVE:"MSPointerMove",MSPOINTEROVER:"MSPointerOver",MSPOINTEROUT:"MSPointerOut",MSPOINTERUP:"MSPointerUp",TEXTINPUT:"textinput",COMPOSITIONSTART:"compositionstart",COMPOSITIONUPDATE:"compositionupdate",COMPOSITIONEND:"compositionend",EXIT:"exit",LOADABORT:"loadabort",LOADCOMMIT:"loadcommit",LOADREDIRECT:"loadredirect",LOADSTART:"loadstart",LOADSTOP:"loadstop", +RESPONSIVE:"responsive",SIZECHANGED:"sizechanged",UNRESPONSIVE:"unresponsive"};goog.reflect={};goog.reflect.object=function(a,b){return b};goog.reflect.sinkValue=function(a){goog.reflect.sinkValue[" "](a);return a};goog.reflect.sinkValue[" "]=goog.nullFunction;goog.reflect.canAccessProperty=function(a,b){try{return goog.reflect.sinkValue(a[b]),!0}catch(c){}return!1};goog.events.BrowserEvent=function(a,b){a&&this.init(a,b)};goog.inherits(goog.events.BrowserEvent,goog.events.Event);goog.events.BrowserEvent.MouseButton={LEFT:0,MIDDLE:1,RIGHT:2};goog.events.BrowserEvent.IEButtonMap=[1,4,2];goog.events.BrowserEvent.prototype.target=null;goog.events.BrowserEvent.prototype.relatedTarget=null;goog.events.BrowserEvent.prototype.offsetX=0;goog.events.BrowserEvent.prototype.offsetY=0;goog.events.BrowserEvent.prototype.clientX=0; +goog.events.BrowserEvent.prototype.clientY=0;goog.events.BrowserEvent.prototype.screenX=0;goog.events.BrowserEvent.prototype.screenY=0;goog.events.BrowserEvent.prototype.button=0;goog.events.BrowserEvent.prototype.keyCode=0;goog.events.BrowserEvent.prototype.charCode=0;goog.events.BrowserEvent.prototype.ctrlKey=!1;goog.events.BrowserEvent.prototype.altKey=!1;goog.events.BrowserEvent.prototype.shiftKey=!1;goog.events.BrowserEvent.prototype.metaKey=!1; +goog.events.BrowserEvent.prototype.platformModifierKey=!1;goog.events.BrowserEvent.prototype.event_=null; +goog.events.BrowserEvent.prototype.init=function(a,b){var c=this.type=a.type;goog.events.Event.call(this,c);this.target=a.target||a.srcElement;this.currentTarget=b;var d=a.relatedTarget;d?goog.userAgent.GECKO&&(goog.reflect.canAccessProperty(d,"nodeName")||(d=null)):c==goog.events.EventType.MOUSEOVER?d=a.fromElement:c==goog.events.EventType.MOUSEOUT&&(d=a.toElement);this.relatedTarget=d;this.offsetX=goog.userAgent.WEBKIT||void 0!==a.offsetX?a.offsetX:a.layerX;this.offsetY=goog.userAgent.WEBKIT||void 0!== +a.offsetY?a.offsetY:a.layerY;this.clientX=void 0!==a.clientX?a.clientX:a.pageX;this.clientY=void 0!==a.clientY?a.clientY:a.pageY;this.screenX=a.screenX||0;this.screenY=a.screenY||0;this.button=a.button;this.keyCode=a.keyCode||0;this.charCode=a.charCode||("keypress"==c?a.keyCode:0);this.ctrlKey=a.ctrlKey;this.altKey=a.altKey;this.shiftKey=a.shiftKey;this.metaKey=a.metaKey;this.platformModifierKey=goog.userAgent.MAC?a.metaKey:a.ctrlKey;this.state=a.state;this.event_=a;a.defaultPrevented&&this.preventDefault(); +delete this.propagationStopped_};goog.events.BrowserEvent.prototype.isButton=function(a){return goog.events.BrowserFeature.HAS_W3C_BUTTON?this.event_.button==a:"click"==this.type?a==goog.events.BrowserEvent.MouseButton.LEFT:!!(this.event_.button&goog.events.BrowserEvent.IEButtonMap[a])};goog.events.BrowserEvent.prototype.isMouseActionButton=function(){return this.isButton(goog.events.BrowserEvent.MouseButton.LEFT)&&!(goog.userAgent.WEBKIT&&goog.userAgent.MAC&&this.ctrlKey)}; +goog.events.BrowserEvent.prototype.stopPropagation=function(){goog.events.BrowserEvent.superClass_.stopPropagation.call(this);this.event_.stopPropagation?this.event_.stopPropagation():this.event_.cancelBubble=!0}; +goog.events.BrowserEvent.prototype.preventDefault=function(){goog.events.BrowserEvent.superClass_.preventDefault.call(this);var a=this.event_;if(a.preventDefault)a.preventDefault();else if(a.returnValue=!1,goog.events.BrowserFeature.SET_KEY_CODE_TO_PREVENT_DEFAULT)try{if(a.ctrlKey||112<=a.keyCode&&123>=a.keyCode)a.keyCode=-1}catch(b){}};goog.events.BrowserEvent.prototype.getBrowserEvent=function(){return this.event_};goog.events.BrowserEvent.prototype.disposeInternal=function(){};goog.events.Listenable=function(){};goog.events.Listenable.IMPLEMENTED_BY_PROP="closure_listenable_"+(1E6*Math.random()|0);goog.events.Listenable.addImplementation=function(a){a.prototype[goog.events.Listenable.IMPLEMENTED_BY_PROP]=!0};goog.events.Listenable.isImplementedBy=function(a){return!(!a||!a[goog.events.Listenable.IMPLEMENTED_BY_PROP])};goog.events.ListenableKey=function(){};goog.events.ListenableKey.counter_=0;goog.events.ListenableKey.reserveKey=function(){return++goog.events.ListenableKey.counter_};goog.events.Listener=function(a,b,c,d,e,f){goog.events.Listener.ENABLE_MONITORING&&(this.creationStack=Error().stack);this.listener=a;this.proxy=b;this.src=c;this.type=d;this.capture=!!e;this.handler=f;this.key=goog.events.ListenableKey.reserveKey();this.removed=this.callOnce=!1};goog.events.Listener.ENABLE_MONITORING=!1;goog.events.Listener.prototype.markAsRemoved=function(){this.removed=!0;this.handler=this.src=this.proxy=this.listener=null};goog.object={};goog.object.forEach=function(a,b,c){for(var d in a)b.call(c,a[d],d,a)};goog.object.filter=function(a,b,c){var d={},e;for(e in a)b.call(c,a[e],e,a)&&(d[e]=a[e]);return d};goog.object.map=function(a,b,c){var d={},e;for(e in a)d[e]=b.call(c,a[e],e,a);return d};goog.object.some=function(a,b,c){for(var d in a)if(b.call(c,a[d],d,a))return!0;return!1};goog.object.every=function(a,b,c){for(var d in a)if(!b.call(c,a[d],d,a))return!1;return!0}; +goog.object.getCount=function(a){var b=0,c;for(c in a)b++;return b};goog.object.getAnyKey=function(a){for(var b in a)return b};goog.object.getAnyValue=function(a){for(var b in a)return a[b]};goog.object.contains=function(a,b){return goog.object.containsValue(a,b)};goog.object.getValues=function(a){var b=[],c=0,d;for(d in a)b[c++]=a[d];return b};goog.object.getKeys=function(a){var b=[],c=0,d;for(d in a)b[c++]=d;return b}; +goog.object.getValueByKeys=function(a,b){for(var c=goog.isArrayLike(b),d=c?b:arguments,c=c?0:1;ca.keyCode||void 0!=a.returnValue};goog.events.uniqueIdCounter_=0;goog.events.getUniqueId=function(a){return a+"_"+goog.events.uniqueIdCounter_++};goog.events.LISTENER_WRAPPER_PROP_="__closure_events_fn_"+(1E9*Math.random()>>>0);goog.events.wrapListener_=function(a){return goog.isFunction(a)?a:a[goog.events.LISTENER_WRAPPER_PROP_]||(a[goog.events.LISTENER_WRAPPER_PROP_]=function(b){return a.handleEvent(b)})};goog.events.ListenerMap=function(a){this.src=a;this.listeners={};this.typeCount_=0};goog.events.ListenerMap.prototype.getTypeCount=function(){return this.typeCount_};goog.events.ListenerMap.prototype.getListenerCount=function(){var a=0,b;for(b in this.listeners)a+=this.listeners[b].length;return a}; +goog.events.ListenerMap.prototype.add=function(a,b,c,d,e){var f=this.listeners[a];f||(f=this.listeners[a]=[],this.typeCount_++);var g=goog.events.ListenerMap.findListenerIndex_(f,b,d,e);-1c*b?c+b:c};goog.math.lerp=function(a,b,c){return a+c*(b-a)};goog.math.nearlyEquals=function(a,b,c){return Math.abs(a-b)<=(c||1E-6)};goog.math.standardAngle=function(a){return goog.math.modulo(a,360)}; +goog.math.toRadians=function(a){return a*Math.PI/180};goog.math.toDegrees=function(a){return 180*a/Math.PI};goog.math.angleDx=function(a,b){return b*Math.cos(goog.math.toRadians(a))};goog.math.angleDy=function(a,b){return b*Math.sin(goog.math.toRadians(a))};goog.math.angle=function(a,b,c,d){return goog.math.standardAngle(goog.math.toDegrees(Math.atan2(d-b,c-a)))};goog.math.angleDifference=function(a,b){var c=goog.math.standardAngle(b)-goog.math.standardAngle(a);180=c&&(c=360+c);return c}; +goog.math.sign=function(a){return 0==a?0:0>a?-1:1};goog.math.longestCommonSubsequence=function(a,b,c,d){c=c||function(a,b){return a==b};d=d||function(b,c){return a[b]};for(var e=a.length,f=b.length,g=[],h=0;hg[h][k-1]?h--:k--;return l}; +goog.math.sum=function(a){return goog.array.reduce(arguments,function(a,c){return a+c},0)};goog.math.average=function(a){return goog.math.sum.apply(null,arguments)/arguments.length};goog.math.standardDeviation=function(a){var b=arguments.length;if(2>b)return 0;var c=goog.math.average.apply(null,arguments),b=goog.math.sum.apply(null,goog.array.map(arguments,function(a){return Math.pow(a-c,2)}))/(b-1);return Math.sqrt(b)};goog.math.isInt=function(a){return isFinite(a)&&0==a%1}; +goog.math.isFiniteNumber=function(a){return isFinite(a)&&!isNaN(a)};goog.math.safeFloor=function(a,b){return Math.floor(a+(b||2E-15))};goog.math.safeCeil=function(a,b){return Math.ceil(a-(b||2E-15))};goog.color.parse=function(a){var b={};a=String(a);var c=goog.color.prependHashIfNecessaryHelper(a);if(goog.color.isValidHexColor_(c))return b.hex=goog.color.normalizeHex(c),b.type="hex",b;c=goog.color.isValidRgbColor_(a);if(c.length)return b.hex=goog.color.rgbArrayToHex(c),b.type="rgb",b;if(goog.color.names&&(c=goog.color.names[a.toLowerCase()]))return b.hex=c,b.type="named",b;throw Error(a+" is not a valid color string");}; +goog.color.isValidColor=function(a){var b=goog.color.prependHashIfNecessaryHelper(a);return!!(goog.color.isValidHexColor_(b)||goog.color.isValidRgbColor_(a).length||goog.color.names&&goog.color.names[a.toLowerCase()])};goog.color.parseRgb=function(a){var b=goog.color.isValidRgbColor_(a);if(!b.length)throw Error(a+" is not a valid RGB color");return b};goog.color.hexToRgbStyle=function(a){return goog.color.rgbStyle_(goog.color.hexToRgb(a))};goog.color.hexTripletRe_=/#(.)(.)(.)/; +goog.color.normalizeHex=function(a){if(!goog.color.isValidHexColor_(a))throw Error("'"+a+"' is not a valid hex color");4==a.length&&(a=a.replace(goog.color.hexTripletRe_,"#$1$1$2$2$3$3"));return a.toLowerCase()};goog.color.hexToRgb=function(a){a=goog.color.normalizeHex(a);var b=parseInt(a.substr(1,2),16),c=parseInt(a.substr(3,2),16);a=parseInt(a.substr(5,2),16);return[b,c,a]}; +goog.color.rgbToHex=function(a,b,c){a=Number(a);b=Number(b);c=Number(c);if(isNaN(a)||0>a||255b||255c||255=h?(d-e)/(2*h):(d-e)/(2-2*h));return[Math.round(f+360)%360,g,h]};goog.color.rgbArrayToHsl=function(a){return goog.color.rgbToHsl(a[0],a[1],a[2])};goog.color.hueToRgb_=function(a,b,c){0>c?c+=1:16*c?a+6*(b-a)*c:1>2*c?b:2>3*c?a+6*(b-a)*(2/3-c):a}; +goog.color.hslToRgb=function(a,b,c){var d=0,e=0,f=0;a/=360;if(0==b)d=e=f=255*c;else var g=f=0,g=0.5>c?c*(1+b):c+b-b*c,f=2*c-g,d=255*goog.color.hueToRgb_(f,g,a+1/3),e=255*goog.color.hueToRgb_(f,g,a),f=255*goog.color.hueToRgb_(f,g,a-1/3);return[Math.round(d),Math.round(e),Math.round(f)]};goog.color.hslArrayToRgb=function(a){return goog.color.hslToRgb(a[0],a[1],a[2])};goog.color.validHexColorRe_=/^#(?:[0-9a-f]{3}){1,2}$/i;goog.color.isValidHexColor_=function(a){return goog.color.validHexColorRe_.test(a)}; +goog.color.normalizedHexColorRe_=/^#[0-9a-f]{6}$/;goog.color.isNormalizedHexColor_=function(a){return goog.color.normalizedHexColorRe_.test(a)};goog.color.rgbColorRe_=/^(?:rgb)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2})\)$/i;goog.color.isValidRgbColor_=function(a){var b=a.match(goog.color.rgbColorRe_);if(b){a=Number(b[1]);var c=Number(b[2]),b=Number(b[3]);if(0<=a&&255>=a&&0<=c&&255>=c&&0<=b&&255>=b)return[a,c,b]}return[]}; +goog.color.prependZeroIfNecessaryHelper=function(a){return 1==a.length?"0"+a:a};goog.color.prependHashIfNecessaryHelper=function(a){return"#"==a.charAt(0)?a:"#"+a};goog.color.rgbStyle_=function(a){return"rgb("+a.join(",")+")"}; +goog.color.hsvToRgb=function(a,b,c){var d=0,e=0,f=0;if(0==b)f=e=d=c;else{var g=Math.floor(a/60),h=a/60-g;a=c*(1-b);var k=c*(1-b*h);b=c*(1-b*(1-h));switch(g){case 1:d=k;e=c;f=a;break;case 2:d=a;e=c;f=b;break;case 3:d=a;e=k;f=c;break;case 4:d=b;e=a;f=c;break;case 5:d=c;e=a;f=k;break;case 6:case 0:d=c,e=b,f=a}}return[Math.floor(d),Math.floor(e),Math.floor(f)]}; +goog.color.rgbToHsv=function(a,b,c){var d=Math.max(Math.max(a,b),c),e=Math.min(Math.min(a,b),c);if(e==d)e=a=0;else{var f=d-e,e=f/d;a=60*(a==d?(b-c)/f:b==d?2+(c-a)/f:4+(a-b)/f);0>a&&(a+=360);360=a[2]?a[1]*a[2]:a[1]*(1-a[2]);d=0.5>=b[2]?b[1]*b[2]:b[1]*(1-b[2]);return(a[2]-b[2])*(a[2]-b[2])+c*c+d*d-2*c*d*Math.cos(2*(a[0]/360-b[0]/360)*Math.PI)};goog.color.blend=function(a,b,c){c=goog.math.clamp(c,0,1);return[Math.round(c*a[0]+(1-c)*b[0]),Math.round(c*a[1]+(1-c)*b[1]),Math.round(c*a[2]+(1-c)*b[2])]};goog.color.darken=function(a,b){return goog.color.blend([0,0,0],a,b)}; +goog.color.lighten=function(a,b){return goog.color.blend([255,255,255],a,b)};goog.color.highContrast=function(a,b){for(var c=[],d=0;dc)for(c=1;cf?1:0.5,d=Math.floor(Math.log(b/d)/Math.log(a)+f),e=Math.max(d+e,0),goog.isDef(c)&&(e=Math.min(e,c)),b/Math.pow(a,e)}};ol.RotationConstraint={};ol.RotationConstraint.none=function(a,b){if(goog.isDef(a))return a+b};ol.RotationConstraint.createSnapToN=function(a){var b=2*Math.PI/a;return function(a,d){if(goog.isDef(a))return a=Math.floor((a+d)/b+0.5)*b}};ol.RotationConstraint.createSnapToZero=function(a){var b=a||0.1;return function(a,d){if(goog.isDef(a))return Math.abs(a+d)<=b?0:a+d}};ol.Constraints=function(a,b){this.resolution=a;this.rotation=b};ol.coordinate={};ol.coordinate.add=function(a,b){a[0]+=b[0];a[1]+=b[1];return a};ol.coordinate.createStringXY=function(a){return function(b){return ol.coordinate.toStringXY(b,a)}};ol.coordinate.degreesToStringHDMS_=function(a,b){var c=goog.math.modulo(a+180,360)-180,d=Math.abs(Math.round(3600*c));return Math.floor(d/3600)+"\u00b0 "+Math.floor(d/60%60)+"\u2032 "+Math.floor(d%60)+"\u2033 "+b.charAt(0>c?1:0)};ol.coordinate.equals=function(a,b){for(var c=!0,d=a.length-1;0<=d;--d)if(a[d]!=b[d]){c=!1;break}return c}; +ol.coordinate.rotate=function(a,b){var c=Math.cos(b),d=Math.sin(b),e=a[1]*c+a[0]*d;a[0]=a[0]*c-a[1]*d;a[1]=e;return a};ol.coordinate.scale=function(a,b){a[0]*=b;a[1]*=b;return a};ol.coordinate.squaredDistance=function(a,b){var c=a[0]-b[0],d=a[1]-b[1];return c*c+d*d};ol.coordinate.closestOnSegment=function(a,b){var c=a[0],d=a[1],e=b[0],f=b[1],g=e[0],e=e[1],h=f[0],k=f[1],l=h-g,m=k-e,f=0==l&&0==m?0:(l*(c-g)+m*(d-e))/(l*l+m*m||0);0>=f||(1<=f?(g=h,e=k):(g+=f*l,e+=f*m));c=g-c;d=e-d;return[g,e,c*c+d*d,f]}; +ol.coordinate.toStringHDMS=function(a){return goog.isDef(a)?ol.coordinate.degreesToStringHDMS_(a[1],"NS")+" "+ol.coordinate.degreesToStringHDMS_(a[0],"EW"):""};ol.coordinate.toStringXY=function(a,b){if(goog.isDef(a)){var c=b||0;return a[0].toFixed(c)+", "+a[1].toFixed(c)}return""};ol.coordinate.fromProjectedArray=function(a,b){var c=b.charAt(0);return"n"===c||"s"===c?[a[1],a[0]]:a};ol.DeviceOrientationProperty={ALPHA:"alpha",BETA:"beta",GAMMA:"gamma",HEADING:"heading",TRACKING:"tracking"};ol.DeviceOrientation=function(a){ol.Object.call(this);a=goog.isDef(a)?a:{};this.listenerKey_=null;goog.events.listen(this,ol.Object.getChangeEventType(ol.DeviceOrientationProperty.TRACKING),this.handleTrackingChanged_,!1,this);this.setTracking(goog.isDef(a.tracking)?a.tracking:!1)};goog.inherits(ol.DeviceOrientation,ol.Object); +ol.DeviceOrientation.prototype.disposeInternal=function(){this.setTracking(!1);ol.DeviceOrientation.superClass_.disposeInternal.call(this)};ol.DeviceOrientation.SUPPORTED="DeviceOrientationEvent"in window; +ol.DeviceOrientation.prototype.orientationChange_=function(a){a=a.getBrowserEvent();if(goog.isDefAndNotNull(a.alpha)){var b=goog.math.toRadians(a.alpha);this.set(ol.DeviceOrientationProperty.ALPHA,b);goog.isBoolean(a.absolute)&&a.absolute?this.set(ol.DeviceOrientationProperty.HEADING,b):goog.isDefAndNotNull(a.webkitCompassHeading)&&(goog.isDefAndNotNull(a.webkitCompassAccuracy)&&-1!=a.webkitCompassAccuracy)&&(b=goog.math.toRadians(a.webkitCompassHeading),this.set(ol.DeviceOrientationProperty.HEADING, +b))}goog.isDefAndNotNull(a.beta)&&this.set(ol.DeviceOrientationProperty.BETA,goog.math.toRadians(a.beta));goog.isDefAndNotNull(a.gamma)&&this.set(ol.DeviceOrientationProperty.GAMMA,goog.math.toRadians(a.gamma))};ol.DeviceOrientation.prototype.getAlpha=function(){return this.get(ol.DeviceOrientationProperty.ALPHA)};goog.exportProperty(ol.DeviceOrientation.prototype,"getAlpha",ol.DeviceOrientation.prototype.getAlpha);ol.DeviceOrientation.prototype.getBeta=function(){return this.get(ol.DeviceOrientationProperty.BETA)}; +goog.exportProperty(ol.DeviceOrientation.prototype,"getBeta",ol.DeviceOrientation.prototype.getBeta);ol.DeviceOrientation.prototype.getGamma=function(){return this.get(ol.DeviceOrientationProperty.GAMMA)};goog.exportProperty(ol.DeviceOrientation.prototype,"getGamma",ol.DeviceOrientation.prototype.getGamma);ol.DeviceOrientation.prototype.getHeading=function(){return this.get(ol.DeviceOrientationProperty.HEADING)};goog.exportProperty(ol.DeviceOrientation.prototype,"getHeading",ol.DeviceOrientation.prototype.getHeading); +ol.DeviceOrientation.prototype.getTracking=function(){return this.get(ol.DeviceOrientationProperty.TRACKING)};goog.exportProperty(ol.DeviceOrientation.prototype,"getTracking",ol.DeviceOrientation.prototype.getTracking); +ol.DeviceOrientation.prototype.handleTrackingChanged_=function(){if(ol.DeviceOrientation.SUPPORTED){var a=this.getTracking();a&&goog.isNull(this.listenerKey_)?this.listenerKey_=goog.events.listen(window,"deviceorientation",this.orientationChange_,!1,this):a||goog.isNull(this.listenerKey_)||(goog.events.unlistenByKey(this.listenerKey_),this.listenerKey_=null)}};ol.DeviceOrientation.prototype.setTracking=function(a){this.set(ol.DeviceOrientationProperty.TRACKING,a)}; +goog.exportProperty(ol.DeviceOrientation.prototype,"setTracking",ol.DeviceOrientation.prototype.setTracking);ol.Ellipsoid=function(a,b){this.a=a;this.flattening=b;this.b=this.a*(1-this.flattening);this.eSquared=2*b-b*b;this.e=Math.sqrt(this.eSquared)}; +ol.Ellipsoid.prototype.vincenty=function(a,b,c,d){c=goog.isDef(c)?c:1E-12;var e=goog.isDef(d)?d:100,f=this.flattening,g=goog.math.toRadians(a[1]);d=goog.math.toRadians(b[1]);var h=goog.math.toRadians(b[0]-a[0]);b=Math.atan((1-f)*Math.tan(g));a=Math.cos(b);b=Math.sin(b);g=Math.atan((1-f)*Math.tan(d));d=Math.cos(g);var g=Math.sin(g),k=h,l,m,n;m=Infinity;for(var q,r,p;0a[1]&&(a[1]=b[1]);b[2]a[3]&&(a[3]=b[3])};ol.extent.extendCoordinate=function(a,b){b[0]a[1]&&(a[1]=b[0]);b[1]a[3]&&(a[3]=b[1])};ol.extent.getBottomLeft=function(a){return[a[0],a[2]]};ol.extent.getBottomRight=function(a){return[a[1],a[2]]};ol.extent.getCenter=function(a){return[(a[0]+a[1])/2,(a[2]+a[3])/2]}; +ol.extent.getForView2DAndSize=function(a,b,c,d,e){var f=b*d[0]/2;d=b*d[1]/2;b=Math.cos(c);c=Math.sin(c);f=[-f,-f,f,f];d=[-d,d,-d,d];var g,h,k;for(g=0;4>g;++g)h=f[g],k=d[g],f[g]=a[0]+h*b-k*c,d[g]=a[1]+h*c+k*b;return ol.extent.boundingExtentXYs_(f,d,e)};ol.extent.getHeight=function(a){return a[3]-a[2]};ol.extent.getSize=function(a){return[a[1]-a[0],a[3]-a[2]]};ol.extent.getTopLeft=function(a){return[a[0],a[3]]};ol.extent.getTopRight=function(a){return[a[1],a[3]]}; +ol.extent.getWidth=function(a){return a[1]-a[0]};ol.extent.intersects=function(a,b){return a[0]<=b[1]&&a[1]>=b[0]&&a[2]<=b[3]&&a[3]>=b[2]};ol.extent.isEmpty=function(a){return a[1]goog.vec.EPSILON?(b[2]=Math.atan2(a[2]*c,a[6]*c),b[1]=Math.atan2(d*c,a[10]),b[0]=Math.atan2(a[8]*c,-a[9]*c)):(b[0]=0,b[1]=Math.atan2(d*c,a[10]),b[2]=Math.atan2(a[1],a[0]));b[0]=(b[0]+2*Math.PI)%(2*Math.PI);b[2]=(b[2]+2*Math.PI)%(2*Math.PI);b[1]=(b[1]*c+2*Math.PI)%(2*Math.PI)*c;return b}; +goog.vec.Mat4.translate=function(a,b,c,d){return goog.vec.Mat4.setColumnValues(a,3,a[0]*b+a[4]*c+a[8]*d+a[12],a[1]*b+a[5]*c+a[9]*d+a[13],a[2]*b+a[6]*c+a[10]*d+a[14],a[3]*b+a[7]*c+a[11]*d+a[15])};goog.vec.Mat4.scale=function(a,b,c,d){return goog.vec.Mat4.setFromValues(a,a[0]*b,a[1]*b,a[2]*b,a[3]*b,a[4]*c,a[5]*c,a[6]*c,a[7]*c,a[8]*d,a[9]*d,a[10]*d,a[11]*d,a[12],a[13],a[14],a[15])}; +goog.vec.Mat4.rotate=function(a,b,c,d,e){var f=a[0],g=a[1],h=a[2],k=a[3],l=a[4],m=a[5],n=a[6],q=a[7],r=a[8],p=a[9],s=a[10],t=a[11],u=a[12],w=a[13],v=a[14],B=a[15],z=Math.cos(b),F=Math.sin(b),A=1-z;b=c*c*A+z;var x=c*d*A+e*F,y=c*e*A-d*F,C=c*d*A-e*F,D=d*d*A+z,G=d*e*A+c*F,E=c*e*A+d*F;c=d*e*A-c*F;e=e*e*A+z;return goog.vec.Mat4.setFromValues(a,f*b+l*x+r*y,g*b+m*x+p*y,h*b+n*x+s*y,k*b+q*x+t*y,f*C+l*D+r*G,g*C+m*D+p*G,h*C+n*D+s*G,k*C+q*D+t*G,f*E+l*c+r*e,g*E+m*c+p*e,h*E+n*c+s*e,k*E+q*c+t*e,u,w,v,B)}; +goog.vec.Mat4.rotateX=function(a,b){var c=a[4],d=a[5],e=a[6],f=a[7],g=a[8],h=a[9],k=a[10],l=a[11],m=Math.cos(b),n=Math.sin(b);a[4]=c*m+g*n;a[5]=d*m+h*n;a[6]=e*m+k*n;a[7]=f*m+l*n;a[8]=c*-n+g*m;a[9]=d*-n+h*m;a[10]=e*-n+k*m;a[11]=f*-n+l*m;return a};goog.vec.Mat4.rotateY=function(a,b){var c=a[0],d=a[1],e=a[2],f=a[3],g=a[8],h=a[9],k=a[10],l=a[11],m=Math.cos(b),n=Math.sin(b);a[0]=c*m+g*-n;a[1]=d*m+h*-n;a[2]=e*m+k*-n;a[3]=f*m+l*-n;a[8]=c*n+g*m;a[9]=d*n+h*m;a[10]=e*n+k*m;a[11]=f*n+l*m;return a}; +goog.vec.Mat4.rotateZ=function(a,b){var c=a[0],d=a[1],e=a[2],f=a[3],g=a[4],h=a[5],k=a[6],l=a[7],m=Math.cos(b),n=Math.sin(b);a[0]=c*m+g*n;a[1]=d*m+h*n;a[2]=e*m+k*n;a[3]=f*m+l*n;a[4]=c*-n+g*m;a[5]=d*-n+h*m;a[6]=e*-n+k*m;a[7]=f*-n+l*m;return a};goog.vec.Mat4.getTranslation=function(a,b){b[0]=a[12];b[1]=a[13];b[2]=a[14];return b};goog.vec.Mat4.tmpVec3_=[goog.vec.Vec3.createFloat64(),goog.vec.Vec3.createFloat64()];goog.vec.Mat4.tmpVec4_=[goog.vec.Vec4.createFloat64(),goog.vec.Vec4.createFloat64(),goog.vec.Vec4.createFloat64()]; +goog.vec.Mat4.tmpMat4_=[goog.vec.Mat4.createFloat64()];ol.TileState={IDLE:0,LOADING:1,LOADED:2,ERROR:3,EMPTY:4};ol.Tile=function(a,b){goog.events.EventTarget.call(this);this.tileCoord=a;this.state=b};goog.inherits(ol.Tile,goog.events.EventTarget);ol.Tile.prototype.dispatchChangeEvent=function(){this.dispatchEvent(goog.events.EventType.CHANGE)};ol.Tile.prototype.getKey=function(){return goog.getUid(this).toString()};ol.Tile.prototype.getState=function(){return this.state};ol.structs={};ol.structs.PriorityQueue=function(a,b){this.priorityFunction_=a;this.keyFunction_=b;this.elements_=[];this.priorities_=[];this.queuedElements_={}};ol.structs.PriorityQueue.DROP=Infinity;ol.structs.PriorityQueue.prototype.assertValid=function(){var a=this.elements_.length,b;for(b=0;b<(a>>1)-1;++b);};ol.structs.PriorityQueue.prototype.clear=function(){this.elements_.length=0;this.priorities_.length=0;goog.object.clear(this.queuedElements_)}; +ol.structs.PriorityQueue.prototype.dequeue=function(){var a=this.elements_,b=this.priorities_,c=a[0];1==a.length?(a.length=0,b.length=0):(a[0]=a.pop(),b[0]=b.pop(),this.siftUp_(0));a=this.keyFunction_(c);delete this.queuedElements_[a];return c};ol.structs.PriorityQueue.prototype.enqueue=function(a){var b=this.priorityFunction_(a);b!=ol.structs.PriorityQueue.DROP&&(this.elements_.push(a),this.priorities_.push(b),this.queuedElements_[this.keyFunction_(a)]=!0,this.siftDown_(0,this.elements_.length-1))}; +ol.structs.PriorityQueue.prototype.getCount=function(){return this.elements_.length};ol.structs.PriorityQueue.prototype.getLeftChildIndex_=function(a){return 2*a+1};ol.structs.PriorityQueue.prototype.getRightChildIndex_=function(a){return 2*a+2};ol.structs.PriorityQueue.prototype.getParentIndex_=function(a){return a-1>>1};ol.structs.PriorityQueue.prototype.heapify_=function(){var a;for(a=(this.elements_.length>>1)-1;0<=a;a--)this.siftUp_(a)}; +ol.structs.PriorityQueue.prototype.isEmpty=function(){return 0===this.elements_.length};ol.structs.PriorityQueue.prototype.isKeyQueued=function(a){return a in this.queuedElements_};ol.structs.PriorityQueue.prototype.isQueued=function(a){return this.isKeyQueued(this.keyFunction_(a))}; +ol.structs.PriorityQueue.prototype.siftUp_=function(a){for(var b=this.elements_,c=this.priorities_,d=b.length,e=b[a],f=c[a],g=a;a>1;){var h=this.getLeftChildIndex_(a),k=this.getRightChildIndex_(a),h=ka;){var g=this.getParentIndex_(b);if(d[g]>f)c[b]=c[g],d[b]=d[g],b=g;else break}c[b]=e;d[b]=f}; +ol.structs.PriorityQueue.prototype.reprioritize=function(){var a=this.priorityFunction_,b=this.elements_,c=this.priorities_,d=0,e=b.length,f,g,h;for(g=0;ga?ol.easing.inAndOut(2*a):1-ol.easing.inAndOut(2*(a-0.5))};ol.animation={};ol.animation.bounce=function(a){var b=a.resolution,c=goog.isDef(a.start)?a.start:goog.now(),d=goog.isDef(a.duration)?a.duration:1E3,e=goog.isDef(a.easing)?a.easing:ol.easing.upAndDown;return function(a,g){if(g.timea;)c-=3;if(0<=c){var a=this.points_[b+2]-this.points_[c+2],d=this.points_[b]-this.points_[c],b=this.points_[b+1]-this.points_[c+1];this.angle_=Math.atan2(b,d);this.initialVelocity_=Math.sqrt(d*d+b*b)/a;return this.initialVelocity_>this.minVelocity_}return!1}; +ol.Kinetic.prototype.pan=function(a){var b=this.decay_,c=this.initialVelocity_,d=this.minVelocity_,e=this.getDuration_();return ol.animation.pan({source:a,duration:e,easing:function(a){return c*(Math.exp(b*a*e)-1)/(d-c)}})};ol.Kinetic.prototype.getDuration_=function(){return Math.log(this.minVelocity_/this.initialVelocity_)/this.decay_};ol.Kinetic.prototype.getDistance=function(){return(this.minVelocity_-this.initialVelocity_)/this.decay_};ol.Kinetic.prototype.getAngle=function(){return this.angle_};goog.structs={};goog.structs.getCount=function(a){return"function"==typeof a.getCount?a.getCount():goog.isArrayLike(a)||goog.isString(a)?a.length:goog.object.getCount(a)};goog.structs.getValues=function(a){if("function"==typeof a.getValues)return a.getValues();if(goog.isString(a))return a.split("");if(goog.isArrayLike(a)){for(var b=[],c=a.length,d=0;d=a.length)throw goog.iter.StopIteration;if(b in a)return a[b++];b++}};return c}throw Error("Not implemented");}; +goog.iter.forEach=function(a,b,c){if(goog.isArrayLike(a))try{goog.array.forEach(a,b,c)}catch(d){if(d!==goog.iter.StopIteration)throw d;}else{a=goog.iter.toIterator(a);try{for(;;)b.call(c,a.next(),void 0,a)}catch(e){if(e!==goog.iter.StopIteration)throw e;}}};goog.iter.filter=function(a,b,c){var d=goog.iter.toIterator(a);a=new goog.iter.Iterator;a.next=function(){for(;;){var a=d.next();if(b.call(c,a,void 0,d))return a}};return a}; +goog.iter.range=function(a,b,c){var d=0,e=a,f=c||1;1=e||0>f&&d<=e)throw goog.iter.StopIteration;var a=d;d+=f;return a};return g};goog.iter.join=function(a,b){return goog.iter.toArray(a).join(b)};goog.iter.map=function(a,b,c){var d=goog.iter.toIterator(a);a=new goog.iter.Iterator;a.next=function(){for(;;){var a=d.next();return b.call(c,a,void 0,d)}};return a}; +goog.iter.reduce=function(a,b,c,d){var e=c;goog.iter.forEach(a,function(a){e=b.call(d,e,a)});return e};goog.iter.some=function(a,b,c){a=goog.iter.toIterator(a);try{for(;;)if(b.call(c,a.next(),void 0,a))return!0}catch(d){if(d!==goog.iter.StopIteration)throw d;}return!1};goog.iter.every=function(a,b,c){a=goog.iter.toIterator(a);try{for(;;)if(!b.call(c,a.next(),void 0,a))return!1}catch(d){if(d!==goog.iter.StopIteration)throw d;}return!0}; +goog.iter.chain=function(a){var b=arguments,c=b.length,d=0,e=new goog.iter.Iterator;e.next=function(){try{if(d>=c)throw goog.iter.StopIteration;return goog.iter.toIterator(b[d]).next()}catch(a){if(a!==goog.iter.StopIteration||d>=c)throw a;d++;return this.next()}};return e};goog.iter.dropWhile=function(a,b,c){var d=goog.iter.toIterator(a);a=new goog.iter.Iterator;var e=!0;a.next=function(){for(;;){var a=d.next();if(!e||!b.call(c,a,void 0,d))return e=!1,a}};return a}; +goog.iter.takeWhile=function(a,b,c){var d=goog.iter.toIterator(a);a=new goog.iter.Iterator;var e=!0;a.next=function(){for(;;)if(e){var a=d.next();if(b.call(c,a,void 0,d))return a;e=!1}else throw goog.iter.StopIteration;};return a};goog.iter.toArray=function(a){if(goog.isArrayLike(a))return goog.array.toArray(a);a=goog.iter.toIterator(a);var b=[];goog.iter.forEach(a,function(a){b.push(a)});return b}; +goog.iter.equals=function(a,b){a=goog.iter.toIterator(a);b=goog.iter.toIterator(b);var c,d;try{for(;;){c=d=!1;var e=a.next();c=!0;var f=b.next();d=!0;if(e!=f)break}}catch(g){if(g!==goog.iter.StopIteration)throw g;if(c&&!d)return!1;if(!d)try{b.next()}catch(h){if(h!==goog.iter.StopIteration)throw h;return!0}}return!1};goog.iter.nextOrValue=function(a,b){try{return goog.iter.toIterator(a).next()}catch(c){if(c!=goog.iter.StopIteration)throw c;return b}}; +goog.iter.product=function(a){if(goog.array.some(arguments,function(a){return!a.length})||!arguments.length)return new goog.iter.Iterator;var b=new goog.iter.Iterator,c=arguments,d=goog.array.repeat(0,c.length);b.next=function(){if(d){for(var a=goog.array.map(d,function(a,b){return c[b][a]}),b=d.length-1;0<=b;b--){if(d[b]2*this.count_&&this.cleanupKeysArray_(),!0):!1}; +goog.structs.Map.prototype.cleanupKeysArray_=function(){if(this.count_!=this.keys_.length){for(var a=0,b=0;a=c.length)throw goog.iter.StopIteration;var g=c[b++];return a?g:d[g]}};return g}; +goog.structs.Map.hasKey_=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)};goog.uri={};goog.uri.utils={};goog.uri.utils.CharCode_={AMPERSAND:38,EQUAL:61,HASH:35,QUESTION:63};goog.uri.utils.buildFromEncodedParts=function(a,b,c,d,e,f,g){var h="";a&&(h+=a+":");c&&(h+="//",b&&(h+=b+"@"),h+=c,d&&(h+=":"+d));e&&(h+=e);f&&(h+="?"+f);g&&(h+="#"+g);return h};goog.uri.utils.splitRe_=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?\x3d[/#?]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#(.*))?$"); +goog.uri.utils.ComponentIndex={SCHEME:1,USER_INFO:2,DOMAIN:3,PORT:4,PATH:5,QUERY_DATA:6,FRAGMENT:7};goog.uri.utils.split=function(a){goog.uri.utils.phishingProtection_();return a.match(goog.uri.utils.splitRe_)};goog.uri.utils.needsPhishingProtection_=goog.userAgent.WEBKIT; +goog.uri.utils.phishingProtection_=function(){if(goog.uri.utils.needsPhishingProtection_){goog.uri.utils.needsPhishingProtection_=!1;var a=goog.global.location;if(a){var b=a.href;if(b&&(b=goog.uri.utils.getDomain(b))&&b!=a.hostname)throw goog.uri.utils.needsPhishingProtection_=!0,Error();}}};goog.uri.utils.decodeIfPossible_=function(a){return a&&decodeURIComponent(a)};goog.uri.utils.getComponentByIndex_=function(a,b){return goog.uri.utils.split(b)[a]||null}; +goog.uri.utils.getScheme=function(a){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.SCHEME,a)};goog.uri.utils.getEffectiveScheme=function(a){a=goog.uri.utils.getScheme(a);!a&&self.location&&(a=self.location.protocol,a=a.substr(0,a.length-1));return a?a.toLowerCase():""};goog.uri.utils.getUserInfoEncoded=function(a){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.USER_INFO,a)};goog.uri.utils.getUserInfo=function(a){return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getUserInfoEncoded(a))}; +goog.uri.utils.getDomainEncoded=function(a){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.DOMAIN,a)};goog.uri.utils.getDomain=function(a){return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getDomainEncoded(a))};goog.uri.utils.getPort=function(a){return Number(goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.PORT,a))||null};goog.uri.utils.getPathEncoded=function(a){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.PATH,a)}; +goog.uri.utils.getPath=function(a){return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getPathEncoded(a))};goog.uri.utils.getQueryData=function(a){return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.QUERY_DATA,a)};goog.uri.utils.getFragmentEncoded=function(a){var b=a.indexOf("#");return 0>b?null:a.substr(b+1)};goog.uri.utils.setFragmentEncoded=function(a,b){return goog.uri.utils.removeFragment(a)+(b?"#"+b:"")};goog.uri.utils.getFragment=function(a){return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getFragmentEncoded(a))}; +goog.uri.utils.getHost=function(a){a=goog.uri.utils.split(a);return goog.uri.utils.buildFromEncodedParts(a[goog.uri.utils.ComponentIndex.SCHEME],a[goog.uri.utils.ComponentIndex.USER_INFO],a[goog.uri.utils.ComponentIndex.DOMAIN],a[goog.uri.utils.ComponentIndex.PORT])};goog.uri.utils.getPathAndAfter=function(a){a=goog.uri.utils.split(a);return goog.uri.utils.buildFromEncodedParts(null,null,null,null,a[goog.uri.utils.ComponentIndex.PATH],a[goog.uri.utils.ComponentIndex.QUERY_DATA],a[goog.uri.utils.ComponentIndex.FRAGMENT])}; +goog.uri.utils.removeFragment=function(a){var b=a.indexOf("#");return 0>b?a:a.substr(0,b)};goog.uri.utils.haveSameDomain=function(a,b){var c=goog.uri.utils.split(a),d=goog.uri.utils.split(b);return c[goog.uri.utils.ComponentIndex.DOMAIN]==d[goog.uri.utils.ComponentIndex.DOMAIN]&&c[goog.uri.utils.ComponentIndex.SCHEME]==d[goog.uri.utils.ComponentIndex.SCHEME]&&c[goog.uri.utils.ComponentIndex.PORT]==d[goog.uri.utils.ComponentIndex.PORT]}; +goog.uri.utils.assertNoFragmentsOrQueries_=function(a){if(goog.DEBUG&&(0<=a.indexOf("#")||0<=a.indexOf("?")))throw Error("goog.uri.utils: Fragment or query identifiers are not supported: ["+a+"]");};goog.uri.utils.appendQueryData_=function(a){if(a[1]){var b=a[0],c=b.indexOf("#");0<=c&&(a.push(b.substr(c)),a[0]=b=b.substr(0,c));c=b.indexOf("?");0>c?a[1]="?":c==b.length-1&&(a[1]=void 0)}return a.join("")}; +goog.uri.utils.appendKeyValuePairs_=function(a,b,c){if(goog.isArray(b))for(var d=0;dd)return null;var e=a.indexOf("\x26",d);if(0>e||e>c)e=c;d+=b.length+1;return goog.string.urlDecode(a.substr(d,e-d))};goog.uri.utils.getParamValues=function(a,b){for(var c=a.search(goog.uri.utils.hashOrEndRe_),d=0,e,f=[];0<=(e=goog.uri.utils.findParam_(a,d,b,c));){d=a.indexOf("\x26",e);if(0>d||d>c)d=c;e+=b.length+1;f.push(goog.string.urlDecode(a.substr(e,d-e)))}return f}; +goog.uri.utils.trailingQueryPunctuationRe_=/[?&]($|#)/;goog.uri.utils.removeParam=function(a,b){for(var c=a.search(goog.uri.utils.hashOrEndRe_),d=0,e,f=[];0<=(e=goog.uri.utils.findParam_(a,d,b,c));)f.push(a.substring(d,e)),d=Math.min(a.indexOf("\x26",e)+1||c,c);f.push(a.substr(d));return f.join("").replace(goog.uri.utils.trailingQueryPunctuationRe_,"$1")};goog.uri.utils.setParam=function(a,b,c){return goog.uri.utils.appendParam(goog.uri.utils.removeParam(a,b),b,c)}; +goog.uri.utils.appendPath=function(a,b){goog.uri.utils.assertNoFragmentsOrQueries_(a);goog.string.endsWith(a,"/")&&(a=a.substr(0,a.length-1));goog.string.startsWith(b,"/")&&(b=b.substr(1));return goog.string.buildString(a,"/",b)};goog.uri.utils.StandardQueryParam={RANDOM:"zx"};goog.uri.utils.makeUnique=function(a){return goog.uri.utils.setParam(a,goog.uri.utils.StandardQueryParam.RANDOM,goog.string.getRandomString())};goog.Uri=function(a,b){var c;a instanceof goog.Uri?(this.ignoreCase_=goog.isDef(b)?b:a.getIgnoreCase(),this.setScheme(a.getScheme()),this.setUserInfo(a.getUserInfo()),this.setDomain(a.getDomain()),this.setPort(a.getPort()),this.setPath(a.getPath()),this.setQueryData(a.getQueryData().clone()),this.setFragment(a.getFragment())):a&&(c=goog.uri.utils.split(String(a)))?(this.ignoreCase_=!!b,this.setScheme(c[goog.uri.utils.ComponentIndex.SCHEME]||"",!0),this.setUserInfo(c[goog.uri.utils.ComponentIndex.USER_INFO]|| +"",!0),this.setDomain(c[goog.uri.utils.ComponentIndex.DOMAIN]||"",!0),this.setPort(c[goog.uri.utils.ComponentIndex.PORT]),this.setPath(c[goog.uri.utils.ComponentIndex.PATH]||"",!0),this.setQueryData(c[goog.uri.utils.ComponentIndex.QUERY_DATA]||"",!0),this.setFragment(c[goog.uri.utils.ComponentIndex.FRAGMENT]||"",!0)):(this.ignoreCase_=!!b,this.queryData_=new goog.Uri.QueryData(null,null,this.ignoreCase_))};goog.Uri.preserveParameterTypesCompatibilityFlag=!1;goog.Uri.RANDOM_PARAM=goog.uri.utils.StandardQueryParam.RANDOM; +goog.Uri.prototype.scheme_="";goog.Uri.prototype.userInfo_="";goog.Uri.prototype.domain_="";goog.Uri.prototype.port_=null;goog.Uri.prototype.path_="";goog.Uri.prototype.fragment_="";goog.Uri.prototype.isReadOnly_=!1;goog.Uri.prototype.ignoreCase_=!1; +goog.Uri.prototype.toString=function(){var a=[],b=this.getScheme();b&&a.push(goog.Uri.encodeSpecialChars_(b,goog.Uri.reDisallowedInSchemeOrUserInfo_),":");if(b=this.getDomain()){a.push("//");var c=this.getUserInfo();c&&a.push(goog.Uri.encodeSpecialChars_(c,goog.Uri.reDisallowedInSchemeOrUserInfo_),"@");a.push(goog.string.urlEncode(b));b=this.getPort();null!=b&&a.push(":",String(b))}if(b=this.getPath())this.hasDomain()&&"/"!=b.charAt(0)&&a.push("/"),a.push(goog.Uri.encodeSpecialChars_(b,"/"==b.charAt(0)? +goog.Uri.reDisallowedInAbsolutePath_:goog.Uri.reDisallowedInRelativePath_));(b=this.getEncodedQuery())&&a.push("?",b);(b=this.getFragment())&&a.push("#",goog.Uri.encodeSpecialChars_(b,goog.Uri.reDisallowedInFragment_));return a.join("")}; +goog.Uri.prototype.resolve=function(a){var b=this.clone(),c=a.hasScheme();c?b.setScheme(a.getScheme()):c=a.hasUserInfo();c?b.setUserInfo(a.getUserInfo()):c=a.hasDomain();c?b.setDomain(a.getDomain()):c=a.hasPort();var d=a.getPath();if(c)b.setPort(a.getPort());else if(c=a.hasPath()){if("/"!=d.charAt(0))if(this.hasDomain()&&!this.hasPath())d="/"+d;else{var e=b.getPath().lastIndexOf("/");-1!=e&&(d=b.getPath().substr(0,e+1)+d)}d=goog.Uri.removeDotSegments(d)}c?b.setPath(d):c=a.hasQuery();c?b.setQueryData(a.getDecodedQuery()): +c=a.hasFragment();c&&b.setFragment(a.getFragment());return b};goog.Uri.prototype.clone=function(){return new goog.Uri(this)};goog.Uri.prototype.getScheme=function(){return this.scheme_};goog.Uri.prototype.setScheme=function(a,b){this.enforceReadOnly();if(this.scheme_=b?goog.Uri.decodeOrEmpty_(a):a)this.scheme_=this.scheme_.replace(/:$/,"");return this};goog.Uri.prototype.hasScheme=function(){return!!this.scheme_};goog.Uri.prototype.getUserInfo=function(){return this.userInfo_}; +goog.Uri.prototype.setUserInfo=function(a,b){this.enforceReadOnly();this.userInfo_=b?goog.Uri.decodeOrEmpty_(a):a;return this};goog.Uri.prototype.hasUserInfo=function(){return!!this.userInfo_};goog.Uri.prototype.getDomain=function(){return this.domain_};goog.Uri.prototype.setDomain=function(a,b){this.enforceReadOnly();this.domain_=b?goog.Uri.decodeOrEmpty_(a):a;return this};goog.Uri.prototype.hasDomain=function(){return!!this.domain_};goog.Uri.prototype.getPort=function(){return this.port_}; +goog.Uri.prototype.setPort=function(a){this.enforceReadOnly();if(a){a=Number(a);if(isNaN(a)||0>a)throw Error("Bad port number "+a);this.port_=a}else this.port_=null;return this};goog.Uri.prototype.hasPort=function(){return null!=this.port_};goog.Uri.prototype.getPath=function(){return this.path_};goog.Uri.prototype.setPath=function(a,b){this.enforceReadOnly();this.path_=b?goog.Uri.decodeOrEmpty_(a):a;return this};goog.Uri.prototype.hasPath=function(){return!!this.path_}; +goog.Uri.prototype.hasQuery=function(){return""!==this.queryData_.toString()};goog.Uri.prototype.setQueryData=function(a,b){this.enforceReadOnly();a instanceof goog.Uri.QueryData?(this.queryData_=a,this.queryData_.setIgnoreCase(this.ignoreCase_)):(b||(a=goog.Uri.encodeSpecialChars_(a,goog.Uri.reDisallowedInQuery_)),this.queryData_=new goog.Uri.QueryData(a,null,this.ignoreCase_));return this};goog.Uri.prototype.setQuery=function(a,b){return this.setQueryData(a,b)}; +goog.Uri.prototype.getEncodedQuery=function(){return this.queryData_.toString()};goog.Uri.prototype.getDecodedQuery=function(){return this.queryData_.toDecodedString()};goog.Uri.prototype.getQueryData=function(){return this.queryData_};goog.Uri.prototype.getQuery=function(){return this.getEncodedQuery()};goog.Uri.prototype.setParameterValue=function(a,b){this.enforceReadOnly();this.queryData_.set(a,b);return this}; +goog.Uri.prototype.setParameterValues=function(a,b){this.enforceReadOnly();goog.isArray(b)||(b=[String(b)]);this.queryData_.setValues(a,b);return this};goog.Uri.prototype.getParameterValues=function(a){return this.queryData_.getValues(a)};goog.Uri.prototype.getParameterValue=function(a){return this.queryData_.get(a)};goog.Uri.prototype.getFragment=function(){return this.fragment_};goog.Uri.prototype.setFragment=function(a,b){this.enforceReadOnly();this.fragment_=b?goog.Uri.decodeOrEmpty_(a):a;return this}; +goog.Uri.prototype.hasFragment=function(){return!!this.fragment_};goog.Uri.prototype.hasSameDomainAs=function(a){return(!this.hasDomain()&&!a.hasDomain()||this.getDomain()==a.getDomain())&&(!this.hasPort()&&!a.hasPort()||this.getPort()==a.getPort())};goog.Uri.prototype.makeUnique=function(){this.enforceReadOnly();this.setParameterValue(goog.Uri.RANDOM_PARAM,goog.string.getRandomString());return this};goog.Uri.prototype.removeParameter=function(a){this.enforceReadOnly();this.queryData_.remove(a);return this}; +goog.Uri.prototype.setReadOnly=function(a){this.isReadOnly_=a;return this};goog.Uri.prototype.isReadOnly=function(){return this.isReadOnly_};goog.Uri.prototype.enforceReadOnly=function(){if(this.isReadOnly_)throw Error("Tried to modify a read-only Uri");};goog.Uri.prototype.setIgnoreCase=function(a){this.ignoreCase_=a;this.queryData_&&this.queryData_.setIgnoreCase(a);return this};goog.Uri.prototype.getIgnoreCase=function(){return this.ignoreCase_}; +goog.Uri.parse=function(a,b){return a instanceof goog.Uri?a.clone():new goog.Uri(a,b)};goog.Uri.create=function(a,b,c,d,e,f,g,h){h=new goog.Uri(null,h);a&&h.setScheme(a);b&&h.setUserInfo(b);c&&h.setDomain(c);d&&h.setPort(d);e&&h.setPath(e);f&&h.setQueryData(f);g&&h.setFragment(g);return h};goog.Uri.resolve=function(a,b){a instanceof goog.Uri||(a=goog.Uri.parse(a));b instanceof goog.Uri||(b=goog.Uri.parse(b));return a.resolve(b)}; +goog.Uri.removeDotSegments=function(a){if(".."==a||"."==a)return"";if(goog.string.contains(a,"./")||goog.string.contains(a,"/.")){var b=goog.string.startsWith(a,"/");a=a.split("/");for(var c=[],d=0;d>4&15).toString(16)+(a&15).toString(16)};goog.Uri.reDisallowedInSchemeOrUserInfo_=/[#\/\?@]/g;goog.Uri.reDisallowedInRelativePath_=/[\#\?:]/g;goog.Uri.reDisallowedInAbsolutePath_=/[\#\?]/g;goog.Uri.reDisallowedInQuery_=/[\#\?@]/g;goog.Uri.reDisallowedInFragment_=/#/g; +goog.Uri.haveSameDomain=function(a,b){var c=goog.uri.utils.split(a),d=goog.uri.utils.split(b);return c[goog.uri.utils.ComponentIndex.DOMAIN]==d[goog.uri.utils.ComponentIndex.DOMAIN]&&c[goog.uri.utils.ComponentIndex.PORT]==d[goog.uri.utils.ComponentIndex.PORT]};goog.Uri.QueryData=function(a,b,c){this.encodedQuery_=a||null;this.ignoreCase_=!!c}; +goog.Uri.QueryData.prototype.ensureKeyMapInitialized_=function(){if(!this.keyMap_&&(this.keyMap_=new goog.structs.Map,this.count_=0,this.encodedQuery_))for(var a=this.encodedQuery_.split("\x26"),b=0;bgoog.Timer.MAX_TIMEOUT_?-1:goog.Timer.defaultTimerObject.setTimeout(a,b||0)};goog.Timer.clear=function(a){goog.Timer.defaultTimerObject.clearTimeout(a)};goog.async.Delay=function(a,b,c){goog.Disposable.call(this);this.listener_=a;this.interval_=b||0;this.handler_=c;this.callback_=goog.bind(this.doAction_,this)};goog.inherits(goog.async.Delay,goog.Disposable);goog.Delay=goog.async.Delay;goog.async.Delay.prototype.id_=0;goog.async.Delay.prototype.disposeInternal=function(){goog.async.Delay.superClass_.disposeInternal.call(this);this.stop();delete this.listener_;delete this.handler_}; +goog.async.Delay.prototype.start=function(a){this.stop();this.id_=goog.Timer.callOnce(this.callback_,goog.isDef(a)?a:this.interval_)};goog.async.Delay.prototype.stop=function(){this.isActive()&&goog.Timer.clear(this.id_);this.id_=0};goog.async.Delay.prototype.fire=function(){this.stop();this.doAction_()};goog.async.Delay.prototype.fireIfActive=function(){this.isActive()&&this.fire()};goog.async.Delay.prototype.isActive=function(){return 0!=this.id_}; +goog.async.Delay.prototype.doAction_=function(){this.id_=0;this.listener_&&this.listener_.call(this.handler_)};goog.structs.Collection=function(){};goog.structs.Set=function(a){this.map_=new goog.structs.Map;a&&this.addAll(a)};goog.structs.Set.getKey_=function(a){var b=typeof a;return"object"==b&&a||"function"==b?"o"+goog.getUid(a):b.substr(0,1)+a};goog.structs.Set.prototype.getCount=function(){return this.map_.getCount()};goog.structs.Set.prototype.add=function(a){this.map_.set(goog.structs.Set.getKey_(a),a)};goog.structs.Set.prototype.addAll=function(a){a=goog.structs.getValues(a);for(var b=a.length,c=0;cb)return!1;!(a instanceof goog.structs.Set)&&5a.aspectRatio()?a.width/this.width:a.height/this.height;return this.scale(a)};goog.dom.ASSUME_QUIRKS_MODE=!1;goog.dom.ASSUME_STANDARDS_MODE=!0;goog.dom.COMPAT_MODE_KNOWN_=goog.dom.ASSUME_QUIRKS_MODE||goog.dom.ASSUME_STANDARDS_MODE;goog.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12};goog.dom.getDomHelper=function(a){return a?new goog.dom.DomHelper(goog.dom.getOwnerDocument(a)):goog.dom.defaultDomHelper_||(goog.dom.defaultDomHelper_=new goog.dom.DomHelper)}; +goog.dom.getDocument=function(){return document};goog.dom.getElement=function(a){return goog.isString(a)?document.getElementById(a):a};goog.dom.$=goog.dom.getElement;goog.dom.getElementsByTagNameAndClass=function(a,b,c){return goog.dom.getElementsByTagNameAndClass_(document,a,b,c)}; +goog.dom.getElementsByClass=function(a,b){var c=b||document;return goog.dom.canUseQuerySelector_(c)?c.querySelectorAll("."+a):c.getElementsByClassName?c.getElementsByClassName(a):goog.dom.getElementsByTagNameAndClass_(document,"*",a,b)};goog.dom.getElementByClass=function(a,b){var c=b||document,d=null;return(d=goog.dom.canUseQuerySelector_(c)?c.querySelector("."+a):goog.dom.getElementsByClass(a,b)[0])||null};goog.dom.canUseQuerySelector_=function(a){return!(!a.querySelectorAll||!a.querySelector)}; +goog.dom.getElementsByTagNameAndClass_=function(a,b,c,d){a=d||a;b=b&&"*"!=b?b.toUpperCase():"";if(goog.dom.canUseQuerySelector_(a)&&(b||c))return a.querySelectorAll(b+(c?"."+c:""));if(c&&a.getElementsByClassName){a=a.getElementsByClassName(c);if(b){d={};for(var e=0,f=0,g;g=a[f];f++)b==g.nodeName&&(d[e++]=g);d.length=e;return d}return a}a=a.getElementsByTagName(b||"*");if(c){d={};for(f=e=0;g=a[f];f++)b=g.className,"function"==typeof b.split&&goog.array.contains(b.split(/\s+/),c)&&(d[e++]=g);d.length= +e;return d}return a};goog.dom.$$=goog.dom.getElementsByTagNameAndClass;goog.dom.setProperties=function(a,b){goog.object.forEach(b,function(b,d){"style"==d?a.style.cssText=b:"class"==d?a.className=b:"for"==d?a.htmlFor=b:d in goog.dom.DIRECT_ATTRIBUTE_MAP_?a.setAttribute(goog.dom.DIRECT_ATTRIBUTE_MAP_[d],b):goog.string.startsWith(d,"aria-")||goog.string.startsWith(d,"data-")?a.setAttribute(d,b):a[d]=b})}; +goog.dom.DIRECT_ATTRIBUTE_MAP_={cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",frameborder:"frameBorder",height:"height",maxlength:"maxLength",role:"role",rowspan:"rowSpan",type:"type",usemap:"useMap",valign:"vAlign",width:"width"};goog.dom.getViewportSize=function(a){return goog.dom.getViewportSize_(a||window)};goog.dom.getViewportSize_=function(a){a=a.document;a=goog.dom.isCss1CompatMode_(a)?a.documentElement:a.body;return new goog.math.Size(a.clientWidth,a.clientHeight)}; +goog.dom.getDocumentHeight=function(){return goog.dom.getDocumentHeight_(window)};goog.dom.getDocumentHeight_=function(a){var b=a.document,c=0;if(b){a=goog.dom.getViewportSize_(a).height;var c=b.body,d=b.documentElement;if(goog.dom.isCss1CompatMode_(b)&&d.scrollHeight)c=d.scrollHeight!=a?d.scrollHeight:d.offsetHeight;else{var b=d.scrollHeight,e=d.offsetHeight;d.clientHeight!=e&&(b=c.scrollHeight,e=c.offsetHeight);c=b>a?b>e?b:e:ba):!1};goog.dom.setFocusableTabIndex=function(a,b){b?a.tabIndex=0:(a.tabIndex=-1,a.removeAttribute("tabIndex"))}; +goog.dom.getTextContent=function(a){if(goog.dom.BrowserFeature.CAN_USE_INNER_TEXT&&"innerText"in a)a=goog.string.canonicalizeNewlines(a.innerText);else{var b=[];goog.dom.getTextContent_(a,b,!0);a=b.join("")}a=a.replace(/ \xAD /g," ").replace(/\xAD/g,"");a=a.replace(/\u200B/g,"");goog.dom.BrowserFeature.CAN_USE_INNER_TEXT||(a=a.replace(/ +/g," "));" "!=a&&(a=a.replace(/^\s*/,""));return a};goog.dom.getRawTextContent=function(a){var b=[];goog.dom.getTextContent_(a,b,!1);return b.join("")}; +goog.dom.getTextContent_=function(a,b,c){if(!(a.nodeName in goog.dom.TAGS_TO_IGNORE_))if(a.nodeType==goog.dom.NodeType.TEXT)c?b.push(String(a.nodeValue).replace(/(\r\n|\r|\n)/g,"")):b.push(a.nodeValue);else if(a.nodeName in goog.dom.PREDEFINED_TAG_VALUES_)b.push(goog.dom.PREDEFINED_TAG_VALUES_[a.nodeName]);else for(a=a.firstChild;a;)goog.dom.getTextContent_(a,b,c),a=a.nextSibling};goog.dom.getNodeTextLength=function(a){return goog.dom.getTextContent(a).length}; +goog.dom.getNodeTextOffset=function(a,b){for(var c=b||goog.dom.getOwnerDocument(a).body,d=[];a&&a!=c;){for(var e=a;e=e.previousSibling;)d.unshift(goog.dom.getTextContent(e));a=a.parentNode}return goog.string.trimLeft(d.join("")).replace(/ +/g," ").length}; +goog.dom.getNodeAtOffset=function(a,b,c){a=[a];for(var d=0,e=null;0=goog.events.KeyCodes.F1&&a.keyCode<=goog.events.KeyCodes.F12)return!1;switch(a.keyCode){case goog.events.KeyCodes.ALT:case goog.events.KeyCodes.CAPS_LOCK:case goog.events.KeyCodes.CONTEXT_MENU:case goog.events.KeyCodes.CTRL:case goog.events.KeyCodes.DOWN:case goog.events.KeyCodes.END:case goog.events.KeyCodes.ESC:case goog.events.KeyCodes.HOME:case goog.events.KeyCodes.INSERT:case goog.events.KeyCodes.LEFT:case goog.events.KeyCodes.MAC_FF_META:case goog.events.KeyCodes.META:case goog.events.KeyCodes.NUMLOCK:case goog.events.KeyCodes.NUM_CENTER:case goog.events.KeyCodes.PAGE_DOWN:case goog.events.KeyCodes.PAGE_UP:case goog.events.KeyCodes.PAUSE:case goog.events.KeyCodes.PHANTOM:case goog.events.KeyCodes.PRINT_SCREEN:case goog.events.KeyCodes.RIGHT:case goog.events.KeyCodes.SCROLL_LOCK:case goog.events.KeyCodes.SHIFT:case goog.events.KeyCodes.UP:case goog.events.KeyCodes.WIN_KEY:case goog.events.KeyCodes.WIN_KEY_RIGHT:return!1;case goog.events.KeyCodes.WIN_KEY_FF_LINUX:return!goog.userAgent.GECKO; +default:return a.keyCodegoog.events.KeyCodes.LAST_MEDIA_KEY}}; +goog.events.KeyCodes.firesKeyPressEvent=function(a,b,c,d,e){if(!(goog.userAgent.IE||goog.userAgent.WEBKIT&&goog.userAgent.isVersionOrHigher("525")))return!0;if(goog.userAgent.MAC&&e)return goog.events.KeyCodes.isCharacterKey(a);if(e&&!d||!c&&(b==goog.events.KeyCodes.CTRL||b==goog.events.KeyCodes.ALT||goog.userAgent.MAC&&b==goog.events.KeyCodes.META))return!1;if(goog.userAgent.WEBKIT&&d&&c)switch(a){case goog.events.KeyCodes.BACKSLASH:case goog.events.KeyCodes.OPEN_SQUARE_BRACKET:case goog.events.KeyCodes.CLOSE_SQUARE_BRACKET:case goog.events.KeyCodes.TILDE:case goog.events.KeyCodes.SEMICOLON:case goog.events.KeyCodes.DASH:case goog.events.KeyCodes.EQUALS:case goog.events.KeyCodes.COMMA:case goog.events.KeyCodes.PERIOD:case goog.events.KeyCodes.SLASH:case goog.events.KeyCodes.APOSTROPHE:case goog.events.KeyCodes.SINGLE_QUOTE:return!1}if(goog.userAgent.IE&& +d&&b==a)return!1;switch(a){case goog.events.KeyCodes.ENTER:return!(goog.userAgent.IE&&goog.userAgent.isDocumentModeOrHigher(9));case goog.events.KeyCodes.ESC:return!goog.userAgent.WEBKIT}return goog.events.KeyCodes.isCharacterKey(a)}; +goog.events.KeyCodes.isCharacterKey=function(a){if(a>=goog.events.KeyCodes.ZERO&&a<=goog.events.KeyCodes.NINE||a>=goog.events.KeyCodes.NUM_ZERO&&a<=goog.events.KeyCodes.NUM_MULTIPLY||a>=goog.events.KeyCodes.A&&a<=goog.events.KeyCodes.Z||goog.userAgent.WEBKIT&&0==a)return!0;switch(a){case goog.events.KeyCodes.SPACE:case goog.events.KeyCodes.QUESTION_MARK:case goog.events.KeyCodes.NUM_PLUS:case goog.events.KeyCodes.NUM_MINUS:case goog.events.KeyCodes.NUM_PERIOD:case goog.events.KeyCodes.NUM_DIVISION:case goog.events.KeyCodes.SEMICOLON:case goog.events.KeyCodes.FF_SEMICOLON:case goog.events.KeyCodes.DASH:case goog.events.KeyCodes.EQUALS:case goog.events.KeyCodes.FF_EQUALS:case goog.events.KeyCodes.COMMA:case goog.events.KeyCodes.PERIOD:case goog.events.KeyCodes.SLASH:case goog.events.KeyCodes.APOSTROPHE:case goog.events.KeyCodes.SINGLE_QUOTE:case goog.events.KeyCodes.OPEN_SQUARE_BRACKET:case goog.events.KeyCodes.BACKSLASH:case goog.events.KeyCodes.CLOSE_SQUARE_BRACKET:return!0; +default:return!1}};goog.events.KeyCodes.normalizeGeckoKeyCode=function(a){switch(a){case goog.events.KeyCodes.FF_EQUALS:return goog.events.KeyCodes.EQUALS;case goog.events.KeyCodes.FF_SEMICOLON:return goog.events.KeyCodes.SEMICOLON;case goog.events.KeyCodes.MAC_FF_META:return goog.events.KeyCodes.META;case goog.events.KeyCodes.WIN_KEY_FF_LINUX:return goog.events.KeyCodes.WIN_KEY;default:return a}};goog.events.KeyHandler=function(a,b){goog.events.EventTarget.call(this);a&&this.attach(a,b)};goog.inherits(goog.events.KeyHandler,goog.events.EventTarget);goog.events.KeyHandler.prototype.element_=null;goog.events.KeyHandler.prototype.keyPressKey_=null;goog.events.KeyHandler.prototype.keyDownKey_=null;goog.events.KeyHandler.prototype.keyUpKey_=null;goog.events.KeyHandler.prototype.lastKey_=-1;goog.events.KeyHandler.prototype.keyCode_=-1;goog.events.KeyHandler.prototype.altKey_=!1; +goog.events.KeyHandler.EventType={KEY:"key"}; +goog.events.KeyHandler.safariKey_={3:goog.events.KeyCodes.ENTER,12:goog.events.KeyCodes.NUMLOCK,63232:goog.events.KeyCodes.UP,63233:goog.events.KeyCodes.DOWN,63234:goog.events.KeyCodes.LEFT,63235:goog.events.KeyCodes.RIGHT,63236:goog.events.KeyCodes.F1,63237:goog.events.KeyCodes.F2,63238:goog.events.KeyCodes.F3,63239:goog.events.KeyCodes.F4,63240:goog.events.KeyCodes.F5,63241:goog.events.KeyCodes.F6,63242:goog.events.KeyCodes.F7,63243:goog.events.KeyCodes.F8,63244:goog.events.KeyCodes.F9,63245:goog.events.KeyCodes.F10, +63246:goog.events.KeyCodes.F11,63247:goog.events.KeyCodes.F12,63248:goog.events.KeyCodes.PRINT_SCREEN,63272:goog.events.KeyCodes.DELETE,63273:goog.events.KeyCodes.HOME,63275:goog.events.KeyCodes.END,63276:goog.events.KeyCodes.PAGE_UP,63277:goog.events.KeyCodes.PAGE_DOWN,63289:goog.events.KeyCodes.NUMLOCK,63302:goog.events.KeyCodes.INSERT}; +goog.events.KeyHandler.keyIdentifier_={Up:goog.events.KeyCodes.UP,Down:goog.events.KeyCodes.DOWN,Left:goog.events.KeyCodes.LEFT,Right:goog.events.KeyCodes.RIGHT,Enter:goog.events.KeyCodes.ENTER,F1:goog.events.KeyCodes.F1,F2:goog.events.KeyCodes.F2,F3:goog.events.KeyCodes.F3,F4:goog.events.KeyCodes.F4,F5:goog.events.KeyCodes.F5,F6:goog.events.KeyCodes.F6,F7:goog.events.KeyCodes.F7,F8:goog.events.KeyCodes.F8,F9:goog.events.KeyCodes.F9,F10:goog.events.KeyCodes.F10,F11:goog.events.KeyCodes.F11,F12:goog.events.KeyCodes.F12, +"U+007F":goog.events.KeyCodes.DELETE,Home:goog.events.KeyCodes.HOME,End:goog.events.KeyCodes.END,PageUp:goog.events.KeyCodes.PAGE_UP,PageDown:goog.events.KeyCodes.PAGE_DOWN,Insert:goog.events.KeyCodes.INSERT};goog.events.KeyHandler.USES_KEYDOWN_=goog.userAgent.IE||goog.userAgent.WEBKIT&&goog.userAgent.isVersionOrHigher("525");goog.events.KeyHandler.SAVE_ALT_FOR_KEYPRESS_=goog.userAgent.MAC&&goog.userAgent.GECKO; +goog.events.KeyHandler.prototype.handleKeyDown_=function(a){goog.userAgent.WEBKIT&&(this.lastKey_==goog.events.KeyCodes.CTRL&&!a.ctrlKey||this.lastKey_==goog.events.KeyCodes.ALT&&!a.altKey||goog.userAgent.MAC&&this.lastKey_==goog.events.KeyCodes.META&&!a.metaKey)&&(this.keyCode_=this.lastKey_=-1);-1==this.lastKey_&&(a.ctrlKey&&a.keyCode!=goog.events.KeyCodes.CTRL?this.lastKey_=goog.events.KeyCodes.CTRL:a.altKey&&a.keyCode!=goog.events.KeyCodes.ALT?this.lastKey_=goog.events.KeyCodes.ALT:a.metaKey&& +a.keyCode!=goog.events.KeyCodes.META&&(this.lastKey_=goog.events.KeyCodes.META));goog.events.KeyHandler.USES_KEYDOWN_&&!goog.events.KeyCodes.firesKeyPressEvent(a.keyCode,this.lastKey_,a.shiftKey,a.ctrlKey,a.altKey)?this.handleEvent(a):(this.keyCode_=goog.userAgent.GECKO?goog.events.KeyCodes.normalizeGeckoKeyCode(a.keyCode):a.keyCode,goog.events.KeyHandler.SAVE_ALT_FOR_KEYPRESS_&&(this.altKey_=a.altKey))};goog.events.KeyHandler.prototype.resetState=function(){this.keyCode_=this.lastKey_=-1}; +goog.events.KeyHandler.prototype.handleKeyup_=function(a){this.resetState();this.altKey_=a.altKey}; +goog.events.KeyHandler.prototype.handleEvent=function(a){var b=a.getBrowserEvent(),c,d,e=b.altKey;goog.userAgent.IE&&a.type==goog.events.EventType.KEYPRESS?(c=this.keyCode_,d=c!=goog.events.KeyCodes.ENTER&&c!=goog.events.KeyCodes.ESC?b.keyCode:0):goog.userAgent.WEBKIT&&a.type==goog.events.EventType.KEYPRESS?(c=this.keyCode_,d=0<=b.charCode&&63232>b.charCode&&goog.events.KeyCodes.isCharacterKey(c)?b.charCode:0):goog.userAgent.OPERA?(c=this.keyCode_,d=goog.events.KeyCodes.isCharacterKey(c)?b.keyCode: +0):(c=b.keyCode||this.keyCode_,d=b.charCode||0,goog.events.KeyHandler.SAVE_ALT_FOR_KEYPRESS_&&(e=this.altKey_),goog.userAgent.MAC&&(d==goog.events.KeyCodes.QUESTION_MARK&&c==goog.events.KeyCodes.WIN_KEY)&&(c=goog.events.KeyCodes.SLASH));var f=c,g=b.keyIdentifier;c?63232<=c&&c in goog.events.KeyHandler.safariKey_?f=goog.events.KeyHandler.safariKey_[c]:25==c&&a.shiftKey&&(f=9):g&&g in goog.events.KeyHandler.keyIdentifier_&&(f=goog.events.KeyHandler.keyIdentifier_[g]);a=f==this.lastKey_;this.lastKey_= +f;b=new goog.events.KeyEvent(f,d,a,b);b.altKey=e;this.dispatchEvent(b)};goog.events.KeyHandler.prototype.getElement=function(){return this.element_}; +goog.events.KeyHandler.prototype.attach=function(a,b){this.keyUpKey_&&this.detach();this.element_=a;this.keyPressKey_=goog.events.listen(this.element_,goog.events.EventType.KEYPRESS,this,b);this.keyDownKey_=goog.events.listen(this.element_,goog.events.EventType.KEYDOWN,this.handleKeyDown_,b,this);this.keyUpKey_=goog.events.listen(this.element_,goog.events.EventType.KEYUP,this.handleKeyup_,b,this)}; +goog.events.KeyHandler.prototype.detach=function(){this.keyPressKey_&&(goog.events.unlistenByKey(this.keyPressKey_),goog.events.unlistenByKey(this.keyDownKey_),goog.events.unlistenByKey(this.keyUpKey_),this.keyUpKey_=this.keyDownKey_=this.keyPressKey_=null);this.element_=null;this.keyCode_=this.lastKey_=-1};goog.events.KeyHandler.prototype.disposeInternal=function(){goog.events.KeyHandler.superClass_.disposeInternal.call(this);this.detach()}; +goog.events.KeyEvent=function(a,b,c,d){goog.events.BrowserEvent.call(this,d);this.type=goog.events.KeyHandler.EventType.KEY;this.keyCode=a;this.charCode=b;this.repeat=c};goog.inherits(goog.events.KeyEvent,goog.events.BrowserEvent);goog.dom.vendor={};goog.dom.vendor.getVendorJsPrefix=function(){return goog.userAgent.WEBKIT?"Webkit":goog.userAgent.GECKO?"Moz":goog.userAgent.IE?"ms":goog.userAgent.OPERA?"O":null};goog.dom.vendor.getVendorPrefix=function(){return goog.userAgent.WEBKIT?"-webkit":goog.userAgent.GECKO?"-moz":goog.userAgent.IE?"-ms":goog.userAgent.OPERA?"-o":null};goog.math.Box=function(a,b,c,d){this.top=a;this.right=b;this.bottom=c;this.left=d};goog.math.Box.boundingBox=function(a){for(var b=new goog.math.Box(arguments[0].y,arguments[0].x,arguments[0].y,arguments[0].x),c=1;c=a.left&&b.right<=a.right&&b.top>=a.top&&b.bottom<=a.bottom:b.x>=a.left&&b.x<=a.right&&b.y>=a.top&&b.y<=a.bottom:!1};goog.math.Box.relativePositionX=function(a,b){return b.xa.right?b.x-a.right:0};goog.math.Box.relativePositionY=function(a,b){return b.ya.bottom?b.y-a.bottom:0}; +goog.math.Box.distance=function(a,b){var c=goog.math.Box.relativePositionX(a,b),d=goog.math.Box.relativePositionY(a,b);return Math.sqrt(c*c+d*d)};goog.math.Box.intersects=function(a,b){return a.left<=b.right&&b.left<=a.right&&a.top<=b.bottom&&b.top<=a.bottom};goog.math.Box.intersectsWithPadding=function(a,b,c){return a.left<=b.right+c&&b.left<=a.right+c&&a.top<=b.bottom+c&&b.top<=a.bottom+c}; +goog.math.Box.prototype.ceil=function(){this.top=Math.ceil(this.top);this.right=Math.ceil(this.right);this.bottom=Math.ceil(this.bottom);this.left=Math.ceil(this.left);return this};goog.math.Box.prototype.floor=function(){this.top=Math.floor(this.top);this.right=Math.floor(this.right);this.bottom=Math.floor(this.bottom);this.left=Math.floor(this.left);return this}; +goog.math.Box.prototype.round=function(){this.top=Math.round(this.top);this.right=Math.round(this.right);this.bottom=Math.round(this.bottom);this.left=Math.round(this.left);return this};goog.math.Box.prototype.translate=function(a,b){a instanceof goog.math.Coordinate?(this.left+=a.x,this.right+=a.x,this.top+=a.y,this.bottom+=a.y):(this.left+=a,this.right+=a,goog.isNumber(b)&&(this.top+=b,this.bottom+=b));return this}; +goog.math.Box.prototype.scale=function(a,b){var c=goog.isNumber(b)?b:a;this.left*=a;this.right*=a;this.top*=c;this.bottom*=c;return this};goog.math.Rect=function(a,b,c,d){this.left=a;this.top=b;this.width=c;this.height=d};goog.math.Rect.prototype.clone=function(){return new goog.math.Rect(this.left,this.top,this.width,this.height)};goog.math.Rect.prototype.toBox=function(){return new goog.math.Box(this.top,this.left+this.width,this.top+this.height,this.left)};goog.math.Rect.createFromBox=function(a){return new goog.math.Rect(a.left,a.top,a.right-a.left,a.bottom-a.top)}; +goog.DEBUG&&(goog.math.Rect.prototype.toString=function(){return"("+this.left+", "+this.top+" - "+this.width+"w x "+this.height+"h)"});goog.math.Rect.equals=function(a,b){return a==b?!0:a&&b?a.left==b.left&&a.width==b.width&&a.top==b.top&&a.height==b.height:!1}; +goog.math.Rect.prototype.intersection=function(a){var b=Math.max(this.left,a.left),c=Math.min(this.left+this.width,a.left+a.width);if(b<=c){var d=Math.max(this.top,a.top);a=Math.min(this.top+this.height,a.top+a.height);if(d<=a)return this.left=b,this.top=d,this.width=c-b,this.height=a-d,!0}return!1}; +goog.math.Rect.intersection=function(a,b){var c=Math.max(a.left,b.left),d=Math.min(a.left+a.width,b.left+b.width);if(c<=d){var e=Math.max(a.top,b.top),f=Math.min(a.top+a.height,b.top+b.height);if(e<=f)return new goog.math.Rect(c,e,d-c,f-e)}return null};goog.math.Rect.intersects=function(a,b){return a.left<=b.left+b.width&&b.left<=a.left+a.width&&a.top<=b.top+b.height&&b.top<=a.top+a.height};goog.math.Rect.prototype.intersects=function(a){return goog.math.Rect.intersects(this,a)}; +goog.math.Rect.difference=function(a,b){var c=goog.math.Rect.intersection(a,b);if(!c||!c.height||!c.width)return[a.clone()];var c=[],d=a.top,e=a.height,f=a.left+a.width,g=a.top+a.height,h=b.left+b.width,k=b.top+b.height;b.top>a.top&&(c.push(new goog.math.Rect(a.left,a.top,a.width,b.top-a.top)),d=b.top,e-=b.top-a.top);ka.left&&c.push(new goog.math.Rect(a.left,d,b.left-a.left,e));h=a.left+a.width&&this.top<=a.top&&this.top+this.height>=a.top+a.height:a.x>=this.left&&a.x<=this.left+this.width&&a.y>=this.top&&a.y<=this.top+this.height};goog.math.Rect.prototype.squaredDistance=function(a){var b=a.xa.clientWidth||a.scrollHeight>a.clientHeight||"fixed"==c||"absolute"==c||"relative"==c))return a;return null}; +goog.style.getVisibleRectForElement=function(a){for(var b=new goog.math.Box(0,Infinity,Infinity,0),c=goog.dom.getDomHelper(a),d=c.getDocument().body,e=c.getDocument().documentElement,f=c.getDocumentScrollElement();a=goog.style.getOffsetParent(a);)if(!(goog.userAgent.IE&&0==a.clientWidth||goog.userAgent.WEBKIT&&0==a.clientHeight&&a==d||a==d||a==e||"visible"==goog.style.getStyle_(a,"overflow"))){var g=goog.style.getPageOffset(a),h=goog.style.getClientLeftTop(a);g.x+=h.x;g.y+=h.y;b.top=Math.max(b.top, +g.y);b.right=Math.min(b.right,g.x+a.clientWidth);b.bottom=Math.min(b.bottom,g.y+a.clientHeight);b.left=Math.max(b.left,g.x)}d=f.scrollLeft;f=f.scrollTop;b.left=Math.max(b.left,d);b.top=Math.max(b.top,f);c=c.getViewportSize();b.right=Math.min(b.right,d+c.width);b.bottom=Math.min(b.bottom,f+c.height);return 0<=b.top&&0<=b.left&&b.bottom>b.top&&b.right>b.left?b:null}; +goog.style.getContainerOffsetToScrollInto=function(a,b,c){var d=goog.style.getPageOffset(a),e=goog.style.getPageOffset(b),f=goog.style.getBorderBox(b),g=d.x-e.x-f.left,d=d.y-e.y-f.top,e=b.clientWidth-a.offsetWidth;a=b.clientHeight-a.offsetHeight;f=b.scrollLeft;b=b.scrollTop;c?(f+=g-e/2,b+=d-a/2):(f+=Math.min(g,Math.max(g-e,0)),b+=Math.min(d,Math.max(d-a,0)));return new goog.math.Coordinate(f,b)}; +goog.style.scrollIntoContainerView=function(a,b,c){a=goog.style.getContainerOffsetToScrollInto(a,b,c);b.scrollLeft=a.x;b.scrollTop=a.y}; +goog.style.getClientLeftTop=function(a){if(goog.userAgent.GECKO&&!goog.userAgent.isVersionOrHigher("1.9")){var b=parseFloat(goog.style.getComputedStyle(a,"borderLeftWidth"));if(goog.style.isRightToLeft(a))var c=a.offsetWidth-a.clientWidth-b-parseFloat(goog.style.getComputedStyle(a,"borderRightWidth")),b=b+c;return new goog.math.Coordinate(b,parseFloat(goog.style.getComputedStyle(a,"borderTopWidth")))}return new goog.math.Coordinate(a.clientLeft,a.clientTop)}; +goog.style.getPageOffset=function(a){var b,c=goog.dom.getOwnerDocument(a),d=goog.style.getStyle_(a,"position"),e=!goog.style.GET_BOUNDING_CLIENT_RECT_ALWAYS_EXISTS&&goog.userAgent.GECKO&&c.getBoxObjectFor&&!a.getBoundingClientRect&&"absolute"==d&&(b=c.getBoxObjectFor(a))&&(0>b.screenX||0>b.screenY),f=new goog.math.Coordinate(0,0),g=goog.style.getClientViewportElement(c);if(a==g)return f;if(goog.style.GET_BOUNDING_CLIENT_RECT_ALWAYS_EXISTS||a.getBoundingClientRect)b=goog.style.getBoundingClientRect_(a), +a=goog.dom.getDomHelper(c).getDocumentScroll(),f.x=b.left+a.x,f.y=b.top+a.y;else if(c.getBoxObjectFor&&!e)b=c.getBoxObjectFor(a),a=c.getBoxObjectFor(g),f.x=b.screenX-a.screenX,f.y=b.screenY-a.screenY;else{b=a;do{f.x+=b.offsetLeft;f.y+=b.offsetTop;b!=a&&(f.x+=b.clientLeft||0,f.y+=b.clientTop||0);if(goog.userAgent.WEBKIT&&"fixed"==goog.style.getComputedPosition(b)){f.x+=c.body.scrollLeft;f.y+=c.body.scrollTop;break}b=b.offsetParent}while(b&&b!=a);if(goog.userAgent.OPERA||goog.userAgent.WEBKIT&&"absolute"== +d)f.y-=c.body.offsetTop;for(b=a;(b=goog.style.getOffsetParent(b))&&b!=c.body&&b!=g;)f.x-=b.scrollLeft,goog.userAgent.OPERA&&"TR"==b.tagName||(f.y-=b.scrollTop)}return f};goog.style.getPageOffsetLeft=function(a){return goog.style.getPageOffset(a).x};goog.style.getPageOffsetTop=function(a){return goog.style.getPageOffset(a).y}; +goog.style.getFramedPageOffset=function(a,b){var c=new goog.math.Coordinate(0,0),d=goog.dom.getWindow(goog.dom.getOwnerDocument(a)),e=a;do{var f=d==b?goog.style.getPageOffset(e):goog.style.getClientPositionForElement_(null);c.x+=f.x;c.y+=f.y}while(d&&d!=b&&(e=d.frameElement)&&(d=d.parent));return c}; +goog.style.translateRectForAnotherFrame=function(a,b,c){if(b.getDocument()!=c.getDocument()){var d=b.getDocument().body;c=goog.style.getFramedPageOffset(d,c.getWindow());c=goog.math.Coordinate.difference(c,goog.style.getPageOffset(d));goog.userAgent.IE&&!b.isCss1CompatMode()&&(c=goog.math.Coordinate.difference(c,b.getDocumentScroll()));a.left+=c.x;a.top+=c.y}}; +goog.style.getRelativePosition=function(a,b){var c=goog.style.getClientPosition(a),d=goog.style.getClientPosition(b);return new goog.math.Coordinate(c.x-d.x,c.y-d.y)}; +goog.style.getClientPositionForElement_=function(a){var b;if(goog.style.GET_BOUNDING_CLIENT_RECT_ALWAYS_EXISTS||a.getBoundingClientRect)b=goog.style.getBoundingClientRect_(a),b=new goog.math.Coordinate(b.left,b.top);else{b=goog.dom.getDomHelper(a).getDocumentScroll();var c=goog.style.getPageOffset(a);b=new goog.math.Coordinate(c.x-b.x,c.y-b.y)}return goog.userAgent.GECKO&&!goog.userAgent.isVersionOrHigher(12)?goog.math.Coordinate.sum(b,goog.style.getCssTranslation(a)):b}; +goog.style.getClientPosition=function(a){if(a.nodeType==goog.dom.NodeType.ELEMENT)return goog.style.getClientPositionForElement_(a);var b=goog.isFunction(a.getBrowserEvent),c=a;a.targetTouches?c=a.targetTouches[0]:b&&a.getBrowserEvent().targetTouches&&(c=a.getBrowserEvent().targetTouches[0]);return new goog.math.Coordinate(c.clientX,c.clientY)}; +goog.style.setPageOffset=function(a,b,c){var d=goog.style.getPageOffset(a);b instanceof goog.math.Coordinate&&(c=b.y,b=b.x);goog.style.setPosition(a,a.offsetLeft+(b-d.x),a.offsetTop+(c-d.y))};goog.style.setSize=function(a,b,c){if(b instanceof goog.math.Size)c=b.height,b=b.width;else if(void 0==c)throw Error("missing height argument");goog.style.setWidth(a,b);goog.style.setHeight(a,c)};goog.style.getPixelStyleValue_=function(a,b){"number"==typeof a&&(a=(b?Math.round(a):a)+"px");return a}; +goog.style.setHeight=function(a,b){a.style.height=goog.style.getPixelStyleValue_(b,!0)};goog.style.setWidth=function(a,b){a.style.width=goog.style.getPixelStyleValue_(b,!0)};goog.style.getSize=function(a){return goog.style.evaluateWithTemporaryDisplay_(goog.style.getSizeWithDisplay_,a)}; +goog.style.evaluateWithTemporaryDisplay_=function(a,b){if("none"!=goog.style.getStyle_(b,"display"))return a(b);var c=b.style,d=c.display,e=c.visibility,f=c.position;c.visibility="hidden";c.position="absolute";c.display="inline";var g=a(b);c.display=d;c.position=f;c.visibility=e;return g}; +goog.style.getSizeWithDisplay_=function(a){var b=a.offsetWidth,c=a.offsetHeight,d=goog.userAgent.WEBKIT&&!b&&!c;return goog.isDef(b)&&!d||!a.getBoundingClientRect?new goog.math.Size(b,c):(a=goog.style.getBoundingClientRect_(a),new goog.math.Size(a.right-a.left,a.bottom-a.top))};goog.style.getTransformedSize=function(a){if(!a.getBoundingClientRect)return null;a=goog.style.evaluateWithTemporaryDisplay_(goog.style.getBoundingClientRect_,a);return new goog.math.Size(a.right-a.left,a.bottom-a.top)}; +goog.style.getBounds=function(a){var b=goog.style.getPageOffset(a);a=goog.style.getSize(a);return new goog.math.Rect(b.x,b.y,a.width,a.height)};goog.style.toCamelCase=function(a){return goog.string.toCamelCase(String(a))};goog.style.toSelectorCase=function(a){return goog.string.toSelectorCase(a)}; +goog.style.getOpacity=function(a){var b=a.style;a="";"opacity"in b?a=b.opacity:"MozOpacity"in b?a=b.MozOpacity:"filter"in b&&(b=b.filter.match(/alpha\(opacity=([\d.]+)\)/))&&(a=String(b[1]/100));return""==a?a:Number(a)};goog.style.setOpacity=function(a,b){var c=a.style;"opacity"in c?c.opacity=b:"MozOpacity"in c?c.MozOpacity=b:"filter"in c&&(c.filter=""===b?"":"alpha(opacity\x3d"+100*b+")")}; +goog.style.setTransparentBackgroundImage=function(a,b){var c=a.style;goog.userAgent.IE&&!goog.userAgent.isVersionOrHigher("8")?c.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src\x3d"'+b+'", sizingMethod\x3d"crop")':(c.backgroundImage="url("+b+")",c.backgroundPosition="top left",c.backgroundRepeat="no-repeat")};goog.style.clearTransparentBackgroundImage=function(a){a=a.style;"filter"in a?a.filter="":a.backgroundImage="none"}; +goog.style.showElement=function(a,b){goog.style.setElementShown(a,b)};goog.style.setElementShown=function(a,b){a.style.display=b?"":"none"};goog.style.isElementShown=function(a){return"none"!=a.style.display}; +goog.style.installStyles=function(a,b){var c=goog.dom.getDomHelper(b),d=null;if(goog.userAgent.IE)d=c.getDocument().createStyleSheet(),goog.style.setStyles(d,a);else{var e=c.getElementsByTagNameAndClass("head")[0];e||(d=c.getElementsByTagNameAndClass("body")[0],e=c.createDom("head"),d.parentNode.insertBefore(e,d));d=c.createDom("style");goog.style.setStyles(d,a);c.appendChild(e,d)}return d};goog.style.uninstallStyles=function(a){goog.dom.removeNode(a.ownerNode||a.owningElement||a)}; +goog.style.setStyles=function(a,b){goog.userAgent.IE?a.cssText=b:a.innerHTML=b};goog.style.setPreWrap=function(a){a=a.style;goog.userAgent.IE&&!goog.userAgent.isVersionOrHigher("8")?(a.whiteSpace="pre",a.wordWrap="break-word"):a.whiteSpace=goog.userAgent.GECKO?"-moz-pre-wrap":"pre-wrap"}; +goog.style.setInlineBlock=function(a){a=a.style;a.position="relative";goog.userAgent.IE&&!goog.userAgent.isVersionOrHigher("8")?(a.zoom="1",a.display="inline"):a.display=goog.userAgent.GECKO?goog.userAgent.isVersionOrHigher("1.9a")?"inline-block":"-moz-inline-box":"inline-block"};goog.style.isRightToLeft=function(a){return"rtl"==goog.style.getStyle_(a,"direction")};goog.style.unselectableStyle_=goog.userAgent.GECKO?"MozUserSelect":goog.userAgent.WEBKIT?"WebkitUserSelect":null; +goog.style.isUnselectable=function(a){return goog.style.unselectableStyle_?"none"==a.style[goog.style.unselectableStyle_].toLowerCase():goog.userAgent.IE||goog.userAgent.OPERA?"on"==a.getAttribute("unselectable"):!1}; +goog.style.setUnselectable=function(a,b,c){c=c?null:a.getElementsByTagName("*");var d=goog.style.unselectableStyle_;if(d){if(b=b?"none":"",a.style[d]=b,c){a=0;for(var e;e=c[a];a++)e.style[d]=b}}else if(goog.userAgent.IE||goog.userAgent.OPERA)if(b=b?"on":"",a.setAttribute("unselectable",b),c)for(a=0;e=c[a];a++)e.setAttribute("unselectable",b)};goog.style.getBorderBoxSize=function(a){return new goog.math.Size(a.offsetWidth,a.offsetHeight)}; +goog.style.setBorderBoxSize=function(a,b){var c=goog.dom.getOwnerDocument(a),d=goog.dom.getDomHelper(c).isCss1CompatMode();if(!goog.userAgent.IE||d&&goog.userAgent.isVersionOrHigher("8"))goog.style.setBoxSizingSize_(a,b,"border-box");else if(c=a.style,d){var d=goog.style.getPaddingBox(a),e=goog.style.getBorderBox(a);c.pixelWidth=b.width-e.left-d.left-d.right-e.right;c.pixelHeight=b.height-e.top-d.top-d.bottom-e.bottom}else c.pixelWidth=b.width,c.pixelHeight=b.height}; +goog.style.getContentBoxSize=function(a){var b=goog.dom.getOwnerDocument(a),c=goog.userAgent.IE&&a.currentStyle;if(c&&goog.dom.getDomHelper(b).isCss1CompatMode()&&"auto"!=c.width&&"auto"!=c.height&&!c.boxSizing)return b=goog.style.getIePixelValue_(a,c.width,"width","pixelWidth"),a=goog.style.getIePixelValue_(a,c.height,"height","pixelHeight"),new goog.math.Size(b,a);c=goog.style.getBorderBoxSize(a);b=goog.style.getPaddingBox(a);a=goog.style.getBorderBox(a);return new goog.math.Size(c.width-a.left- +b.left-b.right-a.right,c.height-a.top-b.top-b.bottom-a.bottom)}; +goog.style.setContentBoxSize=function(a,b){var c=goog.dom.getOwnerDocument(a),d=goog.dom.getDomHelper(c).isCss1CompatMode();if(!goog.userAgent.IE||d&&goog.userAgent.isVersionOrHigher("8"))goog.style.setBoxSizingSize_(a,b,"content-box");else if(c=a.style,d)c.pixelWidth=b.width,c.pixelHeight=b.height;else{var d=goog.style.getPaddingBox(a),e=goog.style.getBorderBox(a);c.pixelWidth=b.width+e.left+d.left+d.right+e.right;c.pixelHeight=b.height+e.top+d.top+d.bottom+e.bottom}}; +goog.style.setBoxSizingSize_=function(a,b,c){a=a.style;goog.userAgent.GECKO?a.MozBoxSizing=c:goog.userAgent.WEBKIT?a.WebkitBoxSizing=c:a.boxSizing=c;a.width=Math.max(b.width,0)+"px";a.height=Math.max(b.height,0)+"px"};goog.style.getIePixelValue_=function(a,b,c,d){if(/^\d+px?$/.test(b))return parseInt(b,10);var e=a.style[c],f=a.runtimeStyle[c];a.runtimeStyle[c]=a.currentStyle[c];a.style[c]=b;b=a.style[d];a.style[c]=e;a.runtimeStyle[c]=f;return b}; +goog.style.getIePixelDistance_=function(a,b){var c=goog.style.getCascadedStyle(a,b);return c?goog.style.getIePixelValue_(a,c,"left","pixelLeft"):0}; +goog.style.getBox_=function(a,b){if(goog.userAgent.IE){var c=goog.style.getIePixelDistance_(a,b+"Left"),d=goog.style.getIePixelDistance_(a,b+"Right"),e=goog.style.getIePixelDistance_(a,b+"Top"),f=goog.style.getIePixelDistance_(a,b+"Bottom");return new goog.math.Box(e,d,f,c)}c=goog.style.getComputedStyle(a,b+"Left");d=goog.style.getComputedStyle(a,b+"Right");e=goog.style.getComputedStyle(a,b+"Top");f=goog.style.getComputedStyle(a,b+"Bottom");return new goog.math.Box(parseFloat(e),parseFloat(d),parseFloat(f), +parseFloat(c))};goog.style.getPaddingBox=function(a){return goog.style.getBox_(a,"padding")};goog.style.getMarginBox=function(a){return goog.style.getBox_(a,"margin")};goog.style.ieBorderWidthKeywords_={thin:2,medium:4,thick:6}; +goog.style.getIePixelBorder_=function(a,b){if("none"==goog.style.getCascadedStyle(a,b+"Style"))return 0;var c=goog.style.getCascadedStyle(a,b+"Width");return c in goog.style.ieBorderWidthKeywords_?goog.style.ieBorderWidthKeywords_[c]:goog.style.getIePixelValue_(a,c,"left","pixelLeft")}; +goog.style.getBorderBox=function(a){if(goog.userAgent.IE){var b=goog.style.getIePixelBorder_(a,"borderLeft"),c=goog.style.getIePixelBorder_(a,"borderRight"),d=goog.style.getIePixelBorder_(a,"borderTop");a=goog.style.getIePixelBorder_(a,"borderBottom");return new goog.math.Box(d,c,a,b)}b=goog.style.getComputedStyle(a,"borderLeftWidth");c=goog.style.getComputedStyle(a,"borderRightWidth");d=goog.style.getComputedStyle(a,"borderTopWidth");a=goog.style.getComputedStyle(a,"borderBottomWidth");return new goog.math.Box(parseFloat(d), +parseFloat(c),parseFloat(a),parseFloat(b))};goog.style.getFontFamily=function(a){var b=goog.dom.getOwnerDocument(a),c="";if(b.body.createTextRange){b=b.body.createTextRange();b.moveToElementText(a);try{c=b.queryCommandValue("FontName")}catch(d){c=""}}c||(c=goog.style.getStyle_(a,"fontFamily"));a=c.split(",");1d&&(d= +-3),goog.isDef(a.axis)&&a.axis===a.HORIZONTAL_AXIS?b=d:c=d;goog.isNumber(this.maxDeltaX_)&&(b=goog.math.clamp(b,-this.maxDeltaX_,this.maxDeltaX_));goog.isNumber(this.maxDeltaY_)&&(c=goog.math.clamp(c,-this.maxDeltaY_,this.maxDeltaY_));this.isRtl_&&(b=-b);b=new goog.events.MouseWheelEvent(d,a,b,c);this.dispatchEvent(b)};goog.events.MouseWheelHandler.smartScale_=function(a,b){return goog.userAgent.WEBKIT&&(goog.userAgent.MAC||goog.userAgent.LINUX)&&0!=a%b?a:a/b}; +goog.events.MouseWheelHandler.prototype.disposeInternal=function(){goog.events.MouseWheelHandler.superClass_.disposeInternal.call(this);goog.events.unlistenByKey(this.listenKey_);this.listenKey_=null};goog.events.MouseWheelEvent=function(a,b,c,d){goog.events.BrowserEvent.call(this,b);this.type=goog.events.MouseWheelHandler.EventType.MOUSEWHEEL;this.detail=a;this.deltaX=c;this.deltaY=d};goog.inherits(goog.events.MouseWheelEvent,goog.events.BrowserEvent);ol.MapEventType={POSTRENDER:"postrender",MOVEEND:"moveend"};ol.MapEvent=function(a,b,c){goog.events.Event.call(this,a);this.map=b;this.frameState=goog.isDef(c)?c:null};goog.inherits(ol.MapEvent,goog.events.Event);ol.MapBrowserEvent=function(a,b,c,d){ol.MapEvent.call(this,a,b,d);this.browserEvent=c;this.pixel_=this.coordinate_=null};goog.inherits(ol.MapBrowserEvent,ol.MapEvent);ol.MapBrowserEvent.prototype.getCoordinate=function(){goog.isNull(this.coordinate_)&&(this.coordinate_=this.map.getCoordinateFromPixel(this.getPixel()));return this.coordinate_}; +ol.MapBrowserEvent.prototype.getPixel=function(){if(goog.isNull(this.pixel_)){var a=goog.style.getRelativePosition(this.browserEvent,this.map.getViewport());this.pixel_=[a.x,a.y]}return this.pixel_};ol.MapBrowserEvent.prototype.isMouseActionButton=function(){return ol.BrowserFeature.HAS_TOUCH||this.browserEvent.isMouseActionButton()};ol.MapBrowserEvent.prototype.preventDefault=function(){ol.MapBrowserEvent.superClass_.preventDefault.call(this);this.browserEvent.preventDefault()}; +ol.MapBrowserEvent.prototype.stopPropagation=function(){ol.MapBrowserEvent.superClass_.stopPropagation.call(this);this.browserEvent.stopPropagation()}; +ol.MapBrowserEventHandler=function(a){goog.events.EventTarget.call(this);this.map_=a;this.dragged_=!1;this.down_=this.touchListenerKeys_=this.dragListenerKeys_=this.listenerKeys_=this.timestamp_=null;a=this.map_.getViewport();this.listenerKeys_=[goog.events.listen(a,[goog.events.EventType.CLICK,goog.events.EventType.DBLCLICK],this.click_,!1,this),goog.events.listen(a,goog.events.EventType.MOUSEDOWN,this.handleMouseDown_,!1,this),goog.events.listen(a,goog.events.EventType.MOUSEMOVE,this.relayEvent_, +!1,this),goog.events.listen(a,goog.events.EventType.MOUSEOUT,this.relayEvent_,!1,this),goog.events.listen(a,goog.events.EventType.CONTEXTMENU,this.relayEvent_,!1,this)];this.touchListenerKeys_=[goog.events.listen(a,[goog.events.EventType.TOUCHSTART,goog.events.EventType.MSPOINTERDOWN],this.handleTouchStart_,!1,this),goog.events.listen(goog.global.document,[goog.events.EventType.TOUCHMOVE,goog.events.EventType.MSPOINTERMOVE],this.handleTouchMove_,!1,this),goog.events.listen(goog.global.document,[goog.events.EventType.TOUCHEND, +goog.events.EventType.MSPOINTERUP],this.handleTouchEnd_,!1,this)]};goog.inherits(ol.MapBrowserEventHandler,goog.events.EventTarget);ol.MapBrowserEventHandler.prototype.click_=function(a){if(!this.dragged_){var b=a.type;a=0===this.timestamp_||b==goog.events.EventType.DBLCLICK?new ol.MapBrowserEvent(ol.MapBrowserEvent.EventType.DBLCLICK,this.map_,a):new ol.MapBrowserEvent(ol.MapBrowserEvent.EventType.CLICK,this.map_,a);this.dispatchEvent(a)}}; +ol.MapBrowserEventHandler.prototype.handleMouseUp_=function(a){this.down_&&(this.down_=null,goog.array.forEach(this.dragListenerKeys_,goog.events.unlistenByKey),this.dragListenerKeys_=null,this.dragged_&&(a=new ol.MapBrowserEvent(ol.MapBrowserEvent.EventType.DRAGEND,this.map_,a),this.dispatchEvent(a)))}; +ol.MapBrowserEventHandler.prototype.handleMouseDown_=function(a){var b=new ol.MapBrowserEvent(ol.MapBrowserEvent.EventType.DOWN,this.map_,a);this.dispatchEvent(b);this.down_||(this.down_=a,this.dragged_=!1,this.dragListenerKeys_=[goog.events.listen(goog.global.document,goog.events.EventType.MOUSEMOVE,this.handleMouseMove_,!1,this),goog.events.listen(goog.global.document,goog.events.EventType.MOUSEUP,this.handleMouseUp_,!1,this)],a.preventDefault())}; +ol.MapBrowserEventHandler.prototype.handleMouseMove_=function(a){var b;this.dragged_||(this.dragged_=!0,b=new ol.MapBrowserEvent(ol.MapBrowserEvent.EventType.DRAGSTART,this.map_,this.down_),this.dispatchEvent(b));b=new ol.MapBrowserEvent(ol.MapBrowserEvent.EventType.DRAG,this.map_,a);this.dispatchEvent(b)};ol.MapBrowserEventHandler.prototype.relayEvent_=function(a){this.dispatchEvent(new ol.MapBrowserEvent(a.type,this.map_,a))}; +ol.MapBrowserEventHandler.prototype.handleTouchStart_=function(a){a.preventDefault();this.down_=a;this.dragged_=!1;a=new ol.MapBrowserEvent(ol.MapBrowserEvent.EventType.TOUCHSTART,this.map_,a);this.dispatchEvent(a)};ol.MapBrowserEventHandler.prototype.handleTouchMove_=function(a){this.down_&&(this.dragged_=!0,a=new ol.MapBrowserEvent(ol.MapBrowserEvent.EventType.TOUCHMOVE,this.map_,a),this.dispatchEvent(a))}; +ol.MapBrowserEventHandler.prototype.handleTouchEnd_=function(a){a=new ol.MapBrowserEvent(ol.MapBrowserEvent.EventType.TOUCHEND,this.map_,a);this.dispatchEvent(a);this.dragged_||(a=goog.now(),this.timestamp_=!this.timestamp_||250this.minResolution_)}return a}; +ol.View2D.prototype.fitExtent=function(a,b){this.setCenter(ol.extent.getCenter(a));var c=this.getResolutionForExtent(a,b),c=this.constrainResolution(c,0,0);this.setResolution(c)};ol.View2D.prototype.isDef=function(){return goog.isDefAndNotNull(this.getCenter())&&goog.isDef(this.getResolution())};ol.View2D.prototype.setCenter=function(a){this.set(ol.View2DProperty.CENTER,a)};goog.exportProperty(ol.View2D.prototype,"setCenter",ol.View2D.prototype.setCenter); +ol.View2D.prototype.setProjection=function(a){this.set(ol.View2DProperty.PROJECTION,a)};goog.exportProperty(ol.View2D.prototype,"setProjection",ol.View2D.prototype.setProjection);ol.View2D.prototype.setResolution=function(a){this.set(ol.View2DProperty.RESOLUTION,a)};goog.exportProperty(ol.View2D.prototype,"setResolution",ol.View2D.prototype.setResolution);ol.View2D.prototype.setRotation=function(a){this.set(ol.View2DProperty.ROTATION,a)};goog.exportProperty(ol.View2D.prototype,"setRotation",ol.View2D.prototype.setRotation); +ol.View2D.prototype.setZoom=function(a){a=this.constrainResolution(this.maxResolution_,a,0);this.setResolution(a)}; +ol.View2D.createResolutionConstraint_=function(a){var b,c;if(goog.isDef(a.resolutions))b=a.resolutions,c=b[0],a=b[b.length-1],b=ol.ResolutionConstraint.createSnapToResolutions(b);else{c=a.maxResolution;goog.isDef(c)||(c=a.projection,b=ol.proj.createProjection(c,"EPSG:3857").getExtent(),c=(goog.isNull(b)?360*ol.METERS_PER_UNIT[ol.ProjectionUnits.DEGREES]/ol.METERS_PER_UNIT[c.getUnits()]:Math.max(b[1]-b[0],b[3]-b[2]))/ol.DEFAULT_TILE_SIZE);b=a.maxZoom;goog.isDef(b)||(b=28);var d=a.zoomFactor;goog.isDef(d)|| +(d=2);a=c/Math.pow(d,b);b=ol.ResolutionConstraint.createSnapToPower(d,c,b)}return{constraint:b,maxResolution:c,minResolution:a}};ol.View2D.createRotationConstraint_=function(a){return ol.RotationConstraint.createSnapToZero()};ol.control={};ol.control.Control=function(a){ol.Object.call(this);this.element=goog.isDef(a.element)?a.element:null;this.target_=a.target;this.map_=null;this.listenerKeys=[]};goog.inherits(ol.control.Control,ol.Object);ol.control.Control.prototype.disposeInternal=function(){goog.dom.removeNode(this.element);ol.control.Control.superClass_.disposeInternal.call(this)};ol.control.Control.prototype.getMap=function(){return this.map_};ol.control.Control.prototype.handleMapPostrender=goog.nullFunction; +ol.control.Control.prototype.setMap=function(a){goog.isNull(this.map_)||goog.dom.removeNode(this.element);goog.array.isEmpty(this.listenerKeys)||(goog.array.forEach(this.listenerKeys,goog.events.unlistenByKey),this.listenerKeys.length=0);this.map_=a;if(!goog.isNull(this.map_)){var b=goog.isDef(this.target_)?this.target_:a.getOverlayContainer();goog.dom.appendChild(b,this.element);this.handleMapPostrender!==goog.nullFunction&&this.listenerKeys.push(goog.events.listen(a,ol.MapEventType.POSTRENDER,this.handleMapPostrender, +!1,this))}};ol.css={};ol.css.CLASS_UNSELECTABLE="ol-unselectable";ol.css.CLASS_UNSUPPORTED="ol-unsupported";ol.control.Attribution=function(a){a=goog.isDef(a)?a:{};this.ulElement_=goog.dom.createElement(goog.dom.TagName.UL);var b=goog.isDef(a.className)?a.className:"ol-attribution",b=goog.dom.createDom(goog.dom.TagName.DIV,{"class":b+" "+ol.css.CLASS_UNSELECTABLE},this.ulElement_);ol.control.Control.call(this,{element:b,target:a.target});this.renderedVisible_=!0;this.attributionElements_={};this.attributionElementRenderedVisible_={}};goog.inherits(ol.control.Attribution,ol.control.Control); +ol.control.Attribution.prototype.getSourceAttributions=function(a){var b,c,d,e,f,g,h,k,l,m=a.layersArray,n=goog.object.clone(a.attributions),q={};b=0;for(c=m.length;b=ol.SHIFT_DRAG_ZOOM_HYSTERESIS_PIXELS_SQUARED){var b=a.map,c=ol.extent.boundingExtent([this.startCoordinate,a.getCoordinate()]);b.withFrozenRendering(function(){var a=b.getView(),e=b.getSize();a.fitExtent(c,e);a.setRotation(0)})}}; +ol.interaction.DragZoom.prototype.handleDragStart=function(a){return a.browserEvent.isMouseActionButton()&&this.condition_(a)?(this.dragBox_=new ol.control.DragBox({startCoordinate:this.startCoordinate}),this.dragBox_.setMap(a.map),!0):!1};ol.interaction.KEYBOARD_PAN_DURATION=100;ol.interaction.KeyboardPan=function(a){ol.interaction.Interaction.call(this);a=goog.isDef(a)?a:{};this.condition_=goog.isDef(a.condition)?a.condition:goog.functions.and(ol.interaction.condition.noModifierKeys,ol.interaction.condition.targetNotEditable);this.delta_=goog.isDef(a.delta)?a.delta:128};goog.inherits(ol.interaction.KeyboardPan,ol.interaction.Interaction); +ol.interaction.KeyboardPan.prototype.handleMapBrowserEvent=function(a){var b=!1;if(a.type==goog.events.KeyHandler.EventType.KEY){var c=a.browserEvent.keyCode;if(this.condition_(a)&&(c==goog.events.KeyCodes.DOWN||c==goog.events.KeyCodes.LEFT||c==goog.events.KeyCodes.RIGHT||c==goog.events.KeyCodes.UP)){var b=a.map,d=b.getView(),e=d.getView2DState(),f=e.resolution*this.delta_,g=0,h=0;c==goog.events.KeyCodes.DOWN?h=-f:c==goog.events.KeyCodes.LEFT?g=-f:c==goog.events.KeyCodes.RIGHT?g=f:h=f;c=[g,h];ol.coordinate.rotate(c, +e.rotation);ol.interaction.Interaction.pan(b,d,c,ol.interaction.KEYBOARD_PAN_DURATION);a.preventDefault();b=!0}}return!b};ol.interaction.KEYBOARD_ZOOM_DURATION=100;ol.interaction.KeyboardZoom=function(a){ol.interaction.Interaction.call(this);a=goog.isDef(a)?a:{};this.condition_=goog.isDef(a.condition)?a.condition:goog.functions.and(ol.interaction.condition.noModifierKeys,ol.interaction.condition.targetNotEditable);this.delta_=goog.isDef(a.delta)?a.delta:1};goog.inherits(ol.interaction.KeyboardZoom,ol.interaction.Interaction); +ol.interaction.KeyboardZoom.prototype.handleMapBrowserEvent=function(a){var b=!1;if(a.type==goog.events.KeyHandler.EventType.KEY){var c=a.browserEvent.charCode;if(this.condition_(a)&&(43==c||45==c)){b=a.map;c=43==c?this.delta_:-this.delta_;b.requestRenderFrame();var d=b.getView().getView2D();ol.interaction.Interaction.zoomByDelta(b,d,c,void 0,ol.interaction.KEYBOARD_ZOOM_DURATION);a.preventDefault();b=!0}}return!b};ol.interaction.MOUSEWHEELZOOM_ANIMATION_DURATION=250;ol.interaction.MOUSEWHEELZOOM_MAXDELTA=1;ol.interaction.MOUSEWHEELZOOM_TIMEOUT_DURATION=80;ol.interaction.MouseWheelZoom=function(){ol.interaction.Interaction.call(this);this.delta_=0;this.lastAnchor_=null;this.timeoutId_=this.startTime_=void 0};goog.inherits(ol.interaction.MouseWheelZoom,ol.interaction.Interaction); +ol.interaction.MouseWheelZoom.prototype.handleMapBrowserEvent=function(a){var b=!1;if(a.type==goog.events.MouseWheelHandler.EventType.MOUSEWHEEL){var b=a.map,c=a.browserEvent;this.lastAnchor_=a.getCoordinate();this.delta_+=c.deltaY/3;goog.isDef(this.startTime_)||(this.startTime_=goog.now());c=Math.max(ol.interaction.MOUSEWHEELZOOM_TIMEOUT_DURATION-(goog.now()-this.startTime_),0);goog.global.clearTimeout(this.timeoutId_);this.timeoutId_=goog.global.setTimeout(goog.bind(this.doZoom_,this,b),c);a.preventDefault(); +b=!0}return!b};ol.interaction.MouseWheelZoom.prototype.doZoom_=function(a){var b=ol.interaction.MOUSEWHEELZOOM_MAXDELTA,b=goog.math.clamp(this.delta_,-b,b),c=a.getView().getView2D();a.requestRenderFrame();ol.interaction.Interaction.zoomByDelta(a,c,-b,this.lastAnchor_,ol.interaction.MOUSEWHEELZOOM_ANIMATION_DURATION);this.delta_=0;this.lastAnchor_=null;this.timeoutId_=this.startTime_=void 0};ol.interaction.Touch=function(){ol.interaction.Interaction.call(this);this.handled_=!1;this.trackedTouches_={};this.targetTouches=[]};goog.inherits(ol.interaction.Touch,ol.interaction.Interaction);ol.interaction.Touch.centroid=function(a){for(var b=a.length,c=0,d=0,e=0;ethis.threshold_&&(this.rotating_=!0));this.lastAngle_=c;a=a.map;c=goog.style.getClientPosition(a.getViewport());d=ol.interaction.Touch.centroid(this.targetTouches);d[0]-=c.x;d[1]-=c.y;this.anchor_=a.getCoordinateFromPixel(d); +this.rotating_&&(c=a.getView().getView2D(),d=c.getView2DState(),a.requestRenderFrame(),ol.interaction.Interaction.rotateWithoutConstraints(a,c,d.rotation+b,this.anchor_))};ol.interaction.TouchRotate.prototype.handleTouchEnd=function(a){if(2>this.targetTouches.length){a=a.map;var b=a.getView().getView2D(),c=b.getView2DState();this.rotating_&&ol.interaction.Interaction.rotate(a,b,c.rotation,this.anchor_,ol.interaction.TOUCHROTATE_ANIMATION_DURATION);return!1}return!0}; +ol.interaction.TouchRotate.prototype.handleTouchStart=function(a){return 2<=this.targetTouches.length?(a=a.map,this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,a.requestRenderFrame(),!0):!1};ol.interaction.TOUCHZOOM_ANIMATION_DURATION=400;ol.interaction.TouchZoom=function(){ol.interaction.Touch.call(this);this.anchor_=null;this.lastDistance_=void 0;this.lastScaleDelta_=1};goog.inherits(ol.interaction.TouchZoom,ol.interaction.Touch); +ol.interaction.TouchZoom.prototype.handleTouchMove=function(a){var b=1,c=this.targetTouches[0],d=this.targetTouches[1],e=c.clientX-d.clientX,c=c.clientY-d.clientY,e=Math.sqrt(e*e+c*c);goog.isDef(this.lastDistance_)&&(b=this.lastDistance_/e);this.lastDistance_=e;1!=b&&(this.lastScaleDelta_=b);a=a.map;var e=a.getView().getView2D(),c=e.getView2DState(),d=goog.style.getClientPosition(a.getViewport()),f=ol.interaction.Touch.centroid(this.targetTouches);f[0]-=d.x;f[1]-=d.y;this.anchor_=a.getCoordinateFromPixel(f); +a.requestRenderFrame();ol.interaction.Interaction.zoomWithoutConstraints(a,e,c.resolution*b,this.anchor_)};ol.interaction.TouchZoom.prototype.handleTouchEnd=function(a){if(2>this.targetTouches.length){a=a.map;var b=a.getView().getView2D(),c=b.getView2DState();ol.interaction.Interaction.zoom(a,b,c.resolution,this.anchor_,ol.interaction.TOUCHZOOM_ANIMATION_DURATION,this.lastScaleDelta_-1);return!1}return!0}; +ol.interaction.TouchZoom.prototype.handleTouchStart=function(a){return 2<=this.targetTouches.length?(a=a.map,this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,a.requestRenderFrame(),!0):!1};ol.interaction.defaults=function(a){a=goog.isDef(a)?a:{};var b=new ol.Collection,c=new ol.Kinetic(-0.005,0.05,100);(goog.isDef(a.altShiftDragRotate)?a.altShiftDragRotate:1)&&b.push(new ol.interaction.DragRotate);(goog.isDef(a.doubleClickZoom)?a.doubleClickZoom:1)&&b.push(new ol.interaction.DoubleClickZoom({delta:a.zoomDelta}));(goog.isDef(a.touchPan)?a.touchPan:1)&&b.push(new ol.interaction.TouchPan({kinetic:c}));(goog.isDef(a.touchRotate)?a.touchRotate:1)&&b.push(new ol.interaction.TouchRotate); +(goog.isDef(a.touchZoom)?a.touchZoom:1)&&b.push(new ol.interaction.TouchZoom);(goog.isDef(a.dragPan)?a.dragPan:1)&&b.push(new ol.interaction.DragPan({kinetic:c}));if(goog.isDef(a.keyboard)?a.keyboard:1)b.push(new ol.interaction.KeyboardPan),b.push(new ol.interaction.KeyboardZoom({delta:a.zoomDelta}));(goog.isDef(a.mouseWheelZoom)?a.mouseWheelZoom:1)&&b.push(new ol.interaction.MouseWheelZoom);(goog.isDef(a.shiftDragZoom)?a.shiftDragZoom:1)&&b.push(new ol.interaction.DragZoom);return b};ol.layer.GroupProperty={LAYERS:"layers"};ol.layer.Group=function(a){var b=goog.isDef(a)?a:{};a=goog.object.clone(b);delete a.layers;b=b.layers;ol.layer.Base.call(this,a);this.listenerKeys_=null;goog.events.listen(this,ol.Object.getChangeEventType(ol.layer.GroupProperty.LAYERS),this.handleLayersChanged_,!1,this);goog.isDef(b)?goog.isArray(b)&&(b=new ol.Collection(goog.array.clone(b))):b=new ol.Collection;this.setLayers(b)};goog.inherits(ol.layer.Group,ol.layer.Base); +ol.layer.Group.prototype.handleLayerChange=function(){this.getVisible()&&this.dispatchChangeEvent()};ol.layer.Group.prototype.handleLayerVisibleChange=function(){this.dispatchChangeEvent()}; +ol.layer.Group.prototype.handleLayersChanged_=function(a){goog.isNull(this.listenerKeys_)||(goog.array.forEach(goog.object.getValues(this.listenerKeys_),goog.events.unlistenByKey),this.listenerKeys_=null);a=this.getLayers();if(goog.isDefAndNotNull(a)){this.listenerKeys_={add:goog.events.listen(a,ol.CollectionEventType.ADD,this.handleLayersAdd_,!1,this),remove:goog.events.listen(a,ol.CollectionEventType.REMOVE,this.handleLayersRemove_,!1,this)};a=a.getArray();var b,c,d;b=0;for(c=a.length;b=this.minZoom;){if(b.call(c,a,this.getTileRangeForExtentAndZ(e,a,d)))return!0;--a}return!1};ol.tilegrid.TileGrid.prototype.getMaxZoom=function(){return this.maxZoom};ol.tilegrid.TileGrid.prototype.getMinZoom=function(){return this.minZoom}; +ol.tilegrid.TileGrid.prototype.getOrigin=function(a){return goog.isNull(this.origin_)?this.origins_[a]:this.origin_};ol.tilegrid.TileGrid.prototype.getResolution=function(a){return this.resolutions_[a]};ol.tilegrid.TileGrid.prototype.getResolutions=function(){return this.resolutions_};ol.tilegrid.TileGrid.prototype.getTileCoordChildTileRange=function(a,b,c){return a.z=n;--u)for(r=c.getTileRangeForExtentAndZ(e,u),p=c.getResolution(u),s=r.minX;s<=r.maxX;++s)for(t=r.minY;t<=r.maxY;++t)f-u<=g?(q=b.getTile(u,s,t,d),q.getState()==ol.TileState.IDLE&&(m[q.tileCoord.toString()]=!0,a.isKeyQueued(q.getKey())||a.enqueue([q,l,c.getTileCoordCenter(q.tileCoord), +p])),goog.isDef(h)&&h.call(k,q)):b.useTile(u,s,t)};ol.renderer.Map=function(a,b){goog.Disposable.call(this);this.map_=b;this.layerRenderers_={}};goog.inherits(ol.renderer.Map,goog.Disposable); +ol.renderer.Map.prototype.calculateMatrices2D=function(a){var b=a.view2DState,c=a.coordinateToPixelMatrix;goog.vec.Mat4.makeIdentity(c);goog.vec.Mat4.translate(c,a.size[0]/2,a.size[1]/2,0);goog.vec.Mat4.scale(c,1/b.resolution,-1/b.resolution,1);goog.vec.Mat4.rotateZ(c,-b.rotation);goog.vec.Mat4.translate(c,-b.center[0],-b.center[1],0);goog.vec.Mat4.invert(c,a.pixelToCoordinateMatrix)};ol.renderer.Map.prototype.createLayerRenderer=function(a){return new ol.renderer.Layer(this,a)}; +ol.renderer.Map.prototype.disposeInternal=function(){goog.object.forEach(this.layerRenderers_,function(a){goog.dispose(a)});ol.renderer.Map.superClass_.disposeInternal.call(this)};ol.renderer.Map.prototype.getCanvas=goog.functions.NULL; +ol.renderer.Map.prototype.getFeatureInfoForPixel=function(a,b,c,d){for(var e=b.length,f=Array(e),g=function(a,d){f[goog.array.indexOf(b,d)]=a;--e;e||c(f)},h,k=0;kd;else if(b===ol.expr.ComparisonOp.LT)d=a=d;else if(b===ol.expr.ComparisonOp.LTE)d=a<=d;else throw Error("Unsupported comparison operator: "+ +this.operator_);return d};ol.expr.Comparison.prototype.getOperator=function(){return this.operator_};ol.expr.Comparison.prototype.getLeft=function(){return this.left_};ol.expr.Comparison.prototype.getRight=function(){return this.right_};ol.expr.Identifier=function(a){this.name_=a};goog.inherits(ol.expr.Identifier,ol.expr.Expression);ol.expr.Identifier.prototype.evaluate=function(a){if(!goog.isDefAndNotNull(a))throw Error("Attempt to evaluate identifier with no scope");return a[this.name_]}; +ol.expr.Identifier.prototype.getName=function(){return this.name_};ol.expr.Literal=function(a){this.value_=a};goog.inherits(ol.expr.Literal,ol.expr.Expression);ol.expr.Literal.prototype.evaluate=function(){return this.value_};ol.expr.Literal.prototype.getValue=function(){return this.value_};ol.expr.LogicalOp={AND:"\x26\x26",OR:"||"};ol.expr.Logical=function(a,b,c){this.operator_=a;this.left_=b;this.right_=c};goog.inherits(ol.expr.Logical,ol.expr.Expression); +ol.expr.Logical.isValidOp=function(){var a={},b;for(b in ol.expr.LogicalOp)a[ol.expr.LogicalOp[b]]=!0;return function(b){return!!a[b]}}();ol.expr.Logical.prototype.evaluate=function(a,b,c){var d;d=this.right_.evaluate(a,b,c);a=this.left_.evaluate(a,b,c);if(this.operator_===ol.expr.LogicalOp.AND)d=a&&d;else if(this.operator_===ol.expr.LogicalOp.OR)d=a||d;else throw Error("Unsupported logical operator: "+this.operator_);return d};ol.expr.Logical.prototype.getOperator=function(){return this.operator_}; +ol.expr.Logical.prototype.getLeft=function(){return this.left_};ol.expr.Logical.prototype.getRight=function(){return this.right_};ol.expr.MathOp={ADD:"+",SUBTRACT:"-",MULTIPLY:"*",DIVIDE:"/",MOD:"%"};ol.expr.Math=function(a,b,c){this.operator_=a;this.left_=b;this.right_=c};goog.inherits(ol.expr.Math,ol.expr.Expression);ol.expr.Math.isValidOp=function(){var a={},b;for(b in ol.expr.MathOp)a[ol.expr.MathOp[b]]=!0;return function(b){return!!a[b]}}(); +ol.expr.Math.prototype.evaluate=function(a,b,c){var d;d=this.right_.evaluate(a,b,c);a=this.left_.evaluate(a,b,c);b=this.operator_;if(b===ol.expr.MathOp.ADD)d=a+d;else if(b===ol.expr.MathOp.SUBTRACT)d=Number(a)-Number(d);else if(b===ol.expr.MathOp.MULTIPLY)d=Number(a)*Number(d);else if(b===ol.expr.MathOp.DIVIDE)d=Number(a)/Number(d);else if(b===ol.expr.MathOp.MOD)d=Number(a)%Number(d);else throw Error("Unsupported math operator: "+this.operator_);return d};ol.expr.Math.prototype.getOperator=function(){return this.operator_}; +ol.expr.Math.prototype.getLeft=function(){return this.left_};ol.expr.Math.prototype.getRight=function(){return this.right_};ol.expr.Member=function(a,b){this.object_=a;this.property_=b};goog.inherits(ol.expr.Member,ol.expr.Expression);ol.expr.Member.prototype.evaluate=function(a,b,c){a=this.object_.evaluate(a,b,c);if(!goog.isObject(a))throw Error("Expected member expression to evaluate to an object but got "+a);return this.property_.evaluate(a)};ol.expr.Member.prototype.getObject=function(){return this.object_}; +ol.expr.Member.prototype.getProperty=function(){return this.property_};ol.expr.Not=function(a){this.argument_=a};goog.inherits(ol.expr.Not,ol.expr.Expression);ol.expr.Not.prototype.evaluate=function(a,b,c){return!this.argument_.evaluate(a,b,c)};ol.expr.Not.prototype.getArgument=function(){return this.argument_};ol.expr.Char={AMPERSAND:38,BACKSLASH:92,BANG:33,CARRIAGE_RETURN:13,COMMA:44,DIGIT_0:48,DIGIT_7:55,DIGIT_9:57,DOLLAR:36,DOUBLE_QUOTE:34,DOT:46,EQUAL:61,FORM_FEED:12,GREATER:62,LEFT_PAREN:40,LESS:60,LINE_FEED:10,LINE_SEPARATOR:8232,LOWER_A:97,LOWER_E:101,LOWER_F:102,LOWER_X:120,LOWER_Z:122,MINUS:45,NONBREAKING_SPACE:160,PARAGRAPH_SEPARATOR:8233,PERCENT:37,PIPE:124,PLUS:43,RIGHT_PAREN:41,SINGLE_QUOTE:39,SLASH:47,SPACE:32,STAR:42,TAB:9,TILDE:126,UNDERSCORE:95,UPPER_A:65,UPPER_E:69,UPPER_F:70,UPPER_X:88, +UPPER_Z:90,VERTICAL_TAB:11};ol.expr.TokenType={BOOLEAN_LITERAL:"Boolean",EOF:"\x3cend\x3e",IDENTIFIER:"Identifier",KEYWORD:"Keyword",NULL_LITERAL:"Null",NUMERIC_LITERAL:"Numeric",PUNCTUATOR:"Punctuator",STRING_LITERAL:"String",UNKNOWN:"Unknown"};ol.expr.Lexer=function(a){this.source_=a;this.length_=a.length;this.nextIndex_=this.index_=0}; +ol.expr.Lexer.prototype.expect=function(a){if(!this.match(a))throw new ol.expr.UnexpectedToken({type:ol.expr.TokenType.UNKNOWN,value:this.getCurrentChar_(),index:this.index_});this.skip()};ol.expr.Lexer.prototype.increment_=function(a){this.index_+=a};ol.expr.Lexer.prototype.isDecimalDigit_=function(a){return a>=ol.expr.Char.DIGIT_0&&a<=ol.expr.Char.DIGIT_9}; +ol.expr.Lexer.prototype.isFutureReservedWord_=function(a){return"class"===a||"enum"===a||"export"===a||"extends"===a||"import"===a||"super"===a};ol.expr.Lexer.prototype.isHexDigit_=function(a){return this.isDecimalDigit_(a)||a>=ol.expr.Char.LOWER_A&&a<=ol.expr.Char.LOWER_F||a>=ol.expr.Char.UPPER_A&&a<=ol.expr.Char.UPPER_F};ol.expr.Lexer.prototype.isIdentifierPart_=function(a){return this.isIdentifierStart_(a)||a>=ol.expr.Char.DIGIT_0&&a<=ol.expr.Char.DIGIT_9}; +ol.expr.Lexer.prototype.isIdentifierStart_=function(a){return a===ol.expr.Char.DOLLAR||a===ol.expr.Char.UNDERSCORE||a>=ol.expr.Char.UPPER_A&&a<=ol.expr.Char.UPPER_Z||a>=ol.expr.Char.LOWER_A&&a<=ol.expr.Char.LOWER_Z}; +ol.expr.Lexer.prototype.isKeyword_=function(a){return"break"===a||"case"===a||"catch"===a||"continue"===a||"debugger"===a||"default"===a||"delete"===a||"do"===a||"else"===a||"finally"===a||"for"===a||"function"===a||"if"===a||"in"===a||"instanceof"===a||"new"===a||"return"===a||"switch"===a||"this"===a||"throw"===a||"try"===a||"typeof"===a||"var"===a||"void"===a||"while"===a||"with"===a}; +ol.expr.Lexer.prototype.isLineTerminator_=function(a){return a===ol.expr.Char.LINE_FEED||a===ol.expr.Char.CARRIAGE_RETURN||a===ol.expr.Char.LINE_SEPARATOR||a===ol.expr.Char.PARAGRAPH_SEPARATOR};ol.expr.Lexer.prototype.isOctalDigit_=function(a){return a>=ol.expr.Char.DIGIT_0&&a<=ol.expr.Char.DIGIT_7}; +ol.expr.Lexer.prototype.isWhitespace_=function(a){return a===ol.expr.Char.SPACE||a===ol.expr.Char.TAB||a===ol.expr.Char.VERTICAL_TAB||a===ol.expr.Char.FORM_FEED||a===ol.expr.Char.NONBREAKING_SPACE||5760<=a&&0<"\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005"+"\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\ufeff".indexOf(String.fromCharCode(a))};ol.expr.Lexer.prototype.getCharCode_=function(a){return this.source_.charCodeAt(this.index_+a)};ol.expr.Lexer.prototype.getCurrentChar_=function(){return this.source_[this.index_]}; +ol.expr.Lexer.prototype.getCurrentCharCode_=function(){return this.getCharCode_(0)};ol.expr.Lexer.prototype.match=function(a){var b=this.peek();return b.type===ol.expr.TokenType.PUNCTUATOR&&b.value===a}; +ol.expr.Lexer.prototype.next=function(){var a=this.skipWhitespace_();return this.index_>=this.length_?{type:ol.expr.TokenType.EOF,value:null,index:this.index_}:a===ol.expr.Char.LEFT_PAREN||a===ol.expr.Char.RIGHT_PAREN?this.scanPunctuator_(a):a===ol.expr.Char.SINGLE_QUOTE||a===ol.expr.Char.DOUBLE_QUOTE?this.scanStringLiteral_(a):this.isIdentifierStart_(a)?this.scanIdentifier_(a):a===ol.expr.Char.DOT?this.isDecimalDigit_(this.getCharCode_(1))?this.scanNumericLiteral_(a):this.scanPunctuator_(a):this.isDecimalDigit_(a)? +this.scanNumericLiteral_(a):this.scanPunctuator_(a)};ol.expr.Lexer.prototype.peek=function(){var a=this.index_,b=this.next();this.nextIndex_=this.index_;this.index_=a;return b}; +ol.expr.Lexer.prototype.scanHexLiteral_=function(a){for(var b="",c=this.index_-2;this.index_b?e+="000":256>b?e+="00":4096>b&&(e+="0");return goog.json.Serializer.charToJsonCharCache_[a]=e+b.toString(16)}),'"')};goog.json.Serializer.prototype.serializeNumber_=function(a,b){b.push(isFinite(a)&&!isNaN(a)?a:"null")}; +goog.json.Serializer.prototype.serializeArray=function(a,b){var c=a.length;b.push("[");for(var d="",e=0;egoog.net.XmlHttp.ReadyState.LOADED?this.xhr_.status:-1}catch(a){return-1}};goog.net.XhrIo.prototype.getStatusText=function(){try{return this.getReadyState()>goog.net.XmlHttp.ReadyState.LOADED?this.xhr_.statusText:""}catch(a){return""}};goog.net.XhrIo.prototype.getLastUri=function(){return String(this.lastUri_)};goog.net.XhrIo.prototype.getResponseText=function(){try{return this.xhr_?this.xhr_.responseText:""}catch(a){return""}}; +goog.net.XhrIo.prototype.getResponseBody=function(){try{if(this.xhr_&&"responseBody"in this.xhr_)return this.xhr_.responseBody}catch(a){}return null};goog.net.XhrIo.prototype.getResponseXml=function(){try{return this.xhr_?this.xhr_.responseXML:null}catch(a){return null}};goog.net.XhrIo.prototype.getResponseJson=function(a){if(this.xhr_){var b=this.xhr_.responseText;a&&0==b.indexOf(a)&&(b=b.substring(a.length));return goog.json.parse(b)}}; +goog.net.XhrIo.prototype.getResponse=function(){try{if(!this.xhr_)return null;if("response"in this.xhr_)return this.xhr_.response;switch(this.responseType_){case goog.net.XhrIo.ResponseType.DEFAULT:case goog.net.XhrIo.ResponseType.TEXT:return this.xhr_.responseText;case goog.net.XhrIo.ResponseType.ARRAY_BUFFER:if("mozResponseArrayBuffer"in this.xhr_)return this.xhr_.mozResponseArrayBuffer}return null}catch(a){return null}}; +goog.net.XhrIo.prototype.getResponseHeader=function(a){return this.xhr_&&this.isComplete()?this.xhr_.getResponseHeader(a):void 0};goog.net.XhrIo.prototype.getAllResponseHeaders=function(){return this.xhr_&&this.isComplete()?this.xhr_.getAllResponseHeaders():""};goog.net.XhrIo.prototype.getLastErrorCode=function(){return this.lastErrorCode_};goog.net.XhrIo.prototype.getLastError=function(){return goog.isString(this.lastError_)?this.lastError_:String(this.lastError_)}; +goog.net.XhrIo.prototype.formatMsg_=function(a){return a+" ["+this.lastMethod_+" "+this.lastUri_+" "+this.getStatus()+"]"};ol.source.VectorLoadState={IDLE:0,LOADING:1,LOADED:2,ERROR:3};ol.source.Vector=function(a){this.data_=goog.isDef(a.data)?a.data:null;this.loadState_=ol.source.VectorLoadState.IDLE;this.parser_=goog.isDef(a.parser)?a.parser:null;this.url_=a.url;ol.source.Source.call(this,{attributions:a.attributions,extent:a.extent,logo:a.logo,projection:a.projection})};goog.inherits(ol.source.Vector,ol.source.Source); +ol.source.Vector.prototype.prepareFeatures=function(a,b,c,d){goog.isDef(this.url_)&&this.loadState_==ol.source.VectorLoadState.IDLE?(this.loadState_=ol.source.VectorLoadState.LOADING,goog.net.XhrIo.send(this.url_,goog.bind(function(b){b=b.target;b.isSuccess()?(a.parseFeatures(b.getResponseText(),this.parser_,c),this.loadState_=ol.source.VectorLoadState.LOADED,goog.isDef(d)&&d()):this.loadState_=ol.source.VectorLoadState.ERROR},this))):goog.isNull(this.data_)||(a.parseFeatures(this.data_,this.parser_, +c),this.data_=null,this.loadState_=ol.source.VectorLoadState.LOADED);return this.loadState_};ol.structs.RTree=function(a){this.maxWidth_=goog.isDef(a)?a:6;this.minWidth_=Math.floor(this.maxWidth_/2);this.rootTree_={extent:ol.extent.createEmpty(),nodes:[]}};ol.structs.RTree.recalculateExtent_=function(a){var b=a.nodes.length,c=a.extent;if(0===b)ol.extent.empty(c);else{var d=a.nodes[0].extent;c[0]=d[0];c[1]=d[1];c[2]=d[2];c[3]=d[3];for(d=1;da.extent[1]?h.extent[1]:a.extent[1])-(h.extent[0]a.extent[3]?h.extent[3]:a.extent[3])- +(h.extent[2]c||Math.abs(h-k)d.length&&(c.nodes.push(f[0]),d.push(c),e=f[1]))}else ol.extent.extend(c.extent,e.extent),e={extent:c.extent.concat()}}while(0a[c].extent[0]?c=f:g.extent[1]a[e].extent[2]?e=f:g.extent[3]g?b>c?(b=a.splice(b,1)[0],c=a.splice(c,1)[0]):(c=a.splice(c,1)[0],b=a.splice(b,1)[0]):d>e?(b=a.splice(d,1)[0],c=a.splice(e,1)[0]):(c=a.splice(e,1)[0],b=a.splice(d, +1)[0]);return[{extent:b.extent.concat(),nodes:[b]},{extent:c.extent.concat(),nodes:[c]}]}; +ol.structs.RTree.prototype.pickNext_=function(a,b,c){for(var d=ol.structs.RTree.squarifiedRatio_(b.extent[1]-b.extent[0],b.extent[3]-b.extent[2],b.nodes.length+1),e=ol.structs.RTree.squarifiedRatio_(c.extent[1]-c.extent[0],c.extent[3]-c.extent[2],c.nodes.length+1),f,g,h,k=a.length-1;0<=k;--k){var l=a[k],m=[b.extent[0]l.extent[1]?b.extent[1]:l.extent[1],b.extent[2]l.extent[3]?b.extent[3]:l.extent[3]], +m=Math.abs(ol.structs.RTree.squarifiedRatio_(m[1]-m[0],m[3]-m[2],b.nodes.length+2)-d),l=[c.extent[0]l.extent[1]?c.extent[1]:l.extent[1],c.extent[2]l.extent[3]?c.extent[3]:l.extent[3]],l=Math.abs(ol.structs.RTree.squarifiedRatio_(l[1]-l[0],l[3]-l[2],c.nodes.length+2)-e),n=Math.abs(l-m);if(!g||!f||n=c.nodes.length?(g=this.searchSubtree_(c,!0,g,c),c.nodes.length=0,d.push(c),e.push(1)):0f;++f)e[f]=c[f].evaluate();b=this.rTree_.searchReturningObject(e)}else if(a instanceof ol.expr.Logical&&a.getOperator()===ol.expr.LogicalOp.AND){for(var g=[a.getLeft(),a.getRight()],h,f=0;1>=f;++f)if(h=g[f],c=ol.expr.isLibCall(h), +c===ol.expr.functions.GEOMETRY_TYPE)c=h.getArgs(),d=c[0].evaluate();else if(c===ol.expr.functions.EXTENT)for(c=h.getArgs(),e=[],h=0;4>h;++h)e[h]=c[h].evaluate();d&&e&&(b=this.getFeaturesObjectForExtent(e,d))}if(!goog.isDef(b))for(f in d=this.idLookup_,b={},d)e=d[f],ol.expr.evaluateFeature(a,e)&&(b[f]=e)}else b=this.idLookup_;return b}; +ol.layer.FeatureCache.prototype.getFeaturesObjectForExtent=function(a,b){return goog.isDef(b)&&goog.object.isEmpty(this.geometryTypeIndex_[b])?{}:this.rTree_.searchReturningObject(a,b)};ol.layer.FeatureCache.prototype.getFeaturesByIds_=function(a){var b=a.length,c=Array(b),d;for(d=0;dthis.highWaterMark_};ol.TileCache.prototype.expireCache=function(a){for(var b,c;this.canExpireCache()&&!(b=this.peekLast(),c=b.tileCoord.z.toString(),c in a&&a[c].contains(b.tileCoord));)this.pop()}; +ol.TileCache.prototype.pruneTileRange=function(a){for(var b=this.getCount(),c;b--;)c=this.peekLastKey(),a.contains(ol.TileCoord.createFromString(c))?this.pop():this.get(c)};ol.geom.AbstractCollection=function(){ol.geom.Geometry.call(this);this.bounds=this.components=null};goog.inherits(ol.geom.AbstractCollection,ol.geom.Geometry);ol.geom.AbstractCollection.prototype.getBounds=function(){if(goog.isNull(this.bounds)){var a,b=a=Infinity,c,d=c=-Infinity,e=this.components,f=e.length,g,h;for(h=0;hf&&(f=e),kh&&(h=k);this.bounds_=[c,f,g,h]}return this.bounds_};ol.geom.LineString.prototype.getType=function(){return ol.geom.GeometryType.LINESTRING};ol.geom.LineString.prototype.getSharedId=function(){return this.sharedId_}; +ol.geom.LineString.prototype.distanceFromCoordinate=function(a){for(var b=this.getCoordinates(),c=Infinity,d=0,e=1,f=b.length;e=a&&(this.bounds_[2*a]=b,this.bounds_[2*a+1]=b);this.vertices.set(this.sharedId_,0,a,b)};ol.geom.MultiPoint=function(a,b){ol.geom.AbstractCollection.call(this);var c=b;goog.isDef(c)||(c=a[0].length,c=new ol.geom.SharedVertices({dimension:c}));this.vertices=c;var d=a.length;this.components=Array(d);for(var e=0;ea!=h>a&&b<(g-e)*(a-f)/(h-f)+e)&&(d=!d);return d};ol.geom.Polygon=function(a,b){ol.geom.Geometry.call(this);var c=b;goog.isDef(c)||(c=a[0][0].length,c=new ol.geom.SharedVertices({dimension:c}));this.labelPoint_=null;this.vertices=c;var d=a.length;this.rings=Array(d);for(var e,f=0;f=a&&g[1]<=a||f[1]<=a&&g[1]>=a)f=(a-f[1])/(g[1]-f[1])*(g[0]-f[0])+f[0],c.push(f);c.sort();for(e=c.length-1;1<=e;--e)b=Math.abs(c[e]-c[e-1]),b>d&&(f=(c[e]+c[e-1])/2,this.containsCoordinate([f,a])&&(d=b,h=f));this.labelPoint_=[h,a]}return this.labelPoint_}; +ol.geom.Polygon.prototype.invalidateBounds=function(){this.rings[0].invalidateBounds()};ol.geom.MultiPolygon=function(a,b){ol.geom.AbstractCollection.call(this);var c=b;goog.isDef(c)||(c=a[0][0][0].length,c=new ol.geom.SharedVertices({dimension:c}));var d=a.length;this.components=Array(d);for(var e=0;ed;++d)e[d]=b[d].toFixed(c);c=e.join(",")}else c=b.join(",");ol.dom.setTransform(a,"matrix3d("+c+")")}else if(ol.dom.BrowserFeature.CAN_USE_CSS_TRANSFORM){b=[goog.vec.Mat4.getElement(b,0,0),goog.vec.Mat4.getElement(b,1,0),goog.vec.Mat4.getElement(b,0,1),goog.vec.Mat4.getElement(b,1,1),goog.vec.Mat4.getElement(b,0,3),goog.vec.Mat4.getElement(b,1,3)];if(goog.isDef(c)){e= +Array(6);for(d=0;6>d;++d)e[d]=b[d].toFixed(c);c=e.join(",")}else c=b.join(",");ol.dom.setTransform(a,"matrix("+c+")")}else a=a.style,a.left=Math.round(goog.vec.Mat4.getElement(b,0,3))+"px",a.top=Math.round(goog.vec.Mat4.getElement(b,1,3))+"px"};ol.renderer.dom={};ol.renderer.dom.Layer=function(a,b,c){ol.renderer.Layer.call(this,a,b);this.target=c};goog.inherits(ol.renderer.dom.Layer,ol.renderer.Layer);ol.renderer.dom.Layer.prototype.getTarget=function(){return this.target};ol.renderer.dom.ImageLayer=function(a,b){var c=goog.dom.createElement(goog.dom.TagName.DIV);c.style.position="absolute";ol.renderer.dom.Layer.call(this,a,b,c);this.image_=null;this.transform_=goog.vec.Mat4.createNumberIdentity()};goog.inherits(ol.renderer.dom.ImageLayer,ol.renderer.dom.Layer);ol.renderer.dom.ImageLayer.prototype.getImageLayer=function(){return this.getLayer()}; +ol.renderer.dom.ImageLayer.prototype.renderFrame=function(a,b){var c=a.view2DState,d=c.center,e=c.resolution,f=c.rotation,g=this.image_,h=this.getImageLayer().getImageSource(),k=a.viewHints;k[ol.ViewHint.ANIMATING]||k[ol.ViewHint.INTERACTING]||(c=h.getImage(a.extent,e,c.projection),goog.isNull(c)||(k=c.getState(),k==ol.ImageState.IDLE?(goog.events.listenOnce(c,goog.events.EventType.CHANGE,this.handleImageChange,!1,this),c.load()):k==ol.ImageState.LOADED&&(g=c)));if(!goog.isNull(g)){var k=g.getExtent(), +l=g.getResolution(),c=goog.vec.Mat4.createNumber();goog.vec.Mat4.makeIdentity(c);goog.vec.Mat4.translate(c,a.size[0]/2,a.size[1]/2,0);goog.vec.Mat4.rotateZ(c,f);goog.vec.Mat4.scale(c,l/e,l/e,1);goog.vec.Mat4.translate(c,(k[0]-d[0])/l,(d[1]-k[3])/l,0);g!=this.image_&&(d=g.getImageElement(this),d.style.maxWidth="none",d.style.position="absolute",goog.dom.removeChildren(this.target),goog.dom.appendChild(this.target,d),this.image_=g);this.setTransform_(c);this.updateAttributions(a.attributions,g.getAttributions()); +this.updateLogos(a,h)}};ol.renderer.dom.ImageLayer.prototype.setTransform_=function(a){goog.vec.Mat4.equals(a,this.transform_)||(ol.dom.transformElement2D(this.target,a,6),goog.vec.Mat4.setFromArray(this.transform_,a))};ol.renderer.dom.TileLayer=function(a,b){var c=goog.dom.createElement(goog.dom.TagName.DIV);c.style.position="absolute";ol.renderer.dom.Layer.call(this,a,b,c);this.renderedVisible_=!0;this.renderedOpacity_=1;this.renderedRevision_=0;this.tileLayerZs_={}};goog.inherits(ol.renderer.dom.TileLayer,ol.renderer.dom.Layer);ol.renderer.dom.TileLayer.prototype.getTileLayer=function(){return this.getLayer()}; +ol.renderer.dom.TileLayer.prototype.renderFrame=function(a,b){if(b.visible){var c=a.view2DState,d=c.projection,e=this.getTileLayer(),f=e.getTileSource(),g=f.getTileGrid();goog.isNull(g)&&(g=ol.tilegrid.getForProjection(d));var h=g.getZForResolution(c.resolution),k=g.getResolution(h),l=c.center,m;k==c.resolution?(l=this.snapCenterToPixel(l,k,a.size),m=ol.extent.getForView2DAndSize(l,k,c.rotation,a.size)):m=a.extent;var k=g.getTileRangeForExtentAndResolution(m,k),n={};n[h]={};var q=this.createGetTileIfLoadedFunction(function(a){return!goog.isNull(a)&& +a.getState()==ol.TileState.LOADED},f,d),r=goog.bind(f.findLoadedTiles,f,n,q),p=ol.extent.createEmpty(),q=new ol.TileRange(0,0,0,0),s,t,u,w;for(u=k.minX;u<=k.maxX;++u)for(w=k.minY;w<=k.maxY;++w)s=f.getTile(h,u,w,d),t=s.getState(),t==ol.TileState.LOADED?n[h][s.tileCoord.toString()]=s:t!=ol.TileState.ERROR&&t!=ol.TileState.EMPTY&&(t=g.forEachTileCoordParentTileRange(s.tileCoord,r,null,q,p),t||(s=g.getTileCoordChildTileRange(s.tileCoord,q,p),goog.isNull(s)||r(h+1,s)));var v;if(this.renderedRevision_!= +f.getRevision()){for(v in this.tileLayerZs_)p=this.tileLayerZs_[+v],goog.dom.removeNode(p.target);this.tileLayerZs_={};this.renderedRevision_=f.getRevision()}u=goog.array.map(goog.object.getKeys(n),Number);goog.array.sort(u);var r={},B;w=0;for(s=u.length;wv&&goog.dom.insertChildAt(this.target,p.target,0)}else a.viewHints[ol.ViewHint.ANIMATING]||a.viewHints[ol.ViewHint.INTERACTING]||p.removeTilesOutsideExtent(m,q);else goog.dom.removeNode(p.target),delete this.tileLayerZs_[v];b.opacity!=this.renderedOpacity_&&(goog.style.setOpacity(this.target,b.opacity),this.renderedOpacity_=b.opacity);b.visible&&!this.renderedVisible_&&(goog.style.setElementShown(this.target,!0),this.renderedVisible_=!0);this.updateUsedTiles(a.usedTiles, +f,h,k);this.manageTilePyramid(a,f,g,d,m,h,e.getPreload());this.scheduleExpireCache(a,f);this.updateLogos(a,f)}else this.renderedVisible_&&(goog.style.setElementShown(this.target,!1),this.renderedVisible_=!1)}; +ol.renderer.dom.TileLayerZ_=function(a,b){this.target=goog.dom.createElement(goog.dom.TagName.DIV);this.target.style.position="absolute";this.tileGrid_=a;this.tileCoordOrigin_=b;this.origin_=ol.extent.getTopLeft(a.getTileCoordExtent(b));this.resolution_=a.getResolution(b.z);this.tiles_={};this.documentFragment_=null;this.transform_=goog.vec.Mat4.createNumberIdentity()}; +ol.renderer.dom.TileLayerZ_.prototype.addTile=function(a){var b=a.tileCoord,c=b.toString();if(!(c in this.tiles_)){var d=this.tileGrid_.getTileSize(b.z),e=a.getImage(this),f=e.style;f.maxWidth="none";f.position="absolute";f.left=(b.x-this.tileCoordOrigin_.x)*d[0]+"px";f.top=(this.tileCoordOrigin_.y-b.y)*d[1]+"px";goog.isNull(this.documentFragment_)&&(this.documentFragment_=document.createDocumentFragment());goog.dom.appendChild(this.documentFragment_,e);this.tiles_[c]=a}}; +ol.renderer.dom.TileLayerZ_.prototype.finalizeAddTiles=function(){goog.isNull(this.documentFragment_)||(goog.dom.appendChild(this.target,this.documentFragment_),this.documentFragment_=null)};ol.renderer.dom.TileLayerZ_.prototype.getOrigin=function(){return this.origin_};ol.renderer.dom.TileLayerZ_.prototype.getResolution=function(){return this.resolution_}; +ol.renderer.dom.TileLayerZ_.prototype.removeTilesOutsideExtent=function(a,b){var c=this.tileGrid_.getTileRangeForExtentAndZ(a,this.tileCoordOrigin_.z,b),d=[],e,f;for(f in this.tiles_)e=this.tiles_[f],c.contains(e.tileCoord)||d.push(e);var g,c=0;for(g=d.length;ca&&(-1==d||gb)break;if(ak?(f=65536*Math.floor(-k/65536),c[h]=-f,c[h+1]=k+f):(f=65536*Math.floor(k/65536),c[h]=f,c[h+1]=k-f)});this.split32DirtySet_.clear(); +return this.split32_};ol.structs.Buffer.prototype.getUsage=function(){return this.usage_};ol.structs.Buffer.prototype.markDirty=function(a,b){var c,d;c=0;for(d=this.dirtySets_.length;col.WEBGL_TEXTURE_CACHE_HIGH_WATER_MARK;){d=this.textureCache_.peekLast();if(goog.isNull(d))if(+this.textureCache_.peekLastKey()==b.index)break;else--this.textureCacheFrameMarkerCount_;else c.deleteTexture(d.texture);this.textureCache_.pop()}};ol.renderer.webgl.Map.prototype.getCanvas=function(){return this.canvas_}; +ol.renderer.webgl.Map.prototype.getGL=function(){return this.gl_};ol.renderer.webgl.Map.prototype.getProgram=function(a,b){var c=goog.getUid(a)+"/"+goog.getUid(b);if(c in this.programCache_)return this.programCache_[c];var d=this.getGL(),e=d.createProgram();d.attachShader(e,this.getShader(a));d.attachShader(e,this.getShader(b));d.linkProgram(e);goog.DEBUG&&(d.getProgramParameter(e,goog.webgl.LINK_STATUS)||d.isContextLost());return this.programCache_[c]=e}; +ol.renderer.webgl.Map.prototype.getShader=function(a){var b=goog.getUid(a);if(b in this.shaderCache_)return this.shaderCache_[b];var c=this.getGL(),d=c.createShader(a.getType());c.shaderSource(d,a.getSource());c.compileShader(d);goog.DEBUG&&(c.getShaderParameter(d,goog.webgl.COMPILE_STATUS)||c.isContextLost());return this.shaderCache_[b]=d};ol.renderer.webgl.Map.prototype.getTileTextureQueue=function(){return this.tileTextureQueue_}; +ol.renderer.webgl.Map.prototype.handleWebGLContextLost=function(a){a.preventDefault();this.defaultLocations_=this.colorLocations_=null;this.bufferCache_={};this.shaderCache_={};this.programCache_={};this.textureCache_.clear();this.textureCacheFrameMarkerCount_=0;goog.object.forEach(this.getLayerRenderers(),function(a){a.handleWebGLContextLost()})};ol.renderer.webgl.Map.prototype.handleWebGLContextRestored=function(){this.initializeGL_();this.getMap().render()}; +ol.renderer.webgl.Map.prototype.initializeGL_=function(){var a=this.gl_;a.activeTexture(goog.webgl.TEXTURE0);a.blendFuncSeparate(goog.webgl.SRC_ALPHA,goog.webgl.ONE_MINUS_SRC_ALPHA,goog.webgl.ONE,goog.webgl.ONE_MINUS_SRC_ALPHA);a.disable(goog.webgl.CULL_FACE);a.disable(goog.webgl.DEPTH_TEST);a.disable(goog.webgl.SCISSOR_TEST)};ol.renderer.webgl.Map.prototype.isTileTextureLoaded=function(a){return this.textureCache_.containsKey(a.getKey())}; +ol.renderer.webgl.Map.prototype.renderFrame=function(a){var b=this.getGL();if(b.isContextLost())return!1;if(goog.isNull(a))return this.renderedVisible_&&(goog.style.setElementShown(this.canvas_,!1),this.renderedVisible_=!1),!1;this.focus_=a.focus;this.textureCache_.set((-a.index).toString(),null);++this.textureCacheFrameMarkerCount_;var c=a.layersArray,d,e,f,g,h;d=0;for(e=c.length;dol.WEBGL_TEXTURE_CACHE_HIGH_WATER_MARK&&a.postRenderFunctions.push(goog.bind(this.expireCache_,this));this.tileTextureQueue_.isEmpty()||(a.postRenderFunctions.push(this.loadNextTileTexture_),a.animate=!0);this.scheduleRemoveUnusedLayerRenderers(a)};ol.renderer.webgl.SUPPORTED=ol.webgl.SUPPORTED;ol.RendererHints={};ol.ENABLE_CANVAS=!0;ol.ENABLE_DOM=!0;ol.ENABLE_WEBGL=!0;ol.RendererHint={CANVAS:"canvas",DOM:"dom",WEBGL:"webgl"};ol.DEFAULT_RENDERER_HINTS=[ol.RendererHint.WEBGL,ol.RendererHint.CANVAS,ol.RendererHint.DOM];ol.MapProperty={LAYERGROUP:"layergroup",SIZE:"size",TARGET:"target",VIEW:"view"}; +ol.Map=function(a){ol.Object.call(this);a=ol.Map.createOptionsInternal(a);this.animationDelay_=new goog.async.AnimationDelay(this.renderFrame_,void 0,this);this.registerDisposable(this.animationDelay_);this.coordinateToPixelMatrix_=goog.vec.Mat4.createNumber();this.pixelToCoordinateMatrix_=goog.vec.Mat4.createNumber();this.frameIndex_=0;this.frameState_=null;this.freezeRenderingCount_=0;this.dirty_=!1;this.layerGroupPropertyListenerKey_=this.viewPropertyListenerKey_=null;this.viewport_=goog.dom.createDom(goog.dom.TagName.DIV, +"ol-viewport");this.viewport_.style.position="relative";this.viewport_.style.overflow="hidden";this.viewport_.style.width="100%";this.viewport_.style.height="100%";this.viewport_.style.msTouchAction="none";ol.BrowserFeature.HAS_TOUCH&&(this.viewport_.className="ol-touch");this.overlayContainer_=goog.dom.createDom(goog.dom.TagName.DIV,"ol-overlaycontainer");goog.events.listen(this.overlayContainer_,[goog.events.EventType.CLICK,goog.events.EventType.DBLCLICK,ol.BrowserFeature.HAS_TOUCH?goog.events.EventType.TOUCHSTART: +goog.events.EventType.MOUSEDOWN],goog.events.Event.stopPropagation);goog.dom.appendChild(this.viewport_,this.overlayContainer_);var b=new ol.MapBrowserEventHandler(this);goog.events.listen(b,goog.object.getValues(ol.MapBrowserEvent.EventType),this.handleMapBrowserEvent,!1,this);this.registerDisposable(b);b=new goog.events.KeyHandler(goog.global.document);goog.events.listen(b,goog.events.KeyHandler.EventType.KEY,this.handleBrowserEvent,!1,this);this.registerDisposable(b);b=new goog.events.MouseWheelHandler(this.viewport_); +goog.events.listen(b,goog.events.MouseWheelHandler.EventType.MOUSEWHEEL,this.handleBrowserEvent,!1,this);this.registerDisposable(b);this.controls_=a.controls;this.interactions_=a.interactions;this.overlays_=a.overlays;this.renderer_=new a.rendererConstructor(this.viewport_,this);this.registerDisposable(this.renderer_);this.viewportSizeMonitor_=new goog.dom.ViewportSizeMonitor;goog.events.listen(this.viewportSizeMonitor_,goog.events.EventType.RESIZE,this.updateSize,!1,this);this.focus_=null;this.preRenderFunctions_= +[];this.postRenderFunctions_=[];this.postRenderDelay_=new goog.async.Delay(this.handlePostRender,0,this);this.tileQueue_=new ol.TileQueue(goog.bind(this.getTilePriority,this),goog.bind(this.handleTileChange_,this));goog.events.listen(this,ol.Object.getChangeEventType(ol.MapProperty.LAYERGROUP),this.handleLayerGroupChanged_,!1,this);goog.events.listen(this,ol.Object.getChangeEventType(ol.MapProperty.VIEW),this.handleViewChanged_,!1,this);goog.events.listen(this,ol.Object.getChangeEventType(ol.MapProperty.SIZE), +this.handleSizeChanged_,!1,this);goog.events.listen(this,ol.Object.getChangeEventType(ol.MapProperty.TARGET),this.handleTargetChanged_,!1,this);this.setValues(a.values);this.controls_.forEach(function(a){a.setMap(this)},this);this.overlays_.forEach(function(a){a.setMap(this)},this)};goog.inherits(ol.Map,ol.Object);ol.Map.prototype.addControl=function(a){this.getControls().push(a);a.setMap(this)};ol.Map.prototype.addLayer=function(a){this.getLayerGroup().getLayers().push(a)}; +ol.Map.prototype.addOverlay=function(a){this.getOverlays().push(a);a.setMap(this)};ol.Map.prototype.beforeRender=function(a){this.requestRenderFrame();Array.prototype.push.apply(this.preRenderFunctions_,arguments)};ol.Map.prototype.removePreRenderFunction=function(a){return goog.array.remove(this.preRenderFunctions_,a)};ol.Map.prototype.disposeInternal=function(){goog.dom.removeNode(this.viewport_);goog.dispose(this.postRenderDelay_);ol.Map.superClass_.disposeInternal.call(this)}; +ol.Map.prototype.freezeRendering=function(){++this.freezeRenderingCount_};ol.Map.prototype.getRenderer=function(){return this.renderer_};ol.Map.prototype.getTarget=function(){return this.get(ol.MapProperty.TARGET)};goog.exportProperty(ol.Map.prototype,"getTarget",ol.Map.prototype.getTarget);ol.Map.prototype.getCoordinateFromPixel=function(a){var b=this.frameState_;if(goog.isNull(b))return null;a=a.slice();return ol.vec.Mat4.multVec2(b.pixelToCoordinateMatrix,a,a)};ol.Map.prototype.getControls=function(){return this.controls_}; +ol.Map.prototype.getOverlays=function(){return this.overlays_};ol.Map.prototype.getFeatureInfo=function(a){var b=goog.isDefAndNotNull(a.layers)?a.layers:this.getLayerGroup().getLayersArray();this.getRenderer().getFeatureInfoForPixel(a.pixel,b,a.success,a.error)};ol.Map.prototype.getFeatures=function(a){var b=goog.isDefAndNotNull(a.layers)?a.layers:this.getLayerGroup().getLayersArray();this.getRenderer().getFeaturesForPixel(a.pixel,b,a.success,a.error)};ol.Map.prototype.getInteractions=function(){return this.interactions_}; +ol.Map.prototype.getLayerGroup=function(){return this.get(ol.MapProperty.LAYERGROUP)};goog.exportProperty(ol.Map.prototype,"getLayerGroup",ol.Map.prototype.getLayerGroup);ol.Map.prototype.getLayers=function(){return this.getLayerGroup().getLayers()};ol.Map.prototype.getPixelFromCoordinate=function(a){var b=this.frameState_;if(goog.isNull(b))return null;a=a.slice(0,2);return ol.vec.Mat4.multVec2(b.coordinateToPixelMatrix,a,a)};ol.Map.prototype.getSize=function(){return this.get(ol.MapProperty.SIZE)}; +goog.exportProperty(ol.Map.prototype,"getSize",ol.Map.prototype.getSize);ol.Map.prototype.getView=function(){return this.get(ol.MapProperty.VIEW)};goog.exportProperty(ol.Map.prototype,"getView",ol.Map.prototype.getView);ol.Map.prototype.getViewport=function(){return this.viewport_};ol.Map.prototype.getOverlayContainer=function(){return this.overlayContainer_}; +ol.Map.prototype.getTilePriority=function(a,b,c,d){var e=this.frameState_;if(goog.isNull(e)||!(b in e.wantedTiles)||!e.wantedTiles[b][a.tileCoord.toString()])return ol.structs.PriorityQueue.DROP;a=c[0]-e.focus[0];c=c[1]-e.focus[1];return 65536*Math.log(d)+Math.sqrt(a*a+c*c)/d};ol.Map.prototype.handleBrowserEvent=function(a,b){var c=new ol.MapBrowserEvent(b||a.type,this,a);this.handleMapBrowserEvent(c)}; +ol.Map.prototype.handleMapBrowserEvent=function(a){if(!goog.isNull(this.frameState_)){this.focus_=a.type==goog.events.EventType.MOUSEOUT||a.type==goog.events.EventType.TOUCHEND?null:a.getCoordinate();a.frameState=this.frameState_;var b=this.getInteractions().getArray(),c;if(!1!==this.dispatchEvent(a))for(c=b.length-1;0<=c&&b[c].handleMapBrowserEvent(a);c--);}}; +ol.Map.prototype.handlePostRender=function(){var a=this.frameState_,b=this.tileQueue_;if(!b.isEmpty()){var c=16,d=c;if(!goog.isNull(a)){var e=a.viewHints;if(e[ol.ViewHint.ANIMATING]||e[ol.ViewHint.INTERACTING])c=8,d=2}e=goog.object.getCount(a.wantedTiles);c*=e;d*=e;b.getTilesLoading()b?(d="\u2032",a*=60):d="\u00b0": +e==ol.control.ScaleLineUnits.IMPERIAL?0.9144>b?(d="in",a/=0.0254):1609.344>b?(d="ft",a/=0.3048):(d="mi",a/=1609.344):e==ol.control.ScaleLineUnits.NAUTICAL?(a/=1852,d="nm"):e==ol.control.ScaleLineUnits.METRIC?1>b?(d="mm",a*=1E3):1E3>b?d="m":(d="km",a/=1E3):e==ol.control.ScaleLineUnits.US&&(0.9144>b?(d="in",a*=39.37):1609.344>b?(d="ft",a/=0.30480061):(d="mi",a/=1609.3472));for(var e=3*Math.floor(Math.log(this.minWidth_*a)/Math.log(10)),f,g;;){f=ol.control.ScaleLine.LEADING_DIGITS[e%3]*Math.pow(10,Math.floor(e/ +3));g=Math.round(f/a);if(g>=this.minWidth_)break;++e}f+=d;this.renderedHTML_!=f&&(this.renderedHTML_=this.innerElement_.innerHTML=f);this.renderedWidth_!=g&&(this.innerElement_.style.width=g+"px",this.renderedWidth_=g);this.renderedVisible_||(goog.style.setElementShown(this.element_,!0),this.renderedVisible_=!0)}};goog.events.EventHandler=function(a){goog.Disposable.call(this);this.handler_=a;this.keys_={}};goog.inherits(goog.events.EventHandler,goog.Disposable);goog.events.EventHandler.typeArray_=[];goog.events.EventHandler.prototype.listen=function(a,b,c,d,e){goog.isArray(b)||(goog.events.EventHandler.typeArray_[0]=b,b=goog.events.EventHandler.typeArray_);for(var f=0;fthis.hysteresisDistanceSquared_)if(this.fireDragStart_(a))this.dragging_=!0;else{this.isDisposed()||this.endDrag(a); +return}}c=this.calculatePosition_(b,c);b=c.x;c=c.y;this.dragging_&&this.dispatchEvent(new goog.fx.DragEvent(goog.fx.Dragger.EventType.BEFOREDRAG,this,a.clientX,a.clientY,a,b,c))&&(this.doDrag(a,b,c,!1),a.preventDefault())}}; +goog.fx.Dragger.prototype.calculatePosition_=function(a,b){var c=goog.dom.getDomHelper(this.document_).getDocumentScroll();a+=c.x-this.pageScroll.x;b+=c.y-this.pageScroll.y;this.pageScroll=c;this.deltaX+=a;this.deltaY+=b;var c=this.limitX(this.deltaX),d=this.limitY(this.deltaY);return new goog.math.Coordinate(c,d)};goog.fx.Dragger.prototype.onScroll_=function(a){var b=this.calculatePosition_(0,0);a.clientX=this.clientX;a.clientY=this.clientY;this.doDrag(a,b.x,b.y,!0)}; +goog.fx.Dragger.prototype.doDrag=function(a,b,c,d){this.defaultAction(b,c);this.dispatchEvent(new goog.fx.DragEvent(goog.fx.Dragger.EventType.DRAG,this,a.clientX,a.clientY,a,b,c))};goog.fx.Dragger.prototype.limitX=function(a){var b=this.limits,c=isNaN(b.left)?null:b.left,b=isNaN(b.width)?0:b.width;return Math.min(null!=c?c+b:Infinity,Math.max(null!=c?c:-Infinity,a))}; +goog.fx.Dragger.prototype.limitY=function(a){var b=this.limits,c=isNaN(b.top)?null:b.top,b=isNaN(b.height)?0:b.height;return Math.min(null!=c?c+b:Infinity,Math.max(null!=c?c:-Infinity,a))};goog.fx.Dragger.prototype.defaultAction=function(a,b){this.useRightPositioningForRtl_&&this.isRightToLeft_()?this.target.style.right=a+"px":this.target.style.left=a+"px";this.target.style.top=b+"px"};goog.fx.Dragger.prototype.isDragging=function(){return this.dragging_}; +goog.fx.DragEvent=function(a,b,c,d,e,f,g,h){goog.events.Event.call(this,a);this.clientX=c;this.clientY=d;this.browserEvent=e;this.left=goog.isDef(f)?f:b.deltaX;this.top=goog.isDef(g)?g:b.deltaY;this.dragger=b;this.dragCanceled=!!h};goog.inherits(goog.fx.DragEvent,goog.events.Event);ol.control.ZOOMSLIDER_ANIMATION_DURATION=200; +ol.control.ZoomSlider=function(a){a=goog.isDef(a)?a:{};this.currentResolution_=void 0;this.direction_=ol.control.ZoomSlider.direction.VERTICAL;this.sliderInitialized_=!1;this.draggerListenerKeys_=null;a=goog.isDef(a.className)?a.className:"ol-zoomslider";a=goog.dom.createDom(goog.dom.TagName.DIV,a+" "+ol.css.CLASS_UNSELECTABLE,goog.dom.createDom(goog.dom.TagName.DIV,a+"-thumb "+ol.css.CLASS_UNSELECTABLE));this.dragger_=this.createDraggable_(a);goog.events.listen(a,[goog.events.EventType.TOUCHEND, +goog.events.EventType.CLICK],this.handleContainerClick_,!1,this);ol.control.Control.call(this,{element:a})};goog.inherits(ol.control.ZoomSlider,ol.control.Control);ol.control.ZoomSlider.direction={VERTICAL:0,HORIZONTAL:1};ol.control.ZoomSlider.prototype.setMap=function(a){ol.control.ZoomSlider.superClass_.setMap.call(this,a);goog.isNull(a)||a.render()}; +ol.control.ZoomSlider.prototype.initSlider_=function(){var a=this.element,b=goog.dom.getFirstElementChild(a),a=goog.style.getContentBoxSize(a),c=goog.style.getBounds(b),d=goog.style.getMarginBox(b),e=goog.style.getBorderBox(b),b=a.width-d.left-d.right-e.left-e.right-c.width,c=a.height-d.top-d.bottom-e.top-e.bottom-c.height;a.width>a.height?(this.direction_=ol.control.ZoomSlider.direction.HORIZONTAL,a=new goog.math.Rect(0,0,b,0)):(this.direction_=ol.control.ZoomSlider.direction.VERTICAL,a=new goog.math.Rect(0, +0,0,c));this.dragger_.setLimits(a);this.sliderInitialized_=!0};ol.control.ZoomSlider.prototype.handleMapPostrender=function(a){goog.isNull(a.frameState)||(this.sliderInitialized_||this.initSlider_(),a=a.frameState.view2DState.resolution,a!==this.currentResolution_&&(this.currentResolution_=a,this.positionThumbForResolution_(a)))};ol.control.ZoomSlider.prototype.handleContainerClick_=function(a){}; +ol.control.ZoomSlider.prototype.positionThumbForResolution_=function(a){a=this.amountForResolution_(a);var b=this.dragger_,c=goog.dom.getFirstElementChild(this.element);this.direction_==ol.control.ZoomSlider.direction.HORIZONTAL?goog.style.setPosition(c,b.limits.left+b.limits.width*a):goog.style.setPosition(c,b.limits.left,b.limits.top+b.limits.height*a)}; +ol.control.ZoomSlider.prototype.amountDragged_=function(a){var b=this.dragger_.limits,c=0;return c=this.direction_===ol.control.ZoomSlider.direction.HORIZONTAL?(a.left-b.left)/b.width:(a.top-b.top)/b.height};ol.control.ZoomSlider.prototype.resolutionForAmount_=function(a){a=-1*(goog.math.clamp(a,0,1)-1);return this.getMap().getView().getView2D().getResolutionForValueFunction()(a)}; +ol.control.ZoomSlider.prototype.amountForResolution_=function(a){return-1*(this.getMap().getView().getView2D().getValueForResolutionFunction()(a)-1)}; +ol.control.ZoomSlider.prototype.handleSliderChange_=function(a){var b=this.getMap(),c=b.getView().getView2D();a.type===goog.fx.Dragger.EventType.DRAG?(a=this.amountDragged_(a),a=this.resolutionForAmount_(a),a!==this.currentResolution_&&(this.currentResolution_=a,c.setResolution(a))):(b.beforeRender(ol.animation.zoom({resolution:this.currentResolution_,duration:ol.control.ZOOMSLIDER_ANIMATION_DURATION,easing:ol.easing.easeOut})),a=c.constrainResolution(this.currentResolution_),c.setResolution(a))}; +ol.control.ZoomSlider.prototype.createDraggable_=function(a){goog.isNull(this.draggerListenerKeys_)||(goog.array.forEach(this.draggerListenerKeys_,goog.events.unlistenByKey),this.draggerListenerKeys_=null);a=new goog.fx.Dragger(a.childNodes[0]);this.draggerListenerKeys_=[goog.events.listen(a,[goog.fx.Dragger.EventType.DRAG,goog.fx.Dragger.EventType.END],this.handleSliderChange_,void 0,this)];return a};ol.control.ZoomToExtent=function(a){a=goog.isDef(a)?a:{};this.extent_=goog.isDef(a.extent)?a.extent:null;var b=goog.isDef(a.className)?a.className:"ol-zoom-extent",b=goog.dom.createDom(goog.dom.TagName.DIV,{"class":b+" "+ol.css.CLASS_UNSELECTABLE}),c=goog.dom.createDom(goog.dom.TagName.A,{href:"#zoomExtent"});goog.dom.appendChild(b,c);goog.events.listen(b,[goog.events.EventType.TOUCHEND,goog.events.EventType.CLICK],this.handleZoomToExtent_,!1,this);ol.control.Control.call(this,{element:b,target:a.target})}; +goog.inherits(ol.control.ZoomToExtent,ol.control.Control);ol.control.ZoomToExtent.prototype.handleZoomToExtent_=function(a){a.preventDefault();a=this.getMap();var b=a.getView().getView2D(),c=goog.isNull(this.extent_)?b.getProjection().getExtent():this.extent_;b.fitExtent(c,a.getSize())};ol.dom.InputProperty={VALUE:"value",VALUE_AS_NUMBER:"valueAsNumber",CHECKED:"checked"}; +ol.dom.Input=function(a){ol.Object.call(this);this.target_=a;goog.events.listen(this.target_,goog.events.EventType.CHANGE,this.handleInputChanged_,!1,this);goog.events.listen(this,ol.Object.getChangeEventType(ol.dom.InputProperty.VALUE),this.handleValueChanged_,!1,this);goog.events.listen(this,ol.Object.getChangeEventType(ol.dom.InputProperty.VALUE_AS_NUMBER),this.handleValueAsNumberChanged_,!1,this);goog.events.listen(this,ol.Object.getChangeEventType(ol.dom.InputProperty.CHECKED),this.handleCheckedChanged_, +!1,this)};goog.inherits(ol.dom.Input,ol.Object);ol.dom.Input.prototype.getChecked=function(){return this.get(ol.dom.InputProperty.CHECKED)};goog.exportProperty(ol.dom.Input.prototype,"getChecked",ol.dom.Input.prototype.getChecked);ol.dom.Input.prototype.getValue=function(){return this.get(ol.dom.InputProperty.VALUE)};goog.exportProperty(ol.dom.Input.prototype,"getValue",ol.dom.Input.prototype.getValue);ol.dom.Input.prototype.getValueAsNumber=function(){return this.get(ol.dom.InputProperty.VALUE_AS_NUMBER)}; +goog.exportProperty(ol.dom.Input.prototype,"getValueAsNumber",ol.dom.Input.prototype.getValueAsNumber);ol.dom.Input.prototype.setValue=function(a){this.set(ol.dom.InputProperty.VALUE,a)};goog.exportProperty(ol.dom.Input.prototype,"setValue",ol.dom.Input.prototype.setValue);ol.dom.Input.prototype.setValueAsNumber=function(a){this.set(ol.dom.InputProperty.VALUE_AS_NUMBER,a)};goog.exportProperty(ol.dom.Input.prototype,"setValueAsNumber",ol.dom.Input.prototype.setValueAsNumber); +ol.dom.Input.prototype.setChecked=function(a){this.set(ol.dom.InputProperty.CHECKED,a)};goog.exportProperty(ol.dom.Input.prototype,"setChecked",ol.dom.Input.prototype.setChecked);ol.dom.Input.prototype.handleInputChanged_=function(){"checkbox"===this.target_.type||"radio"===this.target_.type?this.setChecked(this.target_.checked):(this.setValue(this.target_.value),this.setValueAsNumber(this.target_.valueAsNumber))}; +ol.dom.Input.prototype.handleCheckedChanged_=function(){this.target_.checked=this.getChecked()?"checked":void 0};ol.dom.Input.prototype.handleValueChanged_=function(){this.target_.value=this.getValue()};ol.dom.Input.prototype.handleValueAsNumberChanged_=function(){this.target_.value=this.getValueAsNumber()};ol.ellipsoid={};ol.ellipsoid.BESSEL1841=new ol.Ellipsoid(6377397.155,1/299.15281285);ol.ellipsoid.WGS84=new ol.Ellipsoid(6378137,1/298.257223563);ol.geom.GeometryCollection=function(a){ol.geom.AbstractCollection.call(this);this.components=a;for(var b=0,c=0,d=a.length;c=p&&(n=q>r?k[1]:k[0],l=ol.layer.VectorLayerRenderIntent.TEMPORARY);m.set(0,n[0]);m.set(1,n[1]);h.updateFeatures([g]);this.modifiable_=!0}g.renderIntent!=l&&h.setRenderIntent(l,[g])}}}; +ol.interaction.Modify.prototype.ignoreTemporaryLayersFilter_=function(a){return!(a instanceof ol.layer.Vector&&a.getTemporary())}; +ol.interaction.Modify.prototype.insertVertex_=function(a,b,c){var d=b[0],e=b[1],f=b[2],g=b[3],h=f.getCoordinates();h.splice(g+1,0,c);var k=f,f=new f.constructor(h),l;4g&&++r[3])}k=[d[0],c];m=[k,e,f,g];goog.isDef(l)&&m.push(l);h.insert(ol.extent.boundingExtent(k), +m,b);this.dragVertices_.push([a,m,1]);k=[c,d[1]];m=[k,e,f,g+1];goog.isDef(l)&&m.push(l);h.insert(ol.extent.boundingExtent(k),m,b);this.dragVertices_.push([a,m,0])};ol.interaction.Modify.prototype.removeIndex=function(a){var b=a.target.getEditData().rTree;a=a.features;for(var c=0,d=a.length;c=this.branches_&&this.cancel()}; +goog.async.Deferred.prototype.continue_=function(a,b){this.blocked_=!1;this.updateResult_(a,b)};goog.async.Deferred.prototype.updateResult_=function(a,b){this.fired_=!0;this.result_=b;this.hadError_=!a;this.fire_()};goog.async.Deferred.prototype.check_=function(){if(this.hasFired()){if(!this.silentlyCanceled_)throw new goog.async.Deferred.AlreadyCalledError(this);this.silentlyCanceled_=!1}}; +goog.async.Deferred.prototype.callback=function(a){this.check_();this.assertNotDeferred_(a);this.updateResult_(!0,a)};goog.async.Deferred.prototype.errback=function(a){this.check_();this.assertNotDeferred_(a);this.makeStackTraceLong_(a);this.updateResult_(!1,a)};goog.async.Deferred.prototype.makeStackTraceLong_=function(a){goog.async.Deferred.LONG_STACK_TRACES&&(this.constructorStack_&&goog.isObject(a)&&a.stack&&/^[^\n]+(\n [^\n]+)+/.test(a.stack))&&(a.stack=a.stack+"\nDEFERRED OPERATION:\n"+this.constructorStack_)}; +goog.async.Deferred.prototype.assertNotDeferred_=function(a){};goog.async.Deferred.prototype.addCallback=function(a,b){return this.addCallbacks(a,null,b)};goog.async.Deferred.prototype.addErrback=function(a,b){return this.addCallbacks(null,a,b)};goog.async.Deferred.prototype.addBoth=function(a,b){return this.addCallbacks(a,a,b)};goog.async.Deferred.prototype.addCallbacks=function(a,b,c){this.sequence_.push([a,b,c]);this.hasFired()&&this.fire_();return this}; +goog.async.Deferred.prototype.chainDeferred=function(a){this.addCallbacks(a.callback,a.errback,a);return this};goog.async.Deferred.prototype.awaitDeferred=function(a){return this.addCallback(goog.bind(a.branch,a))};goog.async.Deferred.prototype.branch=function(a){var b=new goog.async.Deferred;this.chainDeferred(b);a&&(b.parent_=this,this.branches_++);return b};goog.async.Deferred.prototype.hasFired=function(){return this.fired_}; +goog.async.Deferred.prototype.isError=function(a){return a instanceof Error};goog.async.Deferred.prototype.hasErrback_=function(){return goog.array.some(this.sequence_,function(a){return goog.isFunction(a[1])})}; +goog.async.Deferred.prototype.fire_=function(){this.unhandledExceptionTimeoutId_&&(this.hasFired()&&this.hasErrback_())&&(goog.global.clearTimeout(this.unhandledExceptionTimeoutId_),delete this.unhandledExceptionTimeoutId_);this.parent_&&(this.parent_.branches_--,delete this.parent_);for(var a=this.result_,b=!1,c=!1;this.sequence_.length&&!this.blocked_;){var d=this.sequence_.shift(),e=d[0],f=d[1],d=d[2];if(e=this.hadError_?f:e)try{var g=e.call(d||this.defaultScope_,a);goog.isDef(g)&&(this.hadError_= +this.hadError_&&(g==a||this.isError(g)),this.result_=a=g);a instanceof goog.async.Deferred&&(this.blocked_=c=!0)}catch(h){a=h,this.hadError_=!0,this.makeStackTraceLong_(a),this.hasErrback_()||(b=!0)}}this.result_=a;c?(a.addCallbacks(goog.bind(this.continue_,this,!0),goog.bind(this.continue_,this,!1)),a.blocking_=!0):!goog.async.Deferred.STRICT_ERRORS||(!this.isError(a)||a instanceof goog.async.Deferred.CanceledError)||(b=this.hadError_=!0);b&&(this.unhandledExceptionTimeoutId_=goog.global.setTimeout(goog.functions.fail(a), +0))};goog.async.Deferred.succeed=function(a){var b=new goog.async.Deferred;b.callback(a);return b};goog.async.Deferred.fail=function(a){var b=new goog.async.Deferred;b.errback(a);return b};goog.async.Deferred.canceled=function(){var a=new goog.async.Deferred;a.cancel();return a};goog.async.Deferred.when=function(a,b,c){return a instanceof goog.async.Deferred?a.branch(!0).addCallback(b,c):goog.async.Deferred.succeed(a).addCallback(b,c)}; +goog.async.Deferred.AlreadyCalledError=function(a){goog.debug.Error.call(this);this.deferred=a};goog.inherits(goog.async.Deferred.AlreadyCalledError,goog.debug.Error);goog.async.Deferred.AlreadyCalledError.prototype.message="Deferred has already fired";goog.async.Deferred.AlreadyCalledError.prototype.name="AlreadyCalledError";goog.async.Deferred.CanceledError=function(a){goog.debug.Error.call(this);this.deferred=a};goog.inherits(goog.async.Deferred.CanceledError,goog.debug.Error); +goog.async.Deferred.CanceledError.prototype.message="Deferred was canceled";goog.async.Deferred.CanceledError.prototype.name="CanceledError";goog.async.DeferredList=function(a,b,c,d,e,f){goog.async.Deferred.call(this,e,f);this.list_=a;this.deferredResults_=[];this.fireOnOneCallback_=!!b;this.fireOnOneErrback_=!!c;this.consumeErrors_=!!d;for(b=this.numFinished_=0;bb%28}; +goog.date.getNumberOfDaysInMonth=function(a,b){switch(b){case goog.date.month.FEB:return goog.date.isLeapYear(a)?29:28;case goog.date.month.JUN:case goog.date.month.SEP:case goog.date.month.NOV:case goog.date.month.APR:return 30}return 31};goog.date.isSameDay=function(a,b){var c=b||new Date(goog.now());return a.getDate()==c.getDate()&&goog.date.isSameMonth(a,c)};goog.date.isSameMonth=function(a,b){var c=b||new Date(goog.now());return a.getMonth()==c.getMonth()&&goog.date.isSameYear(a,c)}; +goog.date.isSameYear=function(a,b){var c=b||new Date(goog.now());return a.getFullYear()==c.getFullYear()};goog.date.getWeekNumber=function(a,b,c,d,e){a=new Date(a,b,c);d=d||goog.date.weekDay.THU;e=e||goog.date.weekDay.MON;b=((a.getDay()+6)%7-e+7)%7;e=a.valueOf()+864E5*((d-e+7)%7-b);d=(new Date((new Date(e)).getFullYear(),0,1)).valueOf();return Math.floor(Math.round((e-d)/864E5)/7)+1};goog.date.min=function(a,b){return ab?a:b}; +goog.date.fromIsoString=function(a){var b=new goog.date.DateTime(2E3);return goog.date.setIso8601DateTime(b,a)?b:null};goog.date.setIso8601DateTime=function(a,b){b=goog.string.trim(b);var c=-1==b.indexOf("T")?" ":"T",c=b.split(c);return goog.date.setIso8601DateOnly_(a,c[0])&&(2>c.length||goog.date.setIso8601TimeOnly_(a,c[1]))}; +goog.date.setIso8601DateOnly_=function(a,b){var c=b.match(goog.date.splitDateStringRegex_);if(!c)return!1;var d=Number(c[2]),e=Number(c[3]),f=Number(c[4]),g=Number(c[5]),h=Number(c[6])||1;a.setFullYear(Number(c[1]));f?(a.setDate(1),a.setMonth(0),a.add(new goog.date.Interval(goog.date.Interval.DAYS,f-1))):g?goog.date.setDateFromIso8601Week_(a,g,h):(d&&(a.setDate(1),a.setMonth(d-1)),e&&a.setDate(e));return!0}; +goog.date.setDateFromIso8601Week_=function(a,b,c){a.setMonth(0);a.setDate(1);var d=a.getDay()||7;b=new goog.date.Interval(goog.date.Interval.DAYS,(4>=d?1-d:8-d)+(Number(c)+7*(Number(b)-1))-1);a.add(b)}; +goog.date.setIso8601TimeOnly_=function(a,b){var c=b.match(goog.date.splitTimezoneStringRegex_),d=0;c&&("Z"!=c[0]&&(d=60*c[2]+Number(c[3]),d*="-"==c[1]?1:-1),d-=a.getTimezoneOffset(),b=b.substr(0,b.length-c[0].length));c=b.match(goog.date.splitTimeStringRegex_);if(!c)return!1;a.setHours(Number(c[1]));a.setMinutes(Number(c[2])||0);a.setSeconds(Number(c[3])||0);a.setMilliseconds(c[4]?1E3*c[4]:0);0!=d&&a.setTime(a.getTime()+6E4*d);return!0}; +goog.date.Interval=function(a,b,c,d,e,f){goog.isString(a)?(this.years=a==goog.date.Interval.YEARS?b:0,this.months=a==goog.date.Interval.MONTHS?b:0,this.days=a==goog.date.Interval.DAYS?b:0,this.hours=a==goog.date.Interval.HOURS?b:0,this.minutes=a==goog.date.Interval.MINUTES?b:0,this.seconds=a==goog.date.Interval.SECONDS?b:0):(this.years=a||0,this.months=b||0,this.days=c||0,this.hours=d||0,this.minutes=e||0,this.seconds=f||0)}; +goog.date.Interval.fromIsoString=function(a){a=a.match(goog.date.splitDurationRegex_);if(!a)return null;var b=!(a[6]||a[7]||a[8]);if(b&&!(a[2]||a[3]||a[4])||b&&a[5])return null;var b=a[1],c=parseInt(a[2],10)||0,d=parseInt(a[3],10)||0,e=parseInt(a[4],10)||0,f=parseInt(a[6],10)||0,g=parseInt(a[7],10)||0;a=parseFloat(a[8])||0;return b?new goog.date.Interval(-c,-d,-e,-f,-g,-a):new goog.date.Interval(c,d,e,f,g,a)}; +goog.date.Interval.prototype.toIsoString=function(a){var b=Math.min(this.years,this.months,this.days,this.hours,this.minutes,this.seconds),c=Math.max(this.years,this.months,this.days,this.hours,this.minutes,this.seconds);if(0>b&&0b&&c.push("-");c.push("P");(this.years||a)&&c.push(Math.abs(this.years)+"Y");(this.months||a)&&c.push(Math.abs(this.months)+"M");(this.days||a)&&c.push(Math.abs(this.days)+"D");if(this.hours||this.minutes||this.seconds|| +a)c.push("T"),(this.hours||a)&&c.push(Math.abs(this.hours)+"H"),(this.minutes||a)&&c.push(Math.abs(this.minutes)+"M"),(this.seconds||a)&&c.push(Math.abs(this.seconds)+"S");return c.join("")};goog.date.Interval.prototype.equals=function(a){return a.years==this.years&&a.months==this.months&&a.days==this.days&&a.hours==this.hours&&a.minutes==this.minutes&&a.seconds==this.seconds}; +goog.date.Interval.prototype.clone=function(){return new goog.date.Interval(this.years,this.months,this.days,this.hours,this.minutes,this.seconds)};goog.date.Interval.YEARS="y";goog.date.Interval.MONTHS="m";goog.date.Interval.DAYS="d";goog.date.Interval.HOURS="h";goog.date.Interval.MINUTES="n";goog.date.Interval.SECONDS="s";goog.date.Interval.prototype.isZero=function(){return 0==this.years&&0==this.months&&0==this.days&&0==this.hours&&0==this.minutes&&0==this.seconds}; +goog.date.Interval.prototype.getInverse=function(){return this.times(-1)};goog.date.Interval.prototype.times=function(a){return new goog.date.Interval(this.years*a,this.months*a,this.days*a,this.hours*a,this.minutes*a,this.seconds*a)};goog.date.Interval.prototype.getTotalSeconds=function(){return 60*(60*(24*this.days+this.hours)+this.minutes)+this.seconds}; +goog.date.Interval.prototype.add=function(a){this.years+=a.years;this.months+=a.months;this.days+=a.days;this.hours+=a.hours;this.minutes+=a.minutes;this.seconds+=a.seconds};goog.date.Date=function(a,b,c){goog.isNumber(a)?(this.date_=new Date(a,b||0,c||1),this.maybeFixDst_(c||1)):goog.isObject(a)?(this.date_=new Date(a.getFullYear(),a.getMonth(),a.getDate()),this.maybeFixDst_(a.getDate())):(this.date_=new Date(goog.now()),this.date_.setHours(0),this.date_.setMinutes(0),this.date_.setSeconds(0),this.date_.setMilliseconds(0))}; +goog.date.Date.prototype.firstDayOfWeek_=goog.i18n.DateTimeSymbols.FIRSTDAYOFWEEK;goog.date.Date.prototype.firstWeekCutOffDay_=goog.i18n.DateTimeSymbols.FIRSTWEEKCUTOFFDAY;goog.date.Date.prototype.clone=function(){var a=new goog.date.Date(this.date_);a.firstDayOfWeek_=this.firstDayOfWeek_;a.firstWeekCutOffDay_=this.firstWeekCutOffDay_;return a};goog.date.Date.prototype.getFullYear=function(){return this.date_.getFullYear()};goog.date.Date.prototype.getYear=function(){return this.getFullYear()}; +goog.date.Date.prototype.getMonth=function(){return this.date_.getMonth()};goog.date.Date.prototype.getDate=function(){return this.date_.getDate()};goog.date.Date.prototype.getTime=function(){return this.date_.getTime()};goog.date.Date.prototype.getDay=function(){return this.date_.getDay()};goog.date.Date.prototype.getIsoWeekday=function(){return(this.getDay()+6)%7};goog.date.Date.prototype.getWeekday=function(){return(this.getIsoWeekday()-this.firstDayOfWeek_+7)%7}; +goog.date.Date.prototype.getUTCFullYear=function(){return this.date_.getUTCFullYear()};goog.date.Date.prototype.getUTCMonth=function(){return this.date_.getUTCMonth()};goog.date.Date.prototype.getUTCDate=function(){return this.date_.getUTCDate()};goog.date.Date.prototype.getUTCDay=function(){return this.date_.getDay()};goog.date.Date.prototype.getUTCHours=function(){return this.date_.getUTCHours()};goog.date.Date.prototype.getUTCMinutes=function(){return this.date_.getUTCMinutes()}; +goog.date.Date.prototype.getUTCIsoWeekday=function(){return(this.date_.getUTCDay()+6)%7};goog.date.Date.prototype.getUTCWeekday=function(){return(this.getUTCIsoWeekday()-this.firstDayOfWeek_+7)%7};goog.date.Date.prototype.getFirstDayOfWeek=function(){return this.firstDayOfWeek_};goog.date.Date.prototype.getFirstWeekCutOffDay=function(){return this.firstWeekCutOffDay_};goog.date.Date.prototype.getNumberOfDaysInMonth=function(){return goog.date.getNumberOfDaysInMonth(this.getFullYear(),this.getMonth())}; +goog.date.Date.prototype.getWeekNumber=function(){return goog.date.getWeekNumber(this.getFullYear(),this.getMonth(),this.getDate(),this.firstWeekCutOffDay_,this.firstDayOfWeek_)};goog.date.Date.prototype.getDayOfYear=function(){for(var a=this.getDate(),b=this.getFullYear(),c=this.getMonth()-1;0<=c;c--)a+=goog.date.getNumberOfDaysInMonth(b,c);return a};goog.date.Date.prototype.getTimezoneOffset=function(){return this.date_.getTimezoneOffset()}; +goog.date.Date.prototype.getTimezoneOffsetString=function(){var a;a=this.getTimezoneOffset();if(0==a)a="Z";else{var b=Math.abs(a)/60,c=Math.floor(b),b=60*(b-c);a=(0b&&(b+=12);var d=goog.date.getNumberOfDaysInMonth(c,b),d=Math.min(d,this.getDate());this.setDate(1);this.setFullYear(c);this.setMonth(b);this.setDate(d)}a.days&&(b=new Date(this.getYear(),this.getMonth(),this.getDate(),12),a=new Date(b.getTime()+864E5*a.days),this.setDate(1),this.setFullYear(a.getFullYear()),this.setMonth(a.getMonth()),this.setDate(a.getDate()), +this.maybeFixDst_(a.getDate()))};goog.date.Date.prototype.toIsoString=function(a,b){return[this.getFullYear(),goog.string.padNumber(this.getMonth()+1,2),goog.string.padNumber(this.getDate(),2)].join(a?"-":"")+(b?this.getTimezoneOffsetString():"")};goog.date.Date.prototype.toUTCIsoString=function(a,b){return[this.getUTCFullYear(),goog.string.padNumber(this.getUTCMonth()+1,2),goog.string.padNumber(this.getUTCDate(),2)].join(a?"-":"")+(b?"Z":"")}; +goog.date.Date.prototype.equals=function(a){return!(!a||this.getYear()!=a.getYear()||this.getMonth()!=a.getMonth()||this.getDate()!=a.getDate())};goog.date.Date.prototype.toString=function(){return this.toIsoString()};goog.date.Date.prototype.maybeFixDst_=function(a){this.getDate()!=a&&(a=this.getDate()a;++a){var f=c[a].getRight();c[a].getOperator()===ol.expr.ComparisonOp.GTE?d=f:c[a].getOperator()===ol.expr.ComparisonOp.LTE&&(e=f)}this.writeNode("LowerBoundary",d,null,b);this.writeNode("UpperBoundary", +e,null,b);return b},PropertyName:function(a){var b=this.createElementNS("ogc:PropertyName");b.appendChild(this.createTextNode(a.getName()));return b},Literal:function(a){var b=this.createElementNS("ogc:Literal");b.appendChild(this.createTextNode(a.getValue()));return b},LowerBoundary:function(a){var b=this.createElementNS("ogc:LowerBoundary");this.writeOgcExpression(a,b);return b},UpperBoundary:function(a){var b=this.createElementNS("ogc:UpperBoundary");this.writeOgcExpression(a,b);return b},INTERSECTS:function(a){return this.writeSpatial_(a, +"Intersects")},WITHIN:function(a){return this.writeSpatial_(a,"Within")},CONTAINS:function(a){return this.writeSpatial_(a,"Contains")},DWITHIN:function(a){var b=this.writeSpatial_(a,"DWithin");this.writeNode("Distance",a,null,b);return b},Distance:function(a){var b=this.createElementNS("ogc:Distance");a=a.getArgs();b.setAttribute("units",a[2].getValue());b.appendChild(this.createTextNode(a[1].getValue()));return b},Function:function(a){var b=this.createElementNS("ogc:Function");b.setAttribute("name", +a.getCallee().getName());a=a.getArgs();for(var c=0,d=a.length;ce;++e)d[e]instanceof ol.expr.Logical&&d[e].getOperator()===c?this.getSubfiltersForLogical_(d[e],b):b.push(d[e])}; +ol.parser.ogc.Filter_v1.prototype.aggregateLogical_=function(a,b){var c=[],d=[];if(2d&&(e=~e);a[c]=e}return ol.parser.polyline.encodeUnsignedIntegers(a)};ol.parser.polyline.decodeSignedIntegers=function(a){a=ol.parser.polyline.decodeUnsignedIntegers(a);for(var b=a.length,c=0;c>1):d>>1}return a}; +ol.parser.polyline.encodeUnsignedIntegers=function(a){for(var b="",c=a.length,d=0;dg?(b.push(c),d=c=0):d+=5}return b};ol.parser.polyline.encodeFloat=function(a,b){a=Math.round(a*(b||1E5));return ol.parser.polyline.encodeSignedInteger(a)}; +ol.parser.polyline.decodeFloat=function(a,b){return ol.parser.polyline.decodeSignedInteger(a)/(b||1E5)};ol.parser.polyline.encodeSignedInteger=function(a){var b=a<<1;0>a&&(b=~b);return ol.parser.polyline.encodeUnsignedInteger(b)};ol.parser.polyline.decodeSignedInteger=function(a){a=ol.parser.polyline.decodeUnsignedInteger(a);return a&1?~(a>>1):a>>1}; +ol.parser.polyline.encodeUnsignedInteger=function(a){for(var b,c="";32<=a;)b=(32|a&31)+63,c+=String.fromCharCode(b),a>>=5;return c+=String.fromCharCode(a+63)};ol.parser.polyline.decodeUnsignedInteger=function(a){for(var b=0,c=0,d=a.length,e=0;ef)break;c+=5}return b};ol.proj.CH=function(a){ol.Projection.call(this,{code:a.code,extent:a.extent,global:!1,units:ol.ProjectionUnits.METERS})};goog.inherits(ol.proj.CH,ol.Projection);ol.proj.CH.PHI0=goog.math.toRadians(169028.66/3600);ol.proj.CH.LAMBDA0=goog.math.toRadians(26782.5/3600);ol.proj.CH.ELLIPSOID=ol.ellipsoid.BESSEL1841;ol.proj.CH.COS_PHI0=Math.cos(ol.proj.CH.PHI0);ol.proj.CH.SIN_PHI0=Math.sin(ol.proj.CH.PHI0); +ol.proj.CH.R=ol.proj.CH.ELLIPSOID.a*Math.sqrt(1-ol.proj.CH.ELLIPSOID.eSquared)/(1-ol.proj.CH.ELLIPSOID.eSquared*ol.proj.CH.SIN_PHI0*ol.proj.CH.SIN_PHI0);ol.proj.CH.ALPHA=Math.sqrt(1+ol.proj.CH.ELLIPSOID.eSquared*Math.pow(ol.proj.CH.COS_PHI0,4)/(1-ol.proj.CH.ELLIPSOID.eSquared));ol.proj.CH.SIN_B0=ol.proj.CH.SIN_PHI0/ol.proj.CH.ALPHA;ol.proj.CH.B0=Math.asin(ol.proj.CH.SIN_B0);ol.proj.CH.COS_B0=Math.cos(ol.proj.CH.B0); +ol.proj.CH.K=Math.log(Math.tan(Math.PI/4+ol.proj.CH.B0/2))-ol.proj.CH.ALPHA*Math.log(Math.tan(Math.PI/4+ol.proj.CH.PHI0/2))+ol.proj.CH.ALPHA*ol.proj.CH.ELLIPSOID.e*Math.log((1+ol.proj.CH.ELLIPSOID.e*ol.proj.CH.SIN_PHI0)/(1-ol.proj.CH.ELLIPSOID.e*ol.proj.CH.SIN_PHI0))/2; +ol.proj.CH.add=function(){ol.proj.EPSG2056.add();ol.proj.EPSG21781.add();var a=ol.proj.get("EPSG:2056"),b=ol.proj.get("EPSG:21781");ol.proj.addTransform(a,b,goog.partial(ol.proj.CH.translate_,-2E6,-1E6));ol.proj.addTransform(b,a,goog.partial(ol.proj.CH.translate_,2E6,1E6))}; +ol.proj.CH.fromEPSG4326Approximate_=function(a,b,c,d,e){var f=c.length;e=goog.isDef(e)?e:2;d=goog.isDef(d)?d:2Math.abs(n-m))break;m=n}d[k]=goog.math.toDegrees(h);d[k+1]=goog.math.toDegrees(n)}return d};ol.proj.CH.translate_=function(a,b,c,d,e){var f=c.length;e=goog.isDef(e)?e:2;d=goog.isDef(d)?d:2n||m<=n)return null;a=a.y;return a<-m||-1=this.minZoom;--a)if(d.minX=d.maxX>>=1,d.minY=d.maxY>>=1,b.call(c,a,d))return!0;return!1};ol.source.BingMaps=function(a){ol.source.TileImage.call(this,{crossOrigin:"anonymous",opaque:!0,projection:ol.proj.get("EPSG:3857")});this.culture_=goog.isDef(a.culture)?a.culture:"en-us";this.ready_=!1;var b=new goog.Uri("//dev.virtualearth.net/REST/v1/Imagery/Metadata/"+a.style);(new goog.net.Jsonp(b,"jsonp")).send({include:"ImageryProviders",key:a.key},goog.bind(this.handleImageryMetadataResponse,this))};goog.inherits(ol.source.BingMaps,ol.source.TileImage); +ol.source.BingMaps.prototype.handleImageryMetadataResponse=function(a){var b=a.brandLogoUri,c=a.resourceSets[0].resources[0],d=new ol.tilegrid.XYZ({minZoom:c.zoomMin,maxZoom:c.zoomMax,tileSize:[c.imageWidth,c.imageHeight]});this.tileGrid=d;var e=this.culture_;this.tileUrlFunction=ol.TileUrlFunction.withTileCoordTransform(d.createTileCoordTransform(),ol.TileUrlFunction.createFromTileUrlFunctions(goog.array.map(c.imageUrlSubdomains,function(a){var b=c.imageUrl.replace("{subdomain}",a).replace("{culture}", +e);return function(a,c){return goog.isNull(a)?void 0:b.replace("{quadkey}",a.quadKey())}})));var f=ol.proj.getTransformFromProjections(ol.proj.get("EPSG:4326"),this.getProjection());a=goog.array.map(c.imageryProviders,function(a){var b=a.attribution,c={};goog.array.forEach(a.coverageAreas,function(a){var b=a.zoomMin,e=a.zoomMax;a=a.bbox;a=ol.extent.transform([a[1],a[3],a[0],a[2]],f);var g,h;for(g=b;g<=e;++g)h=g.toString(),b=d.getTileRangeForExtentAndZ(a,g),h in c?c[h].push(b):c[h]=[b]});return new ol.Attribution({html:b, +tileRanges:c})});this.setAttributions(a);this.setLogo(b);this.ready_=!0;this.dispatchLoadEvent()};ol.source.BingMaps.prototype.isReady=function(){return this.ready_};ol.source.FeatureInfoSource=function(){};ol.source.ImageStatic=function(a){var b=ol.source.ImageStatic.createImageFunction(a.url),c=a.imageExtent,d=a.imageSize,e=(c[3]-c[2])/d[1],f=ol.proj.get(a.projection);ol.source.Image.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,extent:a.extent,projection:a.projection,imageUrlFunction:b,resolutions:[e]});this.image_=this.createImage(c,e,d,f)};goog.inherits(ol.source.ImageStatic,ol.source.Image); +ol.source.ImageStatic.prototype.getImage=function(a,b,c){return ol.extent.intersects(a,this.image_.getExtent())?this.image_:null};ol.source.ImageStatic.createImageFunction=function(a){return function(b,c,d){return a}};ol.source.wms={};ol.source.WMSGetFeatureInfoMethod={IFRAME:"iframe",XHR_GET:"xhr_get"}; +ol.source.wms.getUrl=function(a,b,c,d,e){d={SERVICE:"WMS",VERSION:"1.3.0",REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0,WIDTH:Math.round(d[0]),HEIGHT:Math.round(d[1])};goog.object.extend(d,b);d.STYLES=b.STYLES||new String("");b="1.3"f&&(f=0);var f=c.styles[f].identifier,g={};goog.array.forEach(c.dimensions,function(a,b,c){b=a.identifier;c=a["default"];goog.isDef(c)||(c=a.values[0]);g[b]=c});var h=a.contents.tileMatrixSets[d],k=ol.tilegrid.WMTS.createFromCapabilitiesMatrixSet(h), +h=ol.proj.get(h.supportedCRS),l=a.operationsMetadata.GetTile.dcp.http.get,m,n;switch(goog.object.getKeys(l[0].constraints.GetEncoding.allowedValues)[0]){case "REST":case "RESTful":n=ol.source.WMTSRequestEncoding.REST;m=c.resourceUrls.tile[e];break;case "KVP":n=ol.source.WMTSRequestEncoding.KVP,m=[],goog.array.forEach(l,function(a,b,c){a.constraints.GetEncoding.allowedValues.hasOwnProperty(ol.source.WMTSRequestEncoding.KVP)&&m.push(a.url)})}return{urls:m,layer:b,matrixSet:d,format:e,projection:h,requestEncoding:n, +tileGrid:k,style:f,dimensions:g}};ol.sphere.WGS84=new ol.Sphere(6378137);ol.style.Text=function(a){this.color_=goog.isDef(a.color)?a.color instanceof ol.expr.Expression?a.color:new ol.expr.Literal(a.color):new ol.expr.Literal(ol.style.TextDefaults.color);this.fontFamily_=goog.isDef(a.fontFamily)?a.fontFamily instanceof ol.expr.Expression?a.fontFamily:new ol.expr.Literal(a.fontFamily):new ol.expr.Literal(ol.style.TextDefaults.fontFamily);this.fontSize_=goog.isDef(a.fontSize)?a.fontSize instanceof ol.expr.Expression?a.fontSize:new ol.expr.Literal(a.fontSize):new ol.expr.Literal(ol.style.TextDefaults.fontSize); +this.text_=a.text instanceof ol.expr.Expression?a.text:new ol.expr.Literal(a.text);this.opacity_=goog.isDef(a.opacity)?a.opacity instanceof ol.expr.Expression?a.opacity:new ol.expr.Literal(a.opacity):new ol.expr.Literal(ol.style.TextDefaults.opacity)};goog.inherits(ol.style.Text,ol.style.Symbolizer); +ol.style.Text.prototype.createLiteral=function(a){var b;a instanceof ol.Feature&&(b=a,(a=b.getGeometry())&&a.getType());a=ol.expr.evaluateFeature(this.color_,b);var c=ol.expr.evaluateFeature(this.fontFamily_,b),d=Number(ol.expr.evaluateFeature(this.fontSize_,b)),e=ol.expr.evaluateFeature(this.text_,b);b=Number(ol.expr.evaluateFeature(this.opacity_,b));return new ol.style.TextLiteral({color:a,fontFamily:c,fontSize:d,text:e,opacity:b})};ol.style.Text.prototype.getColor=function(){return this.color_}; +ol.style.Text.prototype.getFontFamily=function(){return this.fontFamily_};ol.style.Text.prototype.getFontSize=function(){return this.fontSize_};ol.style.Text.prototype.getOpacity=function(){return this.opacity_};ol.style.Text.prototype.getText=function(){return this.text_};ol.style.Text.prototype.setColor=function(a){this.color_=a};ol.style.Text.prototype.setFontFamily=function(a){this.fontFamily_=a};ol.style.Text.prototype.setFontSize=function(a){this.fontSize_=a}; +ol.style.Text.prototype.setOpacity=function(a){this.opacity_=a};ol.style.Text.prototype.setText=function(a){this.text_=a};ol.style.TextDefaults={color:"#000",fontFamily:"sans-serif",fontSize:10,opacity:1}; diff --git a/edit/build/ol-whitespace.js b/edit/build/ol-whitespace.js new file mode 100644 index 0000000000..03d7cd7f7a --- /dev/null +++ b/edit/build/ol-whitespace.js @@ -0,0 +1,34117 @@ +var COMPILED = false; +var goog = goog || {}; +goog.global = this; +goog.global.CLOSURE_DEFINES; +goog.exportPath_ = function(name, opt_object, opt_objectToExportTo) { + var parts = name.split("."); + var cur = opt_objectToExportTo || goog.global; + if(!(parts[0] in cur) && cur.execScript) { + cur.execScript("var " + parts[0]) + } + for(var part;parts.length && (part = parts.shift());) { + if(!parts.length && opt_object !== undefined) { + cur[part] = opt_object + }else { + if(cur[part]) { + cur = cur[part] + }else { + cur = cur[part] = {} + } + } + } +}; +goog.define = function(name, defaultValue) { + var value = defaultValue; + if(!COMPILED) { + if(goog.global.CLOSURE_DEFINES && Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_DEFINES, name)) { + value = goog.global.CLOSURE_DEFINES[name] + } + } + goog.exportPath_(name, value) +}; +goog.DEBUG = true; +goog.define("goog.LOCALE", "en"); +goog.define("goog.TRUSTED_SITE", true); +goog.provide = function(name) { + if(!COMPILED) { + if(goog.isProvided_(name)) { + throw Error('Namespace "' + name + '" already declared.'); + } + delete goog.implicitNamespaces_[name]; + var namespace = name; + while(namespace = namespace.substring(0, namespace.lastIndexOf("."))) { + if(goog.getObjectByName(namespace)) { + break + } + goog.implicitNamespaces_[namespace] = true + } + } + goog.exportPath_(name) +}; +goog.setTestOnly = function(opt_message) { + if(COMPILED && !goog.DEBUG) { + opt_message = opt_message || ""; + throw Error("Importing test-only code into non-debug environment" + opt_message ? ": " + opt_message : "."); + } +}; +if(!COMPILED) { + goog.isProvided_ = function(name) { + return!goog.implicitNamespaces_[name] && !!goog.getObjectByName(name) + }; + goog.implicitNamespaces_ = {} +} +goog.getObjectByName = function(name, opt_obj) { + var parts = name.split("."); + var cur = opt_obj || goog.global; + for(var part;part = parts.shift();) { + if(goog.isDefAndNotNull(cur[part])) { + cur = cur[part] + }else { + return null + } + } + return cur +}; +goog.globalize = function(obj, opt_global) { + var global = opt_global || goog.global; + for(var x in obj) { + global[x] = obj[x] + } +}; +goog.addDependency = function(relPath, provides, requires) { + if(goog.DEPENDENCIES_ENABLED) { + var provide, require; + var path = relPath.replace(/\\/g, "/"); + var deps = goog.dependencies_; + for(var i = 0;provide = provides[i];i++) { + deps.nameToPath[provide] = path; + if(!(path in deps.pathToNames)) { + deps.pathToNames[path] = {} + } + deps.pathToNames[path][provide] = true + } + for(var j = 0;require = requires[j];j++) { + if(!(path in deps.requires)) { + deps.requires[path] = {} + } + deps.requires[path][require] = true + } + } +}; +goog.define("goog.ENABLE_DEBUG_LOADER", true); +goog.require = function(name) { + if(!COMPILED) { + if(goog.isProvided_(name)) { + return + } + if(goog.ENABLE_DEBUG_LOADER) { + var path = goog.getPathFromDeps_(name); + if(path) { + goog.included_[path] = true; + goog.writeScripts_(); + return + } + } + var errorMessage = "goog.require could not find: " + name; + if(goog.global.console) { + goog.global.console["error"](errorMessage) + } + throw Error(errorMessage); + } +}; +goog.basePath = ""; +goog.global.CLOSURE_BASE_PATH; +goog.global.CLOSURE_NO_DEPS; +goog.global.CLOSURE_IMPORT_SCRIPT; +goog.nullFunction = function() { +}; +goog.identityFunction = function(opt_returnValue, var_args) { + return opt_returnValue +}; +goog.abstractMethod = function() { + throw Error("unimplemented abstract method"); +}; +goog.addSingletonGetter = function(ctor) { + ctor.getInstance = function() { + if(ctor.instance_) { + return ctor.instance_ + } + if(goog.DEBUG) { + goog.instantiatedSingletons_[goog.instantiatedSingletons_.length] = ctor + } + return ctor.instance_ = new ctor + } +}; +goog.instantiatedSingletons_ = []; +goog.DEPENDENCIES_ENABLED = !COMPILED && goog.ENABLE_DEBUG_LOADER; +if(goog.DEPENDENCIES_ENABLED) { + goog.included_ = {}; + goog.dependencies_ = {pathToNames:{}, nameToPath:{}, requires:{}, visited:{}, written:{}}; + goog.inHtmlDocument_ = function() { + var doc = goog.global.document; + return typeof doc != "undefined" && "write" in doc + }; + goog.findBasePath_ = function() { + if(goog.global.CLOSURE_BASE_PATH) { + goog.basePath = goog.global.CLOSURE_BASE_PATH; + return + }else { + if(!goog.inHtmlDocument_()) { + return + } + } + var doc = goog.global.document; + var scripts = doc.getElementsByTagName("script"); + for(var i = scripts.length - 1;i >= 0;--i) { + var src = scripts[i].src; + var qmark = src.lastIndexOf("?"); + var l = qmark == -1 ? src.length : qmark; + if(src.substr(l - 7, 7) == "base.js") { + goog.basePath = src.substr(0, l - 7); + return + } + } + }; + goog.importScript_ = function(src) { + var importScript = goog.global.CLOSURE_IMPORT_SCRIPT || goog.writeScriptTag_; + if(!goog.dependencies_.written[src] && importScript(src)) { + goog.dependencies_.written[src] = true + } + }; + goog.writeScriptTag_ = function(src) { + if(goog.inHtmlDocument_()) { + var doc = goog.global.document; + if(doc.readyState == "complete") { + var isDeps = /\bdeps.js$/.test(src); + if(isDeps) { + return false + }else { + throw Error('Cannot write "' + src + '" after document load'); + } + } + doc.write('\x3cscript type\x3d"text/javascript" src\x3d"' + src + '"\x3e\x3c/' + "script\x3e"); + return true + }else { + return false + } + }; + goog.writeScripts_ = function() { + var scripts = []; + var seenScript = {}; + var deps = goog.dependencies_; + function visitNode(path) { + if(path in deps.written) { + return + } + if(path in deps.visited) { + if(!(path in seenScript)) { + seenScript[path] = true; + scripts.push(path) + } + return + } + deps.visited[path] = true; + if(path in deps.requires) { + for(var requireName in deps.requires[path]) { + if(!goog.isProvided_(requireName)) { + if(requireName in deps.nameToPath) { + visitNode(deps.nameToPath[requireName]) + }else { + throw Error("Undefined nameToPath for " + requireName); + } + } + } + } + if(!(path in seenScript)) { + seenScript[path] = true; + scripts.push(path) + } + } + for(var path in goog.included_) { + if(!deps.written[path]) { + visitNode(path) + } + } + for(var i = 0;i < scripts.length;i++) { + if(scripts[i]) { + goog.importScript_(goog.basePath + scripts[i]) + }else { + throw Error("Undefined script input"); + } + } + }; + goog.getPathFromDeps_ = function(rule) { + if(rule in goog.dependencies_.nameToPath) { + return goog.dependencies_.nameToPath[rule] + }else { + return null + } + }; + goog.findBasePath_(); + if(!goog.global.CLOSURE_NO_DEPS) { + goog.importScript_(goog.basePath + "deps.js") + } +} +goog.typeOf = function(value) { + var s = typeof value; + if(s == "object") { + if(value) { + if(value instanceof Array) { + return"array" + }else { + if(value instanceof Object) { + return s + } + } + var className = Object.prototype.toString.call((value)); + if(className == "[object Window]") { + return"object" + } + if(className == "[object Array]" || typeof value.length == "number" && typeof value.splice != "undefined" && typeof value.propertyIsEnumerable != "undefined" && !value.propertyIsEnumerable("splice")) { + return"array" + } + if(className == "[object Function]" || typeof value.call != "undefined" && typeof value.propertyIsEnumerable != "undefined" && !value.propertyIsEnumerable("call")) { + return"function" + } + }else { + return"null" + } + }else { + if(s == "function" && typeof value.call == "undefined") { + return"object" + } + } + return s +}; +goog.isDef = function(val) { + return val !== undefined +}; +goog.isNull = function(val) { + return val === null +}; +goog.isDefAndNotNull = function(val) { + return val != null +}; +goog.isArray = function(val) { + return goog.typeOf(val) == "array" +}; +goog.isArrayLike = function(val) { + var type = goog.typeOf(val); + return type == "array" || type == "object" && typeof val.length == "number" +}; +goog.isDateLike = function(val) { + return goog.isObject(val) && typeof val.getFullYear == "function" +}; +goog.isString = function(val) { + return typeof val == "string" +}; +goog.isBoolean = function(val) { + return typeof val == "boolean" +}; +goog.isNumber = function(val) { + return typeof val == "number" +}; +goog.isFunction = function(val) { + return goog.typeOf(val) == "function" +}; +goog.isObject = function(val) { + var type = typeof val; + return type == "object" && val != null || type == "function" +}; +goog.getUid = function(obj) { + return obj[goog.UID_PROPERTY_] || (obj[goog.UID_PROPERTY_] = ++goog.uidCounter_) +}; +goog.removeUid = function(obj) { + if("removeAttribute" in obj) { + obj.removeAttribute(goog.UID_PROPERTY_) + } + try { + delete obj[goog.UID_PROPERTY_] + }catch(ex) { + } +}; +goog.UID_PROPERTY_ = "closure_uid_" + (Math.random() * 1E9 >>> 0); +goog.uidCounter_ = 0; +goog.getHashCode = goog.getUid; +goog.removeHashCode = goog.removeUid; +goog.cloneObject = function(obj) { + var type = goog.typeOf(obj); + if(type == "object" || type == "array") { + if(obj.clone) { + return obj.clone() + } + var clone = type == "array" ? [] : {}; + for(var key in obj) { + clone[key] = goog.cloneObject(obj[key]) + } + return clone + } + return obj +}; +goog.bindNative_ = function(fn, selfObj, var_args) { + return(fn.call.apply(fn.bind, arguments)) +}; +goog.bindJs_ = function(fn, selfObj, var_args) { + if(!fn) { + throw new Error; + } + if(arguments.length > 2) { + var boundArgs = Array.prototype.slice.call(arguments, 2); + return function() { + var newArgs = Array.prototype.slice.call(arguments); + Array.prototype.unshift.apply(newArgs, boundArgs); + return fn.apply(selfObj, newArgs) + } + }else { + return function() { + return fn.apply(selfObj, arguments) + } + } +}; +goog.bind = function(fn, selfObj, var_args) { + if(Function.prototype.bind && Function.prototype.bind.toString().indexOf("native code") != -1) { + goog.bind = goog.bindNative_ + }else { + goog.bind = goog.bindJs_ + } + return goog.bind.apply(null, arguments) +}; +goog.partial = function(fn, var_args) { + var args = Array.prototype.slice.call(arguments, 1); + return function() { + var newArgs = Array.prototype.slice.call(arguments); + newArgs.unshift.apply(newArgs, args); + return fn.apply(this, newArgs) + } +}; +goog.mixin = function(target, source) { + for(var x in source) { + target[x] = source[x] + } +}; +goog.now = goog.TRUSTED_SITE && Date.now || function() { + return+new Date +}; +goog.globalEval = function(script) { + if(goog.global.execScript) { + goog.global.execScript(script, "JavaScript") + }else { + if(goog.global.eval) { + if(goog.evalWorksForGlobals_ == null) { + goog.global.eval("var _et_ \x3d 1;"); + if(typeof goog.global["_et_"] != "undefined") { + delete goog.global["_et_"]; + goog.evalWorksForGlobals_ = true + }else { + goog.evalWorksForGlobals_ = false + } + } + if(goog.evalWorksForGlobals_) { + goog.global.eval(script) + }else { + var doc = goog.global.document; + var scriptElt = doc.createElement("script"); + scriptElt.type = "text/javascript"; + scriptElt.defer = false; + scriptElt.appendChild(doc.createTextNode(script)); + doc.body.appendChild(scriptElt); + doc.body.removeChild(scriptElt) + } + }else { + throw Error("goog.globalEval not available"); + } + } +}; +goog.evalWorksForGlobals_ = null; +goog.cssNameMapping_; +goog.cssNameMappingStyle_; +goog.getCssName = function(className, opt_modifier) { + var getMapping = function(cssName) { + return goog.cssNameMapping_[cssName] || cssName + }; + var renameByParts = function(cssName) { + var parts = cssName.split("-"); + var mapped = []; + for(var i = 0;i < parts.length;i++) { + mapped.push(getMapping(parts[i])) + } + return mapped.join("-") + }; + var rename; + if(goog.cssNameMapping_) { + rename = goog.cssNameMappingStyle_ == "BY_WHOLE" ? getMapping : renameByParts + }else { + rename = function(a) { + return a + } + } + if(opt_modifier) { + return className + "-" + rename(opt_modifier) + }else { + return rename(className) + } +}; +goog.setCssNameMapping = function(mapping, opt_style) { + goog.cssNameMapping_ = mapping; + goog.cssNameMappingStyle_ = opt_style +}; +goog.global.CLOSURE_CSS_NAME_MAPPING; +if(!COMPILED && goog.global.CLOSURE_CSS_NAME_MAPPING) { + goog.cssNameMapping_ = goog.global.CLOSURE_CSS_NAME_MAPPING +} +goog.getMsg = function(str, opt_values) { + var values = opt_values || {}; + for(var key in values) { + var value = ("" + values[key]).replace(/\$/g, "$$$$"); + str = str.replace(new RegExp("\\{\\$" + key + "\\}", "gi"), value) + } + return str +}; +goog.getMsgWithFallback = function(a, b) { + return a +}; +goog.exportSymbol = function(publicPath, object, opt_objectToExportTo) { + goog.exportPath_(publicPath, object, opt_objectToExportTo) +}; +goog.exportProperty = function(object, publicName, symbol) { + object[publicName] = symbol +}; +goog.inherits = function(childCtor, parentCtor) { + function tempCtor() { + } + tempCtor.prototype = parentCtor.prototype; + childCtor.superClass_ = parentCtor.prototype; + childCtor.prototype = new tempCtor; + childCtor.prototype.constructor = childCtor +}; +goog.base = function(me, opt_methodName, var_args) { + var caller = arguments.callee.caller; + if(goog.DEBUG) { + if(!caller) { + throw Error("arguments.caller not defined. goog.base() expects not " + "to be running in strict mode. See " + "http://www.ecma-international.org/ecma-262/5.1/#sec-C"); + } + } + if(caller.superClass_) { + return caller.superClass_.constructor.apply(me, Array.prototype.slice.call(arguments, 1)) + } + var args = Array.prototype.slice.call(arguments, 2); + var foundCaller = false; + for(var ctor = me.constructor;ctor;ctor = ctor.superClass_ && ctor.superClass_.constructor) { + if(ctor.prototype[opt_methodName] === caller) { + foundCaller = true + }else { + if(foundCaller) { + return ctor.prototype[opt_methodName].apply(me, args) + } + } + } + if(me[opt_methodName] === caller) { + return me.constructor.prototype[opt_methodName].apply(me, args) + }else { + throw Error("goog.base called from a method of one name " + "to a method of a different name"); + } +}; +goog.scope = function(fn) { + fn.call(goog.global) +}; +goog.addDependency("../build/src/internal/src/requireall.js", [], ["ol", "ol.Attribution", "ol.BrowserFeature", "ol.Collection", "ol.CollectionEvent", "ol.CollectionEventType", "ol.Color", "ol.Constraints", "ol.Coordinate", "ol.CoordinateArray", "ol.CoordinateFormatType", "ol.DeviceOrientation", "ol.DeviceOrientation.SUPPORTED", "ol.DeviceOrientationProperty", "ol.Ellipsoid", "ol.Extent", "ol.Feature", "ol.FrameState", "ol.Geolocation", "ol.Geolocation.SUPPORTED", "ol.GeolocationProperty", "ol.IView", +"ol.IView2D", "ol.IView3D", "ol.Image", "ol.ImageState", "ol.ImageTile", "ol.ImageUrlFunction", "ol.ImageUrlFunctionType", "ol.Kinetic", "ol.Map", "ol.MapBrowserEvent", "ol.MapBrowserEvent.EventType", "ol.MapBrowserEventHandler", "ol.MapEvent", "ol.MapEventType", "ol.MapProperty", "ol.Object", "ol.ObjectEventType", "ol.Overlay", "ol.OverlayPositioning", "ol.OverlayProperty", "ol.Pixel", "ol.PostRenderFunction", "ol.PreRenderFunction", "ol.Projection", "ol.ProjectionLike", "ol.ProjectionUnits", "ol.RendererHint", +"ol.RendererHints", "ol.ResolutionConstraint", "ol.ResolutionConstraintType", "ol.RotationConstraint", "ol.RotationConstraintType", "ol.Size", "ol.Sphere", "ol.Tile", "ol.TileCache", "ol.TileCoord", "ol.TilePriorityFunction", "ol.TileQueue", "ol.TileRange", "ol.TileState", "ol.TileUrlFunction", "ol.TileUrlFunctionType", "ol.TransformFunction", "ol.View", "ol.View2D", "ol.View2DProperty", "ol.View2DState", "ol.ViewHint", "ol.animation", "ol.array", "ol.canvas", "ol.canvas.SUPPORTED", "ol.control", +"ol.control.Attribution", "ol.control.Control", "ol.control.DragBox", "ol.control.FullScreen", "ol.control.Logo", "ol.control.MousePosition", "ol.control.ScaleLine", "ol.control.ScaleLineProperty", "ol.control.ScaleLineUnits", "ol.control.Zoom", "ol.control.ZoomSlider", "ol.control.ZoomToExtent", "ol.coordinate", "ol.css", "ol.dom", "ol.dom.BrowserFeature", "ol.dom.Input", "ol.dom.InputProperty", "ol.easing", "ol.ellipsoid.BESSEL1841", "ol.ellipsoid.WGS84", "ol.expr", "ol.expr.Call", "ol.expr.Char", +"ol.expr.Comparison", "ol.expr.ComparisonOp", "ol.expr.Expression", "ol.expr.Identifier", "ol.expr.Lexer", "ol.expr.Literal", "ol.expr.Logical", "ol.expr.LogicalOp", "ol.expr.Math", "ol.expr.MathOp", "ol.expr.Member", "ol.expr.Not", "ol.expr.Parser", "ol.expr.Token", "ol.expr.TokenType", "ol.expr.UnexpectedToken", "ol.expr.functions", "ol.extent", "ol.geom", "ol.geom.AbstractCollection", "ol.geom.Geometry", "ol.geom.GeometryCollection", "ol.geom.GeometryType", "ol.geom.LineString", "ol.geom.LinearRing", +"ol.geom.MultiLineString", "ol.geom.MultiPoint", "ol.geom.MultiPolygon", "ol.geom.Point", "ol.geom.Polygon", "ol.geom.SharedVertices", "ol.geom2", "ol.geom2.LineString", "ol.geom2.LineStringCollection", "ol.geom2.Point", "ol.geom2.PointCollection", "ol.interaction", "ol.interaction.ConditionType", "ol.interaction.DoubleClickZoom", "ol.interaction.Drag", "ol.interaction.DragPan", "ol.interaction.DragRotate", "ol.interaction.DragRotateAndZoom", "ol.interaction.DragZoom", "ol.interaction.Interaction", +"ol.interaction.KeyboardPan", "ol.interaction.KeyboardZoom", "ol.interaction.Modify", "ol.interaction.MouseWheelZoom", "ol.interaction.Select", "ol.interaction.Touch", "ol.interaction.TouchPan", "ol.interaction.TouchRotate", "ol.interaction.TouchZoom", "ol.interaction.condition", "ol.layer.Base", "ol.layer.Group", "ol.layer.Image", "ol.layer.Layer", "ol.layer.LayerProperty", "ol.layer.LayerState", "ol.layer.Tile", "ol.layer.Vector", "ol.layer.Vector2", "ol.layer.VectorLayerEventType", "ol.layer.VectorLayerRenderIntent", +"ol.math", "ol.parser.AsyncObjectFeatureParser", "ol.parser.AsyncStringFeatureParser", "ol.parser.DomFeatureParser", "ol.parser.GPX", "ol.parser.GeoJSON", "ol.parser.KML", "ol.parser.ObjectFeatureParser", "ol.parser.Parser", "ol.parser.ReadFeaturesOptions", "ol.parser.ReadFeaturesResult", "ol.parser.StringFeatureParser", "ol.parser.TopoJSON", "ol.parser.WKT", "ol.parser.XML", "ol.parser.ogc.ExceptionReport", "ol.parser.ogc.Filter", "ol.parser.ogc.Filter_v1", "ol.parser.ogc.Filter_v1_0_0", "ol.parser.ogc.Filter_v1_1_0", +"ol.parser.ogc.GML", "ol.parser.ogc.GML_v2", "ol.parser.ogc.GML_v3", "ol.parser.ogc.OWSCommon_v1", "ol.parser.ogc.OWSCommon_v1_1_0", "ol.parser.ogc.Versioned", "ol.parser.ogc.WMSCapabilities", "ol.parser.ogc.WMSCapabilities_v1", "ol.parser.ogc.WMSCapabilities_v1_0_0", "ol.parser.ogc.WMSCapabilities_v1_1", "ol.parser.ogc.WMSCapabilities_v1_1_0", "ol.parser.ogc.WMSCapabilities_v1_1_1", "ol.parser.ogc.WMSCapabilities_v1_1_1_WMSC", "ol.parser.ogc.WMSCapabilities_v1_3_0", "ol.parser.ogc.WMTSCapabilities", +"ol.parser.ogc.WMTSCapabilities_v1_0_0", "ol.parser.polyline", "ol.proj", "ol.proj.CH", "ol.proj.EPSG2056", "ol.proj.EPSG21781", "ol.proj.EPSG3857", "ol.proj.EPSG4326", "ol.proj.common", "ol.renderer.Layer", "ol.renderer.Map", "ol.renderer.canvas.ImageLayer", "ol.renderer.canvas.Layer", "ol.renderer.canvas.Map", "ol.renderer.canvas.SUPPORTED", "ol.renderer.canvas.TileLayer", "ol.renderer.canvas.VectorLayer", "ol.renderer.canvas.VectorRenderer", "ol.renderer.dom.ImageLayer", "ol.renderer.dom.Layer", +"ol.renderer.dom.Map", "ol.renderer.dom.SUPPORTED", "ol.renderer.dom.TileLayer", "ol.renderer.webgl.ImageLayer", "ol.renderer.webgl.Layer", "ol.renderer.webgl.Map", "ol.renderer.webgl.SUPPORTED", "ol.renderer.webgl.TileLayer", "ol.renderer.webgl.VectorLayer2", "ol.renderer.webgl.map.shader.Color", "ol.renderer.webgl.map.shader.Default", "ol.renderer.webgl.tilelayer.shader", "ol.renderer.webgl.vectorlayer2.shader.LineStringCollection", "ol.renderer.webgl.vectorlayer2.shader.PointCollection", "ol.size", +"ol.source.BingMaps", "ol.source.FeatureInfoSource", "ol.source.Image", "ol.source.ImageStatic", "ol.source.ImageWMS", "ol.source.MapQuestOSM", "ol.source.MapQuestOpenAerial", "ol.source.OSM", "ol.source.Source", "ol.source.Stamen", "ol.source.Tile", "ol.source.TileDebug", "ol.source.TileImage", "ol.source.TileJSON", "ol.source.TileOptions", "ol.source.TileWMS", "ol.source.Vector", "ol.source.Vector2", "ol.source.WMSGetFeatureInfoMethod", "ol.source.WMTS", "ol.source.WMTSRequestEncoding", "ol.source.XYZ", +"ol.source.wms", "ol.sphere.NORMAL", "ol.sphere.WGS84", "ol.structs.Buffer", "ol.structs.IntegerSet", "ol.structs.LRUCache", "ol.structs.PriorityQueue", "ol.structs.RTree", "ol.style", "ol.style.Fill", "ol.style.Icon", "ol.style.IconLiteral", "ol.style.LineLiteral", "ol.style.Literal", "ol.style.Point", "ol.style.PointLiteral", "ol.style.PolygonLiteral", "ol.style.Rule", "ol.style.Shape", "ol.style.ShapeLiteral", "ol.style.ShapeType", "ol.style.Stroke", "ol.style.StrokeDefaults", "ol.style.Style", +"ol.style.Symbolizer", "ol.style.Text", "ol.style.TextLiteral", "ol.tilegrid.TileGrid", "ol.tilegrid.WMTS", "ol.tilegrid.XYZ", "ol.tilejson", "ol.vec.Mat4", "ol.webgl", "ol.webgl.SUPPORTED", "ol.webgl.WebGLContextEventType", "ol.webgl.shader"]); +goog.addDependency("../build/src/internal/src/types.js", ["ol.AttributionOptions", "ol.DeviceOrientationOptions", "ol.GeolocationOptions", "ol.GetFeatureInfoOptions", "ol.GetFeaturesOptions", "ol.MapOptions", "ol.OverlayOptions", "ol.Proj4jsProjectionOptions", "ol.ProjectionOptions", "ol.View2DOptions", "ol.animation.BounceOptions", "ol.animation.PanOptions", "ol.animation.RotateOptions", "ol.animation.ZoomOptions", "ol.control.AttributionOptions", "ol.control.ControlOptions", "ol.control.DefaultsOptions", +"ol.control.FullScreenOptions", "ol.control.LogoOptions", "ol.control.MousePositionOptions", "ol.control.ScaleLineOptions", "ol.control.ZoomOptions", "ol.control.ZoomSliderOptions", "ol.control.ZoomToExtentOptions", "ol.interaction.DefaultsOptions", "ol.interaction.DoubleClickZoomOptions", "ol.interaction.DragPanOptions", "ol.interaction.DragRotateAndZoomOptions", "ol.interaction.DragRotateOptions", "ol.interaction.DragZoomOptions", "ol.interaction.KeyboardPanOptions", "ol.interaction.KeyboardZoomOptions", +"ol.interaction.ModifyOptions", "ol.interaction.SelectOptions", "ol.interaction.TouchPanOptions", "ol.interaction.TouchRotateOptions", "ol.layer.BaseOptions", "ol.layer.GroupOptions", "ol.layer.LayerOptions", "ol.layer.TileOptions", "ol.layer.VectorLayerOptions", "ol.parser.GMLOptions", "ol.parser.GMLReadOptions", "ol.parser.GMLWriteOptions", "ol.parser.GPXOptions", "ol.parser.GPXWriteOptions", "ol.parser.KMLOptions", "ol.source.BingMapsOptions", "ol.source.ImageStaticOptions", "ol.source.ImageWMSOptions", +"ol.source.OSMOptions", "ol.source.SourceOptions", "ol.source.StamenOptions", "ol.source.TileDebugOptions", "ol.source.TileJSONOptions", "ol.source.TileWMSOptions", "ol.source.Vector2Options", "ol.source.VectorOptions", "ol.source.WMSGetFeatureInfoOptions", "ol.source.WMTSOptions", "ol.source.XYZOptions", "ol.style.FillOptions", "ol.style.IconOptions", "ol.style.RuleOptions", "ol.style.ShapeOptions", "ol.style.StrokeOptions", "ol.style.StyleOptions", "ol.style.TextOptions", "ol.tilegrid.TileGridOptions", +"ol.tilegrid.WMTSOptions", "ol.tilegrid.XYZOptions"], []); +goog.addDependency("../src/ol/animation.js", ["ol.animation"], ["ol.PreRenderFunction", "ol.ViewHint", "ol.easing"]); +goog.addDependency("../src/ol/array.js", ["ol.array"], ["goog.array", "goog.asserts"]); +goog.addDependency("../src/ol/attribution.js", ["ol.Attribution"], ["ol.TileRange"]); +goog.addDependency("../src/ol/browserfeature.js", ["ol.BrowserFeature"], []); +goog.addDependency("../src/ol/canvas/canvas.js", ["ol.canvas", "ol.canvas.SUPPORTED"], ["goog.dom", "goog.dom.TagName"]); +goog.addDependency("../src/ol/collection.js", ["ol.Collection", "ol.CollectionEvent", "ol.CollectionEventType"], ["goog.array", "goog.events.Event", "ol.Object"]); +goog.addDependency("../src/ol/color.js", ["ol.Color"], ["goog.color", "goog.math"]); +goog.addDependency("../src/ol/constraints.js", ["ol.Constraints"], ["ol.ResolutionConstraintType", "ol.RotationConstraintType"]); +goog.addDependency("../src/ol/control/attributioncontrol.js", ["ol.control.Attribution"], ["goog.array", "goog.dom", "goog.dom.TagName", "goog.object", "goog.style", "ol.Attribution", "ol.FrameState", "ol.control.Control", "ol.css"]); +goog.addDependency("../src/ol/control/control.js", ["ol.control.Control"], ["goog.array", "goog.dom", "goog.events", "ol.MapEventType", "ol.Object"]); +goog.addDependency("../src/ol/control/controldefaults.js", ["ol.control"], ["ol.Collection", "ol.control.Attribution", "ol.control.Logo", "ol.control.Zoom"]); +goog.addDependency("../src/ol/control/dragboxcontrol.js", ["ol.control.DragBox"], ["goog.asserts", "goog.dom", "goog.dom.TagName", "goog.events", "goog.math.Size", "goog.style", "ol.Coordinate", "ol.MapBrowserEvent", "ol.MapBrowserEvent.EventType", "ol.Pixel", "ol.control.Control"]); +goog.addDependency("../src/ol/control/fullscreencontrol.js", ["ol.control.FullScreen"], ["goog.asserts", "goog.dom", "goog.dom.TagName", "goog.dom.classes", "goog.dom.fullscreen", "goog.dom.fullscreen.EventType", "goog.events", "goog.events.EventType", "ol.control.Control", "ol.css"]); +goog.addDependency("../src/ol/control/logocontrol.js", ["ol.control.Logo"], ["goog.dom", "goog.dom.TagName", "goog.object", "goog.style", "ol.FrameState", "ol.control.Control", "ol.css"]); +goog.addDependency("../src/ol/control/mousepositioncontrol.js", ["ol.control.MousePosition"], ["goog.array", "goog.dom", "goog.dom.TagName", "goog.events", "goog.events.EventType", "goog.style", "ol.CoordinateFormatType", "ol.Object", "ol.Pixel", "ol.Projection", "ol.TransformFunction", "ol.control.Control", "ol.proj"]); +goog.addDependency("../src/ol/control/scalelinecontrol.js", ["ol.control.ScaleLine", "ol.control.ScaleLineProperty", "ol.control.ScaleLineUnits"], ["goog.array", "goog.asserts", "goog.dom", "goog.dom.TagName", "goog.events", "goog.math", "goog.style", "ol.Object", "ol.ProjectionUnits", "ol.TransformFunction", "ol.View2DState", "ol.control.Control", "ol.css", "ol.proj", "ol.sphere.NORMAL"]); +goog.addDependency("../src/ol/control/zoomcontrol.js", ["ol.control.Zoom"], ["goog.dom", "goog.dom.TagName", "goog.events", "goog.events.EventType", "ol.animation", "ol.control.Control", "ol.css", "ol.easing"]); +goog.addDependency("../src/ol/control/zoomslidercontrol.js", ["ol.control.ZoomSlider"], ["goog.array", "goog.asserts", "goog.dom", "goog.dom.TagName", "goog.events", "goog.events.EventType", "goog.fx.Dragger", "goog.fx.Dragger.EventType", "goog.math", "goog.math.Rect", "goog.style", "ol.animation", "ol.control.Control", "ol.css", "ol.easing"]); +goog.addDependency("../src/ol/control/zoomtoextentcontrol.js", ["ol.control.ZoomToExtent"], ["goog.dom", "goog.dom.TagName", "goog.events", "goog.events.EventType", "ol.control.Control", "ol.css"]); +goog.addDependency("../src/ol/coordinate.js", ["ol.Coordinate", "ol.CoordinateArray", "ol.CoordinateFormatType", "ol.coordinate"], ["goog.math"]); +goog.addDependency("../src/ol/css.js", ["ol.css"], []); +goog.addDependency("../src/ol/deviceorientation.js", ["ol.DeviceOrientation", "ol.DeviceOrientation.SUPPORTED", "ol.DeviceOrientationProperty"], ["goog.events", "goog.math", "ol.Object"]); +goog.addDependency("../src/ol/dom/dom.js", ["ol.dom", "ol.dom.BrowserFeature"], ["goog.asserts", "goog.vec.Mat4"]); +goog.addDependency("../src/ol/dom/input.js", ["ol.dom.Input", "ol.dom.InputProperty"], ["goog.events", "goog.events.EventType", "ol.Object"]); +goog.addDependency("../src/ol/easing.js", ["ol.easing"], ["goog.fx.easing"]); +goog.addDependency("../src/ol/ellipsoid/bessel1841ellipsoid.js", ["ol.ellipsoid.BESSEL1841"], ["ol.Ellipsoid"]); +goog.addDependency("../src/ol/ellipsoid/ellipsoid.js", ["ol.Ellipsoid"], ["goog.math", "ol.Coordinate"]); +goog.addDependency("../src/ol/ellipsoid/wgs84ellipsoid.js", ["ol.ellipsoid.WGS84"], ["ol.Ellipsoid"]); +goog.addDependency("../src/ol/expr/expression.js", ["ol.expr", "ol.expr.functions"], ["ol.Extent", "ol.Feature", "ol.expr.Call", "ol.expr.Expression", "ol.expr.Identifier", "ol.expr.Parser", "ol.extent", "ol.geom.GeometryType"]); +goog.addDependency("../src/ol/expr/expressions.js", ["ol.expr.Call", "ol.expr.Comparison", "ol.expr.ComparisonOp", "ol.expr.Expression", "ol.expr.Identifier", "ol.expr.Literal", "ol.expr.Logical", "ol.expr.LogicalOp", "ol.expr.Math", "ol.expr.MathOp", "ol.expr.Member", "ol.expr.Not"], []); +goog.addDependency("../src/ol/expr/lexer.js", ["ol.expr.Char", "ol.expr.Lexer", "ol.expr.Token", "ol.expr.TokenType", "ol.expr.UnexpectedToken"], ["goog.asserts", "goog.debug.Error"]); +goog.addDependency("../src/ol/expr/parser.js", ["ol.expr.Parser"], ["goog.asserts", "ol.expr.Call", "ol.expr.Comparison", "ol.expr.ComparisonOp", "ol.expr.Expression", "ol.expr.Identifier", "ol.expr.Lexer", "ol.expr.Literal", "ol.expr.Logical", "ol.expr.LogicalOp", "ol.expr.Math", "ol.expr.MathOp", "ol.expr.Member", "ol.expr.Not", "ol.expr.Token", "ol.expr.TokenType", "ol.expr.UnexpectedToken"]); +goog.addDependency("../src/ol/extent.js", ["ol.Extent", "ol.extent"], ["goog.asserts", "ol.Coordinate", "ol.Size", "ol.TransformFunction"]); +goog.addDependency("../src/ol/feature.js", ["ol.Feature"], ["ol.Object", "ol.geom.Geometry", "ol.layer.VectorLayerRenderIntent"]); +goog.addDependency("../src/ol/framestate.js", ["ol.FrameState", "ol.PostRenderFunction", "ol.PreRenderFunction"], ["goog.vec.Mat4", "ol.Attribution", "ol.Extent", "ol.Size", "ol.TileQueue", "ol.TileRange", "ol.View2DState", "ol.layer.Layer", "ol.layer.LayerState"]); +goog.addDependency("../src/ol/geolocation.js", ["ol.Geolocation", "ol.Geolocation.SUPPORTED", "ol.GeolocationProperty"], ["goog.events", "goog.events.EventType", "goog.math", "ol.Coordinate", "ol.Object", "ol.Projection", "ol.proj"]); +goog.addDependency("../src/ol/geom/abstractcollection.js", ["ol.geom.AbstractCollection"], ["ol.geom.Geometry"]); +goog.addDependency("../src/ol/geom/base.js", ["ol.geom"], ["ol.coordinate"]); +goog.addDependency("../src/ol/geom/geometry.js", ["ol.geom.Geometry", "ol.geom.GeometryType"], ["ol.Extent", "ol.geom.SharedVertices"]); +goog.addDependency("../src/ol/geom/geometrycollection.js", ["ol.geom.GeometryCollection"], ["goog.asserts", "ol.geom.AbstractCollection", "ol.geom.Geometry", "ol.geom.GeometryType"]); +goog.addDependency("../src/ol/geom/linearring.js", ["ol.geom.LinearRing"], ["ol.CoordinateArray", "ol.geom.GeometryType", "ol.geom.LineString", "ol.geom.SharedVertices"]); +goog.addDependency("../src/ol/geom/linestring.js", ["ol.geom.LineString"], ["goog.asserts", "ol.CoordinateArray", "ol.geom", "ol.geom.Geometry", "ol.geom.GeometryType", "ol.geom.SharedVertices"]); +goog.addDependency("../src/ol/geom/multilinestring.js", ["ol.geom.MultiLineString"], ["goog.asserts", "ol.CoordinateArray", "ol.geom.AbstractCollection", "ol.geom.GeometryType", "ol.geom.LineString", "ol.geom.SharedVertices"]); +goog.addDependency("../src/ol/geom/multipoint.js", ["ol.geom.MultiPoint"], ["goog.asserts", "ol.CoordinateArray", "ol.geom.AbstractCollection", "ol.geom.GeometryType", "ol.geom.Point", "ol.geom.SharedVertices"]); +goog.addDependency("../src/ol/geom/multipolygon.js", ["ol.geom.MultiPolygon"], ["goog.asserts", "ol.CoordinateArray", "ol.geom.AbstractCollection", "ol.geom.GeometryType", "ol.geom.Polygon", "ol.geom.SharedVertices"]); +goog.addDependency("../src/ol/geom/point.js", ["ol.geom.Point"], ["goog.asserts", "ol.Coordinate", "ol.geom.Geometry", "ol.geom.GeometryType", "ol.geom.SharedVertices"]); +goog.addDependency("../src/ol/geom/polygon.js", ["ol.geom.Polygon"], ["goog.asserts", "ol.CoordinateArray", "ol.extent", "ol.geom.Geometry", "ol.geom.GeometryType", "ol.geom.LinearRing", "ol.geom.SharedVertices"]); +goog.addDependency("../src/ol/geom/sharedvertices.js", ["ol.geom.SharedVertices"], ["goog.asserts", "ol.Coordinate", "ol.CoordinateArray"]); +goog.addDependency("../src/ol/geom2/geom2.js", ["ol.geom2"], ["goog.asserts", "ol.Extent"]); +goog.addDependency("../src/ol/geom2/linestringcollection.js", ["ol.geom2.LineString", "ol.geom2.LineStringCollection"], ["goog.array", "goog.asserts", "goog.object", "ol.geom2", "ol.structs.Buffer"]); +goog.addDependency("../src/ol/geom2/pointcollection.js", ["ol.geom2.Point", "ol.geom2.PointCollection"], ["goog.asserts", "ol.Extent", "ol.geom2", "ol.structs.Buffer"]); +goog.addDependency("../src/ol/image.js", ["ol.Image", "ol.ImageState"], ["goog.array", "goog.asserts", "goog.events", "goog.events.EventTarget", "goog.events.EventType", "goog.object", "ol.Attribution", "ol.Extent"]); +goog.addDependency("../src/ol/imagetile.js", ["ol.ImageTile"], ["goog.array", "goog.asserts", "goog.events", "goog.events.EventType", "goog.object", "ol.Tile", "ol.TileCoord", "ol.TileState"]); +goog.addDependency("../src/ol/imageurlfunction.js", ["ol.ImageUrlFunction", "ol.ImageUrlFunctionType"], ["ol.Size"]); +goog.addDependency("../src/ol/interaction/condition.js", ["ol.interaction.ConditionType", "ol.interaction.condition"], ["goog.dom.TagName", "goog.events.EventType", "goog.functions"]); +goog.addDependency("../src/ol/interaction/doubleclickzoominteraction.js", ["ol.interaction.DoubleClickZoom"], ["goog.asserts", "ol.MapBrowserEvent", "ol.MapBrowserEvent.EventType", "ol.interaction.Interaction"]); +goog.addDependency("../src/ol/interaction/draginteraction.js", ["ol.interaction.Drag"], ["goog.asserts", "goog.events.BrowserEvent", "goog.functions", "ol.Coordinate", "ol.MapBrowserEvent", "ol.MapBrowserEvent.EventType", "ol.ViewHint", "ol.interaction.Interaction"]); +goog.addDependency("../src/ol/interaction/dragpaninteraction.js", ["ol.interaction.DragPan"], ["goog.asserts", "ol.Kinetic", "ol.PreRenderFunction", "ol.View2D", "ol.coordinate", "ol.interaction.ConditionType", "ol.interaction.Drag", "ol.interaction.condition"]); +goog.addDependency("../src/ol/interaction/dragrotateandzoominteraction.js", ["ol.interaction.DragRotateAndZoom"], ["goog.asserts", "goog.math.Vec2", "ol.interaction.ConditionType", "ol.interaction.Drag", "ol.interaction.Interaction", "ol.interaction.condition"]); +goog.addDependency("../src/ol/interaction/dragrotateinteraction.js", ["ol.interaction.DragRotate"], ["goog.asserts", "ol.interaction.ConditionType", "ol.interaction.Drag", "ol.interaction.Interaction", "ol.interaction.condition"]); +goog.addDependency("../src/ol/interaction/dragzoominteraction.js", ["ol.interaction.DragZoom"], ["goog.asserts", "ol.Size", "ol.View2D", "ol.control.DragBox", "ol.extent", "ol.interaction.ConditionType", "ol.interaction.Drag", "ol.interaction.condition"]); +goog.addDependency("../src/ol/interaction/interaction.js", ["ol.interaction.Interaction"], ["ol.MapBrowserEvent", "ol.animation", "ol.easing"]); +goog.addDependency("../src/ol/interaction/interactiondefaults.js", ["ol.interaction"], ["ol.Collection", "ol.Kinetic", "ol.interaction.DoubleClickZoom", "ol.interaction.DragPan", "ol.interaction.DragRotate", "ol.interaction.DragZoom", "ol.interaction.KeyboardPan", "ol.interaction.KeyboardZoom", "ol.interaction.MouseWheelZoom", "ol.interaction.TouchPan", "ol.interaction.TouchRotate", "ol.interaction.TouchZoom"]); +goog.addDependency("../src/ol/interaction/keyboardpaninteraction.js", ["ol.interaction.KeyboardPan"], ["goog.asserts", "goog.events.KeyCodes", "goog.events.KeyHandler.EventType", "goog.functions", "ol.View2D", "ol.coordinate", "ol.interaction.ConditionType", "ol.interaction.Interaction", "ol.interaction.condition"]); +goog.addDependency("../src/ol/interaction/keyboardzoominteraction.js", ["ol.interaction.KeyboardZoom"], ["goog.asserts", "goog.events.KeyHandler.EventType", "goog.functions", "ol.interaction.ConditionType", "ol.interaction.Interaction", "ol.interaction.condition"]); +goog.addDependency("../src/ol/interaction/modifyinteraction.js", ["ol.interaction.Modify"], ["goog.array", "goog.events", "goog.object", "ol.Feature", "ol.MapBrowserEvent.EventType", "ol.ViewHint", "ol.coordinate", "ol.extent", "ol.geom.AbstractCollection", "ol.geom.LineString", "ol.geom.LinearRing", "ol.geom.Point", "ol.geom.Polygon", "ol.interaction.Drag", "ol.layer.Vector", "ol.layer.VectorLayerEventType", "ol.layer.VectorLayerRenderIntent", "ol.structs.RTree"]); +goog.addDependency("../src/ol/interaction/mousewheelzoominteraction.js", ["ol.interaction.MouseWheelZoom"], ["goog.asserts", "goog.events.MouseWheelEvent", "goog.events.MouseWheelHandler.EventType", "goog.math", "ol.Coordinate", "ol.interaction.Interaction"]); +goog.addDependency("../src/ol/interaction/selectinteraction.js", ["ol.interaction.Select"], ["goog.array", "goog.object", "ol.Feature", "ol.interaction.ConditionType", "ol.interaction.Interaction", "ol.interaction.condition", "ol.layer.Vector", "ol.layer.VectorLayerRenderIntent", "ol.source.Vector"]); +goog.addDependency("../src/ol/interaction/touchinteraction.js", ["ol.interaction.Touch"], ["goog.asserts", "goog.functions", "goog.object", "ol.MapBrowserEvent", "ol.MapBrowserEvent.EventType", "ol.Pixel", "ol.ViewHint", "ol.interaction.Interaction"]); +goog.addDependency("../src/ol/interaction/touchpaninteraction.js", ["ol.interaction.TouchPan"], ["goog.asserts", "ol.Kinetic", "ol.Pixel", "ol.PreRenderFunction", "ol.coordinate", "ol.interaction.Touch"]); +goog.addDependency("../src/ol/interaction/touchrotateinteraction.js", ["ol.interaction.TouchRotate"], ["goog.asserts", "goog.style", "ol.Coordinate", "ol.interaction.Interaction", "ol.interaction.Touch"]); +goog.addDependency("../src/ol/interaction/touchzoominteraction.js", ["ol.interaction.TouchZoom"], ["goog.asserts", "goog.style", "ol.Coordinate", "ol.interaction.Interaction", "ol.interaction.Touch"]); +goog.addDependency("../src/ol/iview.js", ["ol.IView"], ["ol.IView2D", "ol.IView3D"]); +goog.addDependency("../src/ol/iview2d.js", ["ol.IView2D", "ol.View2DState"], ["ol.Coordinate", "ol.Projection"]); +goog.addDependency("../src/ol/iview3d.js", ["ol.IView3D"], []); +goog.addDependency("../src/ol/kinetic.js", ["ol.Kinetic"], ["ol.Coordinate", "ol.PreRenderFunction", "ol.animation"]); +goog.addDependency("../src/ol/layer/imagelayer.js", ["ol.layer.Image"], ["ol.layer.Layer", "ol.source.Image"]); +goog.addDependency("../src/ol/layer/layer.js", ["ol.layer.Layer"], ["goog.asserts", "goog.events", "goog.events.EventType", "goog.object", "ol.layer.Base", "ol.source.Source"]); +goog.addDependency("../src/ol/layer/layerbase.js", ["ol.layer.Base", "ol.layer.LayerProperty", "ol.layer.LayerState"], ["goog.events", "goog.events.EventType", "goog.math", "goog.object", "ol.Object"]); +goog.addDependency("../src/ol/layer/layergroup.js", ["ol.layer.Group"], ["goog.array", "goog.asserts", "goog.events", "goog.events.EventType", "goog.math", "goog.object", "ol.Collection", "ol.CollectionEvent", "ol.CollectionEventType", "ol.Object", "ol.layer.Base"]); +goog.addDependency("../src/ol/layer/tilelayer.js", ["ol.layer.Tile"], ["ol.layer.Layer", "ol.source.Tile"]); +goog.addDependency("../src/ol/layer/vectorlayer.js", ["ol.layer.Vector", "ol.layer.VectorLayerEventType"], ["goog.array", "goog.asserts", "goog.events.EventType", "goog.object", "ol.Feature", "ol.expr", "ol.expr.Literal", "ol.expr.Logical", "ol.expr.LogicalOp", "ol.expr.functions", "ol.extent", "ol.geom.GeometryType", "ol.geom.SharedVertices", "ol.layer.Layer", "ol.proj", "ol.source.Vector", "ol.structs.RTree", "ol.style", "ol.style.Style", "ol.style.TextLiteral"]); +goog.addDependency("../src/ol/layer/vectorlayer2.js", ["ol.layer.Vector2"], ["ol.layer.Layer", "ol.source.Vector2"]); +goog.addDependency("../src/ol/layer/vectorlayerrenderintent.js", ["ol.layer.VectorLayerRenderIntent"], []); +goog.addDependency("../src/ol/map.js", ["ol.Map", "ol.MapProperty", "ol.RendererHint", "ol.RendererHints"], ["goog.Uri.QueryData", "goog.array", "goog.asserts", "goog.async.AnimationDelay", "goog.async.Delay", "goog.debug.Console", "goog.dispose", "goog.dom", "goog.dom.TagName", "goog.dom.ViewportSizeMonitor", "goog.events", "goog.events.BrowserEvent", "goog.events.Event", "goog.events.EventType", "goog.events.KeyHandler", "goog.events.KeyHandler.EventType", "goog.events.MouseWheelHandler", "goog.events.MouseWheelHandler.EventType", +"goog.log", "goog.log.Level", "goog.object", "goog.style", "goog.vec.Mat4", "ol.BrowserFeature", "ol.Collection", "ol.FrameState", "ol.IView", "ol.MapBrowserEvent", "ol.MapBrowserEvent.EventType", "ol.MapBrowserEventHandler", "ol.MapEvent", "ol.MapEventType", "ol.Object", "ol.ObjectEventType", "ol.Pixel", "ol.PostRenderFunction", "ol.PreRenderFunction", "ol.Size", "ol.Tile", "ol.TileQueue", "ol.View", "ol.View2D", "ol.ViewHint", "ol.control", "ol.extent", "ol.interaction", "ol.layer.Base", "ol.layer.Group", +"ol.proj", "ol.proj.common", "ol.renderer.Map", "ol.renderer.canvas.Map", "ol.renderer.canvas.SUPPORTED", "ol.renderer.dom.Map", "ol.renderer.dom.SUPPORTED", "ol.renderer.webgl.Map", "ol.renderer.webgl.SUPPORTED", "ol.structs.PriorityQueue", "ol.vec.Mat4"]); +goog.addDependency("../src/ol/mapbrowserevent.js", ["ol.MapBrowserEvent", "ol.MapBrowserEvent.EventType", "ol.MapBrowserEventHandler"], ["goog.array", "goog.events", "goog.events.BrowserEvent", "goog.events.EventTarget", "goog.events.EventType", "goog.style", "ol.BrowserFeature", "ol.Coordinate", "ol.FrameState", "ol.MapEvent", "ol.Pixel"]); +goog.addDependency("../src/ol/mapevent.js", ["ol.MapEvent", "ol.MapEventType"], ["goog.events.Event", "ol.FrameState"]); +goog.addDependency("../src/ol/math.js", ["ol.math"], ["goog.asserts"]); +goog.addDependency("../src/ol/object.js", ["ol.Object", "ol.ObjectEventType"], ["goog.array", "goog.events", "goog.events.EventTarget", "goog.object"]); +goog.addDependency("../src/ol/ol.js", ["ol"], []); +goog.addDependency("../src/ol/overlay.js", ["ol.Overlay", "ol.OverlayPositioning", "ol.OverlayProperty"], ["goog.asserts", "goog.dom", "goog.dom.TagName", "goog.events", "goog.style", "ol.Coordinate", "ol.Map", "ol.MapEventType", "ol.Object"]); +goog.addDependency("../src/ol/parser/featureparser.js", ["ol.parser.AsyncObjectFeatureParser", "ol.parser.AsyncStringFeatureParser", "ol.parser.DomFeatureParser", "ol.parser.ObjectFeatureParser", "ol.parser.ReadFeaturesOptions", "ol.parser.ReadFeaturesResult", "ol.parser.StringFeatureParser"], ["ol.Feature"]); +goog.addDependency("../src/ol/parser/geojson.js", ["ol.parser.GeoJSON"], ["goog.asserts", "goog.object", "ol.Feature", "ol.geom.Geometry", "ol.geom.GeometryCollection", "ol.geom.GeometryType", "ol.geom.LineString", "ol.geom.MultiLineString", "ol.geom.MultiPoint", "ol.geom.MultiPolygon", "ol.geom.Point", "ol.geom.Polygon", "ol.geom.SharedVertices", "ol.parser.Parser", "ol.parser.ReadFeaturesOptions", "ol.parser.ReadFeaturesResult", "ol.parser.StringFeatureParser"]); +goog.addDependency("../src/ol/parser/gpx.js", ["ol.parser.GPX"], ["goog.dom.xml", "ol.Feature", "ol.geom.GeometryType", "ol.geom.LineString", "ol.geom.MultiLineString", "ol.geom.Point", "ol.geom.Polygon", "ol.parser.DomFeatureParser", "ol.parser.ObjectFeatureParser", "ol.parser.ReadFeaturesOptions", "ol.parser.StringFeatureParser", "ol.parser.XML"]); +goog.addDependency("../src/ol/parser/kml.js", ["ol.parser.KML"], ["goog.array", "goog.async.Deferred", "goog.async.DeferredList", "goog.date", "goog.dispose", "goog.dom.xml", "goog.events", "goog.net.EventType", "goog.net.XhrIo", "goog.object", "goog.string", "ol.Feature", "ol.geom.AbstractCollection", "ol.geom.GeometryCollection", "ol.geom.GeometryType", "ol.geom.LineString", "ol.geom.MultiLineString", "ol.geom.MultiPoint", "ol.geom.MultiPolygon", "ol.geom.Point", "ol.geom.Polygon", "ol.geom.SharedVertices", +"ol.parser.AsyncObjectFeatureParser", "ol.parser.AsyncStringFeatureParser", "ol.parser.DomFeatureParser", "ol.parser.ReadFeaturesOptions", "ol.parser.StringFeatureParser", "ol.parser.XML", "ol.style.Fill", "ol.style.Icon", "ol.style.Stroke"]); +goog.addDependency("../src/ol/parser/ogc/exceptionreport.js", ["ol.parser.ogc.ExceptionReport"], ["goog.dom.xml", "ol.parser.XML"]); +goog.addDependency("../src/ol/parser/ogc/filter.js", ["ol.parser.ogc.Filter"], ["ol.parser.ogc.Filter_v1_0_0", "ol.parser.ogc.Filter_v1_1_0", "ol.parser.ogc.Versioned"]); +goog.addDependency("../src/ol/parser/ogc/filter_v1.js", ["ol.parser.ogc.Filter_v1"], ["goog.array", "goog.asserts", "goog.dom.xml", "goog.object", "goog.string", "ol.expr", "ol.expr.Call", "ol.expr.Comparison", "ol.expr.ComparisonOp", "ol.expr.Identifier", "ol.expr.Literal", "ol.expr.Logical", "ol.expr.LogicalOp", "ol.expr.Not", "ol.expr.functions", "ol.parser.XML"]); +goog.addDependency("../src/ol/parser/ogc/filter_v1_0_0.js", ["ol.parser.ogc.Filter_v1_0_0"], ["goog.asserts", "goog.object", "ol.expr", "ol.expr.Call", "ol.expr.Comparison", "ol.expr.ComparisonOp", "ol.expr.Identifier", "ol.expr.Literal", "ol.expr.functions", "ol.geom.Geometry", "ol.parser.ogc.Filter_v1", "ol.parser.ogc.GML_v2"]); +goog.addDependency("../src/ol/parser/ogc/filter_v1_1_0.js", ["ol.parser.ogc.Filter_v1_1_0"], ["goog.asserts", "goog.object", "ol.expr", "ol.expr.Call", "ol.expr.Comparison", "ol.expr.ComparisonOp", "ol.expr.Identifier", "ol.expr.Literal", "ol.expr.functions", "ol.geom.Geometry", "ol.parser.ogc.Filter_v1", "ol.parser.ogc.GML_v3"]); +goog.addDependency("../src/ol/parser/ogc/gml.js", ["ol.parser.ogc.GML"], ["goog.array", "goog.asserts", "goog.dom.xml", "ol.Feature", "ol.geom.Geometry", "ol.geom.GeometryCollection", "ol.geom.GeometryType", "ol.geom.LineString", "ol.geom.LinearRing", "ol.geom.MultiLineString", "ol.geom.MultiPoint", "ol.geom.MultiPolygon", "ol.geom.Point", "ol.geom.Polygon", "ol.parser.StringFeatureParser", "ol.parser.XML", "ol.proj"]); +goog.addDependency("../src/ol/parser/ogc/gml_v2.js", ["ol.parser.ogc.GML_v2"], ["goog.array", "goog.object", "ol.parser.ogc.GML"]); +goog.addDependency("../src/ol/parser/ogc/gml_v3.js", ["ol.parser.ogc.GML_v3"], ["goog.array", "goog.functions", "goog.object", "ol.geom.GeometryType", "ol.parser.ogc.GML"]); +goog.addDependency("../src/ol/parser/ogc/owscommon_v1.js", ["ol.parser.ogc.OWSCommon_v1"], ["ol.parser.XML"]); +goog.addDependency("../src/ol/parser/ogc/owscommon_v1_1_0.js", ["ol.parser.ogc.OWSCommon_v1_1_0"], ["goog.object", "ol.parser.ogc.OWSCommon_v1"]); +goog.addDependency("../src/ol/parser/ogc/versioned.js", ["ol.parser.ogc.Versioned"], ["goog.dom.xml", "ol.parser.ogc.ExceptionReport"]); +goog.addDependency("../src/ol/parser/ogc/wmscapabilities.js", ["ol.parser.ogc.WMSCapabilities"], ["ol.parser.ogc.Versioned", "ol.parser.ogc.WMSCapabilities_v1_0_0", "ol.parser.ogc.WMSCapabilities_v1_1_0", "ol.parser.ogc.WMSCapabilities_v1_1_1", "ol.parser.ogc.WMSCapabilities_v1_1_1_WMSC", "ol.parser.ogc.WMSCapabilities_v1_3_0"]); +goog.addDependency("../src/ol/parser/ogc/wmscapabilities_v1.js", ["ol.parser.ogc.WMSCapabilities_v1"], ["goog.dom.xml", "goog.object", "ol.parser.XML"]); +goog.addDependency("../src/ol/parser/ogc/wmscapabilities_v1_0_0.js", ["ol.parser.ogc.WMSCapabilities_v1_0_0"], ["goog.object", "goog.string", "ol.parser.ogc.WMSCapabilities_v1_1_0"]); +goog.addDependency("../src/ol/parser/ogc/wmscapabilities_v1_1.js", ["ol.parser.ogc.WMSCapabilities_v1_1"], ["goog.object", "ol.parser.ogc.WMSCapabilities_v1"]); +goog.addDependency("../src/ol/parser/ogc/wmscapabilities_v1_1_0.js", ["ol.parser.ogc.WMSCapabilities_v1_1_0"], ["goog.object", "ol.parser.ogc.WMSCapabilities_v1_1"]); +goog.addDependency("../src/ol/parser/ogc/wmscapabilities_v1_1_1.js", ["ol.parser.ogc.WMSCapabilities_v1_1_1"], ["goog.object", "ol.parser.ogc.WMSCapabilities_v1_1"]); +goog.addDependency("../src/ol/parser/ogc/wmscapabilities_v1_1_1_WMSC.js", ["ol.parser.ogc.WMSCapabilities_v1_1_1_WMSC"], ["goog.object", "ol.parser.ogc.WMSCapabilities_v1_1_1"]); +goog.addDependency("../src/ol/parser/ogc/wmscapabilities_v1_3_0.js", ["ol.parser.ogc.WMSCapabilities_v1_3_0"], ["goog.object", "ol.parser.ogc.WMSCapabilities_v1"]); +goog.addDependency("../src/ol/parser/ogc/wmtscapabilities.js", ["ol.parser.ogc.WMTSCapabilities"], ["ol.parser.ogc.Versioned", "ol.parser.ogc.WMTSCapabilities_v1_0_0"]); +goog.addDependency("../src/ol/parser/ogc/wmtscapabilities_v1_0_0.js", ["ol.parser.ogc.WMTSCapabilities_v1_0_0"], ["goog.dom.xml", "ol.coordinate", "ol.parser.XML", "ol.parser.ogc.OWSCommon_v1_1_0", "ol.proj"]); +goog.addDependency("../src/ol/parser/parser.js", ["ol.parser.Parser"], []); +goog.addDependency("../src/ol/parser/polyline.js", ["ol.parser.polyline"], []); +goog.addDependency("../src/ol/parser/topojson.js", ["ol.parser.TopoJSON"], ["ol.Coordinate", "ol.CoordinateArray", "ol.Feature", "ol.geom.GeometryType", "ol.geom.LineString", "ol.geom.MultiLineString", "ol.geom.MultiPoint", "ol.geom.MultiPolygon", "ol.geom.Point", "ol.geom.Polygon", "ol.parser.Parser", "ol.parser.ReadFeaturesOptions", "ol.parser.StringFeatureParser"]); +goog.addDependency("../src/ol/parser/wkt.js", ["ol.parser.WKT"], ["goog.array", "goog.string", "ol.geom.Geometry", "ol.geom.GeometryCollection", "ol.geom.LineString", "ol.geom.MultiLineString", "ol.geom.MultiPoint", "ol.geom.MultiPolygon", "ol.geom.Point", "ol.geom.Polygon", "ol.parser.Parser"]); +goog.addDependency("../src/ol/parser/xml.js", ["ol.parser.XML"], ["goog.dom.xml", "ol.parser.Parser"]); +goog.addDependency("../src/ol/pixel.js", ["ol.Pixel"], []); +goog.addDependency("../src/ol/proj/chprojection.js", ["ol.proj.CH", "ol.proj.EPSG2056", "ol.proj.EPSG21781"], ["goog.asserts", "goog.math", "ol.Projection", "ol.ProjectionUnits", "ol.ellipsoid.BESSEL1841", "ol.proj", "ol.proj.EPSG4326"]); +goog.addDependency("../src/ol/proj/common.js", ["ol.proj.common"], ["ol.proj", "ol.proj.EPSG3857", "ol.proj.EPSG4326"]); +goog.addDependency("../src/ol/proj/epsg3857projection.js", ["ol.proj.EPSG3857"], ["goog.array", "goog.asserts", "ol.Projection", "ol.ProjectionUnits", "ol.math", "ol.proj"]); +goog.addDependency("../src/ol/proj/epsg4326projection.js", ["ol.proj.EPSG4326"], ["ol.Projection", "ol.ProjectionUnits", "ol.proj"]); +goog.addDependency("../src/ol/proj/proj.js", ["ol.Projection", "ol.ProjectionLike", "ol.ProjectionUnits", "ol.proj"], ["goog.array", "goog.asserts", "goog.object", "ol.Extent", "ol.TransformFunction", "ol.sphere.NORMAL"]); +goog.addDependency("../src/ol/renderer/canvas/canvasimagelayerrenderer.js", ["ol.renderer.canvas.ImageLayer"], ["goog.events", "goog.events.EventType", "goog.vec.Mat4", "ol.Image", "ol.ImageState", "ol.ViewHint", "ol.layer.Image", "ol.renderer.Map", "ol.renderer.canvas.Layer"]); +goog.addDependency("../src/ol/renderer/canvas/canvaslayerrenderer.js", ["ol.renderer.canvas.Layer"], ["ol.layer.Layer", "ol.renderer.Layer"]); +goog.addDependency("../src/ol/renderer/canvas/canvasmaprenderer.js", ["ol.renderer.canvas.Map"], ["goog.asserts", "goog.dom", "goog.dom.TagName", "goog.style", "goog.vec.Mat4", "ol.Size", "ol.css", "ol.layer.Image", "ol.layer.Tile", "ol.layer.Vector", "ol.renderer.Map", "ol.renderer.canvas.ImageLayer", "ol.renderer.canvas.TileLayer", "ol.renderer.canvas.VectorLayer", "ol.size"]); +goog.addDependency("../src/ol/renderer/canvas/canvasrenderer.js", ["ol.renderer.canvas.SUPPORTED"], ["ol.canvas.SUPPORTED"]); +goog.addDependency("../src/ol/renderer/canvas/canvastilelayerrenderer.js", ["ol.renderer.canvas.TileLayer"], ["goog.array", "goog.asserts", "goog.dom", "goog.dom.TagName", "goog.object", "goog.vec.Mat4", "ol.Size", "ol.Tile", "ol.TileCoord", "ol.TileRange", "ol.TileState", "ol.extent", "ol.layer.Tile", "ol.renderer.Map", "ol.renderer.canvas.Layer"]); +goog.addDependency("../src/ol/renderer/canvas/canvasvectorlayerrenderer.js", ["ol.renderer.canvas.VectorLayer"], ["goog.dom", "goog.dom.TagName", "goog.events", "goog.object", "goog.vec.Mat4", "ol.Pixel", "ol.TileCache", "ol.TileCoord", "ol.TileRange", "ol.ViewHint", "ol.extent", "ol.geom.GeometryType", "ol.layer.Vector", "ol.layer.VectorLayerEventType", "ol.renderer.canvas.Layer", "ol.renderer.canvas.VectorRenderer", "ol.tilegrid.TileGrid"]); +goog.addDependency("../src/ol/renderer/canvas/canvasvectorrenderer.js", ["ol.renderer.canvas.VectorRenderer"], ["goog.asserts", "goog.dom", "goog.dom.TagName", "goog.events", "goog.events.EventType", "goog.vec.Mat4", "ol.Feature", "ol.geom.AbstractCollection", "ol.geom.Geometry", "ol.geom.GeometryType", "ol.geom.LineString", "ol.geom.MultiLineString", "ol.geom.MultiPoint", "ol.geom.MultiPolygon", "ol.geom.Point", "ol.geom.Polygon", "ol.layer.VectorLayerRenderIntent", "ol.style.IconLiteral", "ol.style.LineLiteral", +"ol.style.Literal", "ol.style.PointLiteral", "ol.style.PolygonLiteral", "ol.style.ShapeLiteral", "ol.style.ShapeType", "ol.style.TextLiteral"]); +goog.addDependency("../src/ol/renderer/dom/domimagelayerrenderer.js", ["ol.renderer.dom.ImageLayer"], ["goog.dom", "goog.dom.TagName", "goog.events", "goog.events.EventType", "goog.vec.Mat4", "ol.Image", "ol.ImageState", "ol.ViewHint", "ol.dom", "ol.layer.Image", "ol.renderer.dom.Layer"]); +goog.addDependency("../src/ol/renderer/dom/domlayerrenderer.js", ["ol.renderer.dom.Layer"], ["goog.dom", "ol.layer.Layer", "ol.renderer.Layer"]); +goog.addDependency("../src/ol/renderer/dom/dommaprenderer.js", ["ol.renderer.dom.Map"], ["goog.asserts", "goog.dom", "goog.dom.TagName", "goog.style", "ol.css", "ol.layer.Image", "ol.layer.Tile", "ol.renderer.Map", "ol.renderer.dom.ImageLayer", "ol.renderer.dom.TileLayer"]); +goog.addDependency("../src/ol/renderer/dom/domrenderer.js", ["ol.renderer.dom.SUPPORTED"], []); +goog.addDependency("../src/ol/renderer/dom/domtilelayerrenderer.js", ["ol.renderer.dom.TileLayer"], ["goog.array", "goog.asserts", "goog.dom", "goog.dom.TagName", "goog.object", "goog.style", "goog.vec.Mat4", "ol.Coordinate", "ol.Tile", "ol.TileCoord", "ol.TileRange", "ol.TileState", "ol.ViewHint", "ol.dom", "ol.extent", "ol.layer.Tile", "ol.renderer.dom.Layer", "ol.tilegrid.TileGrid"]); +goog.addDependency("../src/ol/renderer/layerrenderer.js", ["ol.renderer.Layer"], ["goog.Disposable", "ol.FrameState", "ol.Image", "ol.ImageState", "ol.Tile", "ol.TileRange", "ol.TileState", "ol.layer.Layer", "ol.layer.LayerState", "ol.source.Source", "ol.source.Tile"]); +goog.addDependency("../src/ol/renderer/maprenderer.js", ["ol.renderer.Map"], ["goog.Disposable", "goog.array", "goog.asserts", "goog.dispose", "goog.functions", "goog.object", "goog.vec.Mat4", "ol.FrameState", "ol.layer.Layer", "ol.renderer.Layer"]); +goog.addDependency("../src/ol/renderer/webgl/webglimagelayerrenderer.js", ["ol.renderer.webgl.ImageLayer"], ["goog.asserts", "goog.events", "goog.events.EventType", "goog.vec.Mat4", "goog.webgl", "ol.Coordinate", "ol.Extent", "ol.Image", "ol.ImageState", "ol.ViewHint", "ol.layer.Image", "ol.renderer.webgl.Layer"]); +goog.addDependency("../src/ol/renderer/webgl/webgllayerrenderer.js", ["ol.renderer.webgl.Layer"], ["goog.vec.Mat4", "goog.webgl", "ol.FrameState", "ol.layer.Layer", "ol.renderer.Layer", "ol.vec.Mat4"]); +goog.addDependency("../src/ol/renderer/webgl/webglmapcolorshader.js", ["ol.renderer.webgl.map.shader.Color"], ["ol.webgl.shader"]); +goog.addDependency("../src/ol/renderer/webgl/webglmapdefaultshader.js", ["ol.renderer.webgl.map.shader.Default"], ["ol.webgl.shader"]); +goog.addDependency("../src/ol/renderer/webgl/webglmaprenderer.js", ["ol.renderer.webgl.Map"], ["goog.array", "goog.asserts", "goog.dom", "goog.dom.TagName", "goog.events", "goog.events.Event", "goog.log", "goog.log.Logger", "goog.object", "goog.style", "goog.webgl", "ol.FrameState", "ol.Size", "ol.Tile", "ol.css", "ol.layer.Image", "ol.layer.Tile", "ol.layer.Vector2", "ol.renderer.Map", "ol.renderer.webgl.ImageLayer", "ol.renderer.webgl.TileLayer", "ol.renderer.webgl.VectorLayer2", "ol.renderer.webgl.map.shader.Color", +"ol.renderer.webgl.map.shader.Default", "ol.size", "ol.structs.Buffer", "ol.structs.IntegerSet", "ol.structs.LRUCache", "ol.structs.PriorityQueue", "ol.webgl", "ol.webgl.WebGLContextEventType", "ol.webgl.shader"]); +goog.addDependency("../src/ol/renderer/webgl/webglrenderer.js", ["ol.renderer.webgl.SUPPORTED"], ["ol.webgl.SUPPORTED"]); +goog.addDependency("../src/ol/renderer/webgl/webgltilelayerrenderer.js", ["ol.renderer.webgl.TileLayer"], ["goog.array", "goog.object", "goog.vec.Mat4", "goog.vec.Vec4", "goog.webgl", "ol.Tile", "ol.TileRange", "ol.TileState", "ol.extent", "ol.layer.Tile", "ol.math", "ol.renderer.webgl.Layer", "ol.renderer.webgl.tilelayer.shader", "ol.structs.Buffer"]); +goog.addDependency("../src/ol/renderer/webgl/webgltilelayershader.js", ["ol.renderer.webgl.tilelayer.shader"], ["ol.webgl.shader"]); +goog.addDependency("../src/ol/renderer/webgl/webglvectorlayer2linestringcollectionshader.js", ["ol.renderer.webgl.vectorlayer2.shader.LineStringCollection"], ["ol.webgl.shader"]); +goog.addDependency("../src/ol/renderer/webgl/webglvectorlayer2pointcollectionshader.js", ["ol.renderer.webgl.vectorlayer2.shader.PointCollection"], ["ol.webgl.shader"]); +goog.addDependency("../src/ol/renderer/webgl/webglvectorlayer2renderer.js", ["ol.renderer.webgl.VectorLayer2"], ["goog.vec.Mat4", "goog.webgl", "ol.math", "ol.renderer.webgl.Layer", "ol.renderer.webgl.vectorlayer2.shader.LineStringCollection", "ol.renderer.webgl.vectorlayer2.shader.PointCollection"]); +goog.addDependency("../src/ol/resolutionconstraint.js", ["ol.ResolutionConstraint", "ol.ResolutionConstraintType"], ["goog.math", "ol.array"]); +goog.addDependency("../src/ol/rotationconstraint.js", ["ol.RotationConstraint", "ol.RotationConstraintType"], []); +goog.addDependency("../src/ol/size.js", ["ol.Size", "ol.size"], []); +goog.addDependency("../src/ol/source/bingmapssource.js", ["ol.source.BingMaps"], ["goog.Uri", "goog.array", "goog.asserts", "goog.net.Jsonp", "ol.Attribution", "ol.TileRange", "ol.TileUrlFunction", "ol.extent", "ol.proj", "ol.source.TileImage", "ol.tilegrid.XYZ"]); +goog.addDependency("../src/ol/source/debugtilesource.js", ["ol.source.TileDebug"], ["goog.dom", "goog.dom.TagName", "ol.Size", "ol.Tile", "ol.TileCache", "ol.TileCoord", "ol.TileState", "ol.source.Tile", "ol.tilegrid.TileGrid"]); +goog.addDependency("../src/ol/source/featureinfosource.js", ["ol.source.FeatureInfoSource"], []); +goog.addDependency("../src/ol/source/imagesource.js", ["ol.source.Image"], ["goog.array", "goog.asserts", "ol.Attribution", "ol.Extent", "ol.Image", "ol.ImageUrlFunction", "ol.ImageUrlFunctionType", "ol.Projection", "ol.Size", "ol.array", "ol.source.Source"]); +goog.addDependency("../src/ol/source/imagestaticsource.js", ["ol.source.ImageStatic"], ["ol.Image", "ol.ImageUrlFunctionType", "ol.extent", "ol.proj", "ol.source.Image"]); +goog.addDependency("../src/ol/source/imagewmssource.js", ["ol.source.ImageWMS"], ["goog.asserts", "goog.object", "ol.Image", "ol.ImageUrlFunction", "ol.extent", "ol.source.FeatureInfoSource", "ol.source.Image", "ol.source.wms"]); +goog.addDependency("../src/ol/source/mapquestsource.js", ["ol.source.MapQuestOSM", "ol.source.MapQuestOpenAerial"], ["ol.Attribution", "ol.source.OSM", "ol.source.XYZ"]); +goog.addDependency("../src/ol/source/osmsource.js", ["ol.source.OSM"], ["ol.Attribution", "ol.source.XYZ"]); +goog.addDependency("../src/ol/source/source.js", ["ol.source.Source"], ["goog.events.EventTarget", "goog.events.EventType", "goog.functions", "ol.Attribution", "ol.Extent", "ol.proj"]); +goog.addDependency("../src/ol/source/stamensource.js", ["ol.source.Stamen"], ["goog.asserts", "ol.Attribution", "ol.source.OSM", "ol.source.XYZ"]); +goog.addDependency("../src/ol/source/tileimagesource.js", ["ol.source.TileImage"], ["goog.asserts", "ol.Attribution", "ol.Extent", "ol.ImageTile", "ol.Projection", "ol.Tile", "ol.TileCache", "ol.TileCoord", "ol.TileState", "ol.TileUrlFunction", "ol.TileUrlFunctionType", "ol.source.Tile", "ol.tilegrid.TileGrid"]); +goog.addDependency("../src/ol/source/tilejsonsource.js", ["ol.source.TileJSON", "ol.tilejson"], ["goog.asserts", "goog.net.jsloader", "ol.Attribution", "ol.TileRange", "ol.TileUrlFunction", "ol.extent", "ol.proj", "ol.source.TileImage", "ol.tilegrid.XYZ"]); +goog.addDependency("../src/ol/source/tilesource.js", ["ol.source.Tile", "ol.source.TileOptions"], ["goog.functions", "ol.Attribution", "ol.Extent", "ol.Tile", "ol.TileCoord", "ol.TileRange", "ol.source.Source", "ol.tilegrid.TileGrid"]); +goog.addDependency("../src/ol/source/tilewmssource.js", ["ol.source.TileWMS"], ["goog.array", "goog.asserts", "goog.math", "goog.object", "ol.TileCoord", "ol.TileUrlFunction", "ol.extent", "ol.source.FeatureInfoSource", "ol.source.TileImage", "ol.source.wms"]); +goog.addDependency("../src/ol/source/vectorsource.js", ["ol.source.Vector"], ["goog.asserts", "goog.net.XhrIo", "ol.source.Source"]); +goog.addDependency("../src/ol/source/vectorsource2.js", ["ol.source.Vector2"], ["ol.geom2.LineStringCollection", "ol.geom2.PointCollection", "ol.source.Source"]); +goog.addDependency("../src/ol/source/wmssource.js", ["ol.source.WMSGetFeatureInfoMethod", "ol.source.wms"], ["goog.net.XhrIo", "goog.object", "goog.uri.utils"]); +goog.addDependency("../src/ol/source/wmtssource.js", ["ol.source.WMTS", "ol.source.WMTSRequestEncoding"], ["goog.array", "goog.asserts", "goog.math", "goog.object", "goog.uri.utils", "ol.TileCoord", "ol.TileUrlFunction", "ol.TileUrlFunctionType", "ol.extent", "ol.proj", "ol.source.TileImage", "ol.tilegrid.WMTS"]); +goog.addDependency("../src/ol/source/xyzsource.js", ["ol.source.XYZ"], ["ol.Attribution", "ol.TileUrlFunction", "ol.TileUrlFunctionType", "ol.proj", "ol.source.TileImage", "ol.tilegrid.XYZ"]); +goog.addDependency("../src/ol/sphere/normal.js", ["ol.sphere.NORMAL"], ["ol.Sphere"]); +goog.addDependency("../src/ol/sphere/sphere.js", ["ol.Sphere"], ["goog.math"]); +goog.addDependency("../src/ol/sphere/wgs84sphere.js", ["ol.sphere.WGS84"], ["ol.Sphere"]); +goog.addDependency("../src/ol/structs/buffer.js", ["ol.structs.Buffer"], ["goog.array", "goog.asserts", "goog.webgl", "ol.structs.IntegerSet"]); +goog.addDependency("../src/ol/structs/integerset.js", ["ol.structs.IntegerSet"], ["goog.asserts"]); +goog.addDependency("../src/ol/structs/lrucache.js", ["ol.structs.LRUCache"], ["goog.asserts", "goog.object"]); +goog.addDependency("../src/ol/structs/priorityqueue.js", ["ol.structs.PriorityQueue"], ["goog.asserts", "goog.object"]); +goog.addDependency("../src/ol/structs/rtree.js", ["ol.structs.RTree"], ["goog.array", "ol.extent"]); +goog.addDependency("../src/ol/style/fillsymbolizer.js", ["ol.style.Fill"], ["goog.asserts", "ol.Feature", "ol.expr", "ol.expr.Expression", "ol.expr.Literal", "ol.geom.GeometryType", "ol.style.PolygonLiteral", "ol.style.Symbolizer"]); +goog.addDependency("../src/ol/style/iconliteral.js", ["ol.style.IconLiteral"], ["ol.style.PointLiteral"]); +goog.addDependency("../src/ol/style/iconsymbolizer.js", ["ol.style.Icon"], ["goog.asserts", "ol.Feature", "ol.expr", "ol.expr.Expression", "ol.expr.Literal", "ol.geom.GeometryType", "ol.style.IconLiteral", "ol.style.Point"]); +goog.addDependency("../src/ol/style/lineliteral.js", ["ol.style.LineLiteral"], ["goog.asserts", "ol.style.Literal"]); +goog.addDependency("../src/ol/style/literal.js", ["ol.style.Literal"], []); +goog.addDependency("../src/ol/style/pointliteral.js", ["ol.style.PointLiteral"], ["ol.style.Literal"]); +goog.addDependency("../src/ol/style/pointsymbolizer.js", ["ol.style.Point"], ["ol.style.Symbolizer"]); +goog.addDependency("../src/ol/style/polygonliteral.js", ["ol.style.PolygonLiteral"], ["goog.asserts", "ol.style.Literal"]); +goog.addDependency("../src/ol/style/rule.js", ["ol.style.Rule"], ["goog.asserts", "ol.Feature", "ol.expr", "ol.expr.Expression", "ol.style.Symbolizer"]); +goog.addDependency("../src/ol/style/shapeliteral.js", ["ol.style.ShapeLiteral", "ol.style.ShapeType"], ["goog.asserts", "ol.style.PointLiteral"]); +goog.addDependency("../src/ol/style/shapesymbolizer.js", ["ol.style.Shape"], ["goog.asserts", "ol.Feature", "ol.expr", "ol.expr.Expression", "ol.expr.Literal", "ol.geom.GeometryType", "ol.style.Fill", "ol.style.Point", "ol.style.ShapeLiteral", "ol.style.ShapeType", "ol.style.Stroke"]); +goog.addDependency("../src/ol/style/strokesymbolizer.js", ["ol.style.Stroke", "ol.style.StrokeDefaults"], ["goog.asserts", "ol.Feature", "ol.expr", "ol.expr.Expression", "ol.expr.Literal", "ol.geom.GeometryType", "ol.style.LineLiteral", "ol.style.PolygonLiteral", "ol.style.Symbolizer"]); +goog.addDependency("../src/ol/style/style.js", ["ol.style", "ol.style.Style"], ["goog.object", "ol.Feature", "ol.expr.Call", "ol.expr.Identifier", "ol.expr.Literal", "ol.expr.functions", "ol.geom.GeometryType", "ol.style.Fill", "ol.style.Literal", "ol.style.PolygonLiteral", "ol.style.Rule", "ol.style.Shape", "ol.style.Stroke", "ol.style.Symbolizer"]); +goog.addDependency("../src/ol/style/symbolizer.js", ["ol.style.Symbolizer"], ["ol.Feature", "ol.style.Literal"]); +goog.addDependency("../src/ol/style/textliteral.js", ["ol.style.TextLiteral"], ["goog.asserts", "ol.style.Literal"]); +goog.addDependency("../src/ol/style/textsymbolizer.js", ["ol.style.Text"], ["goog.asserts", "ol.Feature", "ol.expr", "ol.expr.Expression", "ol.expr.Literal", "ol.style.Symbolizer", "ol.style.TextLiteral"]); +goog.addDependency("../src/ol/tile.js", ["ol.Tile", "ol.TileState"], ["goog.events", "goog.events.EventTarget", "goog.events.EventType", "ol.TileCoord"]); +goog.addDependency("../src/ol/tilecache.js", ["ol.TileCache"], ["goog.asserts", "ol.Tile", "ol.TileCoord", "ol.TileRange", "ol.structs.LRUCache"]); +goog.addDependency("../src/ol/tilecoord.js", ["ol.TileCoord"], ["goog.array"]); +goog.addDependency("../src/ol/tilegrid/tilegrid.js", ["ol.tilegrid.TileGrid"], ["goog.array", "goog.asserts", "ol.Coordinate", "ol.Projection", "ol.ProjectionUnits", "ol.Size", "ol.TileCoord", "ol.TileRange", "ol.array", "ol.extent"]); +goog.addDependency("../src/ol/tilegrid/wmtstilegrid.js", ["ol.tilegrid.WMTS"], ["goog.array", "goog.asserts", "ol.proj", "ol.tilegrid.TileGrid"]); +goog.addDependency("../src/ol/tilegrid/xyztilegrid.js", ["ol.tilegrid.XYZ"], ["goog.math", "ol.TileCoord", "ol.TileRange", "ol.proj", "ol.proj.EPSG3857", "ol.tilegrid.TileGrid"]); +goog.addDependency("../src/ol/tilequeue.js", ["ol.TilePriorityFunction", "ol.TileQueue"], ["goog.events", "goog.events.EventType", "ol.Coordinate", "ol.Tile", "ol.structs.PriorityQueue"]); +goog.addDependency("../src/ol/tilerange.js", ["ol.TileRange"], ["goog.asserts", "ol.Size", "ol.TileCoord"]); +goog.addDependency("../src/ol/tileurlfunction.js", ["ol.TileUrlFunction", "ol.TileUrlFunctionType"], ["goog.array", "goog.math", "ol.TileCoord", "ol.extent"]); +goog.addDependency("../src/ol/transformfunction.js", ["ol.TransformFunction"], []); +goog.addDependency("../src/ol/vec/mat4.js", ["ol.vec.Mat4"], ["goog.vec.Mat4"]); +goog.addDependency("../src/ol/view.js", ["ol.View", "ol.ViewHint"], ["goog.array", "goog.asserts", "ol.IView", "ol.Object"]); +goog.addDependency("../src/ol/view2d.js", ["ol.View2D", "ol.View2DProperty"], ["goog.asserts", "ol.Constraints", "ol.IView2D", "ol.IView3D", "ol.Projection", "ol.ProjectionUnits", "ol.ResolutionConstraint", "ol.RotationConstraint", "ol.RotationConstraintType", "ol.Size", "ol.View", "ol.coordinate", "ol.extent", "ol.proj"]); +goog.addDependency("../src/ol/webgl/shader.js", ["ol.webgl.shader"], ["goog.functions", "goog.webgl", "ol.webgl"]); +goog.addDependency("../src/ol/webgl/webgl.js", ["ol.webgl", "ol.webgl.SUPPORTED", "ol.webgl.WebGLContextEventType"], ["goog.dom", "goog.dom.TagName"]); +goog.addDependency("/closure/goog/a11y/aria/announcer.js", ["goog.a11y.aria.Announcer"], ["goog.Disposable", "goog.a11y.aria", "goog.a11y.aria.LivePriority", "goog.a11y.aria.State", "goog.dom", "goog.object"]); +goog.addDependency("/closure/goog/a11y/aria/aria.js", ["goog.a11y.aria"], ["goog.a11y.aria.Role", "goog.a11y.aria.State", "goog.a11y.aria.datatables", "goog.array", "goog.asserts", "goog.dom", "goog.dom.TagName", "goog.object", "goog.string"]); +goog.addDependency("/closure/goog/a11y/aria/attributes.js", ["goog.a11y.aria.AutoCompleteValues", "goog.a11y.aria.CheckedValues", "goog.a11y.aria.DropEffectValues", "goog.a11y.aria.ExpandedValues", "goog.a11y.aria.GrabbedValues", "goog.a11y.aria.InvalidValues", "goog.a11y.aria.LivePriority", "goog.a11y.aria.OrientationValues", "goog.a11y.aria.PressedValues", "goog.a11y.aria.RelevantValues", "goog.a11y.aria.SelectedValues", "goog.a11y.aria.SortValues", "goog.a11y.aria.State"], []); +goog.addDependency("/closure/goog/a11y/aria/datatables.js", ["goog.a11y.aria.datatables"], ["goog.a11y.aria.State", "goog.object"]); +goog.addDependency("/closure/goog/a11y/aria/roles.js", ["goog.a11y.aria.Role"], []); +goog.addDependency("/closure/goog/array/array.js", ["goog.array", "goog.array.ArrayLike"], ["goog.asserts"]); +goog.addDependency("/closure/goog/asserts/asserts.js", ["goog.asserts", "goog.asserts.AssertionError"], ["goog.debug.Error", "goog.string"]); +goog.addDependency("/closure/goog/async/animationdelay.js", ["goog.async.AnimationDelay"], ["goog.Disposable", "goog.events", "goog.functions"]); +goog.addDependency("/closure/goog/async/conditionaldelay.js", ["goog.async.ConditionalDelay"], ["goog.Disposable", "goog.async.Delay"]); +goog.addDependency("/closure/goog/async/delay.js", ["goog.Delay", "goog.async.Delay"], ["goog.Disposable", "goog.Timer"]); +goog.addDependency("/closure/goog/async/nexttick.js", ["goog.async.nextTick"], ["goog.debug.entryPointRegistry", "goog.functions"]); +goog.addDependency("/closure/goog/async/throttle.js", ["goog.Throttle", "goog.async.Throttle"], ["goog.Disposable", "goog.Timer"]); +goog.addDependency("/closure/goog/base.js", [], []); +goog.addDependency("/closure/goog/bootstrap/nodejs.js", [], []); +goog.addDependency("/closure/goog/bootstrap/webworkers.js", [], []); +goog.addDependency("/closure/goog/color/alpha.js", ["goog.color.alpha"], ["goog.color"]); +goog.addDependency("/closure/goog/color/color.js", ["goog.color"], ["goog.color.names", "goog.math"]); +goog.addDependency("/closure/goog/color/names.js", ["goog.color.names"], []); +goog.addDependency("/closure/goog/crypt/aes.js", ["goog.crypt.Aes"], ["goog.asserts", "goog.crypt.BlockCipher"]); +goog.addDependency("/closure/goog/crypt/arc4.js", ["goog.crypt.Arc4"], ["goog.asserts"]); +goog.addDependency("/closure/goog/crypt/base64.js", ["goog.crypt.base64"], ["goog.crypt", "goog.userAgent"]); +goog.addDependency("/closure/goog/crypt/basen.js", ["goog.crypt.baseN"], []); +goog.addDependency("/closure/goog/crypt/blobhasher.js", ["goog.crypt.BlobHasher", "goog.crypt.BlobHasher.EventType"], ["goog.asserts", "goog.crypt", "goog.crypt.Hash", "goog.events.EventTarget", "goog.fs", "goog.log"]); +goog.addDependency("/closure/goog/crypt/blockcipher.js", ["goog.crypt.BlockCipher"], []); +goog.addDependency("/closure/goog/crypt/cbc.js", ["goog.crypt.Cbc"], ["goog.array", "goog.crypt"]); +goog.addDependency("/closure/goog/crypt/cbc_test.js", ["goog.crypt.CbcTest"], ["goog.crypt", "goog.crypt.Aes", "goog.crypt.Cbc", "goog.testing.jsunit"]); +goog.addDependency("/closure/goog/crypt/crypt.js", ["goog.crypt"], ["goog.array"]); +goog.addDependency("/closure/goog/crypt/hash.js", ["goog.crypt.Hash"], []); +goog.addDependency("/closure/goog/crypt/hash32.js", ["goog.crypt.hash32"], ["goog.crypt"]); +goog.addDependency("/closure/goog/crypt/hashtester.js", ["goog.crypt.hashTester"], ["goog.array", "goog.crypt", "goog.testing.PerformanceTable", "goog.testing.PseudoRandom", "goog.testing.asserts"]); +goog.addDependency("/closure/goog/crypt/hmac.js", ["goog.crypt.Hmac"], ["goog.asserts", "goog.crypt.Hash"]); +goog.addDependency("/closure/goog/crypt/md5.js", ["goog.crypt.Md5"], ["goog.crypt.Hash"]); +goog.addDependency("/closure/goog/crypt/pbkdf2.js", ["goog.crypt.pbkdf2"], ["goog.asserts", "goog.crypt", "goog.crypt.Hmac", "goog.crypt.Sha1"]); +goog.addDependency("/closure/goog/crypt/sha1.js", ["goog.crypt.Sha1"], ["goog.crypt.Hash"]); +goog.addDependency("/closure/goog/crypt/sha2.js", ["goog.crypt.Sha2"], ["goog.array", "goog.asserts", "goog.crypt.Hash"]); +goog.addDependency("/closure/goog/crypt/sha224.js", ["goog.crypt.Sha224"], ["goog.crypt.Sha2"]); +goog.addDependency("/closure/goog/crypt/sha256.js", ["goog.crypt.Sha256"], ["goog.crypt.Sha2"]); +goog.addDependency("/closure/goog/cssom/cssom.js", ["goog.cssom", "goog.cssom.CssRuleType"], ["goog.array", "goog.dom"]); +goog.addDependency("/closure/goog/cssom/iframe/style.js", ["goog.cssom.iframe.style"], ["goog.cssom", "goog.dom", "goog.dom.NodeType", "goog.dom.TagName", "goog.dom.classes", "goog.string", "goog.style", "goog.userAgent"]); +goog.addDependency("/closure/goog/datasource/datamanager.js", ["goog.ds.DataManager"], ["goog.ds.BasicNodeList", "goog.ds.DataNode", "goog.ds.Expr", "goog.string", "goog.structs", "goog.structs.Map"]); +goog.addDependency("/closure/goog/datasource/datasource.js", ["goog.ds.BaseDataNode", "goog.ds.BasicNodeList", "goog.ds.DataNode", "goog.ds.DataNodeList", "goog.ds.EmptyNodeList", "goog.ds.LoadState", "goog.ds.SortedNodeList", "goog.ds.Util", "goog.ds.logger"], ["goog.array", "goog.log"]); +goog.addDependency("/closure/goog/datasource/expr.js", ["goog.ds.Expr"], ["goog.ds.BasicNodeList", "goog.ds.EmptyNodeList", "goog.string"]); +goog.addDependency("/closure/goog/datasource/fastdatanode.js", ["goog.ds.AbstractFastDataNode", "goog.ds.FastDataNode", "goog.ds.FastListNode", "goog.ds.PrimitiveFastDataNode"], ["goog.ds.DataManager", "goog.ds.EmptyNodeList", "goog.string"]); +goog.addDependency("/closure/goog/datasource/jsdatasource.js", ["goog.ds.JsDataSource", "goog.ds.JsPropertyDataSource"], ["goog.ds.BaseDataNode", "goog.ds.BasicNodeList", "goog.ds.DataManager", "goog.ds.EmptyNodeList", "goog.ds.LoadState"]); +goog.addDependency("/closure/goog/datasource/jsondatasource.js", ["goog.ds.JsonDataSource"], ["goog.Uri", "goog.dom", "goog.ds.DataManager", "goog.ds.JsDataSource", "goog.ds.LoadState", "goog.ds.logger"]); +goog.addDependency("/closure/goog/datasource/jsxmlhttpdatasource.js", ["goog.ds.JsXmlHttpDataSource"], ["goog.Uri", "goog.ds.DataManager", "goog.ds.FastDataNode", "goog.ds.LoadState", "goog.ds.logger", "goog.events", "goog.log", "goog.net.EventType", "goog.net.XhrIo"]); +goog.addDependency("/closure/goog/datasource/xmldatasource.js", ["goog.ds.XmlDataSource", "goog.ds.XmlHttpDataSource"], ["goog.Uri", "goog.dom.NodeType", "goog.dom.xml", "goog.ds.BasicNodeList", "goog.ds.DataManager", "goog.ds.LoadState", "goog.ds.logger", "goog.net.XhrIo", "goog.string"]); +goog.addDependency("/closure/goog/date/date.js", ["goog.date", "goog.date.Date", "goog.date.DateTime", "goog.date.Interval", "goog.date.month", "goog.date.weekDay"], ["goog.asserts", "goog.date.DateLike", "goog.i18n.DateTimeSymbols", "goog.string"]); +goog.addDependency("/closure/goog/date/datelike.js", ["goog.date.DateLike"], []); +goog.addDependency("/closure/goog/date/daterange.js", ["goog.date.DateRange", "goog.date.DateRange.Iterator", "goog.date.DateRange.StandardDateRangeKeys"], ["goog.date.Date", "goog.date.Interval", "goog.iter.Iterator", "goog.iter.StopIteration"]); +goog.addDependency("/closure/goog/date/relative.js", ["goog.date.relative"], ["goog.i18n.DateTimeFormat"]); +goog.addDependency("/closure/goog/date/utcdatetime.js", ["goog.date.UtcDateTime"], ["goog.date", "goog.date.Date", "goog.date.DateTime", "goog.date.Interval"]); +goog.addDependency("/closure/goog/db/cursor.js", ["goog.db.Cursor"], ["goog.async.Deferred", "goog.db.Error", "goog.debug", "goog.events.EventTarget"]); +goog.addDependency("/closure/goog/db/db.js", ["goog.db"], ["goog.async.Deferred", "goog.db.Error", "goog.db.IndexedDb", "goog.db.Transaction"]); +goog.addDependency("/closure/goog/db/error.js", ["goog.db.Error", "goog.db.Error.ErrorCode", "goog.db.Error.ErrorName", "goog.db.Error.VersionChangeBlockedError"], ["goog.debug.Error"]); +goog.addDependency("/closure/goog/db/index.js", ["goog.db.Index"], ["goog.async.Deferred", "goog.db.Cursor", "goog.db.Error", "goog.debug"]); +goog.addDependency("/closure/goog/db/indexeddb.js", ["goog.db.IndexedDb"], ["goog.async.Deferred", "goog.db.Error", "goog.db.Error.VersionChangeBlockedError", "goog.db.ObjectStore", "goog.db.Transaction", "goog.db.Transaction.TransactionMode", "goog.events.Event", "goog.events.EventHandler", "goog.events.EventTarget"]); +goog.addDependency("/closure/goog/db/keyrange.js", ["goog.db.KeyRange"], []); +goog.addDependency("/closure/goog/db/objectstore.js", ["goog.db.ObjectStore"], ["goog.async.Deferred", "goog.db.Cursor", "goog.db.Error", "goog.db.Index", "goog.debug", "goog.events"]); +goog.addDependency("/closure/goog/db/transaction.js", ["goog.db.Transaction", "goog.db.Transaction.TransactionMode"], ["goog.async.Deferred", "goog.db.Error", "goog.db.ObjectStore", "goog.events.EventHandler", "goog.events.EventTarget"]); +goog.addDependency("/closure/goog/debug/console.js", ["goog.debug.Console"], ["goog.debug.LogManager", "goog.debug.Logger.Level", "goog.debug.TextFormatter"]); +goog.addDependency("/closure/goog/debug/debug.js", ["goog.debug"], ["goog.array", "goog.string", "goog.structs.Set", "goog.userAgent"]); +goog.addDependency("/closure/goog/debug/debugwindow.js", ["goog.debug.DebugWindow"], ["goog.debug.HtmlFormatter", "goog.debug.LogManager", "goog.debug.Logger", "goog.structs.CircularBuffer", "goog.userAgent"]); +goog.addDependency("/closure/goog/debug/devcss/devcss.js", ["goog.debug.DevCss", "goog.debug.DevCss.UserAgent"], ["goog.cssom", "goog.dom.classes", "goog.events", "goog.events.EventType", "goog.string", "goog.userAgent"]); +goog.addDependency("/closure/goog/debug/devcss/devcssrunner.js", ["goog.debug.devCssRunner"], ["goog.debug.DevCss"]); +goog.addDependency("/closure/goog/debug/divconsole.js", ["goog.debug.DivConsole"], ["goog.debug.HtmlFormatter", "goog.debug.LogManager", "goog.style"]); +goog.addDependency("/closure/goog/debug/entrypointregistry.js", ["goog.debug.EntryPointMonitor", "goog.debug.entryPointRegistry"], ["goog.asserts"]); +goog.addDependency("/closure/goog/debug/error.js", ["goog.debug.Error"], []); +goog.addDependency("/closure/goog/debug/errorhandler.js", ["goog.debug.ErrorHandler", "goog.debug.ErrorHandler.ProtectedFunctionError"], ["goog.asserts", "goog.debug", "goog.debug.EntryPointMonitor", "goog.debug.Trace"]); +goog.addDependency("/closure/goog/debug/errorhandlerweakdep.js", ["goog.debug.errorHandlerWeakDep"], []); +goog.addDependency("/closure/goog/debug/errorreporter.js", ["goog.debug.ErrorReporter", "goog.debug.ErrorReporter.ExceptionEvent"], ["goog.asserts", "goog.debug", "goog.debug.ErrorHandler", "goog.debug.entryPointRegistry", "goog.events", "goog.events.Event", "goog.events.EventTarget", "goog.log", "goog.net.XhrIo", "goog.object", "goog.string", "goog.uri.utils", "goog.userAgent"]); +goog.addDependency("/closure/goog/debug/fancywindow.js", ["goog.debug.FancyWindow"], ["goog.debug.DebugWindow", "goog.debug.LogManager", "goog.debug.Logger", "goog.dom.DomHelper", "goog.object", "goog.string", "goog.userAgent"]); +goog.addDependency("/closure/goog/debug/formatter.js", ["goog.debug.Formatter", "goog.debug.HtmlFormatter", "goog.debug.TextFormatter"], ["goog.debug.RelativeTimeProvider", "goog.string"]); +goog.addDependency("/closure/goog/debug/fpsdisplay.js", ["goog.debug.FpsDisplay"], ["goog.asserts", "goog.async.AnimationDelay", "goog.ui.Component"]); +goog.addDependency("/closure/goog/debug/gcdiagnostics.js", ["goog.debug.GcDiagnostics"], ["goog.debug.Trace", "goog.log", "goog.userAgent"]); +goog.addDependency("/closure/goog/debug/logbuffer.js", ["goog.debug.LogBuffer"], ["goog.asserts", "goog.debug.LogRecord"]); +goog.addDependency("/closure/goog/debug/logger.js", ["goog.debug.LogManager", "goog.debug.Logger", "goog.debug.Logger.Level"], ["goog.array", "goog.asserts", "goog.debug", "goog.debug.LogBuffer", "goog.debug.LogRecord"]); +goog.addDependency("/closure/goog/debug/logrecord.js", ["goog.debug.LogRecord"], []); +goog.addDependency("/closure/goog/debug/logrecordserializer.js", ["goog.debug.logRecordSerializer"], ["goog.debug.LogRecord", "goog.debug.Logger.Level", "goog.json", "goog.object"]); +goog.addDependency("/closure/goog/debug/reflect.js", ["goog.debug.reflect"], []); +goog.addDependency("/closure/goog/debug/relativetimeprovider.js", ["goog.debug.RelativeTimeProvider"], []); +goog.addDependency("/closure/goog/debug/tracer.js", ["goog.debug.Trace"], ["goog.array", "goog.iter", "goog.log", "goog.structs.Map", "goog.structs.SimplePool"]); +goog.addDependency("/closure/goog/demos/autocompleteremotedata.js", [], []); +goog.addDependency("/closure/goog/demos/autocompleterichremotedata.js", [], []); +goog.addDependency("/closure/goog/demos/editor/equationeditor.js", ["goog.demos.editor.EquationEditor"], ["goog.ui.equation.EquationEditorDialog"]); +goog.addDependency("/closure/goog/demos/editor/helloworld.js", ["goog.demos.editor.HelloWorld"], ["goog.dom", "goog.dom.TagName", "goog.editor.Plugin"]); +goog.addDependency("/closure/goog/demos/editor/helloworlddialog.js", ["goog.demos.editor.HelloWorldDialog", "goog.demos.editor.HelloWorldDialog.OkEvent"], ["goog.dom.TagName", "goog.events.Event", "goog.string", "goog.ui.editor.AbstractDialog"]); +goog.addDependency("/closure/goog/demos/editor/helloworlddialogplugin.js", ["goog.demos.editor.HelloWorldDialogPlugin", "goog.demos.editor.HelloWorldDialogPlugin.Command"], ["goog.demos.editor.HelloWorldDialog", "goog.dom.TagName", "goog.editor.plugins.AbstractDialogPlugin", "goog.editor.range", "goog.functions", "goog.ui.editor.AbstractDialog"]); +goog.addDependency("/closure/goog/demos/graphics/tigerdata.js", [], []); +goog.addDependency("/closure/goog/demos/samplecomponent.js", ["goog.demos.SampleComponent"], ["goog.dom", "goog.dom.classes", "goog.events.EventType", "goog.events.KeyCodes", "goog.events.KeyHandler", "goog.ui.Component"]); +goog.addDependency("/closure/goog/demos/tree/testdata.js", [], []); +goog.addDependency("/closure/goog/demos/xpc/xpcdemo.js", [], ["goog.Uri", "goog.dom", "goog.events", "goog.events.EventType", "goog.json", "goog.log", "goog.net.xpc.CfgFields", "goog.net.xpc.CrossPageChannel"]); +goog.addDependency("/closure/goog/disposable/disposable.js", ["goog.Disposable", "goog.dispose"], ["goog.disposable.IDisposable"]); +goog.addDependency("/closure/goog/disposable/idisposable.js", ["goog.disposable.IDisposable"], []); +goog.addDependency("/closure/goog/dom/a11y.js", ["goog.dom.a11y", "goog.dom.a11y.Announcer", "goog.dom.a11y.LivePriority", "goog.dom.a11y.Role", "goog.dom.a11y.State"], ["goog.a11y.aria", "goog.a11y.aria.Announcer", "goog.a11y.aria.LivePriority", "goog.a11y.aria.Role", "goog.a11y.aria.State"]); +goog.addDependency("/closure/goog/dom/abstractmultirange.js", ["goog.dom.AbstractMultiRange"], ["goog.array", "goog.dom", "goog.dom.AbstractRange"]); +goog.addDependency("/closure/goog/dom/abstractrange.js", ["goog.dom.AbstractRange", "goog.dom.RangeIterator", "goog.dom.RangeType"], ["goog.dom", "goog.dom.NodeType", "goog.dom.SavedCaretRange", "goog.dom.TagIterator", "goog.userAgent"]); +goog.addDependency("/closure/goog/dom/annotate.js", ["goog.dom.annotate"], ["goog.array", "goog.dom", "goog.dom.NodeType", "goog.string"]); +goog.addDependency("/closure/goog/dom/browserfeature.js", ["goog.dom.BrowserFeature"], ["goog.userAgent"]); +goog.addDependency("/closure/goog/dom/browserrange/abstractrange.js", ["goog.dom.browserrange.AbstractRange"], ["goog.array", "goog.asserts", "goog.dom", "goog.dom.NodeType", "goog.dom.RangeEndpoint", "goog.dom.TagName", "goog.dom.TextRangeIterator", "goog.iter", "goog.math.Coordinate", "goog.string", "goog.string.StringBuffer", "goog.userAgent"]); +goog.addDependency("/closure/goog/dom/browserrange/browserrange.js", ["goog.dom.browserrange", "goog.dom.browserrange.Error"], ["goog.dom", "goog.dom.NodeType", "goog.dom.browserrange.GeckoRange", "goog.dom.browserrange.IeRange", "goog.dom.browserrange.OperaRange", "goog.dom.browserrange.W3cRange", "goog.dom.browserrange.WebKitRange", "goog.userAgent"]); +goog.addDependency("/closure/goog/dom/browserrange/geckorange.js", ["goog.dom.browserrange.GeckoRange"], ["goog.dom.browserrange.W3cRange"]); +goog.addDependency("/closure/goog/dom/browserrange/ierange.js", ["goog.dom.browserrange.IeRange"], ["goog.array", "goog.dom", "goog.dom.NodeType", "goog.dom.RangeEndpoint", "goog.dom.TagName", "goog.dom.browserrange.AbstractRange", "goog.log", "goog.string"]); +goog.addDependency("/closure/goog/dom/browserrange/operarange.js", ["goog.dom.browserrange.OperaRange"], ["goog.dom.browserrange.W3cRange"]); +goog.addDependency("/closure/goog/dom/browserrange/w3crange.js", ["goog.dom.browserrange.W3cRange"], ["goog.dom", "goog.dom.NodeType", "goog.dom.RangeEndpoint", "goog.dom.browserrange.AbstractRange", "goog.string"]); +goog.addDependency("/closure/goog/dom/browserrange/webkitrange.js", ["goog.dom.browserrange.WebKitRange"], ["goog.dom.RangeEndpoint", "goog.dom.browserrange.W3cRange", "goog.userAgent"]); +goog.addDependency("/closure/goog/dom/bufferedviewportsizemonitor.js", ["goog.dom.BufferedViewportSizeMonitor"], ["goog.asserts", "goog.async.Delay", "goog.events", "goog.events.EventTarget", "goog.events.EventType"]); +goog.addDependency("/closure/goog/dom/bufferedviewportsizemonitor_test.js", ["goog.dom.BufferedViewportSizeMonitorTest"], ["goog.dom.BufferedViewportSizeMonitor", "goog.dom.ViewportSizeMonitor", "goog.events", "goog.events.EventType", "goog.math.Size", "goog.testing.MockClock", "goog.testing.events", "goog.testing.events.Event", "goog.testing.jsunit"]); +goog.addDependency("/closure/goog/dom/classes.js", ["goog.dom.classes"], ["goog.array"]); +goog.addDependency("/closure/goog/dom/classes_test.js", ["goog.dom.classes_test"], ["goog.dom", "goog.dom.classes", "goog.testing.jsunit"]); +goog.addDependency("/closure/goog/dom/classlist.js", ["goog.dom.classlist"], ["goog.array", "goog.asserts"]); +goog.addDependency("/closure/goog/dom/classlist_test.js", ["goog.dom.classlist_test"], ["goog.dom", "goog.dom.classlist", "goog.testing.jsunit"]); +goog.addDependency("/closure/goog/dom/controlrange.js", ["goog.dom.ControlRange", "goog.dom.ControlRangeIterator"], ["goog.array", "goog.dom", "goog.dom.AbstractMultiRange", "goog.dom.AbstractRange", "goog.dom.RangeIterator", "goog.dom.RangeType", "goog.dom.SavedRange", "goog.dom.TagWalkType", "goog.dom.TextRange", "goog.iter.StopIteration", "goog.userAgent"]); +goog.addDependency("/closure/goog/dom/dataset.js", ["goog.dom.dataset"], ["goog.string"]); +goog.addDependency("/closure/goog/dom/dom.js", ["goog.dom", "goog.dom.Appendable", "goog.dom.DomHelper", "goog.dom.NodeType"], ["goog.array", "goog.dom.BrowserFeature", "goog.dom.TagName", "goog.dom.classes", "goog.math.Coordinate", "goog.math.Size", "goog.object", "goog.string", "goog.userAgent"]); +goog.addDependency("/closure/goog/dom/dom_test.js", ["goog.dom.dom_test"], ["goog.dom", "goog.dom.BrowserFeature", "goog.dom.DomHelper", "goog.dom.NodeType", "goog.dom.TagName", "goog.object", "goog.string.Unicode", "goog.testing.asserts", "goog.userAgent", "goog.userAgent.product", "goog.userAgent.product.isVersion"]); +goog.addDependency("/closure/goog/dom/fontsizemonitor.js", ["goog.dom.FontSizeMonitor", "goog.dom.FontSizeMonitor.EventType"], ["goog.dom", "goog.events", "goog.events.EventTarget", "goog.events.EventType", "goog.userAgent"]); +goog.addDependency("/closure/goog/dom/forms.js", ["goog.dom.forms"], ["goog.structs.Map"]); +goog.addDependency("/closure/goog/dom/fullscreen.js", ["goog.dom.fullscreen", "goog.dom.fullscreen.EventType"], ["goog.dom", "goog.userAgent", "goog.userAgent.product"]); +goog.addDependency("/closure/goog/dom/iframe.js", ["goog.dom.iframe"], ["goog.dom", "goog.userAgent"]); +goog.addDependency("/closure/goog/dom/iter.js", ["goog.dom.iter.AncestorIterator", "goog.dom.iter.ChildIterator", "goog.dom.iter.SiblingIterator"], ["goog.iter.Iterator", "goog.iter.StopIteration"]); +goog.addDependency("/closure/goog/dom/multirange.js", ["goog.dom.MultiRange", "goog.dom.MultiRangeIterator"], ["goog.array", "goog.dom.AbstractMultiRange", "goog.dom.AbstractRange", "goog.dom.RangeIterator", "goog.dom.RangeType", "goog.dom.SavedRange", "goog.dom.TextRange", "goog.iter.StopIteration", "goog.log"]); +goog.addDependency("/closure/goog/dom/nodeiterator.js", ["goog.dom.NodeIterator"], ["goog.dom.TagIterator"]); +goog.addDependency("/closure/goog/dom/nodeoffset.js", ["goog.dom.NodeOffset"], ["goog.Disposable", "goog.dom.TagName"]); +goog.addDependency("/closure/goog/dom/pattern/abstractpattern.js", ["goog.dom.pattern.AbstractPattern"], ["goog.dom.pattern.MatchType"]); +goog.addDependency("/closure/goog/dom/pattern/allchildren.js", ["goog.dom.pattern.AllChildren"], ["goog.dom.pattern.AbstractPattern", "goog.dom.pattern.MatchType"]); +goog.addDependency("/closure/goog/dom/pattern/callback/callback.js", ["goog.dom.pattern.callback"], ["goog.dom", "goog.dom.TagWalkType", "goog.iter"]); +goog.addDependency("/closure/goog/dom/pattern/callback/counter.js", ["goog.dom.pattern.callback.Counter"], []); +goog.addDependency("/closure/goog/dom/pattern/callback/test.js", ["goog.dom.pattern.callback.Test"], ["goog.iter.StopIteration"]); +goog.addDependency("/closure/goog/dom/pattern/childmatches.js", ["goog.dom.pattern.ChildMatches"], ["goog.dom.pattern.AllChildren", "goog.dom.pattern.MatchType"]); +goog.addDependency("/closure/goog/dom/pattern/endtag.js", ["goog.dom.pattern.EndTag"], ["goog.dom.TagWalkType", "goog.dom.pattern.Tag"]); +goog.addDependency("/closure/goog/dom/pattern/fulltag.js", ["goog.dom.pattern.FullTag"], ["goog.dom.pattern.MatchType", "goog.dom.pattern.StartTag", "goog.dom.pattern.Tag"]); +goog.addDependency("/closure/goog/dom/pattern/matcher.js", ["goog.dom.pattern.Matcher"], ["goog.dom.TagIterator", "goog.dom.pattern.MatchType", "goog.iter"]); +goog.addDependency("/closure/goog/dom/pattern/nodetype.js", ["goog.dom.pattern.NodeType"], ["goog.dom.pattern.AbstractPattern", "goog.dom.pattern.MatchType"]); +goog.addDependency("/closure/goog/dom/pattern/pattern.js", ["goog.dom.pattern", "goog.dom.pattern.MatchType"], []); +goog.addDependency("/closure/goog/dom/pattern/repeat.js", ["goog.dom.pattern.Repeat"], ["goog.dom.NodeType", "goog.dom.pattern.AbstractPattern", "goog.dom.pattern.MatchType"]); +goog.addDependency("/closure/goog/dom/pattern/sequence.js", ["goog.dom.pattern.Sequence"], ["goog.dom.NodeType", "goog.dom.pattern.AbstractPattern", "goog.dom.pattern.MatchType"]); +goog.addDependency("/closure/goog/dom/pattern/starttag.js", ["goog.dom.pattern.StartTag"], ["goog.dom.TagWalkType", "goog.dom.pattern.Tag"]); +goog.addDependency("/closure/goog/dom/pattern/tag.js", ["goog.dom.pattern.Tag"], ["goog.dom.pattern", "goog.dom.pattern.AbstractPattern", "goog.dom.pattern.MatchType", "goog.object"]); +goog.addDependency("/closure/goog/dom/pattern/text.js", ["goog.dom.pattern.Text"], ["goog.dom.NodeType", "goog.dom.pattern", "goog.dom.pattern.AbstractPattern", "goog.dom.pattern.MatchType"]); +goog.addDependency("/closure/goog/dom/range.js", ["goog.dom.Range"], ["goog.dom", "goog.dom.AbstractRange", "goog.dom.ControlRange", "goog.dom.MultiRange", "goog.dom.NodeType", "goog.dom.TextRange", "goog.userAgent"]); +goog.addDependency("/closure/goog/dom/rangeendpoint.js", ["goog.dom.RangeEndpoint"], []); +goog.addDependency("/closure/goog/dom/savedcaretrange.js", ["goog.dom.SavedCaretRange"], ["goog.array", "goog.dom", "goog.dom.SavedRange", "goog.dom.TagName", "goog.string"]); +goog.addDependency("/closure/goog/dom/savedrange.js", ["goog.dom.SavedRange"], ["goog.Disposable", "goog.log"]); +goog.addDependency("/closure/goog/dom/selection.js", ["goog.dom.selection"], ["goog.string", "goog.userAgent"]); +goog.addDependency("/closure/goog/dom/tagiterator.js", ["goog.dom.TagIterator", "goog.dom.TagWalkType"], ["goog.dom.NodeType", "goog.iter.Iterator", "goog.iter.StopIteration"]); +goog.addDependency("/closure/goog/dom/tagname.js", ["goog.dom.TagName"], []); +goog.addDependency("/closure/goog/dom/textrange.js", ["goog.dom.TextRange"], ["goog.array", "goog.dom", "goog.dom.AbstractRange", "goog.dom.RangeType", "goog.dom.SavedRange", "goog.dom.TagName", "goog.dom.TextRangeIterator", "goog.dom.browserrange", "goog.string", "goog.userAgent"]); +goog.addDependency("/closure/goog/dom/textrangeiterator.js", ["goog.dom.TextRangeIterator"], ["goog.array", "goog.dom.NodeType", "goog.dom.RangeIterator", "goog.dom.TagName", "goog.iter.StopIteration"]); +goog.addDependency("/closure/goog/dom/vendor.js", ["goog.dom.vendor"], ["goog.userAgent"]); +goog.addDependency("/closure/goog/dom/viewportsizemonitor.js", ["goog.dom.ViewportSizeMonitor"], ["goog.dom", "goog.events", "goog.events.EventTarget", "goog.events.EventType", "goog.math.Size"]); +goog.addDependency("/closure/goog/dom/xml.js", ["goog.dom.xml"], ["goog.dom", "goog.dom.NodeType"]); +goog.addDependency("/closure/goog/editor/browserfeature.js", ["goog.editor.BrowserFeature"], ["goog.editor.defines", "goog.userAgent", "goog.userAgent.product", "goog.userAgent.product.isVersion"]); +goog.addDependency("/closure/goog/editor/clicktoeditwrapper.js", ["goog.editor.ClickToEditWrapper"], ["goog.Disposable", "goog.asserts", "goog.dom", "goog.dom.Range", "goog.dom.TagName", "goog.editor.BrowserFeature", "goog.editor.Command", "goog.editor.Field.EventType", "goog.editor.range", "goog.events.BrowserEvent.MouseButton", "goog.events.EventHandler", "goog.events.EventType", "goog.log"]); +goog.addDependency("/closure/goog/editor/command.js", ["goog.editor.Command"], []); +goog.addDependency("/closure/goog/editor/contenteditablefield.js", ["goog.editor.ContentEditableField"], ["goog.asserts", "goog.editor.Field", "goog.log"]); +goog.addDependency("/closure/goog/editor/defines.js", ["goog.editor.defines"], []); +goog.addDependency("/closure/goog/editor/field.js", ["goog.editor.Field", "goog.editor.Field.EventType"], ["goog.a11y.aria", "goog.a11y.aria.Role", "goog.array", "goog.asserts", "goog.async.Delay", "goog.dom", "goog.dom.Range", "goog.dom.TagName", "goog.editor.BrowserFeature", "goog.editor.Command", "goog.editor.Plugin", "goog.editor.icontent", "goog.editor.icontent.FieldFormatInfo", "goog.editor.icontent.FieldStyleInfo", "goog.editor.node", "goog.editor.range", "goog.events", "goog.events.EventHandler", +"goog.events.EventTarget", "goog.events.EventType", "goog.events.KeyCodes", "goog.functions", "goog.log", "goog.string", "goog.string.Unicode", "goog.style", "goog.userAgent", "goog.userAgent.product"]); +goog.addDependency("/closure/goog/editor/field_test.js", ["goog.editor.field_test"], ["goog.dom", "goog.dom.Range", "goog.editor.BrowserFeature", "goog.editor.Field", "goog.editor.Plugin", "goog.editor.range", "goog.events", "goog.events.BrowserEvent", "goog.events.KeyCodes", "goog.functions", "goog.testing.LooseMock", "goog.testing.MockClock", "goog.testing.dom", "goog.testing.events", "goog.testing.events.Event", "goog.testing.recordFunction", "goog.userAgent"]); +goog.addDependency("/closure/goog/editor/focus.js", ["goog.editor.focus"], ["goog.dom.selection"]); +goog.addDependency("/closure/goog/editor/icontent.js", ["goog.editor.icontent", "goog.editor.icontent.FieldFormatInfo", "goog.editor.icontent.FieldStyleInfo"], ["goog.editor.BrowserFeature", "goog.style", "goog.userAgent"]); +goog.addDependency("/closure/goog/editor/link.js", ["goog.editor.Link"], ["goog.array", "goog.dom", "goog.dom.NodeType", "goog.dom.Range", "goog.editor.BrowserFeature", "goog.editor.Command", "goog.editor.node", "goog.editor.range", "goog.string", "goog.string.Unicode", "goog.uri.utils", "goog.uri.utils.ComponentIndex"]); +goog.addDependency("/closure/goog/editor/node.js", ["goog.editor.node"], ["goog.dom", "goog.dom.NodeType", "goog.dom.TagName", "goog.dom.iter.ChildIterator", "goog.dom.iter.SiblingIterator", "goog.iter", "goog.object", "goog.string", "goog.string.Unicode", "goog.userAgent"]); +goog.addDependency("/closure/goog/editor/plugin.js", ["goog.editor.Plugin"], ["goog.editor.Command", "goog.events.EventTarget", "goog.functions", "goog.log", "goog.object", "goog.reflect"]); +goog.addDependency("/closure/goog/editor/plugins/abstractbubbleplugin.js", ["goog.editor.plugins.AbstractBubblePlugin"], ["goog.dom", "goog.dom.NodeType", "goog.dom.Range", "goog.dom.TagName", "goog.editor.Plugin", "goog.editor.style", "goog.events", "goog.events.EventHandler", "goog.events.EventType", "goog.events.KeyCodes", "goog.events.actionEventWrapper", "goog.functions", "goog.string.Unicode", "goog.ui.Component.EventType", "goog.ui.editor.Bubble", "goog.userAgent"]); +goog.addDependency("/closure/goog/editor/plugins/abstractdialogplugin.js", ["goog.editor.plugins.AbstractDialogPlugin", "goog.editor.plugins.AbstractDialogPlugin.EventType"], ["goog.dom", "goog.dom.Range", "goog.editor.Field.EventType", "goog.editor.Plugin", "goog.editor.range", "goog.events", "goog.ui.editor.AbstractDialog.EventType"]); +goog.addDependency("/closure/goog/editor/plugins/abstracttabhandler.js", ["goog.editor.plugins.AbstractTabHandler"], ["goog.editor.Plugin", "goog.events.KeyCodes"]); +goog.addDependency("/closure/goog/editor/plugins/basictextformatter.js", ["goog.editor.plugins.BasicTextFormatter", "goog.editor.plugins.BasicTextFormatter.COMMAND"], ["goog.array", "goog.dom", "goog.dom.NodeType", "goog.dom.Range", "goog.dom.TagName", "goog.editor.BrowserFeature", "goog.editor.Command", "goog.editor.Link", "goog.editor.Plugin", "goog.editor.node", "goog.editor.range", "goog.editor.style", "goog.iter", "goog.iter.StopIteration", "goog.log", "goog.object", "goog.string", "goog.string.Unicode", +"goog.style", "goog.ui.editor.messages", "goog.userAgent"]); +goog.addDependency("/closure/goog/editor/plugins/blockquote.js", ["goog.editor.plugins.Blockquote"], ["goog.dom", "goog.dom.NodeType", "goog.dom.TagName", "goog.dom.classes", "goog.editor.BrowserFeature", "goog.editor.Command", "goog.editor.Plugin", "goog.editor.node", "goog.functions", "goog.log"]); +goog.addDependency("/closure/goog/editor/plugins/emoticons.js", ["goog.editor.plugins.Emoticons"], ["goog.dom.TagName", "goog.editor.Plugin", "goog.editor.range", "goog.functions", "goog.ui.emoji.Emoji", "goog.userAgent"]); +goog.addDependency("/closure/goog/editor/plugins/enterhandler.js", ["goog.editor.plugins.EnterHandler"], ["goog.dom", "goog.dom.NodeOffset", "goog.dom.NodeType", "goog.dom.Range", "goog.dom.TagName", "goog.editor.BrowserFeature", "goog.editor.Plugin", "goog.editor.node", "goog.editor.plugins.Blockquote", "goog.editor.range", "goog.editor.style", "goog.events.KeyCodes", "goog.functions", "goog.object", "goog.string", "goog.userAgent"]); +goog.addDependency("/closure/goog/editor/plugins/equationeditorbubble.js", ["goog.editor.plugins.equation.EquationBubble"], ["goog.dom", "goog.dom.TagName", "goog.editor.Command", "goog.editor.plugins.AbstractBubblePlugin", "goog.string.Unicode", "goog.ui.editor.Bubble", "goog.ui.equation.ImageRenderer"]); +goog.addDependency("/closure/goog/editor/plugins/equationeditorplugin.js", ["goog.editor.plugins.EquationEditorPlugin"], ["goog.dom", "goog.editor.Command", "goog.editor.plugins.AbstractDialogPlugin", "goog.editor.range", "goog.events", "goog.events.EventType", "goog.functions", "goog.log", "goog.ui.editor.AbstractDialog", "goog.ui.editor.EquationEditorDialog", "goog.ui.equation.ImageRenderer", "goog.ui.equation.PaletteManager"]); +goog.addDependency("/closure/goog/editor/plugins/firststrong.js", ["goog.editor.plugins.FirstStrong"], ["goog.dom.NodeType", "goog.dom.TagIterator", "goog.dom.TagName", "goog.editor.Command", "goog.editor.Plugin", "goog.editor.node", "goog.editor.range", "goog.i18n.bidi", "goog.i18n.uChar", "goog.iter", "goog.userAgent"]); +goog.addDependency("/closure/goog/editor/plugins/headerformatter.js", ["goog.editor.plugins.HeaderFormatter"], ["goog.editor.Command", "goog.editor.Plugin", "goog.userAgent"]); +goog.addDependency("/closure/goog/editor/plugins/linkbubble.js", ["goog.editor.plugins.LinkBubble", "goog.editor.plugins.LinkBubble.Action"], ["goog.array", "goog.dom", "goog.editor.BrowserFeature", "goog.editor.Command", "goog.editor.Link", "goog.editor.plugins.AbstractBubblePlugin", "goog.editor.range", "goog.string", "goog.style", "goog.ui.editor.messages", "goog.uri.utils", "goog.window"]); +goog.addDependency("/closure/goog/editor/plugins/linkdialogplugin.js", ["goog.editor.plugins.LinkDialogPlugin"], ["goog.array", "goog.dom", "goog.editor.Command", "goog.editor.plugins.AbstractDialogPlugin", "goog.events.EventHandler", "goog.functions", "goog.ui.editor.AbstractDialog.EventType", "goog.ui.editor.LinkDialog", "goog.ui.editor.LinkDialog.EventType", "goog.ui.editor.LinkDialog.OkEvent", "goog.uri.utils"]); +goog.addDependency("/closure/goog/editor/plugins/linkshortcutplugin.js", ["goog.editor.plugins.LinkShortcutPlugin"], ["goog.editor.Command", "goog.editor.Link", "goog.editor.Plugin", "goog.string"]); +goog.addDependency("/closure/goog/editor/plugins/listtabhandler.js", ["goog.editor.plugins.ListTabHandler"], ["goog.dom.TagName", "goog.editor.Command", "goog.editor.plugins.AbstractTabHandler"]); +goog.addDependency("/closure/goog/editor/plugins/loremipsum.js", ["goog.editor.plugins.LoremIpsum"], ["goog.asserts", "goog.dom", "goog.editor.Command", "goog.editor.Plugin", "goog.editor.node", "goog.functions"]); +goog.addDependency("/closure/goog/editor/plugins/removeformatting.js", ["goog.editor.plugins.RemoveFormatting"], ["goog.dom", "goog.dom.NodeType", "goog.dom.Range", "goog.dom.TagName", "goog.editor.BrowserFeature", "goog.editor.Plugin", "goog.editor.node", "goog.editor.range", "goog.string", "goog.userAgent"]); +goog.addDependency("/closure/goog/editor/plugins/spacestabhandler.js", ["goog.editor.plugins.SpacesTabHandler"], ["goog.dom", "goog.dom.TagName", "goog.editor.plugins.AbstractTabHandler", "goog.editor.range"]); +goog.addDependency("/closure/goog/editor/plugins/tableeditor.js", ["goog.editor.plugins.TableEditor"], ["goog.array", "goog.dom", "goog.dom.TagName", "goog.editor.Plugin", "goog.editor.Table", "goog.editor.node", "goog.editor.range", "goog.object"]); +goog.addDependency("/closure/goog/editor/plugins/tagonenterhandler.js", ["goog.editor.plugins.TagOnEnterHandler"], ["goog.dom", "goog.dom.NodeType", "goog.dom.Range", "goog.dom.TagName", "goog.editor.Command", "goog.editor.node", "goog.editor.plugins.EnterHandler", "goog.editor.range", "goog.editor.style", "goog.events.KeyCodes", "goog.string", "goog.style", "goog.userAgent"]); +goog.addDependency("/closure/goog/editor/plugins/undoredo.js", ["goog.editor.plugins.UndoRedo"], ["goog.dom", "goog.dom.NodeOffset", "goog.dom.Range", "goog.editor.BrowserFeature", "goog.editor.Command", "goog.editor.Field.EventType", "goog.editor.Plugin", "goog.editor.node", "goog.editor.plugins.UndoRedoManager", "goog.editor.plugins.UndoRedoState", "goog.events", "goog.events.EventHandler", "goog.log"]); +goog.addDependency("/closure/goog/editor/plugins/undoredomanager.js", ["goog.editor.plugins.UndoRedoManager", "goog.editor.plugins.UndoRedoManager.EventType"], ["goog.editor.plugins.UndoRedoState", "goog.events.EventTarget"]); +goog.addDependency("/closure/goog/editor/plugins/undoredostate.js", ["goog.editor.plugins.UndoRedoState"], ["goog.events.EventTarget"]); +goog.addDependency("/closure/goog/editor/range.js", ["goog.editor.range", "goog.editor.range.Point"], ["goog.array", "goog.dom", "goog.dom.NodeType", "goog.dom.Range", "goog.dom.RangeEndpoint", "goog.dom.SavedCaretRange", "goog.editor.node", "goog.editor.style", "goog.iter", "goog.userAgent"]); +goog.addDependency("/closure/goog/editor/seamlessfield.js", ["goog.editor.SeamlessField"], ["goog.cssom.iframe.style", "goog.dom", "goog.dom.Range", "goog.dom.TagName", "goog.editor.BrowserFeature", "goog.editor.Field", "goog.editor.icontent", "goog.editor.icontent.FieldFormatInfo", "goog.editor.icontent.FieldStyleInfo", "goog.editor.node", "goog.events", "goog.events.EventType", "goog.log", "goog.style"]); +goog.addDependency("/closure/goog/editor/seamlessfield_test.js", ["goog.editor.seamlessfield_test"], ["goog.dom", "goog.dom.DomHelper", "goog.dom.Range", "goog.editor.BrowserFeature", "goog.editor.Field", "goog.editor.SeamlessField", "goog.events", "goog.functions", "goog.style", "goog.testing.MockClock", "goog.testing.MockRange", "goog.testing.jsunit"]); +goog.addDependency("/closure/goog/editor/style.js", ["goog.editor.style"], ["goog.dom", "goog.dom.NodeType", "goog.editor.BrowserFeature", "goog.events.EventType", "goog.object", "goog.style", "goog.userAgent"]); +goog.addDependency("/closure/goog/editor/table.js", ["goog.editor.Table", "goog.editor.TableCell", "goog.editor.TableRow"], ["goog.dom", "goog.dom.DomHelper", "goog.dom.NodeType", "goog.dom.TagName", "goog.log", "goog.string.Unicode", "goog.style"]); +goog.addDependency("/closure/goog/events/actioneventwrapper.js", ["goog.events.actionEventWrapper"], ["goog.events", "goog.events.EventHandler", "goog.events.EventType", "goog.events.EventWrapper", "goog.events.KeyCodes"]); +goog.addDependency("/closure/goog/events/actionhandler.js", ["goog.events.ActionEvent", "goog.events.ActionHandler", "goog.events.ActionHandler.EventType", "goog.events.BeforeActionEvent"], ["goog.events", "goog.events.BrowserEvent", "goog.events.EventTarget", "goog.events.EventType", "goog.events.KeyCodes", "goog.userAgent"]); +goog.addDependency("/closure/goog/events/browserevent.js", ["goog.events.BrowserEvent", "goog.events.BrowserEvent.MouseButton"], ["goog.events.BrowserFeature", "goog.events.Event", "goog.events.EventType", "goog.reflect", "goog.userAgent"]); +goog.addDependency("/closure/goog/events/browserfeature.js", ["goog.events.BrowserFeature"], ["goog.userAgent"]); +goog.addDependency("/closure/goog/events/event.js", ["goog.events.Event", "goog.events.EventLike"], ["goog.Disposable"]); +goog.addDependency("/closure/goog/events/eventhandler.js", ["goog.events.EventHandler"], ["goog.Disposable", "goog.events", "goog.object"]); +goog.addDependency("/closure/goog/events/events.js", ["goog.events", "goog.events.Key", "goog.events.ListenableType"], ["goog.array", "goog.asserts", "goog.debug.entryPointRegistry", "goog.events.BrowserEvent", "goog.events.BrowserFeature", "goog.events.Listenable", "goog.events.Listener", "goog.object"]); +goog.addDependency("/closure/goog/events/eventtarget.js", ["goog.events.EventTarget"], ["goog.Disposable", "goog.array", "goog.asserts", "goog.events", "goog.events.Event", "goog.events.Listenable", "goog.events.ListenerMap", "goog.object"]); +goog.addDependency("/closure/goog/events/eventtargettester.js", ["goog.events.eventTargetTester", "goog.events.eventTargetTester.KeyType", "goog.events.eventTargetTester.UnlistenReturnType"], ["goog.array", "goog.events", "goog.events.Event", "goog.events.EventTarget", "goog.testing.asserts", "goog.testing.recordFunction"]); +goog.addDependency("/closure/goog/events/eventtype.js", ["goog.events.EventType"], ["goog.userAgent"]); +goog.addDependency("/closure/goog/events/eventwrapper.js", ["goog.events.EventWrapper"], []); +goog.addDependency("/closure/goog/events/filedrophandler.js", ["goog.events.FileDropHandler", "goog.events.FileDropHandler.EventType"], ["goog.array", "goog.dom", "goog.events", "goog.events.BrowserEvent", "goog.events.EventHandler", "goog.events.EventTarget", "goog.events.EventType", "goog.log"]); +goog.addDependency("/closure/goog/events/focushandler.js", ["goog.events.FocusHandler", "goog.events.FocusHandler.EventType"], ["goog.events", "goog.events.BrowserEvent", "goog.events.EventTarget", "goog.userAgent"]); +goog.addDependency("/closure/goog/events/imehandler.js", ["goog.events.ImeHandler", "goog.events.ImeHandler.Event", "goog.events.ImeHandler.EventType"], ["goog.events.Event", "goog.events.EventHandler", "goog.events.EventTarget", "goog.events.EventType", "goog.events.KeyCodes", "goog.userAgent"]); +goog.addDependency("/closure/goog/events/inputhandler.js", ["goog.events.InputHandler", "goog.events.InputHandler.EventType"], ["goog.Timer", "goog.dom", "goog.events.BrowserEvent", "goog.events.EventHandler", "goog.events.EventTarget", "goog.events.KeyCodes", "goog.userAgent"]); +goog.addDependency("/closure/goog/events/keycodes.js", ["goog.events.KeyCodes"], ["goog.userAgent"]); +goog.addDependency("/closure/goog/events/keyhandler.js", ["goog.events.KeyEvent", "goog.events.KeyHandler", "goog.events.KeyHandler.EventType"], ["goog.events", "goog.events.BrowserEvent", "goog.events.EventTarget", "goog.events.EventType", "goog.events.KeyCodes", "goog.userAgent"]); +goog.addDependency("/closure/goog/events/keynames.js", ["goog.events.KeyNames"], []); +goog.addDependency("/closure/goog/events/listenable.js", ["goog.events.Listenable", "goog.events.ListenableKey"], []); +goog.addDependency("/closure/goog/events/listener.js", ["goog.events.Listener"], ["goog.events.ListenableKey"]); +goog.addDependency("/closure/goog/events/listenermap.js", ["goog.events.ListenerMap"], ["goog.array", "goog.events.Listener", "goog.object"]); +goog.addDependency("/closure/goog/events/listenermap_test.js", ["goog.events.ListenerMapTest"], ["goog.dispose", "goog.events.EventTarget", "goog.events.ListenerMap", "goog.testing.jsunit"]); +goog.addDependency("/closure/goog/events/mousewheelhandler.js", ["goog.events.MouseWheelEvent", "goog.events.MouseWheelHandler", "goog.events.MouseWheelHandler.EventType"], ["goog.dom", "goog.events", "goog.events.BrowserEvent", "goog.events.EventTarget", "goog.math", "goog.style", "goog.userAgent"]); +goog.addDependency("/closure/goog/events/onlinehandler.js", ["goog.events.OnlineHandler", "goog.events.OnlineHandler.EventType"], ["goog.Timer", "goog.events.BrowserFeature", "goog.events.EventHandler", "goog.events.EventTarget", "goog.events.EventType", "goog.net.NetworkStatusMonitor", "goog.userAgent"]); +goog.addDependency("/closure/goog/events/pastehandler.js", ["goog.events.PasteHandler", "goog.events.PasteHandler.EventType", "goog.events.PasteHandler.State"], ["goog.Timer", "goog.async.ConditionalDelay", "goog.events.BrowserEvent", "goog.events.EventHandler", "goog.events.EventTarget", "goog.events.EventType", "goog.events.KeyCodes", "goog.log", "goog.userAgent"]); +goog.addDependency("/closure/goog/format/emailaddress.js", ["goog.format.EmailAddress"], ["goog.string"]); +goog.addDependency("/closure/goog/format/format.js", ["goog.format"], ["goog.i18n.GraphemeBreak", "goog.string", "goog.userAgent"]); +goog.addDependency("/closure/goog/format/htmlprettyprinter.js", ["goog.format.HtmlPrettyPrinter", "goog.format.HtmlPrettyPrinter.Buffer"], ["goog.object", "goog.string.StringBuffer"]); +goog.addDependency("/closure/goog/format/jsonprettyprinter.js", ["goog.format.JsonPrettyPrinter", "goog.format.JsonPrettyPrinter.HtmlDelimiters", "goog.format.JsonPrettyPrinter.TextDelimiters"], ["goog.json", "goog.json.Serializer", "goog.string", "goog.string.StringBuffer", "goog.string.format"]); +goog.addDependency("/closure/goog/fs/entry.js", ["goog.fs.DirectoryEntry", "goog.fs.DirectoryEntry.Behavior", "goog.fs.Entry", "goog.fs.FileEntry"], []); +goog.addDependency("/closure/goog/fs/entryimpl.js", ["goog.fs.DirectoryEntryImpl", "goog.fs.EntryImpl", "goog.fs.FileEntryImpl"], ["goog.array", "goog.async.Deferred", "goog.fs.DirectoryEntry", "goog.fs.Entry", "goog.fs.Error", "goog.fs.FileEntry", "goog.fs.FileWriter", "goog.functions", "goog.string"]); +goog.addDependency("/closure/goog/fs/error.js", ["goog.fs.Error", "goog.fs.Error.ErrorCode"], ["goog.debug.Error", "goog.string"]); +goog.addDependency("/closure/goog/fs/filereader.js", ["goog.fs.FileReader", "goog.fs.FileReader.EventType", "goog.fs.FileReader.ReadyState"], ["goog.async.Deferred", "goog.events.Event", "goog.events.EventTarget", "goog.fs.Error", "goog.fs.ProgressEvent"]); +goog.addDependency("/closure/goog/fs/filesaver.js", ["goog.fs.FileSaver", "goog.fs.FileSaver.EventType", "goog.fs.FileSaver.ProgressEvent", "goog.fs.FileSaver.ReadyState"], ["goog.events.Event", "goog.events.EventTarget", "goog.fs.Error", "goog.fs.ProgressEvent"]); +goog.addDependency("/closure/goog/fs/filesystem.js", ["goog.fs.FileSystem"], []); +goog.addDependency("/closure/goog/fs/filesystemimpl.js", ["goog.fs.FileSystemImpl"], ["goog.fs.DirectoryEntryImpl", "goog.fs.FileSystem"]); +goog.addDependency("/closure/goog/fs/filewriter.js", ["goog.fs.FileWriter"], ["goog.fs.Error", "goog.fs.FileSaver"]); +goog.addDependency("/closure/goog/fs/fs.js", ["goog.fs"], ["goog.array", "goog.async.Deferred", "goog.fs.Error", "goog.fs.FileReader", "goog.fs.FileSystemImpl", "goog.userAgent"]); +goog.addDependency("/closure/goog/fs/progressevent.js", ["goog.fs.ProgressEvent"], ["goog.events.Event"]); +goog.addDependency("/closure/goog/functions/functions.js", ["goog.functions"], []); +goog.addDependency("/closure/goog/fx/abstractdragdrop.js", ["goog.fx.AbstractDragDrop", "goog.fx.AbstractDragDrop.EventType", "goog.fx.DragDropEvent", "goog.fx.DragDropItem"], ["goog.dom", "goog.dom.classes", "goog.events", "goog.events.Event", "goog.events.EventHandler", "goog.events.EventTarget", "goog.events.EventType", "goog.fx.Dragger", "goog.fx.Dragger.EventType", "goog.math.Box", "goog.math.Coordinate", "goog.style"]); +goog.addDependency("/closure/goog/fx/anim/anim.js", ["goog.fx.anim", "goog.fx.anim.Animated"], ["goog.async.AnimationDelay", "goog.async.Delay", "goog.object"]); +goog.addDependency("/closure/goog/fx/animation.js", ["goog.fx.Animation", "goog.fx.Animation.EventType", "goog.fx.Animation.State", "goog.fx.AnimationEvent"], ["goog.array", "goog.events.Event", "goog.fx.Transition", "goog.fx.Transition.EventType", "goog.fx.TransitionBase.State", "goog.fx.anim", "goog.fx.anim.Animated"]); +goog.addDependency("/closure/goog/fx/animationqueue.js", ["goog.fx.AnimationParallelQueue", "goog.fx.AnimationQueue", "goog.fx.AnimationSerialQueue"], ["goog.array", "goog.asserts", "goog.events.EventHandler", "goog.fx.Transition.EventType", "goog.fx.TransitionBase", "goog.fx.TransitionBase.State"]); +goog.addDependency("/closure/goog/fx/css3/fx.js", ["goog.fx.css3"], ["goog.fx.css3.Transition"]); +goog.addDependency("/closure/goog/fx/css3/transition.js", ["goog.fx.css3.Transition"], ["goog.Timer", "goog.fx.TransitionBase", "goog.style", "goog.style.transition"]); +goog.addDependency("/closure/goog/fx/cssspriteanimation.js", ["goog.fx.CssSpriteAnimation"], ["goog.fx.Animation"]); +goog.addDependency("/closure/goog/fx/dom.js", ["goog.fx.dom", "goog.fx.dom.BgColorTransform", "goog.fx.dom.ColorTransform", "goog.fx.dom.Fade", "goog.fx.dom.FadeIn", "goog.fx.dom.FadeInAndShow", "goog.fx.dom.FadeOut", "goog.fx.dom.FadeOutAndHide", "goog.fx.dom.PredefinedEffect", "goog.fx.dom.Resize", "goog.fx.dom.ResizeHeight", "goog.fx.dom.ResizeWidth", "goog.fx.dom.Scroll", "goog.fx.dom.Slide", "goog.fx.dom.SlideFrom", "goog.fx.dom.Swipe"], ["goog.color", "goog.events", "goog.fx.Animation", "goog.fx.Transition.EventType", +"goog.style", "goog.style.bidi"]); +goog.addDependency("/closure/goog/fx/dragdrop.js", ["goog.fx.DragDrop"], ["goog.fx.AbstractDragDrop", "goog.fx.DragDropItem"]); +goog.addDependency("/closure/goog/fx/dragdropgroup.js", ["goog.fx.DragDropGroup"], ["goog.dom", "goog.fx.AbstractDragDrop", "goog.fx.DragDropItem"]); +goog.addDependency("/closure/goog/fx/dragger.js", ["goog.fx.DragEvent", "goog.fx.Dragger", "goog.fx.Dragger.EventType"], ["goog.dom", "goog.events", "goog.events.Event", "goog.events.EventHandler", "goog.events.EventTarget", "goog.events.EventType", "goog.math.Coordinate", "goog.math.Rect", "goog.style", "goog.style.bidi", "goog.userAgent"]); +goog.addDependency("/closure/goog/fx/draglistgroup.js", ["goog.fx.DragListDirection", "goog.fx.DragListGroup", "goog.fx.DragListGroup.EventType", "goog.fx.DragListGroupEvent"], ["goog.asserts", "goog.dom", "goog.dom.NodeType", "goog.dom.classes", "goog.events.Event", "goog.events.EventHandler", "goog.events.EventTarget", "goog.events.EventType", "goog.fx.Dragger", "goog.fx.Dragger.EventType", "goog.math.Coordinate", "goog.style"]); +goog.addDependency("/closure/goog/fx/dragscrollsupport.js", ["goog.fx.DragScrollSupport"], ["goog.Disposable", "goog.Timer", "goog.dom", "goog.events.EventHandler", "goog.events.EventType", "goog.math.Coordinate", "goog.style"]); +goog.addDependency("/closure/goog/fx/easing.js", ["goog.fx.easing"], []); +goog.addDependency("/closure/goog/fx/fx.js", ["goog.fx"], ["goog.asserts", "goog.fx.Animation", "goog.fx.Animation.EventType", "goog.fx.Animation.State", "goog.fx.AnimationEvent", "goog.fx.Transition.EventType", "goog.fx.easing"]); +goog.addDependency("/closure/goog/fx/transition.js", ["goog.fx.Transition", "goog.fx.Transition.EventType"], []); +goog.addDependency("/closure/goog/fx/transitionbase.js", ["goog.fx.TransitionBase", "goog.fx.TransitionBase.State"], ["goog.events.EventTarget", "goog.fx.Transition", "goog.fx.Transition.EventType"]); +goog.addDependency("/closure/goog/gears/basestore.js", ["goog.gears.BaseStore", "goog.gears.BaseStore.SchemaType"], ["goog.Disposable"]); +goog.addDependency("/closure/goog/gears/database.js", ["goog.gears.Database", "goog.gears.Database.EventType", "goog.gears.Database.TransactionEvent"], ["goog.array", "goog.debug", "goog.events.Event", "goog.events.EventTarget", "goog.gears", "goog.json", "goog.log"]); +goog.addDependency("/closure/goog/gears/gears.js", ["goog.gears"], ["goog.string"]); +goog.addDependency("/closure/goog/gears/httprequest.js", ["goog.gears.HttpRequest"], ["goog.Timer", "goog.gears", "goog.net.WrapperXmlHttpFactory", "goog.net.XmlHttp"]); +goog.addDependency("/closure/goog/gears/loggerclient.js", ["goog.gears.LoggerClient"], ["goog.Disposable", "goog.debug", "goog.debug.Logger"]); +goog.addDependency("/closure/goog/gears/loggerserver.js", ["goog.gears.LoggerServer"], ["goog.Disposable", "goog.gears.Worker.EventType", "goog.log", "goog.log.Level"]); +goog.addDependency("/closure/goog/gears/logstore.js", ["goog.gears.LogStore", "goog.gears.LogStore.Query"], ["goog.async.Delay", "goog.debug.LogManager", "goog.gears.BaseStore", "goog.gears.BaseStore.SchemaType", "goog.json", "goog.log", "goog.log.Level", "goog.log.LogRecord"]); +goog.addDependency("/closure/goog/gears/managedresourcestore.js", ["goog.gears.ManagedResourceStore", "goog.gears.ManagedResourceStore.EventType", "goog.gears.ManagedResourceStore.UpdateStatus", "goog.gears.ManagedResourceStoreEvent"], ["goog.events.Event", "goog.events.EventTarget", "goog.gears", "goog.log", "goog.string"]); +goog.addDependency("/closure/goog/gears/multipartformdata.js", ["goog.gears.MultipartFormData"], ["goog.asserts", "goog.gears", "goog.string"]); +goog.addDependency("/closure/goog/gears/statustype.js", ["goog.gears.StatusType"], []); +goog.addDependency("/closure/goog/gears/urlcapture.js", ["goog.gears.UrlCapture", "goog.gears.UrlCapture.Event", "goog.gears.UrlCapture.EventType"], ["goog.Uri", "goog.events.Event", "goog.events.EventTarget", "goog.gears", "goog.log"]); +goog.addDependency("/closure/goog/gears/worker.js", ["goog.gears.Worker", "goog.gears.Worker.EventType", "goog.gears.WorkerEvent"], ["goog.events.Event", "goog.events.EventTarget"]); +goog.addDependency("/closure/goog/gears/workerchannel.js", ["goog.gears.WorkerChannel"], ["goog.Disposable", "goog.debug", "goog.events", "goog.gears.Worker", "goog.gears.Worker.EventType", "goog.gears.WorkerEvent", "goog.json", "goog.log", "goog.messaging.AbstractChannel"]); +goog.addDependency("/closure/goog/gears/workerpool.js", ["goog.gears.WorkerPool", "goog.gears.WorkerPool.Event", "goog.gears.WorkerPool.EventType"], ["goog.events.Event", "goog.events.EventTarget", "goog.gears", "goog.gears.Worker"]); +goog.addDependency("/closure/goog/graphics/abstractgraphics.js", ["goog.graphics.AbstractGraphics"], ["goog.dom", "goog.graphics.Path", "goog.math.Coordinate", "goog.math.Size", "goog.style", "goog.ui.Component"]); +goog.addDependency("/closure/goog/graphics/affinetransform.js", ["goog.graphics.AffineTransform"], ["goog.math"]); +goog.addDependency("/closure/goog/graphics/canvaselement.js", ["goog.graphics.CanvasEllipseElement", "goog.graphics.CanvasGroupElement", "goog.graphics.CanvasImageElement", "goog.graphics.CanvasPathElement", "goog.graphics.CanvasRectElement", "goog.graphics.CanvasTextElement"], ["goog.array", "goog.dom", "goog.dom.TagName", "goog.graphics.EllipseElement", "goog.graphics.GroupElement", "goog.graphics.ImageElement", "goog.graphics.Path", "goog.graphics.PathElement", "goog.graphics.RectElement", "goog.graphics.TextElement", +"goog.math", "goog.string"]); +goog.addDependency("/closure/goog/graphics/canvasgraphics.js", ["goog.graphics.CanvasGraphics"], ["goog.events.EventType", "goog.graphics.AbstractGraphics", "goog.graphics.CanvasEllipseElement", "goog.graphics.CanvasGroupElement", "goog.graphics.CanvasImageElement", "goog.graphics.CanvasPathElement", "goog.graphics.CanvasRectElement", "goog.graphics.CanvasTextElement", "goog.graphics.SolidFill", "goog.math.Size", "goog.style"]); +goog.addDependency("/closure/goog/graphics/element.js", ["goog.graphics.Element"], ["goog.events", "goog.events.EventTarget", "goog.events.Listenable", "goog.graphics.AffineTransform", "goog.math"]); +goog.addDependency("/closure/goog/graphics/ellipseelement.js", ["goog.graphics.EllipseElement"], ["goog.graphics.StrokeAndFillElement"]); +goog.addDependency("/closure/goog/graphics/ext/coordinates.js", ["goog.graphics.ext.coordinates"], ["goog.string"]); +goog.addDependency("/closure/goog/graphics/ext/element.js", ["goog.graphics.ext.Element"], ["goog.events", "goog.events.EventTarget", "goog.functions", "goog.graphics", "goog.graphics.ext.coordinates"]); +goog.addDependency("/closure/goog/graphics/ext/ellipse.js", ["goog.graphics.ext.Ellipse"], ["goog.graphics.ext.StrokeAndFillElement"]); +goog.addDependency("/closure/goog/graphics/ext/ext.js", ["goog.graphics.ext"], ["goog.graphics.ext.Ellipse", "goog.graphics.ext.Graphics", "goog.graphics.ext.Group", "goog.graphics.ext.Image", "goog.graphics.ext.Rectangle", "goog.graphics.ext.Shape", "goog.graphics.ext.coordinates"]); +goog.addDependency("/closure/goog/graphics/ext/graphics.js", ["goog.graphics.ext.Graphics"], ["goog.events.EventType", "goog.graphics.ext.Group"]); +goog.addDependency("/closure/goog/graphics/ext/group.js", ["goog.graphics.ext.Group"], ["goog.graphics.ext.Element"]); +goog.addDependency("/closure/goog/graphics/ext/image.js", ["goog.graphics.ext.Image"], ["goog.graphics.ext.Element"]); +goog.addDependency("/closure/goog/graphics/ext/path.js", ["goog.graphics.ext.Path"], ["goog.graphics.AffineTransform", "goog.graphics.Path", "goog.math", "goog.math.Rect"]); +goog.addDependency("/closure/goog/graphics/ext/rectangle.js", ["goog.graphics.ext.Rectangle"], ["goog.graphics.ext.StrokeAndFillElement"]); +goog.addDependency("/closure/goog/graphics/ext/shape.js", ["goog.graphics.ext.Shape"], ["goog.graphics.ext.Path", "goog.graphics.ext.StrokeAndFillElement", "goog.math.Rect"]); +goog.addDependency("/closure/goog/graphics/ext/strokeandfillelement.js", ["goog.graphics.ext.StrokeAndFillElement"], ["goog.graphics.ext.Element"]); +goog.addDependency("/closure/goog/graphics/fill.js", ["goog.graphics.Fill"], []); +goog.addDependency("/closure/goog/graphics/font.js", ["goog.graphics.Font"], []); +goog.addDependency("/closure/goog/graphics/graphics.js", ["goog.graphics"], ["goog.graphics.CanvasGraphics", "goog.graphics.SvgGraphics", "goog.graphics.VmlGraphics", "goog.userAgent"]); +goog.addDependency("/closure/goog/graphics/groupelement.js", ["goog.graphics.GroupElement"], ["goog.graphics.Element"]); +goog.addDependency("/closure/goog/graphics/imageelement.js", ["goog.graphics.ImageElement"], ["goog.graphics.Element"]); +goog.addDependency("/closure/goog/graphics/lineargradient.js", ["goog.graphics.LinearGradient"], ["goog.asserts", "goog.graphics.Fill"]); +goog.addDependency("/closure/goog/graphics/path.js", ["goog.graphics.Path", "goog.graphics.Path.Segment"], ["goog.array", "goog.math"]); +goog.addDependency("/closure/goog/graphics/pathelement.js", ["goog.graphics.PathElement"], ["goog.graphics.StrokeAndFillElement"]); +goog.addDependency("/closure/goog/graphics/paths.js", ["goog.graphics.paths"], ["goog.graphics.Path", "goog.math.Coordinate"]); +goog.addDependency("/closure/goog/graphics/rectelement.js", ["goog.graphics.RectElement"], ["goog.graphics.StrokeAndFillElement"]); +goog.addDependency("/closure/goog/graphics/solidfill.js", ["goog.graphics.SolidFill"], ["goog.graphics.Fill"]); +goog.addDependency("/closure/goog/graphics/stroke.js", ["goog.graphics.Stroke"], []); +goog.addDependency("/closure/goog/graphics/strokeandfillelement.js", ["goog.graphics.StrokeAndFillElement"], ["goog.graphics.Element"]); +goog.addDependency("/closure/goog/graphics/svgelement.js", ["goog.graphics.SvgEllipseElement", "goog.graphics.SvgGroupElement", "goog.graphics.SvgImageElement", "goog.graphics.SvgPathElement", "goog.graphics.SvgRectElement", "goog.graphics.SvgTextElement"], ["goog.dom", "goog.graphics.EllipseElement", "goog.graphics.GroupElement", "goog.graphics.ImageElement", "goog.graphics.PathElement", "goog.graphics.RectElement", "goog.graphics.TextElement"]); +goog.addDependency("/closure/goog/graphics/svggraphics.js", ["goog.graphics.SvgGraphics"], ["goog.Timer", "goog.dom", "goog.events.EventHandler", "goog.events.EventType", "goog.graphics.AbstractGraphics", "goog.graphics.LinearGradient", "goog.graphics.Path", "goog.graphics.SolidFill", "goog.graphics.Stroke", "goog.graphics.SvgEllipseElement", "goog.graphics.SvgGroupElement", "goog.graphics.SvgImageElement", "goog.graphics.SvgPathElement", "goog.graphics.SvgRectElement", "goog.graphics.SvgTextElement", +"goog.math", "goog.math.Size", "goog.style", "goog.userAgent"]); +goog.addDependency("/closure/goog/graphics/textelement.js", ["goog.graphics.TextElement"], ["goog.graphics.StrokeAndFillElement"]); +goog.addDependency("/closure/goog/graphics/vmlelement.js", ["goog.graphics.VmlEllipseElement", "goog.graphics.VmlGroupElement", "goog.graphics.VmlImageElement", "goog.graphics.VmlPathElement", "goog.graphics.VmlRectElement", "goog.graphics.VmlTextElement"], ["goog.dom", "goog.graphics.EllipseElement", "goog.graphics.GroupElement", "goog.graphics.ImageElement", "goog.graphics.PathElement", "goog.graphics.RectElement", "goog.graphics.TextElement"]); +goog.addDependency("/closure/goog/graphics/vmlgraphics.js", ["goog.graphics.VmlGraphics"], ["goog.array", "goog.events", "goog.events.EventHandler", "goog.events.EventType", "goog.graphics.AbstractGraphics", "goog.graphics.LinearGradient", "goog.graphics.Path", "goog.graphics.SolidFill", "goog.graphics.VmlEllipseElement", "goog.graphics.VmlGroupElement", "goog.graphics.VmlImageElement", "goog.graphics.VmlPathElement", "goog.graphics.VmlRectElement", "goog.graphics.VmlTextElement", "goog.math", "goog.math.Size", +"goog.string", "goog.style"]); +goog.addDependency("/closure/goog/history/event.js", ["goog.history.Event"], ["goog.events.Event", "goog.history.EventType"]); +goog.addDependency("/closure/goog/history/eventtype.js", ["goog.history.EventType"], []); +goog.addDependency("/closure/goog/history/history.js", ["goog.History", "goog.History.Event", "goog.History.EventType"], ["goog.Timer", "goog.dom", "goog.events.EventHandler", "goog.events.EventTarget", "goog.events.EventType", "goog.history.Event", "goog.history.EventType", "goog.memoize", "goog.string", "goog.userAgent"]); +goog.addDependency("/closure/goog/history/history_test.js", ["goog.HistoryTest"], ["goog.History", "goog.testing.jsunit", "goog.userAgent"]); +goog.addDependency("/closure/goog/history/html5history.js", ["goog.history.Html5History", "goog.history.Html5History.TokenTransformer"], ["goog.asserts", "goog.events", "goog.events.EventTarget", "goog.events.EventType", "goog.history.Event", "goog.history.EventType"]); +goog.addDependency("/closure/goog/i18n/bidi.js", ["goog.i18n.bidi"], []); +goog.addDependency("/closure/goog/i18n/bidiformatter.js", ["goog.i18n.BidiFormatter"], ["goog.i18n.bidi", "goog.string"]); +goog.addDependency("/closure/goog/i18n/charlistdecompressor.js", ["goog.i18n.CharListDecompressor"], ["goog.array", "goog.i18n.uChar"]); +goog.addDependency("/closure/goog/i18n/charpickerdata.js", ["goog.i18n.CharPickerData"], []); +goog.addDependency("/closure/goog/i18n/collation.js", ["goog.i18n.collation"], []); +goog.addDependency("/closure/goog/i18n/compactnumberformatsymbols.js", ["goog.i18n.CompactNumberFormatSymbols", "goog.i18n.CompactNumberFormatSymbols_af", "goog.i18n.CompactNumberFormatSymbols_af_ZA", "goog.i18n.CompactNumberFormatSymbols_am", "goog.i18n.CompactNumberFormatSymbols_am_ET", "goog.i18n.CompactNumberFormatSymbols_ar", "goog.i18n.CompactNumberFormatSymbols_ar_001", "goog.i18n.CompactNumberFormatSymbols_ar_EG", "goog.i18n.CompactNumberFormatSymbols_bg", "goog.i18n.CompactNumberFormatSymbols_bg_BG", +"goog.i18n.CompactNumberFormatSymbols_bn", "goog.i18n.CompactNumberFormatSymbols_bn_BD", "goog.i18n.CompactNumberFormatSymbols_br", "goog.i18n.CompactNumberFormatSymbols_br_FR", "goog.i18n.CompactNumberFormatSymbols_ca", "goog.i18n.CompactNumberFormatSymbols_ca_AD", "goog.i18n.CompactNumberFormatSymbols_ca_ES", "goog.i18n.CompactNumberFormatSymbols_chr", "goog.i18n.CompactNumberFormatSymbols_chr_US", "goog.i18n.CompactNumberFormatSymbols_cs", "goog.i18n.CompactNumberFormatSymbols_cs_CZ", "goog.i18n.CompactNumberFormatSymbols_cy", +"goog.i18n.CompactNumberFormatSymbols_cy_GB", "goog.i18n.CompactNumberFormatSymbols_da", "goog.i18n.CompactNumberFormatSymbols_da_DK", "goog.i18n.CompactNumberFormatSymbols_de", "goog.i18n.CompactNumberFormatSymbols_de_AT", "goog.i18n.CompactNumberFormatSymbols_de_BE", "goog.i18n.CompactNumberFormatSymbols_de_CH", "goog.i18n.CompactNumberFormatSymbols_de_DE", "goog.i18n.CompactNumberFormatSymbols_de_LU", "goog.i18n.CompactNumberFormatSymbols_el", "goog.i18n.CompactNumberFormatSymbols_el_GR", "goog.i18n.CompactNumberFormatSymbols_en", +"goog.i18n.CompactNumberFormatSymbols_en_AS", "goog.i18n.CompactNumberFormatSymbols_en_AU", "goog.i18n.CompactNumberFormatSymbols_en_Dsrt_US", "goog.i18n.CompactNumberFormatSymbols_en_FM", "goog.i18n.CompactNumberFormatSymbols_en_GB", "goog.i18n.CompactNumberFormatSymbols_en_GU", "goog.i18n.CompactNumberFormatSymbols_en_IE", "goog.i18n.CompactNumberFormatSymbols_en_IN", "goog.i18n.CompactNumberFormatSymbols_en_MH", "goog.i18n.CompactNumberFormatSymbols_en_MP", "goog.i18n.CompactNumberFormatSymbols_en_PR", +"goog.i18n.CompactNumberFormatSymbols_en_PW", "goog.i18n.CompactNumberFormatSymbols_en_SG", "goog.i18n.CompactNumberFormatSymbols_en_TC", "goog.i18n.CompactNumberFormatSymbols_en_UM", "goog.i18n.CompactNumberFormatSymbols_en_US", "goog.i18n.CompactNumberFormatSymbols_en_VG", "goog.i18n.CompactNumberFormatSymbols_en_VI", "goog.i18n.CompactNumberFormatSymbols_en_ZA", "goog.i18n.CompactNumberFormatSymbols_es", "goog.i18n.CompactNumberFormatSymbols_es_419", "goog.i18n.CompactNumberFormatSymbols_es_EA", +"goog.i18n.CompactNumberFormatSymbols_es_ES", "goog.i18n.CompactNumberFormatSymbols_es_IC", "goog.i18n.CompactNumberFormatSymbols_et", "goog.i18n.CompactNumberFormatSymbols_et_EE", "goog.i18n.CompactNumberFormatSymbols_eu", "goog.i18n.CompactNumberFormatSymbols_eu_ES", "goog.i18n.CompactNumberFormatSymbols_fa", "goog.i18n.CompactNumberFormatSymbols_fa_IR", "goog.i18n.CompactNumberFormatSymbols_fi", "goog.i18n.CompactNumberFormatSymbols_fi_FI", "goog.i18n.CompactNumberFormatSymbols_fil", "goog.i18n.CompactNumberFormatSymbols_fil_PH", +"goog.i18n.CompactNumberFormatSymbols_fr", "goog.i18n.CompactNumberFormatSymbols_fr_BL", "goog.i18n.CompactNumberFormatSymbols_fr_CA", "goog.i18n.CompactNumberFormatSymbols_fr_FR", "goog.i18n.CompactNumberFormatSymbols_fr_GF", "goog.i18n.CompactNumberFormatSymbols_fr_GP", "goog.i18n.CompactNumberFormatSymbols_fr_MC", "goog.i18n.CompactNumberFormatSymbols_fr_MF", "goog.i18n.CompactNumberFormatSymbols_fr_MQ", "goog.i18n.CompactNumberFormatSymbols_fr_RE", "goog.i18n.CompactNumberFormatSymbols_fr_YT", +"goog.i18n.CompactNumberFormatSymbols_gl", "goog.i18n.CompactNumberFormatSymbols_gl_ES", "goog.i18n.CompactNumberFormatSymbols_gsw", "goog.i18n.CompactNumberFormatSymbols_gsw_CH", "goog.i18n.CompactNumberFormatSymbols_gu", "goog.i18n.CompactNumberFormatSymbols_gu_IN", "goog.i18n.CompactNumberFormatSymbols_haw", "goog.i18n.CompactNumberFormatSymbols_haw_US", "goog.i18n.CompactNumberFormatSymbols_he", "goog.i18n.CompactNumberFormatSymbols_he_IL", "goog.i18n.CompactNumberFormatSymbols_hi", "goog.i18n.CompactNumberFormatSymbols_hi_IN", +"goog.i18n.CompactNumberFormatSymbols_hr", "goog.i18n.CompactNumberFormatSymbols_hr_HR", "goog.i18n.CompactNumberFormatSymbols_hu", "goog.i18n.CompactNumberFormatSymbols_hu_HU", "goog.i18n.CompactNumberFormatSymbols_id", "goog.i18n.CompactNumberFormatSymbols_id_ID", "goog.i18n.CompactNumberFormatSymbols_in", "goog.i18n.CompactNumberFormatSymbols_is", "goog.i18n.CompactNumberFormatSymbols_is_IS", "goog.i18n.CompactNumberFormatSymbols_it", "goog.i18n.CompactNumberFormatSymbols_it_IT", "goog.i18n.CompactNumberFormatSymbols_it_SM", +"goog.i18n.CompactNumberFormatSymbols_iw", "goog.i18n.CompactNumberFormatSymbols_ja", "goog.i18n.CompactNumberFormatSymbols_ja_JP", "goog.i18n.CompactNumberFormatSymbols_kn", "goog.i18n.CompactNumberFormatSymbols_kn_IN", "goog.i18n.CompactNumberFormatSymbols_ko", "goog.i18n.CompactNumberFormatSymbols_ko_KR", "goog.i18n.CompactNumberFormatSymbols_ln", "goog.i18n.CompactNumberFormatSymbols_ln_CD", "goog.i18n.CompactNumberFormatSymbols_lt", "goog.i18n.CompactNumberFormatSymbols_lt_LT", "goog.i18n.CompactNumberFormatSymbols_lv", +"goog.i18n.CompactNumberFormatSymbols_lv_LV", "goog.i18n.CompactNumberFormatSymbols_ml", "goog.i18n.CompactNumberFormatSymbols_ml_IN", "goog.i18n.CompactNumberFormatSymbols_mr", "goog.i18n.CompactNumberFormatSymbols_mr_IN", "goog.i18n.CompactNumberFormatSymbols_ms", "goog.i18n.CompactNumberFormatSymbols_ms_Latn_MY", "goog.i18n.CompactNumberFormatSymbols_mt", "goog.i18n.CompactNumberFormatSymbols_mt_MT", "goog.i18n.CompactNumberFormatSymbols_nb", "goog.i18n.CompactNumberFormatSymbols_nb_NO", "goog.i18n.CompactNumberFormatSymbols_nl", +"goog.i18n.CompactNumberFormatSymbols_nl_NL", "goog.i18n.CompactNumberFormatSymbols_no", "goog.i18n.CompactNumberFormatSymbols_or", "goog.i18n.CompactNumberFormatSymbols_or_IN", "goog.i18n.CompactNumberFormatSymbols_pl", "goog.i18n.CompactNumberFormatSymbols_pl_PL", "goog.i18n.CompactNumberFormatSymbols_pt", "goog.i18n.CompactNumberFormatSymbols_pt_BR", "goog.i18n.CompactNumberFormatSymbols_pt_PT", "goog.i18n.CompactNumberFormatSymbols_ro", "goog.i18n.CompactNumberFormatSymbols_ro_RO", "goog.i18n.CompactNumberFormatSymbols_ru", +"goog.i18n.CompactNumberFormatSymbols_ru_RU", "goog.i18n.CompactNumberFormatSymbols_sk", "goog.i18n.CompactNumberFormatSymbols_sk_SK", "goog.i18n.CompactNumberFormatSymbols_sl", "goog.i18n.CompactNumberFormatSymbols_sl_SI", "goog.i18n.CompactNumberFormatSymbols_sq", "goog.i18n.CompactNumberFormatSymbols_sq_AL", "goog.i18n.CompactNumberFormatSymbols_sr", "goog.i18n.CompactNumberFormatSymbols_sr_Cyrl_RS", "goog.i18n.CompactNumberFormatSymbols_sv", "goog.i18n.CompactNumberFormatSymbols_sv_SE", "goog.i18n.CompactNumberFormatSymbols_sw", +"goog.i18n.CompactNumberFormatSymbols_sw_TZ", "goog.i18n.CompactNumberFormatSymbols_ta", "goog.i18n.CompactNumberFormatSymbols_ta_IN", "goog.i18n.CompactNumberFormatSymbols_te", "goog.i18n.CompactNumberFormatSymbols_te_IN", "goog.i18n.CompactNumberFormatSymbols_th", "goog.i18n.CompactNumberFormatSymbols_th_TH", "goog.i18n.CompactNumberFormatSymbols_tl", "goog.i18n.CompactNumberFormatSymbols_tr", "goog.i18n.CompactNumberFormatSymbols_tr_TR", "goog.i18n.CompactNumberFormatSymbols_uk", "goog.i18n.CompactNumberFormatSymbols_uk_UA", +"goog.i18n.CompactNumberFormatSymbols_ur", "goog.i18n.CompactNumberFormatSymbols_ur_PK", "goog.i18n.CompactNumberFormatSymbols_vi", "goog.i18n.CompactNumberFormatSymbols_vi_VN", "goog.i18n.CompactNumberFormatSymbols_zh", "goog.i18n.CompactNumberFormatSymbols_zh_CN", "goog.i18n.CompactNumberFormatSymbols_zh_HK", "goog.i18n.CompactNumberFormatSymbols_zh_Hans_CN", "goog.i18n.CompactNumberFormatSymbols_zh_TW", "goog.i18n.CompactNumberFormatSymbols_zu", "goog.i18n.CompactNumberFormatSymbols_zu_ZA"], []); +goog.addDependency("/closure/goog/i18n/compactnumberformatsymbols_ext.js", ["goog.i18n.CompactNumberFormatSymbolsExt", "goog.i18n.CompactNumberFormatSymbols_aa", "goog.i18n.CompactNumberFormatSymbols_aa_DJ", "goog.i18n.CompactNumberFormatSymbols_aa_ER", "goog.i18n.CompactNumberFormatSymbols_aa_ET", "goog.i18n.CompactNumberFormatSymbols_af_NA", "goog.i18n.CompactNumberFormatSymbols_agq", "goog.i18n.CompactNumberFormatSymbols_agq_CM", "goog.i18n.CompactNumberFormatSymbols_ak", "goog.i18n.CompactNumberFormatSymbols_ak_GH", +"goog.i18n.CompactNumberFormatSymbols_ar_AE", "goog.i18n.CompactNumberFormatSymbols_ar_BH", "goog.i18n.CompactNumberFormatSymbols_ar_DJ", "goog.i18n.CompactNumberFormatSymbols_ar_DZ", "goog.i18n.CompactNumberFormatSymbols_ar_EH", "goog.i18n.CompactNumberFormatSymbols_ar_ER", "goog.i18n.CompactNumberFormatSymbols_ar_IL", "goog.i18n.CompactNumberFormatSymbols_ar_IQ", "goog.i18n.CompactNumberFormatSymbols_ar_JO", "goog.i18n.CompactNumberFormatSymbols_ar_KM", "goog.i18n.CompactNumberFormatSymbols_ar_KW", +"goog.i18n.CompactNumberFormatSymbols_ar_LB", "goog.i18n.CompactNumberFormatSymbols_ar_LY", "goog.i18n.CompactNumberFormatSymbols_ar_MA", "goog.i18n.CompactNumberFormatSymbols_ar_MR", "goog.i18n.CompactNumberFormatSymbols_ar_OM", "goog.i18n.CompactNumberFormatSymbols_ar_PS", "goog.i18n.CompactNumberFormatSymbols_ar_QA", "goog.i18n.CompactNumberFormatSymbols_ar_SA", "goog.i18n.CompactNumberFormatSymbols_ar_SD", "goog.i18n.CompactNumberFormatSymbols_ar_SO", "goog.i18n.CompactNumberFormatSymbols_ar_SY", +"goog.i18n.CompactNumberFormatSymbols_ar_TD", "goog.i18n.CompactNumberFormatSymbols_ar_TN", "goog.i18n.CompactNumberFormatSymbols_ar_YE", "goog.i18n.CompactNumberFormatSymbols_as", "goog.i18n.CompactNumberFormatSymbols_as_IN", "goog.i18n.CompactNumberFormatSymbols_asa", "goog.i18n.CompactNumberFormatSymbols_asa_TZ", "goog.i18n.CompactNumberFormatSymbols_ast", "goog.i18n.CompactNumberFormatSymbols_ast_ES", "goog.i18n.CompactNumberFormatSymbols_az", "goog.i18n.CompactNumberFormatSymbols_az_Cyrl", "goog.i18n.CompactNumberFormatSymbols_az_Cyrl_AZ", +"goog.i18n.CompactNumberFormatSymbols_az_Latn", "goog.i18n.CompactNumberFormatSymbols_az_Latn_AZ", "goog.i18n.CompactNumberFormatSymbols_bas", "goog.i18n.CompactNumberFormatSymbols_bas_CM", "goog.i18n.CompactNumberFormatSymbols_be", "goog.i18n.CompactNumberFormatSymbols_be_BY", "goog.i18n.CompactNumberFormatSymbols_bem", "goog.i18n.CompactNumberFormatSymbols_bem_ZM", "goog.i18n.CompactNumberFormatSymbols_bez", "goog.i18n.CompactNumberFormatSymbols_bez_TZ", "goog.i18n.CompactNumberFormatSymbols_bm", +"goog.i18n.CompactNumberFormatSymbols_bm_ML", "goog.i18n.CompactNumberFormatSymbols_bn_IN", "goog.i18n.CompactNumberFormatSymbols_bo", "goog.i18n.CompactNumberFormatSymbols_bo_CN", "goog.i18n.CompactNumberFormatSymbols_bo_IN", "goog.i18n.CompactNumberFormatSymbols_brx", "goog.i18n.CompactNumberFormatSymbols_brx_IN", "goog.i18n.CompactNumberFormatSymbols_bs", "goog.i18n.CompactNumberFormatSymbols_bs_Cyrl", "goog.i18n.CompactNumberFormatSymbols_bs_Cyrl_BA", "goog.i18n.CompactNumberFormatSymbols_bs_Latn", +"goog.i18n.CompactNumberFormatSymbols_bs_Latn_BA", "goog.i18n.CompactNumberFormatSymbols_byn", "goog.i18n.CompactNumberFormatSymbols_byn_ER", "goog.i18n.CompactNumberFormatSymbols_cgg", "goog.i18n.CompactNumberFormatSymbols_cgg_UG", "goog.i18n.CompactNumberFormatSymbols_ckb", "goog.i18n.CompactNumberFormatSymbols_ckb_Arab", "goog.i18n.CompactNumberFormatSymbols_ckb_Arab_IQ", "goog.i18n.CompactNumberFormatSymbols_ckb_Arab_IR", "goog.i18n.CompactNumberFormatSymbols_ckb_IQ", "goog.i18n.CompactNumberFormatSymbols_ckb_IR", +"goog.i18n.CompactNumberFormatSymbols_ckb_Latn", "goog.i18n.CompactNumberFormatSymbols_ckb_Latn_IQ", "goog.i18n.CompactNumberFormatSymbols_dav", "goog.i18n.CompactNumberFormatSymbols_dav_KE", "goog.i18n.CompactNumberFormatSymbols_de_LI", "goog.i18n.CompactNumberFormatSymbols_dje", "goog.i18n.CompactNumberFormatSymbols_dje_NE", "goog.i18n.CompactNumberFormatSymbols_dua", "goog.i18n.CompactNumberFormatSymbols_dua_CM", "goog.i18n.CompactNumberFormatSymbols_dyo", "goog.i18n.CompactNumberFormatSymbols_dyo_SN", +"goog.i18n.CompactNumberFormatSymbols_dz", "goog.i18n.CompactNumberFormatSymbols_dz_BT", "goog.i18n.CompactNumberFormatSymbols_ebu", "goog.i18n.CompactNumberFormatSymbols_ebu_KE", "goog.i18n.CompactNumberFormatSymbols_ee", "goog.i18n.CompactNumberFormatSymbols_ee_GH", "goog.i18n.CompactNumberFormatSymbols_ee_TG", "goog.i18n.CompactNumberFormatSymbols_el_CY", "goog.i18n.CompactNumberFormatSymbols_en_150", "goog.i18n.CompactNumberFormatSymbols_en_AG", "goog.i18n.CompactNumberFormatSymbols_en_BB", "goog.i18n.CompactNumberFormatSymbols_en_BE", +"goog.i18n.CompactNumberFormatSymbols_en_BM", "goog.i18n.CompactNumberFormatSymbols_en_BS", "goog.i18n.CompactNumberFormatSymbols_en_BW", "goog.i18n.CompactNumberFormatSymbols_en_BZ", "goog.i18n.CompactNumberFormatSymbols_en_CA", "goog.i18n.CompactNumberFormatSymbols_en_CM", "goog.i18n.CompactNumberFormatSymbols_en_DM", "goog.i18n.CompactNumberFormatSymbols_en_Dsrt", "goog.i18n.CompactNumberFormatSymbols_en_FJ", "goog.i18n.CompactNumberFormatSymbols_en_GD", "goog.i18n.CompactNumberFormatSymbols_en_GG", +"goog.i18n.CompactNumberFormatSymbols_en_GH", "goog.i18n.CompactNumberFormatSymbols_en_GI", "goog.i18n.CompactNumberFormatSymbols_en_GM", "goog.i18n.CompactNumberFormatSymbols_en_GY", "goog.i18n.CompactNumberFormatSymbols_en_HK", "goog.i18n.CompactNumberFormatSymbols_en_IM", "goog.i18n.CompactNumberFormatSymbols_en_JE", "goog.i18n.CompactNumberFormatSymbols_en_JM", "goog.i18n.CompactNumberFormatSymbols_en_KE", "goog.i18n.CompactNumberFormatSymbols_en_KI", "goog.i18n.CompactNumberFormatSymbols_en_KN", +"goog.i18n.CompactNumberFormatSymbols_en_KY", "goog.i18n.CompactNumberFormatSymbols_en_LC", "goog.i18n.CompactNumberFormatSymbols_en_LR", "goog.i18n.CompactNumberFormatSymbols_en_LS", "goog.i18n.CompactNumberFormatSymbols_en_MG", "goog.i18n.CompactNumberFormatSymbols_en_MT", "goog.i18n.CompactNumberFormatSymbols_en_MU", "goog.i18n.CompactNumberFormatSymbols_en_MW", "goog.i18n.CompactNumberFormatSymbols_en_NA", "goog.i18n.CompactNumberFormatSymbols_en_NG", "goog.i18n.CompactNumberFormatSymbols_en_NZ", +"goog.i18n.CompactNumberFormatSymbols_en_PG", "goog.i18n.CompactNumberFormatSymbols_en_PH", "goog.i18n.CompactNumberFormatSymbols_en_PK", "goog.i18n.CompactNumberFormatSymbols_en_SB", "goog.i18n.CompactNumberFormatSymbols_en_SC", "goog.i18n.CompactNumberFormatSymbols_en_SL", "goog.i18n.CompactNumberFormatSymbols_en_SS", "goog.i18n.CompactNumberFormatSymbols_en_SZ", "goog.i18n.CompactNumberFormatSymbols_en_TO", "goog.i18n.CompactNumberFormatSymbols_en_TT", "goog.i18n.CompactNumberFormatSymbols_en_TZ", +"goog.i18n.CompactNumberFormatSymbols_en_UG", "goog.i18n.CompactNumberFormatSymbols_en_VC", "goog.i18n.CompactNumberFormatSymbols_en_VU", "goog.i18n.CompactNumberFormatSymbols_en_WS", "goog.i18n.CompactNumberFormatSymbols_en_ZM", "goog.i18n.CompactNumberFormatSymbols_en_ZW", "goog.i18n.CompactNumberFormatSymbols_eo", "goog.i18n.CompactNumberFormatSymbols_es_AR", "goog.i18n.CompactNumberFormatSymbols_es_BO", "goog.i18n.CompactNumberFormatSymbols_es_CL", "goog.i18n.CompactNumberFormatSymbols_es_CO", +"goog.i18n.CompactNumberFormatSymbols_es_CR", "goog.i18n.CompactNumberFormatSymbols_es_CU", "goog.i18n.CompactNumberFormatSymbols_es_DO", "goog.i18n.CompactNumberFormatSymbols_es_EC", "goog.i18n.CompactNumberFormatSymbols_es_GQ", "goog.i18n.CompactNumberFormatSymbols_es_GT", "goog.i18n.CompactNumberFormatSymbols_es_HN", "goog.i18n.CompactNumberFormatSymbols_es_MX", "goog.i18n.CompactNumberFormatSymbols_es_NI", "goog.i18n.CompactNumberFormatSymbols_es_PA", "goog.i18n.CompactNumberFormatSymbols_es_PE", +"goog.i18n.CompactNumberFormatSymbols_es_PH", "goog.i18n.CompactNumberFormatSymbols_es_PR", "goog.i18n.CompactNumberFormatSymbols_es_PY", "goog.i18n.CompactNumberFormatSymbols_es_SV", "goog.i18n.CompactNumberFormatSymbols_es_US", "goog.i18n.CompactNumberFormatSymbols_es_UY", "goog.i18n.CompactNumberFormatSymbols_es_VE", "goog.i18n.CompactNumberFormatSymbols_ewo", "goog.i18n.CompactNumberFormatSymbols_ewo_CM", "goog.i18n.CompactNumberFormatSymbols_fa_AF", "goog.i18n.CompactNumberFormatSymbols_ff", +"goog.i18n.CompactNumberFormatSymbols_ff_SN", "goog.i18n.CompactNumberFormatSymbols_fo", "goog.i18n.CompactNumberFormatSymbols_fo_FO", "goog.i18n.CompactNumberFormatSymbols_fr_BE", "goog.i18n.CompactNumberFormatSymbols_fr_BF", "goog.i18n.CompactNumberFormatSymbols_fr_BI", "goog.i18n.CompactNumberFormatSymbols_fr_BJ", "goog.i18n.CompactNumberFormatSymbols_fr_CD", "goog.i18n.CompactNumberFormatSymbols_fr_CF", "goog.i18n.CompactNumberFormatSymbols_fr_CG", "goog.i18n.CompactNumberFormatSymbols_fr_CH", +"goog.i18n.CompactNumberFormatSymbols_fr_CI", "goog.i18n.CompactNumberFormatSymbols_fr_CM", "goog.i18n.CompactNumberFormatSymbols_fr_DJ", "goog.i18n.CompactNumberFormatSymbols_fr_DZ", "goog.i18n.CompactNumberFormatSymbols_fr_GA", "goog.i18n.CompactNumberFormatSymbols_fr_GN", "goog.i18n.CompactNumberFormatSymbols_fr_GQ", "goog.i18n.CompactNumberFormatSymbols_fr_HT", "goog.i18n.CompactNumberFormatSymbols_fr_KM", "goog.i18n.CompactNumberFormatSymbols_fr_LU", "goog.i18n.CompactNumberFormatSymbols_fr_MA", +"goog.i18n.CompactNumberFormatSymbols_fr_MG", "goog.i18n.CompactNumberFormatSymbols_fr_ML", "goog.i18n.CompactNumberFormatSymbols_fr_MR", "goog.i18n.CompactNumberFormatSymbols_fr_MU", "goog.i18n.CompactNumberFormatSymbols_fr_NC", "goog.i18n.CompactNumberFormatSymbols_fr_NE", "goog.i18n.CompactNumberFormatSymbols_fr_PF", "goog.i18n.CompactNumberFormatSymbols_fr_RW", "goog.i18n.CompactNumberFormatSymbols_fr_SC", "goog.i18n.CompactNumberFormatSymbols_fr_SN", "goog.i18n.CompactNumberFormatSymbols_fr_SY", +"goog.i18n.CompactNumberFormatSymbols_fr_TD", "goog.i18n.CompactNumberFormatSymbols_fr_TG", "goog.i18n.CompactNumberFormatSymbols_fr_TN", "goog.i18n.CompactNumberFormatSymbols_fr_VU", "goog.i18n.CompactNumberFormatSymbols_fur", "goog.i18n.CompactNumberFormatSymbols_fur_IT", "goog.i18n.CompactNumberFormatSymbols_ga", "goog.i18n.CompactNumberFormatSymbols_ga_IE", "goog.i18n.CompactNumberFormatSymbols_gd", "goog.i18n.CompactNumberFormatSymbols_gd_GB", "goog.i18n.CompactNumberFormatSymbols_guz", "goog.i18n.CompactNumberFormatSymbols_guz_KE", +"goog.i18n.CompactNumberFormatSymbols_gv", "goog.i18n.CompactNumberFormatSymbols_gv_GB", "goog.i18n.CompactNumberFormatSymbols_ha", "goog.i18n.CompactNumberFormatSymbols_ha_Latn", "goog.i18n.CompactNumberFormatSymbols_ha_Latn_GH", "goog.i18n.CompactNumberFormatSymbols_ha_Latn_NE", "goog.i18n.CompactNumberFormatSymbols_ha_Latn_NG", "goog.i18n.CompactNumberFormatSymbols_hr_BA", "goog.i18n.CompactNumberFormatSymbols_hy", "goog.i18n.CompactNumberFormatSymbols_hy_AM", "goog.i18n.CompactNumberFormatSymbols_ia", +"goog.i18n.CompactNumberFormatSymbols_ia_FR", "goog.i18n.CompactNumberFormatSymbols_ig", "goog.i18n.CompactNumberFormatSymbols_ig_NG", "goog.i18n.CompactNumberFormatSymbols_ii", "goog.i18n.CompactNumberFormatSymbols_ii_CN", "goog.i18n.CompactNumberFormatSymbols_it_CH", "goog.i18n.CompactNumberFormatSymbols_jgo", "goog.i18n.CompactNumberFormatSymbols_jgo_CM", "goog.i18n.CompactNumberFormatSymbols_jmc", "goog.i18n.CompactNumberFormatSymbols_jmc_TZ", "goog.i18n.CompactNumberFormatSymbols_ka", "goog.i18n.CompactNumberFormatSymbols_ka_GE", +"goog.i18n.CompactNumberFormatSymbols_kab", "goog.i18n.CompactNumberFormatSymbols_kab_DZ", "goog.i18n.CompactNumberFormatSymbols_kam", "goog.i18n.CompactNumberFormatSymbols_kam_KE", "goog.i18n.CompactNumberFormatSymbols_kde", "goog.i18n.CompactNumberFormatSymbols_kde_TZ", "goog.i18n.CompactNumberFormatSymbols_kea", "goog.i18n.CompactNumberFormatSymbols_kea_CV", "goog.i18n.CompactNumberFormatSymbols_khq", "goog.i18n.CompactNumberFormatSymbols_khq_ML", "goog.i18n.CompactNumberFormatSymbols_ki", "goog.i18n.CompactNumberFormatSymbols_ki_KE", +"goog.i18n.CompactNumberFormatSymbols_kk", "goog.i18n.CompactNumberFormatSymbols_kk_Cyrl", "goog.i18n.CompactNumberFormatSymbols_kk_Cyrl_KZ", "goog.i18n.CompactNumberFormatSymbols_kkj", "goog.i18n.CompactNumberFormatSymbols_kkj_CM", "goog.i18n.CompactNumberFormatSymbols_kl", "goog.i18n.CompactNumberFormatSymbols_kl_GL", "goog.i18n.CompactNumberFormatSymbols_kln", "goog.i18n.CompactNumberFormatSymbols_kln_KE", "goog.i18n.CompactNumberFormatSymbols_km", "goog.i18n.CompactNumberFormatSymbols_km_KH", +"goog.i18n.CompactNumberFormatSymbols_ko_KP", "goog.i18n.CompactNumberFormatSymbols_kok", "goog.i18n.CompactNumberFormatSymbols_kok_IN", "goog.i18n.CompactNumberFormatSymbols_ks", "goog.i18n.CompactNumberFormatSymbols_ks_Arab", "goog.i18n.CompactNumberFormatSymbols_ks_Arab_IN", "goog.i18n.CompactNumberFormatSymbols_ksb", "goog.i18n.CompactNumberFormatSymbols_ksb_TZ", "goog.i18n.CompactNumberFormatSymbols_ksf", "goog.i18n.CompactNumberFormatSymbols_ksf_CM", "goog.i18n.CompactNumberFormatSymbols_ksh", +"goog.i18n.CompactNumberFormatSymbols_ksh_DE", "goog.i18n.CompactNumberFormatSymbols_kw", "goog.i18n.CompactNumberFormatSymbols_kw_GB", "goog.i18n.CompactNumberFormatSymbols_ky", "goog.i18n.CompactNumberFormatSymbols_ky_KG", "goog.i18n.CompactNumberFormatSymbols_lag", "goog.i18n.CompactNumberFormatSymbols_lag_TZ", "goog.i18n.CompactNumberFormatSymbols_lg", "goog.i18n.CompactNumberFormatSymbols_lg_UG", "goog.i18n.CompactNumberFormatSymbols_ln_AO", "goog.i18n.CompactNumberFormatSymbols_ln_CF", "goog.i18n.CompactNumberFormatSymbols_ln_CG", +"goog.i18n.CompactNumberFormatSymbols_lo", "goog.i18n.CompactNumberFormatSymbols_lo_LA", "goog.i18n.CompactNumberFormatSymbols_lu", "goog.i18n.CompactNumberFormatSymbols_lu_CD", "goog.i18n.CompactNumberFormatSymbols_luo", "goog.i18n.CompactNumberFormatSymbols_luo_KE", "goog.i18n.CompactNumberFormatSymbols_luy", "goog.i18n.CompactNumberFormatSymbols_luy_KE", "goog.i18n.CompactNumberFormatSymbols_mas", "goog.i18n.CompactNumberFormatSymbols_mas_KE", "goog.i18n.CompactNumberFormatSymbols_mas_TZ", "goog.i18n.CompactNumberFormatSymbols_mer", +"goog.i18n.CompactNumberFormatSymbols_mer_KE", "goog.i18n.CompactNumberFormatSymbols_mfe", "goog.i18n.CompactNumberFormatSymbols_mfe_MU", "goog.i18n.CompactNumberFormatSymbols_mg", "goog.i18n.CompactNumberFormatSymbols_mg_MG", "goog.i18n.CompactNumberFormatSymbols_mgh", "goog.i18n.CompactNumberFormatSymbols_mgh_MZ", "goog.i18n.CompactNumberFormatSymbols_mgo", "goog.i18n.CompactNumberFormatSymbols_mgo_CM", "goog.i18n.CompactNumberFormatSymbols_mk", "goog.i18n.CompactNumberFormatSymbols_mk_MK", "goog.i18n.CompactNumberFormatSymbols_mn", +"goog.i18n.CompactNumberFormatSymbols_mn_Cyrl", "goog.i18n.CompactNumberFormatSymbols_mn_Cyrl_MN", "goog.i18n.CompactNumberFormatSymbols_ms_Latn", "goog.i18n.CompactNumberFormatSymbols_ms_Latn_BN", "goog.i18n.CompactNumberFormatSymbols_ms_Latn_SG", "goog.i18n.CompactNumberFormatSymbols_mua", "goog.i18n.CompactNumberFormatSymbols_mua_CM", "goog.i18n.CompactNumberFormatSymbols_my", "goog.i18n.CompactNumberFormatSymbols_my_MM", "goog.i18n.CompactNumberFormatSymbols_naq", "goog.i18n.CompactNumberFormatSymbols_naq_NA", +"goog.i18n.CompactNumberFormatSymbols_nd", "goog.i18n.CompactNumberFormatSymbols_nd_ZW", "goog.i18n.CompactNumberFormatSymbols_ne", "goog.i18n.CompactNumberFormatSymbols_ne_IN", "goog.i18n.CompactNumberFormatSymbols_ne_NP", "goog.i18n.CompactNumberFormatSymbols_nl_AW", "goog.i18n.CompactNumberFormatSymbols_nl_BE", "goog.i18n.CompactNumberFormatSymbols_nl_CW", "goog.i18n.CompactNumberFormatSymbols_nl_SR", "goog.i18n.CompactNumberFormatSymbols_nl_SX", "goog.i18n.CompactNumberFormatSymbols_nmg", "goog.i18n.CompactNumberFormatSymbols_nmg_CM", +"goog.i18n.CompactNumberFormatSymbols_nn", "goog.i18n.CompactNumberFormatSymbols_nn_NO", "goog.i18n.CompactNumberFormatSymbols_nnh", "goog.i18n.CompactNumberFormatSymbols_nnh_CM", "goog.i18n.CompactNumberFormatSymbols_nr", "goog.i18n.CompactNumberFormatSymbols_nr_ZA", "goog.i18n.CompactNumberFormatSymbols_nso", "goog.i18n.CompactNumberFormatSymbols_nso_ZA", "goog.i18n.CompactNumberFormatSymbols_nus", "goog.i18n.CompactNumberFormatSymbols_nus_SD", "goog.i18n.CompactNumberFormatSymbols_nyn", "goog.i18n.CompactNumberFormatSymbols_nyn_UG", +"goog.i18n.CompactNumberFormatSymbols_om", "goog.i18n.CompactNumberFormatSymbols_om_ET", "goog.i18n.CompactNumberFormatSymbols_om_KE", "goog.i18n.CompactNumberFormatSymbols_os", "goog.i18n.CompactNumberFormatSymbols_os_GE", "goog.i18n.CompactNumberFormatSymbols_os_RU", "goog.i18n.CompactNumberFormatSymbols_pa", "goog.i18n.CompactNumberFormatSymbols_pa_Arab", "goog.i18n.CompactNumberFormatSymbols_pa_Arab_PK", "goog.i18n.CompactNumberFormatSymbols_pa_Guru", "goog.i18n.CompactNumberFormatSymbols_pa_Guru_IN", +"goog.i18n.CompactNumberFormatSymbols_ps", "goog.i18n.CompactNumberFormatSymbols_ps_AF", "goog.i18n.CompactNumberFormatSymbols_pt_AO", "goog.i18n.CompactNumberFormatSymbols_pt_CV", "goog.i18n.CompactNumberFormatSymbols_pt_GW", "goog.i18n.CompactNumberFormatSymbols_pt_MO", "goog.i18n.CompactNumberFormatSymbols_pt_MZ", "goog.i18n.CompactNumberFormatSymbols_pt_ST", "goog.i18n.CompactNumberFormatSymbols_pt_TL", "goog.i18n.CompactNumberFormatSymbols_rm", "goog.i18n.CompactNumberFormatSymbols_rm_CH", "goog.i18n.CompactNumberFormatSymbols_rn", +"goog.i18n.CompactNumberFormatSymbols_rn_BI", "goog.i18n.CompactNumberFormatSymbols_ro_MD", "goog.i18n.CompactNumberFormatSymbols_rof", "goog.i18n.CompactNumberFormatSymbols_rof_TZ", "goog.i18n.CompactNumberFormatSymbols_ru_BY", "goog.i18n.CompactNumberFormatSymbols_ru_KG", "goog.i18n.CompactNumberFormatSymbols_ru_KZ", "goog.i18n.CompactNumberFormatSymbols_ru_MD", "goog.i18n.CompactNumberFormatSymbols_ru_UA", "goog.i18n.CompactNumberFormatSymbols_rw", "goog.i18n.CompactNumberFormatSymbols_rw_RW", +"goog.i18n.CompactNumberFormatSymbols_rwk", "goog.i18n.CompactNumberFormatSymbols_rwk_TZ", "goog.i18n.CompactNumberFormatSymbols_sah", "goog.i18n.CompactNumberFormatSymbols_sah_RU", "goog.i18n.CompactNumberFormatSymbols_saq", "goog.i18n.CompactNumberFormatSymbols_saq_KE", "goog.i18n.CompactNumberFormatSymbols_sbp", "goog.i18n.CompactNumberFormatSymbols_sbp_TZ", "goog.i18n.CompactNumberFormatSymbols_se", "goog.i18n.CompactNumberFormatSymbols_se_FI", "goog.i18n.CompactNumberFormatSymbols_se_NO", "goog.i18n.CompactNumberFormatSymbols_seh", +"goog.i18n.CompactNumberFormatSymbols_seh_MZ", "goog.i18n.CompactNumberFormatSymbols_ses", "goog.i18n.CompactNumberFormatSymbols_ses_ML", "goog.i18n.CompactNumberFormatSymbols_sg", "goog.i18n.CompactNumberFormatSymbols_sg_CF", "goog.i18n.CompactNumberFormatSymbols_shi", "goog.i18n.CompactNumberFormatSymbols_shi_Latn", "goog.i18n.CompactNumberFormatSymbols_shi_Latn_MA", "goog.i18n.CompactNumberFormatSymbols_shi_Tfng", "goog.i18n.CompactNumberFormatSymbols_shi_Tfng_MA", "goog.i18n.CompactNumberFormatSymbols_si", +"goog.i18n.CompactNumberFormatSymbols_si_LK", "goog.i18n.CompactNumberFormatSymbols_sn", "goog.i18n.CompactNumberFormatSymbols_sn_ZW", "goog.i18n.CompactNumberFormatSymbols_so", "goog.i18n.CompactNumberFormatSymbols_so_DJ", "goog.i18n.CompactNumberFormatSymbols_so_ET", "goog.i18n.CompactNumberFormatSymbols_so_KE", "goog.i18n.CompactNumberFormatSymbols_so_SO", "goog.i18n.CompactNumberFormatSymbols_sq_MK", "goog.i18n.CompactNumberFormatSymbols_sq_XK", "goog.i18n.CompactNumberFormatSymbols_sr_Cyrl", +"goog.i18n.CompactNumberFormatSymbols_sr_Cyrl_BA", "goog.i18n.CompactNumberFormatSymbols_sr_Cyrl_ME", "goog.i18n.CompactNumberFormatSymbols_sr_Cyrl_XK", "goog.i18n.CompactNumberFormatSymbols_sr_Latn", "goog.i18n.CompactNumberFormatSymbols_sr_Latn_BA", "goog.i18n.CompactNumberFormatSymbols_sr_Latn_ME", "goog.i18n.CompactNumberFormatSymbols_sr_Latn_RS", "goog.i18n.CompactNumberFormatSymbols_sr_Latn_XK", "goog.i18n.CompactNumberFormatSymbols_ss", "goog.i18n.CompactNumberFormatSymbols_ss_SZ", "goog.i18n.CompactNumberFormatSymbols_ss_ZA", +"goog.i18n.CompactNumberFormatSymbols_ssy", "goog.i18n.CompactNumberFormatSymbols_ssy_ER", "goog.i18n.CompactNumberFormatSymbols_st", "goog.i18n.CompactNumberFormatSymbols_st_LS", "goog.i18n.CompactNumberFormatSymbols_st_ZA", "goog.i18n.CompactNumberFormatSymbols_sv_AX", "goog.i18n.CompactNumberFormatSymbols_sv_FI", "goog.i18n.CompactNumberFormatSymbols_sw_KE", "goog.i18n.CompactNumberFormatSymbols_sw_UG", "goog.i18n.CompactNumberFormatSymbols_swc", "goog.i18n.CompactNumberFormatSymbols_swc_CD", +"goog.i18n.CompactNumberFormatSymbols_ta_LK", "goog.i18n.CompactNumberFormatSymbols_ta_MY", "goog.i18n.CompactNumberFormatSymbols_ta_SG", "goog.i18n.CompactNumberFormatSymbols_teo", "goog.i18n.CompactNumberFormatSymbols_teo_KE", "goog.i18n.CompactNumberFormatSymbols_teo_UG", "goog.i18n.CompactNumberFormatSymbols_tg", "goog.i18n.CompactNumberFormatSymbols_tg_Cyrl", "goog.i18n.CompactNumberFormatSymbols_tg_Cyrl_TJ", "goog.i18n.CompactNumberFormatSymbols_ti", "goog.i18n.CompactNumberFormatSymbols_ti_ER", +"goog.i18n.CompactNumberFormatSymbols_ti_ET", "goog.i18n.CompactNumberFormatSymbols_tig", "goog.i18n.CompactNumberFormatSymbols_tig_ER", "goog.i18n.CompactNumberFormatSymbols_tn", "goog.i18n.CompactNumberFormatSymbols_tn_BW", "goog.i18n.CompactNumberFormatSymbols_tn_ZA", "goog.i18n.CompactNumberFormatSymbols_to", "goog.i18n.CompactNumberFormatSymbols_to_TO", "goog.i18n.CompactNumberFormatSymbols_tr_CY", "goog.i18n.CompactNumberFormatSymbols_ts", "goog.i18n.CompactNumberFormatSymbols_ts_ZA", "goog.i18n.CompactNumberFormatSymbols_twq", +"goog.i18n.CompactNumberFormatSymbols_twq_NE", "goog.i18n.CompactNumberFormatSymbols_tzm", "goog.i18n.CompactNumberFormatSymbols_tzm_Latn", "goog.i18n.CompactNumberFormatSymbols_tzm_Latn_MA", "goog.i18n.CompactNumberFormatSymbols_ur_IN", "goog.i18n.CompactNumberFormatSymbols_uz", "goog.i18n.CompactNumberFormatSymbols_uz_Arab", "goog.i18n.CompactNumberFormatSymbols_uz_Arab_AF", "goog.i18n.CompactNumberFormatSymbols_uz_Cyrl", "goog.i18n.CompactNumberFormatSymbols_uz_Cyrl_UZ", "goog.i18n.CompactNumberFormatSymbols_uz_Latn", +"goog.i18n.CompactNumberFormatSymbols_uz_Latn_UZ", "goog.i18n.CompactNumberFormatSymbols_vai", "goog.i18n.CompactNumberFormatSymbols_vai_Latn", "goog.i18n.CompactNumberFormatSymbols_vai_Latn_LR", "goog.i18n.CompactNumberFormatSymbols_vai_Vaii", "goog.i18n.CompactNumberFormatSymbols_vai_Vaii_LR", "goog.i18n.CompactNumberFormatSymbols_ve", "goog.i18n.CompactNumberFormatSymbols_ve_ZA", "goog.i18n.CompactNumberFormatSymbols_vo", "goog.i18n.CompactNumberFormatSymbols_vun", "goog.i18n.CompactNumberFormatSymbols_vun_TZ", +"goog.i18n.CompactNumberFormatSymbols_wae", "goog.i18n.CompactNumberFormatSymbols_wae_CH", "goog.i18n.CompactNumberFormatSymbols_wal", "goog.i18n.CompactNumberFormatSymbols_wal_ET", "goog.i18n.CompactNumberFormatSymbols_xh", "goog.i18n.CompactNumberFormatSymbols_xh_ZA", "goog.i18n.CompactNumberFormatSymbols_xog", "goog.i18n.CompactNumberFormatSymbols_xog_UG", "goog.i18n.CompactNumberFormatSymbols_yav", "goog.i18n.CompactNumberFormatSymbols_yav_CM", "goog.i18n.CompactNumberFormatSymbols_yo", "goog.i18n.CompactNumberFormatSymbols_yo_NG", +"goog.i18n.CompactNumberFormatSymbols_zh_Hans", "goog.i18n.CompactNumberFormatSymbols_zh_Hans_HK", "goog.i18n.CompactNumberFormatSymbols_zh_Hans_MO", "goog.i18n.CompactNumberFormatSymbols_zh_Hans_SG", "goog.i18n.CompactNumberFormatSymbols_zh_Hant", "goog.i18n.CompactNumberFormatSymbols_zh_Hant_HK", "goog.i18n.CompactNumberFormatSymbols_zh_Hant_MO", "goog.i18n.CompactNumberFormatSymbols_zh_Hant_TW"], []); +goog.addDependency("/closure/goog/i18n/currency.js", ["goog.i18n.currency", "goog.i18n.currency.CurrencyInfo", "goog.i18n.currency.CurrencyInfoTier2"], []); +goog.addDependency("/closure/goog/i18n/currencycodemap.js", ["goog.i18n.currencyCodeMap", "goog.i18n.currencyCodeMapTier2"], []); +goog.addDependency("/closure/goog/i18n/datetimeformat.js", ["goog.i18n.DateTimeFormat", "goog.i18n.DateTimeFormat.Format"], ["goog.asserts", "goog.i18n.DateTimeSymbols", "goog.i18n.TimeZone", "goog.string"]); +goog.addDependency("/closure/goog/i18n/datetimeparse.js", ["goog.i18n.DateTimeParse"], ["goog.i18n.DateTimeFormat", "goog.i18n.DateTimeSymbols"]); +goog.addDependency("/closure/goog/i18n/datetimepatterns.js", ["goog.i18n.DateTimePatterns", "goog.i18n.DateTimePatterns_af", "goog.i18n.DateTimePatterns_am", "goog.i18n.DateTimePatterns_ar", "goog.i18n.DateTimePatterns_bg", "goog.i18n.DateTimePatterns_bn", "goog.i18n.DateTimePatterns_br", "goog.i18n.DateTimePatterns_ca", "goog.i18n.DateTimePatterns_chr", "goog.i18n.DateTimePatterns_cs", "goog.i18n.DateTimePatterns_cy", "goog.i18n.DateTimePatterns_da", "goog.i18n.DateTimePatterns_de", "goog.i18n.DateTimePatterns_de_AT", +"goog.i18n.DateTimePatterns_de_CH", "goog.i18n.DateTimePatterns_el", "goog.i18n.DateTimePatterns_en", "goog.i18n.DateTimePatterns_en_AU", "goog.i18n.DateTimePatterns_en_GB", "goog.i18n.DateTimePatterns_en_IE", "goog.i18n.DateTimePatterns_en_IN", "goog.i18n.DateTimePatterns_en_SG", "goog.i18n.DateTimePatterns_en_US", "goog.i18n.DateTimePatterns_en_ZA", "goog.i18n.DateTimePatterns_es", "goog.i18n.DateTimePatterns_es_419", "goog.i18n.DateTimePatterns_es_ES", "goog.i18n.DateTimePatterns_et", "goog.i18n.DateTimePatterns_eu", +"goog.i18n.DateTimePatterns_fa", "goog.i18n.DateTimePatterns_fi", "goog.i18n.DateTimePatterns_fil", "goog.i18n.DateTimePatterns_fr", "goog.i18n.DateTimePatterns_fr_CA", "goog.i18n.DateTimePatterns_gl", "goog.i18n.DateTimePatterns_gsw", "goog.i18n.DateTimePatterns_gu", "goog.i18n.DateTimePatterns_haw", "goog.i18n.DateTimePatterns_he", "goog.i18n.DateTimePatterns_hi", "goog.i18n.DateTimePatterns_hr", "goog.i18n.DateTimePatterns_hu", "goog.i18n.DateTimePatterns_id", "goog.i18n.DateTimePatterns_in", +"goog.i18n.DateTimePatterns_is", "goog.i18n.DateTimePatterns_it", "goog.i18n.DateTimePatterns_iw", "goog.i18n.DateTimePatterns_ja", "goog.i18n.DateTimePatterns_kn", "goog.i18n.DateTimePatterns_ko", "goog.i18n.DateTimePatterns_ln", "goog.i18n.DateTimePatterns_lt", "goog.i18n.DateTimePatterns_lv", "goog.i18n.DateTimePatterns_ml", "goog.i18n.DateTimePatterns_mo", "goog.i18n.DateTimePatterns_mr", "goog.i18n.DateTimePatterns_ms", "goog.i18n.DateTimePatterns_mt", "goog.i18n.DateTimePatterns_nb", "goog.i18n.DateTimePatterns_nl", +"goog.i18n.DateTimePatterns_no", "goog.i18n.DateTimePatterns_or", "goog.i18n.DateTimePatterns_pl", "goog.i18n.DateTimePatterns_pt", "goog.i18n.DateTimePatterns_pt_BR", "goog.i18n.DateTimePatterns_pt_PT", "goog.i18n.DateTimePatterns_ro", "goog.i18n.DateTimePatterns_ru", "goog.i18n.DateTimePatterns_sk", "goog.i18n.DateTimePatterns_sl", "goog.i18n.DateTimePatterns_sq", "goog.i18n.DateTimePatterns_sr", "goog.i18n.DateTimePatterns_sv", "goog.i18n.DateTimePatterns_sw", "goog.i18n.DateTimePatterns_ta", +"goog.i18n.DateTimePatterns_te", "goog.i18n.DateTimePatterns_th", "goog.i18n.DateTimePatterns_tl", "goog.i18n.DateTimePatterns_tr", "goog.i18n.DateTimePatterns_uk", "goog.i18n.DateTimePatterns_ur", "goog.i18n.DateTimePatterns_vi", "goog.i18n.DateTimePatterns_zh", "goog.i18n.DateTimePatterns_zh_CN", "goog.i18n.DateTimePatterns_zh_HK", "goog.i18n.DateTimePatterns_zh_TW", "goog.i18n.DateTimePatterns_zu"], []); +goog.addDependency("/closure/goog/i18n/datetimepatternsext.js", ["goog.i18n.DateTimePatternsExt", "goog.i18n.DateTimePatterns_af_NA", "goog.i18n.DateTimePatterns_af_ZA", "goog.i18n.DateTimePatterns_agq", "goog.i18n.DateTimePatterns_agq_CM", "goog.i18n.DateTimePatterns_ak", "goog.i18n.DateTimePatterns_ak_GH", "goog.i18n.DateTimePatterns_am_ET", "goog.i18n.DateTimePatterns_ar_001", "goog.i18n.DateTimePatterns_ar_AE", "goog.i18n.DateTimePatterns_ar_BH", "goog.i18n.DateTimePatterns_ar_DJ", "goog.i18n.DateTimePatterns_ar_DZ", +"goog.i18n.DateTimePatterns_ar_EG", "goog.i18n.DateTimePatterns_ar_EH", "goog.i18n.DateTimePatterns_ar_ER", "goog.i18n.DateTimePatterns_ar_IL", "goog.i18n.DateTimePatterns_ar_IQ", "goog.i18n.DateTimePatterns_ar_JO", "goog.i18n.DateTimePatterns_ar_KM", "goog.i18n.DateTimePatterns_ar_KW", "goog.i18n.DateTimePatterns_ar_LB", "goog.i18n.DateTimePatterns_ar_LY", "goog.i18n.DateTimePatterns_ar_MA", "goog.i18n.DateTimePatterns_ar_MR", "goog.i18n.DateTimePatterns_ar_OM", "goog.i18n.DateTimePatterns_ar_PS", +"goog.i18n.DateTimePatterns_ar_QA", "goog.i18n.DateTimePatterns_ar_SA", "goog.i18n.DateTimePatterns_ar_SD", "goog.i18n.DateTimePatterns_ar_SO", "goog.i18n.DateTimePatterns_ar_SY", "goog.i18n.DateTimePatterns_ar_TD", "goog.i18n.DateTimePatterns_ar_TN", "goog.i18n.DateTimePatterns_ar_YE", "goog.i18n.DateTimePatterns_as", "goog.i18n.DateTimePatterns_as_IN", "goog.i18n.DateTimePatterns_asa", "goog.i18n.DateTimePatterns_asa_TZ", "goog.i18n.DateTimePatterns_az", "goog.i18n.DateTimePatterns_az_Cyrl", "goog.i18n.DateTimePatterns_az_Cyrl_AZ", +"goog.i18n.DateTimePatterns_az_Latn", "goog.i18n.DateTimePatterns_az_Latn_AZ", "goog.i18n.DateTimePatterns_bas", "goog.i18n.DateTimePatterns_bas_CM", "goog.i18n.DateTimePatterns_be", "goog.i18n.DateTimePatterns_be_BY", "goog.i18n.DateTimePatterns_bem", "goog.i18n.DateTimePatterns_bem_ZM", "goog.i18n.DateTimePatterns_bez", "goog.i18n.DateTimePatterns_bez_TZ", "goog.i18n.DateTimePatterns_bg_BG", "goog.i18n.DateTimePatterns_bm", "goog.i18n.DateTimePatterns_bm_ML", "goog.i18n.DateTimePatterns_bn_BD", +"goog.i18n.DateTimePatterns_bn_IN", "goog.i18n.DateTimePatterns_bo", "goog.i18n.DateTimePatterns_bo_CN", "goog.i18n.DateTimePatterns_bo_IN", "goog.i18n.DateTimePatterns_br_FR", "goog.i18n.DateTimePatterns_brx", "goog.i18n.DateTimePatterns_brx_IN", "goog.i18n.DateTimePatterns_bs", "goog.i18n.DateTimePatterns_bs_Cyrl", "goog.i18n.DateTimePatterns_bs_Cyrl_BA", "goog.i18n.DateTimePatterns_bs_Latn", "goog.i18n.DateTimePatterns_bs_Latn_BA", "goog.i18n.DateTimePatterns_ca_AD", "goog.i18n.DateTimePatterns_ca_ES", +"goog.i18n.DateTimePatterns_cgg", "goog.i18n.DateTimePatterns_cgg_UG", "goog.i18n.DateTimePatterns_chr_US", "goog.i18n.DateTimePatterns_cs_CZ", "goog.i18n.DateTimePatterns_cy_GB", "goog.i18n.DateTimePatterns_da_DK", "goog.i18n.DateTimePatterns_dav", "goog.i18n.DateTimePatterns_dav_KE", "goog.i18n.DateTimePatterns_de_BE", "goog.i18n.DateTimePatterns_de_DE", "goog.i18n.DateTimePatterns_de_LI", "goog.i18n.DateTimePatterns_de_LU", "goog.i18n.DateTimePatterns_dje", "goog.i18n.DateTimePatterns_dje_NE", +"goog.i18n.DateTimePatterns_dua", "goog.i18n.DateTimePatterns_dua_CM", "goog.i18n.DateTimePatterns_dyo", "goog.i18n.DateTimePatterns_dyo_SN", "goog.i18n.DateTimePatterns_dz", "goog.i18n.DateTimePatterns_dz_BT", "goog.i18n.DateTimePatterns_ebu", "goog.i18n.DateTimePatterns_ebu_KE", "goog.i18n.DateTimePatterns_ee", "goog.i18n.DateTimePatterns_ee_GH", "goog.i18n.DateTimePatterns_ee_TG", "goog.i18n.DateTimePatterns_el_CY", "goog.i18n.DateTimePatterns_el_GR", "goog.i18n.DateTimePatterns_en_150", "goog.i18n.DateTimePatterns_en_AG", +"goog.i18n.DateTimePatterns_en_AS", "goog.i18n.DateTimePatterns_en_BB", "goog.i18n.DateTimePatterns_en_BE", "goog.i18n.DateTimePatterns_en_BM", "goog.i18n.DateTimePatterns_en_BS", "goog.i18n.DateTimePatterns_en_BW", "goog.i18n.DateTimePatterns_en_BZ", "goog.i18n.DateTimePatterns_en_CA", "goog.i18n.DateTimePatterns_en_CM", "goog.i18n.DateTimePatterns_en_DM", "goog.i18n.DateTimePatterns_en_FJ", "goog.i18n.DateTimePatterns_en_FM", "goog.i18n.DateTimePatterns_en_GD", "goog.i18n.DateTimePatterns_en_GG", +"goog.i18n.DateTimePatterns_en_GH", "goog.i18n.DateTimePatterns_en_GI", "goog.i18n.DateTimePatterns_en_GM", "goog.i18n.DateTimePatterns_en_GU", "goog.i18n.DateTimePatterns_en_GY", "goog.i18n.DateTimePatterns_en_HK", "goog.i18n.DateTimePatterns_en_IM", "goog.i18n.DateTimePatterns_en_JE", "goog.i18n.DateTimePatterns_en_JM", "goog.i18n.DateTimePatterns_en_KE", "goog.i18n.DateTimePatterns_en_KI", "goog.i18n.DateTimePatterns_en_KN", "goog.i18n.DateTimePatterns_en_KY", "goog.i18n.DateTimePatterns_en_LC", +"goog.i18n.DateTimePatterns_en_LR", "goog.i18n.DateTimePatterns_en_LS", "goog.i18n.DateTimePatterns_en_MG", "goog.i18n.DateTimePatterns_en_MH", "goog.i18n.DateTimePatterns_en_MP", "goog.i18n.DateTimePatterns_en_MT", "goog.i18n.DateTimePatterns_en_MU", "goog.i18n.DateTimePatterns_en_MW", "goog.i18n.DateTimePatterns_en_NA", "goog.i18n.DateTimePatterns_en_NG", "goog.i18n.DateTimePatterns_en_NZ", "goog.i18n.DateTimePatterns_en_PG", "goog.i18n.DateTimePatterns_en_PH", "goog.i18n.DateTimePatterns_en_PK", +"goog.i18n.DateTimePatterns_en_PR", "goog.i18n.DateTimePatterns_en_PW", "goog.i18n.DateTimePatterns_en_SB", "goog.i18n.DateTimePatterns_en_SC", "goog.i18n.DateTimePatterns_en_SL", "goog.i18n.DateTimePatterns_en_SS", "goog.i18n.DateTimePatterns_en_SZ", "goog.i18n.DateTimePatterns_en_TC", "goog.i18n.DateTimePatterns_en_TO", "goog.i18n.DateTimePatterns_en_TT", "goog.i18n.DateTimePatterns_en_TZ", "goog.i18n.DateTimePatterns_en_UG", "goog.i18n.DateTimePatterns_en_UM", "goog.i18n.DateTimePatterns_en_US_POSIX", +"goog.i18n.DateTimePatterns_en_VC", "goog.i18n.DateTimePatterns_en_VG", "goog.i18n.DateTimePatterns_en_VI", "goog.i18n.DateTimePatterns_en_VU", "goog.i18n.DateTimePatterns_en_WS", "goog.i18n.DateTimePatterns_en_ZM", "goog.i18n.DateTimePatterns_en_ZW", "goog.i18n.DateTimePatterns_eo", "goog.i18n.DateTimePatterns_es_AR", "goog.i18n.DateTimePatterns_es_BO", "goog.i18n.DateTimePatterns_es_CL", "goog.i18n.DateTimePatterns_es_CO", "goog.i18n.DateTimePatterns_es_CR", "goog.i18n.DateTimePatterns_es_CU", +"goog.i18n.DateTimePatterns_es_DO", "goog.i18n.DateTimePatterns_es_EA", "goog.i18n.DateTimePatterns_es_EC", "goog.i18n.DateTimePatterns_es_GQ", "goog.i18n.DateTimePatterns_es_GT", "goog.i18n.DateTimePatterns_es_HN", "goog.i18n.DateTimePatterns_es_IC", "goog.i18n.DateTimePatterns_es_MX", "goog.i18n.DateTimePatterns_es_NI", "goog.i18n.DateTimePatterns_es_PA", "goog.i18n.DateTimePatterns_es_PE", "goog.i18n.DateTimePatterns_es_PH", "goog.i18n.DateTimePatterns_es_PR", "goog.i18n.DateTimePatterns_es_PY", +"goog.i18n.DateTimePatterns_es_SV", "goog.i18n.DateTimePatterns_es_US", "goog.i18n.DateTimePatterns_es_UY", "goog.i18n.DateTimePatterns_es_VE", "goog.i18n.DateTimePatterns_et_EE", "goog.i18n.DateTimePatterns_eu_ES", "goog.i18n.DateTimePatterns_ewo", "goog.i18n.DateTimePatterns_ewo_CM", "goog.i18n.DateTimePatterns_fa_AF", "goog.i18n.DateTimePatterns_fa_IR", "goog.i18n.DateTimePatterns_ff", "goog.i18n.DateTimePatterns_ff_SN", "goog.i18n.DateTimePatterns_fi_FI", "goog.i18n.DateTimePatterns_fil_PH", +"goog.i18n.DateTimePatterns_fo", "goog.i18n.DateTimePatterns_fo_FO", "goog.i18n.DateTimePatterns_fr_BE", "goog.i18n.DateTimePatterns_fr_BF", "goog.i18n.DateTimePatterns_fr_BI", "goog.i18n.DateTimePatterns_fr_BJ", "goog.i18n.DateTimePatterns_fr_BL", "goog.i18n.DateTimePatterns_fr_CD", "goog.i18n.DateTimePatterns_fr_CF", "goog.i18n.DateTimePatterns_fr_CG", "goog.i18n.DateTimePatterns_fr_CH", "goog.i18n.DateTimePatterns_fr_CI", "goog.i18n.DateTimePatterns_fr_CM", "goog.i18n.DateTimePatterns_fr_DJ", +"goog.i18n.DateTimePatterns_fr_DZ", "goog.i18n.DateTimePatterns_fr_FR", "goog.i18n.DateTimePatterns_fr_GA", "goog.i18n.DateTimePatterns_fr_GF", "goog.i18n.DateTimePatterns_fr_GN", "goog.i18n.DateTimePatterns_fr_GP", "goog.i18n.DateTimePatterns_fr_GQ", "goog.i18n.DateTimePatterns_fr_HT", "goog.i18n.DateTimePatterns_fr_KM", "goog.i18n.DateTimePatterns_fr_LU", "goog.i18n.DateTimePatterns_fr_MA", "goog.i18n.DateTimePatterns_fr_MC", "goog.i18n.DateTimePatterns_fr_MF", "goog.i18n.DateTimePatterns_fr_MG", +"goog.i18n.DateTimePatterns_fr_ML", "goog.i18n.DateTimePatterns_fr_MQ", "goog.i18n.DateTimePatterns_fr_MR", "goog.i18n.DateTimePatterns_fr_MU", "goog.i18n.DateTimePatterns_fr_NC", "goog.i18n.DateTimePatterns_fr_NE", "goog.i18n.DateTimePatterns_fr_PF", "goog.i18n.DateTimePatterns_fr_RE", "goog.i18n.DateTimePatterns_fr_RW", "goog.i18n.DateTimePatterns_fr_SC", "goog.i18n.DateTimePatterns_fr_SN", "goog.i18n.DateTimePatterns_fr_SY", "goog.i18n.DateTimePatterns_fr_TD", "goog.i18n.DateTimePatterns_fr_TG", +"goog.i18n.DateTimePatterns_fr_TN", "goog.i18n.DateTimePatterns_fr_VU", "goog.i18n.DateTimePatterns_fr_YT", "goog.i18n.DateTimePatterns_ga", "goog.i18n.DateTimePatterns_ga_IE", "goog.i18n.DateTimePatterns_gl_ES", "goog.i18n.DateTimePatterns_gsw_CH", "goog.i18n.DateTimePatterns_gu_IN", "goog.i18n.DateTimePatterns_guz", "goog.i18n.DateTimePatterns_guz_KE", "goog.i18n.DateTimePatterns_gv", "goog.i18n.DateTimePatterns_gv_GB", "goog.i18n.DateTimePatterns_ha", "goog.i18n.DateTimePatterns_ha_Latn", "goog.i18n.DateTimePatterns_ha_Latn_GH", +"goog.i18n.DateTimePatterns_ha_Latn_NE", "goog.i18n.DateTimePatterns_ha_Latn_NG", "goog.i18n.DateTimePatterns_haw_US", "goog.i18n.DateTimePatterns_he_IL", "goog.i18n.DateTimePatterns_hi_IN", "goog.i18n.DateTimePatterns_hr_BA", "goog.i18n.DateTimePatterns_hr_HR", "goog.i18n.DateTimePatterns_hu_HU", "goog.i18n.DateTimePatterns_hy", "goog.i18n.DateTimePatterns_hy_AM", "goog.i18n.DateTimePatterns_id_ID", "goog.i18n.DateTimePatterns_ig", "goog.i18n.DateTimePatterns_ig_NG", "goog.i18n.DateTimePatterns_ii", +"goog.i18n.DateTimePatterns_ii_CN", "goog.i18n.DateTimePatterns_is_IS", "goog.i18n.DateTimePatterns_it_CH", "goog.i18n.DateTimePatterns_it_IT", "goog.i18n.DateTimePatterns_it_SM", "goog.i18n.DateTimePatterns_ja_JP", "goog.i18n.DateTimePatterns_jgo", "goog.i18n.DateTimePatterns_jgo_CM", "goog.i18n.DateTimePatterns_jmc", "goog.i18n.DateTimePatterns_jmc_TZ", "goog.i18n.DateTimePatterns_ka", "goog.i18n.DateTimePatterns_ka_GE", "goog.i18n.DateTimePatterns_kab", "goog.i18n.DateTimePatterns_kab_DZ", "goog.i18n.DateTimePatterns_kam", +"goog.i18n.DateTimePatterns_kam_KE", "goog.i18n.DateTimePatterns_kde", "goog.i18n.DateTimePatterns_kde_TZ", "goog.i18n.DateTimePatterns_kea", "goog.i18n.DateTimePatterns_kea_CV", "goog.i18n.DateTimePatterns_khq", "goog.i18n.DateTimePatterns_khq_ML", "goog.i18n.DateTimePatterns_ki", "goog.i18n.DateTimePatterns_ki_KE", "goog.i18n.DateTimePatterns_kk", "goog.i18n.DateTimePatterns_kk_Cyrl", "goog.i18n.DateTimePatterns_kk_Cyrl_KZ", "goog.i18n.DateTimePatterns_kl", "goog.i18n.DateTimePatterns_kl_GL", "goog.i18n.DateTimePatterns_kln", +"goog.i18n.DateTimePatterns_kln_KE", "goog.i18n.DateTimePatterns_km", "goog.i18n.DateTimePatterns_km_KH", "goog.i18n.DateTimePatterns_kn_IN", "goog.i18n.DateTimePatterns_ko_KP", "goog.i18n.DateTimePatterns_ko_KR", "goog.i18n.DateTimePatterns_kok", "goog.i18n.DateTimePatterns_kok_IN", "goog.i18n.DateTimePatterns_ks", "goog.i18n.DateTimePatterns_ks_Arab", "goog.i18n.DateTimePatterns_ks_Arab_IN", "goog.i18n.DateTimePatterns_ksb", "goog.i18n.DateTimePatterns_ksb_TZ", "goog.i18n.DateTimePatterns_ksf", +"goog.i18n.DateTimePatterns_ksf_CM", "goog.i18n.DateTimePatterns_kw", "goog.i18n.DateTimePatterns_kw_GB", "goog.i18n.DateTimePatterns_lag", "goog.i18n.DateTimePatterns_lag_TZ", "goog.i18n.DateTimePatterns_lg", "goog.i18n.DateTimePatterns_lg_UG", "goog.i18n.DateTimePatterns_ln_AO", "goog.i18n.DateTimePatterns_ln_CD", "goog.i18n.DateTimePatterns_ln_CF", "goog.i18n.DateTimePatterns_ln_CG", "goog.i18n.DateTimePatterns_lo", "goog.i18n.DateTimePatterns_lo_LA", "goog.i18n.DateTimePatterns_lt_LT", "goog.i18n.DateTimePatterns_lu", +"goog.i18n.DateTimePatterns_lu_CD", "goog.i18n.DateTimePatterns_luo", "goog.i18n.DateTimePatterns_luo_KE", "goog.i18n.DateTimePatterns_luy", "goog.i18n.DateTimePatterns_luy_KE", "goog.i18n.DateTimePatterns_lv_LV", "goog.i18n.DateTimePatterns_mas", "goog.i18n.DateTimePatterns_mas_KE", "goog.i18n.DateTimePatterns_mas_TZ", "goog.i18n.DateTimePatterns_mer", "goog.i18n.DateTimePatterns_mer_KE", "goog.i18n.DateTimePatterns_mfe", "goog.i18n.DateTimePatterns_mfe_MU", "goog.i18n.DateTimePatterns_mg", "goog.i18n.DateTimePatterns_mg_MG", +"goog.i18n.DateTimePatterns_mgh", "goog.i18n.DateTimePatterns_mgh_MZ", "goog.i18n.DateTimePatterns_mgo", "goog.i18n.DateTimePatterns_mgo_CM", "goog.i18n.DateTimePatterns_mk", "goog.i18n.DateTimePatterns_mk_MK", "goog.i18n.DateTimePatterns_ml_IN", "goog.i18n.DateTimePatterns_mn", "goog.i18n.DateTimePatterns_mn_Cyrl", "goog.i18n.DateTimePatterns_mn_Cyrl_MN", "goog.i18n.DateTimePatterns_mr_IN", "goog.i18n.DateTimePatterns_ms_Latn", "goog.i18n.DateTimePatterns_ms_Latn_BN", "goog.i18n.DateTimePatterns_ms_Latn_MY", +"goog.i18n.DateTimePatterns_ms_Latn_SG", "goog.i18n.DateTimePatterns_mt_MT", "goog.i18n.DateTimePatterns_mua", "goog.i18n.DateTimePatterns_mua_CM", "goog.i18n.DateTimePatterns_my", "goog.i18n.DateTimePatterns_my_MM", "goog.i18n.DateTimePatterns_naq", "goog.i18n.DateTimePatterns_naq_NA", "goog.i18n.DateTimePatterns_nb_NO", "goog.i18n.DateTimePatterns_nd", "goog.i18n.DateTimePatterns_nd_ZW", "goog.i18n.DateTimePatterns_ne", "goog.i18n.DateTimePatterns_ne_IN", "goog.i18n.DateTimePatterns_ne_NP", "goog.i18n.DateTimePatterns_nl_AW", +"goog.i18n.DateTimePatterns_nl_BE", "goog.i18n.DateTimePatterns_nl_CW", "goog.i18n.DateTimePatterns_nl_NL", "goog.i18n.DateTimePatterns_nl_SR", "goog.i18n.DateTimePatterns_nl_SX", "goog.i18n.DateTimePatterns_nmg", "goog.i18n.DateTimePatterns_nmg_CM", "goog.i18n.DateTimePatterns_nn", "goog.i18n.DateTimePatterns_nn_NO", "goog.i18n.DateTimePatterns_nus", "goog.i18n.DateTimePatterns_nus_SD", "goog.i18n.DateTimePatterns_nyn", "goog.i18n.DateTimePatterns_nyn_UG", "goog.i18n.DateTimePatterns_om", "goog.i18n.DateTimePatterns_om_ET", +"goog.i18n.DateTimePatterns_om_KE", "goog.i18n.DateTimePatterns_or_IN", "goog.i18n.DateTimePatterns_pa", "goog.i18n.DateTimePatterns_pa_Arab", "goog.i18n.DateTimePatterns_pa_Arab_PK", "goog.i18n.DateTimePatterns_pa_Guru", "goog.i18n.DateTimePatterns_pa_Guru_IN", "goog.i18n.DateTimePatterns_pl_PL", "goog.i18n.DateTimePatterns_ps", "goog.i18n.DateTimePatterns_ps_AF", "goog.i18n.DateTimePatterns_pt_AO", "goog.i18n.DateTimePatterns_pt_CV", "goog.i18n.DateTimePatterns_pt_GW", "goog.i18n.DateTimePatterns_pt_MO", +"goog.i18n.DateTimePatterns_pt_MZ", "goog.i18n.DateTimePatterns_pt_ST", "goog.i18n.DateTimePatterns_pt_TL", "goog.i18n.DateTimePatterns_rm", "goog.i18n.DateTimePatterns_rm_CH", "goog.i18n.DateTimePatterns_rn", "goog.i18n.DateTimePatterns_rn_BI", "goog.i18n.DateTimePatterns_ro_MD", "goog.i18n.DateTimePatterns_ro_RO", "goog.i18n.DateTimePatterns_rof", "goog.i18n.DateTimePatterns_rof_TZ", "goog.i18n.DateTimePatterns_ru_BY", "goog.i18n.DateTimePatterns_ru_KG", "goog.i18n.DateTimePatterns_ru_KZ", "goog.i18n.DateTimePatterns_ru_MD", +"goog.i18n.DateTimePatterns_ru_RU", "goog.i18n.DateTimePatterns_ru_UA", "goog.i18n.DateTimePatterns_rw", "goog.i18n.DateTimePatterns_rw_RW", "goog.i18n.DateTimePatterns_rwk", "goog.i18n.DateTimePatterns_rwk_TZ", "goog.i18n.DateTimePatterns_saq", "goog.i18n.DateTimePatterns_saq_KE", "goog.i18n.DateTimePatterns_sbp", "goog.i18n.DateTimePatterns_sbp_TZ", "goog.i18n.DateTimePatterns_seh", "goog.i18n.DateTimePatterns_seh_MZ", "goog.i18n.DateTimePatterns_ses", "goog.i18n.DateTimePatterns_ses_ML", "goog.i18n.DateTimePatterns_sg", +"goog.i18n.DateTimePatterns_sg_CF", "goog.i18n.DateTimePatterns_shi", "goog.i18n.DateTimePatterns_shi_Latn", "goog.i18n.DateTimePatterns_shi_Latn_MA", "goog.i18n.DateTimePatterns_shi_Tfng", "goog.i18n.DateTimePatterns_shi_Tfng_MA", "goog.i18n.DateTimePatterns_si", "goog.i18n.DateTimePatterns_si_LK", "goog.i18n.DateTimePatterns_sk_SK", "goog.i18n.DateTimePatterns_sl_SI", "goog.i18n.DateTimePatterns_sn", "goog.i18n.DateTimePatterns_sn_ZW", "goog.i18n.DateTimePatterns_so", "goog.i18n.DateTimePatterns_so_DJ", +"goog.i18n.DateTimePatterns_so_ET", "goog.i18n.DateTimePatterns_so_KE", "goog.i18n.DateTimePatterns_so_SO", "goog.i18n.DateTimePatterns_sq_AL", "goog.i18n.DateTimePatterns_sq_MK", "goog.i18n.DateTimePatterns_sr_Cyrl", "goog.i18n.DateTimePatterns_sr_Cyrl_BA", "goog.i18n.DateTimePatterns_sr_Cyrl_ME", "goog.i18n.DateTimePatterns_sr_Cyrl_RS", "goog.i18n.DateTimePatterns_sr_Latn", "goog.i18n.DateTimePatterns_sr_Latn_BA", "goog.i18n.DateTimePatterns_sr_Latn_ME", "goog.i18n.DateTimePatterns_sr_Latn_RS", +"goog.i18n.DateTimePatterns_sv_AX", "goog.i18n.DateTimePatterns_sv_FI", "goog.i18n.DateTimePatterns_sv_SE", "goog.i18n.DateTimePatterns_sw_KE", "goog.i18n.DateTimePatterns_sw_TZ", "goog.i18n.DateTimePatterns_sw_UG", "goog.i18n.DateTimePatterns_swc", "goog.i18n.DateTimePatterns_swc_CD", "goog.i18n.DateTimePatterns_ta_IN", "goog.i18n.DateTimePatterns_ta_LK", "goog.i18n.DateTimePatterns_ta_MY", "goog.i18n.DateTimePatterns_ta_SG", "goog.i18n.DateTimePatterns_te_IN", "goog.i18n.DateTimePatterns_teo", +"goog.i18n.DateTimePatterns_teo_KE", "goog.i18n.DateTimePatterns_teo_UG", "goog.i18n.DateTimePatterns_th_TH", "goog.i18n.DateTimePatterns_ti", "goog.i18n.DateTimePatterns_ti_ER", "goog.i18n.DateTimePatterns_ti_ET", "goog.i18n.DateTimePatterns_to", "goog.i18n.DateTimePatterns_to_TO", "goog.i18n.DateTimePatterns_tr_CY", "goog.i18n.DateTimePatterns_tr_TR", "goog.i18n.DateTimePatterns_twq", "goog.i18n.DateTimePatterns_twq_NE", "goog.i18n.DateTimePatterns_tzm", "goog.i18n.DateTimePatterns_tzm_Latn", "goog.i18n.DateTimePatterns_tzm_Latn_MA", +"goog.i18n.DateTimePatterns_uk_UA", "goog.i18n.DateTimePatterns_ur_IN", "goog.i18n.DateTimePatterns_ur_PK", "goog.i18n.DateTimePatterns_uz", "goog.i18n.DateTimePatterns_uz_Arab", "goog.i18n.DateTimePatterns_uz_Arab_AF", "goog.i18n.DateTimePatterns_uz_Cyrl", "goog.i18n.DateTimePatterns_uz_Cyrl_UZ", "goog.i18n.DateTimePatterns_uz_Latn", "goog.i18n.DateTimePatterns_uz_Latn_UZ", "goog.i18n.DateTimePatterns_vai", "goog.i18n.DateTimePatterns_vai_Latn", "goog.i18n.DateTimePatterns_vai_Latn_LR", "goog.i18n.DateTimePatterns_vai_Vaii", +"goog.i18n.DateTimePatterns_vai_Vaii_LR", "goog.i18n.DateTimePatterns_vi_VN", "goog.i18n.DateTimePatterns_vun", "goog.i18n.DateTimePatterns_vun_TZ", "goog.i18n.DateTimePatterns_xog", "goog.i18n.DateTimePatterns_xog_UG", "goog.i18n.DateTimePatterns_yav", "goog.i18n.DateTimePatterns_yav_CM", "goog.i18n.DateTimePatterns_yo", "goog.i18n.DateTimePatterns_yo_NG", "goog.i18n.DateTimePatterns_zh_Hans", "goog.i18n.DateTimePatterns_zh_Hans_CN", "goog.i18n.DateTimePatterns_zh_Hans_HK", "goog.i18n.DateTimePatterns_zh_Hans_MO", +"goog.i18n.DateTimePatterns_zh_Hans_SG", "goog.i18n.DateTimePatterns_zh_Hant", "goog.i18n.DateTimePatterns_zh_Hant_HK", "goog.i18n.DateTimePatterns_zh_Hant_MO", "goog.i18n.DateTimePatterns_zh_Hant_TW", "goog.i18n.DateTimePatterns_zu_ZA"], ["goog.i18n.DateTimePatterns"]); +goog.addDependency("/closure/goog/i18n/datetimesymbols.js", ["goog.i18n.DateTimeSymbols", "goog.i18n.DateTimeSymbols_af", "goog.i18n.DateTimeSymbols_am", "goog.i18n.DateTimeSymbols_ar", "goog.i18n.DateTimeSymbols_bg", "goog.i18n.DateTimeSymbols_bn", "goog.i18n.DateTimeSymbols_br", "goog.i18n.DateTimeSymbols_ca", "goog.i18n.DateTimeSymbols_chr", "goog.i18n.DateTimeSymbols_cs", "goog.i18n.DateTimeSymbols_cy", "goog.i18n.DateTimeSymbols_da", "goog.i18n.DateTimeSymbols_de", "goog.i18n.DateTimeSymbols_de_AT", +"goog.i18n.DateTimeSymbols_de_CH", "goog.i18n.DateTimeSymbols_el", "goog.i18n.DateTimeSymbols_en", "goog.i18n.DateTimeSymbols_en_AU", "goog.i18n.DateTimeSymbols_en_GB", "goog.i18n.DateTimeSymbols_en_IE", "goog.i18n.DateTimeSymbols_en_IN", "goog.i18n.DateTimeSymbols_en_ISO", "goog.i18n.DateTimeSymbols_en_SG", "goog.i18n.DateTimeSymbols_en_US", "goog.i18n.DateTimeSymbols_en_ZA", "goog.i18n.DateTimeSymbols_es", "goog.i18n.DateTimeSymbols_es_419", "goog.i18n.DateTimeSymbols_es_ES", "goog.i18n.DateTimeSymbols_et", +"goog.i18n.DateTimeSymbols_eu", "goog.i18n.DateTimeSymbols_fa", "goog.i18n.DateTimeSymbols_fi", "goog.i18n.DateTimeSymbols_fil", "goog.i18n.DateTimeSymbols_fr", "goog.i18n.DateTimeSymbols_fr_CA", "goog.i18n.DateTimeSymbols_gl", "goog.i18n.DateTimeSymbols_gsw", "goog.i18n.DateTimeSymbols_gu", "goog.i18n.DateTimeSymbols_haw", "goog.i18n.DateTimeSymbols_he", "goog.i18n.DateTimeSymbols_hi", "goog.i18n.DateTimeSymbols_hr", "goog.i18n.DateTimeSymbols_hu", "goog.i18n.DateTimeSymbols_id", "goog.i18n.DateTimeSymbols_in", +"goog.i18n.DateTimeSymbols_is", "goog.i18n.DateTimeSymbols_it", "goog.i18n.DateTimeSymbols_iw", "goog.i18n.DateTimeSymbols_ja", "goog.i18n.DateTimeSymbols_kn", "goog.i18n.DateTimeSymbols_ko", "goog.i18n.DateTimeSymbols_ln", "goog.i18n.DateTimeSymbols_lt", "goog.i18n.DateTimeSymbols_lv", "goog.i18n.DateTimeSymbols_ml", "goog.i18n.DateTimeSymbols_mr", "goog.i18n.DateTimeSymbols_ms", "goog.i18n.DateTimeSymbols_mt", "goog.i18n.DateTimeSymbols_nb", "goog.i18n.DateTimeSymbols_nl", "goog.i18n.DateTimeSymbols_no", +"goog.i18n.DateTimeSymbols_or", "goog.i18n.DateTimeSymbols_pl", "goog.i18n.DateTimeSymbols_pt", "goog.i18n.DateTimeSymbols_pt_BR", "goog.i18n.DateTimeSymbols_pt_PT", "goog.i18n.DateTimeSymbols_ro", "goog.i18n.DateTimeSymbols_ru", "goog.i18n.DateTimeSymbols_sk", "goog.i18n.DateTimeSymbols_sl", "goog.i18n.DateTimeSymbols_sq", "goog.i18n.DateTimeSymbols_sr", "goog.i18n.DateTimeSymbols_sv", "goog.i18n.DateTimeSymbols_sw", "goog.i18n.DateTimeSymbols_ta", "goog.i18n.DateTimeSymbols_te", "goog.i18n.DateTimeSymbols_th", +"goog.i18n.DateTimeSymbols_tl", "goog.i18n.DateTimeSymbols_tr", "goog.i18n.DateTimeSymbols_uk", "goog.i18n.DateTimeSymbols_ur", "goog.i18n.DateTimeSymbols_vi", "goog.i18n.DateTimeSymbols_zh", "goog.i18n.DateTimeSymbols_zh_CN", "goog.i18n.DateTimeSymbols_zh_HK", "goog.i18n.DateTimeSymbols_zh_TW", "goog.i18n.DateTimeSymbols_zu"], []); +goog.addDependency("/closure/goog/i18n/datetimesymbolsext.js", ["goog.i18n.DateTimeSymbolsExt", "goog.i18n.DateTimeSymbols_aa", "goog.i18n.DateTimeSymbols_aa_DJ", "goog.i18n.DateTimeSymbols_aa_ER", "goog.i18n.DateTimeSymbols_aa_ET", "goog.i18n.DateTimeSymbols_af_NA", "goog.i18n.DateTimeSymbols_af_ZA", "goog.i18n.DateTimeSymbols_agq", "goog.i18n.DateTimeSymbols_agq_CM", "goog.i18n.DateTimeSymbols_ak", "goog.i18n.DateTimeSymbols_ak_GH", "goog.i18n.DateTimeSymbols_am_ET", "goog.i18n.DateTimeSymbols_ar_001", +"goog.i18n.DateTimeSymbols_ar_AE", "goog.i18n.DateTimeSymbols_ar_BH", "goog.i18n.DateTimeSymbols_ar_DJ", "goog.i18n.DateTimeSymbols_ar_DZ", "goog.i18n.DateTimeSymbols_ar_EG", "goog.i18n.DateTimeSymbols_ar_EH", "goog.i18n.DateTimeSymbols_ar_ER", "goog.i18n.DateTimeSymbols_ar_IL", "goog.i18n.DateTimeSymbols_ar_IQ", "goog.i18n.DateTimeSymbols_ar_JO", "goog.i18n.DateTimeSymbols_ar_KM", "goog.i18n.DateTimeSymbols_ar_KW", "goog.i18n.DateTimeSymbols_ar_LB", "goog.i18n.DateTimeSymbols_ar_LY", "goog.i18n.DateTimeSymbols_ar_MA", +"goog.i18n.DateTimeSymbols_ar_MR", "goog.i18n.DateTimeSymbols_ar_OM", "goog.i18n.DateTimeSymbols_ar_PS", "goog.i18n.DateTimeSymbols_ar_QA", "goog.i18n.DateTimeSymbols_ar_SA", "goog.i18n.DateTimeSymbols_ar_SD", "goog.i18n.DateTimeSymbols_ar_SO", "goog.i18n.DateTimeSymbols_ar_SY", "goog.i18n.DateTimeSymbols_ar_TD", "goog.i18n.DateTimeSymbols_ar_TN", "goog.i18n.DateTimeSymbols_ar_YE", "goog.i18n.DateTimeSymbols_as", "goog.i18n.DateTimeSymbols_as_IN", "goog.i18n.DateTimeSymbols_asa", "goog.i18n.DateTimeSymbols_asa_TZ", +"goog.i18n.DateTimeSymbols_ast", "goog.i18n.DateTimeSymbols_ast_ES", "goog.i18n.DateTimeSymbols_az", "goog.i18n.DateTimeSymbols_az_Cyrl", "goog.i18n.DateTimeSymbols_az_Cyrl_AZ", "goog.i18n.DateTimeSymbols_az_Latn", "goog.i18n.DateTimeSymbols_az_Latn_AZ", "goog.i18n.DateTimeSymbols_bas", "goog.i18n.DateTimeSymbols_bas_CM", "goog.i18n.DateTimeSymbols_be", "goog.i18n.DateTimeSymbols_be_BY", "goog.i18n.DateTimeSymbols_bem", "goog.i18n.DateTimeSymbols_bem_ZM", "goog.i18n.DateTimeSymbols_bez", "goog.i18n.DateTimeSymbols_bez_TZ", +"goog.i18n.DateTimeSymbols_bg_BG", "goog.i18n.DateTimeSymbols_bm", "goog.i18n.DateTimeSymbols_bm_ML", "goog.i18n.DateTimeSymbols_bn_BD", "goog.i18n.DateTimeSymbols_bn_IN", "goog.i18n.DateTimeSymbols_bo", "goog.i18n.DateTimeSymbols_bo_CN", "goog.i18n.DateTimeSymbols_bo_IN", "goog.i18n.DateTimeSymbols_br_FR", "goog.i18n.DateTimeSymbols_brx", "goog.i18n.DateTimeSymbols_brx_IN", "goog.i18n.DateTimeSymbols_bs", "goog.i18n.DateTimeSymbols_bs_Cyrl", "goog.i18n.DateTimeSymbols_bs_Cyrl_BA", "goog.i18n.DateTimeSymbols_bs_Latn", +"goog.i18n.DateTimeSymbols_bs_Latn_BA", "goog.i18n.DateTimeSymbols_byn", "goog.i18n.DateTimeSymbols_byn_ER", "goog.i18n.DateTimeSymbols_ca_AD", "goog.i18n.DateTimeSymbols_ca_ES", "goog.i18n.DateTimeSymbols_cgg", "goog.i18n.DateTimeSymbols_cgg_UG", "goog.i18n.DateTimeSymbols_chr_US", "goog.i18n.DateTimeSymbols_ckb", "goog.i18n.DateTimeSymbols_ckb_Arab", "goog.i18n.DateTimeSymbols_ckb_Arab_IQ", "goog.i18n.DateTimeSymbols_ckb_Arab_IR", "goog.i18n.DateTimeSymbols_ckb_IQ", "goog.i18n.DateTimeSymbols_ckb_IR", +"goog.i18n.DateTimeSymbols_ckb_Latn", "goog.i18n.DateTimeSymbols_ckb_Latn_IQ", "goog.i18n.DateTimeSymbols_cs_CZ", "goog.i18n.DateTimeSymbols_cy_GB", "goog.i18n.DateTimeSymbols_da_DK", "goog.i18n.DateTimeSymbols_dav", "goog.i18n.DateTimeSymbols_dav_KE", "goog.i18n.DateTimeSymbols_de_BE", "goog.i18n.DateTimeSymbols_de_DE", "goog.i18n.DateTimeSymbols_de_LI", "goog.i18n.DateTimeSymbols_de_LU", "goog.i18n.DateTimeSymbols_dje", "goog.i18n.DateTimeSymbols_dje_NE", "goog.i18n.DateTimeSymbols_dua", "goog.i18n.DateTimeSymbols_dua_CM", +"goog.i18n.DateTimeSymbols_dyo", "goog.i18n.DateTimeSymbols_dyo_SN", "goog.i18n.DateTimeSymbols_dz", "goog.i18n.DateTimeSymbols_dz_BT", "goog.i18n.DateTimeSymbols_ebu", "goog.i18n.DateTimeSymbols_ebu_KE", "goog.i18n.DateTimeSymbols_ee", "goog.i18n.DateTimeSymbols_ee_GH", "goog.i18n.DateTimeSymbols_ee_TG", "goog.i18n.DateTimeSymbols_el_CY", "goog.i18n.DateTimeSymbols_el_GR", "goog.i18n.DateTimeSymbols_en_150", "goog.i18n.DateTimeSymbols_en_AG", "goog.i18n.DateTimeSymbols_en_AS", "goog.i18n.DateTimeSymbols_en_BB", +"goog.i18n.DateTimeSymbols_en_BE", "goog.i18n.DateTimeSymbols_en_BM", "goog.i18n.DateTimeSymbols_en_BS", "goog.i18n.DateTimeSymbols_en_BW", "goog.i18n.DateTimeSymbols_en_BZ", "goog.i18n.DateTimeSymbols_en_CA", "goog.i18n.DateTimeSymbols_en_CM", "goog.i18n.DateTimeSymbols_en_DM", "goog.i18n.DateTimeSymbols_en_Dsrt", "goog.i18n.DateTimeSymbols_en_Dsrt_US", "goog.i18n.DateTimeSymbols_en_FJ", "goog.i18n.DateTimeSymbols_en_FM", "goog.i18n.DateTimeSymbols_en_GD", "goog.i18n.DateTimeSymbols_en_GG", "goog.i18n.DateTimeSymbols_en_GH", +"goog.i18n.DateTimeSymbols_en_GI", "goog.i18n.DateTimeSymbols_en_GM", "goog.i18n.DateTimeSymbols_en_GU", "goog.i18n.DateTimeSymbols_en_GY", "goog.i18n.DateTimeSymbols_en_HK", "goog.i18n.DateTimeSymbols_en_IM", "goog.i18n.DateTimeSymbols_en_JE", "goog.i18n.DateTimeSymbols_en_JM", "goog.i18n.DateTimeSymbols_en_KE", "goog.i18n.DateTimeSymbols_en_KI", "goog.i18n.DateTimeSymbols_en_KN", "goog.i18n.DateTimeSymbols_en_KY", "goog.i18n.DateTimeSymbols_en_LC", "goog.i18n.DateTimeSymbols_en_LR", "goog.i18n.DateTimeSymbols_en_LS", +"goog.i18n.DateTimeSymbols_en_MG", "goog.i18n.DateTimeSymbols_en_MH", "goog.i18n.DateTimeSymbols_en_MP", "goog.i18n.DateTimeSymbols_en_MT", "goog.i18n.DateTimeSymbols_en_MU", "goog.i18n.DateTimeSymbols_en_MW", "goog.i18n.DateTimeSymbols_en_NA", "goog.i18n.DateTimeSymbols_en_NG", "goog.i18n.DateTimeSymbols_en_NZ", "goog.i18n.DateTimeSymbols_en_PG", "goog.i18n.DateTimeSymbols_en_PH", "goog.i18n.DateTimeSymbols_en_PK", "goog.i18n.DateTimeSymbols_en_PR", "goog.i18n.DateTimeSymbols_en_PW", "goog.i18n.DateTimeSymbols_en_SB", +"goog.i18n.DateTimeSymbols_en_SC", "goog.i18n.DateTimeSymbols_en_SL", "goog.i18n.DateTimeSymbols_en_SS", "goog.i18n.DateTimeSymbols_en_SZ", "goog.i18n.DateTimeSymbols_en_TC", "goog.i18n.DateTimeSymbols_en_TO", "goog.i18n.DateTimeSymbols_en_TT", "goog.i18n.DateTimeSymbols_en_TZ", "goog.i18n.DateTimeSymbols_en_UG", "goog.i18n.DateTimeSymbols_en_UM", "goog.i18n.DateTimeSymbols_en_VC", "goog.i18n.DateTimeSymbols_en_VG", "goog.i18n.DateTimeSymbols_en_VI", "goog.i18n.DateTimeSymbols_en_VU", "goog.i18n.DateTimeSymbols_en_WS", +"goog.i18n.DateTimeSymbols_en_ZM", "goog.i18n.DateTimeSymbols_en_ZW", "goog.i18n.DateTimeSymbols_eo", "goog.i18n.DateTimeSymbols_es_AR", "goog.i18n.DateTimeSymbols_es_BO", "goog.i18n.DateTimeSymbols_es_CL", "goog.i18n.DateTimeSymbols_es_CO", "goog.i18n.DateTimeSymbols_es_CR", "goog.i18n.DateTimeSymbols_es_CU", "goog.i18n.DateTimeSymbols_es_DO", "goog.i18n.DateTimeSymbols_es_EA", "goog.i18n.DateTimeSymbols_es_EC", "goog.i18n.DateTimeSymbols_es_GQ", "goog.i18n.DateTimeSymbols_es_GT", "goog.i18n.DateTimeSymbols_es_HN", +"goog.i18n.DateTimeSymbols_es_IC", "goog.i18n.DateTimeSymbols_es_MX", "goog.i18n.DateTimeSymbols_es_NI", "goog.i18n.DateTimeSymbols_es_PA", "goog.i18n.DateTimeSymbols_es_PE", "goog.i18n.DateTimeSymbols_es_PH", "goog.i18n.DateTimeSymbols_es_PR", "goog.i18n.DateTimeSymbols_es_PY", "goog.i18n.DateTimeSymbols_es_SV", "goog.i18n.DateTimeSymbols_es_US", "goog.i18n.DateTimeSymbols_es_UY", "goog.i18n.DateTimeSymbols_es_VE", "goog.i18n.DateTimeSymbols_et_EE", "goog.i18n.DateTimeSymbols_eu_ES", "goog.i18n.DateTimeSymbols_ewo", +"goog.i18n.DateTimeSymbols_ewo_CM", "goog.i18n.DateTimeSymbols_fa_AF", "goog.i18n.DateTimeSymbols_fa_IR", "goog.i18n.DateTimeSymbols_ff", "goog.i18n.DateTimeSymbols_ff_SN", "goog.i18n.DateTimeSymbols_fi_FI", "goog.i18n.DateTimeSymbols_fil_PH", "goog.i18n.DateTimeSymbols_fo", "goog.i18n.DateTimeSymbols_fo_FO", "goog.i18n.DateTimeSymbols_fr_BE", "goog.i18n.DateTimeSymbols_fr_BF", "goog.i18n.DateTimeSymbols_fr_BI", "goog.i18n.DateTimeSymbols_fr_BJ", "goog.i18n.DateTimeSymbols_fr_BL", "goog.i18n.DateTimeSymbols_fr_CD", +"goog.i18n.DateTimeSymbols_fr_CF", "goog.i18n.DateTimeSymbols_fr_CG", "goog.i18n.DateTimeSymbols_fr_CH", "goog.i18n.DateTimeSymbols_fr_CI", "goog.i18n.DateTimeSymbols_fr_CM", "goog.i18n.DateTimeSymbols_fr_DJ", "goog.i18n.DateTimeSymbols_fr_DZ", "goog.i18n.DateTimeSymbols_fr_FR", "goog.i18n.DateTimeSymbols_fr_GA", "goog.i18n.DateTimeSymbols_fr_GF", "goog.i18n.DateTimeSymbols_fr_GN", "goog.i18n.DateTimeSymbols_fr_GP", "goog.i18n.DateTimeSymbols_fr_GQ", "goog.i18n.DateTimeSymbols_fr_HT", "goog.i18n.DateTimeSymbols_fr_KM", +"goog.i18n.DateTimeSymbols_fr_LU", "goog.i18n.DateTimeSymbols_fr_MA", "goog.i18n.DateTimeSymbols_fr_MC", "goog.i18n.DateTimeSymbols_fr_MF", "goog.i18n.DateTimeSymbols_fr_MG", "goog.i18n.DateTimeSymbols_fr_ML", "goog.i18n.DateTimeSymbols_fr_MQ", "goog.i18n.DateTimeSymbols_fr_MR", "goog.i18n.DateTimeSymbols_fr_MU", "goog.i18n.DateTimeSymbols_fr_NC", "goog.i18n.DateTimeSymbols_fr_NE", "goog.i18n.DateTimeSymbols_fr_PF", "goog.i18n.DateTimeSymbols_fr_RE", "goog.i18n.DateTimeSymbols_fr_RW", "goog.i18n.DateTimeSymbols_fr_SC", +"goog.i18n.DateTimeSymbols_fr_SN", "goog.i18n.DateTimeSymbols_fr_SY", "goog.i18n.DateTimeSymbols_fr_TD", "goog.i18n.DateTimeSymbols_fr_TG", "goog.i18n.DateTimeSymbols_fr_TN", "goog.i18n.DateTimeSymbols_fr_VU", "goog.i18n.DateTimeSymbols_fr_YT", "goog.i18n.DateTimeSymbols_fur", "goog.i18n.DateTimeSymbols_fur_IT", "goog.i18n.DateTimeSymbols_ga", "goog.i18n.DateTimeSymbols_ga_IE", "goog.i18n.DateTimeSymbols_gd", "goog.i18n.DateTimeSymbols_gd_GB", "goog.i18n.DateTimeSymbols_gl_ES", "goog.i18n.DateTimeSymbols_gsw_CH", +"goog.i18n.DateTimeSymbols_gu_IN", "goog.i18n.DateTimeSymbols_guz", "goog.i18n.DateTimeSymbols_guz_KE", "goog.i18n.DateTimeSymbols_gv", "goog.i18n.DateTimeSymbols_gv_GB", "goog.i18n.DateTimeSymbols_ha", "goog.i18n.DateTimeSymbols_ha_Latn", "goog.i18n.DateTimeSymbols_ha_Latn_GH", "goog.i18n.DateTimeSymbols_ha_Latn_NE", "goog.i18n.DateTimeSymbols_ha_Latn_NG", "goog.i18n.DateTimeSymbols_haw_US", "goog.i18n.DateTimeSymbols_he_IL", "goog.i18n.DateTimeSymbols_hi_IN", "goog.i18n.DateTimeSymbols_hr_BA", +"goog.i18n.DateTimeSymbols_hr_HR", "goog.i18n.DateTimeSymbols_hu_HU", "goog.i18n.DateTimeSymbols_hy", "goog.i18n.DateTimeSymbols_hy_AM", "goog.i18n.DateTimeSymbols_ia", "goog.i18n.DateTimeSymbols_ia_FR", "goog.i18n.DateTimeSymbols_id_ID", "goog.i18n.DateTimeSymbols_ig", "goog.i18n.DateTimeSymbols_ig_NG", "goog.i18n.DateTimeSymbols_ii", "goog.i18n.DateTimeSymbols_ii_CN", "goog.i18n.DateTimeSymbols_is_IS", "goog.i18n.DateTimeSymbols_it_CH", "goog.i18n.DateTimeSymbols_it_IT", "goog.i18n.DateTimeSymbols_it_SM", +"goog.i18n.DateTimeSymbols_ja_JP", "goog.i18n.DateTimeSymbols_jgo", "goog.i18n.DateTimeSymbols_jgo_CM", "goog.i18n.DateTimeSymbols_jmc", "goog.i18n.DateTimeSymbols_jmc_TZ", "goog.i18n.DateTimeSymbols_ka", "goog.i18n.DateTimeSymbols_ka_GE", "goog.i18n.DateTimeSymbols_kab", "goog.i18n.DateTimeSymbols_kab_DZ", "goog.i18n.DateTimeSymbols_kam", "goog.i18n.DateTimeSymbols_kam_KE", "goog.i18n.DateTimeSymbols_kde", "goog.i18n.DateTimeSymbols_kde_TZ", "goog.i18n.DateTimeSymbols_kea", "goog.i18n.DateTimeSymbols_kea_CV", +"goog.i18n.DateTimeSymbols_khq", "goog.i18n.DateTimeSymbols_khq_ML", "goog.i18n.DateTimeSymbols_ki", "goog.i18n.DateTimeSymbols_ki_KE", "goog.i18n.DateTimeSymbols_kk", "goog.i18n.DateTimeSymbols_kk_Cyrl", "goog.i18n.DateTimeSymbols_kk_Cyrl_KZ", "goog.i18n.DateTimeSymbols_kkj", "goog.i18n.DateTimeSymbols_kkj_CM", "goog.i18n.DateTimeSymbols_kl", "goog.i18n.DateTimeSymbols_kl_GL", "goog.i18n.DateTimeSymbols_kln", "goog.i18n.DateTimeSymbols_kln_KE", "goog.i18n.DateTimeSymbols_km", "goog.i18n.DateTimeSymbols_km_KH", +"goog.i18n.DateTimeSymbols_kn_IN", "goog.i18n.DateTimeSymbols_ko_KP", "goog.i18n.DateTimeSymbols_ko_KR", "goog.i18n.DateTimeSymbols_kok", "goog.i18n.DateTimeSymbols_kok_IN", "goog.i18n.DateTimeSymbols_ks", "goog.i18n.DateTimeSymbols_ks_Arab", "goog.i18n.DateTimeSymbols_ks_Arab_IN", "goog.i18n.DateTimeSymbols_ksb", "goog.i18n.DateTimeSymbols_ksb_TZ", "goog.i18n.DateTimeSymbols_ksf", "goog.i18n.DateTimeSymbols_ksf_CM", "goog.i18n.DateTimeSymbols_ksh", "goog.i18n.DateTimeSymbols_ksh_DE", "goog.i18n.DateTimeSymbols_kw", +"goog.i18n.DateTimeSymbols_kw_GB", "goog.i18n.DateTimeSymbols_ky", "goog.i18n.DateTimeSymbols_ky_KG", "goog.i18n.DateTimeSymbols_lag", "goog.i18n.DateTimeSymbols_lag_TZ", "goog.i18n.DateTimeSymbols_lg", "goog.i18n.DateTimeSymbols_lg_UG", "goog.i18n.DateTimeSymbols_ln_AO", "goog.i18n.DateTimeSymbols_ln_CD", "goog.i18n.DateTimeSymbols_ln_CF", "goog.i18n.DateTimeSymbols_ln_CG", "goog.i18n.DateTimeSymbols_lo", "goog.i18n.DateTimeSymbols_lo_LA", "goog.i18n.DateTimeSymbols_lt_LT", "goog.i18n.DateTimeSymbols_lu", +"goog.i18n.DateTimeSymbols_lu_CD", "goog.i18n.DateTimeSymbols_luo", "goog.i18n.DateTimeSymbols_luo_KE", "goog.i18n.DateTimeSymbols_luy", "goog.i18n.DateTimeSymbols_luy_KE", "goog.i18n.DateTimeSymbols_lv_LV", "goog.i18n.DateTimeSymbols_mas", "goog.i18n.DateTimeSymbols_mas_KE", "goog.i18n.DateTimeSymbols_mas_TZ", "goog.i18n.DateTimeSymbols_mer", "goog.i18n.DateTimeSymbols_mer_KE", "goog.i18n.DateTimeSymbols_mfe", "goog.i18n.DateTimeSymbols_mfe_MU", "goog.i18n.DateTimeSymbols_mg", "goog.i18n.DateTimeSymbols_mg_MG", +"goog.i18n.DateTimeSymbols_mgh", "goog.i18n.DateTimeSymbols_mgh_MZ", "goog.i18n.DateTimeSymbols_mgo", "goog.i18n.DateTimeSymbols_mgo_CM", "goog.i18n.DateTimeSymbols_mk", "goog.i18n.DateTimeSymbols_mk_MK", "goog.i18n.DateTimeSymbols_ml_IN", "goog.i18n.DateTimeSymbols_mn", "goog.i18n.DateTimeSymbols_mn_Cyrl", "goog.i18n.DateTimeSymbols_mn_Cyrl_MN", "goog.i18n.DateTimeSymbols_mr_IN", "goog.i18n.DateTimeSymbols_ms_Latn", "goog.i18n.DateTimeSymbols_ms_Latn_BN", "goog.i18n.DateTimeSymbols_ms_Latn_MY", +"goog.i18n.DateTimeSymbols_ms_Latn_SG", "goog.i18n.DateTimeSymbols_mt_MT", "goog.i18n.DateTimeSymbols_mua", "goog.i18n.DateTimeSymbols_mua_CM", "goog.i18n.DateTimeSymbols_my", "goog.i18n.DateTimeSymbols_my_MM", "goog.i18n.DateTimeSymbols_naq", "goog.i18n.DateTimeSymbols_naq_NA", "goog.i18n.DateTimeSymbols_nb_NO", "goog.i18n.DateTimeSymbols_nd", "goog.i18n.DateTimeSymbols_nd_ZW", "goog.i18n.DateTimeSymbols_ne", "goog.i18n.DateTimeSymbols_ne_IN", "goog.i18n.DateTimeSymbols_ne_NP", "goog.i18n.DateTimeSymbols_nl_AW", +"goog.i18n.DateTimeSymbols_nl_BE", "goog.i18n.DateTimeSymbols_nl_CW", "goog.i18n.DateTimeSymbols_nl_NL", "goog.i18n.DateTimeSymbols_nl_SR", "goog.i18n.DateTimeSymbols_nl_SX", "goog.i18n.DateTimeSymbols_nmg", "goog.i18n.DateTimeSymbols_nmg_CM", "goog.i18n.DateTimeSymbols_nn", "goog.i18n.DateTimeSymbols_nn_NO", "goog.i18n.DateTimeSymbols_nnh", "goog.i18n.DateTimeSymbols_nnh_CM", "goog.i18n.DateTimeSymbols_nr", "goog.i18n.DateTimeSymbols_nr_ZA", "goog.i18n.DateTimeSymbols_nso", "goog.i18n.DateTimeSymbols_nso_ZA", +"goog.i18n.DateTimeSymbols_nus", "goog.i18n.DateTimeSymbols_nus_SD", "goog.i18n.DateTimeSymbols_nyn", "goog.i18n.DateTimeSymbols_nyn_UG", "goog.i18n.DateTimeSymbols_om", "goog.i18n.DateTimeSymbols_om_ET", "goog.i18n.DateTimeSymbols_om_KE", "goog.i18n.DateTimeSymbols_or_IN", "goog.i18n.DateTimeSymbols_os", "goog.i18n.DateTimeSymbols_os_GE", "goog.i18n.DateTimeSymbols_os_RU", "goog.i18n.DateTimeSymbols_pa", "goog.i18n.DateTimeSymbols_pa_Arab", "goog.i18n.DateTimeSymbols_pa_Arab_PK", "goog.i18n.DateTimeSymbols_pa_Guru", +"goog.i18n.DateTimeSymbols_pa_Guru_IN", "goog.i18n.DateTimeSymbols_pl_PL", "goog.i18n.DateTimeSymbols_ps", "goog.i18n.DateTimeSymbols_ps_AF", "goog.i18n.DateTimeSymbols_pt_AO", "goog.i18n.DateTimeSymbols_pt_CV", "goog.i18n.DateTimeSymbols_pt_GW", "goog.i18n.DateTimeSymbols_pt_MO", "goog.i18n.DateTimeSymbols_pt_MZ", "goog.i18n.DateTimeSymbols_pt_ST", "goog.i18n.DateTimeSymbols_pt_TL", "goog.i18n.DateTimeSymbols_rm", "goog.i18n.DateTimeSymbols_rm_CH", "goog.i18n.DateTimeSymbols_rn", "goog.i18n.DateTimeSymbols_rn_BI", +"goog.i18n.DateTimeSymbols_ro_MD", "goog.i18n.DateTimeSymbols_ro_RO", "goog.i18n.DateTimeSymbols_rof", "goog.i18n.DateTimeSymbols_rof_TZ", "goog.i18n.DateTimeSymbols_ru_BY", "goog.i18n.DateTimeSymbols_ru_KG", "goog.i18n.DateTimeSymbols_ru_KZ", "goog.i18n.DateTimeSymbols_ru_MD", "goog.i18n.DateTimeSymbols_ru_RU", "goog.i18n.DateTimeSymbols_ru_UA", "goog.i18n.DateTimeSymbols_rw", "goog.i18n.DateTimeSymbols_rw_RW", "goog.i18n.DateTimeSymbols_rwk", "goog.i18n.DateTimeSymbols_rwk_TZ", "goog.i18n.DateTimeSymbols_sah", +"goog.i18n.DateTimeSymbols_sah_RU", "goog.i18n.DateTimeSymbols_saq", "goog.i18n.DateTimeSymbols_saq_KE", "goog.i18n.DateTimeSymbols_sbp", "goog.i18n.DateTimeSymbols_sbp_TZ", "goog.i18n.DateTimeSymbols_se", "goog.i18n.DateTimeSymbols_se_FI", "goog.i18n.DateTimeSymbols_se_NO", "goog.i18n.DateTimeSymbols_seh", "goog.i18n.DateTimeSymbols_seh_MZ", "goog.i18n.DateTimeSymbols_ses", "goog.i18n.DateTimeSymbols_ses_ML", "goog.i18n.DateTimeSymbols_sg", "goog.i18n.DateTimeSymbols_sg_CF", "goog.i18n.DateTimeSymbols_shi", +"goog.i18n.DateTimeSymbols_shi_Latn", "goog.i18n.DateTimeSymbols_shi_Latn_MA", "goog.i18n.DateTimeSymbols_shi_Tfng", "goog.i18n.DateTimeSymbols_shi_Tfng_MA", "goog.i18n.DateTimeSymbols_si", "goog.i18n.DateTimeSymbols_si_LK", "goog.i18n.DateTimeSymbols_sk_SK", "goog.i18n.DateTimeSymbols_sl_SI", "goog.i18n.DateTimeSymbols_sn", "goog.i18n.DateTimeSymbols_sn_ZW", "goog.i18n.DateTimeSymbols_so", "goog.i18n.DateTimeSymbols_so_DJ", "goog.i18n.DateTimeSymbols_so_ET", "goog.i18n.DateTimeSymbols_so_KE", "goog.i18n.DateTimeSymbols_so_SO", +"goog.i18n.DateTimeSymbols_sq_AL", "goog.i18n.DateTimeSymbols_sq_MK", "goog.i18n.DateTimeSymbols_sq_XK", "goog.i18n.DateTimeSymbols_sr_Cyrl", "goog.i18n.DateTimeSymbols_sr_Cyrl_BA", "goog.i18n.DateTimeSymbols_sr_Cyrl_ME", "goog.i18n.DateTimeSymbols_sr_Cyrl_RS", "goog.i18n.DateTimeSymbols_sr_Cyrl_XK", "goog.i18n.DateTimeSymbols_sr_Latn", "goog.i18n.DateTimeSymbols_sr_Latn_BA", "goog.i18n.DateTimeSymbols_sr_Latn_ME", "goog.i18n.DateTimeSymbols_sr_Latn_RS", "goog.i18n.DateTimeSymbols_sr_Latn_XK", "goog.i18n.DateTimeSymbols_ss", +"goog.i18n.DateTimeSymbols_ss_SZ", "goog.i18n.DateTimeSymbols_ss_ZA", "goog.i18n.DateTimeSymbols_ssy", "goog.i18n.DateTimeSymbols_ssy_ER", "goog.i18n.DateTimeSymbols_st", "goog.i18n.DateTimeSymbols_st_LS", "goog.i18n.DateTimeSymbols_st_ZA", "goog.i18n.DateTimeSymbols_sv_AX", "goog.i18n.DateTimeSymbols_sv_FI", "goog.i18n.DateTimeSymbols_sv_SE", "goog.i18n.DateTimeSymbols_sw_KE", "goog.i18n.DateTimeSymbols_sw_TZ", "goog.i18n.DateTimeSymbols_sw_UG", "goog.i18n.DateTimeSymbols_swc", "goog.i18n.DateTimeSymbols_swc_CD", +"goog.i18n.DateTimeSymbols_ta_IN", "goog.i18n.DateTimeSymbols_ta_LK", "goog.i18n.DateTimeSymbols_ta_MY", "goog.i18n.DateTimeSymbols_ta_SG", "goog.i18n.DateTimeSymbols_te_IN", "goog.i18n.DateTimeSymbols_teo", "goog.i18n.DateTimeSymbols_teo_KE", "goog.i18n.DateTimeSymbols_teo_UG", "goog.i18n.DateTimeSymbols_tg", "goog.i18n.DateTimeSymbols_tg_Cyrl", "goog.i18n.DateTimeSymbols_tg_Cyrl_TJ", "goog.i18n.DateTimeSymbols_th_TH", "goog.i18n.DateTimeSymbols_ti", "goog.i18n.DateTimeSymbols_ti_ER", "goog.i18n.DateTimeSymbols_ti_ET", +"goog.i18n.DateTimeSymbols_tig", "goog.i18n.DateTimeSymbols_tig_ER", "goog.i18n.DateTimeSymbols_tn", "goog.i18n.DateTimeSymbols_tn_BW", "goog.i18n.DateTimeSymbols_tn_ZA", "goog.i18n.DateTimeSymbols_to", "goog.i18n.DateTimeSymbols_to_TO", "goog.i18n.DateTimeSymbols_tr_CY", "goog.i18n.DateTimeSymbols_tr_TR", "goog.i18n.DateTimeSymbols_ts", "goog.i18n.DateTimeSymbols_ts_ZA", "goog.i18n.DateTimeSymbols_twq", "goog.i18n.DateTimeSymbols_twq_NE", "goog.i18n.DateTimeSymbols_tzm", "goog.i18n.DateTimeSymbols_tzm_Latn", +"goog.i18n.DateTimeSymbols_tzm_Latn_MA", "goog.i18n.DateTimeSymbols_uk_UA", "goog.i18n.DateTimeSymbols_ur_IN", "goog.i18n.DateTimeSymbols_ur_PK", "goog.i18n.DateTimeSymbols_uz", "goog.i18n.DateTimeSymbols_uz_Arab", "goog.i18n.DateTimeSymbols_uz_Arab_AF", "goog.i18n.DateTimeSymbols_uz_Cyrl", "goog.i18n.DateTimeSymbols_uz_Cyrl_UZ", "goog.i18n.DateTimeSymbols_uz_Latn", "goog.i18n.DateTimeSymbols_uz_Latn_UZ", "goog.i18n.DateTimeSymbols_vai", "goog.i18n.DateTimeSymbols_vai_Latn", "goog.i18n.DateTimeSymbols_vai_Latn_LR", +"goog.i18n.DateTimeSymbols_vai_Vaii", "goog.i18n.DateTimeSymbols_vai_Vaii_LR", "goog.i18n.DateTimeSymbols_ve", "goog.i18n.DateTimeSymbols_ve_ZA", "goog.i18n.DateTimeSymbols_vi_VN", "goog.i18n.DateTimeSymbols_vo", "goog.i18n.DateTimeSymbols_vun", "goog.i18n.DateTimeSymbols_vun_TZ", "goog.i18n.DateTimeSymbols_wae", "goog.i18n.DateTimeSymbols_wae_CH", "goog.i18n.DateTimeSymbols_wal", "goog.i18n.DateTimeSymbols_wal_ET", "goog.i18n.DateTimeSymbols_xh", "goog.i18n.DateTimeSymbols_xh_ZA", "goog.i18n.DateTimeSymbols_xog", +"goog.i18n.DateTimeSymbols_xog_UG", "goog.i18n.DateTimeSymbols_yav", "goog.i18n.DateTimeSymbols_yav_CM", "goog.i18n.DateTimeSymbols_yo", "goog.i18n.DateTimeSymbols_yo_NG", "goog.i18n.DateTimeSymbols_zh_Hans", "goog.i18n.DateTimeSymbols_zh_Hans_CN", "goog.i18n.DateTimeSymbols_zh_Hans_HK", "goog.i18n.DateTimeSymbols_zh_Hans_MO", "goog.i18n.DateTimeSymbols_zh_Hans_SG", "goog.i18n.DateTimeSymbols_zh_Hant", "goog.i18n.DateTimeSymbols_zh_Hant_HK", "goog.i18n.DateTimeSymbols_zh_Hant_MO", "goog.i18n.DateTimeSymbols_zh_Hant_TW", +"goog.i18n.DateTimeSymbols_zu_ZA"], ["goog.i18n.DateTimeSymbols"]); +goog.addDependency("/closure/goog/i18n/graphemebreak.js", ["goog.i18n.GraphemeBreak"], ["goog.structs.InversionMap"]); +goog.addDependency("/closure/goog/i18n/messageformat.js", ["goog.i18n.MessageFormat"], ["goog.asserts", "goog.i18n.NumberFormat", "goog.i18n.ordinalRules", "goog.i18n.pluralRules"]); +goog.addDependency("/closure/goog/i18n/mime.js", ["goog.i18n.mime", "goog.i18n.mime.encode"], ["goog.array"]); +goog.addDependency("/closure/goog/i18n/numberformat.js", ["goog.i18n.NumberFormat", "goog.i18n.NumberFormat.CurrencyStyle", "goog.i18n.NumberFormat.Format"], ["goog.asserts", "goog.i18n.CompactNumberFormatSymbols", "goog.i18n.NumberFormatSymbols", "goog.i18n.currency", "goog.math"]); +goog.addDependency("/closure/goog/i18n/numberformatsymbols.js", ["goog.i18n.NumberFormatSymbols", "goog.i18n.NumberFormatSymbols_af", "goog.i18n.NumberFormatSymbols_af_ZA", "goog.i18n.NumberFormatSymbols_am", "goog.i18n.NumberFormatSymbols_am_ET", "goog.i18n.NumberFormatSymbols_ar", "goog.i18n.NumberFormatSymbols_ar_001", "goog.i18n.NumberFormatSymbols_ar_EG", "goog.i18n.NumberFormatSymbols_bg", "goog.i18n.NumberFormatSymbols_bg_BG", "goog.i18n.NumberFormatSymbols_bn", "goog.i18n.NumberFormatSymbols_bn_BD", +"goog.i18n.NumberFormatSymbols_br", "goog.i18n.NumberFormatSymbols_br_FR", "goog.i18n.NumberFormatSymbols_ca", "goog.i18n.NumberFormatSymbols_ca_AD", "goog.i18n.NumberFormatSymbols_ca_ES", "goog.i18n.NumberFormatSymbols_chr", "goog.i18n.NumberFormatSymbols_chr_US", "goog.i18n.NumberFormatSymbols_cs", "goog.i18n.NumberFormatSymbols_cs_CZ", "goog.i18n.NumberFormatSymbols_cy", "goog.i18n.NumberFormatSymbols_cy_GB", "goog.i18n.NumberFormatSymbols_da", "goog.i18n.NumberFormatSymbols_da_DK", "goog.i18n.NumberFormatSymbols_de", +"goog.i18n.NumberFormatSymbols_de_AT", "goog.i18n.NumberFormatSymbols_de_BE", "goog.i18n.NumberFormatSymbols_de_CH", "goog.i18n.NumberFormatSymbols_de_DE", "goog.i18n.NumberFormatSymbols_de_LU", "goog.i18n.NumberFormatSymbols_el", "goog.i18n.NumberFormatSymbols_el_GR", "goog.i18n.NumberFormatSymbols_en", "goog.i18n.NumberFormatSymbols_en_AS", "goog.i18n.NumberFormatSymbols_en_AU", "goog.i18n.NumberFormatSymbols_en_Dsrt_US", "goog.i18n.NumberFormatSymbols_en_FM", "goog.i18n.NumberFormatSymbols_en_GB", +"goog.i18n.NumberFormatSymbols_en_GU", "goog.i18n.NumberFormatSymbols_en_IE", "goog.i18n.NumberFormatSymbols_en_IN", "goog.i18n.NumberFormatSymbols_en_MH", "goog.i18n.NumberFormatSymbols_en_MP", "goog.i18n.NumberFormatSymbols_en_PR", "goog.i18n.NumberFormatSymbols_en_PW", "goog.i18n.NumberFormatSymbols_en_SG", "goog.i18n.NumberFormatSymbols_en_TC", "goog.i18n.NumberFormatSymbols_en_UM", "goog.i18n.NumberFormatSymbols_en_US", "goog.i18n.NumberFormatSymbols_en_VG", "goog.i18n.NumberFormatSymbols_en_VI", +"goog.i18n.NumberFormatSymbols_en_ZA", "goog.i18n.NumberFormatSymbols_es", "goog.i18n.NumberFormatSymbols_es_419", "goog.i18n.NumberFormatSymbols_es_EA", "goog.i18n.NumberFormatSymbols_es_ES", "goog.i18n.NumberFormatSymbols_es_IC", "goog.i18n.NumberFormatSymbols_et", "goog.i18n.NumberFormatSymbols_et_EE", "goog.i18n.NumberFormatSymbols_eu", "goog.i18n.NumberFormatSymbols_eu_ES", "goog.i18n.NumberFormatSymbols_fa", "goog.i18n.NumberFormatSymbols_fa_IR", "goog.i18n.NumberFormatSymbols_fi", "goog.i18n.NumberFormatSymbols_fi_FI", +"goog.i18n.NumberFormatSymbols_fil", "goog.i18n.NumberFormatSymbols_fil_PH", "goog.i18n.NumberFormatSymbols_fr", "goog.i18n.NumberFormatSymbols_fr_BL", "goog.i18n.NumberFormatSymbols_fr_CA", "goog.i18n.NumberFormatSymbols_fr_FR", "goog.i18n.NumberFormatSymbols_fr_GF", "goog.i18n.NumberFormatSymbols_fr_GP", "goog.i18n.NumberFormatSymbols_fr_MC", "goog.i18n.NumberFormatSymbols_fr_MF", "goog.i18n.NumberFormatSymbols_fr_MQ", "goog.i18n.NumberFormatSymbols_fr_RE", "goog.i18n.NumberFormatSymbols_fr_YT", +"goog.i18n.NumberFormatSymbols_gl", "goog.i18n.NumberFormatSymbols_gl_ES", "goog.i18n.NumberFormatSymbols_gsw", "goog.i18n.NumberFormatSymbols_gsw_CH", "goog.i18n.NumberFormatSymbols_gu", "goog.i18n.NumberFormatSymbols_gu_IN", "goog.i18n.NumberFormatSymbols_haw", "goog.i18n.NumberFormatSymbols_haw_US", "goog.i18n.NumberFormatSymbols_he", "goog.i18n.NumberFormatSymbols_he_IL", "goog.i18n.NumberFormatSymbols_hi", "goog.i18n.NumberFormatSymbols_hi_IN", "goog.i18n.NumberFormatSymbols_hr", "goog.i18n.NumberFormatSymbols_hr_HR", +"goog.i18n.NumberFormatSymbols_hu", "goog.i18n.NumberFormatSymbols_hu_HU", "goog.i18n.NumberFormatSymbols_id", "goog.i18n.NumberFormatSymbols_id_ID", "goog.i18n.NumberFormatSymbols_in", "goog.i18n.NumberFormatSymbols_is", "goog.i18n.NumberFormatSymbols_is_IS", "goog.i18n.NumberFormatSymbols_it", "goog.i18n.NumberFormatSymbols_it_IT", "goog.i18n.NumberFormatSymbols_it_SM", "goog.i18n.NumberFormatSymbols_iw", "goog.i18n.NumberFormatSymbols_ja", "goog.i18n.NumberFormatSymbols_ja_JP", "goog.i18n.NumberFormatSymbols_kn", +"goog.i18n.NumberFormatSymbols_kn_IN", "goog.i18n.NumberFormatSymbols_ko", "goog.i18n.NumberFormatSymbols_ko_KR", "goog.i18n.NumberFormatSymbols_ln", "goog.i18n.NumberFormatSymbols_ln_CD", "goog.i18n.NumberFormatSymbols_lt", "goog.i18n.NumberFormatSymbols_lt_LT", "goog.i18n.NumberFormatSymbols_lv", "goog.i18n.NumberFormatSymbols_lv_LV", "goog.i18n.NumberFormatSymbols_ml", "goog.i18n.NumberFormatSymbols_ml_IN", "goog.i18n.NumberFormatSymbols_mr", "goog.i18n.NumberFormatSymbols_mr_IN", "goog.i18n.NumberFormatSymbols_ms", +"goog.i18n.NumberFormatSymbols_ms_Latn_MY", "goog.i18n.NumberFormatSymbols_mt", "goog.i18n.NumberFormatSymbols_mt_MT", "goog.i18n.NumberFormatSymbols_nb", "goog.i18n.NumberFormatSymbols_nb_NO", "goog.i18n.NumberFormatSymbols_nl", "goog.i18n.NumberFormatSymbols_nl_NL", "goog.i18n.NumberFormatSymbols_no", "goog.i18n.NumberFormatSymbols_or", "goog.i18n.NumberFormatSymbols_or_IN", "goog.i18n.NumberFormatSymbols_pl", "goog.i18n.NumberFormatSymbols_pl_PL", "goog.i18n.NumberFormatSymbols_pt", "goog.i18n.NumberFormatSymbols_pt_BR", +"goog.i18n.NumberFormatSymbols_pt_PT", "goog.i18n.NumberFormatSymbols_ro", "goog.i18n.NumberFormatSymbols_ro_RO", "goog.i18n.NumberFormatSymbols_ru", "goog.i18n.NumberFormatSymbols_ru_RU", "goog.i18n.NumberFormatSymbols_sk", "goog.i18n.NumberFormatSymbols_sk_SK", "goog.i18n.NumberFormatSymbols_sl", "goog.i18n.NumberFormatSymbols_sl_SI", "goog.i18n.NumberFormatSymbols_sq", "goog.i18n.NumberFormatSymbols_sq_AL", "goog.i18n.NumberFormatSymbols_sr", "goog.i18n.NumberFormatSymbols_sr_Cyrl_RS", "goog.i18n.NumberFormatSymbols_sv", +"goog.i18n.NumberFormatSymbols_sv_SE", "goog.i18n.NumberFormatSymbols_sw", "goog.i18n.NumberFormatSymbols_sw_TZ", "goog.i18n.NumberFormatSymbols_ta", "goog.i18n.NumberFormatSymbols_ta_IN", "goog.i18n.NumberFormatSymbols_te", "goog.i18n.NumberFormatSymbols_te_IN", "goog.i18n.NumberFormatSymbols_th", "goog.i18n.NumberFormatSymbols_th_TH", "goog.i18n.NumberFormatSymbols_tl", "goog.i18n.NumberFormatSymbols_tr", "goog.i18n.NumberFormatSymbols_tr_TR", "goog.i18n.NumberFormatSymbols_uk", "goog.i18n.NumberFormatSymbols_uk_UA", +"goog.i18n.NumberFormatSymbols_ur", "goog.i18n.NumberFormatSymbols_ur_PK", "goog.i18n.NumberFormatSymbols_vi", "goog.i18n.NumberFormatSymbols_vi_VN", "goog.i18n.NumberFormatSymbols_zh", "goog.i18n.NumberFormatSymbols_zh_CN", "goog.i18n.NumberFormatSymbols_zh_HK", "goog.i18n.NumberFormatSymbols_zh_Hans_CN", "goog.i18n.NumberFormatSymbols_zh_TW", "goog.i18n.NumberFormatSymbols_zu", "goog.i18n.NumberFormatSymbols_zu_ZA"], []); +goog.addDependency("/closure/goog/i18n/numberformatsymbolsext.js", ["goog.i18n.NumberFormatSymbolsExt", "goog.i18n.NumberFormatSymbols_aa", "goog.i18n.NumberFormatSymbols_aa_DJ", "goog.i18n.NumberFormatSymbols_aa_ER", "goog.i18n.NumberFormatSymbols_aa_ET", "goog.i18n.NumberFormatSymbols_af_NA", "goog.i18n.NumberFormatSymbols_agq", "goog.i18n.NumberFormatSymbols_agq_CM", "goog.i18n.NumberFormatSymbols_ak", "goog.i18n.NumberFormatSymbols_ak_GH", "goog.i18n.NumberFormatSymbols_ar_AE", "goog.i18n.NumberFormatSymbols_ar_BH", +"goog.i18n.NumberFormatSymbols_ar_DJ", "goog.i18n.NumberFormatSymbols_ar_DZ", "goog.i18n.NumberFormatSymbols_ar_EH", "goog.i18n.NumberFormatSymbols_ar_ER", "goog.i18n.NumberFormatSymbols_ar_IL", "goog.i18n.NumberFormatSymbols_ar_IQ", "goog.i18n.NumberFormatSymbols_ar_JO", "goog.i18n.NumberFormatSymbols_ar_KM", "goog.i18n.NumberFormatSymbols_ar_KW", "goog.i18n.NumberFormatSymbols_ar_LB", "goog.i18n.NumberFormatSymbols_ar_LY", "goog.i18n.NumberFormatSymbols_ar_MA", "goog.i18n.NumberFormatSymbols_ar_MR", +"goog.i18n.NumberFormatSymbols_ar_OM", "goog.i18n.NumberFormatSymbols_ar_PS", "goog.i18n.NumberFormatSymbols_ar_QA", "goog.i18n.NumberFormatSymbols_ar_SA", "goog.i18n.NumberFormatSymbols_ar_SD", "goog.i18n.NumberFormatSymbols_ar_SO", "goog.i18n.NumberFormatSymbols_ar_SY", "goog.i18n.NumberFormatSymbols_ar_TD", "goog.i18n.NumberFormatSymbols_ar_TN", "goog.i18n.NumberFormatSymbols_ar_YE", "goog.i18n.NumberFormatSymbols_as", "goog.i18n.NumberFormatSymbols_as_IN", "goog.i18n.NumberFormatSymbols_asa", +"goog.i18n.NumberFormatSymbols_asa_TZ", "goog.i18n.NumberFormatSymbols_ast", "goog.i18n.NumberFormatSymbols_ast_ES", "goog.i18n.NumberFormatSymbols_az", "goog.i18n.NumberFormatSymbols_az_Cyrl", "goog.i18n.NumberFormatSymbols_az_Cyrl_AZ", "goog.i18n.NumberFormatSymbols_az_Latn", "goog.i18n.NumberFormatSymbols_az_Latn_AZ", "goog.i18n.NumberFormatSymbols_bas", "goog.i18n.NumberFormatSymbols_bas_CM", "goog.i18n.NumberFormatSymbols_be", "goog.i18n.NumberFormatSymbols_be_BY", "goog.i18n.NumberFormatSymbols_bem", +"goog.i18n.NumberFormatSymbols_bem_ZM", "goog.i18n.NumberFormatSymbols_bez", "goog.i18n.NumberFormatSymbols_bez_TZ", "goog.i18n.NumberFormatSymbols_bm", "goog.i18n.NumberFormatSymbols_bm_ML", "goog.i18n.NumberFormatSymbols_bn_IN", "goog.i18n.NumberFormatSymbols_bo", "goog.i18n.NumberFormatSymbols_bo_CN", "goog.i18n.NumberFormatSymbols_bo_IN", "goog.i18n.NumberFormatSymbols_brx", "goog.i18n.NumberFormatSymbols_brx_IN", "goog.i18n.NumberFormatSymbols_bs", "goog.i18n.NumberFormatSymbols_bs_Cyrl", "goog.i18n.NumberFormatSymbols_bs_Cyrl_BA", +"goog.i18n.NumberFormatSymbols_bs_Latn", "goog.i18n.NumberFormatSymbols_bs_Latn_BA", "goog.i18n.NumberFormatSymbols_byn", "goog.i18n.NumberFormatSymbols_byn_ER", "goog.i18n.NumberFormatSymbols_cgg", "goog.i18n.NumberFormatSymbols_cgg_UG", "goog.i18n.NumberFormatSymbols_ckb", "goog.i18n.NumberFormatSymbols_ckb_Arab", "goog.i18n.NumberFormatSymbols_ckb_Arab_IQ", "goog.i18n.NumberFormatSymbols_ckb_Arab_IR", "goog.i18n.NumberFormatSymbols_ckb_IQ", "goog.i18n.NumberFormatSymbols_ckb_IR", "goog.i18n.NumberFormatSymbols_ckb_Latn", +"goog.i18n.NumberFormatSymbols_ckb_Latn_IQ", "goog.i18n.NumberFormatSymbols_dav", "goog.i18n.NumberFormatSymbols_dav_KE", "goog.i18n.NumberFormatSymbols_de_LI", "goog.i18n.NumberFormatSymbols_dje", "goog.i18n.NumberFormatSymbols_dje_NE", "goog.i18n.NumberFormatSymbols_dua", "goog.i18n.NumberFormatSymbols_dua_CM", "goog.i18n.NumberFormatSymbols_dyo", "goog.i18n.NumberFormatSymbols_dyo_SN", "goog.i18n.NumberFormatSymbols_dz", "goog.i18n.NumberFormatSymbols_dz_BT", "goog.i18n.NumberFormatSymbols_ebu", +"goog.i18n.NumberFormatSymbols_ebu_KE", "goog.i18n.NumberFormatSymbols_ee", "goog.i18n.NumberFormatSymbols_ee_GH", "goog.i18n.NumberFormatSymbols_ee_TG", "goog.i18n.NumberFormatSymbols_el_CY", "goog.i18n.NumberFormatSymbols_en_150", "goog.i18n.NumberFormatSymbols_en_AG", "goog.i18n.NumberFormatSymbols_en_BB", "goog.i18n.NumberFormatSymbols_en_BE", "goog.i18n.NumberFormatSymbols_en_BM", "goog.i18n.NumberFormatSymbols_en_BS", "goog.i18n.NumberFormatSymbols_en_BW", "goog.i18n.NumberFormatSymbols_en_BZ", +"goog.i18n.NumberFormatSymbols_en_CA", "goog.i18n.NumberFormatSymbols_en_CM", "goog.i18n.NumberFormatSymbols_en_DM", "goog.i18n.NumberFormatSymbols_en_Dsrt", "goog.i18n.NumberFormatSymbols_en_FJ", "goog.i18n.NumberFormatSymbols_en_GD", "goog.i18n.NumberFormatSymbols_en_GG", "goog.i18n.NumberFormatSymbols_en_GH", "goog.i18n.NumberFormatSymbols_en_GI", "goog.i18n.NumberFormatSymbols_en_GM", "goog.i18n.NumberFormatSymbols_en_GY", "goog.i18n.NumberFormatSymbols_en_HK", "goog.i18n.NumberFormatSymbols_en_IM", +"goog.i18n.NumberFormatSymbols_en_JE", "goog.i18n.NumberFormatSymbols_en_JM", "goog.i18n.NumberFormatSymbols_en_KE", "goog.i18n.NumberFormatSymbols_en_KI", "goog.i18n.NumberFormatSymbols_en_KN", "goog.i18n.NumberFormatSymbols_en_KY", "goog.i18n.NumberFormatSymbols_en_LC", "goog.i18n.NumberFormatSymbols_en_LR", "goog.i18n.NumberFormatSymbols_en_LS", "goog.i18n.NumberFormatSymbols_en_MG", "goog.i18n.NumberFormatSymbols_en_MT", "goog.i18n.NumberFormatSymbols_en_MU", "goog.i18n.NumberFormatSymbols_en_MW", +"goog.i18n.NumberFormatSymbols_en_NA", "goog.i18n.NumberFormatSymbols_en_NG", "goog.i18n.NumberFormatSymbols_en_NZ", "goog.i18n.NumberFormatSymbols_en_PG", "goog.i18n.NumberFormatSymbols_en_PH", "goog.i18n.NumberFormatSymbols_en_PK", "goog.i18n.NumberFormatSymbols_en_SB", "goog.i18n.NumberFormatSymbols_en_SC", "goog.i18n.NumberFormatSymbols_en_SL", "goog.i18n.NumberFormatSymbols_en_SS", "goog.i18n.NumberFormatSymbols_en_SZ", "goog.i18n.NumberFormatSymbols_en_TO", "goog.i18n.NumberFormatSymbols_en_TT", +"goog.i18n.NumberFormatSymbols_en_TZ", "goog.i18n.NumberFormatSymbols_en_UG", "goog.i18n.NumberFormatSymbols_en_VC", "goog.i18n.NumberFormatSymbols_en_VU", "goog.i18n.NumberFormatSymbols_en_WS", "goog.i18n.NumberFormatSymbols_en_ZM", "goog.i18n.NumberFormatSymbols_en_ZW", "goog.i18n.NumberFormatSymbols_eo", "goog.i18n.NumberFormatSymbols_es_AR", "goog.i18n.NumberFormatSymbols_es_BO", "goog.i18n.NumberFormatSymbols_es_CL", "goog.i18n.NumberFormatSymbols_es_CO", "goog.i18n.NumberFormatSymbols_es_CR", +"goog.i18n.NumberFormatSymbols_es_CU", "goog.i18n.NumberFormatSymbols_es_DO", "goog.i18n.NumberFormatSymbols_es_EC", "goog.i18n.NumberFormatSymbols_es_GQ", "goog.i18n.NumberFormatSymbols_es_GT", "goog.i18n.NumberFormatSymbols_es_HN", "goog.i18n.NumberFormatSymbols_es_MX", "goog.i18n.NumberFormatSymbols_es_NI", "goog.i18n.NumberFormatSymbols_es_PA", "goog.i18n.NumberFormatSymbols_es_PE", "goog.i18n.NumberFormatSymbols_es_PH", "goog.i18n.NumberFormatSymbols_es_PR", "goog.i18n.NumberFormatSymbols_es_PY", +"goog.i18n.NumberFormatSymbols_es_SV", "goog.i18n.NumberFormatSymbols_es_US", "goog.i18n.NumberFormatSymbols_es_UY", "goog.i18n.NumberFormatSymbols_es_VE", "goog.i18n.NumberFormatSymbols_ewo", "goog.i18n.NumberFormatSymbols_ewo_CM", "goog.i18n.NumberFormatSymbols_fa_AF", "goog.i18n.NumberFormatSymbols_ff", "goog.i18n.NumberFormatSymbols_ff_SN", "goog.i18n.NumberFormatSymbols_fo", "goog.i18n.NumberFormatSymbols_fo_FO", "goog.i18n.NumberFormatSymbols_fr_BE", "goog.i18n.NumberFormatSymbols_fr_BF", "goog.i18n.NumberFormatSymbols_fr_BI", +"goog.i18n.NumberFormatSymbols_fr_BJ", "goog.i18n.NumberFormatSymbols_fr_CD", "goog.i18n.NumberFormatSymbols_fr_CF", "goog.i18n.NumberFormatSymbols_fr_CG", "goog.i18n.NumberFormatSymbols_fr_CH", "goog.i18n.NumberFormatSymbols_fr_CI", "goog.i18n.NumberFormatSymbols_fr_CM", "goog.i18n.NumberFormatSymbols_fr_DJ", "goog.i18n.NumberFormatSymbols_fr_DZ", "goog.i18n.NumberFormatSymbols_fr_GA", "goog.i18n.NumberFormatSymbols_fr_GN", "goog.i18n.NumberFormatSymbols_fr_GQ", "goog.i18n.NumberFormatSymbols_fr_HT", +"goog.i18n.NumberFormatSymbols_fr_KM", "goog.i18n.NumberFormatSymbols_fr_LU", "goog.i18n.NumberFormatSymbols_fr_MA", "goog.i18n.NumberFormatSymbols_fr_MG", "goog.i18n.NumberFormatSymbols_fr_ML", "goog.i18n.NumberFormatSymbols_fr_MR", "goog.i18n.NumberFormatSymbols_fr_MU", "goog.i18n.NumberFormatSymbols_fr_NC", "goog.i18n.NumberFormatSymbols_fr_NE", "goog.i18n.NumberFormatSymbols_fr_PF", "goog.i18n.NumberFormatSymbols_fr_RW", "goog.i18n.NumberFormatSymbols_fr_SC", "goog.i18n.NumberFormatSymbols_fr_SN", +"goog.i18n.NumberFormatSymbols_fr_SY", "goog.i18n.NumberFormatSymbols_fr_TD", "goog.i18n.NumberFormatSymbols_fr_TG", "goog.i18n.NumberFormatSymbols_fr_TN", "goog.i18n.NumberFormatSymbols_fr_VU", "goog.i18n.NumberFormatSymbols_fur", "goog.i18n.NumberFormatSymbols_fur_IT", "goog.i18n.NumberFormatSymbols_ga", "goog.i18n.NumberFormatSymbols_ga_IE", "goog.i18n.NumberFormatSymbols_gd", "goog.i18n.NumberFormatSymbols_gd_GB", "goog.i18n.NumberFormatSymbols_guz", "goog.i18n.NumberFormatSymbols_guz_KE", "goog.i18n.NumberFormatSymbols_gv", +"goog.i18n.NumberFormatSymbols_gv_GB", "goog.i18n.NumberFormatSymbols_ha", "goog.i18n.NumberFormatSymbols_ha_Latn", "goog.i18n.NumberFormatSymbols_ha_Latn_GH", "goog.i18n.NumberFormatSymbols_ha_Latn_NE", "goog.i18n.NumberFormatSymbols_ha_Latn_NG", "goog.i18n.NumberFormatSymbols_hr_BA", "goog.i18n.NumberFormatSymbols_hy", "goog.i18n.NumberFormatSymbols_hy_AM", "goog.i18n.NumberFormatSymbols_ia", "goog.i18n.NumberFormatSymbols_ia_FR", "goog.i18n.NumberFormatSymbols_ig", "goog.i18n.NumberFormatSymbols_ig_NG", +"goog.i18n.NumberFormatSymbols_ii", "goog.i18n.NumberFormatSymbols_ii_CN", "goog.i18n.NumberFormatSymbols_it_CH", "goog.i18n.NumberFormatSymbols_jgo", "goog.i18n.NumberFormatSymbols_jgo_CM", "goog.i18n.NumberFormatSymbols_jmc", "goog.i18n.NumberFormatSymbols_jmc_TZ", "goog.i18n.NumberFormatSymbols_ka", "goog.i18n.NumberFormatSymbols_ka_GE", "goog.i18n.NumberFormatSymbols_kab", "goog.i18n.NumberFormatSymbols_kab_DZ", "goog.i18n.NumberFormatSymbols_kam", "goog.i18n.NumberFormatSymbols_kam_KE", "goog.i18n.NumberFormatSymbols_kde", +"goog.i18n.NumberFormatSymbols_kde_TZ", "goog.i18n.NumberFormatSymbols_kea", "goog.i18n.NumberFormatSymbols_kea_CV", "goog.i18n.NumberFormatSymbols_khq", "goog.i18n.NumberFormatSymbols_khq_ML", "goog.i18n.NumberFormatSymbols_ki", "goog.i18n.NumberFormatSymbols_ki_KE", "goog.i18n.NumberFormatSymbols_kk", "goog.i18n.NumberFormatSymbols_kk_Cyrl", "goog.i18n.NumberFormatSymbols_kk_Cyrl_KZ", "goog.i18n.NumberFormatSymbols_kkj", "goog.i18n.NumberFormatSymbols_kkj_CM", "goog.i18n.NumberFormatSymbols_kl", +"goog.i18n.NumberFormatSymbols_kl_GL", "goog.i18n.NumberFormatSymbols_kln", "goog.i18n.NumberFormatSymbols_kln_KE", "goog.i18n.NumberFormatSymbols_km", "goog.i18n.NumberFormatSymbols_km_KH", "goog.i18n.NumberFormatSymbols_ko_KP", "goog.i18n.NumberFormatSymbols_kok", "goog.i18n.NumberFormatSymbols_kok_IN", "goog.i18n.NumberFormatSymbols_ks", "goog.i18n.NumberFormatSymbols_ks_Arab", "goog.i18n.NumberFormatSymbols_ks_Arab_IN", "goog.i18n.NumberFormatSymbols_ksb", "goog.i18n.NumberFormatSymbols_ksb_TZ", +"goog.i18n.NumberFormatSymbols_ksf", "goog.i18n.NumberFormatSymbols_ksf_CM", "goog.i18n.NumberFormatSymbols_ksh", "goog.i18n.NumberFormatSymbols_ksh_DE", "goog.i18n.NumberFormatSymbols_kw", "goog.i18n.NumberFormatSymbols_kw_GB", "goog.i18n.NumberFormatSymbols_ky", "goog.i18n.NumberFormatSymbols_ky_KG", "goog.i18n.NumberFormatSymbols_lag", "goog.i18n.NumberFormatSymbols_lag_TZ", "goog.i18n.NumberFormatSymbols_lg", "goog.i18n.NumberFormatSymbols_lg_UG", "goog.i18n.NumberFormatSymbols_ln_AO", "goog.i18n.NumberFormatSymbols_ln_CF", +"goog.i18n.NumberFormatSymbols_ln_CG", "goog.i18n.NumberFormatSymbols_lo", "goog.i18n.NumberFormatSymbols_lo_LA", "goog.i18n.NumberFormatSymbols_lu", "goog.i18n.NumberFormatSymbols_lu_CD", "goog.i18n.NumberFormatSymbols_luo", "goog.i18n.NumberFormatSymbols_luo_KE", "goog.i18n.NumberFormatSymbols_luy", "goog.i18n.NumberFormatSymbols_luy_KE", "goog.i18n.NumberFormatSymbols_mas", "goog.i18n.NumberFormatSymbols_mas_KE", "goog.i18n.NumberFormatSymbols_mas_TZ", "goog.i18n.NumberFormatSymbols_mer", "goog.i18n.NumberFormatSymbols_mer_KE", +"goog.i18n.NumberFormatSymbols_mfe", "goog.i18n.NumberFormatSymbols_mfe_MU", "goog.i18n.NumberFormatSymbols_mg", "goog.i18n.NumberFormatSymbols_mg_MG", "goog.i18n.NumberFormatSymbols_mgh", "goog.i18n.NumberFormatSymbols_mgh_MZ", "goog.i18n.NumberFormatSymbols_mgo", "goog.i18n.NumberFormatSymbols_mgo_CM", "goog.i18n.NumberFormatSymbols_mk", "goog.i18n.NumberFormatSymbols_mk_MK", "goog.i18n.NumberFormatSymbols_mn", "goog.i18n.NumberFormatSymbols_mn_Cyrl", "goog.i18n.NumberFormatSymbols_mn_Cyrl_MN", +"goog.i18n.NumberFormatSymbols_ms_Latn", "goog.i18n.NumberFormatSymbols_ms_Latn_BN", "goog.i18n.NumberFormatSymbols_ms_Latn_SG", "goog.i18n.NumberFormatSymbols_mua", "goog.i18n.NumberFormatSymbols_mua_CM", "goog.i18n.NumberFormatSymbols_my", "goog.i18n.NumberFormatSymbols_my_MM", "goog.i18n.NumberFormatSymbols_naq", "goog.i18n.NumberFormatSymbols_naq_NA", "goog.i18n.NumberFormatSymbols_nd", "goog.i18n.NumberFormatSymbols_nd_ZW", "goog.i18n.NumberFormatSymbols_ne", "goog.i18n.NumberFormatSymbols_ne_IN", +"goog.i18n.NumberFormatSymbols_ne_NP", "goog.i18n.NumberFormatSymbols_nl_AW", "goog.i18n.NumberFormatSymbols_nl_BE", "goog.i18n.NumberFormatSymbols_nl_CW", "goog.i18n.NumberFormatSymbols_nl_SR", "goog.i18n.NumberFormatSymbols_nl_SX", "goog.i18n.NumberFormatSymbols_nmg", "goog.i18n.NumberFormatSymbols_nmg_CM", "goog.i18n.NumberFormatSymbols_nn", "goog.i18n.NumberFormatSymbols_nn_NO", "goog.i18n.NumberFormatSymbols_nnh", "goog.i18n.NumberFormatSymbols_nnh_CM", "goog.i18n.NumberFormatSymbols_nr", "goog.i18n.NumberFormatSymbols_nr_ZA", +"goog.i18n.NumberFormatSymbols_nso", "goog.i18n.NumberFormatSymbols_nso_ZA", "goog.i18n.NumberFormatSymbols_nus", "goog.i18n.NumberFormatSymbols_nus_SD", "goog.i18n.NumberFormatSymbols_nyn", "goog.i18n.NumberFormatSymbols_nyn_UG", "goog.i18n.NumberFormatSymbols_om", "goog.i18n.NumberFormatSymbols_om_ET", "goog.i18n.NumberFormatSymbols_om_KE", "goog.i18n.NumberFormatSymbols_os", "goog.i18n.NumberFormatSymbols_os_GE", "goog.i18n.NumberFormatSymbols_os_RU", "goog.i18n.NumberFormatSymbols_pa", "goog.i18n.NumberFormatSymbols_pa_Arab", +"goog.i18n.NumberFormatSymbols_pa_Arab_PK", "goog.i18n.NumberFormatSymbols_pa_Guru", "goog.i18n.NumberFormatSymbols_pa_Guru_IN", "goog.i18n.NumberFormatSymbols_ps", "goog.i18n.NumberFormatSymbols_ps_AF", "goog.i18n.NumberFormatSymbols_pt_AO", "goog.i18n.NumberFormatSymbols_pt_CV", "goog.i18n.NumberFormatSymbols_pt_GW", "goog.i18n.NumberFormatSymbols_pt_MO", "goog.i18n.NumberFormatSymbols_pt_MZ", "goog.i18n.NumberFormatSymbols_pt_ST", "goog.i18n.NumberFormatSymbols_pt_TL", "goog.i18n.NumberFormatSymbols_rm", +"goog.i18n.NumberFormatSymbols_rm_CH", "goog.i18n.NumberFormatSymbols_rn", "goog.i18n.NumberFormatSymbols_rn_BI", "goog.i18n.NumberFormatSymbols_ro_MD", "goog.i18n.NumberFormatSymbols_rof", "goog.i18n.NumberFormatSymbols_rof_TZ", "goog.i18n.NumberFormatSymbols_ru_BY", "goog.i18n.NumberFormatSymbols_ru_KG", "goog.i18n.NumberFormatSymbols_ru_KZ", "goog.i18n.NumberFormatSymbols_ru_MD", "goog.i18n.NumberFormatSymbols_ru_UA", "goog.i18n.NumberFormatSymbols_rw", "goog.i18n.NumberFormatSymbols_rw_RW", "goog.i18n.NumberFormatSymbols_rwk", +"goog.i18n.NumberFormatSymbols_rwk_TZ", "goog.i18n.NumberFormatSymbols_sah", "goog.i18n.NumberFormatSymbols_sah_RU", "goog.i18n.NumberFormatSymbols_saq", "goog.i18n.NumberFormatSymbols_saq_KE", "goog.i18n.NumberFormatSymbols_sbp", "goog.i18n.NumberFormatSymbols_sbp_TZ", "goog.i18n.NumberFormatSymbols_se", "goog.i18n.NumberFormatSymbols_se_FI", "goog.i18n.NumberFormatSymbols_se_NO", "goog.i18n.NumberFormatSymbols_seh", "goog.i18n.NumberFormatSymbols_seh_MZ", "goog.i18n.NumberFormatSymbols_ses", "goog.i18n.NumberFormatSymbols_ses_ML", +"goog.i18n.NumberFormatSymbols_sg", "goog.i18n.NumberFormatSymbols_sg_CF", "goog.i18n.NumberFormatSymbols_shi", "goog.i18n.NumberFormatSymbols_shi_Latn", "goog.i18n.NumberFormatSymbols_shi_Latn_MA", "goog.i18n.NumberFormatSymbols_shi_Tfng", "goog.i18n.NumberFormatSymbols_shi_Tfng_MA", "goog.i18n.NumberFormatSymbols_si", "goog.i18n.NumberFormatSymbols_si_LK", "goog.i18n.NumberFormatSymbols_sn", "goog.i18n.NumberFormatSymbols_sn_ZW", "goog.i18n.NumberFormatSymbols_so", "goog.i18n.NumberFormatSymbols_so_DJ", +"goog.i18n.NumberFormatSymbols_so_ET", "goog.i18n.NumberFormatSymbols_so_KE", "goog.i18n.NumberFormatSymbols_so_SO", "goog.i18n.NumberFormatSymbols_sq_MK", "goog.i18n.NumberFormatSymbols_sq_XK", "goog.i18n.NumberFormatSymbols_sr_Cyrl", "goog.i18n.NumberFormatSymbols_sr_Cyrl_BA", "goog.i18n.NumberFormatSymbols_sr_Cyrl_ME", "goog.i18n.NumberFormatSymbols_sr_Cyrl_XK", "goog.i18n.NumberFormatSymbols_sr_Latn", "goog.i18n.NumberFormatSymbols_sr_Latn_BA", "goog.i18n.NumberFormatSymbols_sr_Latn_ME", "goog.i18n.NumberFormatSymbols_sr_Latn_RS", +"goog.i18n.NumberFormatSymbols_sr_Latn_XK", "goog.i18n.NumberFormatSymbols_ss", "goog.i18n.NumberFormatSymbols_ss_SZ", "goog.i18n.NumberFormatSymbols_ss_ZA", "goog.i18n.NumberFormatSymbols_ssy", "goog.i18n.NumberFormatSymbols_ssy_ER", "goog.i18n.NumberFormatSymbols_st", "goog.i18n.NumberFormatSymbols_st_LS", "goog.i18n.NumberFormatSymbols_st_ZA", "goog.i18n.NumberFormatSymbols_sv_AX", "goog.i18n.NumberFormatSymbols_sv_FI", "goog.i18n.NumberFormatSymbols_sw_KE", "goog.i18n.NumberFormatSymbols_sw_UG", +"goog.i18n.NumberFormatSymbols_swc", "goog.i18n.NumberFormatSymbols_swc_CD", "goog.i18n.NumberFormatSymbols_ta_LK", "goog.i18n.NumberFormatSymbols_ta_MY", "goog.i18n.NumberFormatSymbols_ta_SG", "goog.i18n.NumberFormatSymbols_teo", "goog.i18n.NumberFormatSymbols_teo_KE", "goog.i18n.NumberFormatSymbols_teo_UG", "goog.i18n.NumberFormatSymbols_tg", "goog.i18n.NumberFormatSymbols_tg_Cyrl", "goog.i18n.NumberFormatSymbols_tg_Cyrl_TJ", "goog.i18n.NumberFormatSymbols_ti", "goog.i18n.NumberFormatSymbols_ti_ER", +"goog.i18n.NumberFormatSymbols_ti_ET", "goog.i18n.NumberFormatSymbols_tig", "goog.i18n.NumberFormatSymbols_tig_ER", "goog.i18n.NumberFormatSymbols_tn", "goog.i18n.NumberFormatSymbols_tn_BW", "goog.i18n.NumberFormatSymbols_tn_ZA", "goog.i18n.NumberFormatSymbols_to", "goog.i18n.NumberFormatSymbols_to_TO", "goog.i18n.NumberFormatSymbols_tr_CY", "goog.i18n.NumberFormatSymbols_ts", "goog.i18n.NumberFormatSymbols_ts_ZA", "goog.i18n.NumberFormatSymbols_twq", "goog.i18n.NumberFormatSymbols_twq_NE", "goog.i18n.NumberFormatSymbols_tzm", +"goog.i18n.NumberFormatSymbols_tzm_Latn", "goog.i18n.NumberFormatSymbols_tzm_Latn_MA", "goog.i18n.NumberFormatSymbols_ur_IN", "goog.i18n.NumberFormatSymbols_uz", "goog.i18n.NumberFormatSymbols_uz_Arab", "goog.i18n.NumberFormatSymbols_uz_Arab_AF", "goog.i18n.NumberFormatSymbols_uz_Cyrl", "goog.i18n.NumberFormatSymbols_uz_Cyrl_UZ", "goog.i18n.NumberFormatSymbols_uz_Latn", "goog.i18n.NumberFormatSymbols_uz_Latn_UZ", "goog.i18n.NumberFormatSymbols_vai", "goog.i18n.NumberFormatSymbols_vai_Latn", "goog.i18n.NumberFormatSymbols_vai_Latn_LR", +"goog.i18n.NumberFormatSymbols_vai_Vaii", "goog.i18n.NumberFormatSymbols_vai_Vaii_LR", "goog.i18n.NumberFormatSymbols_ve", "goog.i18n.NumberFormatSymbols_ve_ZA", "goog.i18n.NumberFormatSymbols_vo", "goog.i18n.NumberFormatSymbols_vun", "goog.i18n.NumberFormatSymbols_vun_TZ", "goog.i18n.NumberFormatSymbols_wae", "goog.i18n.NumberFormatSymbols_wae_CH", "goog.i18n.NumberFormatSymbols_wal", "goog.i18n.NumberFormatSymbols_wal_ET", "goog.i18n.NumberFormatSymbols_xh", "goog.i18n.NumberFormatSymbols_xh_ZA", +"goog.i18n.NumberFormatSymbols_xog", "goog.i18n.NumberFormatSymbols_xog_UG", "goog.i18n.NumberFormatSymbols_yav", "goog.i18n.NumberFormatSymbols_yav_CM", "goog.i18n.NumberFormatSymbols_yo", "goog.i18n.NumberFormatSymbols_yo_NG", "goog.i18n.NumberFormatSymbols_zh_Hans", "goog.i18n.NumberFormatSymbols_zh_Hans_HK", "goog.i18n.NumberFormatSymbols_zh_Hans_MO", "goog.i18n.NumberFormatSymbols_zh_Hans_SG", "goog.i18n.NumberFormatSymbols_zh_Hant", "goog.i18n.NumberFormatSymbols_zh_Hant_HK", "goog.i18n.NumberFormatSymbols_zh_Hant_MO", +"goog.i18n.NumberFormatSymbols_zh_Hant_TW"], ["goog.i18n.NumberFormatSymbols"]); +goog.addDependency("/closure/goog/i18n/ordinalrules.js", ["goog.i18n.ordinalRules"], []); +goog.addDependency("/closure/goog/i18n/pluralrules.js", ["goog.i18n.pluralRules"], []); +goog.addDependency("/closure/goog/i18n/timezone.js", ["goog.i18n.TimeZone"], ["goog.array", "goog.date.DateLike", "goog.string"]); +goog.addDependency("/closure/goog/i18n/uchar.js", ["goog.i18n.uChar"], []); +goog.addDependency("/closure/goog/i18n/uchar/localnamefetcher.js", ["goog.i18n.uChar.LocalNameFetcher"], ["goog.i18n.uChar", "goog.i18n.uChar.NameFetcher", "goog.log"]); +goog.addDependency("/closure/goog/i18n/uchar/namefetcher.js", ["goog.i18n.uChar.NameFetcher"], []); +goog.addDependency("/closure/goog/i18n/uchar/remotenamefetcher.js", ["goog.i18n.uChar.RemoteNameFetcher"], ["goog.Disposable", "goog.Uri", "goog.i18n.uChar", "goog.i18n.uChar.NameFetcher", "goog.log", "goog.net.XhrIo", "goog.structs.Map"]); +goog.addDependency("/closure/goog/iter/iter.js", ["goog.iter", "goog.iter.Iterator", "goog.iter.StopIteration"], ["goog.array", "goog.asserts"]); +goog.addDependency("/closure/goog/json/evaljsonprocessor.js", ["goog.json.EvalJsonProcessor"], ["goog.json", "goog.json.Processor", "goog.json.Serializer"]); +goog.addDependency("/closure/goog/json/json.js", ["goog.json", "goog.json.Serializer"], []); +goog.addDependency("/closure/goog/json/nativejsonprocessor.js", ["goog.json.NativeJsonProcessor"], ["goog.asserts", "goog.json", "goog.json.Processor"]); +goog.addDependency("/closure/goog/json/processor.js", ["goog.json.Processor"], ["goog.string.Parser", "goog.string.Stringifier"]); +goog.addDependency("/closure/goog/labs/classdef/classdef.js", ["goog.labs.classdef"], []); +goog.addDependency("/closure/goog/labs/events/touch.js", ["goog.labs.events.touch", "goog.labs.events.touch.TouchData"], ["goog.array", "goog.asserts", "goog.events.EventType", "goog.string"]); +goog.addDependency("/closure/goog/labs/events/touch_test.js", ["goog.labs.events.touchTest"], ["goog.labs.events.touch", "goog.testing.jsunit"]); +goog.addDependency("/closure/goog/labs/format/csv.js", ["goog.labs.format.csv", "goog.labs.format.csv.ParseError", "goog.labs.format.csv.Token"], ["goog.array", "goog.asserts", "goog.debug.Error", "goog.object", "goog.string", "goog.string.newlines"]); +goog.addDependency("/closure/goog/labs/format/csv_test.js", ["goog.labs.format.csvTest"], ["goog.labs.format.csv", "goog.labs.format.csv.ParseError", "goog.object", "goog.testing.asserts", "goog.testing.jsunit"]); +goog.addDependency("/closure/goog/labs/mock/mock.js", ["goog.labs.mock"], ["goog.array", "goog.debug", "goog.debug.Error", "goog.functions", "goog.json"]); +goog.addDependency("/closure/goog/labs/net/image.js", ["goog.labs.net.image"], ["goog.events.EventHandler", "goog.events.EventType", "goog.net.EventType", "goog.result.SimpleResult", "goog.userAgent"]); +goog.addDependency("/closure/goog/labs/net/image_test.js", ["goog.labs.net.imageTest"], ["goog.events", "goog.labs.net.image", "goog.result", "goog.result.Result", "goog.string", "goog.testing.AsyncTestCase", "goog.testing.jsunit", "goog.testing.recordFunction"]); +goog.addDependency("/closure/goog/labs/net/webchannel.js", ["goog.net.WebChannel"], ["goog.events", "goog.events.Event"]); +goog.addDependency("/closure/goog/labs/net/webchannel/basetestchannel.js", ["goog.labs.net.webChannel.BaseTestChannel"], ["goog.json.EvalJsonProcessor", "goog.labs.net.webChannel.Channel", "goog.labs.net.webChannel.WebChannelRequest", "goog.labs.net.webChannel.requestStats", "goog.labs.net.webChannel.requestStats.ServerReachability", "goog.labs.net.webChannel.requestStats.Stat", "goog.net.tmpnetwork"]); +goog.addDependency("/closure/goog/labs/net/webchannel/channel.js", ["goog.labs.net.webChannel.Channel"], []); +goog.addDependency("/closure/goog/labs/net/webchannel/requeststats.js", ["goog.labs.net.webChannel.requestStats", "goog.labs.net.webChannel.requestStats.Event", "goog.labs.net.webChannel.requestStats.ServerReachability", "goog.labs.net.webChannel.requestStats.ServerReachabilityEvent", "goog.labs.net.webChannel.requestStats.Stat", "goog.labs.net.webChannel.requestStats.StatEvent", "goog.labs.net.webChannel.requestStats.TimingEvent"], ["goog.events.Event", "goog.events.EventTarget"]); +goog.addDependency("/closure/goog/labs/net/webchannel/webchannelbase.js", ["goog.labs.net.webChannel.WebChannelBase"], ["goog.Uri", "goog.array", "goog.asserts", "goog.debug.TextFormatter", "goog.json", "goog.json.EvalJsonProcessor", "goog.labs.net.webChannel.BaseTestChannel", "goog.labs.net.webChannel.Channel", "goog.labs.net.webChannel.WebChannelDebug", "goog.labs.net.webChannel.WebChannelRequest", "goog.labs.net.webChannel.requestStats", "goog.labs.net.webChannel.requestStats.Stat", "goog.log", +"goog.net.XhrIo", "goog.net.tmpnetwork", "goog.string", "goog.structs", "goog.structs.CircularBuffer"]); +goog.addDependency("/closure/goog/labs/net/webchannel/webchannelbase_test.js", ["goog.labs.net.webChannel.webChannelBaseTest"], ["goog.Timer", "goog.array", "goog.dom", "goog.functions", "goog.json", "goog.labs.net.webChannel.WebChannelBase", "goog.labs.net.webChannel.WebChannelDebug", "goog.labs.net.webChannel.WebChannelRequest", "goog.labs.net.webChannel.requestStats", "goog.labs.net.webChannel.requestStats.Stat", "goog.net.tmpnetwork", "goog.structs.Map", "goog.testing.MockClock", "goog.testing.PropertyReplacer", +"goog.testing.asserts", "goog.testing.jsunit", "goog.testing.recordFunction"]); +goog.addDependency("/closure/goog/labs/net/webchannel/webchannelbasetransport.js", ["goog.labs.net.webChannel.WebChannelBaseTransport"], ["goog.asserts", "goog.events.EventTarget", "goog.labs.net.webChannel.WebChannelBase", "goog.log", "goog.net.WebChannel", "goog.net.WebChannelTransport", "goog.string.path"]); +goog.addDependency("/closure/goog/labs/net/webchannel/webchanneldebug.js", ["goog.labs.net.webChannel.WebChannelDebug"], ["goog.json", "goog.log"]); +goog.addDependency("/closure/goog/labs/net/webchannel/webchannelrequest.js", ["goog.labs.net.webChannel.WebChannelRequest"], ["goog.Timer", "goog.async.Throttle", "goog.events.EventHandler", "goog.labs.net.webChannel.requestStats", "goog.labs.net.webChannel.requestStats.ServerReachability", "goog.labs.net.webChannel.requestStats.Stat", "goog.net.ErrorCode", "goog.net.EventType", "goog.net.XmlHttp", "goog.object", "goog.userAgent"]); +goog.addDependency("/closure/goog/labs/net/webchanneltransport.js", ["goog.net.WebChannelTransport"], []); +goog.addDependency("/closure/goog/labs/net/webchanneltransportfactory.js", ["goog.net.createWebChannelTransport"], ["goog.functions", "goog.labs.net.webChannel.WebChannelBaseTransport"]); +goog.addDependency("/closure/goog/labs/net/xhr.js", ["goog.labs.net.xhr", "goog.labs.net.xhr.Error", "goog.labs.net.xhr.HttpError", "goog.labs.net.xhr.TimeoutError"], ["goog.debug.Error", "goog.json", "goog.net.HttpStatus", "goog.net.XmlHttp", "goog.result", "goog.result.SimpleResult", "goog.string", "goog.uri.utils"]); +goog.addDependency("/closure/goog/labs/object/object.js", ["goog.labs.object"], []); +goog.addDependency("/closure/goog/labs/observe/notice.js", ["goog.labs.observe.Notice"], []); +goog.addDependency("/closure/goog/labs/observe/observable.js", ["goog.labs.observe.Observable"], ["goog.disposable.IDisposable"]); +goog.addDependency("/closure/goog/labs/observe/observableset.js", ["goog.labs.observe.ObservableSet"], ["goog.array", "goog.labs.observe.Observer"]); +goog.addDependency("/closure/goog/labs/observe/observationset.js", ["goog.labs.observe.ObservationSet"], ["goog.array", "goog.labs.observe.Observer"]); +goog.addDependency("/closure/goog/labs/observe/observer.js", ["goog.labs.observe.Observer"], []); +goog.addDependency("/closure/goog/labs/observe/simpleobservable.js", ["goog.labs.observe.SimpleObservable"], ["goog.Disposable", "goog.array", "goog.asserts", "goog.labs.observe.Notice", "goog.labs.observe.Observable", "goog.labs.observe.Observer", "goog.object"]); +goog.addDependency("/closure/goog/labs/structs/map.js", ["goog.labs.structs.Map"], ["goog.array", "goog.asserts", "goog.labs.object", "goog.object"]); +goog.addDependency("/closure/goog/labs/structs/map_perf.js", ["goog.labs.structs.mapPerf"], ["goog.dom", "goog.labs.structs.Map", "goog.structs.Map", "goog.testing.PerformanceTable", "goog.testing.jsunit"]); +goog.addDependency("/closure/goog/labs/structs/multimap.js", ["goog.labs.structs.Multimap"], ["goog.array", "goog.labs.object", "goog.labs.structs.Map"]); +goog.addDependency("/closure/goog/labs/style/pixeldensitymonitor.js", ["goog.labs.style.PixelDensityMonitor", "goog.labs.style.PixelDensityMonitor.Density", "goog.labs.style.PixelDensityMonitor.EventType"], ["goog.events", "goog.events.EventTarget"]); +goog.addDependency("/closure/goog/labs/style/pixeldensitymonitor_test.js", ["goog.labs.style.PixelDensityMonitorTest"], ["goog.array", "goog.dom.DomHelper", "goog.events", "goog.labs.style.PixelDensityMonitor", "goog.testing.MockControl", "goog.testing.jsunit", "goog.testing.recordFunction"]); +goog.addDependency("/closure/goog/labs/testing/assertthat.js", ["goog.labs.testing.MatcherError", "goog.labs.testing.assertThat"], ["goog.asserts", "goog.debug.Error", "goog.labs.testing.Matcher"]); +goog.addDependency("/closure/goog/labs/testing/decoratormatcher.js", ["goog.labs.testing.AnythingMatcher"], ["goog.labs.testing.Matcher"]); +goog.addDependency("/closure/goog/labs/testing/dictionarymatcher.js", ["goog.labs.testing.HasEntriesMatcher", "goog.labs.testing.HasEntryMatcher", "goog.labs.testing.HasKeyMatcher", "goog.labs.testing.HasValueMatcher"], ["goog.array", "goog.asserts", "goog.labs.testing.Matcher", "goog.string"]); +goog.addDependency("/closure/goog/labs/testing/logicmatcher.js", ["goog.labs.testing.AllOfMatcher", "goog.labs.testing.AnyOfMatcher", "goog.labs.testing.IsNotMatcher"], ["goog.array", "goog.labs.testing.Matcher"]); +goog.addDependency("/closure/goog/labs/testing/matcher.js", ["goog.labs.testing.Matcher"], []); +goog.addDependency("/closure/goog/labs/testing/numbermatcher.js", ["goog.labs.testing.CloseToMatcher", "goog.labs.testing.EqualToMatcher", "goog.labs.testing.GreaterThanEqualToMatcher", "goog.labs.testing.GreaterThanMatcher", "goog.labs.testing.LessThanEqualToMatcher", "goog.labs.testing.LessThanMatcher"], ["goog.asserts", "goog.labs.testing.Matcher"]); +goog.addDependency("/closure/goog/labs/testing/objectmatcher.js", ["goog.labs.testing.HasPropertyMatcher", "goog.labs.testing.InstanceOfMatcher", "goog.labs.testing.IsNullMatcher", "goog.labs.testing.IsNullOrUndefinedMatcher", "goog.labs.testing.IsUndefinedMatcher", "goog.labs.testing.ObjectEqualsMatcher"], ["goog.labs.testing.Matcher", "goog.string"]); +goog.addDependency("/closure/goog/labs/testing/stringmatcher.js", ["goog.labs.testing.ContainsStringMatcher", "goog.labs.testing.EndsWithMatcher", "goog.labs.testing.EqualToIgnoringCaseMatcher", "goog.labs.testing.EqualToIgnoringWhitespaceMatcher", "goog.labs.testing.EqualsMatcher", "goog.labs.testing.RegexMatcher", "goog.labs.testing.StartsWithMatcher", "goog.labs.testing.StringContainsInOrderMatcher"], ["goog.asserts", "goog.labs.testing.Matcher", "goog.string"]); +goog.addDependency("/closure/goog/labs/useragent/browser.js", ["goog.labs.userAgent.browser"], ["goog.asserts", "goog.labs.userAgent.util", "goog.memoize", "goog.string"]); +goog.addDependency("/closure/goog/labs/useragent/browser_test.js", ["goog.labs.userAgent.browserTest"], ["goog.labs.userAgent.browser", "goog.labs.userAgent.testAgents", "goog.testing.PropertyReplacer", "goog.testing.jsunit"]); +goog.addDependency("/closure/goog/labs/useragent/device.js", ["goog.labs.userAgent.device"], ["goog.labs.userAgent.util"]); +goog.addDependency("/closure/goog/labs/useragent/device_test.js", ["goog.labs.userAgent.deviceTest"], ["goog.labs.userAgent.device", "goog.labs.userAgent.testAgents", "goog.testing.PropertyReplacer", "goog.testing.jsunit"]); +goog.addDependency("/closure/goog/labs/useragent/engine.js", ["goog.labs.userAgent.engine"], ["goog.array", "goog.labs.userAgent.util", "goog.memoize", "goog.string"]); +goog.addDependency("/closure/goog/labs/useragent/engine_test.js", ["goog.labs.userAgent.engineTest"], ["goog.labs.userAgent.engine", "goog.labs.userAgent.testAgents", "goog.testing.PropertyReplacer", "goog.testing.jsunit"]); +goog.addDependency("/closure/goog/labs/useragent/platform.js", ["goog.labs.userAgent.platform"], ["goog.labs.userAgent.util", "goog.memoize", "goog.string"]); +goog.addDependency("/closure/goog/labs/useragent/platform_test.js", ["goog.labs.userAgent.platformTest"], ["goog.labs.userAgent.platform", "goog.labs.userAgent.testAgents", "goog.testing.PropertyReplacer", "goog.testing.jsunit"]); +goog.addDependency("/closure/goog/labs/useragent/test_agents.js", ["goog.labs.userAgent.testAgents"], []); +goog.addDependency("/closure/goog/labs/useragent/util.js", ["goog.labs.userAgent.util"], ["goog.memoize", "goog.string"]); +goog.addDependency("/closure/goog/labs/useragent/util_test.js", ["goog.labs.userAgent.utilTest"], ["goog.labs.userAgent.testAgents", "goog.labs.userAgent.util", "goog.testing.jsunit"]); +goog.addDependency("/closure/goog/locale/countries.js", ["goog.locale.countries"], []); +goog.addDependency("/closure/goog/locale/defaultlocalenameconstants.js", ["goog.locale.defaultLocaleNameConstants"], []); +goog.addDependency("/closure/goog/locale/genericfontnames.js", ["goog.locale.genericFontNames"], []); +goog.addDependency("/closure/goog/locale/genericfontnamesdata.js", ["goog.locale.genericFontNamesData"], []); +goog.addDependency("/closure/goog/locale/locale.js", ["goog.locale"], ["goog.locale.nativeNameConstants"]); +goog.addDependency("/closure/goog/locale/nativenameconstants.js", ["goog.locale.nativeNameConstants"], []); +goog.addDependency("/closure/goog/locale/scriptToLanguages.js", ["goog.locale.scriptToLanguages"], ["goog.locale"]); +goog.addDependency("/closure/goog/locale/timezonedetection.js", ["goog.locale.timeZoneDetection"], ["goog.locale", "goog.locale.TimeZoneFingerprint"]); +goog.addDependency("/closure/goog/locale/timezonefingerprint.js", ["goog.locale.TimeZoneFingerprint"], []); +goog.addDependency("/closure/goog/locale/timezonelist.js", ["goog.locale.TimeZoneList"], ["goog.locale"]); +goog.addDependency("/closure/goog/log/log.js", ["goog.log", "goog.log.Level", "goog.log.LogRecord", "goog.log.Logger"], ["goog.debug", "goog.debug.LogRecord", "goog.debug.Logger"]); +goog.addDependency("/closure/goog/log/log_test.js", ["goog.logTest"], ["goog.debug.LogManager", "goog.log", "goog.log.Level", "goog.testing.jsunit"]); +goog.addDependency("/closure/goog/math/bezier.js", ["goog.math.Bezier"], ["goog.math", "goog.math.Coordinate"]); +goog.addDependency("/closure/goog/math/box.js", ["goog.math.Box"], ["goog.math.Coordinate"]); +goog.addDependency("/closure/goog/math/coordinate.js", ["goog.math.Coordinate"], ["goog.math"]); +goog.addDependency("/closure/goog/math/coordinate3.js", ["goog.math.Coordinate3"], []); +goog.addDependency("/closure/goog/math/exponentialbackoff.js", ["goog.math.ExponentialBackoff"], ["goog.asserts"]); +goog.addDependency("/closure/goog/math/integer.js", ["goog.math.Integer"], []); +goog.addDependency("/closure/goog/math/interpolator/interpolator1.js", ["goog.math.interpolator.Interpolator1"], []); +goog.addDependency("/closure/goog/math/interpolator/linear1.js", ["goog.math.interpolator.Linear1"], ["goog.array", "goog.math", "goog.math.interpolator.Interpolator1"]); +goog.addDependency("/closure/goog/math/interpolator/pchip1.js", ["goog.math.interpolator.Pchip1"], ["goog.math", "goog.math.interpolator.Spline1"]); +goog.addDependency("/closure/goog/math/interpolator/spline1.js", ["goog.math.interpolator.Spline1"], ["goog.array", "goog.math", "goog.math.interpolator.Interpolator1", "goog.math.tdma"]); +goog.addDependency("/closure/goog/math/line.js", ["goog.math.Line"], ["goog.math", "goog.math.Coordinate"]); +goog.addDependency("/closure/goog/math/long.js", ["goog.math.Long"], []); +goog.addDependency("/closure/goog/math/math.js", ["goog.math"], ["goog.array", "goog.asserts"]); +goog.addDependency("/closure/goog/math/matrix.js", ["goog.math.Matrix"], ["goog.array", "goog.math", "goog.math.Size", "goog.string"]); +goog.addDependency("/closure/goog/math/range.js", ["goog.math.Range"], []); +goog.addDependency("/closure/goog/math/rangeset.js", ["goog.math.RangeSet"], ["goog.array", "goog.iter.Iterator", "goog.iter.StopIteration", "goog.math.Range"]); +goog.addDependency("/closure/goog/math/rect.js", ["goog.math.Rect"], ["goog.math.Box", "goog.math.Coordinate", "goog.math.Size"]); +goog.addDependency("/closure/goog/math/size.js", ["goog.math.Size"], []); +goog.addDependency("/closure/goog/math/tdma.js", ["goog.math.tdma"], []); +goog.addDependency("/closure/goog/math/vec2.js", ["goog.math.Vec2"], ["goog.math", "goog.math.Coordinate"]); +goog.addDependency("/closure/goog/math/vec3.js", ["goog.math.Vec3"], ["goog.math", "goog.math.Coordinate3"]); +goog.addDependency("/closure/goog/memoize/memoize.js", ["goog.memoize"], []); +goog.addDependency("/closure/goog/messaging/abstractchannel.js", ["goog.messaging.AbstractChannel"], ["goog.Disposable", "goog.debug", "goog.json", "goog.log", "goog.messaging.MessageChannel"]); +goog.addDependency("/closure/goog/messaging/bufferedchannel.js", ["goog.messaging.BufferedChannel"], ["goog.Timer", "goog.Uri", "goog.debug.Error", "goog.events", "goog.log", "goog.messaging.MessageChannel", "goog.messaging.MultiChannel"]); +goog.addDependency("/closure/goog/messaging/deferredchannel.js", ["goog.messaging.DeferredChannel"], ["goog.Disposable", "goog.async.Deferred", "goog.messaging.MessageChannel"]); +goog.addDependency("/closure/goog/messaging/loggerclient.js", ["goog.messaging.LoggerClient"], ["goog.Disposable", "goog.debug", "goog.debug.LogManager", "goog.debug.Logger"]); +goog.addDependency("/closure/goog/messaging/loggerserver.js", ["goog.messaging.LoggerServer"], ["goog.Disposable", "goog.log"]); +goog.addDependency("/closure/goog/messaging/messagechannel.js", ["goog.messaging.MessageChannel"], []); +goog.addDependency("/closure/goog/messaging/messaging.js", ["goog.messaging"], ["goog.messaging.MessageChannel"]); +goog.addDependency("/closure/goog/messaging/multichannel.js", ["goog.messaging.MultiChannel", "goog.messaging.MultiChannel.VirtualChannel"], ["goog.Disposable", "goog.events.EventHandler", "goog.log", "goog.messaging.MessageChannel", "goog.object"]); +goog.addDependency("/closure/goog/messaging/portcaller.js", ["goog.messaging.PortCaller"], ["goog.Disposable", "goog.async.Deferred", "goog.messaging.DeferredChannel", "goog.messaging.PortChannel", "goog.messaging.PortNetwork", "goog.object"]); +goog.addDependency("/closure/goog/messaging/portchannel.js", ["goog.messaging.PortChannel"], ["goog.Timer", "goog.array", "goog.async.Deferred", "goog.debug", "goog.dom", "goog.dom.DomHelper", "goog.events", "goog.events.EventType", "goog.json", "goog.log", "goog.messaging.AbstractChannel", "goog.messaging.DeferredChannel", "goog.object", "goog.string"]); +goog.addDependency("/closure/goog/messaging/portnetwork.js", ["goog.messaging.PortNetwork"], []); +goog.addDependency("/closure/goog/messaging/portoperator.js", ["goog.messaging.PortOperator"], ["goog.Disposable", "goog.asserts", "goog.log", "goog.messaging.PortChannel", "goog.messaging.PortNetwork", "goog.object"]); +goog.addDependency("/closure/goog/messaging/respondingchannel.js", ["goog.messaging.RespondingChannel"], ["goog.Disposable", "goog.log", "goog.messaging.MessageChannel", "goog.messaging.MultiChannel", "goog.messaging.MultiChannel.VirtualChannel"]); +goog.addDependency("/closure/goog/messaging/testdata/portchannel_worker.js", ["goog.messaging.testdata.portchannel_worker"], ["goog.messaging.PortChannel"]); +goog.addDependency("/closure/goog/messaging/testdata/portnetwork_worker1.js", ["goog.messaging.testdata.portnetwork_worker1"], ["goog.messaging.PortCaller", "goog.messaging.PortChannel"]); +goog.addDependency("/closure/goog/messaging/testdata/portnetwork_worker2.js", ["goog.messaging.testdata.portnetwork_worker2"], ["goog.messaging.PortCaller", "goog.messaging.PortChannel"]); +goog.addDependency("/closure/goog/module/abstractmoduleloader.js", ["goog.module.AbstractModuleLoader"], []); +goog.addDependency("/closure/goog/module/basemodule.js", ["goog.module.BaseModule"], ["goog.Disposable"]); +goog.addDependency("/closure/goog/module/loader.js", ["goog.module.Loader"], ["goog.Timer", "goog.array", "goog.dom", "goog.object"]); +goog.addDependency("/closure/goog/module/module.js", ["goog.module"], ["goog.array", "goog.module.Loader"]); +goog.addDependency("/closure/goog/module/moduleinfo.js", ["goog.module.ModuleInfo"], ["goog.Disposable", "goog.functions", "goog.module.BaseModule", "goog.module.ModuleLoadCallback"]); +goog.addDependency("/closure/goog/module/moduleloadcallback.js", ["goog.module.ModuleLoadCallback"], ["goog.debug.entryPointRegistry", "goog.debug.errorHandlerWeakDep"]); +goog.addDependency("/closure/goog/module/moduleloader.js", ["goog.module.ModuleLoader"], ["goog.Timer", "goog.array", "goog.events", "goog.events.Event", "goog.events.EventHandler", "goog.events.EventTarget", "goog.log", "goog.module.AbstractModuleLoader", "goog.net.BulkLoader", "goog.net.EventType", "goog.net.jsloader", "goog.userAgent.product"]); +goog.addDependency("/closure/goog/module/moduleloader_test.js", ["goog.module.ModuleLoaderTest"], ["goog.array", "goog.dom", "goog.functions", "goog.module.ModuleLoader", "goog.module.ModuleManager", "goog.module.ModuleManager.CallbackType", "goog.object", "goog.testing.AsyncTestCase", "goog.testing.PropertyReplacer", "goog.testing.events.EventObserver", "goog.testing.jsunit", "goog.testing.recordFunction", "goog.userAgent.product"]); +goog.addDependency("/closure/goog/module/modulemanager.js", ["goog.module.ModuleManager", "goog.module.ModuleManager.CallbackType", "goog.module.ModuleManager.FailureType"], ["goog.Disposable", "goog.array", "goog.asserts", "goog.async.Deferred", "goog.debug.Trace", "goog.dispose", "goog.log", "goog.module.ModuleInfo", "goog.module.ModuleLoadCallback", "goog.object"]); +goog.addDependency("/closure/goog/module/testdata/modA_1.js", ["goog.module.testdata.modA_1"], []); +goog.addDependency("/closure/goog/module/testdata/modA_2.js", ["goog.module.testdata.modA_2"], ["goog.module.ModuleManager"]); +goog.addDependency("/closure/goog/module/testdata/modB_1.js", ["goog.module.testdata.modB_1"], ["goog.module.ModuleManager"]); +goog.addDependency("/closure/goog/net/browserchannel.js", ["goog.net.BrowserChannel", "goog.net.BrowserChannel.Error", "goog.net.BrowserChannel.Event", "goog.net.BrowserChannel.Handler", "goog.net.BrowserChannel.LogSaver", "goog.net.BrowserChannel.QueuedMap", "goog.net.BrowserChannel.ServerReachability", "goog.net.BrowserChannel.ServerReachabilityEvent", "goog.net.BrowserChannel.Stat", "goog.net.BrowserChannel.StatEvent", "goog.net.BrowserChannel.State", "goog.net.BrowserChannel.TimingEvent"], ["goog.Uri", +"goog.array", "goog.asserts", "goog.debug.TextFormatter", "goog.events.Event", "goog.events.EventTarget", "goog.json", "goog.json.EvalJsonProcessor", "goog.log", "goog.net.BrowserTestChannel", "goog.net.ChannelDebug", "goog.net.ChannelRequest", "goog.net.XhrIo", "goog.net.tmpnetwork", "goog.string", "goog.structs", "goog.structs.CircularBuffer"]); +goog.addDependency("/closure/goog/net/browsertestchannel.js", ["goog.net.BrowserTestChannel"], ["goog.json.EvalJsonProcessor", "goog.net.ChannelRequest", "goog.net.ChannelRequest.Error", "goog.net.tmpnetwork", "goog.string.Parser", "goog.userAgent"]); +goog.addDependency("/closure/goog/net/bulkloader.js", ["goog.net.BulkLoader"], ["goog.events.EventHandler", "goog.events.EventTarget", "goog.log", "goog.net.BulkLoaderHelper", "goog.net.EventType", "goog.net.XhrIo"]); +goog.addDependency("/closure/goog/net/bulkloaderhelper.js", ["goog.net.BulkLoaderHelper"], ["goog.Disposable", "goog.log"]); +goog.addDependency("/closure/goog/net/channeldebug.js", ["goog.net.ChannelDebug"], ["goog.json", "goog.log"]); +goog.addDependency("/closure/goog/net/channelrequest.js", ["goog.net.ChannelRequest", "goog.net.ChannelRequest.Error"], ["goog.Timer", "goog.async.Throttle", "goog.events.EventHandler", "goog.net.ErrorCode", "goog.net.EventType", "goog.net.XmlHttp", "goog.object", "goog.userAgent"]); +goog.addDependency("/closure/goog/net/cookies.js", ["goog.net.Cookies", "goog.net.cookies"], []); +goog.addDependency("/closure/goog/net/crossdomainrpc.js", ["goog.net.CrossDomainRpc"], ["goog.Uri", "goog.dom", "goog.events", "goog.events.EventTarget", "goog.events.EventType", "goog.json", "goog.log", "goog.net.EventType", "goog.net.HttpStatus", "goog.string", "goog.userAgent"]); +goog.addDependency("/closure/goog/net/errorcode.js", ["goog.net.ErrorCode"], []); +goog.addDependency("/closure/goog/net/eventtype.js", ["goog.net.EventType"], []); +goog.addDependency("/closure/goog/net/filedownloader.js", ["goog.net.FileDownloader", "goog.net.FileDownloader.Error"], ["goog.Disposable", "goog.asserts", "goog.async.Deferred", "goog.crypt.hash32", "goog.debug.Error", "goog.events", "goog.events.EventHandler", "goog.fs", "goog.fs.DirectoryEntry", "goog.fs.Error", "goog.fs.FileSaver", "goog.net.EventType", "goog.net.XhrIo", "goog.net.XhrIoPool", "goog.object"]); +goog.addDependency("/closure/goog/net/httpstatus.js", ["goog.net.HttpStatus"], []); +goog.addDependency("/closure/goog/net/iframeio.js", ["goog.net.IframeIo", "goog.net.IframeIo.IncrementalDataEvent"], ["goog.Timer", "goog.Uri", "goog.debug", "goog.dom", "goog.events", "goog.events.Event", "goog.events.EventTarget", "goog.events.EventType", "goog.json", "goog.log", "goog.net.ErrorCode", "goog.net.EventType", "goog.reflect", "goog.string", "goog.structs", "goog.userAgent"]); +goog.addDependency("/closure/goog/net/iframeloadmonitor.js", ["goog.net.IframeLoadMonitor"], ["goog.dom", "goog.events", "goog.events.EventTarget", "goog.events.EventType", "goog.userAgent"]); +goog.addDependency("/closure/goog/net/imageloader.js", ["goog.net.ImageLoader"], ["goog.array", "goog.dom", "goog.events.EventHandler", "goog.events.EventTarget", "goog.events.EventType", "goog.net.EventType", "goog.object", "goog.userAgent"]); +goog.addDependency("/closure/goog/net/ipaddress.js", ["goog.net.IpAddress", "goog.net.Ipv4Address", "goog.net.Ipv6Address"], ["goog.array", "goog.math.Integer", "goog.object", "goog.string"]); +goog.addDependency("/closure/goog/net/jsloader.js", ["goog.net.jsloader", "goog.net.jsloader.Error", "goog.net.jsloader.ErrorCode", "goog.net.jsloader.Options"], ["goog.array", "goog.async.Deferred", "goog.debug.Error", "goog.dom", "goog.dom.TagName"]); +goog.addDependency("/closure/goog/net/jsonp.js", ["goog.net.Jsonp"], ["goog.Uri", "goog.net.jsloader"]); +goog.addDependency("/closure/goog/net/mockiframeio.js", ["goog.net.MockIFrameIo"], ["goog.events.EventTarget", "goog.json", "goog.net.ErrorCode", "goog.net.EventType", "goog.net.IframeIo"]); +goog.addDependency("/closure/goog/net/multiiframeloadmonitor.js", ["goog.net.MultiIframeLoadMonitor"], ["goog.events", "goog.net.IframeLoadMonitor"]); +goog.addDependency("/closure/goog/net/networkstatusmonitor.js", ["goog.net.NetworkStatusMonitor"], ["goog.events.Listenable"]); +goog.addDependency("/closure/goog/net/networktester.js", ["goog.net.NetworkTester"], ["goog.Timer", "goog.Uri", "goog.log"]); +goog.addDependency("/closure/goog/net/testdata/jsloader_test1.js", ["goog.net.testdata.jsloader_test1"], []); +goog.addDependency("/closure/goog/net/testdata/jsloader_test2.js", ["goog.net.testdata.jsloader_test2"], []); +goog.addDependency("/closure/goog/net/testdata/jsloader_test3.js", ["goog.net.testdata.jsloader_test3"], []); +goog.addDependency("/closure/goog/net/testdata/jsloader_test4.js", ["goog.net.testdata.jsloader_test4"], []); +goog.addDependency("/closure/goog/net/tmpnetwork.js", ["goog.net.tmpnetwork"], ["goog.Uri", "goog.net.ChannelDebug"]); +goog.addDependency("/closure/goog/net/websocket.js", ["goog.net.WebSocket", "goog.net.WebSocket.ErrorEvent", "goog.net.WebSocket.EventType", "goog.net.WebSocket.MessageEvent"], ["goog.Timer", "goog.asserts", "goog.debug.entryPointRegistry", "goog.events", "goog.events.Event", "goog.events.EventTarget", "goog.log"]); +goog.addDependency("/closure/goog/net/wrapperxmlhttpfactory.js", ["goog.net.WrapperXmlHttpFactory"], ["goog.net.XmlHttpFactory"]); +goog.addDependency("/closure/goog/net/xhrio.js", ["goog.net.XhrIo", "goog.net.XhrIo.ResponseType"], ["goog.Timer", "goog.array", "goog.debug.entryPointRegistry", "goog.events.EventTarget", "goog.json", "goog.log", "goog.net.ErrorCode", "goog.net.EventType", "goog.net.HttpStatus", "goog.net.XmlHttp", "goog.object", "goog.string", "goog.structs", "goog.structs.Map", "goog.uri.utils", "goog.userAgent"]); +goog.addDependency("/closure/goog/net/xhriopool.js", ["goog.net.XhrIoPool"], ["goog.net.XhrIo", "goog.structs", "goog.structs.PriorityPool"]); +goog.addDependency("/closure/goog/net/xhrmanager.js", ["goog.net.XhrManager", "goog.net.XhrManager.Event", "goog.net.XhrManager.Request"], ["goog.Disposable", "goog.events", "goog.events.Event", "goog.events.EventHandler", "goog.events.EventTarget", "goog.net.ErrorCode", "goog.net.EventType", "goog.net.XhrIo", "goog.net.XhrIoPool", "goog.structs", "goog.structs.Map"]); +goog.addDependency("/closure/goog/net/xmlhttp.js", ["goog.net.DefaultXmlHttpFactory", "goog.net.XmlHttp", "goog.net.XmlHttp.OptionType", "goog.net.XmlHttp.ReadyState"], ["goog.net.WrapperXmlHttpFactory", "goog.net.XmlHttpFactory"]); +goog.addDependency("/closure/goog/net/xmlhttpfactory.js", ["goog.net.XmlHttpFactory"], []); +goog.addDependency("/closure/goog/net/xpc/crosspagechannel.js", ["goog.net.xpc.CrossPageChannel"], ["goog.Disposable", "goog.Uri", "goog.async.Deferred", "goog.async.Delay", "goog.dom", "goog.events", "goog.events.EventHandler", "goog.json", "goog.messaging.AbstractChannel", "goog.net.xpc", "goog.net.xpc.CrossPageChannelRole", "goog.net.xpc.FrameElementMethodTransport", "goog.net.xpc.IframePollingTransport", "goog.net.xpc.IframeRelayTransport", "goog.net.xpc.NativeMessagingTransport", "goog.net.xpc.NixTransport", +"goog.net.xpc.Transport", "goog.userAgent"]); +goog.addDependency("/closure/goog/net/xpc/crosspagechannelrole.js", ["goog.net.xpc.CrossPageChannelRole"], []); +goog.addDependency("/closure/goog/net/xpc/frameelementmethodtransport.js", ["goog.net.xpc.FrameElementMethodTransport"], ["goog.net.xpc", "goog.net.xpc.CrossPageChannelRole", "goog.net.xpc.Transport"]); +goog.addDependency("/closure/goog/net/xpc/iframepollingtransport.js", ["goog.net.xpc.IframePollingTransport", "goog.net.xpc.IframePollingTransport.Receiver", "goog.net.xpc.IframePollingTransport.Sender"], ["goog.array", "goog.dom", "goog.net.xpc", "goog.net.xpc.CrossPageChannelRole", "goog.net.xpc.Transport", "goog.userAgent"]); +goog.addDependency("/closure/goog/net/xpc/iframerelaytransport.js", ["goog.net.xpc.IframeRelayTransport"], ["goog.dom", "goog.events", "goog.net.xpc", "goog.net.xpc.Transport", "goog.userAgent"]); +goog.addDependency("/closure/goog/net/xpc/nativemessagingtransport.js", ["goog.net.xpc.NativeMessagingTransport"], ["goog.Timer", "goog.asserts", "goog.async.Deferred", "goog.events", "goog.events.EventHandler", "goog.net.xpc", "goog.net.xpc.CrossPageChannelRole", "goog.net.xpc.Transport"]); +goog.addDependency("/closure/goog/net/xpc/nixtransport.js", ["goog.net.xpc.NixTransport"], ["goog.net.xpc", "goog.net.xpc.CrossPageChannelRole", "goog.net.xpc.Transport", "goog.reflect"]); +goog.addDependency("/closure/goog/net/xpc/relay.js", ["goog.net.xpc.relay"], []); +goog.addDependency("/closure/goog/net/xpc/transport.js", ["goog.net.xpc.Transport"], ["goog.Disposable", "goog.dom", "goog.net.xpc"]); +goog.addDependency("/closure/goog/net/xpc/xpc.js", ["goog.net.xpc", "goog.net.xpc.CfgFields", "goog.net.xpc.ChannelStates", "goog.net.xpc.TransportNames", "goog.net.xpc.TransportTypes", "goog.net.xpc.UriCfgFields"], ["goog.log"]); +goog.addDependency("/closure/goog/object/object.js", ["goog.object"], []); +goog.addDependency("/closure/goog/positioning/absoluteposition.js", ["goog.positioning.AbsolutePosition"], ["goog.math.Box", "goog.math.Coordinate", "goog.math.Size", "goog.positioning", "goog.positioning.AbstractPosition"]); +goog.addDependency("/closure/goog/positioning/abstractposition.js", ["goog.positioning.AbstractPosition"], ["goog.math.Box", "goog.math.Size", "goog.positioning.Corner"]); +goog.addDependency("/closure/goog/positioning/anchoredposition.js", ["goog.positioning.AnchoredPosition"], ["goog.math.Box", "goog.positioning", "goog.positioning.AbstractPosition"]); +goog.addDependency("/closure/goog/positioning/anchoredviewportposition.js", ["goog.positioning.AnchoredViewportPosition"], ["goog.math.Box", "goog.positioning", "goog.positioning.AnchoredPosition", "goog.positioning.Corner", "goog.positioning.Overflow", "goog.positioning.OverflowStatus"]); +goog.addDependency("/closure/goog/positioning/clientposition.js", ["goog.positioning.ClientPosition"], ["goog.asserts", "goog.math.Box", "goog.math.Coordinate", "goog.math.Size", "goog.positioning", "goog.positioning.AbstractPosition", "goog.style"]); +goog.addDependency("/closure/goog/positioning/clientposition_test.js", ["goog.positioning.clientPositionTest"], ["goog.dom", "goog.positioning.ClientPosition", "goog.style", "goog.testing.jsunit"]); +goog.addDependency("/closure/goog/positioning/menuanchoredposition.js", ["goog.positioning.MenuAnchoredPosition"], ["goog.math.Box", "goog.math.Size", "goog.positioning", "goog.positioning.AnchoredViewportPosition", "goog.positioning.Corner", "goog.positioning.Overflow"]); +goog.addDependency("/closure/goog/positioning/positioning.js", ["goog.positioning", "goog.positioning.Corner", "goog.positioning.CornerBit", "goog.positioning.Overflow", "goog.positioning.OverflowStatus"], ["goog.asserts", "goog.dom", "goog.dom.TagName", "goog.math.Box", "goog.math.Coordinate", "goog.math.Size", "goog.style", "goog.style.bidi"]); +goog.addDependency("/closure/goog/positioning/positioning_test.js", ["goog.positioningTest"], ["goog.dom", "goog.dom.DomHelper", "goog.math.Box", "goog.math.Coordinate", "goog.math.Rect", "goog.math.Size", "goog.positioning", "goog.positioning.Corner", "goog.positioning.Overflow", "goog.positioning.OverflowStatus", "goog.style", "goog.testing.ExpectedFailures", "goog.testing.jsunit", "goog.userAgent", "goog.userAgent.product"]); +goog.addDependency("/closure/goog/positioning/viewportclientposition.js", ["goog.positioning.ViewportClientPosition"], ["goog.math.Box", "goog.math.Coordinate", "goog.math.Size", "goog.positioning.ClientPosition"]); +goog.addDependency("/closure/goog/positioning/viewportposition.js", ["goog.positioning.ViewportPosition"], ["goog.math.Box", "goog.math.Coordinate", "goog.math.Size", "goog.positioning.AbstractPosition"]); +goog.addDependency("/closure/goog/proto/proto.js", ["goog.proto"], ["goog.proto.Serializer"]); +goog.addDependency("/closure/goog/proto/serializer.js", ["goog.proto.Serializer"], ["goog.json.Serializer", "goog.string"]); +goog.addDependency("/closure/goog/proto2/descriptor.js", ["goog.proto2.Descriptor", "goog.proto2.Metadata"], ["goog.array", "goog.object", "goog.proto2.Util"]); +goog.addDependency("/closure/goog/proto2/fielddescriptor.js", ["goog.proto2.FieldDescriptor"], ["goog.proto2.Util", "goog.string"]); +goog.addDependency("/closure/goog/proto2/lazydeserializer.js", ["goog.proto2.LazyDeserializer"], ["goog.proto2.Message", "goog.proto2.Serializer", "goog.proto2.Util"]); +goog.addDependency("/closure/goog/proto2/message.js", ["goog.proto2.Message"], ["goog.proto2.Descriptor", "goog.proto2.FieldDescriptor", "goog.proto2.Util", "goog.string"]); +goog.addDependency("/closure/goog/proto2/objectserializer.js", ["goog.proto2.ObjectSerializer"], ["goog.proto2.Serializer", "goog.proto2.Util", "goog.string"]); +goog.addDependency("/closure/goog/proto2/package_test.pb.js", ["someprotopackage.TestPackageTypes"], ["goog.proto2.Message", "proto2.TestAllTypes"]); +goog.addDependency("/closure/goog/proto2/pbliteserializer.js", ["goog.proto2.PbLiteSerializer"], ["goog.proto2.LazyDeserializer", "goog.proto2.Util"]); +goog.addDependency("/closure/goog/proto2/serializer.js", ["goog.proto2.Serializer"], ["goog.proto2.Descriptor", "goog.proto2.FieldDescriptor", "goog.proto2.Message", "goog.proto2.Util"]); +goog.addDependency("/closure/goog/proto2/test.pb.js", ["proto2.TestAllTypes", "proto2.TestAllTypes.NestedEnum", "proto2.TestAllTypes.NestedMessage", "proto2.TestAllTypes.OptionalGroup", "proto2.TestAllTypes.RepeatedGroup"], ["goog.proto2.Message"]); +goog.addDependency("/closure/goog/proto2/textformatserializer.js", ["goog.proto2.TextFormatSerializer", "goog.proto2.TextFormatSerializer.Parser"], ["goog.array", "goog.asserts", "goog.json", "goog.proto2.Serializer", "goog.proto2.Util", "goog.string"]); +goog.addDependency("/closure/goog/proto2/textformatserializer_test.js", ["goog.proto2.TextFormatSerializerTest"], ["goog.proto2.TextFormatSerializer", "goog.testing.jsunit", "proto2.TestAllTypes"]); +goog.addDependency("/closure/goog/proto2/util.js", ["goog.proto2.Util"], ["goog.asserts"]); +goog.addDependency("/closure/goog/pubsub/pubsub.js", ["goog.pubsub.PubSub"], ["goog.Disposable", "goog.array"]); +goog.addDependency("/closure/goog/reflect/reflect.js", ["goog.reflect"], []); +goog.addDependency("/closure/goog/result/deferredadaptor.js", ["goog.result.DeferredAdaptor"], ["goog.async.Deferred", "goog.result", "goog.result.Result"]); +goog.addDependency("/closure/goog/result/dependentresult.js", ["goog.result.DependentResult"], ["goog.result.Result"]); +goog.addDependency("/closure/goog/result/result_interface.js", ["goog.result.Result"], []); +goog.addDependency("/closure/goog/result/resultutil.js", ["goog.result"], ["goog.array", "goog.result.DependentResult", "goog.result.Result", "goog.result.SimpleResult"]); +goog.addDependency("/closure/goog/result/simpleresult.js", ["goog.result.SimpleResult", "goog.result.SimpleResult.StateError"], ["goog.debug.Error", "goog.result.Result"]); +goog.addDependency("/closure/goog/soy/data.js", ["goog.soy.data", "goog.soy.data.SanitizedContent", "goog.soy.data.SanitizedContentKind"], []); +goog.addDependency("/closure/goog/soy/renderer.js", ["goog.soy.InjectedDataSupplier", "goog.soy.Renderer"], ["goog.asserts", "goog.dom", "goog.soy", "goog.soy.data.SanitizedContent", "goog.soy.data.SanitizedContentKind"]); +goog.addDependency("/closure/goog/soy/soy.js", ["goog.soy"], ["goog.asserts", "goog.dom", "goog.dom.NodeType", "goog.dom.TagName", "goog.soy.data", "goog.string"]); +goog.addDependency("/closure/goog/soy/soy_test.js", ["goog.soy.testHelper"], ["goog.dom", "goog.soy.data.SanitizedContent", "goog.soy.data.SanitizedContentKind", "goog.string", "goog.userAgent", "goog.dom.TagName"]); +goog.addDependency("/closure/goog/spell/spellcheck.js", ["goog.spell.SpellCheck", "goog.spell.SpellCheck.WordChangedEvent"], ["goog.Timer", "goog.events.EventTarget", "goog.structs.Set"]); +goog.addDependency("/closure/goog/stats/basicstat.js", ["goog.stats.BasicStat"], ["goog.array", "goog.iter", "goog.log", "goog.object", "goog.string.format", "goog.structs.CircularBuffer"]); +goog.addDependency("/closure/goog/storage/collectablestorage.js", ["goog.storage.CollectableStorage"], ["goog.array", "goog.asserts", "goog.iter", "goog.storage.ErrorCode", "goog.storage.ExpiringStorage", "goog.storage.RichStorage.Wrapper", "goog.storage.mechanism.IterableMechanism"]); +goog.addDependency("/closure/goog/storage/encryptedstorage.js", ["goog.storage.EncryptedStorage"], ["goog.crypt", "goog.crypt.Arc4", "goog.crypt.Sha1", "goog.crypt.base64", "goog.json", "goog.json.Serializer", "goog.storage.CollectableStorage", "goog.storage.ErrorCode", "goog.storage.RichStorage", "goog.storage.RichStorage.Wrapper", "goog.storage.mechanism.IterableMechanism"]); +goog.addDependency("/closure/goog/storage/errorcode.js", ["goog.storage.ErrorCode"], []); +goog.addDependency("/closure/goog/storage/expiringstorage.js", ["goog.storage.ExpiringStorage"], ["goog.storage.RichStorage", "goog.storage.RichStorage.Wrapper", "goog.storage.mechanism.Mechanism"]); +goog.addDependency("/closure/goog/storage/mechanism/errorcode.js", ["goog.storage.mechanism.ErrorCode"], []); +goog.addDependency("/closure/goog/storage/mechanism/errorhandlingmechanism.js", ["goog.storage.mechanism.ErrorHandlingMechanism"], ["goog.storage.mechanism.Mechanism"]); +goog.addDependency("/closure/goog/storage/mechanism/html5localstorage.js", ["goog.storage.mechanism.HTML5LocalStorage"], ["goog.storage.mechanism.HTML5WebStorage"]); +goog.addDependency("/closure/goog/storage/mechanism/html5sessionstorage.js", ["goog.storage.mechanism.HTML5SessionStorage"], ["goog.storage.mechanism.HTML5WebStorage"]); +goog.addDependency("/closure/goog/storage/mechanism/html5webstorage.js", ["goog.storage.mechanism.HTML5WebStorage"], ["goog.asserts", "goog.iter.Iterator", "goog.iter.StopIteration", "goog.storage.mechanism.ErrorCode", "goog.storage.mechanism.IterableMechanism"]); +goog.addDependency("/closure/goog/storage/mechanism/ieuserdata.js", ["goog.storage.mechanism.IEUserData"], ["goog.asserts", "goog.iter.Iterator", "goog.iter.StopIteration", "goog.storage.mechanism.ErrorCode", "goog.storage.mechanism.IterableMechanism", "goog.structs.Map", "goog.userAgent"]); +goog.addDependency("/closure/goog/storage/mechanism/iterablemechanism.js", ["goog.storage.mechanism.IterableMechanism"], ["goog.array", "goog.asserts", "goog.iter", "goog.iter.Iterator", "goog.storage.mechanism.Mechanism"]); +goog.addDependency("/closure/goog/storage/mechanism/iterablemechanismtester.js", ["goog.storage.mechanism.iterableMechanismTester"], ["goog.iter.Iterator", "goog.storage.mechanism.IterableMechanism", "goog.testing.asserts"]); +goog.addDependency("/closure/goog/storage/mechanism/mechanism.js", ["goog.storage.mechanism.Mechanism"], []); +goog.addDependency("/closure/goog/storage/mechanism/mechanismfactory.js", ["goog.storage.mechanism.mechanismfactory"], ["goog.storage.mechanism.HTML5LocalStorage", "goog.storage.mechanism.HTML5SessionStorage", "goog.storage.mechanism.IEUserData", "goog.storage.mechanism.IterableMechanism", "goog.storage.mechanism.PrefixedMechanism"]); +goog.addDependency("/closure/goog/storage/mechanism/mechanismseparationtester.js", ["goog.storage.mechanism.mechanismSeparationTester"], ["goog.iter.Iterator", "goog.storage.mechanism.IterableMechanism", "goog.testing.asserts"]); +goog.addDependency("/closure/goog/storage/mechanism/mechanismsharingtester.js", ["goog.storage.mechanism.mechanismSharingTester"], ["goog.iter.Iterator", "goog.storage.mechanism.IterableMechanism", "goog.testing.asserts"]); +goog.addDependency("/closure/goog/storage/mechanism/mechanismtester.js", ["goog.storage.mechanism.mechanismTester"], ["goog.storage.mechanism.ErrorCode", "goog.storage.mechanism.HTML5LocalStorage", "goog.storage.mechanism.Mechanism", "goog.testing.asserts", "goog.userAgent.product", "goog.userAgent.product.isVersion"]); +goog.addDependency("/closure/goog/storage/mechanism/prefixedmechanism.js", ["goog.storage.mechanism.PrefixedMechanism"], ["goog.iter.Iterator", "goog.storage.mechanism.IterableMechanism"]); +goog.addDependency("/closure/goog/storage/richstorage.js", ["goog.storage.RichStorage", "goog.storage.RichStorage.Wrapper"], ["goog.storage.ErrorCode", "goog.storage.Storage", "goog.storage.mechanism.Mechanism"]); +goog.addDependency("/closure/goog/storage/storage.js", ["goog.storage.Storage"], ["goog.json", "goog.json.Serializer", "goog.storage.ErrorCode"]); +goog.addDependency("/closure/goog/storage/storage_test.js", ["goog.storage.storage_test"], ["goog.storage.Storage", "goog.structs.Map", "goog.testing.asserts"]); +goog.addDependency("/closure/goog/string/linkify.js", ["goog.string.linkify"], ["goog.string"]); +goog.addDependency("/closure/goog/string/newlines.js", ["goog.string.newlines", "goog.string.newlines.Line"], ["goog.array"]); +goog.addDependency("/closure/goog/string/newlines_test.js", ["goog.string.newlinesTest"], ["goog.string.newlines", "goog.testing.jsunit"]); +goog.addDependency("/closure/goog/string/parser.js", ["goog.string.Parser"], []); +goog.addDependency("/closure/goog/string/path.js", ["goog.string.path"], ["goog.array", "goog.string"]); +goog.addDependency("/closure/goog/string/string.js", ["goog.string", "goog.string.Unicode"], []); +goog.addDependency("/closure/goog/string/string_test.js", ["goog.stringTest"], ["goog.functions", "goog.object", "goog.string", "goog.testing.PropertyReplacer", "goog.testing.jsunit"]); +goog.addDependency("/closure/goog/string/stringbuffer.js", ["goog.string.StringBuffer"], []); +goog.addDependency("/closure/goog/string/stringformat.js", ["goog.string.format"], ["goog.string"]); +goog.addDependency("/closure/goog/string/stringifier.js", ["goog.string.Stringifier"], []); +goog.addDependency("/closure/goog/structs/avltree.js", ["goog.structs.AvlTree", "goog.structs.AvlTree.Node"], ["goog.structs.Collection"]); +goog.addDependency("/closure/goog/structs/circularbuffer.js", ["goog.structs.CircularBuffer"], []); +goog.addDependency("/closure/goog/structs/collection.js", ["goog.structs.Collection"], []); +goog.addDependency("/closure/goog/structs/heap.js", ["goog.structs.Heap"], ["goog.array", "goog.object", "goog.structs.Node"]); +goog.addDependency("/closure/goog/structs/inversionmap.js", ["goog.structs.InversionMap"], ["goog.array"]); +goog.addDependency("/closure/goog/structs/linkedmap.js", ["goog.structs.LinkedMap"], ["goog.structs.Map"]); +goog.addDependency("/closure/goog/structs/map.js", ["goog.structs.Map"], ["goog.iter.Iterator", "goog.iter.StopIteration", "goog.object"]); +goog.addDependency("/closure/goog/structs/node.js", ["goog.structs.Node"], []); +goog.addDependency("/closure/goog/structs/pool.js", ["goog.structs.Pool"], ["goog.Disposable", "goog.structs.Queue", "goog.structs.Set"]); +goog.addDependency("/closure/goog/structs/prioritypool.js", ["goog.structs.PriorityPool"], ["goog.structs.Pool", "goog.structs.PriorityQueue"]); +goog.addDependency("/closure/goog/structs/priorityqueue.js", ["goog.structs.PriorityQueue"], ["goog.structs.Heap"]); +goog.addDependency("/closure/goog/structs/quadtree.js", ["goog.structs.QuadTree", "goog.structs.QuadTree.Node", "goog.structs.QuadTree.Point"], ["goog.math.Coordinate"]); +goog.addDependency("/closure/goog/structs/queue.js", ["goog.structs.Queue"], ["goog.array"]); +goog.addDependency("/closure/goog/structs/set.js", ["goog.structs.Set"], ["goog.structs", "goog.structs.Collection", "goog.structs.Map"]); +goog.addDependency("/closure/goog/structs/simplepool.js", ["goog.structs.SimplePool"], ["goog.Disposable"]); +goog.addDependency("/closure/goog/structs/stringset.js", ["goog.structs.StringSet"], ["goog.asserts", "goog.iter"]); +goog.addDependency("/closure/goog/structs/structs.js", ["goog.structs"], ["goog.array", "goog.object"]); +goog.addDependency("/closure/goog/structs/treenode.js", ["goog.structs.TreeNode"], ["goog.array", "goog.asserts", "goog.structs.Node"]); +goog.addDependency("/closure/goog/structs/trie.js", ["goog.structs.Trie"], ["goog.object", "goog.structs"]); +goog.addDependency("/closure/goog/style/bidi.js", ["goog.style.bidi"], ["goog.dom", "goog.style", "goog.userAgent"]); +goog.addDependency("/closure/goog/style/cursor.js", ["goog.style.cursor"], ["goog.userAgent"]); +goog.addDependency("/closure/goog/style/style.js", ["goog.style"], ["goog.array", "goog.asserts", "goog.dom", "goog.dom.NodeType", "goog.dom.vendor", "goog.math.Box", "goog.math.Coordinate", "goog.math.Rect", "goog.math.Size", "goog.object", "goog.string", "goog.userAgent"]); +goog.addDependency("/closure/goog/style/style_test.js", ["goog.style_test"], ["goog.array", "goog.color", "goog.dom", "goog.events.BrowserEvent", "goog.math.Box", "goog.math.Coordinate", "goog.math.Rect", "goog.math.Size", "goog.object", "goog.string", "goog.style", "goog.testing.ExpectedFailures", "goog.testing.PropertyReplacer", "goog.testing.asserts", "goog.testing.jsunit", "goog.userAgent", "goog.userAgent.product", "goog.userAgent.product.isVersion"]); +goog.addDependency("/closure/goog/style/stylescrollbartester.js", ["goog.styleScrollbarTester"], ["goog.dom", "goog.style", "goog.testing.asserts"]); +goog.addDependency("/closure/goog/style/transition.js", ["goog.style.transition", "goog.style.transition.Css3Property"], ["goog.array", "goog.asserts", "goog.dom.vendor", "goog.style", "goog.userAgent"]); +goog.addDependency("/closure/goog/testing/asserts.js", ["goog.testing.JsUnitException", "goog.testing.asserts"], ["goog.testing.stacktrace"]); +goog.addDependency("/closure/goog/testing/async/mockcontrol.js", ["goog.testing.async.MockControl"], ["goog.asserts", "goog.async.Deferred", "goog.debug", "goog.testing.asserts", "goog.testing.mockmatchers.IgnoreArgument"]); +goog.addDependency("/closure/goog/testing/asynctestcase.js", ["goog.testing.AsyncTestCase", "goog.testing.AsyncTestCase.ControlBreakingException"], ["goog.testing.TestCase", "goog.testing.TestCase.Test", "goog.testing.asserts"]); +goog.addDependency("/closure/goog/testing/benchmark.js", ["goog.testing.benchmark"], ["goog.dom", "goog.dom.TagName", "goog.testing.PerformanceTable", "goog.testing.PerformanceTimer", "goog.testing.TestCase"]); +goog.addDependency("/closure/goog/testing/continuationtestcase.js", ["goog.testing.ContinuationTestCase", "goog.testing.ContinuationTestCase.Step", "goog.testing.ContinuationTestCase.Test"], ["goog.array", "goog.events.EventHandler", "goog.testing.TestCase", "goog.testing.TestCase.Test", "goog.testing.asserts"]); +goog.addDependency("/closure/goog/testing/deferredtestcase.js", ["goog.testing.DeferredTestCase"], ["goog.async.Deferred", "goog.testing.AsyncTestCase", "goog.testing.TestCase"]); +goog.addDependency("/closure/goog/testing/dom.js", ["goog.testing.dom"], ["goog.dom", "goog.dom.NodeIterator", "goog.dom.NodeType", "goog.dom.TagIterator", "goog.dom.TagName", "goog.dom.classes", "goog.iter", "goog.object", "goog.string", "goog.style", "goog.testing.asserts", "goog.userAgent"]); +goog.addDependency("/closure/goog/testing/editor/dom.js", ["goog.testing.editor.dom"], ["goog.dom.NodeType", "goog.dom.TagIterator", "goog.dom.TagWalkType", "goog.iter", "goog.string", "goog.testing.asserts"]); +goog.addDependency("/closure/goog/testing/editor/fieldmock.js", ["goog.testing.editor.FieldMock"], ["goog.dom", "goog.dom.Range", "goog.editor.Field", "goog.testing.LooseMock", "goog.testing.mockmatchers"]); +goog.addDependency("/closure/goog/testing/editor/testhelper.js", ["goog.testing.editor.TestHelper"], ["goog.Disposable", "goog.dom", "goog.dom.Range", "goog.editor.BrowserFeature", "goog.editor.node", "goog.editor.plugins.AbstractBubblePlugin", "goog.testing.dom"]); +goog.addDependency("/closure/goog/testing/events/eventobserver.js", ["goog.testing.events.EventObserver"], ["goog.array"]); +goog.addDependency("/closure/goog/testing/events/events.js", ["goog.testing.events", "goog.testing.events.Event"], ["goog.Disposable", "goog.asserts", "goog.dom.NodeType", "goog.events", "goog.events.BrowserEvent", "goog.events.BrowserFeature", "goog.events.EventTarget", "goog.events.EventType", "goog.events.KeyCodes", "goog.object", "goog.style", "goog.userAgent"]); +goog.addDependency("/closure/goog/testing/events/matchers.js", ["goog.testing.events.EventMatcher"], ["goog.events.Event", "goog.testing.mockmatchers.ArgumentMatcher"]); +goog.addDependency("/closure/goog/testing/events/onlinehandler.js", ["goog.testing.events.OnlineHandler"], ["goog.events.EventTarget", "goog.net.NetworkStatusMonitor"]); +goog.addDependency("/closure/goog/testing/expectedfailures.js", ["goog.testing.ExpectedFailures"], ["goog.debug.DivConsole", "goog.dom", "goog.dom.TagName", "goog.events", "goog.events.EventType", "goog.log", "goog.style", "goog.testing.JsUnitException", "goog.testing.TestCase", "goog.testing.asserts"]); +goog.addDependency("/closure/goog/testing/fs/blob.js", ["goog.testing.fs.Blob"], ["goog.crypt.base64"]); +goog.addDependency("/closure/goog/testing/fs/entry.js", ["goog.testing.fs.DirectoryEntry", "goog.testing.fs.Entry", "goog.testing.fs.FileEntry"], ["goog.Timer", "goog.array", "goog.asserts", "goog.async.Deferred", "goog.fs.DirectoryEntry", "goog.fs.DirectoryEntryImpl", "goog.fs.Entry", "goog.fs.Error", "goog.fs.FileEntry", "goog.functions", "goog.object", "goog.string", "goog.testing.fs.File", "goog.testing.fs.FileWriter"]); +goog.addDependency("/closure/goog/testing/fs/file.js", ["goog.testing.fs.File"], ["goog.testing.fs.Blob"]); +goog.addDependency("/closure/goog/testing/fs/filereader.js", ["goog.testing.fs.FileReader"], ["goog.Timer", "goog.events.EventTarget", "goog.fs.Error", "goog.fs.FileReader.EventType", "goog.fs.FileReader.ReadyState", "goog.testing.fs.File", "goog.testing.fs.ProgressEvent"]); +goog.addDependency("/closure/goog/testing/fs/filesystem.js", ["goog.testing.fs.FileSystem"], ["goog.fs.FileSystem", "goog.testing.fs.DirectoryEntry"]); +goog.addDependency("/closure/goog/testing/fs/filewriter.js", ["goog.testing.fs.FileWriter"], ["goog.Timer", "goog.events.Event", "goog.events.EventTarget", "goog.fs.Error", "goog.fs.FileSaver.EventType", "goog.fs.FileSaver.ReadyState", "goog.string", "goog.testing.fs.File", "goog.testing.fs.ProgressEvent"]); +goog.addDependency("/closure/goog/testing/fs/fs.js", ["goog.testing.fs"], ["goog.Timer", "goog.array", "goog.async.Deferred", "goog.fs", "goog.testing.fs.Blob", "goog.testing.fs.FileSystem"]); +goog.addDependency("/closure/goog/testing/fs/progressevent.js", ["goog.testing.fs.ProgressEvent"], ["goog.events.Event"]); +goog.addDependency("/closure/goog/testing/functionmock.js", ["goog.testing", "goog.testing.FunctionMock", "goog.testing.GlobalFunctionMock", "goog.testing.MethodMock"], ["goog.object", "goog.testing.LooseMock", "goog.testing.Mock", "goog.testing.MockInterface", "goog.testing.PropertyReplacer", "goog.testing.StrictMock"]); +goog.addDependency("/closure/goog/testing/graphics.js", ["goog.testing.graphics"], ["goog.graphics.Path.Segment", "goog.testing.asserts"]); +goog.addDependency("/closure/goog/testing/i18n/asserts.js", ["goog.testing.i18n.asserts"], ["goog.testing.jsunit"]); +goog.addDependency("/closure/goog/testing/i18n/asserts_test.js", ["goog.testing.i18n.assertsTest"], ["goog.testing.i18n.asserts", "goog.testing.ExpectedFailures"]); +goog.addDependency("/closure/goog/testing/jsunit.js", ["goog.testing.jsunit"], ["goog.testing.TestCase", "goog.testing.TestRunner"]); +goog.addDependency("/closure/goog/testing/loosemock.js", ["goog.testing.LooseExpectationCollection", "goog.testing.LooseMock"], ["goog.array", "goog.structs.Map", "goog.testing.Mock"]); +goog.addDependency("/closure/goog/testing/messaging/mockmessagechannel.js", ["goog.testing.messaging.MockMessageChannel"], ["goog.messaging.AbstractChannel", "goog.testing.asserts"]); +goog.addDependency("/closure/goog/testing/messaging/mockmessageevent.js", ["goog.testing.messaging.MockMessageEvent"], ["goog.events.BrowserEvent", "goog.events.EventType", "goog.testing.events"]); +goog.addDependency("/closure/goog/testing/messaging/mockmessageport.js", ["goog.testing.messaging.MockMessagePort"], ["goog.events.EventTarget"]); +goog.addDependency("/closure/goog/testing/messaging/mockportnetwork.js", ["goog.testing.messaging.MockPortNetwork"], ["goog.messaging.PortNetwork", "goog.testing.messaging.MockMessageChannel"]); +goog.addDependency("/closure/goog/testing/mock.js", ["goog.testing.Mock", "goog.testing.MockExpectation"], ["goog.array", "goog.object", "goog.testing.JsUnitException", "goog.testing.MockInterface", "goog.testing.mockmatchers"]); +goog.addDependency("/closure/goog/testing/mockclassfactory.js", ["goog.testing.MockClassFactory", "goog.testing.MockClassRecord"], ["goog.array", "goog.object", "goog.testing.LooseMock", "goog.testing.StrictMock", "goog.testing.TestCase", "goog.testing.mockmatchers"]); +goog.addDependency("/closure/goog/testing/mockclock.js", ["goog.testing.MockClock"], ["goog.Disposable", "goog.testing.PropertyReplacer", "goog.testing.events", "goog.testing.events.Event"]); +goog.addDependency("/closure/goog/testing/mockcontrol.js", ["goog.testing.MockControl"], ["goog.array", "goog.testing", "goog.testing.LooseMock", "goog.testing.MockInterface", "goog.testing.StrictMock"]); +goog.addDependency("/closure/goog/testing/mockinterface.js", ["goog.testing.MockInterface"], []); +goog.addDependency("/closure/goog/testing/mockmatchers.js", ["goog.testing.mockmatchers", "goog.testing.mockmatchers.ArgumentMatcher", "goog.testing.mockmatchers.IgnoreArgument", "goog.testing.mockmatchers.InstanceOf", "goog.testing.mockmatchers.ObjectEquals", "goog.testing.mockmatchers.RegexpMatch", "goog.testing.mockmatchers.SaveArgument", "goog.testing.mockmatchers.TypeOf"], ["goog.array", "goog.dom", "goog.testing.asserts"]); +goog.addDependency("/closure/goog/testing/mockrandom.js", ["goog.testing.MockRandom"], ["goog.Disposable"]); +goog.addDependency("/closure/goog/testing/mockrange.js", ["goog.testing.MockRange"], ["goog.dom.AbstractRange", "goog.testing.LooseMock"]); +goog.addDependency("/closure/goog/testing/mockstorage.js", ["goog.testing.MockStorage"], ["goog.structs.Map"]); +goog.addDependency("/closure/goog/testing/mockuseragent.js", ["goog.testing.MockUserAgent"], ["goog.Disposable", "goog.userAgent"]); +goog.addDependency("/closure/goog/testing/multitestrunner.js", ["goog.testing.MultiTestRunner", "goog.testing.MultiTestRunner.TestFrame"], ["goog.Timer", "goog.array", "goog.dom", "goog.dom.classes", "goog.events.EventHandler", "goog.functions", "goog.string", "goog.ui.Component", "goog.ui.ServerChart", "goog.ui.TableSorter"]); +goog.addDependency("/closure/goog/testing/net/xhrio.js", ["goog.testing.net.XhrIo"], ["goog.array", "goog.dom.xml", "goog.events", "goog.events.EventTarget", "goog.json", "goog.net.ErrorCode", "goog.net.EventType", "goog.net.HttpStatus", "goog.net.XhrIo", "goog.net.XmlHttp", "goog.object", "goog.structs.Map"]); +goog.addDependency("/closure/goog/testing/net/xhriopool.js", ["goog.testing.net.XhrIoPool"], ["goog.net.XhrIoPool", "goog.testing.net.XhrIo"]); +goog.addDependency("/closure/goog/testing/objectpropertystring.js", ["goog.testing.ObjectPropertyString"], []); +goog.addDependency("/closure/goog/testing/performancetable.js", ["goog.testing.PerformanceTable"], ["goog.dom", "goog.testing.PerformanceTimer"]); +goog.addDependency("/closure/goog/testing/performancetimer.js", ["goog.testing.PerformanceTimer", "goog.testing.PerformanceTimer.Task"], ["goog.array", "goog.async.Deferred", "goog.math"]); +goog.addDependency("/closure/goog/testing/propertyreplacer.js", ["goog.testing.PropertyReplacer"], ["goog.userAgent"]); +goog.addDependency("/closure/goog/testing/proto2/proto2.js", ["goog.testing.proto2"], ["goog.proto2.Message", "goog.testing.asserts"]); +goog.addDependency("/closure/goog/testing/pseudorandom.js", ["goog.testing.PseudoRandom"], ["goog.Disposable"]); +goog.addDependency("/closure/goog/testing/recordfunction.js", ["goog.testing.FunctionCall", "goog.testing.recordConstructor", "goog.testing.recordFunction"], []); +goog.addDependency("/closure/goog/testing/shardingtestcase.js", ["goog.testing.ShardingTestCase"], ["goog.asserts", "goog.testing.TestCase"]); +goog.addDependency("/closure/goog/testing/singleton.js", ["goog.testing.singleton"], []); +goog.addDependency("/closure/goog/testing/stacktrace.js", ["goog.testing.stacktrace", "goog.testing.stacktrace.Frame"], []); +goog.addDependency("/closure/goog/testing/storage/fakemechanism.js", ["goog.testing.storage.FakeMechanism"], ["goog.storage.mechanism.IterableMechanism", "goog.structs.Map"]); +goog.addDependency("/closure/goog/testing/strictmock.js", ["goog.testing.StrictMock"], ["goog.array", "goog.testing.Mock"]); +goog.addDependency("/closure/goog/testing/style/layoutasserts.js", ["goog.testing.style.layoutasserts"], ["goog.style", "goog.testing.asserts", "goog.testing.style"]); +goog.addDependency("/closure/goog/testing/style/style.js", ["goog.testing.style"], ["goog.dom", "goog.math.Rect", "goog.style"]); +goog.addDependency("/closure/goog/testing/testcase.js", ["goog.testing.TestCase", "goog.testing.TestCase.Error", "goog.testing.TestCase.Order", "goog.testing.TestCase.Result", "goog.testing.TestCase.Test"], ["goog.object", "goog.testing.asserts", "goog.testing.stacktrace"]); +goog.addDependency("/closure/goog/testing/testqueue.js", ["goog.testing.TestQueue"], []); +goog.addDependency("/closure/goog/testing/testrunner.js", ["goog.testing.TestRunner"], ["goog.testing.TestCase"]); +goog.addDependency("/closure/goog/testing/ui/rendererasserts.js", ["goog.testing.ui.rendererasserts"], ["goog.testing.asserts"]); +goog.addDependency("/closure/goog/testing/ui/rendererharness.js", ["goog.testing.ui.RendererHarness"], ["goog.Disposable", "goog.dom.NodeType", "goog.testing.asserts", "goog.testing.dom"]); +goog.addDependency("/closure/goog/testing/ui/style.js", ["goog.testing.ui.style"], ["goog.array", "goog.dom", "goog.dom.classes", "goog.testing.asserts"]); +goog.addDependency("/closure/goog/timer/timer.js", ["goog.Timer"], ["goog.events.EventTarget"]); +goog.addDependency("/closure/goog/tweak/entries.js", ["goog.tweak.BaseEntry", "goog.tweak.BasePrimitiveSetting", "goog.tweak.BaseSetting", "goog.tweak.BooleanGroup", "goog.tweak.BooleanInGroupSetting", "goog.tweak.BooleanSetting", "goog.tweak.ButtonAction", "goog.tweak.NumericSetting", "goog.tweak.StringSetting"], ["goog.array", "goog.asserts", "goog.log", "goog.object"]); +goog.addDependency("/closure/goog/tweak/registry.js", ["goog.tweak.Registry"], ["goog.asserts", "goog.log", "goog.object", "goog.string", "goog.tweak.BaseEntry", "goog.uri.utils"]); +goog.addDependency("/closure/goog/tweak/testhelpers.js", ["goog.tweak.testhelpers"], ["goog.tweak", "goog.tweak.BooleanGroup", "goog.tweak.BooleanInGroupSetting", "goog.tweak.BooleanSetting", "goog.tweak.ButtonAction", "goog.tweak.NumericSetting", "goog.tweak.Registry", "goog.tweak.StringSetting"]); +goog.addDependency("/closure/goog/tweak/tweak.js", ["goog.tweak", "goog.tweak.ConfigParams"], ["goog.asserts", "goog.tweak.BaseSetting", "goog.tweak.BooleanGroup", "goog.tweak.BooleanInGroupSetting", "goog.tweak.BooleanSetting", "goog.tweak.ButtonAction", "goog.tweak.NumericSetting", "goog.tweak.Registry", "goog.tweak.StringSetting"]); +goog.addDependency("/closure/goog/tweak/tweakui.js", ["goog.tweak.EntriesPanel", "goog.tweak.TweakUi"], ["goog.array", "goog.asserts", "goog.dom.DomHelper", "goog.object", "goog.style", "goog.tweak", "goog.ui.Zippy", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/abstractspellchecker.js", ["goog.ui.AbstractSpellChecker", "goog.ui.AbstractSpellChecker.AsyncResult"], ["goog.a11y.aria", "goog.array", "goog.asserts", "goog.dom", "goog.dom.NodeType", "goog.dom.classes", "goog.dom.selection", "goog.events", "goog.events.Event", "goog.events.EventType", "goog.math.Coordinate", "goog.spell.SpellCheck", "goog.structs.Set", "goog.style", "goog.ui.Component", "goog.ui.MenuItem", "goog.ui.MenuSeparator", "goog.ui.PopupMenu"]); +goog.addDependency("/closure/goog/ui/ac/ac.js", ["goog.ui.ac"], ["goog.ui.ac.ArrayMatcher", "goog.ui.ac.AutoComplete", "goog.ui.ac.InputHandler", "goog.ui.ac.Renderer"]); +goog.addDependency("/closure/goog/ui/ac/arraymatcher.js", ["goog.ui.ac.ArrayMatcher"], ["goog.string"]); +goog.addDependency("/closure/goog/ui/ac/autocomplete.js", ["goog.ui.ac.AutoComplete", "goog.ui.ac.AutoComplete.EventType"], ["goog.array", "goog.asserts", "goog.events", "goog.events.EventTarget", "goog.object"]); +goog.addDependency("/closure/goog/ui/ac/inputhandler.js", ["goog.ui.ac.InputHandler"], ["goog.Disposable", "goog.Timer", "goog.a11y.aria", "goog.dom", "goog.dom.selection", "goog.events.EventHandler", "goog.events.EventType", "goog.events.KeyCodes", "goog.events.KeyHandler", "goog.string", "goog.userAgent", "goog.userAgent.product"]); +goog.addDependency("/closure/goog/ui/ac/remote.js", ["goog.ui.ac.Remote"], ["goog.ui.ac.AutoComplete", "goog.ui.ac.InputHandler", "goog.ui.ac.RemoteArrayMatcher", "goog.ui.ac.Renderer"]); +goog.addDependency("/closure/goog/ui/ac/remotearraymatcher.js", ["goog.ui.ac.RemoteArrayMatcher"], ["goog.Disposable", "goog.Uri", "goog.events", "goog.json", "goog.net.EventType", "goog.net.XhrIo"]); +goog.addDependency("/closure/goog/ui/ac/renderer.js", ["goog.ui.ac.Renderer", "goog.ui.ac.Renderer.CustomRenderer"], ["goog.a11y.aria", "goog.a11y.aria.Role", "goog.a11y.aria.State", "goog.array", "goog.dispose", "goog.dom", "goog.dom.NodeType", "goog.dom.classes", "goog.events", "goog.events.EventTarget", "goog.events.EventType", "goog.fx.dom.FadeInAndShow", "goog.fx.dom.FadeOutAndHide", "goog.positioning", "goog.positioning.Corner", "goog.positioning.Overflow", "goog.string", "goog.style", "goog.ui.IdGenerator", +"goog.ui.ac.AutoComplete"]); +goog.addDependency("/closure/goog/ui/ac/renderoptions.js", ["goog.ui.ac.RenderOptions"], []); +goog.addDependency("/closure/goog/ui/ac/richinputhandler.js", ["goog.ui.ac.RichInputHandler"], ["goog.ui.ac.InputHandler"]); +goog.addDependency("/closure/goog/ui/ac/richremote.js", ["goog.ui.ac.RichRemote"], ["goog.ui.ac.AutoComplete", "goog.ui.ac.Remote", "goog.ui.ac.Renderer", "goog.ui.ac.RichInputHandler", "goog.ui.ac.RichRemoteArrayMatcher"]); +goog.addDependency("/closure/goog/ui/ac/richremotearraymatcher.js", ["goog.ui.ac.RichRemoteArrayMatcher"], ["goog.json", "goog.ui.ac.RemoteArrayMatcher"]); +goog.addDependency("/closure/goog/ui/activitymonitor.js", ["goog.ui.ActivityMonitor"], ["goog.array", "goog.asserts", "goog.dom", "goog.events.EventHandler", "goog.events.EventTarget", "goog.events.EventType"]); +goog.addDependency("/closure/goog/ui/advancedtooltip.js", ["goog.ui.AdvancedTooltip"], ["goog.events", "goog.events.EventType", "goog.math.Box", "goog.math.Coordinate", "goog.style", "goog.ui.Tooltip", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/animatedzippy.js", ["goog.ui.AnimatedZippy"], ["goog.dom", "goog.events", "goog.fx.Animation", "goog.fx.Transition", "goog.fx.easing", "goog.ui.Zippy", "goog.ui.ZippyEvent"]); +goog.addDependency("/closure/goog/ui/attachablemenu.js", ["goog.ui.AttachableMenu"], ["goog.a11y.aria", "goog.a11y.aria.State", "goog.array", "goog.asserts", "goog.dom", "goog.dom.classes", "goog.events.Event", "goog.events.KeyCodes", "goog.string", "goog.style", "goog.ui.ItemEvent", "goog.ui.MenuBase", "goog.ui.PopupBase", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/bidiinput.js", ["goog.ui.BidiInput"], ["goog.dom", "goog.events", "goog.events.InputHandler", "goog.i18n.bidi", "goog.ui.Component"]); +goog.addDependency("/closure/goog/ui/bubble.js", ["goog.ui.Bubble"], ["goog.Timer", "goog.events", "goog.events.EventType", "goog.math.Box", "goog.positioning", "goog.positioning.AbsolutePosition", "goog.positioning.AnchoredPosition", "goog.positioning.Corner", "goog.positioning.CornerBit", "goog.style", "goog.ui.Component", "goog.ui.Popup"]); +goog.addDependency("/closure/goog/ui/button.js", ["goog.ui.Button", "goog.ui.Button.Side"], ["goog.events.EventType", "goog.events.KeyCodes", "goog.events.KeyHandler", "goog.ui.ButtonRenderer", "goog.ui.ButtonSide", "goog.ui.Component", "goog.ui.Control", "goog.ui.NativeButtonRenderer", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/buttonrenderer.js", ["goog.ui.ButtonRenderer"], ["goog.a11y.aria", "goog.a11y.aria.Role", "goog.a11y.aria.State", "goog.asserts", "goog.ui.ButtonSide", "goog.ui.Component", "goog.ui.ControlRenderer"]); +goog.addDependency("/closure/goog/ui/buttonside.js", ["goog.ui.ButtonSide"], []); +goog.addDependency("/closure/goog/ui/charcounter.js", ["goog.ui.CharCounter", "goog.ui.CharCounter.Display"], ["goog.dom", "goog.events", "goog.events.EventTarget", "goog.events.InputHandler"]); +goog.addDependency("/closure/goog/ui/charpicker.js", ["goog.ui.CharPicker"], ["goog.a11y.aria", "goog.a11y.aria.State", "goog.array", "goog.asserts", "goog.dom.classes", "goog.events", "goog.events.Event", "goog.events.EventHandler", "goog.events.EventType", "goog.events.InputHandler", "goog.events.KeyCodes", "goog.events.KeyHandler", "goog.i18n.CharListDecompressor", "goog.i18n.uChar", "goog.structs.Set", "goog.style", "goog.ui.Button", "goog.ui.Component", "goog.ui.ContainerScroller", "goog.ui.FlatButtonRenderer", +"goog.ui.HoverCard", "goog.ui.LabelInput", "goog.ui.Menu", "goog.ui.MenuButton", "goog.ui.MenuItem", "goog.ui.Tooltip"]); +goog.addDependency("/closure/goog/ui/checkbox.js", ["goog.ui.Checkbox", "goog.ui.Checkbox.State"], ["goog.a11y.aria", "goog.a11y.aria.State", "goog.asserts", "goog.events.EventType", "goog.events.KeyCodes", "goog.ui.CheckboxRenderer", "goog.ui.Component.EventType", "goog.ui.Component.State", "goog.ui.Control", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/checkboxmenuitem.js", ["goog.ui.CheckBoxMenuItem"], ["goog.ui.MenuItem", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/checkboxrenderer.js", ["goog.ui.CheckboxRenderer"], ["goog.a11y.aria", "goog.a11y.aria.Role", "goog.a11y.aria.State", "goog.array", "goog.asserts", "goog.dom.classes", "goog.object", "goog.ui.ControlRenderer"]); +goog.addDependency("/closure/goog/ui/colorbutton.js", ["goog.ui.ColorButton"], ["goog.ui.Button", "goog.ui.ColorButtonRenderer", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/colorbuttonrenderer.js", ["goog.ui.ColorButtonRenderer"], ["goog.dom.classes", "goog.functions", "goog.ui.ColorMenuButtonRenderer"]); +goog.addDependency("/closure/goog/ui/colormenubutton.js", ["goog.ui.ColorMenuButton"], ["goog.array", "goog.object", "goog.ui.ColorMenuButtonRenderer", "goog.ui.ColorPalette", "goog.ui.Component", "goog.ui.Menu", "goog.ui.MenuButton", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/colormenubuttonrenderer.js", ["goog.ui.ColorMenuButtonRenderer"], ["goog.color", "goog.dom.classes", "goog.ui.MenuButtonRenderer", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/colorpalette.js", ["goog.ui.ColorPalette"], ["goog.array", "goog.color", "goog.style", "goog.ui.Palette", "goog.ui.PaletteRenderer"]); +goog.addDependency("/closure/goog/ui/colorpicker.js", ["goog.ui.ColorPicker", "goog.ui.ColorPicker.EventType"], ["goog.ui.ColorPalette", "goog.ui.Component"]); +goog.addDependency("/closure/goog/ui/colorsplitbehavior.js", ["goog.ui.ColorSplitBehavior"], ["goog.ui.ColorMenuButton", "goog.ui.SplitBehavior"]); +goog.addDependency("/closure/goog/ui/combobox.js", ["goog.ui.ComboBox", "goog.ui.ComboBoxItem"], ["goog.Timer", "goog.dom", "goog.dom.classlist", "goog.events.EventType", "goog.events.InputHandler", "goog.events.KeyCodes", "goog.events.KeyHandler", "goog.log", "goog.positioning.Corner", "goog.positioning.MenuAnchoredPosition", "goog.string", "goog.style", "goog.ui.Component", "goog.ui.ItemEvent", "goog.ui.LabelInput", "goog.ui.Menu", "goog.ui.MenuItem", "goog.ui.MenuSeparator", "goog.ui.registry", +"goog.userAgent"]); +goog.addDependency("/closure/goog/ui/component.js", ["goog.ui.Component", "goog.ui.Component.Error", "goog.ui.Component.EventType", "goog.ui.Component.State"], ["goog.array", "goog.asserts", "goog.dom", "goog.dom.NodeType", "goog.events.EventHandler", "goog.events.EventTarget", "goog.object", "goog.style", "goog.ui.IdGenerator"]); +goog.addDependency("/closure/goog/ui/container.js", ["goog.ui.Container", "goog.ui.Container.EventType", "goog.ui.Container.Orientation"], ["goog.a11y.aria", "goog.a11y.aria.State", "goog.asserts", "goog.dom", "goog.events.EventType", "goog.events.KeyCodes", "goog.events.KeyHandler", "goog.object", "goog.style", "goog.ui.Component", "goog.ui.ContainerRenderer", "goog.ui.Control"]); +goog.addDependency("/closure/goog/ui/containerrenderer.js", ["goog.ui.ContainerRenderer"], ["goog.a11y.aria", "goog.array", "goog.asserts", "goog.dom.NodeType", "goog.dom.classes", "goog.string", "goog.style", "goog.ui.registry", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/containerscroller.js", ["goog.ui.ContainerScroller"], ["goog.Disposable", "goog.Timer", "goog.events.EventHandler", "goog.style", "goog.ui.Component", "goog.ui.Container"]); +goog.addDependency("/closure/goog/ui/control.js", ["goog.ui.Control"], ["goog.array", "goog.dom", "goog.events.Event", "goog.events.EventType", "goog.events.KeyCodes", "goog.events.KeyHandler", "goog.string", "goog.ui.Component", "goog.ui.ControlContent", "goog.ui.ControlRenderer", "goog.ui.decorate", "goog.ui.registry", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/controlcontent.js", ["goog.ui.ControlContent"], []); +goog.addDependency("/closure/goog/ui/controlrenderer.js", ["goog.ui.ControlRenderer"], ["goog.a11y.aria", "goog.a11y.aria.State", "goog.array", "goog.asserts", "goog.dom", "goog.dom.classes", "goog.object", "goog.style", "goog.ui.Component", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/cookieeditor.js", ["goog.ui.CookieEditor"], ["goog.asserts", "goog.dom", "goog.dom.TagName", "goog.events.EventType", "goog.net.cookies", "goog.string", "goog.style", "goog.ui.Component"]); +goog.addDependency("/closure/goog/ui/css3buttonrenderer.js", ["goog.ui.Css3ButtonRenderer"], ["goog.dom.TagName", "goog.dom.classes", "goog.ui.Button", "goog.ui.ButtonRenderer", "goog.ui.Component", "goog.ui.INLINE_BLOCK_CLASSNAME", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/css3menubuttonrenderer.js", ["goog.ui.Css3MenuButtonRenderer"], ["goog.dom", "goog.dom.TagName", "goog.ui.INLINE_BLOCK_CLASSNAME", "goog.ui.MenuButton", "goog.ui.MenuButtonRenderer", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/cssnames.js", ["goog.ui.INLINE_BLOCK_CLASSNAME"], []); +goog.addDependency("/closure/goog/ui/custombutton.js", ["goog.ui.CustomButton"], ["goog.ui.Button", "goog.ui.CustomButtonRenderer", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/custombuttonrenderer.js", ["goog.ui.CustomButtonRenderer"], ["goog.a11y.aria.Role", "goog.dom.NodeType", "goog.dom.classes", "goog.string", "goog.ui.ButtonRenderer", "goog.ui.INLINE_BLOCK_CLASSNAME"]); +goog.addDependency("/closure/goog/ui/customcolorpalette.js", ["goog.ui.CustomColorPalette"], ["goog.color", "goog.dom", "goog.dom.classes", "goog.ui.ColorPalette", "goog.ui.Component"]); +goog.addDependency("/closure/goog/ui/datepicker.js", ["goog.ui.DatePicker", "goog.ui.DatePicker.Events", "goog.ui.DatePickerEvent"], ["goog.a11y.aria", "goog.asserts", "goog.date", "goog.date.Date", "goog.date.Interval", "goog.dom", "goog.dom.NodeType", "goog.dom.classes", "goog.events.Event", "goog.events.EventType", "goog.events.KeyHandler", "goog.i18n.DateTimeFormat", "goog.i18n.DateTimeSymbols", "goog.string", "goog.style", "goog.ui.Component", "goog.ui.DefaultDatePickerRenderer", "goog.ui.IdGenerator"]); +goog.addDependency("/closure/goog/ui/datepickerrenderer.js", ["goog.ui.DatePickerRenderer"], []); +goog.addDependency("/closure/goog/ui/decorate.js", ["goog.ui.decorate"], ["goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/defaultdatepickerrenderer.js", ["goog.ui.DefaultDatePickerRenderer"], ["goog.dom", "goog.dom.TagName", "goog.ui.DatePickerRenderer"]); +goog.addDependency("/closure/goog/ui/dialog.js", ["goog.ui.Dialog", "goog.ui.Dialog.ButtonSet", "goog.ui.Dialog.ButtonSet.DefaultButtons", "goog.ui.Dialog.DefaultButtonCaptions", "goog.ui.Dialog.DefaultButtonKeys", "goog.ui.Dialog.Event", "goog.ui.Dialog.EventType"], ["goog.a11y.aria", "goog.a11y.aria.Role", "goog.a11y.aria.State", "goog.asserts", "goog.dom", "goog.dom.NodeType", "goog.dom.TagName", "goog.dom.classes", "goog.events", "goog.events.Event", "goog.events.EventType", "goog.events.KeyCodes", +"goog.fx.Dragger", "goog.math.Rect", "goog.structs", "goog.structs.Map", "goog.style", "goog.ui.ModalPopup", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/dimensionpicker.js", ["goog.ui.DimensionPicker"], ["goog.events.EventType", "goog.events.KeyCodes", "goog.math.Size", "goog.ui.Component", "goog.ui.Control", "goog.ui.DimensionPickerRenderer", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/dimensionpickerrenderer.js", ["goog.ui.DimensionPickerRenderer"], ["goog.a11y.aria", "goog.a11y.aria.State", "goog.dom", "goog.dom.TagName", "goog.i18n.bidi", "goog.style", "goog.ui.ControlRenderer", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/dragdropdetector.js", ["goog.ui.DragDropDetector", "goog.ui.DragDropDetector.EventType", "goog.ui.DragDropDetector.ImageDropEvent", "goog.ui.DragDropDetector.LinkDropEvent"], ["goog.dom", "goog.dom.TagName", "goog.events.Event", "goog.events.EventHandler", "goog.events.EventTarget", "goog.events.EventType", "goog.math.Coordinate", "goog.string", "goog.style", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/drilldownrow.js", ["goog.ui.DrilldownRow"], ["goog.dom", "goog.dom.classes", "goog.ui.Component"]); +goog.addDependency("/closure/goog/ui/editor/abstractdialog.js", ["goog.ui.editor.AbstractDialog", "goog.ui.editor.AbstractDialog.Builder", "goog.ui.editor.AbstractDialog.EventType"], ["goog.dom", "goog.dom.classes", "goog.events.EventTarget", "goog.string", "goog.ui.Dialog"]); +goog.addDependency("/closure/goog/ui/editor/bubble.js", ["goog.ui.editor.Bubble"], ["goog.dom", "goog.dom.TagName", "goog.dom.ViewportSizeMonitor", "goog.dom.classes", "goog.editor.style", "goog.events.EventHandler", "goog.events.EventTarget", "goog.events.EventType", "goog.log", "goog.math.Box", "goog.object", "goog.positioning", "goog.positioning.Corner", "goog.positioning.Overflow", "goog.positioning.OverflowStatus", "goog.string", "goog.style", "goog.ui.Component", "goog.ui.PopupBase", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/editor/defaulttoolbar.js", ["goog.ui.editor.ButtonDescriptor", "goog.ui.editor.DefaultToolbar"], ["goog.dom", "goog.dom.TagName", "goog.dom.classes", "goog.editor.Command", "goog.style", "goog.ui.editor.ToolbarFactory", "goog.ui.editor.messages", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/editor/equationeditordialog.js", ["goog.ui.editor.EquationEditorDialog"], ["goog.editor.Command", "goog.ui.Dialog", "goog.ui.editor.AbstractDialog", "goog.ui.editor.EquationEditorOkEvent", "goog.ui.equation.TexEditor"]); +goog.addDependency("/closure/goog/ui/editor/equationeditorokevent.js", ["goog.ui.editor.EquationEditorOkEvent"], ["goog.events.Event", "goog.ui.editor.AbstractDialog"]); +goog.addDependency("/closure/goog/ui/editor/linkdialog.js", ["goog.ui.editor.LinkDialog", "goog.ui.editor.LinkDialog.BeforeTestLinkEvent", "goog.ui.editor.LinkDialog.EventType", "goog.ui.editor.LinkDialog.OkEvent"], ["goog.dom", "goog.dom.TagName", "goog.editor.BrowserFeature", "goog.editor.Link", "goog.editor.focus", "goog.editor.node", "goog.events.Event", "goog.events.EventHandler", "goog.events.EventType", "goog.events.InputHandler", "goog.string", "goog.style", "goog.ui.Button", "goog.ui.Component", +"goog.ui.LinkButtonRenderer", "goog.ui.editor.AbstractDialog", "goog.ui.editor.TabPane", "goog.ui.editor.messages", "goog.userAgent", "goog.window"]); +goog.addDependency("/closure/goog/ui/editor/messages.js", ["goog.ui.editor.messages"], []); +goog.addDependency("/closure/goog/ui/editor/tabpane.js", ["goog.ui.editor.TabPane"], ["goog.dom.TagName", "goog.dom.classes", "goog.events.EventHandler", "goog.events.EventType", "goog.style", "goog.ui.Component", "goog.ui.Control", "goog.ui.Tab", "goog.ui.TabBar"]); +goog.addDependency("/closure/goog/ui/editor/toolbarcontroller.js", ["goog.ui.editor.ToolbarController"], ["goog.editor.Field", "goog.events.EventHandler", "goog.events.EventTarget", "goog.ui.Component"]); +goog.addDependency("/closure/goog/ui/editor/toolbarfactory.js", ["goog.ui.editor.ToolbarFactory"], ["goog.array", "goog.dom", "goog.dom.TagName", "goog.string", "goog.string.Unicode", "goog.style", "goog.ui.Component", "goog.ui.Container", "goog.ui.Option", "goog.ui.Toolbar", "goog.ui.ToolbarButton", "goog.ui.ToolbarColorMenuButton", "goog.ui.ToolbarMenuButton", "goog.ui.ToolbarRenderer", "goog.ui.ToolbarSelect", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/emoji/emoji.js", ["goog.ui.emoji.Emoji"], []); +goog.addDependency("/closure/goog/ui/emoji/emojipalette.js", ["goog.ui.emoji.EmojiPalette"], ["goog.events.EventType", "goog.net.ImageLoader", "goog.ui.Palette", "goog.ui.emoji.Emoji", "goog.ui.emoji.EmojiPaletteRenderer"]); +goog.addDependency("/closure/goog/ui/emoji/emojipaletterenderer.js", ["goog.ui.emoji.EmojiPaletteRenderer"], ["goog.a11y.aria", "goog.dom.NodeType", "goog.dom.classes", "goog.style", "goog.ui.PaletteRenderer", "goog.ui.emoji.Emoji"]); +goog.addDependency("/closure/goog/ui/emoji/emojipicker.js", ["goog.ui.emoji.EmojiPicker"], ["goog.log", "goog.style", "goog.ui.Component", "goog.ui.TabPane", "goog.ui.emoji.Emoji", "goog.ui.emoji.EmojiPalette", "goog.ui.emoji.EmojiPaletteRenderer", "goog.ui.emoji.ProgressiveEmojiPaletteRenderer"]); +goog.addDependency("/closure/goog/ui/emoji/popupemojipicker.js", ["goog.ui.emoji.PopupEmojiPicker"], ["goog.events.EventType", "goog.positioning.AnchoredPosition", "goog.positioning.Corner", "goog.ui.Component", "goog.ui.Popup", "goog.ui.emoji.EmojiPicker"]); +goog.addDependency("/closure/goog/ui/emoji/progressiveemojipaletterenderer.js", ["goog.ui.emoji.ProgressiveEmojiPaletteRenderer"], ["goog.style", "goog.ui.emoji.EmojiPaletteRenderer"]); +goog.addDependency("/closure/goog/ui/emoji/spriteinfo.js", ["goog.ui.emoji.SpriteInfo"], []); +goog.addDependency("/closure/goog/ui/equation/arrowpalette.js", ["goog.ui.equation.ArrowPalette"], ["goog.math.Size", "goog.ui.equation.Palette"]); +goog.addDependency("/closure/goog/ui/equation/changeevent.js", ["goog.ui.equation.ChangeEvent"], ["goog.events.Event"]); +goog.addDependency("/closure/goog/ui/equation/comparisonpalette.js", ["goog.ui.equation.ComparisonPalette"], ["goog.math.Size", "goog.ui.equation.Palette"]); +goog.addDependency("/closure/goog/ui/equation/editorpane.js", ["goog.ui.equation.EditorPane"], ["goog.style", "goog.ui.Component"]); +goog.addDependency("/closure/goog/ui/equation/equationeditor.js", ["goog.ui.equation.EquationEditor"], ["goog.events", "goog.ui.Component", "goog.ui.TabBar", "goog.ui.equation.ImageRenderer", "goog.ui.equation.TexPane"]); +goog.addDependency("/closure/goog/ui/equation/equationeditordialog.js", ["goog.ui.equation.EquationEditorDialog"], ["goog.dom", "goog.dom.classes", "goog.ui.Dialog", "goog.ui.equation.EquationEditor", "goog.ui.equation.PaletteManager", "goog.ui.equation.TexEditor"]); +goog.addDependency("/closure/goog/ui/equation/greekpalette.js", ["goog.ui.equation.GreekPalette"], ["goog.math.Size", "goog.ui.equation.Palette"]); +goog.addDependency("/closure/goog/ui/equation/imagerenderer.js", ["goog.ui.equation.ImageRenderer"], ["goog.dom.TagName", "goog.dom.classes", "goog.string", "goog.uri.utils"]); +goog.addDependency("/closure/goog/ui/equation/mathpalette.js", ["goog.ui.equation.MathPalette"], ["goog.math.Size", "goog.ui.equation.Palette"]); +goog.addDependency("/closure/goog/ui/equation/menupalette.js", ["goog.ui.equation.MenuPalette", "goog.ui.equation.MenuPaletteRenderer"], ["goog.math.Size", "goog.ui.PaletteRenderer", "goog.ui.equation.Palette", "goog.ui.equation.PaletteRenderer"]); +goog.addDependency("/closure/goog/ui/equation/palette.js", ["goog.ui.equation.Palette", "goog.ui.equation.PaletteEvent", "goog.ui.equation.PaletteRenderer"], ["goog.dom", "goog.dom.TagName", "goog.events.Event", "goog.ui.Palette", "goog.ui.PaletteRenderer"]); +goog.addDependency("/closure/goog/ui/equation/palettemanager.js", ["goog.ui.equation.PaletteManager"], ["goog.Timer", "goog.events.EventHandler", "goog.events.EventTarget", "goog.ui.equation.ArrowPalette", "goog.ui.equation.ComparisonPalette", "goog.ui.equation.GreekPalette", "goog.ui.equation.MathPalette", "goog.ui.equation.MenuPalette", "goog.ui.equation.Palette", "goog.ui.equation.SymbolPalette"]); +goog.addDependency("/closure/goog/ui/equation/symbolpalette.js", ["goog.ui.equation.SymbolPalette"], ["goog.math.Size", "goog.ui.equation.Palette"]); +goog.addDependency("/closure/goog/ui/equation/texeditor.js", ["goog.ui.equation.TexEditor"], ["goog.ui.Component", "goog.ui.equation.ImageRenderer", "goog.ui.equation.TexPane"]); +goog.addDependency("/closure/goog/ui/equation/texpane.js", ["goog.ui.equation.TexPane"], ["goog.Timer", "goog.dom", "goog.dom.TagName", "goog.dom.selection", "goog.events", "goog.events.EventType", "goog.events.InputHandler", "goog.style", "goog.ui.equation.ChangeEvent", "goog.ui.equation.EditorPane", "goog.ui.equation.ImageRenderer", "goog.ui.equation.Palette", "goog.ui.equation.PaletteEvent"]); +goog.addDependency("/closure/goog/ui/filteredmenu.js", ["goog.ui.FilteredMenu"], ["goog.dom", "goog.events", "goog.events.EventType", "goog.events.InputHandler", "goog.events.KeyCodes", "goog.string", "goog.style", "goog.ui.Component", "goog.ui.FilterObservingMenuItem", "goog.ui.Menu", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/filterobservingmenuitem.js", ["goog.ui.FilterObservingMenuItem"], ["goog.ui.FilterObservingMenuItemRenderer", "goog.ui.MenuItem", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/filterobservingmenuitemrenderer.js", ["goog.ui.FilterObservingMenuItemRenderer"], ["goog.ui.MenuItemRenderer"]); +goog.addDependency("/closure/goog/ui/flatbuttonrenderer.js", ["goog.ui.FlatButtonRenderer"], ["goog.a11y.aria.Role", "goog.dom.classes", "goog.ui.Button", "goog.ui.ButtonRenderer", "goog.ui.INLINE_BLOCK_CLASSNAME", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/flatmenubuttonrenderer.js", ["goog.ui.FlatMenuButtonRenderer"], ["goog.a11y.aria", "goog.a11y.aria.State", "goog.asserts", "goog.dom", "goog.string", "goog.style", "goog.ui.Component", "goog.ui.FlatButtonRenderer", "goog.ui.INLINE_BLOCK_CLASSNAME", "goog.ui.Menu", "goog.ui.MenuButton", "goog.ui.MenuRenderer", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/formpost.js", ["goog.ui.FormPost"], ["goog.array", "goog.dom.TagName", "goog.string", "goog.string.StringBuffer", "goog.ui.Component"]); +goog.addDependency("/closure/goog/ui/gauge.js", ["goog.ui.Gauge", "goog.ui.GaugeColoredRange"], ["goog.a11y.aria", "goog.asserts", "goog.events", "goog.fx.Animation", "goog.fx.Transition", "goog.fx.easing", "goog.graphics", "goog.graphics.Font", "goog.graphics.Path", "goog.graphics.SolidFill", "goog.math", "goog.ui.Component", "goog.ui.GaugeTheme"]); +goog.addDependency("/closure/goog/ui/gaugetheme.js", ["goog.ui.GaugeTheme"], ["goog.graphics.LinearGradient", "goog.graphics.SolidFill", "goog.graphics.Stroke"]); +goog.addDependency("/closure/goog/ui/hovercard.js", ["goog.ui.HoverCard", "goog.ui.HoverCard.EventType", "goog.ui.HoverCard.TriggerEvent"], ["goog.array", "goog.dom", "goog.events", "goog.events.Event", "goog.events.EventType", "goog.ui.AdvancedTooltip", "goog.ui.PopupBase", "goog.ui.Tooltip"]); +goog.addDependency("/closure/goog/ui/hsvapalette.js", ["goog.ui.HsvaPalette"], ["goog.array", "goog.color.alpha", "goog.dom", "goog.dom.TagName", "goog.events", "goog.events.EventType", "goog.style", "goog.ui.Component", "goog.ui.HsvPalette"]); +goog.addDependency("/closure/goog/ui/hsvpalette.js", ["goog.ui.HsvPalette"], ["goog.color", "goog.dom.TagName", "goog.events", "goog.events.EventType", "goog.events.InputHandler", "goog.style", "goog.style.bidi", "goog.ui.Component", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/idgenerator.js", ["goog.ui.IdGenerator"], []); +goog.addDependency("/closure/goog/ui/idletimer.js", ["goog.ui.IdleTimer"], ["goog.Timer", "goog.events", "goog.events.EventTarget", "goog.structs.Set", "goog.ui.ActivityMonitor"]); +goog.addDependency("/closure/goog/ui/iframemask.js", ["goog.ui.IframeMask"], ["goog.Disposable", "goog.Timer", "goog.dom", "goog.dom.iframe", "goog.events.EventHandler", "goog.style"]); +goog.addDependency("/closure/goog/ui/imagelessbuttonrenderer.js", ["goog.ui.ImagelessButtonRenderer"], ["goog.dom.classes", "goog.ui.Button", "goog.ui.Component", "goog.ui.CustomButtonRenderer", "goog.ui.INLINE_BLOCK_CLASSNAME", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/imagelessmenubuttonrenderer.js", ["goog.ui.ImagelessMenuButtonRenderer"], ["goog.dom", "goog.dom.TagName", "goog.dom.classes", "goog.ui.INLINE_BLOCK_CLASSNAME", "goog.ui.MenuButton", "goog.ui.MenuButtonRenderer", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/inputdatepicker.js", ["goog.ui.InputDatePicker"], ["goog.date.DateTime", "goog.dom", "goog.string", "goog.ui.Component", "goog.ui.DatePicker", "goog.ui.PopupBase", "goog.ui.PopupDatePicker"]); +goog.addDependency("/closure/goog/ui/itemevent.js", ["goog.ui.ItemEvent"], ["goog.events.Event"]); +goog.addDependency("/closure/goog/ui/keyboardshortcuthandler.js", ["goog.ui.KeyboardShortcutEvent", "goog.ui.KeyboardShortcutHandler", "goog.ui.KeyboardShortcutHandler.EventType"], ["goog.Timer", "goog.events", "goog.events.Event", "goog.events.EventTarget", "goog.events.EventType", "goog.events.KeyCodes", "goog.events.KeyNames", "goog.object", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/labelinput.js", ["goog.ui.LabelInput"], ["goog.Timer", "goog.a11y.aria", "goog.a11y.aria.State", "goog.asserts", "goog.dom", "goog.dom.classlist", "goog.events.EventHandler", "goog.events.EventType", "goog.ui.Component", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/linkbuttonrenderer.js", ["goog.ui.LinkButtonRenderer"], ["goog.ui.Button", "goog.ui.FlatButtonRenderer", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/media/flashobject.js", ["goog.ui.media.FlashObject", "goog.ui.media.FlashObject.ScriptAccessLevel", "goog.ui.media.FlashObject.Wmodes"], ["goog.asserts", "goog.events.Event", "goog.events.EventHandler", "goog.events.EventType", "goog.log", "goog.object", "goog.string", "goog.structs.Map", "goog.style", "goog.ui.Component", "goog.userAgent", "goog.userAgent.flash"]); +goog.addDependency("/closure/goog/ui/media/flickr.js", ["goog.ui.media.FlickrSet", "goog.ui.media.FlickrSetModel"], ["goog.ui.media.FlashObject", "goog.ui.media.Media", "goog.ui.media.MediaModel", "goog.ui.media.MediaRenderer"]); +goog.addDependency("/closure/goog/ui/media/googlevideo.js", ["goog.ui.media.GoogleVideo", "goog.ui.media.GoogleVideoModel"], ["goog.string", "goog.ui.media.FlashObject", "goog.ui.media.Media", "goog.ui.media.MediaModel", "goog.ui.media.MediaRenderer"]); +goog.addDependency("/closure/goog/ui/media/media.js", ["goog.ui.media.Media", "goog.ui.media.MediaRenderer"], ["goog.style", "goog.ui.Component", "goog.ui.Control", "goog.ui.ControlRenderer"]); +goog.addDependency("/closure/goog/ui/media/mediamodel.js", ["goog.ui.media.MediaModel", "goog.ui.media.MediaModel.Category", "goog.ui.media.MediaModel.Credit", "goog.ui.media.MediaModel.Credit.Role", "goog.ui.media.MediaModel.Credit.Scheme", "goog.ui.media.MediaModel.Medium", "goog.ui.media.MediaModel.MimeType", "goog.ui.media.MediaModel.Player", "goog.ui.media.MediaModel.SubTitle", "goog.ui.media.MediaModel.Thumbnail"], ["goog.array"]); +goog.addDependency("/closure/goog/ui/media/mp3.js", ["goog.ui.media.Mp3"], ["goog.string", "goog.ui.media.FlashObject", "goog.ui.media.Media", "goog.ui.media.MediaRenderer"]); +goog.addDependency("/closure/goog/ui/media/photo.js", ["goog.ui.media.Photo"], ["goog.ui.media.Media", "goog.ui.media.MediaRenderer"]); +goog.addDependency("/closure/goog/ui/media/picasa.js", ["goog.ui.media.PicasaAlbum", "goog.ui.media.PicasaAlbumModel"], ["goog.ui.media.FlashObject", "goog.ui.media.Media", "goog.ui.media.MediaModel", "goog.ui.media.MediaRenderer"]); +goog.addDependency("/closure/goog/ui/media/vimeo.js", ["goog.ui.media.Vimeo", "goog.ui.media.VimeoModel"], ["goog.string", "goog.ui.media.FlashObject", "goog.ui.media.Media", "goog.ui.media.MediaModel", "goog.ui.media.MediaRenderer"]); +goog.addDependency("/closure/goog/ui/media/youtube.js", ["goog.ui.media.Youtube", "goog.ui.media.YoutubeModel"], ["goog.string", "goog.ui.Component", "goog.ui.media.FlashObject", "goog.ui.media.Media", "goog.ui.media.MediaModel", "goog.ui.media.MediaRenderer"]); +goog.addDependency("/closure/goog/ui/menu.js", ["goog.ui.Menu", "goog.ui.Menu.EventType"], ["goog.math.Coordinate", "goog.string", "goog.style", "goog.ui.Component.EventType", "goog.ui.Component.State", "goog.ui.Container", "goog.ui.Container.Orientation", "goog.ui.MenuHeader", "goog.ui.MenuItem", "goog.ui.MenuRenderer", "goog.ui.MenuSeparator"]); +goog.addDependency("/closure/goog/ui/menubar.js", ["goog.ui.menuBar"], ["goog.ui.Container", "goog.ui.MenuBarRenderer"]); +goog.addDependency("/closure/goog/ui/menubardecorator.js", ["goog.ui.menuBarDecorator"], ["goog.ui.MenuBarRenderer", "goog.ui.menuBar", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/menubarrenderer.js", ["goog.ui.MenuBarRenderer"], ["goog.a11y.aria.Role", "goog.ui.Container", "goog.ui.ContainerRenderer"]); +goog.addDependency("/closure/goog/ui/menubase.js", ["goog.ui.MenuBase"], ["goog.events.EventHandler", "goog.events.EventType", "goog.events.KeyHandler", "goog.ui.Popup"]); +goog.addDependency("/closure/goog/ui/menubutton.js", ["goog.ui.MenuButton"], ["goog.Timer", "goog.a11y.aria", "goog.a11y.aria.State", "goog.asserts", "goog.dom", "goog.events.EventType", "goog.events.KeyCodes", "goog.events.KeyHandler", "goog.math.Box", "goog.math.Rect", "goog.positioning", "goog.positioning.Corner", "goog.positioning.MenuAnchoredPosition", "goog.positioning.Overflow", "goog.style", "goog.ui.Button", "goog.ui.Component", "goog.ui.Menu", "goog.ui.MenuButtonRenderer", "goog.ui.registry", +"goog.userAgent", "goog.userAgent.product"]); +goog.addDependency("/closure/goog/ui/menubuttonrenderer.js", ["goog.ui.MenuButtonRenderer"], ["goog.a11y.aria", "goog.a11y.aria.State", "goog.asserts", "goog.dom", "goog.string", "goog.style", "goog.ui.Component", "goog.ui.CustomButtonRenderer", "goog.ui.INLINE_BLOCK_CLASSNAME", "goog.ui.Menu", "goog.ui.MenuRenderer", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/menuheader.js", ["goog.ui.MenuHeader"], ["goog.ui.Component", "goog.ui.Control", "goog.ui.MenuHeaderRenderer", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/menuheaderrenderer.js", ["goog.ui.MenuHeaderRenderer"], ["goog.ui.ControlRenderer"]); +goog.addDependency("/closure/goog/ui/menuitem.js", ["goog.ui.MenuItem"], ["goog.array", "goog.dom", "goog.dom.classes", "goog.math.Coordinate", "goog.string", "goog.ui.Component", "goog.ui.Control", "goog.ui.MenuItemRenderer", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/menuitemrenderer.js", ["goog.ui.MenuItemRenderer"], ["goog.a11y.aria", "goog.a11y.aria.Role", "goog.dom", "goog.dom.classes", "goog.ui.Component", "goog.ui.ControlRenderer"]); +goog.addDependency("/closure/goog/ui/menurenderer.js", ["goog.ui.MenuRenderer"], ["goog.a11y.aria", "goog.a11y.aria.Role", "goog.a11y.aria.State", "goog.asserts", "goog.dom", "goog.ui.ContainerRenderer", "goog.ui.Separator"]); +goog.addDependency("/closure/goog/ui/menuseparator.js", ["goog.ui.MenuSeparator"], ["goog.ui.MenuSeparatorRenderer", "goog.ui.Separator", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/menuseparatorrenderer.js", ["goog.ui.MenuSeparatorRenderer"], ["goog.dom", "goog.dom.classes", "goog.ui.ControlContent", "goog.ui.ControlRenderer"]); +goog.addDependency("/closure/goog/ui/mockactivitymonitor.js", ["goog.ui.MockActivityMonitor"], ["goog.events.EventType", "goog.ui.ActivityMonitor"]); +goog.addDependency("/closure/goog/ui/mockactivitymonitor_test.js", ["goog.ui.MockActivityMonitorTest"], ["goog.events", "goog.functions", "goog.testing.jsunit", "goog.testing.recordFunction", "goog.ui.ActivityMonitor", "goog.ui.MockActivityMonitor"]); +goog.addDependency("/closure/goog/ui/modalpopup.js", ["goog.ui.ModalPopup"], ["goog.Timer", "goog.a11y.aria", "goog.a11y.aria.State", "goog.asserts", "goog.dom", "goog.dom.NodeType", "goog.dom.TagName", "goog.dom.classes", "goog.dom.iframe", "goog.events", "goog.events.EventType", "goog.events.FocusHandler", "goog.fx.Transition", "goog.style", "goog.ui.Component", "goog.ui.PopupBase", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/nativebuttonrenderer.js", ["goog.ui.NativeButtonRenderer"], ["goog.dom.classes", "goog.events.EventType", "goog.ui.ButtonRenderer", "goog.ui.Component"]); +goog.addDependency("/closure/goog/ui/offlineinstalldialog.js", ["goog.ui.OfflineInstallDialog", "goog.ui.OfflineInstallDialog.ButtonKeyType", "goog.ui.OfflineInstallDialog.EnableScreen", "goog.ui.OfflineInstallDialog.InstallScreen", "goog.ui.OfflineInstallDialog.InstallingGearsScreen", "goog.ui.OfflineInstallDialog.ScreenType", "goog.ui.OfflineInstallDialog.UpgradeScreen", "goog.ui.OfflineInstallDialogScreen"], ["goog.Disposable", "goog.dom.classes", "goog.gears", "goog.string", "goog.string.StringBuffer", +"goog.ui.Dialog", "goog.window"]); +goog.addDependency("/closure/goog/ui/offlinestatuscard.js", ["goog.ui.OfflineStatusCard", "goog.ui.OfflineStatusCard.EventType"], ["goog.dom", "goog.events.EventType", "goog.gears.StatusType", "goog.structs.Map", "goog.style", "goog.ui.Component", "goog.ui.ProgressBar"]); +goog.addDependency("/closure/goog/ui/offlinestatuscomponent.js", ["goog.ui.OfflineStatusComponent", "goog.ui.OfflineStatusComponent.StatusClassNames"], ["goog.dom.classes", "goog.events.EventType", "goog.gears.StatusType", "goog.positioning.AnchoredPosition", "goog.positioning.Corner", "goog.positioning.Overflow", "goog.ui.Component", "goog.ui.OfflineStatusCard", "goog.ui.Popup"]); +goog.addDependency("/closure/goog/ui/option.js", ["goog.ui.Option"], ["goog.ui.Component", "goog.ui.MenuItem", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/palette.js", ["goog.ui.Palette"], ["goog.array", "goog.dom", "goog.events", "goog.events.EventType", "goog.events.KeyCodes", "goog.math.Size", "goog.ui.Component", "goog.ui.Control", "goog.ui.PaletteRenderer", "goog.ui.SelectionModel"]); +goog.addDependency("/closure/goog/ui/paletterenderer.js", ["goog.ui.PaletteRenderer"], ["goog.a11y.aria", "goog.a11y.aria.Role", "goog.a11y.aria.State", "goog.array", "goog.dom", "goog.dom.NodeIterator", "goog.dom.NodeType", "goog.dom.TagName", "goog.dom.classes", "goog.iter", "goog.style", "goog.ui.ControlRenderer", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/plaintextspellchecker.js", ["goog.ui.PlainTextSpellChecker"], ["goog.Timer", "goog.a11y.aria", "goog.asserts", "goog.dom", "goog.events.EventHandler", "goog.events.EventType", "goog.events.KeyCodes", "goog.events.KeyHandler", "goog.spell.SpellCheck", "goog.style", "goog.ui.AbstractSpellChecker", "goog.ui.Component", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/popup.js", ["goog.ui.Popup", "goog.ui.Popup.AbsolutePosition", "goog.ui.Popup.AnchoredPosition", "goog.ui.Popup.AnchoredViewPortPosition", "goog.ui.Popup.ClientPosition", "goog.ui.Popup.Corner", "goog.ui.Popup.Overflow", "goog.ui.Popup.ViewPortClientPosition", "goog.ui.Popup.ViewPortPosition"], ["goog.math.Box", "goog.positioning.AbsolutePosition", "goog.positioning.AnchoredPosition", "goog.positioning.AnchoredViewportPosition", "goog.positioning.ClientPosition", +"goog.positioning.Corner", "goog.positioning.Overflow", "goog.positioning.ViewportClientPosition", "goog.positioning.ViewportPosition", "goog.style", "goog.ui.PopupBase"]); +goog.addDependency("/closure/goog/ui/popupbase.js", ["goog.ui.PopupBase", "goog.ui.PopupBase.EventType", "goog.ui.PopupBase.Type"], ["goog.Timer", "goog.dom", "goog.events", "goog.events.EventHandler", "goog.events.EventTarget", "goog.events.EventType", "goog.events.KeyCodes", "goog.fx.Transition", "goog.style", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/popupcolorpicker.js", ["goog.ui.PopupColorPicker"], ["goog.dom.classes", "goog.events.EventType", "goog.positioning.AnchoredPosition", "goog.positioning.Corner", "goog.ui.ColorPicker", "goog.ui.Component", "goog.ui.Popup"]); +goog.addDependency("/closure/goog/ui/popupdatepicker.js", ["goog.ui.PopupDatePicker"], ["goog.events.EventType", "goog.positioning.AnchoredPosition", "goog.positioning.Corner", "goog.style", "goog.ui.Component", "goog.ui.DatePicker", "goog.ui.Popup", "goog.ui.PopupBase"]); +goog.addDependency("/closure/goog/ui/popupmenu.js", ["goog.ui.PopupMenu"], ["goog.events.EventType", "goog.positioning.AnchoredViewportPosition", "goog.positioning.Corner", "goog.positioning.MenuAnchoredPosition", "goog.positioning.ViewportClientPosition", "goog.structs", "goog.structs.Map", "goog.style", "goog.ui.Component.EventType", "goog.ui.Menu", "goog.ui.PopupBase", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/progressbar.js", ["goog.ui.ProgressBar", "goog.ui.ProgressBar.Orientation"], ["goog.a11y.aria", "goog.asserts", "goog.dom", "goog.dom.classes", "goog.events", "goog.events.EventType", "goog.ui.Component", "goog.ui.RangeModel", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/prompt.js", ["goog.ui.Prompt"], ["goog.Timer", "goog.dom", "goog.events", "goog.events.EventType", "goog.functions", "goog.ui.Component", "goog.ui.Dialog", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/rangemodel.js", ["goog.ui.RangeModel"], ["goog.events.EventTarget", "goog.ui.Component"]); +goog.addDependency("/closure/goog/ui/ratings.js", ["goog.ui.Ratings", "goog.ui.Ratings.EventType"], ["goog.a11y.aria", "goog.a11y.aria.Role", "goog.a11y.aria.State", "goog.asserts", "goog.dom.classes", "goog.events.EventType", "goog.ui.Component"]); +goog.addDependency("/closure/goog/ui/registry.js", ["goog.ui.registry"], ["goog.dom.classes"]); +goog.addDependency("/closure/goog/ui/richtextspellchecker.js", ["goog.ui.RichTextSpellChecker"], ["goog.Timer", "goog.dom", "goog.dom.NodeType", "goog.events", "goog.events.EventType", "goog.spell.SpellCheck", "goog.string.StringBuffer", "goog.ui.AbstractSpellChecker"]); +goog.addDependency("/closure/goog/ui/roundedpanel.js", ["goog.ui.BaseRoundedPanel", "goog.ui.CssRoundedPanel", "goog.ui.GraphicsRoundedPanel", "goog.ui.RoundedPanel", "goog.ui.RoundedPanel.Corner"], ["goog.dom", "goog.dom.classes", "goog.graphics", "goog.graphics.Path", "goog.graphics.SolidFill", "goog.graphics.Stroke", "goog.math", "goog.math.Coordinate", "goog.style", "goog.ui.Component", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/roundedtabrenderer.js", ["goog.ui.RoundedTabRenderer"], ["goog.dom", "goog.ui.Tab", "goog.ui.TabBar", "goog.ui.TabRenderer", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/scrollfloater.js", ["goog.ui.ScrollFloater", "goog.ui.ScrollFloater.EventType"], ["goog.array", "goog.dom", "goog.dom.classes", "goog.events.EventType", "goog.style", "goog.ui.Component", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/select.js", ["goog.ui.Select"], ["goog.a11y.aria.Role", "goog.events.EventType", "goog.ui.Component", "goog.ui.MenuButton", "goog.ui.MenuItem", "goog.ui.SelectionModel", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/selectionmenubutton.js", ["goog.ui.SelectionMenuButton", "goog.ui.SelectionMenuButton.SelectionState"], ["goog.events.EventType", "goog.style", "goog.ui.Component", "goog.ui.MenuButton", "goog.ui.MenuItem", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/selectionmodel.js", ["goog.ui.SelectionModel"], ["goog.array", "goog.events.EventTarget", "goog.events.EventType"]); +goog.addDependency("/closure/goog/ui/separator.js", ["goog.ui.Separator"], ["goog.a11y.aria", "goog.asserts", "goog.ui.Component", "goog.ui.Control", "goog.ui.MenuSeparatorRenderer", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/serverchart.js", ["goog.ui.ServerChart", "goog.ui.ServerChart.AxisDisplayType", "goog.ui.ServerChart.ChartType", "goog.ui.ServerChart.EncodingType", "goog.ui.ServerChart.Event", "goog.ui.ServerChart.LegendPosition", "goog.ui.ServerChart.MaximumValue", "goog.ui.ServerChart.MultiAxisAlignment", "goog.ui.ServerChart.MultiAxisType", "goog.ui.ServerChart.UriParam", "goog.ui.ServerChart.UriTooLongEvent"], ["goog.Uri", "goog.array", "goog.asserts", "goog.events.Event", +"goog.string", "goog.ui.Component"]); +goog.addDependency("/closure/goog/ui/slider.js", ["goog.ui.Slider", "goog.ui.Slider.Orientation"], ["goog.a11y.aria", "goog.a11y.aria.Role", "goog.dom", "goog.ui.SliderBase"]); +goog.addDependency("/closure/goog/ui/sliderbase.js", ["goog.ui.SliderBase", "goog.ui.SliderBase.AnimationFactory", "goog.ui.SliderBase.Orientation"], ["goog.Timer", "goog.a11y.aria", "goog.a11y.aria.Role", "goog.a11y.aria.State", "goog.array", "goog.asserts", "goog.dom", "goog.dom.classes", "goog.events", "goog.events.EventType", "goog.events.KeyCodes", "goog.events.KeyHandler", "goog.events.MouseWheelHandler", "goog.fx.AnimationParallelQueue", "goog.fx.Dragger", "goog.fx.Transition", "goog.fx.dom.ResizeHeight", +"goog.fx.dom.ResizeWidth", "goog.fx.dom.Slide", "goog.math", "goog.math.Coordinate", "goog.style", "goog.style.bidi", "goog.ui.Component", "goog.ui.RangeModel"]); +goog.addDependency("/closure/goog/ui/splitbehavior.js", ["goog.ui.SplitBehavior", "goog.ui.SplitBehavior.DefaultHandlers"], ["goog.Disposable", "goog.dispose", "goog.dom", "goog.dom.NodeType", "goog.dom.classes", "goog.events.EventHandler", "goog.ui.ButtonSide", "goog.ui.Component", "goog.ui.decorate", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/splitpane.js", ["goog.ui.SplitPane", "goog.ui.SplitPane.Orientation"], ["goog.dom", "goog.dom.classes", "goog.events.EventType", "goog.fx.Dragger", "goog.math.Rect", "goog.math.Size", "goog.style", "goog.ui.Component", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/style/app/buttonrenderer.js", ["goog.ui.style.app.ButtonRenderer"], ["goog.dom.classes", "goog.ui.Button", "goog.ui.CustomButtonRenderer", "goog.ui.INLINE_BLOCK_CLASSNAME", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/style/app/menubuttonrenderer.js", ["goog.ui.style.app.MenuButtonRenderer"], ["goog.a11y.aria.Role", "goog.array", "goog.dom", "goog.style", "goog.ui.Menu", "goog.ui.MenuRenderer", "goog.ui.style.app.ButtonRenderer"]); +goog.addDependency("/closure/goog/ui/style/app/primaryactionbuttonrenderer.js", ["goog.ui.style.app.PrimaryActionButtonRenderer"], ["goog.ui.Button", "goog.ui.registry", "goog.ui.style.app.ButtonRenderer"]); +goog.addDependency("/closure/goog/ui/submenu.js", ["goog.ui.SubMenu"], ["goog.Timer", "goog.dom", "goog.dom.classes", "goog.events.KeyCodes", "goog.positioning.AnchoredViewportPosition", "goog.positioning.Corner", "goog.style", "goog.ui.Component", "goog.ui.Menu", "goog.ui.MenuItem", "goog.ui.SubMenuRenderer", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/submenurenderer.js", ["goog.ui.SubMenuRenderer"], ["goog.a11y.aria", "goog.a11y.aria.State", "goog.asserts", "goog.dom", "goog.dom.classes", "goog.style", "goog.ui.Menu", "goog.ui.MenuItemRenderer"]); +goog.addDependency("/closure/goog/ui/tab.js", ["goog.ui.Tab"], ["goog.ui.Component", "goog.ui.Control", "goog.ui.TabRenderer", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/tabbar.js", ["goog.ui.TabBar", "goog.ui.TabBar.Location"], ["goog.ui.Component.EventType", "goog.ui.Container", "goog.ui.Container.Orientation", "goog.ui.Tab", "goog.ui.TabBarRenderer", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/tabbarrenderer.js", ["goog.ui.TabBarRenderer"], ["goog.a11y.aria.Role", "goog.object", "goog.ui.ContainerRenderer"]); +goog.addDependency("/closure/goog/ui/tablesorter.js", ["goog.ui.TableSorter", "goog.ui.TableSorter.EventType"], ["goog.array", "goog.dom", "goog.dom.TagName", "goog.dom.classes", "goog.events.EventType", "goog.functions", "goog.ui.Component"]); +goog.addDependency("/closure/goog/ui/tabpane.js", ["goog.ui.TabPane", "goog.ui.TabPane.Events", "goog.ui.TabPane.TabLocation", "goog.ui.TabPane.TabPage", "goog.ui.TabPaneEvent"], ["goog.dom", "goog.dom.classes", "goog.events", "goog.events.Event", "goog.events.EventTarget", "goog.events.EventType", "goog.events.KeyCodes", "goog.style"]); +goog.addDependency("/closure/goog/ui/tabrenderer.js", ["goog.ui.TabRenderer"], ["goog.a11y.aria.Role", "goog.ui.Component", "goog.ui.ControlRenderer"]); +goog.addDependency("/closure/goog/ui/textarea.js", ["goog.ui.Textarea", "goog.ui.Textarea.EventType"], ["goog.dom", "goog.events.EventType", "goog.style", "goog.ui.Control", "goog.ui.TextareaRenderer", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/textarearenderer.js", ["goog.ui.TextareaRenderer"], ["goog.dom.TagName", "goog.ui.Component", "goog.ui.ControlRenderer"]); +goog.addDependency("/closure/goog/ui/togglebutton.js", ["goog.ui.ToggleButton"], ["goog.ui.Button", "goog.ui.Component", "goog.ui.CustomButtonRenderer", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/toolbar.js", ["goog.ui.Toolbar"], ["goog.ui.Container", "goog.ui.ToolbarRenderer"]); +goog.addDependency("/closure/goog/ui/toolbarbutton.js", ["goog.ui.ToolbarButton"], ["goog.ui.Button", "goog.ui.ToolbarButtonRenderer", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/toolbarbuttonrenderer.js", ["goog.ui.ToolbarButtonRenderer"], ["goog.ui.CustomButtonRenderer"]); +goog.addDependency("/closure/goog/ui/toolbarcolormenubutton.js", ["goog.ui.ToolbarColorMenuButton"], ["goog.ui.ColorMenuButton", "goog.ui.ToolbarColorMenuButtonRenderer", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/toolbarcolormenubuttonrenderer.js", ["goog.ui.ToolbarColorMenuButtonRenderer"], ["goog.dom.classes", "goog.ui.ColorMenuButtonRenderer", "goog.ui.MenuButtonRenderer", "goog.ui.ToolbarMenuButtonRenderer"]); +goog.addDependency("/closure/goog/ui/toolbarmenubutton.js", ["goog.ui.ToolbarMenuButton"], ["goog.ui.MenuButton", "goog.ui.ToolbarMenuButtonRenderer", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/toolbarmenubuttonrenderer.js", ["goog.ui.ToolbarMenuButtonRenderer"], ["goog.ui.MenuButtonRenderer"]); +goog.addDependency("/closure/goog/ui/toolbarrenderer.js", ["goog.ui.ToolbarRenderer"], ["goog.a11y.aria.Role", "goog.ui.Container", "goog.ui.ContainerRenderer", "goog.ui.Separator", "goog.ui.ToolbarSeparatorRenderer"]); +goog.addDependency("/closure/goog/ui/toolbarselect.js", ["goog.ui.ToolbarSelect"], ["goog.ui.Select", "goog.ui.ToolbarMenuButtonRenderer", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/toolbarseparator.js", ["goog.ui.ToolbarSeparator"], ["goog.ui.Separator", "goog.ui.ToolbarSeparatorRenderer", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/toolbarseparatorrenderer.js", ["goog.ui.ToolbarSeparatorRenderer"], ["goog.dom.classes", "goog.ui.INLINE_BLOCK_CLASSNAME", "goog.ui.MenuSeparatorRenderer"]); +goog.addDependency("/closure/goog/ui/toolbartogglebutton.js", ["goog.ui.ToolbarToggleButton"], ["goog.ui.ToggleButton", "goog.ui.ToolbarButtonRenderer", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/tooltip.js", ["goog.ui.Tooltip", "goog.ui.Tooltip.CursorTooltipPosition", "goog.ui.Tooltip.ElementTooltipPosition", "goog.ui.Tooltip.State"], ["goog.Timer", "goog.array", "goog.dom", "goog.events", "goog.events.EventType", "goog.math.Box", "goog.math.Coordinate", "goog.positioning", "goog.positioning.AnchoredPosition", "goog.positioning.Corner", "goog.positioning.Overflow", "goog.positioning.OverflowStatus", "goog.positioning.ViewportPosition", "goog.structs.Set", +"goog.style", "goog.ui.Popup", "goog.ui.PopupBase"]); +goog.addDependency("/closure/goog/ui/tree/basenode.js", ["goog.ui.tree.BaseNode", "goog.ui.tree.BaseNode.EventType"], ["goog.Timer", "goog.a11y.aria", "goog.asserts", "goog.events.KeyCodes", "goog.string", "goog.string.StringBuffer", "goog.style", "goog.ui.Component", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/tree/treecontrol.js", ["goog.ui.tree.TreeControl"], ["goog.a11y.aria", "goog.asserts", "goog.dom.classes", "goog.events.EventType", "goog.events.FocusHandler", "goog.events.KeyHandler", "goog.log", "goog.ui.tree.BaseNode", "goog.ui.tree.TreeNode", "goog.ui.tree.TypeAhead", "goog.userAgent"]); +goog.addDependency("/closure/goog/ui/tree/treenode.js", ["goog.ui.tree.TreeNode"], ["goog.ui.tree.BaseNode"]); +goog.addDependency("/closure/goog/ui/tree/typeahead.js", ["goog.ui.tree.TypeAhead", "goog.ui.tree.TypeAhead.Offset"], ["goog.array", "goog.events.KeyCodes", "goog.string", "goog.structs.Trie"]); +goog.addDependency("/closure/goog/ui/tristatemenuitem.js", ["goog.ui.TriStateMenuItem", "goog.ui.TriStateMenuItem.State"], ["goog.dom.classes", "goog.ui.Component", "goog.ui.MenuItem", "goog.ui.TriStateMenuItemRenderer", "goog.ui.registry"]); +goog.addDependency("/closure/goog/ui/tristatemenuitemrenderer.js", ["goog.ui.TriStateMenuItemRenderer"], ["goog.dom.classes", "goog.ui.MenuItemRenderer"]); +goog.addDependency("/closure/goog/ui/twothumbslider.js", ["goog.ui.TwoThumbSlider"], ["goog.a11y.aria", "goog.a11y.aria.Role", "goog.dom", "goog.ui.SliderBase"]); +goog.addDependency("/closure/goog/ui/zippy.js", ["goog.ui.Zippy", "goog.ui.Zippy.Events", "goog.ui.ZippyEvent"], ["goog.a11y.aria", "goog.a11y.aria.Role", "goog.a11y.aria.State", "goog.dom", "goog.dom.classes", "goog.events.Event", "goog.events.EventHandler", "goog.events.EventTarget", "goog.events.EventType", "goog.events.KeyCodes", "goog.style"]); +goog.addDependency("/closure/goog/uri/uri.js", ["goog.Uri", "goog.Uri.QueryData"], ["goog.array", "goog.string", "goog.structs", "goog.structs.Map", "goog.uri.utils", "goog.uri.utils.ComponentIndex", "goog.uri.utils.StandardQueryParam"]); +goog.addDependency("/closure/goog/uri/uri_test.js", ["goog.UriTest"], ["goog.Uri", "goog.testing.jsunit"]); +goog.addDependency("/closure/goog/uri/utils.js", ["goog.uri.utils", "goog.uri.utils.ComponentIndex", "goog.uri.utils.QueryArray", "goog.uri.utils.QueryValue", "goog.uri.utils.StandardQueryParam"], ["goog.asserts", "goog.string", "goog.userAgent"]); +goog.addDependency("/closure/goog/useragent/adobereader.js", ["goog.userAgent.adobeReader"], ["goog.string", "goog.userAgent"]); +goog.addDependency("/closure/goog/useragent/flash.js", ["goog.userAgent.flash"], ["goog.string"]); +goog.addDependency("/closure/goog/useragent/iphoto.js", ["goog.userAgent.iphoto"], ["goog.string", "goog.userAgent"]); +goog.addDependency("/closure/goog/useragent/jscript.js", ["goog.userAgent.jscript"], ["goog.string"]); +goog.addDependency("/closure/goog/useragent/picasa.js", ["goog.userAgent.picasa"], ["goog.string", "goog.userAgent"]); +goog.addDependency("/closure/goog/useragent/platform.js", ["goog.userAgent.platform"], ["goog.userAgent"]); +goog.addDependency("/closure/goog/useragent/product.js", ["goog.userAgent.product"], ["goog.userAgent"]); +goog.addDependency("/closure/goog/useragent/product_isversion.js", ["goog.userAgent.product.isVersion"], ["goog.userAgent.product"]); +goog.addDependency("/closure/goog/useragent/useragent.js", ["goog.userAgent"], ["goog.string"]); +goog.addDependency("/closure/goog/vec/float32array.js", ["goog.vec.Float32Array"], []); +goog.addDependency("/closure/goog/vec/float64array.js", ["goog.vec.Float64Array"], []); +goog.addDependency("/closure/goog/vec/mat3.js", ["goog.vec.Mat3"], ["goog.vec"]); +goog.addDependency("/closure/goog/vec/mat3d.js", ["goog.vec.mat3d", "goog.vec.mat3d.Type"], ["goog.vec"]); +goog.addDependency("/closure/goog/vec/mat3f.js", ["goog.vec.mat3f", "goog.vec.mat3f.Type"], ["goog.vec"]); +goog.addDependency("/closure/goog/vec/mat4.js", ["goog.vec.Mat4"], ["goog.vec", "goog.vec.Vec3", "goog.vec.Vec4"]); +goog.addDependency("/closure/goog/vec/mat4d.js", ["goog.vec.mat4d", "goog.vec.mat4d.Type"], ["goog.vec", "goog.vec.vec3d", "goog.vec.vec4d"]); +goog.addDependency("/closure/goog/vec/mat4f.js", ["goog.vec.mat4f", "goog.vec.mat4f.Type"], ["goog.vec", "goog.vec.vec3f", "goog.vec.vec4f"]); +goog.addDependency("/closure/goog/vec/matrix3.js", ["goog.vec.Matrix3"], []); +goog.addDependency("/closure/goog/vec/matrix4.js", ["goog.vec.Matrix4"], ["goog.vec", "goog.vec.Vec3", "goog.vec.Vec4"]); +goog.addDependency("/closure/goog/vec/quaternion.js", ["goog.vec.Quaternion"], ["goog.vec", "goog.vec.Vec3", "goog.vec.Vec4"]); +goog.addDependency("/closure/goog/vec/ray.js", ["goog.vec.Ray"], ["goog.vec.Vec3"]); +goog.addDependency("/closure/goog/vec/vec.js", ["goog.vec", "goog.vec.AnyType", "goog.vec.ArrayType", "goog.vec.Float32", "goog.vec.Float64", "goog.vec.Number"], ["goog.vec.Float32Array", "goog.vec.Float64Array"]); +goog.addDependency("/closure/goog/vec/vec2.js", ["goog.vec.Vec2"], ["goog.vec"]); +goog.addDependency("/closure/goog/vec/vec2d.js", ["goog.vec.vec2d", "goog.vec.vec2d.Type"], ["goog.vec"]); +goog.addDependency("/closure/goog/vec/vec2f.js", ["goog.vec.vec2f", "goog.vec.vec2f.Type"], ["goog.vec"]); +goog.addDependency("/closure/goog/vec/vec3.js", ["goog.vec.Vec3"], ["goog.vec"]); +goog.addDependency("/closure/goog/vec/vec3d.js", ["goog.vec.vec3d", "goog.vec.vec3d.Type"], ["goog.vec"]); +goog.addDependency("/closure/goog/vec/vec3f.js", ["goog.vec.vec3f", "goog.vec.vec3f.Type"], ["goog.vec"]); +goog.addDependency("/closure/goog/vec/vec4.js", ["goog.vec.Vec4"], ["goog.vec"]); +goog.addDependency("/closure/goog/vec/vec4d.js", ["goog.vec.vec4d", "goog.vec.vec4d.Type"], ["goog.vec"]); +goog.addDependency("/closure/goog/vec/vec4f.js", ["goog.vec.vec4f", "goog.vec.vec4f.Type"], ["goog.vec"]); +goog.addDependency("/closure/goog/webgl/webgl.js", ["goog.webgl"], []); +goog.addDependency("/closure/goog/window/window.js", ["goog.window"], ["goog.string", "goog.userAgent"]); +goog.addDependency("/soy/soyutils.js", [], []); +goog.addDependency("/soy/soyutils_usegoog.js", ["soy", "soy.StringBuilder", "soy.esc", "soydata", "soydata.SanitizedHtml", "soydata.SanitizedHtmlAttribute", "soydata.SanitizedJs", "soydata.SanitizedJsStrChars", "soydata.SanitizedUri", "soydata.VERY_UNSAFE"], ["goog.asserts", "goog.dom.DomHelper", "goog.format", "goog.i18n.BidiFormatter", "goog.i18n.bidi", "goog.soy", "goog.soy.data.SanitizedContentKind", "goog.string", "goog.string.StringBuffer"]); +goog.addDependency("/third_party/closure/goog/base.js", [], []); +goog.addDependency("/third_party/closure/goog/caja/string/html/htmlparser.js", ["goog.string.html.HtmlParser", "goog.string.html.HtmlParser.EFlags", "goog.string.html.HtmlParser.Elements", "goog.string.html.HtmlParser.Entities", "goog.string.html.HtmlSaxHandler"], []); +goog.addDependency("/third_party/closure/goog/caja/string/html/htmlsanitizer.js", ["goog.string.html.HtmlSanitizer", "goog.string.html.HtmlSanitizer.AttributeType", "goog.string.html.HtmlSanitizer.Attributes", "goog.string.html.htmlSanitize"], ["goog.string.StringBuffer", "goog.string.html.HtmlParser", "goog.string.html.HtmlParser.EFlags", "goog.string.html.HtmlParser.Elements", "goog.string.html.HtmlSaxHandler"]); +goog.addDependency("/third_party/closure/goog/dojo/dom/query.js", ["goog.dom.query"], ["goog.array", "goog.dom", "goog.functions", "goog.string", "goog.userAgent"]); +goog.addDependency("/third_party/closure/goog/dojo/dom/query_test.js", [], []); +goog.addDependency("/third_party/closure/goog/jpeg_encoder/jpeg_encoder_basic.js", ["goog.crypt.JpegEncoder"], ["goog.crypt.base64"]); +goog.addDependency("/third_party/closure/goog/loremipsum/text/loremipsum.js", ["goog.text.LoremIpsum"], ["goog.array", "goog.math", "goog.string", "goog.structs.Map", "goog.structs.Set"]); +goog.addDependency("/third_party/closure/goog/mochikit/async/deferred.js", ["goog.async.Deferred", "goog.async.Deferred.AlreadyCalledError", "goog.async.Deferred.CanceledError"], ["goog.array", "goog.asserts", "goog.debug.Error", "goog.functions"]); +goog.addDependency("/third_party/closure/goog/mochikit/async/deferredlist.js", ["goog.async.DeferredList"], ["goog.async.Deferred"]); +goog.addDependency("/third_party/closure/goog/osapi/osapi.js", ["goog.osapi"], []); +goog.provide("ol"); +ol.inherits = goog.inherits; +goog.provide("goog.debug.Error"); +goog.debug.Error = function(opt_msg) { + if(Error.captureStackTrace) { + Error.captureStackTrace(this, goog.debug.Error) + }else { + this.stack = (new Error).stack || "" + } + if(opt_msg) { + this.message = String(opt_msg) + } +}; +goog.inherits(goog.debug.Error, Error); +goog.debug.Error.prototype.name = "CustomError"; +goog.provide("goog.string"); +goog.provide("goog.string.Unicode"); +goog.string.Unicode = {NBSP:"\u00a0"}; +goog.string.startsWith = function(str, prefix) { + return str.lastIndexOf(prefix, 0) == 0 +}; +goog.string.endsWith = function(str, suffix) { + var l = str.length - suffix.length; + return l >= 0 && str.indexOf(suffix, l) == l +}; +goog.string.caseInsensitiveStartsWith = function(str, prefix) { + return goog.string.caseInsensitiveCompare(prefix, str.substr(0, prefix.length)) == 0 +}; +goog.string.caseInsensitiveEndsWith = function(str, suffix) { + return goog.string.caseInsensitiveCompare(suffix, str.substr(str.length - suffix.length, suffix.length)) == 0 +}; +goog.string.caseInsensitiveEquals = function(str1, str2) { + return str1.toLowerCase() == str2.toLowerCase() +}; +goog.string.subs = function(str, var_args) { + var splitParts = str.split("%s"); + var returnString = ""; + var subsArguments = Array.prototype.slice.call(arguments, 1); + while(subsArguments.length && splitParts.length > 1) { + returnString += splitParts.shift() + subsArguments.shift() + } + return returnString + splitParts.join("%s") +}; +goog.string.collapseWhitespace = function(str) { + return str.replace(/[\s\xa0]+/g, " ").replace(/^\s+|\s+$/g, "") +}; +goog.string.isEmpty = function(str) { + return/^[\s\xa0]*$/.test(str) +}; +goog.string.isEmptySafe = function(str) { + return goog.string.isEmpty(goog.string.makeSafe(str)) +}; +goog.string.isBreakingWhitespace = function(str) { + return!/[^\t\n\r ]/.test(str) +}; +goog.string.isAlpha = function(str) { + return!/[^a-zA-Z]/.test(str) +}; +goog.string.isNumeric = function(str) { + return!/[^0-9]/.test(str) +}; +goog.string.isAlphaNumeric = function(str) { + return!/[^a-zA-Z0-9]/.test(str) +}; +goog.string.isSpace = function(ch) { + return ch == " " +}; +goog.string.isUnicodeChar = function(ch) { + return ch.length == 1 && ch >= " " && ch <= "~" || ch >= "\u0080" && ch <= "\ufffd" +}; +goog.string.stripNewlines = function(str) { + return str.replace(/(\r\n|\r|\n)+/g, " ") +}; +goog.string.canonicalizeNewlines = function(str) { + return str.replace(/(\r\n|\r|\n)/g, "\n") +}; +goog.string.normalizeWhitespace = function(str) { + return str.replace(/\xa0|\s/g, " ") +}; +goog.string.normalizeSpaces = function(str) { + return str.replace(/\xa0|[ \t]+/g, " ") +}; +goog.string.collapseBreakingSpaces = function(str) { + return str.replace(/[\t\r\n ]+/g, " ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g, "") +}; +goog.string.trim = function(str) { + return str.replace(/^[\s\xa0]+|[\s\xa0]+$/g, "") +}; +goog.string.trimLeft = function(str) { + return str.replace(/^[\s\xa0]+/, "") +}; +goog.string.trimRight = function(str) { + return str.replace(/[\s\xa0]+$/, "") +}; +goog.string.caseInsensitiveCompare = function(str1, str2) { + var test1 = String(str1).toLowerCase(); + var test2 = String(str2).toLowerCase(); + if(test1 < test2) { + return-1 + }else { + if(test1 == test2) { + return 0 + }else { + return 1 + } + } +}; +goog.string.numerateCompareRegExp_ = /(\.\d+)|(\d+)|(\D+)/g; +goog.string.numerateCompare = function(str1, str2) { + if(str1 == str2) { + return 0 + } + if(!str1) { + return-1 + } + if(!str2) { + return 1 + } + var tokens1 = str1.toLowerCase().match(goog.string.numerateCompareRegExp_); + var tokens2 = str2.toLowerCase().match(goog.string.numerateCompareRegExp_); + var count = Math.min(tokens1.length, tokens2.length); + for(var i = 0;i < count;i++) { + var a = tokens1[i]; + var b = tokens2[i]; + if(a != b) { + var num1 = parseInt(a, 10); + if(!isNaN(num1)) { + var num2 = parseInt(b, 10); + if(!isNaN(num2) && num1 - num2) { + return num1 - num2 + } + } + return a < b ? -1 : 1 + } + } + if(tokens1.length != tokens2.length) { + return tokens1.length - tokens2.length + } + return str1 < str2 ? -1 : 1 +}; +goog.string.urlEncode = function(str) { + return encodeURIComponent(String(str)) +}; +goog.string.urlDecode = function(str) { + return decodeURIComponent(str.replace(/\+/g, " ")) +}; +goog.string.newLineToBr = function(str, opt_xml) { + return str.replace(/(\r\n|\r|\n)/g, opt_xml ? "\x3cbr /\x3e" : "\x3cbr\x3e") +}; +goog.string.htmlEscape = function(str, opt_isLikelyToContainHtmlChars) { + if(opt_isLikelyToContainHtmlChars) { + return str.replace(goog.string.amperRe_, "\x26amp;").replace(goog.string.ltRe_, "\x26lt;").replace(goog.string.gtRe_, "\x26gt;").replace(goog.string.quotRe_, "\x26quot;") + }else { + if(!goog.string.allRe_.test(str)) { + return str + } + if(str.indexOf("\x26") != -1) { + str = str.replace(goog.string.amperRe_, "\x26amp;") + } + if(str.indexOf("\x3c") != -1) { + str = str.replace(goog.string.ltRe_, "\x26lt;") + } + if(str.indexOf("\x3e") != -1) { + str = str.replace(goog.string.gtRe_, "\x26gt;") + } + if(str.indexOf('"') != -1) { + str = str.replace(goog.string.quotRe_, "\x26quot;") + } + return str + } +}; +goog.string.amperRe_ = /&/g; +goog.string.ltRe_ = //g; +goog.string.quotRe_ = /\"/g; +goog.string.allRe_ = /[&<>\"]/; +goog.string.unescapeEntities = function(str) { + if(goog.string.contains(str, "\x26")) { + if("document" in goog.global) { + return goog.string.unescapeEntitiesUsingDom_(str) + }else { + return goog.string.unescapePureXmlEntities_(str) + } + } + return str +}; +goog.string.unescapeEntitiesUsingDom_ = function(str) { + var seen = {"\x26amp;":"\x26", "\x26lt;":"\x3c", "\x26gt;":"\x3e", "\x26quot;":'"'}; + var div = document.createElement("div"); + return str.replace(goog.string.HTML_ENTITY_PATTERN_, function(s, entity) { + var value = seen[s]; + if(value) { + return value + } + if(entity.charAt(0) == "#") { + var n = Number("0" + entity.substr(1)); + if(!isNaN(n)) { + value = String.fromCharCode(n) + } + } + if(!value) { + div.innerHTML = s + " "; + value = div.firstChild.nodeValue.slice(0, -1) + } + return seen[s] = value + }) +}; +goog.string.unescapePureXmlEntities_ = function(str) { + return str.replace(/&([^;]+);/g, function(s, entity) { + switch(entity) { + case "amp": + return"\x26"; + case "lt": + return"\x3c"; + case "gt": + return"\x3e"; + case "quot": + return'"'; + default: + if(entity.charAt(0) == "#") { + var n = Number("0" + entity.substr(1)); + if(!isNaN(n)) { + return String.fromCharCode(n) + } + } + return s + } + }) +}; +goog.string.HTML_ENTITY_PATTERN_ = /&([^;\s<&]+);?/g; +goog.string.whitespaceEscape = function(str, opt_xml) { + return goog.string.newLineToBr(str.replace(/ /g, " \x26#160;"), opt_xml) +}; +goog.string.stripQuotes = function(str, quoteChars) { + var length = quoteChars.length; + for(var i = 0;i < length;i++) { + var quoteChar = length == 1 ? quoteChars : quoteChars.charAt(i); + if(str.charAt(0) == quoteChar && str.charAt(str.length - 1) == quoteChar) { + return str.substring(1, str.length - 1) + } + } + return str +}; +goog.string.truncate = function(str, chars, opt_protectEscapedCharacters) { + if(opt_protectEscapedCharacters) { + str = goog.string.unescapeEntities(str) + } + if(str.length > chars) { + str = str.substring(0, chars - 3) + "..." + } + if(opt_protectEscapedCharacters) { + str = goog.string.htmlEscape(str) + } + return str +}; +goog.string.truncateMiddle = function(str, chars, opt_protectEscapedCharacters, opt_trailingChars) { + if(opt_protectEscapedCharacters) { + str = goog.string.unescapeEntities(str) + } + if(opt_trailingChars && str.length > chars) { + if(opt_trailingChars > chars) { + opt_trailingChars = chars + } + var endPoint = str.length - opt_trailingChars; + var startPoint = chars - opt_trailingChars; + str = str.substring(0, startPoint) + "..." + str.substring(endPoint) + }else { + if(str.length > chars) { + var half = Math.floor(chars / 2); + var endPos = str.length - half; + half += chars % 2; + str = str.substring(0, half) + "..." + str.substring(endPos) + } + } + if(opt_protectEscapedCharacters) { + str = goog.string.htmlEscape(str) + } + return str +}; +goog.string.specialEscapeChars_ = {"\x00":"\\0", "\b":"\\b", "\f":"\\f", "\n":"\\n", "\r":"\\r", "\t":"\\t", "\x0B":"\\x0B", '"':'\\"', "\\":"\\\\"}; +goog.string.jsEscapeCache_ = {"'":"\\'"}; +goog.string.quote = function(s) { + s = String(s); + if(s.quote) { + return s.quote() + }else { + var sb = ['"']; + for(var i = 0;i < s.length;i++) { + var ch = s.charAt(i); + var cc = ch.charCodeAt(0); + sb[i + 1] = goog.string.specialEscapeChars_[ch] || (cc > 31 && cc < 127 ? ch : goog.string.escapeChar(ch)) + } + sb.push('"'); + return sb.join("") + } +}; +goog.string.escapeString = function(str) { + var sb = []; + for(var i = 0;i < str.length;i++) { + sb[i] = goog.string.escapeChar(str.charAt(i)) + } + return sb.join("") +}; +goog.string.escapeChar = function(c) { + if(c in goog.string.jsEscapeCache_) { + return goog.string.jsEscapeCache_[c] + } + if(c in goog.string.specialEscapeChars_) { + return goog.string.jsEscapeCache_[c] = goog.string.specialEscapeChars_[c] + } + var rv = c; + var cc = c.charCodeAt(0); + if(cc > 31 && cc < 127) { + rv = c + }else { + if(cc < 256) { + rv = "\\x"; + if(cc < 16 || cc > 256) { + rv += "0" + } + }else { + rv = "\\u"; + if(cc < 4096) { + rv += "0" + } + } + rv += cc.toString(16).toUpperCase() + } + return goog.string.jsEscapeCache_[c] = rv +}; +goog.string.toMap = function(s) { + var rv = {}; + for(var i = 0;i < s.length;i++) { + rv[s.charAt(i)] = true + } + return rv +}; +goog.string.contains = function(s, ss) { + return s.indexOf(ss) != -1 +}; +goog.string.countOf = function(s, ss) { + return s && ss ? s.split(ss).length - 1 : 0 +}; +goog.string.removeAt = function(s, index, stringLength) { + var resultStr = s; + if(index >= 0 && index < s.length && stringLength > 0) { + resultStr = s.substr(0, index) + s.substr(index + stringLength, s.length - index - stringLength) + } + return resultStr +}; +goog.string.remove = function(s, ss) { + var re = new RegExp(goog.string.regExpEscape(ss), ""); + return s.replace(re, "") +}; +goog.string.removeAll = function(s, ss) { + var re = new RegExp(goog.string.regExpEscape(ss), "g"); + return s.replace(re, "") +}; +goog.string.regExpEscape = function(s) { + return String(s).replace(/([-()\[\]{}+?*.$\^|,:# right) { + return 1 + } + } + return 0 +}; +goog.string.HASHCODE_MAX_ = 4294967296; +goog.string.hashCode = function(str) { + var result = 0; + for(var i = 0;i < str.length;++i) { + result = 31 * result + str.charCodeAt(i); + result %= goog.string.HASHCODE_MAX_ + } + return result +}; +goog.string.uniqueStringCounter_ = Math.random() * 2147483648 | 0; +goog.string.createUniqueString = function() { + return"goog_" + goog.string.uniqueStringCounter_++ +}; +goog.string.toNumber = function(str) { + var num = Number(str); + if(num == 0 && goog.string.isEmpty(str)) { + return NaN + } + return num +}; +goog.string.isLowerCamelCase = function(str) { + return/^[a-z]+([A-Z][a-z]*)*$/.test(str) +}; +goog.string.isUpperCamelCase = function(str) { + return/^([A-Z][a-z]*)+$/.test(str) +}; +goog.string.toCamelCase = function(str) { + return String(str).replace(/\-([a-z])/g, function(all, match) { + return match.toUpperCase() + }) +}; +goog.string.toSelectorCase = function(str) { + return String(str).replace(/([A-Z])/g, "-$1").toLowerCase() +}; +goog.string.toTitleCase = function(str, opt_delimiters) { + var delimiters = goog.isString(opt_delimiters) ? goog.string.regExpEscape(opt_delimiters) : "\\s"; + delimiters = delimiters ? "|[" + delimiters + "]+" : ""; + var regexp = new RegExp("(^" + delimiters + ")([a-z])", "g"); + return str.replace(regexp, function(all, p1, p2) { + return p1 + p2.toUpperCase() + }) +}; +goog.string.parseInt = function(value) { + if(isFinite(value)) { + value = String(value) + } + if(goog.isString(value)) { + return/^\s*-?0x/i.test(value) ? parseInt(value, 16) : parseInt(value, 10) + } + return NaN +}; +goog.string.splitLimit = function(str, separator, limit) { + var parts = str.split(separator); + var returnVal = []; + while(limit > 0 && parts.length) { + returnVal.push(parts.shift()); + limit-- + } + if(parts.length) { + returnVal.push(parts.join(separator)) + } + return returnVal +}; +goog.provide("goog.asserts"); +goog.provide("goog.asserts.AssertionError"); +goog.require("goog.debug.Error"); +goog.require("goog.string"); +goog.define("goog.asserts.ENABLE_ASSERTS", goog.DEBUG); +goog.asserts.AssertionError = function(messagePattern, messageArgs) { + messageArgs.unshift(messagePattern); + goog.debug.Error.call(this, goog.string.subs.apply(null, messageArgs)); + messageArgs.shift(); + this.messagePattern = messagePattern +}; +goog.inherits(goog.asserts.AssertionError, goog.debug.Error); +goog.asserts.AssertionError.prototype.name = "AssertionError"; +goog.asserts.doAssertFailure_ = function(defaultMessage, defaultArgs, givenMessage, givenArgs) { + var message = "Assertion failed"; + if(givenMessage) { + message += ": " + givenMessage; + var args = givenArgs + }else { + if(defaultMessage) { + message += ": " + defaultMessage; + args = defaultArgs + } + } + throw new goog.asserts.AssertionError("" + message, args || []); +}; +goog.asserts.assert = function(condition, opt_message, var_args) { + if(goog.asserts.ENABLE_ASSERTS && !condition) { + goog.asserts.doAssertFailure_("", null, opt_message, Array.prototype.slice.call(arguments, 2)) + } + return condition +}; +goog.asserts.fail = function(opt_message, var_args) { + if(goog.asserts.ENABLE_ASSERTS) { + throw new goog.asserts.AssertionError("Failure" + (opt_message ? ": " + opt_message : ""), Array.prototype.slice.call(arguments, 1)); + } +}; +goog.asserts.assertNumber = function(value, opt_message, var_args) { + if(goog.asserts.ENABLE_ASSERTS && !goog.isNumber(value)) { + goog.asserts.doAssertFailure_("Expected number but got %s: %s.", [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2)) + } + return(value) +}; +goog.asserts.assertString = function(value, opt_message, var_args) { + if(goog.asserts.ENABLE_ASSERTS && !goog.isString(value)) { + goog.asserts.doAssertFailure_("Expected string but got %s: %s.", [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2)) + } + return(value) +}; +goog.asserts.assertFunction = function(value, opt_message, var_args) { + if(goog.asserts.ENABLE_ASSERTS && !goog.isFunction(value)) { + goog.asserts.doAssertFailure_("Expected function but got %s: %s.", [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2)) + } + return(value) +}; +goog.asserts.assertObject = function(value, opt_message, var_args) { + if(goog.asserts.ENABLE_ASSERTS && !goog.isObject(value)) { + goog.asserts.doAssertFailure_("Expected object but got %s: %s.", [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2)) + } + return(value) +}; +goog.asserts.assertArray = function(value, opt_message, var_args) { + if(goog.asserts.ENABLE_ASSERTS && !goog.isArray(value)) { + goog.asserts.doAssertFailure_("Expected array but got %s: %s.", [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2)) + } + return(value) +}; +goog.asserts.assertBoolean = function(value, opt_message, var_args) { + if(goog.asserts.ENABLE_ASSERTS && !goog.isBoolean(value)) { + goog.asserts.doAssertFailure_("Expected boolean but got %s: %s.", [goog.typeOf(value), value], opt_message, Array.prototype.slice.call(arguments, 2)) + } + return(value) +}; +goog.asserts.assertInstanceof = function(value, type, opt_message, var_args) { + if(goog.asserts.ENABLE_ASSERTS && !(value instanceof type)) { + goog.asserts.doAssertFailure_("instanceof check failed.", null, opt_message, Array.prototype.slice.call(arguments, 3)) + } + return value +}; +goog.asserts.assertObjectPrototypeIsIntact = function() { + for(var key in Object.prototype) { + goog.asserts.fail(key + " should not be enumerable in Object.prototype.") + } +}; +goog.provide("ol.Size"); +goog.provide("ol.size"); +ol.Size; +ol.size.equals = function(a, b) { + return a[0] == b[0] && a[1] == b[1] +}; +goog.provide("goog.array"); +goog.provide("goog.array.ArrayLike"); +goog.require("goog.asserts"); +goog.define("goog.NATIVE_ARRAY_PROTOTYPES", goog.TRUSTED_SITE); +goog.array.ArrayLike; +goog.array.peek = function(array) { + return array[array.length - 1] +}; +goog.array.ARRAY_PROTOTYPE_ = Array.prototype; +goog.array.indexOf = goog.NATIVE_ARRAY_PROTOTYPES && goog.array.ARRAY_PROTOTYPE_.indexOf ? function(arr, obj, opt_fromIndex) { + goog.asserts.assert(arr.length != null); + return goog.array.ARRAY_PROTOTYPE_.indexOf.call(arr, obj, opt_fromIndex) +} : function(arr, obj, opt_fromIndex) { + var fromIndex = opt_fromIndex == null ? 0 : opt_fromIndex < 0 ? Math.max(0, arr.length + opt_fromIndex) : opt_fromIndex; + if(goog.isString(arr)) { + if(!goog.isString(obj) || obj.length != 1) { + return-1 + } + return arr.indexOf(obj, fromIndex) + } + for(var i = fromIndex;i < arr.length;i++) { + if(i in arr && arr[i] === obj) { + return i + } + } + return-1 +}; +goog.array.lastIndexOf = goog.NATIVE_ARRAY_PROTOTYPES && goog.array.ARRAY_PROTOTYPE_.lastIndexOf ? function(arr, obj, opt_fromIndex) { + goog.asserts.assert(arr.length != null); + var fromIndex = opt_fromIndex == null ? arr.length - 1 : opt_fromIndex; + return goog.array.ARRAY_PROTOTYPE_.lastIndexOf.call(arr, obj, fromIndex) +} : function(arr, obj, opt_fromIndex) { + var fromIndex = opt_fromIndex == null ? arr.length - 1 : opt_fromIndex; + if(fromIndex < 0) { + fromIndex = Math.max(0, arr.length + fromIndex) + } + if(goog.isString(arr)) { + if(!goog.isString(obj) || obj.length != 1) { + return-1 + } + return arr.lastIndexOf(obj, fromIndex) + } + for(var i = fromIndex;i >= 0;i--) { + if(i in arr && arr[i] === obj) { + return i + } + } + return-1 +}; +goog.array.forEach = goog.NATIVE_ARRAY_PROTOTYPES && goog.array.ARRAY_PROTOTYPE_.forEach ? function(arr, f, opt_obj) { + goog.asserts.assert(arr.length != null); + goog.array.ARRAY_PROTOTYPE_.forEach.call(arr, f, opt_obj) +} : function(arr, f, opt_obj) { + var l = arr.length; + var arr2 = goog.isString(arr) ? arr.split("") : arr; + for(var i = 0;i < l;i++) { + if(i in arr2) { + f.call(opt_obj, arr2[i], i, arr) + } + } +}; +goog.array.forEachRight = function(arr, f, opt_obj) { + var l = arr.length; + var arr2 = goog.isString(arr) ? arr.split("") : arr; + for(var i = l - 1;i >= 0;--i) { + if(i in arr2) { + f.call(opt_obj, arr2[i], i, arr) + } + } +}; +goog.array.filter = goog.NATIVE_ARRAY_PROTOTYPES && goog.array.ARRAY_PROTOTYPE_.filter ? function(arr, f, opt_obj) { + goog.asserts.assert(arr.length != null); + return goog.array.ARRAY_PROTOTYPE_.filter.call(arr, f, opt_obj) +} : function(arr, f, opt_obj) { + var l = arr.length; + var res = []; + var resLength = 0; + var arr2 = goog.isString(arr) ? arr.split("") : arr; + for(var i = 0;i < l;i++) { + if(i in arr2) { + var val = arr2[i]; + if(f.call(opt_obj, val, i, arr)) { + res[resLength++] = val + } + } + } + return res +}; +goog.array.map = goog.NATIVE_ARRAY_PROTOTYPES && goog.array.ARRAY_PROTOTYPE_.map ? function(arr, f, opt_obj) { + goog.asserts.assert(arr.length != null); + return goog.array.ARRAY_PROTOTYPE_.map.call(arr, f, opt_obj) +} : function(arr, f, opt_obj) { + var l = arr.length; + var res = new Array(l); + var arr2 = goog.isString(arr) ? arr.split("") : arr; + for(var i = 0;i < l;i++) { + if(i in arr2) { + res[i] = f.call(opt_obj, arr2[i], i, arr) + } + } + return res +}; +goog.array.reduce = function(arr, f, val, opt_obj) { + if(arr.reduce) { + if(opt_obj) { + return arr.reduce(goog.bind(f, opt_obj), val) + }else { + return arr.reduce(f, val) + } + } + var rval = val; + goog.array.forEach(arr, function(val, index) { + rval = f.call(opt_obj, rval, val, index, arr) + }); + return rval +}; +goog.array.reduceRight = function(arr, f, val, opt_obj) { + if(arr.reduceRight) { + if(opt_obj) { + return arr.reduceRight(goog.bind(f, opt_obj), val) + }else { + return arr.reduceRight(f, val) + } + } + var rval = val; + goog.array.forEachRight(arr, function(val, index) { + rval = f.call(opt_obj, rval, val, index, arr) + }); + return rval +}; +goog.array.some = goog.NATIVE_ARRAY_PROTOTYPES && goog.array.ARRAY_PROTOTYPE_.some ? function(arr, f, opt_obj) { + goog.asserts.assert(arr.length != null); + return goog.array.ARRAY_PROTOTYPE_.some.call(arr, f, opt_obj) +} : function(arr, f, opt_obj) { + var l = arr.length; + var arr2 = goog.isString(arr) ? arr.split("") : arr; + for(var i = 0;i < l;i++) { + if(i in arr2 && f.call(opt_obj, arr2[i], i, arr)) { + return true + } + } + return false +}; +goog.array.every = goog.NATIVE_ARRAY_PROTOTYPES && goog.array.ARRAY_PROTOTYPE_.every ? function(arr, f, opt_obj) { + goog.asserts.assert(arr.length != null); + return goog.array.ARRAY_PROTOTYPE_.every.call(arr, f, opt_obj) +} : function(arr, f, opt_obj) { + var l = arr.length; + var arr2 = goog.isString(arr) ? arr.split("") : arr; + for(var i = 0;i < l;i++) { + if(i in arr2 && !f.call(opt_obj, arr2[i], i, arr)) { + return false + } + } + return true +}; +goog.array.count = function(arr, f, opt_obj) { + var count = 0; + goog.array.forEach(arr, function(element, index, arr) { + if(f.call(opt_obj, element, index, arr)) { + ++count + } + }, opt_obj); + return count +}; +goog.array.find = function(arr, f, opt_obj) { + var i = goog.array.findIndex(arr, f, opt_obj); + return i < 0 ? null : goog.isString(arr) ? arr.charAt(i) : arr[i] +}; +goog.array.findIndex = function(arr, f, opt_obj) { + var l = arr.length; + var arr2 = goog.isString(arr) ? arr.split("") : arr; + for(var i = 0;i < l;i++) { + if(i in arr2 && f.call(opt_obj, arr2[i], i, arr)) { + return i + } + } + return-1 +}; +goog.array.findRight = function(arr, f, opt_obj) { + var i = goog.array.findIndexRight(arr, f, opt_obj); + return i < 0 ? null : goog.isString(arr) ? arr.charAt(i) : arr[i] +}; +goog.array.findIndexRight = function(arr, f, opt_obj) { + var l = arr.length; + var arr2 = goog.isString(arr) ? arr.split("") : arr; + for(var i = l - 1;i >= 0;i--) { + if(i in arr2 && f.call(opt_obj, arr2[i], i, arr)) { + return i + } + } + return-1 +}; +goog.array.contains = function(arr, obj) { + return goog.array.indexOf(arr, obj) >= 0 +}; +goog.array.isEmpty = function(arr) { + return arr.length == 0 +}; +goog.array.clear = function(arr) { + if(!goog.isArray(arr)) { + for(var i = arr.length - 1;i >= 0;i--) { + delete arr[i] + } + } + arr.length = 0 +}; +goog.array.insert = function(arr, obj) { + if(!goog.array.contains(arr, obj)) { + arr.push(obj) + } +}; +goog.array.insertAt = function(arr, obj, opt_i) { + goog.array.splice(arr, opt_i, 0, obj) +}; +goog.array.insertArrayAt = function(arr, elementsToAdd, opt_i) { + goog.partial(goog.array.splice, arr, opt_i, 0).apply(null, elementsToAdd) +}; +goog.array.insertBefore = function(arr, obj, opt_obj2) { + var i; + if(arguments.length == 2 || (i = goog.array.indexOf(arr, opt_obj2)) < 0) { + arr.push(obj) + }else { + goog.array.insertAt(arr, obj, i) + } +}; +goog.array.remove = function(arr, obj) { + var i = goog.array.indexOf(arr, obj); + var rv; + if(rv = i >= 0) { + goog.array.removeAt(arr, i) + } + return rv +}; +goog.array.removeAt = function(arr, i) { + goog.asserts.assert(arr.length != null); + return goog.array.ARRAY_PROTOTYPE_.splice.call(arr, i, 1).length == 1 +}; +goog.array.removeIf = function(arr, f, opt_obj) { + var i = goog.array.findIndex(arr, f, opt_obj); + if(i >= 0) { + goog.array.removeAt(arr, i); + return true + } + return false +}; +goog.array.concat = function(var_args) { + return goog.array.ARRAY_PROTOTYPE_.concat.apply(goog.array.ARRAY_PROTOTYPE_, arguments) +}; +goog.array.toArray = function(object) { + var length = object.length; + if(length > 0) { + var rv = new Array(length); + for(var i = 0;i < length;i++) { + rv[i] = object[i] + } + return rv + } + return[] +}; +goog.array.clone = goog.array.toArray; +goog.array.extend = function(arr1, var_args) { + for(var i = 1;i < arguments.length;i++) { + var arr2 = arguments[i]; + var isArrayLike; + if(goog.isArray(arr2) || (isArrayLike = goog.isArrayLike(arr2)) && Object.prototype.hasOwnProperty.call(arr2, "callee")) { + arr1.push.apply(arr1, arr2) + }else { + if(isArrayLike) { + var len1 = arr1.length; + var len2 = arr2.length; + for(var j = 0;j < len2;j++) { + arr1[len1 + j] = arr2[j] + } + }else { + arr1.push(arr2) + } + } + } +}; +goog.array.splice = function(arr, index, howMany, var_args) { + goog.asserts.assert(arr.length != null); + return goog.array.ARRAY_PROTOTYPE_.splice.apply(arr, goog.array.slice(arguments, 1)) +}; +goog.array.slice = function(arr, start, opt_end) { + goog.asserts.assert(arr.length != null); + if(arguments.length <= 2) { + return goog.array.ARRAY_PROTOTYPE_.slice.call(arr, start) + }else { + return goog.array.ARRAY_PROTOTYPE_.slice.call(arr, start, opt_end) + } +}; +goog.array.removeDuplicates = function(arr, opt_rv) { + var returnArray = opt_rv || arr; + var seen = {}, cursorInsert = 0, cursorRead = 0; + while(cursorRead < arr.length) { + var current = arr[cursorRead++]; + var key = goog.isObject(current) ? "o" + goog.getUid(current) : (typeof current).charAt(0) + current; + if(!Object.prototype.hasOwnProperty.call(seen, key)) { + seen[key] = true; + returnArray[cursorInsert++] = current + } + } + returnArray.length = cursorInsert +}; +goog.array.binarySearch = function(arr, target, opt_compareFn) { + return goog.array.binarySearch_(arr, opt_compareFn || goog.array.defaultCompare, false, target) +}; +goog.array.binarySelect = function(arr, evaluator, opt_obj) { + return goog.array.binarySearch_(arr, evaluator, true, undefined, opt_obj) +}; +goog.array.binarySearch_ = function(arr, compareFn, isEvaluator, opt_target, opt_selfObj) { + var left = 0; + var right = arr.length; + var found; + while(left < right) { + var middle = left + right >> 1; + var compareResult; + if(isEvaluator) { + compareResult = compareFn.call(opt_selfObj, arr[middle], middle, arr) + }else { + compareResult = compareFn(opt_target, arr[middle]) + } + if(compareResult > 0) { + left = middle + 1 + }else { + right = middle; + found = !compareResult + } + } + return found ? left : ~left +}; +goog.array.sort = function(arr, opt_compareFn) { + goog.asserts.assert(arr.length != null); + goog.array.ARRAY_PROTOTYPE_.sort.call(arr, opt_compareFn || goog.array.defaultCompare) +}; +goog.array.stableSort = function(arr, opt_compareFn) { + for(var i = 0;i < arr.length;i++) { + arr[i] = {index:i, value:arr[i]} + } + var valueCompareFn = opt_compareFn || goog.array.defaultCompare; + function stableCompareFn(obj1, obj2) { + return valueCompareFn(obj1.value, obj2.value) || obj1.index - obj2.index + } + goog.array.sort(arr, stableCompareFn); + for(var i = 0;i < arr.length;i++) { + arr[i] = arr[i].value + } +}; +goog.array.sortObjectsByKey = function(arr, key, opt_compareFn) { + var compare = opt_compareFn || goog.array.defaultCompare; + goog.array.sort(arr, function(a, b) { + return compare(a[key], b[key]) + }) +}; +goog.array.isSorted = function(arr, opt_compareFn, opt_strict) { + var compare = opt_compareFn || goog.array.defaultCompare; + for(var i = 1;i < arr.length;i++) { + var compareResult = compare(arr[i - 1], arr[i]); + if(compareResult > 0 || compareResult == 0 && opt_strict) { + return false + } + } + return true +}; +goog.array.equals = function(arr1, arr2, opt_equalsFn) { + if(!goog.isArrayLike(arr1) || !goog.isArrayLike(arr2) || arr1.length != arr2.length) { + return false + } + var l = arr1.length; + var equalsFn = opt_equalsFn || goog.array.defaultCompareEquality; + for(var i = 0;i < l;i++) { + if(!equalsFn(arr1[i], arr2[i])) { + return false + } + } + return true +}; +goog.array.compare = function(arr1, arr2, opt_equalsFn) { + return goog.array.equals(arr1, arr2, opt_equalsFn) +}; +goog.array.compare3 = function(arr1, arr2, opt_compareFn) { + var compare = opt_compareFn || goog.array.defaultCompare; + var l = Math.min(arr1.length, arr2.length); + for(var i = 0;i < l;i++) { + var result = compare(arr1[i], arr2[i]); + if(result != 0) { + return result + } + } + return goog.array.defaultCompare(arr1.length, arr2.length) +}; +goog.array.defaultCompare = function(a, b) { + return a > b ? 1 : a < b ? -1 : 0 +}; +goog.array.defaultCompareEquality = function(a, b) { + return a === b +}; +goog.array.binaryInsert = function(array, value, opt_compareFn) { + var index = goog.array.binarySearch(array, value, opt_compareFn); + if(index < 0) { + goog.array.insertAt(array, value, -(index + 1)); + return true + } + return false +}; +goog.array.binaryRemove = function(array, value, opt_compareFn) { + var index = goog.array.binarySearch(array, value, opt_compareFn); + return index >= 0 ? goog.array.removeAt(array, index) : false +}; +goog.array.bucket = function(array, sorter, opt_obj) { + var buckets = {}; + for(var i = 0;i < array.length;i++) { + var value = array[i]; + var key = sorter.call(opt_obj, value, i, array); + if(goog.isDef(key)) { + var bucket = buckets[key] || (buckets[key] = []); + bucket.push(value) + } + } + return buckets +}; +goog.array.toObject = function(arr, keyFunc, opt_obj) { + var ret = {}; + goog.array.forEach(arr, function(element, index) { + ret[keyFunc.call(opt_obj, element, index, arr)] = element + }); + return ret +}; +goog.array.range = function(startOrEnd, opt_end, opt_step) { + var array = []; + var start = 0; + var end = startOrEnd; + var step = opt_step || 1; + if(opt_end !== undefined) { + start = startOrEnd; + end = opt_end + } + if(step * (end - start) < 0) { + return[] + } + if(step > 0) { + for(var i = start;i < end;i += step) { + array.push(i) + } + }else { + for(var i = start;i > end;i += step) { + array.push(i) + } + } + return array +}; +goog.array.repeat = function(value, n) { + var array = []; + for(var i = 0;i < n;i++) { + array[i] = value + } + return array +}; +goog.array.flatten = function(var_args) { + var result = []; + for(var i = 0;i < arguments.length;i++) { + var element = arguments[i]; + if(goog.isArray(element)) { + result.push.apply(result, goog.array.flatten.apply(null, element)) + }else { + result.push(element) + } + } + return result +}; +goog.array.rotate = function(array, n) { + goog.asserts.assert(array.length != null); + if(array.length) { + n %= array.length; + if(n > 0) { + goog.array.ARRAY_PROTOTYPE_.unshift.apply(array, array.splice(-n, n)) + }else { + if(n < 0) { + goog.array.ARRAY_PROTOTYPE_.push.apply(array, array.splice(0, -n)) + } + } + } + return array +}; +goog.array.moveItem = function(arr, fromIndex, toIndex) { + goog.asserts.assert(fromIndex >= 0 && fromIndex < arr.length); + goog.asserts.assert(toIndex >= 0 && toIndex < arr.length); + var removedItems = goog.array.ARRAY_PROTOTYPE_.splice.call(arr, fromIndex, 1); + goog.array.ARRAY_PROTOTYPE_.splice.call(arr, toIndex, 0, removedItems[0]) +}; +goog.array.zip = function(var_args) { + if(!arguments.length) { + return[] + } + var result = []; + for(var i = 0;true;i++) { + var value = []; + for(var j = 0;j < arguments.length;j++) { + var arr = arguments[j]; + if(i >= arr.length) { + return result + } + value.push(arr[i]) + } + result.push(value) + } +}; +goog.array.shuffle = function(arr, opt_randFn) { + var randFn = opt_randFn || Math.random; + for(var i = arr.length - 1;i > 0;i--) { + var j = Math.floor(randFn() * (i + 1)); + var tmp = arr[i]; + arr[i] = arr[j]; + arr[j] = tmp + } +}; +goog.provide("ol.TileCoord"); +goog.require("goog.array"); +ol.QuadKeyCharCode = {ZERO:"0".charCodeAt(0), ONE:"1".charCodeAt(0), TWO:"2".charCodeAt(0), THREE:"3".charCodeAt(0)}; +ol.TileCoord = function(z, x, y) { + this.z = z; + this.x = x; + this.y = y +}; +ol.TileCoord.createFromQuadKey = function(quadKey) { + var z = quadKey.length, x = 0, y = 0; + var mask = 1 << z - 1; + var i; + for(i = 0;i < z;++i) { + switch(quadKey.charCodeAt(i)) { + case ol.QuadKeyCharCode.ONE: + x += mask; + break; + case ol.QuadKeyCharCode.TWO: + y += mask; + break; + case ol.QuadKeyCharCode.THREE: + x += mask; + y += mask; + break + } + mask >>= 1 + } + return new ol.TileCoord(z, x, y) +}; +ol.TileCoord.createFromString = function(str) { + var v = str.split("/"); + v = goog.array.map(v, function(e, i, a) { + return parseInt(e, 10) + }); + return new ol.TileCoord(v[0], v[1], v[2]) +}; +ol.TileCoord.createOrUpdate = function(z, x, y, tileCoord) { + if(goog.isDef(tileCoord)) { + tileCoord.z = z; + tileCoord.x = x; + tileCoord.y = y; + return tileCoord + }else { + return new ol.TileCoord(z, x, y) + } +}; +ol.TileCoord.getKeyZXY = function(z, x, y) { + return[z, x, y].join("/") +}; +ol.TileCoord.prototype.hash = function() { + return(this.x << this.z) + this.y +}; +ol.TileCoord.prototype.quadKey = function() { + var digits = new Array(this.z); + var mask = 1 << this.z - 1; + var i, charCode; + for(i = 0;i < this.z;++i) { + charCode = ol.QuadKeyCharCode.ZERO; + if(this.x & mask) { + charCode += 1 + } + if(this.y & mask) { + charCode += 2 + } + digits[i] = String.fromCharCode(charCode); + mask >>= 1 + } + return digits.join("") +}; +ol.TileCoord.prototype.toString = function() { + return ol.TileCoord.getKeyZXY(this.z, this.x, this.y) +}; +goog.provide("ol.TileRange"); +goog.require("goog.asserts"); +goog.require("ol.Size"); +goog.require("ol.TileCoord"); +ol.TileRange = function(minX, maxX, minY, maxY) { + this.minX = minX; + this.maxX = maxX; + this.minY = minY; + this.maxY = maxY +}; +ol.TileRange.boundingTileRange = function(var_args) { + var tileCoord0 = arguments[0]; + var tileRange = new ol.TileRange(tileCoord0.x, tileCoord0.x, tileCoord0.y, tileCoord0.y); + var i, ii, tileCoord; + for(i = 1, ii = arguments.length;i < ii;++i) { + tileCoord = arguments[i]; + goog.asserts.assert(tileCoord.z == tileCoord0.z); + tileRange.minX = Math.min(tileRange.minX, tileCoord.x); + tileRange.maxX = Math.max(tileRange.maxX, tileCoord.x); + tileRange.minY = Math.min(tileRange.minY, tileCoord.y); + tileRange.maxY = Math.max(tileRange.maxY, tileCoord.y) + } + return tileRange +}; +ol.TileRange.createOrUpdate = function(minX, maxX, minY, maxY, tileRange) { + if(goog.isDef(tileRange)) { + tileRange.minX = minX; + tileRange.maxX = maxX; + tileRange.minY = minY; + tileRange.maxY = maxY; + return tileRange + }else { + return new ol.TileRange(minX, maxX, minY, maxY) + } +}; +ol.TileRange.prototype.contains = function(tileCoord) { + return this.minX <= tileCoord.x && tileCoord.x <= this.maxX && this.minY <= tileCoord.y && tileCoord.y <= this.maxY +}; +ol.TileRange.prototype.containsTileRange = function(tileRange) { + return this.minX <= tileRange.minX && tileRange.maxX <= this.maxX && this.minY <= tileRange.minY && tileRange.maxY <= this.maxY +}; +ol.TileRange.prototype.equals = function(tileRange) { + return this.minX == tileRange.minX && this.minY == tileRange.minY && this.maxX == tileRange.maxX && this.maxY == tileRange.maxY +}; +ol.TileRange.prototype.extend = function(tileRange) { + if(tileRange.minX < this.minX) { + this.minX = tileRange.minX + } + if(tileRange.maxX > this.maxX) { + this.maxX = tileRange.maxX + } + if(tileRange.minY < this.minY) { + this.minY = tileRange.minY + } + if(tileRange.maxY > this.maxY) { + this.maxY = tileRange.maxY + } +}; +ol.TileRange.prototype.getHeight = function() { + return this.maxY - this.minY + 1 +}; +ol.TileRange.prototype.getSize = function() { + return[this.getWidth(), this.getHeight()] +}; +ol.TileRange.prototype.getWidth = function() { + return this.maxX - this.minX + 1 +}; +ol.TileRange.prototype.intersects = function(tileRange) { + return this.minX <= tileRange.maxX && this.maxX >= tileRange.minX && this.minY <= tileRange.maxY && this.maxY >= tileRange.minY +}; +goog.provide("ol.Attribution"); +goog.require("ol.TileRange"); +ol.Attribution = function(options) { + this.html_ = options.html; + this.tileRanges_ = goog.isDef(options.tileRanges) ? options.tileRanges : null +}; +ol.Attribution.prototype.getHTML = function() { + return this.html_ +}; +ol.Attribution.prototype.intersectsAnyTileRange = function(tileRanges) { + if(goog.isNull(this.tileRanges_)) { + return true + } + var i, ii, tileRange, z; + for(z in tileRanges) { + if(!(z in this.tileRanges_)) { + continue + } + tileRange = tileRanges[z]; + for(i = 0, ii = this.tileRanges_[z].length;i < ii;++i) { + if(this.tileRanges_[z][i].intersects(tileRange)) { + return true + } + } + } + return false +}; +goog.provide("ol.BrowserFeature"); +ol.ASSUME_TOUCH = false; +ol.BrowserFeature = {HAS_TOUCH:ol.ASSUME_TOUCH || goog.global.document && "ontouchstart" in goog.global.document.documentElement || !!goog.global.navigator.msPointerEnabled}; +goog.provide("goog.disposable.IDisposable"); +goog.disposable.IDisposable = function() { +}; +goog.disposable.IDisposable.prototype.dispose; +goog.disposable.IDisposable.prototype.isDisposed; +goog.provide("goog.Disposable"); +goog.provide("goog.dispose"); +goog.require("goog.disposable.IDisposable"); +goog.Disposable = function() { + if(goog.Disposable.MONITORING_MODE != goog.Disposable.MonitoringMode.OFF) { + if(goog.Disposable.INCLUDE_STACK_ON_CREATION) { + this.creationStack = (new Error).stack + } + goog.Disposable.instances_[goog.getUid(this)] = this + } +}; +goog.Disposable.MonitoringMode = {OFF:0, PERMANENT:1, INTERACTIVE:2}; +goog.define("goog.Disposable.MONITORING_MODE", 0); +goog.define("goog.Disposable.INCLUDE_STACK_ON_CREATION", true); +goog.Disposable.instances_ = {}; +goog.Disposable.getUndisposedObjects = function() { + var ret = []; + for(var id in goog.Disposable.instances_) { + if(goog.Disposable.instances_.hasOwnProperty(id)) { + ret.push(goog.Disposable.instances_[Number(id)]) + } + } + return ret +}; +goog.Disposable.clearUndisposedObjects = function() { + goog.Disposable.instances_ = {} +}; +goog.Disposable.prototype.disposed_ = false; +goog.Disposable.prototype.onDisposeCallbacks_; +goog.Disposable.prototype.creationStack; +goog.Disposable.prototype.isDisposed = function() { + return this.disposed_ +}; +goog.Disposable.prototype.getDisposed = goog.Disposable.prototype.isDisposed; +goog.Disposable.prototype.dispose = function() { + if(!this.disposed_) { + this.disposed_ = true; + this.disposeInternal(); + if(goog.Disposable.MONITORING_MODE != goog.Disposable.MonitoringMode.OFF) { + var uid = goog.getUid(this); + if(goog.Disposable.MONITORING_MODE == goog.Disposable.MonitoringMode.PERMANENT && !goog.Disposable.instances_.hasOwnProperty(uid)) { + throw Error(this + " did not call the goog.Disposable base " + "constructor or was disposed of after a clearUndisposedObjects " + "call"); + } + delete goog.Disposable.instances_[uid] + } + } +}; +goog.Disposable.prototype.registerDisposable = function(disposable) { + this.addOnDisposeCallback(goog.partial(goog.dispose, disposable)) +}; +goog.Disposable.prototype.addOnDisposeCallback = function(callback, opt_scope) { + if(!this.onDisposeCallbacks_) { + this.onDisposeCallbacks_ = [] + } + this.onDisposeCallbacks_.push(goog.bind(callback, opt_scope)) +}; +goog.Disposable.prototype.disposeInternal = function() { + if(this.onDisposeCallbacks_) { + while(this.onDisposeCallbacks_.length) { + this.onDisposeCallbacks_.shift()() + } + } +}; +goog.Disposable.isDisposed = function(obj) { + if(obj && typeof obj.isDisposed == "function") { + return obj.isDisposed() + } + return false +}; +goog.dispose = function(obj) { + if(obj && typeof obj.dispose == "function") { + obj.dispose() + } +}; +goog.disposeAll = function(var_args) { + for(var i = 0, len = arguments.length;i < len;++i) { + var disposable = arguments[i]; + if(goog.isArrayLike(disposable)) { + goog.disposeAll.apply(null, disposable) + }else { + goog.dispose(disposable) + } + } +}; +goog.provide("goog.events.Event"); +goog.provide("goog.events.EventLike"); +goog.require("goog.Disposable"); +goog.events.EventLike; +goog.events.Event = function(type, opt_target) { + this.type = type; + this.target = opt_target; + this.currentTarget = this.target +}; +goog.events.Event.prototype.disposeInternal = function() { +}; +goog.events.Event.prototype.dispose = function() { +}; +goog.events.Event.prototype.propagationStopped_ = false; +goog.events.Event.prototype.defaultPrevented = false; +goog.events.Event.prototype.returnValue_ = true; +goog.events.Event.prototype.stopPropagation = function() { + this.propagationStopped_ = true +}; +goog.events.Event.prototype.preventDefault = function() { + this.defaultPrevented = true; + this.returnValue_ = false +}; +goog.events.Event.stopPropagation = function(e) { + e.stopPropagation() +}; +goog.events.Event.preventDefault = function(e) { + e.preventDefault() +}; +goog.provide("goog.debug.EntryPointMonitor"); +goog.provide("goog.debug.entryPointRegistry"); +goog.require("goog.asserts"); +goog.debug.EntryPointMonitor = function() { +}; +goog.debug.EntryPointMonitor.prototype.wrap; +goog.debug.EntryPointMonitor.prototype.unwrap; +goog.debug.entryPointRegistry.refList_ = []; +goog.debug.entryPointRegistry.monitors_ = []; +goog.debug.entryPointRegistry.monitorsMayExist_ = false; +goog.debug.entryPointRegistry.register = function(callback) { + goog.debug.entryPointRegistry.refList_[goog.debug.entryPointRegistry.refList_.length] = callback; + if(goog.debug.entryPointRegistry.monitorsMayExist_) { + var monitors = goog.debug.entryPointRegistry.monitors_; + for(var i = 0;i < monitors.length;i++) { + callback(goog.bind(monitors[i].wrap, monitors[i])) + } + } +}; +goog.debug.entryPointRegistry.monitorAll = function(monitor) { + goog.debug.entryPointRegistry.monitorsMayExist_ = true; + var transformer = goog.bind(monitor.wrap, monitor); + for(var i = 0;i < goog.debug.entryPointRegistry.refList_.length;i++) { + goog.debug.entryPointRegistry.refList_[i](transformer) + } + goog.debug.entryPointRegistry.monitors_.push(monitor) +}; +goog.debug.entryPointRegistry.unmonitorAllIfPossible = function(monitor) { + var monitors = goog.debug.entryPointRegistry.monitors_; + goog.asserts.assert(monitor == monitors[monitors.length - 1], "Only the most recent monitor can be unwrapped."); + var transformer = goog.bind(monitor.unwrap, monitor); + for(var i = 0;i < goog.debug.entryPointRegistry.refList_.length;i++) { + goog.debug.entryPointRegistry.refList_[i](transformer) + } + monitors.length-- +}; +goog.provide("goog.userAgent"); +goog.require("goog.string"); +goog.define("goog.userAgent.ASSUME_IE", false); +goog.define("goog.userAgent.ASSUME_GECKO", false); +goog.define("goog.userAgent.ASSUME_WEBKIT", false); +goog.define("goog.userAgent.ASSUME_MOBILE_WEBKIT", false); +goog.define("goog.userAgent.ASSUME_OPERA", false); +goog.define("goog.userAgent.ASSUME_ANY_VERSION", false); +goog.userAgent.BROWSER_KNOWN_ = goog.userAgent.ASSUME_IE || goog.userAgent.ASSUME_GECKO || goog.userAgent.ASSUME_MOBILE_WEBKIT || goog.userAgent.ASSUME_WEBKIT || goog.userAgent.ASSUME_OPERA; +goog.userAgent.getUserAgentString = function() { + return goog.global["navigator"] ? goog.global["navigator"].userAgent : null +}; +goog.userAgent.getNavigator = function() { + return goog.global["navigator"] +}; +goog.userAgent.init_ = function() { + goog.userAgent.detectedOpera_ = false; + goog.userAgent.detectedIe_ = false; + goog.userAgent.detectedWebkit_ = false; + goog.userAgent.detectedMobile_ = false; + goog.userAgent.detectedGecko_ = false; + var ua; + if(!goog.userAgent.BROWSER_KNOWN_ && (ua = goog.userAgent.getUserAgentString())) { + var navigator = goog.userAgent.getNavigator(); + goog.userAgent.detectedOpera_ = goog.string.startsWith(ua, "Opera"); + goog.userAgent.detectedIe_ = !goog.userAgent.detectedOpera_ && (goog.string.contains(ua, "MSIE") || goog.string.contains(ua, "Trident")); + goog.userAgent.detectedWebkit_ = !goog.userAgent.detectedOpera_ && goog.string.contains(ua, "WebKit"); + goog.userAgent.detectedMobile_ = goog.userAgent.detectedWebkit_ && goog.string.contains(ua, "Mobile"); + goog.userAgent.detectedGecko_ = !goog.userAgent.detectedOpera_ && !goog.userAgent.detectedWebkit_ && !goog.userAgent.detectedIe_ && navigator.product == "Gecko" + } +}; +if(!goog.userAgent.BROWSER_KNOWN_) { + goog.userAgent.init_() +} +goog.userAgent.OPERA = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_OPERA : goog.userAgent.detectedOpera_; +goog.userAgent.IE = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_IE : goog.userAgent.detectedIe_; +goog.userAgent.GECKO = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_GECKO : goog.userAgent.detectedGecko_; +goog.userAgent.WEBKIT = goog.userAgent.BROWSER_KNOWN_ ? goog.userAgent.ASSUME_WEBKIT || goog.userAgent.ASSUME_MOBILE_WEBKIT : goog.userAgent.detectedWebkit_; +goog.userAgent.MOBILE = goog.userAgent.ASSUME_MOBILE_WEBKIT || goog.userAgent.detectedMobile_; +goog.userAgent.SAFARI = goog.userAgent.WEBKIT; +goog.userAgent.determinePlatform_ = function() { + var navigator = goog.userAgent.getNavigator(); + return navigator && navigator.platform || "" +}; +goog.userAgent.PLATFORM = goog.userAgent.determinePlatform_(); +goog.define("goog.userAgent.ASSUME_MAC", false); +goog.define("goog.userAgent.ASSUME_WINDOWS", false); +goog.define("goog.userAgent.ASSUME_LINUX", false); +goog.define("goog.userAgent.ASSUME_X11", false); +goog.define("goog.userAgent.ASSUME_ANDROID", false); +goog.define("goog.userAgent.ASSUME_IPHONE", false); +goog.define("goog.userAgent.ASSUME_IPAD", false); +goog.userAgent.PLATFORM_KNOWN_ = goog.userAgent.ASSUME_MAC || goog.userAgent.ASSUME_WINDOWS || goog.userAgent.ASSUME_LINUX || goog.userAgent.ASSUME_X11 || goog.userAgent.ASSUME_ANDROID || goog.userAgent.ASSUME_IPHONE || goog.userAgent.ASSUME_IPAD; +goog.userAgent.initPlatform_ = function() { + goog.userAgent.detectedMac_ = goog.string.contains(goog.userAgent.PLATFORM, "Mac"); + goog.userAgent.detectedWindows_ = goog.string.contains(goog.userAgent.PLATFORM, "Win"); + goog.userAgent.detectedLinux_ = goog.string.contains(goog.userAgent.PLATFORM, "Linux"); + goog.userAgent.detectedX11_ = !!goog.userAgent.getNavigator() && goog.string.contains(goog.userAgent.getNavigator()["appVersion"] || "", "X11"); + var ua = goog.userAgent.getUserAgentString(); + goog.userAgent.detectedAndroid_ = !!ua && goog.string.contains(ua, "Android"); + goog.userAgent.detectedIPhone_ = !!ua && goog.string.contains(ua, "iPhone"); + goog.userAgent.detectedIPad_ = !!ua && goog.string.contains(ua, "iPad") +}; +if(!goog.userAgent.PLATFORM_KNOWN_) { + goog.userAgent.initPlatform_() +} +goog.userAgent.MAC = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_MAC : goog.userAgent.detectedMac_; +goog.userAgent.WINDOWS = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_WINDOWS : goog.userAgent.detectedWindows_; +goog.userAgent.LINUX = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_LINUX : goog.userAgent.detectedLinux_; +goog.userAgent.X11 = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_X11 : goog.userAgent.detectedX11_; +goog.userAgent.ANDROID = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_ANDROID : goog.userAgent.detectedAndroid_; +goog.userAgent.IPHONE = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPHONE : goog.userAgent.detectedIPhone_; +goog.userAgent.IPAD = goog.userAgent.PLATFORM_KNOWN_ ? goog.userAgent.ASSUME_IPAD : goog.userAgent.detectedIPad_; +goog.userAgent.determineVersion_ = function() { + var version = "", re; + if(goog.userAgent.OPERA && goog.global["opera"]) { + var operaVersion = goog.global["opera"].version; + version = typeof operaVersion == "function" ? operaVersion() : operaVersion + }else { + if(goog.userAgent.GECKO) { + re = /rv\:([^\);]+)(\)|;)/ + }else { + if(goog.userAgent.IE) { + re = /\b(?:MSIE|rv)\s+([^\);]+)(\)|;)/ + }else { + if(goog.userAgent.WEBKIT) { + re = /WebKit\/(\S+)/ + } + } + } + if(re) { + var arr = re.exec(goog.userAgent.getUserAgentString()); + version = arr ? arr[1] : "" + } + } + if(goog.userAgent.IE) { + var docMode = goog.userAgent.getDocumentMode_(); + if(docMode > parseFloat(version)) { + return String(docMode) + } + } + return version +}; +goog.userAgent.getDocumentMode_ = function() { + var doc = goog.global["document"]; + return doc ? doc["documentMode"] : undefined +}; +goog.userAgent.VERSION = goog.userAgent.determineVersion_(); +goog.userAgent.compare = function(v1, v2) { + return goog.string.compareVersions(v1, v2) +}; +goog.userAgent.isVersionOrHigherCache_ = {}; +goog.userAgent.isVersionOrHigher = function(version) { + return goog.userAgent.ASSUME_ANY_VERSION || goog.userAgent.isVersionOrHigherCache_[version] || (goog.userAgent.isVersionOrHigherCache_[version] = goog.string.compareVersions(goog.userAgent.VERSION, version) >= 0) +}; +goog.userAgent.isVersion = goog.userAgent.isVersionOrHigher; +goog.userAgent.isDocumentModeOrHigher = function(documentMode) { + return goog.userAgent.IE && goog.userAgent.DOCUMENT_MODE >= documentMode +}; +goog.userAgent.isDocumentMode = goog.userAgent.isDocumentModeOrHigher; +goog.userAgent.DOCUMENT_MODE = function() { + var doc = goog.global["document"]; + if(!doc || !goog.userAgent.IE) { + return undefined + } + var mode = goog.userAgent.getDocumentMode_(); + return mode || (doc["compatMode"] == "CSS1Compat" ? parseInt(goog.userAgent.VERSION, 10) : 5) +}(); +goog.provide("goog.events.BrowserFeature"); +goog.require("goog.userAgent"); +goog.events.BrowserFeature = {HAS_W3C_BUTTON:!goog.userAgent.IE || goog.userAgent.isDocumentModeOrHigher(9), HAS_W3C_EVENT_SUPPORT:!goog.userAgent.IE || goog.userAgent.isDocumentModeOrHigher(9), SET_KEY_CODE_TO_PREVENT_DEFAULT:goog.userAgent.IE && !goog.userAgent.isVersionOrHigher("9"), HAS_NAVIGATOR_ONLINE_PROPERTY:!goog.userAgent.WEBKIT || goog.userAgent.isVersionOrHigher("528"), HAS_HTML5_NETWORK_EVENT_SUPPORT:goog.userAgent.GECKO && goog.userAgent.isVersionOrHigher("1.9b") || goog.userAgent.IE && +goog.userAgent.isVersionOrHigher("8") || goog.userAgent.OPERA && goog.userAgent.isVersionOrHigher("9.5") || goog.userAgent.WEBKIT && goog.userAgent.isVersionOrHigher("528"), HTML5_NETWORK_EVENTS_FIRE_ON_BODY:goog.userAgent.GECKO && !goog.userAgent.isVersionOrHigher("8") || goog.userAgent.IE && !goog.userAgent.isVersionOrHigher("9"), TOUCH_ENABLED:"ontouchstart" in goog.global || !!(goog.global["document"] && document.documentElement && "ontouchstart" in document.documentElement) || !!(goog.global["navigator"] && +goog.global["navigator"]["msMaxTouchPoints"])}; +goog.provide("goog.events.EventType"); +goog.require("goog.userAgent"); +goog.events.EventType = {CLICK:"click", DBLCLICK:"dblclick", MOUSEDOWN:"mousedown", MOUSEUP:"mouseup", MOUSEOVER:"mouseover", MOUSEOUT:"mouseout", MOUSEMOVE:"mousemove", SELECTSTART:"selectstart", KEYPRESS:"keypress", KEYDOWN:"keydown", KEYUP:"keyup", BLUR:"blur", FOCUS:"focus", DEACTIVATE:"deactivate", FOCUSIN:goog.userAgent.IE ? "focusin" : "DOMFocusIn", FOCUSOUT:goog.userAgent.IE ? "focusout" : "DOMFocusOut", CHANGE:"change", SELECT:"select", SUBMIT:"submit", INPUT:"input", PROPERTYCHANGE:"propertychange", +DRAGSTART:"dragstart", DRAG:"drag", DRAGENTER:"dragenter", DRAGOVER:"dragover", DRAGLEAVE:"dragleave", DROP:"drop", DRAGEND:"dragend", TOUCHSTART:"touchstart", TOUCHMOVE:"touchmove", TOUCHEND:"touchend", TOUCHCANCEL:"touchcancel", BEFOREUNLOAD:"beforeunload", CONSOLEMESSAGE:"consolemessage", CONTEXTMENU:"contextmenu", DOMCONTENTLOADED:"DOMContentLoaded", ERROR:"error", HELP:"help", LOAD:"load", LOSECAPTURE:"losecapture", READYSTATECHANGE:"readystatechange", RESIZE:"resize", SCROLL:"scroll", UNLOAD:"unload", +HASHCHANGE:"hashchange", PAGEHIDE:"pagehide", PAGESHOW:"pageshow", POPSTATE:"popstate", COPY:"copy", PASTE:"paste", CUT:"cut", BEFORECOPY:"beforecopy", BEFORECUT:"beforecut", BEFOREPASTE:"beforepaste", ONLINE:"online", OFFLINE:"offline", MESSAGE:"message", CONNECT:"connect", TRANSITIONEND:goog.userAgent.WEBKIT ? "webkitTransitionEnd" : goog.userAgent.OPERA ? "oTransitionEnd" : "transitionend", MSGESTURECHANGE:"MSGestureChange", MSGESTUREEND:"MSGestureEnd", MSGESTUREHOLD:"MSGestureHold", MSGESTURESTART:"MSGestureStart", +MSGESTURETAP:"MSGestureTap", MSGOTPOINTERCAPTURE:"MSGotPointerCapture", MSINERTIASTART:"MSInertiaStart", MSLOSTPOINTERCAPTURE:"MSLostPointerCapture", MSPOINTERCANCEL:"MSPointerCancel", MSPOINTERDOWN:"MSPointerDown", MSPOINTERMOVE:"MSPointerMove", MSPOINTEROVER:"MSPointerOver", MSPOINTEROUT:"MSPointerOut", MSPOINTERUP:"MSPointerUp", TEXTINPUT:"textinput", COMPOSITIONSTART:"compositionstart", COMPOSITIONUPDATE:"compositionupdate", COMPOSITIONEND:"compositionend", EXIT:"exit", LOADABORT:"loadabort", +LOADCOMMIT:"loadcommit", LOADREDIRECT:"loadredirect", LOADSTART:"loadstart", LOADSTOP:"loadstop", RESPONSIVE:"responsive", SIZECHANGED:"sizechanged", UNRESPONSIVE:"unresponsive"}; +goog.provide("goog.reflect"); +goog.reflect.object = function(type, object) { + return object +}; +goog.reflect.sinkValue = function(x) { + goog.reflect.sinkValue[" "](x); + return x +}; +goog.reflect.sinkValue[" "] = goog.nullFunction; +goog.reflect.canAccessProperty = function(obj, prop) { + try { + goog.reflect.sinkValue(obj[prop]); + return true + }catch(e) { + } + return false +}; +goog.provide("goog.events.BrowserEvent"); +goog.provide("goog.events.BrowserEvent.MouseButton"); +goog.require("goog.events.BrowserFeature"); +goog.require("goog.events.Event"); +goog.require("goog.events.EventType"); +goog.require("goog.reflect"); +goog.require("goog.userAgent"); +goog.events.BrowserEvent = function(opt_e, opt_currentTarget) { + if(opt_e) { + this.init(opt_e, opt_currentTarget) + } +}; +goog.inherits(goog.events.BrowserEvent, goog.events.Event); +goog.events.BrowserEvent.MouseButton = {LEFT:0, MIDDLE:1, RIGHT:2}; +goog.events.BrowserEvent.IEButtonMap = [1, 4, 2]; +goog.events.BrowserEvent.prototype.target = null; +goog.events.BrowserEvent.prototype.currentTarget; +goog.events.BrowserEvent.prototype.relatedTarget = null; +goog.events.BrowserEvent.prototype.offsetX = 0; +goog.events.BrowserEvent.prototype.offsetY = 0; +goog.events.BrowserEvent.prototype.clientX = 0; +goog.events.BrowserEvent.prototype.clientY = 0; +goog.events.BrowserEvent.prototype.screenX = 0; +goog.events.BrowserEvent.prototype.screenY = 0; +goog.events.BrowserEvent.prototype.button = 0; +goog.events.BrowserEvent.prototype.keyCode = 0; +goog.events.BrowserEvent.prototype.charCode = 0; +goog.events.BrowserEvent.prototype.ctrlKey = false; +goog.events.BrowserEvent.prototype.altKey = false; +goog.events.BrowserEvent.prototype.shiftKey = false; +goog.events.BrowserEvent.prototype.metaKey = false; +goog.events.BrowserEvent.prototype.state; +goog.events.BrowserEvent.prototype.platformModifierKey = false; +goog.events.BrowserEvent.prototype.event_ = null; +goog.events.BrowserEvent.prototype.init = function(e, opt_currentTarget) { + var type = this.type = e.type; + goog.events.Event.call(this, type); + this.target = (e.target) || e.srcElement; + this.currentTarget = (opt_currentTarget); + var relatedTarget = (e.relatedTarget); + if(relatedTarget) { + if(goog.userAgent.GECKO) { + if(!goog.reflect.canAccessProperty(relatedTarget, "nodeName")) { + relatedTarget = null + } + } + }else { + if(type == goog.events.EventType.MOUSEOVER) { + relatedTarget = e.fromElement + }else { + if(type == goog.events.EventType.MOUSEOUT) { + relatedTarget = e.toElement + } + } + } + this.relatedTarget = relatedTarget; + this.offsetX = goog.userAgent.WEBKIT || e.offsetX !== undefined ? e.offsetX : e.layerX; + this.offsetY = goog.userAgent.WEBKIT || e.offsetY !== undefined ? e.offsetY : e.layerY; + this.clientX = e.clientX !== undefined ? e.clientX : e.pageX; + this.clientY = e.clientY !== undefined ? e.clientY : e.pageY; + this.screenX = e.screenX || 0; + this.screenY = e.screenY || 0; + this.button = e.button; + this.keyCode = e.keyCode || 0; + this.charCode = e.charCode || (type == "keypress" ? e.keyCode : 0); + this.ctrlKey = e.ctrlKey; + this.altKey = e.altKey; + this.shiftKey = e.shiftKey; + this.metaKey = e.metaKey; + this.platformModifierKey = goog.userAgent.MAC ? e.metaKey : e.ctrlKey; + this.state = e.state; + this.event_ = e; + if(e.defaultPrevented) { + this.preventDefault() + } + delete this.propagationStopped_ +}; +goog.events.BrowserEvent.prototype.isButton = function(button) { + if(!goog.events.BrowserFeature.HAS_W3C_BUTTON) { + if(this.type == "click") { + return button == goog.events.BrowserEvent.MouseButton.LEFT + }else { + return!!(this.event_.button & goog.events.BrowserEvent.IEButtonMap[button]) + } + }else { + return this.event_.button == button + } +}; +goog.events.BrowserEvent.prototype.isMouseActionButton = function() { + return this.isButton(goog.events.BrowserEvent.MouseButton.LEFT) && !(goog.userAgent.WEBKIT && goog.userAgent.MAC && this.ctrlKey) +}; +goog.events.BrowserEvent.prototype.stopPropagation = function() { + goog.events.BrowserEvent.superClass_.stopPropagation.call(this); + if(this.event_.stopPropagation) { + this.event_.stopPropagation() + }else { + this.event_.cancelBubble = true + } +}; +goog.events.BrowserEvent.prototype.preventDefault = function() { + goog.events.BrowserEvent.superClass_.preventDefault.call(this); + var be = this.event_; + if(!be.preventDefault) { + be.returnValue = false; + if(goog.events.BrowserFeature.SET_KEY_CODE_TO_PREVENT_DEFAULT) { + try { + var VK_F1 = 112; + var VK_F12 = 123; + if(be.ctrlKey || be.keyCode >= VK_F1 && be.keyCode <= VK_F12) { + be.keyCode = -1 + } + }catch(ex) { + } + } + }else { + be.preventDefault() + } +}; +goog.events.BrowserEvent.prototype.getBrowserEvent = function() { + return this.event_ +}; +goog.events.BrowserEvent.prototype.disposeInternal = function() { +}; +goog.provide("goog.events.Listenable"); +goog.provide("goog.events.ListenableKey"); +goog.events.Listenable = function() { +}; +goog.events.Listenable.IMPLEMENTED_BY_PROP = "closure_listenable_" + (Math.random() * 1E6 | 0); +goog.events.Listenable.addImplementation = function(cls) { + cls.prototype[goog.events.Listenable.IMPLEMENTED_BY_PROP] = true +}; +goog.events.Listenable.isImplementedBy = function(obj) { + return!!(obj && obj[goog.events.Listenable.IMPLEMENTED_BY_PROP]) +}; +goog.events.Listenable.prototype.listen; +goog.events.Listenable.prototype.listenOnce; +goog.events.Listenable.prototype.unlisten; +goog.events.Listenable.prototype.unlistenByKey; +goog.events.Listenable.prototype.dispatchEvent; +goog.events.Listenable.prototype.removeAllListeners; +goog.events.Listenable.prototype.getParentEventTarget; +goog.events.Listenable.prototype.fireListeners; +goog.events.Listenable.prototype.getListeners; +goog.events.Listenable.prototype.getListener; +goog.events.Listenable.prototype.hasListener; +goog.events.ListenableKey = function() { +}; +goog.events.ListenableKey.counter_ = 0; +goog.events.ListenableKey.reserveKey = function() { + return++goog.events.ListenableKey.counter_ +}; +goog.events.ListenableKey.prototype.src; +goog.events.ListenableKey.prototype.type; +goog.events.ListenableKey.prototype.listener; +goog.events.ListenableKey.prototype.capture; +goog.events.ListenableKey.prototype.handler; +goog.events.ListenableKey.prototype.key; +goog.provide("goog.events.Listener"); +goog.require("goog.events.ListenableKey"); +goog.events.Listener = function(listener, proxy, src, type, capture, opt_handler) { + if(goog.events.Listener.ENABLE_MONITORING) { + this.creationStack = (new Error).stack + } + this.listener = listener; + this.proxy = proxy; + this.src = src; + this.type = type; + this.capture = !!capture; + this.handler = opt_handler; + this.key = goog.events.ListenableKey.reserveKey(); + this.callOnce = false; + this.removed = false +}; +goog.define("goog.events.Listener.ENABLE_MONITORING", false); +goog.events.Listener.prototype.creationStack; +goog.events.Listener.prototype.markAsRemoved = function() { + this.removed = true; + this.listener = null; + this.proxy = null; + this.src = null; + this.handler = null +}; +goog.provide("goog.object"); +goog.object.forEach = function(obj, f, opt_obj) { + for(var key in obj) { + f.call(opt_obj, obj[key], key, obj) + } +}; +goog.object.filter = function(obj, f, opt_obj) { + var res = {}; + for(var key in obj) { + if(f.call(opt_obj, obj[key], key, obj)) { + res[key] = obj[key] + } + } + return res +}; +goog.object.map = function(obj, f, opt_obj) { + var res = {}; + for(var key in obj) { + res[key] = f.call(opt_obj, obj[key], key, obj) + } + return res +}; +goog.object.some = function(obj, f, opt_obj) { + for(var key in obj) { + if(f.call(opt_obj, obj[key], key, obj)) { + return true + } + } + return false +}; +goog.object.every = function(obj, f, opt_obj) { + for(var key in obj) { + if(!f.call(opt_obj, obj[key], key, obj)) { + return false + } + } + return true +}; +goog.object.getCount = function(obj) { + var rv = 0; + for(var key in obj) { + rv++ + } + return rv +}; +goog.object.getAnyKey = function(obj) { + for(var key in obj) { + return key + } +}; +goog.object.getAnyValue = function(obj) { + for(var key in obj) { + return obj[key] + } +}; +goog.object.contains = function(obj, val) { + return goog.object.containsValue(obj, val) +}; +goog.object.getValues = function(obj) { + var res = []; + var i = 0; + for(var key in obj) { + res[i++] = obj[key] + } + return res +}; +goog.object.getKeys = function(obj) { + var res = []; + var i = 0; + for(var key in obj) { + res[i++] = key + } + return res +}; +goog.object.getValueByKeys = function(obj, var_args) { + var isArrayLike = goog.isArrayLike(var_args); + var keys = isArrayLike ? var_args : arguments; + for(var i = isArrayLike ? 0 : 1;i < keys.length;i++) { + obj = obj[keys[i]]; + if(!goog.isDef(obj)) { + break + } + } + return obj +}; +goog.object.containsKey = function(obj, key) { + return key in obj +}; +goog.object.containsValue = function(obj, val) { + for(var key in obj) { + if(obj[key] == val) { + return true + } + } + return false +}; +goog.object.findKey = function(obj, f, opt_this) { + for(var key in obj) { + if(f.call(opt_this, obj[key], key, obj)) { + return key + } + } + return undefined +}; +goog.object.findValue = function(obj, f, opt_this) { + var key = goog.object.findKey(obj, f, opt_this); + return key && obj[key] +}; +goog.object.isEmpty = function(obj) { + for(var key in obj) { + return false + } + return true +}; +goog.object.clear = function(obj) { + for(var i in obj) { + delete obj[i] + } +}; +goog.object.remove = function(obj, key) { + var rv; + if(rv = key in obj) { + delete obj[key] + } + return rv +}; +goog.object.add = function(obj, key, val) { + if(key in obj) { + throw Error('The object already contains the key "' + key + '"'); + } + goog.object.set(obj, key, val) +}; +goog.object.get = function(obj, key, opt_val) { + if(key in obj) { + return obj[key] + } + return opt_val +}; +goog.object.set = function(obj, key, value) { + obj[key] = value +}; +goog.object.setIfUndefined = function(obj, key, value) { + return key in obj ? obj[key] : obj[key] = value +}; +goog.object.clone = function(obj) { + var res = {}; + for(var key in obj) { + res[key] = obj[key] + } + return res +}; +goog.object.unsafeClone = function(obj) { + var type = goog.typeOf(obj); + if(type == "object" || type == "array") { + if(obj.clone) { + return obj.clone() + } + var clone = type == "array" ? [] : {}; + for(var key in obj) { + clone[key] = goog.object.unsafeClone(obj[key]) + } + return clone + } + return obj +}; +goog.object.transpose = function(obj) { + var transposed = {}; + for(var key in obj) { + transposed[obj[key]] = key + } + return transposed +}; +goog.object.PROTOTYPE_FIELDS_ = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"]; +goog.object.extend = function(target, var_args) { + var key, source; + for(var i = 1;i < arguments.length;i++) { + source = arguments[i]; + for(key in source) { + target[key] = source[key] + } + for(var j = 0;j < goog.object.PROTOTYPE_FIELDS_.length;j++) { + key = goog.object.PROTOTYPE_FIELDS_[j]; + if(Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key] + } + } + } +}; +goog.object.create = function(var_args) { + var argLength = arguments.length; + if(argLength == 1 && goog.isArray(arguments[0])) { + return goog.object.create.apply(null, arguments[0]) + } + if(argLength % 2) { + throw Error("Uneven number of arguments"); + } + var rv = {}; + for(var i = 0;i < argLength;i += 2) { + rv[arguments[i]] = arguments[i + 1] + } + return rv +}; +goog.object.createSet = function(var_args) { + var argLength = arguments.length; + if(argLength == 1 && goog.isArray(arguments[0])) { + return goog.object.createSet.apply(null, arguments[0]) + } + var rv = {}; + for(var i = 0;i < argLength;i++) { + rv[arguments[i]] = true + } + return rv +}; +goog.object.createImmutableView = function(obj) { + var result = obj; + if(Object.isFrozen && !Object.isFrozen(obj)) { + result = Object.create(obj); + Object.freeze(result) + } + return result +}; +goog.object.isImmutableView = function(obj) { + return!!Object.isFrozen && Object.isFrozen(obj) +}; +goog.provide("goog.events"); +goog.provide("goog.events.Key"); +goog.provide("goog.events.ListenableType"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.require("goog.debug.entryPointRegistry"); +goog.require("goog.events.BrowserEvent"); +goog.require("goog.events.BrowserFeature"); +goog.require("goog.events.Listenable"); +goog.require("goog.events.Listener"); +goog.require("goog.object"); +goog.events.Key; +goog.events.ListenableType; +goog.events.listeners_ = {}; +goog.events.listenerTree_ = {}; +goog.events.sources_ = {}; +goog.events.onString_ = "on"; +goog.events.onStringMap_ = {}; +goog.events.keySeparator_ = "_"; +goog.events.listen = function(src, type, listener, opt_capt, opt_handler) { + if(goog.isArray(type)) { + for(var i = 0;i < type.length;i++) { + goog.events.listen(src, type[i], listener, opt_capt, opt_handler) + } + return null + } + listener = goog.events.wrapListener_(listener); + if(goog.events.Listenable.isImplementedBy(src)) { + return src.listen((type), listener, opt_capt, opt_handler) + }else { + return goog.events.listen_((src), type, listener, false, opt_capt, opt_handler) + } +}; +goog.events.listen_ = function(src, type, listener, callOnce, opt_capt, opt_handler) { + if(!type) { + throw Error("Invalid event type"); + } + var capture = !!opt_capt; + var map = goog.events.listenerTree_; + if(!(type in map)) { + map[type] = {count_:0} + } + map = map[type]; + if(!(capture in map)) { + map[capture] = {count_:0}; + map.count_++ + } + map = map[capture]; + var srcUid = goog.getUid(src); + var listenerArray, listenerObj; + if(!map[srcUid]) { + listenerArray = map[srcUid] = []; + map.count_++ + }else { + listenerArray = map[srcUid]; + for(var i = 0;i < listenerArray.length;i++) { + listenerObj = listenerArray[i]; + if(listenerObj.listener == listener && listenerObj.handler == opt_handler) { + if(listenerObj.removed) { + break + } + if(!callOnce) { + listenerArray[i].callOnce = false + } + return listenerArray[i] + } + } + } + var proxy = goog.events.getProxy(); + listenerObj = new goog.events.Listener(listener, proxy, src, type, capture, opt_handler); + listenerObj.callOnce = callOnce; + proxy.src = src; + proxy.listener = listenerObj; + listenerArray.push(listenerObj); + if(!goog.events.sources_[srcUid]) { + goog.events.sources_[srcUid] = [] + } + goog.events.sources_[srcUid].push(listenerObj); + if(src.addEventListener) { + src.addEventListener(type, proxy, capture) + }else { + src.attachEvent(goog.events.getOnString_(type), proxy) + } + var key = listenerObj.key; + goog.events.listeners_[key] = listenerObj; + return listenerObj +}; +goog.events.getProxy = function() { + var proxyCallbackFunction = goog.events.handleBrowserEvent_; + var f = goog.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT ? function(eventObject) { + return proxyCallbackFunction.call(f.src, f.listener, eventObject) + } : function(eventObject) { + var v = proxyCallbackFunction.call(f.src, f.listener, eventObject); + if(!v) { + return v + } + }; + return f +}; +goog.events.listenOnce = function(src, type, listener, opt_capt, opt_handler) { + if(goog.isArray(type)) { + for(var i = 0;i < type.length;i++) { + goog.events.listenOnce(src, type[i], listener, opt_capt, opt_handler) + } + return null + } + var listenableKey; + listener = goog.events.wrapListener_(listener); + if(goog.events.Listenable.isImplementedBy(src)) { + listenableKey = src.listenOnce((type), listener, opt_capt, opt_handler) + }else { + listenableKey = goog.events.listen_((src), type, listener, true, opt_capt, opt_handler) + } + return listenableKey +}; +goog.events.listenWithWrapper = function(src, wrapper, listener, opt_capt, opt_handler) { + wrapper.listen(src, listener, opt_capt, opt_handler) +}; +goog.events.unlisten = function(src, type, listener, opt_capt, opt_handler) { + if(goog.isArray(type)) { + for(var i = 0;i < type.length;i++) { + goog.events.unlisten(src, type[i], listener, opt_capt, opt_handler) + } + return null + } + listener = goog.events.wrapListener_(listener); + if(goog.events.Listenable.isImplementedBy(src)) { + return src.unlisten((type), listener, opt_capt, opt_handler) + } + var capture = !!opt_capt; + var listenerArray = goog.events.getListeners_(src, type, capture); + if(!listenerArray) { + return false + } + for(var i = 0;i < listenerArray.length;i++) { + if(listenerArray[i].listener == listener && listenerArray[i].capture == capture && listenerArray[i].handler == opt_handler) { + return goog.events.unlistenByKey(listenerArray[i]) + } + } + return false +}; +goog.events.unlistenByKey = function(key) { + if(goog.isNumber(key)) { + return false + } + var listener = (key); + if(!listener) { + return false + } + if(listener.removed) { + return false + } + var src = listener.src; + if(goog.events.Listenable.isImplementedBy(src)) { + return src.unlistenByKey(listener) + } + var type = listener.type; + var proxy = listener.proxy; + var capture = listener.capture; + if(src.removeEventListener) { + src.removeEventListener(type, proxy, capture) + }else { + if(src.detachEvent) { + src.detachEvent(goog.events.getOnString_(type), proxy) + } + } + var srcUid = goog.getUid(src); + if(goog.events.sources_[srcUid]) { + var sourcesArray = goog.events.sources_[srcUid]; + goog.array.remove(sourcesArray, listener); + if(sourcesArray.length == 0) { + delete goog.events.sources_[srcUid] + } + } + listener.markAsRemoved(); + var listenerArray = goog.events.listenerTree_[type][capture][srcUid]; + if(listenerArray) { + goog.array.remove(listenerArray, listener); + if(listenerArray.length == 0) { + delete goog.events.listenerTree_[type][capture][srcUid]; + goog.events.listenerTree_[type][capture].count_-- + } + if(goog.events.listenerTree_[type][capture].count_ == 0) { + delete goog.events.listenerTree_[type][capture]; + goog.events.listenerTree_[type].count_-- + } + if(goog.events.listenerTree_[type].count_ == 0) { + delete goog.events.listenerTree_[type] + } + } + delete goog.events.listeners_[listener.key]; + return true +}; +goog.events.unlistenWithWrapper = function(src, wrapper, listener, opt_capt, opt_handler) { + wrapper.unlisten(src, listener, opt_capt, opt_handler) +}; +goog.events.removeAll = function(opt_obj, opt_type) { + var count = 0; + var noObj = opt_obj == null; + var noType = opt_type == null; + if(!noObj) { + if(opt_obj && goog.events.Listenable.isImplementedBy(opt_obj)) { + return opt_obj.removeAllListeners(opt_type) + } + var srcUid = goog.getUid((opt_obj)); + if(goog.events.sources_[srcUid]) { + var sourcesArray = goog.events.sources_[srcUid]; + for(var i = sourcesArray.length - 1;i >= 0;i--) { + var listener = sourcesArray[i]; + if(noType || opt_type == listener.type) { + goog.events.unlistenByKey(listener); + count++ + } + } + } + }else { + goog.object.forEach(goog.events.listeners_, function(listener) { + goog.events.unlistenByKey(listener); + count++ + }) + } + return count +}; +goog.events.removeAllNativeListeners = function() { + var count = 0; + goog.object.forEach(goog.events.listeners_, function(listener) { + goog.events.unlistenByKey(listener); + count++ + }); + return count +}; +goog.events.getListeners = function(obj, type, capture) { + if(goog.events.Listenable.isImplementedBy(obj)) { + return obj.getListeners(type, capture) + }else { + return goog.events.getListeners_(obj, type, capture) || [] + } +}; +goog.events.getListeners_ = function(obj, type, capture) { + var map = goog.events.listenerTree_; + if(type in map) { + map = map[type]; + if(capture in map) { + map = map[capture]; + var objUid = goog.getUid(obj); + if(map[objUid]) { + return map[objUid] + } + } + } + return null +}; +goog.events.getListener = function(src, type, listener, opt_capt, opt_handler) { + var capture = !!opt_capt; + listener = goog.events.wrapListener_(listener); + if(goog.events.Listenable.isImplementedBy(src)) { + return src.getListener((type), listener, capture, opt_handler) + } + var listenerArray = goog.events.getListeners_(src, type, capture); + if(listenerArray) { + for(var i = 0;i < listenerArray.length;i++) { + if(!listenerArray[i].removed && listenerArray[i].listener == listener && listenerArray[i].capture == capture && listenerArray[i].handler == opt_handler) { + return listenerArray[i] + } + } + } + return null +}; +goog.events.hasListener = function(obj, opt_type, opt_capture) { + if(goog.events.Listenable.isImplementedBy(obj)) { + return obj.hasListener(opt_type, opt_capture) + } + var objUid = goog.getUid(obj); + var listeners = goog.events.sources_[objUid]; + if(listeners) { + var hasType = goog.isDef(opt_type); + var hasCapture = goog.isDef(opt_capture); + if(hasType && hasCapture) { + var map = goog.events.listenerTree_[opt_type]; + return!!map && !!map[opt_capture] && objUid in map[opt_capture] + }else { + if(!(hasType || hasCapture)) { + return true + }else { + return goog.array.some(listeners, function(listener) { + return hasType && listener.type == opt_type || hasCapture && listener.capture == opt_capture + }) + } + } + } + return false +}; +goog.events.expose = function(e) { + var str = []; + for(var key in e) { + if(e[key] && e[key].id) { + str.push(key + " \x3d " + e[key] + " (" + e[key].id + ")") + }else { + str.push(key + " \x3d " + e[key]) + } + } + return str.join("\n") +}; +goog.events.getOnString_ = function(type) { + if(type in goog.events.onStringMap_) { + return goog.events.onStringMap_[type] + } + return goog.events.onStringMap_[type] = goog.events.onString_ + type +}; +goog.events.fireListeners = function(obj, type, capture, eventObject) { + if(goog.events.Listenable.isImplementedBy(obj)) { + return obj.fireListeners(type, capture, eventObject) + } + var map = goog.events.listenerTree_; + if(type in map) { + map = map[type]; + if(capture in map) { + return goog.events.fireListeners_(map[capture], obj, type, capture, eventObject) + } + } + return true +}; +goog.events.fireListeners_ = function(map, obj, type, capture, eventObject) { + var retval = 1; + var objUid = goog.getUid(obj); + if(map[objUid]) { + var listenerArray = goog.array.clone(map[objUid]); + for(var i = 0;i < listenerArray.length;i++) { + var listener = listenerArray[i]; + if(listener && !listener.removed) { + retval &= goog.events.fireListener(listener, eventObject) !== false + } + } + } + return Boolean(retval) +}; +goog.events.fireListener = function(listener, eventObject) { + var listenerFn = listener.listener; + var listenerHandler = listener.handler || listener.src; + if(listener.callOnce) { + goog.events.unlistenByKey(listener) + } + return listenerFn.call(listenerHandler, eventObject) +}; +goog.events.getTotalListenerCount = function() { + return goog.object.getCount(goog.events.listeners_) +}; +goog.events.dispatchEvent = function(src, e) { + goog.asserts.assert(goog.events.Listenable.isImplementedBy(src), "Can not use goog.events.dispatchEvent with " + "non-goog.events.Listenable instance."); + return src.dispatchEvent(e) +}; +goog.events.protectBrowserEventEntryPoint = function(errorHandler) { + goog.events.handleBrowserEvent_ = errorHandler.protectEntryPoint(goog.events.handleBrowserEvent_) +}; +goog.events.handleBrowserEvent_ = function(listener, opt_evt) { + if(listener.removed) { + return true + } + var type = listener.type; + var map = goog.events.listenerTree_; + if(!(type in map)) { + return true + } + map = map[type]; + var retval, targetsMap; + if(!goog.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT) { + var ieEvent = opt_evt || (goog.getObjectByName("window.event")); + var hasCapture = true in map; + var hasBubble = false in map; + if(hasCapture) { + if(goog.events.isMarkedIeEvent_(ieEvent)) { + return true + } + goog.events.markIeEvent_(ieEvent) + } + var evt = new goog.events.BrowserEvent; + evt.init(ieEvent, this); + retval = true; + try { + if(hasCapture) { + var ancestors = []; + for(var parent = evt.currentTarget;parent;parent = parent.parentNode) { + ancestors.push(parent) + } + targetsMap = map[true]; + for(var i = ancestors.length - 1;!evt.propagationStopped_ && i >= 0;i--) { + evt.currentTarget = ancestors[i]; + retval &= goog.events.fireListeners_(targetsMap, ancestors[i], type, true, evt) + } + if(hasBubble) { + targetsMap = map[false]; + for(var i = 0;!evt.propagationStopped_ && i < ancestors.length;i++) { + evt.currentTarget = ancestors[i]; + retval &= goog.events.fireListeners_(targetsMap, ancestors[i], type, false, evt) + } + } + }else { + retval = goog.events.fireListener(listener, evt) + } + }finally { + if(ancestors) { + ancestors.length = 0 + } + } + return retval + } + var be = new goog.events.BrowserEvent(opt_evt, (this)); + retval = goog.events.fireListener(listener, be); + return retval +}; +goog.events.markIeEvent_ = function(e) { + var useReturnValue = false; + if(e.keyCode == 0) { + try { + e.keyCode = -1; + return + }catch(ex) { + useReturnValue = true + } + } + if(useReturnValue || (e.returnValue) == undefined) { + e.returnValue = true + } +}; +goog.events.isMarkedIeEvent_ = function(e) { + return e.keyCode < 0 || e.returnValue != undefined +}; +goog.events.uniqueIdCounter_ = 0; +goog.events.getUniqueId = function(identifier) { + return identifier + "_" + goog.events.uniqueIdCounter_++ +}; +goog.events.LISTENER_WRAPPER_PROP_ = "__closure_events_fn_" + (Math.random() * 1E9 >>> 0); +goog.events.wrapListener_ = function(listener) { + goog.asserts.assert(listener, "Listener can not be null."); + if(goog.isFunction(listener)) { + return listener + } + goog.asserts.assert(listener.handleEvent, "An object listener must have handleEvent method."); + return listener[goog.events.LISTENER_WRAPPER_PROP_] || (listener[goog.events.LISTENER_WRAPPER_PROP_] = function(e) { + return listener.handleEvent(e) + }) +}; +goog.debug.entryPointRegistry.register(function(transformer) { + goog.events.handleBrowserEvent_ = transformer(goog.events.handleBrowserEvent_) +}); +goog.provide("goog.events.ListenerMap"); +goog.require("goog.array"); +goog.require("goog.events.Listener"); +goog.require("goog.object"); +goog.events.ListenerMap = function(src) { + this.src = src; + this.listeners = {}; + this.typeCount_ = 0 +}; +goog.events.ListenerMap.prototype.getTypeCount = function() { + return this.typeCount_ +}; +goog.events.ListenerMap.prototype.getListenerCount = function() { + var count = 0; + for(var type in this.listeners) { + count += this.listeners[type].length + } + return count +}; +goog.events.ListenerMap.prototype.add = function(type, listener, callOnce, opt_useCapture, opt_listenerScope) { + var listenerArray = this.listeners[type]; + if(!listenerArray) { + listenerArray = this.listeners[type] = []; + this.typeCount_++ + } + var listenerObj; + var index = goog.events.ListenerMap.findListenerIndex_(listenerArray, listener, opt_useCapture, opt_listenerScope); + if(index > -1) { + listenerObj = listenerArray[index]; + if(!callOnce) { + listenerObj.callOnce = false + } + }else { + listenerObj = new goog.events.Listener(listener, null, this.src, type, !!opt_useCapture, opt_listenerScope); + listenerObj.callOnce = callOnce; + listenerArray.push(listenerObj) + } + return listenerObj +}; +goog.events.ListenerMap.prototype.remove = function(type, listener, opt_useCapture, opt_listenerScope) { + if(!(type in this.listeners)) { + return false + } + var listenerArray = this.listeners[type]; + var index = goog.events.ListenerMap.findListenerIndex_(listenerArray, listener, opt_useCapture, opt_listenerScope); + if(index > -1) { + var listenerObj = listenerArray[index]; + listenerObj.markAsRemoved(); + goog.array.removeAt(listenerArray, index); + if(listenerArray.length == 0) { + delete this.listeners[type]; + this.typeCount_-- + } + return true + } + return false +}; +goog.events.ListenerMap.prototype.removeByKey = function(listener) { + var type = listener.type; + if(!(type in this.listeners)) { + return false + } + var removed = goog.array.remove(this.listeners[type], listener); + if(removed) { + listener.markAsRemoved(); + if(this.listeners[type].length == 0) { + delete this.listeners[type]; + this.typeCount_-- + } + } + return removed +}; +goog.events.ListenerMap.prototype.removeAll = function(opt_type) { + var count = 0; + for(var type in this.listeners) { + if(!opt_type || type == opt_type) { + var listenerArray = this.listeners[type]; + for(var i = 0;i < listenerArray.length;i++) { + ++count; + listenerArray[i].removed = true + } + delete this.listeners[type]; + this.typeCount_-- + } + } + return count +}; +goog.events.ListenerMap.prototype.getListeners = function(type, capture) { + var listenerArray = this.listeners[type]; + var rv = []; + if(listenerArray) { + for(var i = 0;i < listenerArray.length;++i) { + var listenerObj = listenerArray[i]; + if(listenerObj.capture == capture) { + rv.push(listenerObj) + } + } + } + return rv +}; +goog.events.ListenerMap.prototype.getListener = function(type, listener, capture, opt_listenerScope) { + var listenerArray = this.listeners[type]; + var i = -1; + if(listenerArray) { + i = goog.events.ListenerMap.findListenerIndex_(listenerArray, listener, capture, opt_listenerScope) + } + return i > -1 ? listenerArray[i] : null +}; +goog.events.ListenerMap.prototype.hasListener = function(opt_type, opt_capture) { + var hasType = goog.isDef(opt_type); + var hasCapture = goog.isDef(opt_capture); + return goog.object.some(this.listeners, function(listenerArray, type) { + for(var i = 0;i < listenerArray.length;++i) { + if((!hasType || listenerArray[i].type == opt_type) && (!hasCapture || listenerArray[i].capture == opt_capture)) { + return true + } + } + return false + }) +}; +goog.events.ListenerMap.findListenerIndex_ = function(listenerArray, listener, opt_useCapture, opt_listenerScope) { + for(var i = 0;i < listenerArray.length;++i) { + var listenerObj = listenerArray[i]; + if(!listenerObj.removed && listenerObj.listener == listener && listenerObj.capture == !!opt_useCapture && listenerObj.handler == opt_listenerScope) { + return i + } + } + return-1 +}; +goog.provide("goog.events.EventTarget"); +goog.require("goog.Disposable"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.require("goog.events"); +goog.require("goog.events.Event"); +goog.require("goog.events.Listenable"); +goog.require("goog.events.ListenerMap"); +goog.require("goog.object"); +goog.events.EventTarget = function() { + goog.Disposable.call(this); + this.eventTargetListeners_ = new goog.events.ListenerMap(this); + this.actualEventTarget_ = this +}; +goog.inherits(goog.events.EventTarget, goog.Disposable); +goog.events.Listenable.addImplementation(goog.events.EventTarget); +goog.events.EventTarget.MAX_ANCESTORS_ = 1E3; +goog.events.EventTarget.prototype.parentEventTarget_ = null; +goog.events.EventTarget.prototype.getParentEventTarget = function() { + return this.parentEventTarget_ +}; +goog.events.EventTarget.prototype.setParentEventTarget = function(parent) { + this.parentEventTarget_ = parent +}; +goog.events.EventTarget.prototype.addEventListener = function(type, handler, opt_capture, opt_handlerScope) { + goog.events.listen(this, type, handler, opt_capture, opt_handlerScope) +}; +goog.events.EventTarget.prototype.removeEventListener = function(type, handler, opt_capture, opt_handlerScope) { + goog.events.unlisten(this, type, handler, opt_capture, opt_handlerScope) +}; +goog.events.EventTarget.prototype.dispatchEvent = function(e) { + this.assertInitialized_(); + var ancestorsTree, ancestor = this.getParentEventTarget(); + if(ancestor) { + ancestorsTree = []; + var ancestorCount = 1; + for(;ancestor;ancestor = ancestor.getParentEventTarget()) { + ancestorsTree.push(ancestor); + goog.asserts.assert(++ancestorCount < goog.events.EventTarget.MAX_ANCESTORS_, "infinite loop") + } + } + return goog.events.EventTarget.dispatchEventInternal_(this.actualEventTarget_, e, ancestorsTree) +}; +goog.events.EventTarget.prototype.disposeInternal = function() { + goog.events.EventTarget.superClass_.disposeInternal.call(this); + this.removeAllListeners(); + this.parentEventTarget_ = null +}; +goog.events.EventTarget.prototype.listen = function(type, listener, opt_useCapture, opt_listenerScope) { + this.assertInitialized_(); + return this.eventTargetListeners_.add(type, listener, false, opt_useCapture, opt_listenerScope) +}; +goog.events.EventTarget.prototype.listenOnce = function(type, listener, opt_useCapture, opt_listenerScope) { + return this.eventTargetListeners_.add(type, listener, true, opt_useCapture, opt_listenerScope) +}; +goog.events.EventTarget.prototype.unlisten = function(type, listener, opt_useCapture, opt_listenerScope) { + return this.eventTargetListeners_.remove(type, listener, opt_useCapture, opt_listenerScope) +}; +goog.events.EventTarget.prototype.unlistenByKey = function(key) { + return this.eventTargetListeners_.removeByKey(key) +}; +goog.events.EventTarget.prototype.removeAllListeners = function(opt_type) { + if(!this.eventTargetListeners_) { + return 0 + } + return this.eventTargetListeners_.removeAll(opt_type) +}; +goog.events.EventTarget.prototype.fireListeners = function(type, capture, eventObject) { + var listenerArray = this.eventTargetListeners_.listeners[type]; + if(!listenerArray) { + return true + } + listenerArray = goog.array.clone(listenerArray); + var rv = true; + for(var i = 0;i < listenerArray.length;++i) { + var listener = listenerArray[i]; + if(listener && !listener.removed && listener.capture == capture) { + var listenerFn = listener.listener; + var listenerHandler = listener.handler || listener.src; + if(listener.callOnce) { + this.unlistenByKey(listener) + } + rv = listenerFn.call(listenerHandler, eventObject) !== false && rv + } + } + return rv && eventObject.returnValue_ != false +}; +goog.events.EventTarget.prototype.getListeners = function(type, capture) { + return this.eventTargetListeners_.getListeners(type, capture) +}; +goog.events.EventTarget.prototype.getListener = function(type, listener, capture, opt_listenerScope) { + return this.eventTargetListeners_.getListener(type, listener, capture, opt_listenerScope) +}; +goog.events.EventTarget.prototype.hasListener = function(opt_type, opt_capture) { + return this.eventTargetListeners_.hasListener(opt_type, opt_capture) +}; +goog.events.EventTarget.prototype.setTargetForTesting = function(target) { + this.actualEventTarget_ = target +}; +goog.events.EventTarget.prototype.assertInitialized_ = function() { + goog.asserts.assert(this.eventTargetListeners_, "Event target is not initialized. Did you call the superclass " + "(goog.events.EventTarget) constructor?") +}; +goog.events.EventTarget.dispatchEventInternal_ = function(target, e, opt_ancestorsTree) { + var type = e.type || (e); + if(goog.isString(e)) { + e = new goog.events.Event(e, target) + }else { + if(!(e instanceof goog.events.Event)) { + var oldEvent = e; + e = new goog.events.Event(type, target); + goog.object.extend(e, oldEvent) + }else { + e.target = e.target || target + } + } + var rv = true, currentTarget; + if(opt_ancestorsTree) { + for(var i = opt_ancestorsTree.length - 1;!e.propagationStopped_ && i >= 0;i--) { + currentTarget = e.currentTarget = opt_ancestorsTree[i]; + rv = currentTarget.fireListeners(type, true, e) && rv + } + } + if(!e.propagationStopped_) { + currentTarget = e.currentTarget = target; + rv = currentTarget.fireListeners(type, true, e) && rv; + if(!e.propagationStopped_) { + rv = currentTarget.fireListeners(type, false, e) && rv + } + } + if(opt_ancestorsTree) { + for(i = 0;!e.propagationStopped_ && i < opt_ancestorsTree.length;i++) { + currentTarget = e.currentTarget = opt_ancestorsTree[i]; + rv = currentTarget.fireListeners(type, false, e) && rv + } + } + return rv +}; +goog.provide("ol.Object"); +goog.provide("ol.ObjectEventType"); +goog.require("goog.array"); +goog.require("goog.events"); +goog.require("goog.events.EventTarget"); +goog.require("goog.object"); +ol.ObjectEventType = {CHANGE:"change"}; +ol.ObjectProperty = {ACCESSORS:"ol_accessors_", BINDINGS:"ol_bindings_"}; +ol.Object = function(opt_values) { + goog.base(this); + this.values_ = {}; + if(goog.isDef(opt_values)) { + this.setValues(opt_values) + } +}; +goog.inherits(ol.Object, goog.events.EventTarget); +ol.Object.changeEventTypeCache_ = {}; +ol.Object.getterNameCache_ = {}; +ol.Object.setterNameCache_ = {}; +ol.Object.capitalize = function(str) { + return str.substr(0, 1).toUpperCase() + str.substr(1) +}; +ol.Object.getAccessors = function(obj) { + return obj[ol.ObjectProperty.ACCESSORS] || (obj[ol.ObjectProperty.ACCESSORS] = {}) +}; +ol.Object.getChangeEventType = function(key) { + return ol.Object.changeEventTypeCache_.hasOwnProperty(key) ? ol.Object.changeEventTypeCache_[key] : ol.Object.changeEventTypeCache_[key] = "change:" + key.toLowerCase() +}; +ol.Object.getGetterName = function(key) { + return ol.Object.getterNameCache_.hasOwnProperty(key) ? ol.Object.getterNameCache_[key] : ol.Object.getterNameCache_[key] = "get" + ol.Object.capitalize(key) +}; +ol.Object.getListeners = function(obj) { + return obj[ol.ObjectProperty.BINDINGS] || (obj[ol.ObjectProperty.BINDINGS] = {}) +}; +ol.Object.getSetterName = function(key) { + return ol.Object.setterNameCache_.hasOwnProperty(key) ? ol.Object.setterNameCache_[key] : ol.Object.setterNameCache_[key] = "set" + ol.Object.capitalize(key) +}; +ol.Object.prototype.bindTo = function(key, target, opt_targetKey, opt_noNotify) { + var targetKey = opt_targetKey || key; + this.unbind(key); + var eventType = ol.Object.getChangeEventType(targetKey); + var listeners = ol.Object.getListeners(this); + listeners[key] = goog.events.listen(target, eventType, function() { + this.notifyInternal_(key) + }, undefined, this); + var accessors = ol.Object.getAccessors(this); + accessors[key] = {target:target, key:targetKey}; + var noNotify = opt_noNotify || false; + if(!noNotify) { + this.notifyInternal_(key) + } +}; +ol.Object.prototype.get = function(key) { + var value; + var accessors = ol.Object.getAccessors(this); + if(accessors.hasOwnProperty(key)) { + var accessor = accessors[key]; + var target = accessor.target; + var targetKey = accessor.key; + var getterName = ol.Object.getGetterName(targetKey); + if(target[getterName]) { + value = target[getterName]() + }else { + value = target.get(targetKey) + } + }else { + if(this.values_.hasOwnProperty(key)) { + value = this.values_[key] + } + } + return value +}; +ol.Object.prototype.getKeys = function() { + var keys = goog.object.getKeys(ol.Object.getAccessors(this)).concat(goog.object.getKeys(this.values_)); + goog.array.removeDuplicates(keys); + return keys +}; +ol.Object.prototype.notify = function(key) { + var accessors = ol.Object.getAccessors(this); + if(accessors.hasOwnProperty(key)) { + var accessor = accessors[key]; + var target = accessor.target; + var targetKey = accessor.key; + target.notify(targetKey) + }else { + this.notifyInternal_(key) + } +}; +ol.Object.prototype.notifyInternal_ = function(key) { + var eventType = ol.Object.getChangeEventType(key); + this.dispatchEvent(eventType); + this.dispatchEvent(ol.ObjectEventType.CHANGE) +}; +ol.Object.prototype.on = function(type, listener, opt_scope) { + return goog.events.listen(this, type, listener, false, opt_scope) +}; +ol.Object.prototype.once = function(type, listener, opt_scope) { + return goog.events.listenOnce(this, type, listener, false, opt_scope) +}; +ol.Object.prototype.set = function(key, value) { + var accessors = ol.Object.getAccessors(this); + if(accessors.hasOwnProperty(key)) { + var accessor = accessors[key]; + var target = accessor.target; + var targetKey = accessor.key; + var setterName = ol.Object.getSetterName(targetKey); + if(target[setterName]) { + target[setterName](value) + }else { + target.set(targetKey, value) + } + }else { + this.values_[key] = value; + this.notifyInternal_(key) + } +}; +ol.Object.prototype.setValues = function(values) { + var key, value, setterName; + for(key in values) { + value = values[key]; + setterName = ol.Object.getSetterName(key); + if(this[setterName]) { + this[setterName](value) + }else { + this.set(key, value) + } + } +}; +ol.Object.prototype.unbind = function(key) { + var listeners = ol.Object.getListeners(this); + var listener = listeners[key]; + if(listener) { + delete listeners[key]; + goog.events.unlistenByKey(listener); + var value = this.get(key); + var accessors = ol.Object.getAccessors(this); + delete accessors[key]; + this.values_[key] = value + } +}; +ol.Object.prototype.un = function(type, listener, opt_scope) { + goog.events.unlisten(this, type, listener, false, opt_scope) +}; +ol.Object.prototype.unByKey = function(key) { + goog.events.unlistenByKey(key) +}; +ol.Object.prototype.unbindAll = function() { + for(var key in ol.Object.getListeners(this)) { + this.unbind(key) + } +}; +goog.provide("ol.Collection"); +goog.provide("ol.CollectionEvent"); +goog.provide("ol.CollectionEventType"); +goog.require("goog.array"); +goog.require("goog.events.Event"); +goog.require("ol.Object"); +ol.CollectionEventType = {ADD:"add", REMOVE:"remove"}; +ol.CollectionEvent = function(type, opt_elem, opt_target) { + goog.base(this, type, opt_target); + this.elem_ = opt_elem +}; +goog.inherits(ol.CollectionEvent, goog.events.Event); +ol.CollectionEvent.prototype.getElement = function() { + return this.elem_ +}; +ol.CollectionProperty = {LENGTH:"length"}; +ol.Collection = function(opt_array) { + goog.base(this); + this.array_ = opt_array || []; + this.updateLength_() +}; +goog.inherits(ol.Collection, ol.Object); +ol.Collection.prototype.clear = function() { + while(this.getLength() > 0) { + this.pop() + } +}; +ol.Collection.prototype.extend = function(arr) { + var i, ii; + for(i = 0, ii = arr.length;i < ii;++i) { + this.push(arr[i]) + } + return this +}; +ol.Collection.prototype.forEach = function(f, opt_obj) { + goog.array.forEach(this.array_, f, opt_obj) +}; +ol.Collection.prototype.getArray = function() { + return this.array_ +}; +ol.Collection.prototype.getAt = function(index) { + return this.array_[index] +}; +ol.Collection.prototype.getLength = function() { + return(this.get(ol.CollectionProperty.LENGTH)) +}; +ol.Collection.prototype.insertAt = function(index, elem) { + goog.array.insertAt(this.array_, elem, index); + this.updateLength_(); + this.dispatchEvent(new ol.CollectionEvent(ol.CollectionEventType.ADD, elem, this)) +}; +ol.Collection.prototype.pop = function() { + return this.removeAt(this.getLength() - 1) +}; +ol.Collection.prototype.push = function(elem) { + var n = this.array_.length; + this.insertAt(n, elem); + return n +}; +ol.Collection.prototype.remove = function(elem) { + var arr = this.array_; + var i, ii; + for(i = 0, ii = arr.length;i < ii;++i) { + if(arr[i] === elem) { + return this.removeAt(i) + } + } + return undefined +}; +ol.Collection.prototype.removeAt = function(index) { + var prev = this.array_[index]; + goog.array.removeAt(this.array_, index); + this.updateLength_(); + this.dispatchEvent(new ol.CollectionEvent(ol.CollectionEventType.REMOVE, prev, this)); + return prev +}; +ol.Collection.prototype.setAt = function(index, elem) { + var n = this.getLength(); + if(index < n) { + var prev = this.array_[index]; + this.array_[index] = elem; + this.dispatchEvent(new ol.CollectionEvent(ol.CollectionEventType.REMOVE, prev, this)); + this.dispatchEvent(new ol.CollectionEvent(ol.CollectionEventType.ADD, elem, this)) + }else { + var j; + for(j = n;j < index;++j) { + this.insertAt(j, undefined) + } + this.insertAt(index, elem) + } +}; +ol.Collection.prototype.updateLength_ = function() { + this.set(ol.CollectionProperty.LENGTH, this.array_.length) +}; +goog.provide("goog.color.names"); +goog.color.names = {"aliceblue":"#f0f8ff", "antiquewhite":"#faebd7", "aqua":"#00ffff", "aquamarine":"#7fffd4", "azure":"#f0ffff", "beige":"#f5f5dc", "bisque":"#ffe4c4", "black":"#000000", "blanchedalmond":"#ffebcd", "blue":"#0000ff", "blueviolet":"#8a2be2", "brown":"#a52a2a", "burlywood":"#deb887", "cadetblue":"#5f9ea0", "chartreuse":"#7fff00", "chocolate":"#d2691e", "coral":"#ff7f50", "cornflowerblue":"#6495ed", "cornsilk":"#fff8dc", "crimson":"#dc143c", "cyan":"#00ffff", "darkblue":"#00008b", "darkcyan":"#008b8b", +"darkgoldenrod":"#b8860b", "darkgray":"#a9a9a9", "darkgreen":"#006400", "darkgrey":"#a9a9a9", "darkkhaki":"#bdb76b", "darkmagenta":"#8b008b", "darkolivegreen":"#556b2f", "darkorange":"#ff8c00", "darkorchid":"#9932cc", "darkred":"#8b0000", "darksalmon":"#e9967a", "darkseagreen":"#8fbc8f", "darkslateblue":"#483d8b", "darkslategray":"#2f4f4f", "darkslategrey":"#2f4f4f", "darkturquoise":"#00ced1", "darkviolet":"#9400d3", "deeppink":"#ff1493", "deepskyblue":"#00bfff", "dimgray":"#696969", "dimgrey":"#696969", +"dodgerblue":"#1e90ff", "firebrick":"#b22222", "floralwhite":"#fffaf0", "forestgreen":"#228b22", "fuchsia":"#ff00ff", "gainsboro":"#dcdcdc", "ghostwhite":"#f8f8ff", "gold":"#ffd700", "goldenrod":"#daa520", "gray":"#808080", "green":"#008000", "greenyellow":"#adff2f", "grey":"#808080", "honeydew":"#f0fff0", "hotpink":"#ff69b4", "indianred":"#cd5c5c", "indigo":"#4b0082", "ivory":"#fffff0", "khaki":"#f0e68c", "lavender":"#e6e6fa", "lavenderblush":"#fff0f5", "lawngreen":"#7cfc00", "lemonchiffon":"#fffacd", +"lightblue":"#add8e6", "lightcoral":"#f08080", "lightcyan":"#e0ffff", "lightgoldenrodyellow":"#fafad2", "lightgray":"#d3d3d3", "lightgreen":"#90ee90", "lightgrey":"#d3d3d3", "lightpink":"#ffb6c1", "lightsalmon":"#ffa07a", "lightseagreen":"#20b2aa", "lightskyblue":"#87cefa", "lightslategray":"#778899", "lightslategrey":"#778899", "lightsteelblue":"#b0c4de", "lightyellow":"#ffffe0", "lime":"#00ff00", "limegreen":"#32cd32", "linen":"#faf0e6", "magenta":"#ff00ff", "maroon":"#800000", "mediumaquamarine":"#66cdaa", +"mediumblue":"#0000cd", "mediumorchid":"#ba55d3", "mediumpurple":"#9370db", "mediumseagreen":"#3cb371", "mediumslateblue":"#7b68ee", "mediumspringgreen":"#00fa9a", "mediumturquoise":"#48d1cc", "mediumvioletred":"#c71585", "midnightblue":"#191970", "mintcream":"#f5fffa", "mistyrose":"#ffe4e1", "moccasin":"#ffe4b5", "navajowhite":"#ffdead", "navy":"#000080", "oldlace":"#fdf5e6", "olive":"#808000", "olivedrab":"#6b8e23", "orange":"#ffa500", "orangered":"#ff4500", "orchid":"#da70d6", "palegoldenrod":"#eee8aa", +"palegreen":"#98fb98", "paleturquoise":"#afeeee", "palevioletred":"#db7093", "papayawhip":"#ffefd5", "peachpuff":"#ffdab9", "peru":"#cd853f", "pink":"#ffc0cb", "plum":"#dda0dd", "powderblue":"#b0e0e6", "purple":"#800080", "red":"#ff0000", "rosybrown":"#bc8f8f", "royalblue":"#4169e1", "saddlebrown":"#8b4513", "salmon":"#fa8072", "sandybrown":"#f4a460", "seagreen":"#2e8b57", "seashell":"#fff5ee", "sienna":"#a0522d", "silver":"#c0c0c0", "skyblue":"#87ceeb", "slateblue":"#6a5acd", "slategray":"#708090", +"slategrey":"#708090", "snow":"#fffafa", "springgreen":"#00ff7f", "steelblue":"#4682b4", "tan":"#d2b48c", "teal":"#008080", "thistle":"#d8bfd8", "tomato":"#ff6347", "turquoise":"#40e0d0", "violet":"#ee82ee", "wheat":"#f5deb3", "white":"#ffffff", "whitesmoke":"#f5f5f5", "yellow":"#ffff00", "yellowgreen":"#9acd32"}; +goog.provide("goog.math"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.math.randomInt = function(a) { + return Math.floor(Math.random() * a) +}; +goog.math.uniformRandom = function(a, b) { + return a + Math.random() * (b - a) +}; +goog.math.clamp = function(value, min, max) { + return Math.min(Math.max(value, min), max) +}; +goog.math.modulo = function(a, b) { + var r = a % b; + return r * b < 0 ? r + b : r +}; +goog.math.lerp = function(a, b, x) { + return a + x * (b - a) +}; +goog.math.nearlyEquals = function(a, b, opt_tolerance) { + return Math.abs(a - b) <= (opt_tolerance || 1E-6) +}; +goog.math.standardAngle = function(angle) { + return goog.math.modulo(angle, 360) +}; +goog.math.toRadians = function(angleDegrees) { + return angleDegrees * Math.PI / 180 +}; +goog.math.toDegrees = function(angleRadians) { + return angleRadians * 180 / Math.PI +}; +goog.math.angleDx = function(degrees, radius) { + return radius * Math.cos(goog.math.toRadians(degrees)) +}; +goog.math.angleDy = function(degrees, radius) { + return radius * Math.sin(goog.math.toRadians(degrees)) +}; +goog.math.angle = function(x1, y1, x2, y2) { + return goog.math.standardAngle(goog.math.toDegrees(Math.atan2(y2 - y1, x2 - x1))) +}; +goog.math.angleDifference = function(startAngle, endAngle) { + var d = goog.math.standardAngle(endAngle) - goog.math.standardAngle(startAngle); + if(d > 180) { + d = d - 360 + }else { + if(d <= -180) { + d = 360 + d + } + } + return d +}; +goog.math.sign = function(x) { + return x == 0 ? 0 : x < 0 ? -1 : 1 +}; +goog.math.longestCommonSubsequence = function(array1, array2, opt_compareFn, opt_collectorFn) { + var compare = opt_compareFn || function(a, b) { + return a == b + }; + var collect = opt_collectorFn || function(i1, i2) { + return array1[i1] + }; + var length1 = array1.length; + var length2 = array2.length; + var arr = []; + for(var i = 0;i < length1 + 1;i++) { + arr[i] = []; + arr[i][0] = 0 + } + for(var j = 0;j < length2 + 1;j++) { + arr[0][j] = 0 + } + for(i = 1;i <= length1;i++) { + for(j = 1;j <= length2;j++) { + if(compare(array1[i - 1], array2[j - 1])) { + arr[i][j] = arr[i - 1][j - 1] + 1 + }else { + arr[i][j] = Math.max(arr[i - 1][j], arr[i][j - 1]) + } + } + } + var result = []; + var i = length1, j = length2; + while(i > 0 && j > 0) { + if(compare(array1[i - 1], array2[j - 1])) { + result.unshift(collect(i - 1, j - 1)); + i--; + j-- + }else { + if(arr[i - 1][j] > arr[i][j - 1]) { + i-- + }else { + j-- + } + } + } + return result +}; +goog.math.sum = function(var_args) { + return(goog.array.reduce(arguments, function(sum, value) { + return sum + value + }, 0)) +}; +goog.math.average = function(var_args) { + return goog.math.sum.apply(null, arguments) / arguments.length +}; +goog.math.standardDeviation = function(var_args) { + var sampleSize = arguments.length; + if(sampleSize < 2) { + return 0 + } + var mean = goog.math.average.apply(null, arguments); + var variance = goog.math.sum.apply(null, goog.array.map(arguments, function(val) { + return Math.pow(val - mean, 2) + })) / (sampleSize - 1); + return Math.sqrt(variance) +}; +goog.math.isInt = function(num) { + return isFinite(num) && num % 1 == 0 +}; +goog.math.isFiniteNumber = function(num) { + return isFinite(num) && !isNaN(num) +}; +goog.math.safeFloor = function(num, opt_epsilon) { + goog.asserts.assert(!goog.isDef(opt_epsilon) || opt_epsilon > 0); + return Math.floor(num + (opt_epsilon || 2E-15)) +}; +goog.math.safeCeil = function(num, opt_epsilon) { + goog.asserts.assert(!goog.isDef(opt_epsilon) || opt_epsilon > 0); + return Math.ceil(num - (opt_epsilon || 2E-15)) +}; +goog.provide("goog.color"); +goog.require("goog.color.names"); +goog.require("goog.math"); +goog.color.Rgb; +goog.color.Hsv; +goog.color.Hsl; +goog.color.parse = function(str) { + var result = {}; + str = String(str); + var maybeHex = goog.color.prependHashIfNecessaryHelper(str); + if(goog.color.isValidHexColor_(maybeHex)) { + result.hex = goog.color.normalizeHex(maybeHex); + result.type = "hex"; + return result + }else { + var rgb = goog.color.isValidRgbColor_(str); + if(rgb.length) { + result.hex = goog.color.rgbArrayToHex(rgb); + result.type = "rgb"; + return result + }else { + if(goog.color.names) { + var hex = goog.color.names[str.toLowerCase()]; + if(hex) { + result.hex = hex; + result.type = "named"; + return result + } + } + } + } + throw Error(str + " is not a valid color string"); +}; +goog.color.isValidColor = function(str) { + var maybeHex = goog.color.prependHashIfNecessaryHelper(str); + return!!(goog.color.isValidHexColor_(maybeHex) || goog.color.isValidRgbColor_(str).length || goog.color.names && goog.color.names[str.toLowerCase()]) +}; +goog.color.parseRgb = function(str) { + var rgb = goog.color.isValidRgbColor_(str); + if(!rgb.length) { + throw Error(str + " is not a valid RGB color"); + } + return rgb +}; +goog.color.hexToRgbStyle = function(hexColor) { + return goog.color.rgbStyle_(goog.color.hexToRgb(hexColor)) +}; +goog.color.hexTripletRe_ = /#(.)(.)(.)/; +goog.color.normalizeHex = function(hexColor) { + if(!goog.color.isValidHexColor_(hexColor)) { + throw Error("'" + hexColor + "' is not a valid hex color"); + } + if(hexColor.length == 4) { + hexColor = hexColor.replace(goog.color.hexTripletRe_, "#$1$1$2$2$3$3") + } + return hexColor.toLowerCase() +}; +goog.color.hexToRgb = function(hexColor) { + hexColor = goog.color.normalizeHex(hexColor); + var r = parseInt(hexColor.substr(1, 2), 16); + var g = parseInt(hexColor.substr(3, 2), 16); + var b = parseInt(hexColor.substr(5, 2), 16); + return[r, g, b] +}; +goog.color.rgbToHex = function(r, g, b) { + r = Number(r); + g = Number(g); + b = Number(b); + if(isNaN(r) || r < 0 || r > 255 || isNaN(g) || g < 0 || g > 255 || isNaN(b) || b < 0 || b > 255) { + throw Error('"(' + r + "," + g + "," + b + '") is not a valid RGB color'); + } + var hexR = goog.color.prependZeroIfNecessaryHelper(r.toString(16)); + var hexG = goog.color.prependZeroIfNecessaryHelper(g.toString(16)); + var hexB = goog.color.prependZeroIfNecessaryHelper(b.toString(16)); + return"#" + hexR + hexG + hexB +}; +goog.color.rgbArrayToHex = function(rgb) { + return goog.color.rgbToHex(rgb[0], rgb[1], rgb[2]) +}; +goog.color.rgbToHsl = function(r, g, b) { + var normR = r / 255; + var normG = g / 255; + var normB = b / 255; + var max = Math.max(normR, normG, normB); + var min = Math.min(normR, normG, normB); + var h = 0; + var s = 0; + var l = 0.5 * (max + min); + if(max != min) { + if(max == normR) { + h = 60 * (normG - normB) / (max - min) + }else { + if(max == normG) { + h = 60 * (normB - normR) / (max - min) + 120 + }else { + if(max == normB) { + h = 60 * (normR - normG) / (max - min) + 240 + } + } + } + if(0 < l && l <= 0.5) { + s = (max - min) / (2 * l) + }else { + s = (max - min) / (2 - 2 * l) + } + } + return[Math.round(h + 360) % 360, s, l] +}; +goog.color.rgbArrayToHsl = function(rgb) { + return goog.color.rgbToHsl(rgb[0], rgb[1], rgb[2]) +}; +goog.color.hueToRgb_ = function(v1, v2, vH) { + if(vH < 0) { + vH += 1 + }else { + if(vH > 1) { + vH -= 1 + } + } + if(6 * vH < 1) { + return v1 + (v2 - v1) * 6 * vH + }else { + if(2 * vH < 1) { + return v2 + }else { + if(3 * vH < 2) { + return v1 + (v2 - v1) * (2 / 3 - vH) * 6 + } + } + } + return v1 +}; +goog.color.hslToRgb = function(h, s, l) { + var r = 0; + var g = 0; + var b = 0; + var normH = h / 360; + if(s == 0) { + r = g = b = l * 255 + }else { + var temp1 = 0; + var temp2 = 0; + if(l < 0.5) { + temp2 = l * (1 + s) + }else { + temp2 = l + s - s * l + } + temp1 = 2 * l - temp2; + r = 255 * goog.color.hueToRgb_(temp1, temp2, normH + 1 / 3); + g = 255 * goog.color.hueToRgb_(temp1, temp2, normH); + b = 255 * goog.color.hueToRgb_(temp1, temp2, normH - 1 / 3) + } + return[Math.round(r), Math.round(g), Math.round(b)] +}; +goog.color.hslArrayToRgb = function(hsl) { + return goog.color.hslToRgb(hsl[0], hsl[1], hsl[2]) +}; +goog.color.validHexColorRe_ = /^#(?:[0-9a-f]{3}){1,2}$/i; +goog.color.isValidHexColor_ = function(str) { + return goog.color.validHexColorRe_.test(str) +}; +goog.color.normalizedHexColorRe_ = /^#[0-9a-f]{6}$/; +goog.color.isNormalizedHexColor_ = function(str) { + return goog.color.normalizedHexColorRe_.test(str) +}; +goog.color.rgbColorRe_ = /^(?:rgb)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2})\)$/i; +goog.color.isValidRgbColor_ = function(str) { + var regExpResultArray = str.match(goog.color.rgbColorRe_); + if(regExpResultArray) { + var r = Number(regExpResultArray[1]); + var g = Number(regExpResultArray[2]); + var b = Number(regExpResultArray[3]); + if(r >= 0 && r <= 255 && g >= 0 && g <= 255 && b >= 0 && b <= 255) { + return[r, g, b] + } + } + return[] +}; +goog.color.prependZeroIfNecessaryHelper = function(hex) { + return hex.length == 1 ? "0" + hex : hex +}; +goog.color.prependHashIfNecessaryHelper = function(str) { + return str.charAt(0) == "#" ? str : "#" + str +}; +goog.color.rgbStyle_ = function(rgb) { + return"rgb(" + rgb.join(",") + ")" +}; +goog.color.hsvToRgb = function(h, s, brightness) { + var red = 0; + var green = 0; + var blue = 0; + if(s == 0) { + red = brightness; + green = brightness; + blue = brightness + }else { + var sextant = Math.floor(h / 60); + var remainder = h / 60 - sextant; + var val1 = brightness * (1 - s); + var val2 = brightness * (1 - s * remainder); + var val3 = brightness * (1 - s * (1 - remainder)); + switch(sextant) { + case 1: + red = val2; + green = brightness; + blue = val1; + break; + case 2: + red = val1; + green = brightness; + blue = val3; + break; + case 3: + red = val1; + green = val2; + blue = brightness; + break; + case 4: + red = val3; + green = val1; + blue = brightness; + break; + case 5: + red = brightness; + green = val1; + blue = val2; + break; + case 6: + ; + case 0: + red = brightness; + green = val3; + blue = val1; + break + } + } + return[Math.floor(red), Math.floor(green), Math.floor(blue)] +}; +goog.color.rgbToHsv = function(red, green, blue) { + var max = Math.max(Math.max(red, green), blue); + var min = Math.min(Math.min(red, green), blue); + var hue; + var saturation; + var value = max; + if(min == max) { + hue = 0; + saturation = 0 + }else { + var delta = max - min; + saturation = delta / max; + if(red == max) { + hue = (green - blue) / delta + }else { + if(green == max) { + hue = 2 + (blue - red) / delta + }else { + hue = 4 + (red - green) / delta + } + } + hue *= 60; + if(hue < 0) { + hue += 360 + } + if(hue > 360) { + hue -= 360 + } + } + return[hue, saturation, value] +}; +goog.color.rgbArrayToHsv = function(rgb) { + return goog.color.rgbToHsv(rgb[0], rgb[1], rgb[2]) +}; +goog.color.hsvArrayToRgb = function(hsv) { + return goog.color.hsvToRgb(hsv[0], hsv[1], hsv[2]) +}; +goog.color.hexToHsl = function(hex) { + var rgb = goog.color.hexToRgb(hex); + return goog.color.rgbToHsl(rgb[0], rgb[1], rgb[2]) +}; +goog.color.hslToHex = function(h, s, l) { + return goog.color.rgbArrayToHex(goog.color.hslToRgb(h, s, l)) +}; +goog.color.hslArrayToHex = function(hsl) { + return goog.color.rgbArrayToHex(goog.color.hslToRgb(hsl[0], hsl[1], hsl[2])) +}; +goog.color.hexToHsv = function(hex) { + return goog.color.rgbArrayToHsv(goog.color.hexToRgb(hex)) +}; +goog.color.hsvToHex = function(h, s, v) { + return goog.color.rgbArrayToHex(goog.color.hsvToRgb(h, s, v)) +}; +goog.color.hsvArrayToHex = function(hsv) { + return goog.color.hsvToHex(hsv[0], hsv[1], hsv[2]) +}; +goog.color.hslDistance = function(hsl1, hsl2) { + var sl1, sl2; + if(hsl1[2] <= 0.5) { + sl1 = hsl1[1] * hsl1[2] + }else { + sl1 = hsl1[1] * (1 - hsl1[2]) + } + if(hsl2[2] <= 0.5) { + sl2 = hsl2[1] * hsl2[2] + }else { + sl2 = hsl2[1] * (1 - hsl2[2]) + } + var h1 = hsl1[0] / 360; + var h2 = hsl2[0] / 360; + var dh = (h1 - h2) * 2 * Math.PI; + return(hsl1[2] - hsl2[2]) * (hsl1[2] - hsl2[2]) + sl1 * sl1 + sl2 * sl2 - 2 * sl1 * sl2 * Math.cos(dh) +}; +goog.color.blend = function(rgb1, rgb2, factor) { + factor = goog.math.clamp(factor, 0, 1); + return[Math.round(factor * rgb1[0] + (1 - factor) * rgb2[0]), Math.round(factor * rgb1[1] + (1 - factor) * rgb2[1]), Math.round(factor * rgb1[2] + (1 - factor) * rgb2[2])] +}; +goog.color.darken = function(rgb, factor) { + var black = [0, 0, 0]; + return goog.color.blend(black, rgb, factor) +}; +goog.color.lighten = function(rgb, factor) { + var white = [255, 255, 255]; + return goog.color.blend(white, rgb, factor) +}; +goog.color.highContrast = function(prime, suggestions) { + var suggestionsWithDiff = []; + for(var i = 0;i < suggestions.length;i++) { + suggestionsWithDiff.push({color:suggestions[i], diff:goog.color.yiqBrightnessDiff_(suggestions[i], prime) + goog.color.colorDiff_(suggestions[i], prime)}) + } + suggestionsWithDiff.sort(function(a, b) { + return b.diff - a.diff + }); + return suggestionsWithDiff[0].color +}; +goog.color.yiqBrightness_ = function(rgb) { + return Math.round((rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1E3) +}; +goog.color.yiqBrightnessDiff_ = function(rgb1, rgb2) { + return Math.abs(goog.color.yiqBrightness_(rgb1) - goog.color.yiqBrightness_(rgb2)) +}; +goog.color.colorDiff_ = function(rgb1, rgb2) { + return Math.abs(rgb1[0] - rgb2[0]) + Math.abs(rgb1[1] - rgb2[1]) + Math.abs(rgb1[2] - rgb2[2]) +}; +goog.provide("ol.Color"); +goog.require("goog.color"); +goog.require("goog.math"); +ol.Color = function(r, g, b, a) { + this.r = goog.math.clamp(r, 0, 255); + this.g = goog.math.clamp(g, 0, 255); + this.b = goog.math.clamp(b, 0, 255); + this.a = goog.math.clamp(a, 0, 1) +}; +ol.Color.createFromString = function(str, opt_a) { + var rgb = goog.color.hexToRgb(goog.color.parse(str).hex); + var a = goog.isDef(opt_a) ? opt_a : 1; + return new ol.Color(rgb[0], rgb[1], rgb[2], a) +}; +ol.Color.equals = function(color1, color2) { + return color1.r == color2.r && color1.g == color2.g && color1.b == color2.b && color1.a == color2.a +}; +goog.provide("ol.array"); +goog.require("goog.array"); +goog.require("goog.asserts"); +ol.array.binaryFindNearest = function(arr, target) { + var index = goog.array.binarySearch(arr, target, function(a, b) { + return b - a + }); + if(index >= 0) { + return index + }else { + if(index == -1) { + return 0 + }else { + if(index == -arr.length - 1) { + return arr.length - 1 + }else { + var left = -index - 2; + var right = -index - 1; + if(arr[left] - target < target - arr[right]) { + return left + }else { + return right + } + } + } + } +}; +ol.array.linearFindNearest = function(arr, target, direction) { + var n = arr.length; + if(arr[0] <= target) { + return 0 + }else { + if(target <= arr[n - 1]) { + return n - 1 + }else { + var i; + if(direction > 0) { + for(i = 1;i < n;++i) { + if(arr[i] < target) { + return i - 1 + } + } + }else { + if(direction < 0) { + for(i = 1;i < n;++i) { + if(arr[i] <= target) { + return i + } + } + }else { + for(i = 1;i < n;++i) { + if(arr[i] == target) { + return i + }else { + if(arr[i] < target) { + if(arr[i - 1] - target < target - arr[i]) { + return i - 1 + }else { + return i + } + } + } + } + } + } + goog.asserts.fail(); + return n - 1 + } + } +}; +goog.provide("ol.ResolutionConstraint"); +goog.provide("ol.ResolutionConstraintType"); +goog.require("goog.math"); +goog.require("ol.array"); +ol.ResolutionConstraintType; +ol.ResolutionConstraint.createSnapToResolutions = function(resolutions) { + return function(resolution, delta, direction) { + if(goog.isDef(resolution)) { + var z = ol.array.linearFindNearest(resolutions, resolution, direction); + z = goog.math.clamp(z + delta, 0, resolutions.length - 1); + return resolutions[z] + }else { + return undefined + } + } +}; +ol.ResolutionConstraint.createSnapToPower = function(power, maxResolution, opt_maxLevel) { + return function(resolution, delta, direction) { + if(goog.isDef(resolution)) { + var offset; + if(direction > 0) { + offset = 0 + }else { + if(direction < 0) { + offset = 1 + }else { + offset = 0.5 + } + } + var oldLevel = Math.floor(Math.log(maxResolution / resolution) / Math.log(power) + offset); + var newLevel = Math.max(oldLevel + delta, 0); + if(goog.isDef(opt_maxLevel)) { + newLevel = Math.min(newLevel, opt_maxLevel) + } + return maxResolution / Math.pow(power, newLevel) + }else { + return undefined + } + } +}; +goog.provide("ol.RotationConstraint"); +goog.provide("ol.RotationConstraintType"); +ol.RotationConstraintType; +ol.RotationConstraint.none = function(rotation, delta) { + if(goog.isDef(rotation)) { + return rotation + delta + }else { + return undefined + } +}; +ol.RotationConstraint.createSnapToN = function(n) { + var theta = 2 * Math.PI / n; + return function(rotation, delta) { + if(goog.isDef(rotation)) { + rotation = Math.floor((rotation + delta) / theta + 0.5) * theta; + return rotation + }else { + return undefined + } + } +}; +ol.RotationConstraint.createSnapToZero = function(opt_tolerance) { + var tolerance = opt_tolerance || 0.1; + return function(rotation, delta) { + if(goog.isDef(rotation)) { + if(Math.abs(rotation + delta) <= tolerance) { + return 0 + }else { + return rotation + delta + } + }else { + return undefined + } + } +}; +goog.provide("ol.Constraints"); +goog.require("ol.ResolutionConstraintType"); +goog.require("ol.RotationConstraintType"); +ol.Constraints = function(resolutionConstraint, rotationConstraint) { + this.resolution = resolutionConstraint; + this.rotation = rotationConstraint +}; +goog.provide("ol.Coordinate"); +goog.provide("ol.CoordinateArray"); +goog.provide("ol.CoordinateFormatType"); +goog.provide("ol.coordinate"); +goog.require("goog.math"); +ol.CoordinateFormatType; +ol.Coordinate; +ol.CoordinateArray; +ol.coordinate.add = function(coordinate, delta) { + coordinate[0] += delta[0]; + coordinate[1] += delta[1]; + return coordinate +}; +ol.coordinate.createStringXY = function(opt_precision) { + return function(coordinate) { + return ol.coordinate.toStringXY(coordinate, opt_precision) + } +}; +ol.coordinate.degreesToStringHDMS_ = function(degrees, hemispheres) { + var normalizedDegrees = goog.math.modulo(degrees + 180, 360) - 180; + var x = Math.abs(Math.round(3600 * normalizedDegrees)); + return Math.floor(x / 3600) + "\u00b0 " + Math.floor(x / 60 % 60) + "\u2032 " + Math.floor(x % 60) + "\u2033 " + hemispheres.charAt(normalizedDegrees < 0 ? 1 : 0) +}; +ol.coordinate.equals = function(coordinate1, coordinate2) { + var equals = true; + for(var i = coordinate1.length - 1;i >= 0;--i) { + if(coordinate1[i] != coordinate2[i]) { + equals = false; + break + } + } + return equals +}; +ol.coordinate.rotate = function(coordinate, angle) { + var cosAngle = Math.cos(angle); + var sinAngle = Math.sin(angle); + var x = coordinate[0] * cosAngle - coordinate[1] * sinAngle; + var y = coordinate[1] * cosAngle + coordinate[0] * sinAngle; + coordinate[0] = x; + coordinate[1] = y; + return coordinate +}; +ol.coordinate.scale = function(coordinate, s) { + coordinate[0] *= s; + coordinate[1] *= s; + return coordinate +}; +ol.coordinate.squaredDistance = function(coord1, coord2) { + var dx = coord1[0] - coord2[0]; + var dy = coord1[1] - coord2[1]; + return dx * dx + dy * dy +}; +ol.coordinate.closestOnSegment = function(coordinate, segment) { + var x0 = coordinate[0]; + var y0 = coordinate[1]; + var start = segment[0]; + var end = segment[1]; + var x1 = start[0]; + var y1 = start[1]; + var x2 = end[0]; + var y2 = end[1]; + var dx = x2 - x1; + var dy = y2 - y1; + var along = dx == 0 && dy == 0 ? 0 : (dx * (x0 - x1) + dy * (y0 - y1)) / (dx * dx + dy * dy || 0); + var x, y; + if(along <= 0) { + x = x1; + y = y1 + }else { + if(along >= 1) { + x = x2; + y = y2 + }else { + x = x1 + along * dx; + y = y1 + along * dy + } + } + var xDist = x - x0; + var yDist = y - y0; + return[x, y, xDist * xDist + yDist * yDist, along] +}; +ol.coordinate.toStringHDMS = function(coordinate) { + if(goog.isDef(coordinate)) { + return ol.coordinate.degreesToStringHDMS_(coordinate[1], "NS") + " " + ol.coordinate.degreesToStringHDMS_(coordinate[0], "EW") + }else { + return"" + } +}; +ol.coordinate.toStringXY = function(coordinate, opt_precision) { + if(goog.isDef(coordinate)) { + var precision = opt_precision || 0; + return coordinate[0].toFixed(precision) + ", " + coordinate[1].toFixed(precision) + }else { + return"" + } +}; +ol.coordinate.fromProjectedArray = function(array, axis) { + var firstAxis = axis.charAt(0); + if(firstAxis === "n" || firstAxis === "s") { + return[array[1], array[0]] + }else { + return array + } +}; +goog.provide("ol.DeviceOrientation"); +goog.provide("ol.DeviceOrientation.SUPPORTED"); +goog.provide("ol.DeviceOrientationProperty"); +goog.require("goog.events"); +goog.require("goog.math"); +goog.require("ol.Object"); +ol.DeviceOrientationProperty = {ALPHA:"alpha", BETA:"beta", GAMMA:"gamma", HEADING:"heading", TRACKING:"tracking"}; +ol.DeviceOrientation = function(opt_options) { + goog.base(this); + var options = goog.isDef(opt_options) ? opt_options : {}; + this.listenerKey_ = null; + goog.events.listen(this, ol.Object.getChangeEventType(ol.DeviceOrientationProperty.TRACKING), this.handleTrackingChanged_, false, this); + this.setTracking(goog.isDef(options.tracking) ? options.tracking : false) +}; +goog.inherits(ol.DeviceOrientation, ol.Object); +ol.DeviceOrientation.prototype.disposeInternal = function() { + this.setTracking(false); + goog.base(this, "disposeInternal") +}; +ol.DeviceOrientation.SUPPORTED = "DeviceOrientationEvent" in window; +ol.DeviceOrientation.prototype.orientationChange_ = function(browserEvent) { + var event = (browserEvent.getBrowserEvent()); + if(goog.isDefAndNotNull(event.alpha)) { + var alpha = goog.math.toRadians(event.alpha); + this.set(ol.DeviceOrientationProperty.ALPHA, alpha); + if(goog.isBoolean(event.absolute) && event.absolute) { + this.set(ol.DeviceOrientationProperty.HEADING, alpha) + }else { + if(goog.isDefAndNotNull(event.webkitCompassHeading) && goog.isDefAndNotNull(event.webkitCompassAccuracy) && event.webkitCompassAccuracy != -1) { + var heading = goog.math.toRadians(event.webkitCompassHeading); + this.set(ol.DeviceOrientationProperty.HEADING, heading) + } + } + } + if(goog.isDefAndNotNull(event.beta)) { + this.set(ol.DeviceOrientationProperty.BETA, goog.math.toRadians(event.beta)) + } + if(goog.isDefAndNotNull(event.gamma)) { + this.set(ol.DeviceOrientationProperty.GAMMA, goog.math.toRadians(event.gamma)) + } +}; +ol.DeviceOrientation.prototype.getAlpha = function() { + return(this.get(ol.DeviceOrientationProperty.ALPHA)) +}; +goog.exportProperty(ol.DeviceOrientation.prototype, "getAlpha", ol.DeviceOrientation.prototype.getAlpha); +ol.DeviceOrientation.prototype.getBeta = function() { + return(this.get(ol.DeviceOrientationProperty.BETA)) +}; +goog.exportProperty(ol.DeviceOrientation.prototype, "getBeta", ol.DeviceOrientation.prototype.getBeta); +ol.DeviceOrientation.prototype.getGamma = function() { + return(this.get(ol.DeviceOrientationProperty.GAMMA)) +}; +goog.exportProperty(ol.DeviceOrientation.prototype, "getGamma", ol.DeviceOrientation.prototype.getGamma); +ol.DeviceOrientation.prototype.getHeading = function() { + return(this.get(ol.DeviceOrientationProperty.HEADING)) +}; +goog.exportProperty(ol.DeviceOrientation.prototype, "getHeading", ol.DeviceOrientation.prototype.getHeading); +ol.DeviceOrientation.prototype.getTracking = function() { + return(this.get(ol.DeviceOrientationProperty.TRACKING)) +}; +goog.exportProperty(ol.DeviceOrientation.prototype, "getTracking", ol.DeviceOrientation.prototype.getTracking); +ol.DeviceOrientation.prototype.handleTrackingChanged_ = function() { + if(ol.DeviceOrientation.SUPPORTED) { + var tracking = this.getTracking(); + if(tracking && goog.isNull(this.listenerKey_)) { + this.listenerKey_ = goog.events.listen(window, "deviceorientation", this.orientationChange_, false, this) + }else { + if(!tracking && !goog.isNull(this.listenerKey_)) { + goog.events.unlistenByKey(this.listenerKey_); + this.listenerKey_ = null + } + } + } +}; +ol.DeviceOrientation.prototype.setTracking = function(tracking) { + this.set(ol.DeviceOrientationProperty.TRACKING, tracking) +}; +goog.exportProperty(ol.DeviceOrientation.prototype, "setTracking", ol.DeviceOrientation.prototype.setTracking); +goog.provide("ol.Ellipsoid"); +goog.require("goog.math"); +goog.require("ol.Coordinate"); +ol.Ellipsoid = function(a, flattening) { + this.a = a; + this.flattening = flattening; + this.b = this.a * (1 - this.flattening); + this.eSquared = 2 * flattening - flattening * flattening; + this.e = Math.sqrt(this.eSquared) +}; +ol.Ellipsoid.prototype.vincenty = function(c1, c2, opt_minDeltaLambda, opt_maxIterations) { + var minDeltaLambda = goog.isDef(opt_minDeltaLambda) ? opt_minDeltaLambda : 1E-12; + var maxIterations = goog.isDef(opt_maxIterations) ? opt_maxIterations : 100; + var f = this.flattening; + var lat1 = goog.math.toRadians(c1[1]); + var lat2 = goog.math.toRadians(c2[1]); + var deltaLon = goog.math.toRadians(c2[0] - c1[0]); + var U1 = Math.atan((1 - f) * Math.tan(lat1)); + var cosU1 = Math.cos(U1); + var sinU1 = Math.sin(U1); + var U2 = Math.atan((1 - f) * Math.tan(lat2)); + var cosU2 = Math.cos(U2); + var sinU2 = Math.sin(U2); + var lambda = deltaLon; + var cosSquaredAlpha, sinAlpha; + var cosLambda, deltaLambda = Infinity, sinLambda; + var cos2SigmaM, cosSigma, sigma, sinSigma; + var i; + for(i = maxIterations;i > 0;--i) { + cosLambda = Math.cos(lambda); + sinLambda = Math.sin(lambda); + var x = cosU2 * sinLambda; + var y = cosU1 * sinU2 - sinU1 * cosU2 * cosLambda; + sinSigma = Math.sqrt(x * x + y * y); + if(sinSigma === 0) { + return{distance:0, initialBearing:0, finalBearing:0} + } + cosSigma = sinU1 * sinU2 + cosU1 * cosU2 * cosLambda; + sigma = Math.atan2(sinSigma, cosSigma); + sinAlpha = cosU1 * cosU2 * sinLambda / sinSigma; + cosSquaredAlpha = 1 - sinAlpha * sinAlpha; + cos2SigmaM = cosSigma - 2 * sinU1 * sinU2 / cosSquaredAlpha; + if(isNaN(cos2SigmaM)) { + cos2SigmaM = 0 + } + var C = f / 16 * cosSquaredAlpha * (4 + f * (4 - 3 * cosSquaredAlpha)); + var lambdaPrime = deltaLon + (1 - C) * f * sinAlpha * (sigma + C * sinSigma * (cos2SigmaM + C * cosSigma * (2 * cos2SigmaM * cos2SigmaM - 1))); + deltaLambda = Math.abs(lambdaPrime - lambda); + lambda = lambdaPrime; + if(deltaLambda < minDeltaLambda) { + break + } + } + if(i === 0) { + return{distance:NaN, finalBearing:NaN, initialBearing:NaN} + } + var aSquared = this.a * this.a; + var bSquared = this.b * this.b; + var uSquared = cosSquaredAlpha * (aSquared - bSquared) / bSquared; + var A = 1 + uSquared / 16384 * (4096 + uSquared * (uSquared * (320 - 175 * uSquared) - 768)); + var B = uSquared / 1024 * (256 + uSquared * (uSquared * (74 - 47 * uSquared) - 128)); + var deltaSigma = B * sinSigma * (cos2SigmaM + B / 4 * (cosSigma * (2 * cos2SigmaM * cos2SigmaM - 1) - B / 6 * cos2SigmaM * (4 * sinSigma * sinSigma - 3) * (4 * cos2SigmaM * cos2SigmaM - 3))); + cosLambda = Math.cos(lambda); + sinLambda = Math.sin(lambda); + var alpha1 = Math.atan2(cosU2 * sinLambda, cosU1 * sinU2 - sinU1 * cosU2 * cosLambda); + var alpha2 = Math.atan2(cosU1 * sinLambda, cosU1 * sinU2 * cosLambda - sinU1 * cosU2); + return{distance:this.b * A * (sigma - deltaSigma), initialBearing:goog.math.toDegrees(alpha1), finalBearing:goog.math.toDegrees(alpha2)} +}; +ol.Ellipsoid.prototype.vincentyDistance = function(c1, c2, opt_minDeltaLambda, opt_maxIterations) { + var vincenty = this.vincenty(c1, c2, opt_minDeltaLambda, opt_maxIterations); + return vincenty.distance +}; +ol.Ellipsoid.prototype.vincentyFinalBearing = function(c1, c2, opt_minDeltaLambda, opt_maxIterations) { + var vincenty = this.vincenty(c1, c2, opt_minDeltaLambda, opt_maxIterations); + return vincenty.finalBearing +}; +ol.Ellipsoid.prototype.vincentyInitialBearing = function(c1, c2, opt_minDeltaLambda, opt_maxIterations) { + var vincenty = this.vincenty(c1, c2, opt_minDeltaLambda, opt_maxIterations); + return vincenty.initialBearing +}; +goog.provide("ol.TransformFunction"); +ol.TransformFunction; +goog.provide("ol.Extent"); +goog.provide("ol.extent"); +goog.require("goog.asserts"); +goog.require("ol.Coordinate"); +goog.require("ol.Size"); +goog.require("ol.TransformFunction"); +ol.Extent; +ol.extent.boundingExtent = function(coordinates) { + var extent = ol.extent.createEmpty(); + var n = coordinates.length; + var i; + for(i = 0;i < n;++i) { + ol.extent.extendCoordinate(extent, coordinates[i]) + } + return extent +}; +ol.extent.boundingExtentXYs_ = function(xs, ys, opt_extent) { + goog.asserts.assert(xs.length > 0); + goog.asserts.assert(ys.length > 0); + var minX = Math.min.apply(null, xs); + var maxX = Math.max.apply(null, xs); + var minY = Math.min.apply(null, ys); + var maxY = Math.max.apply(null, ys); + return ol.extent.createOrUpdate(minX, maxX, minY, maxY, opt_extent) +}; +ol.extent.containsCoordinate = function(extent, coordinate) { + return extent[0] <= coordinate[0] && coordinate[0] <= extent[1] && extent[2] <= coordinate[1] && coordinate[1] <= extent[3] +}; +ol.extent.containsExtent = function(extent1, extent2) { + return extent1[0] <= extent2[0] && extent2[1] <= extent1[1] && extent1[2] <= extent2[2] && extent2[3] <= extent1[3] +}; +ol.extent.createEmpty = function() { + return[Infinity, -Infinity, Infinity, -Infinity] +}; +ol.extent.createOrUpdate = function(minX, maxX, minY, maxY, opt_extent) { + if(goog.isDef(opt_extent)) { + opt_extent[0] = minX; + opt_extent[1] = maxX; + opt_extent[2] = minY; + opt_extent[3] = maxY; + return opt_extent + }else { + return[minX, maxX, minY, maxY] + } +}; +ol.extent.empty = function(extent) { + extent[0] = extent[2] = Infinity; + extent[1] = extent[3] = -Infinity; + return extent +}; +ol.extent.equals = function(extent1, extent2) { + return extent1[0] == extent2[0] && extent1[1] == extent2[1] && extent1[2] == extent2[2] && extent1[3] == extent2[3] +}; +ol.extent.extend = function(extent1, extent2) { + if(extent2[0] < extent1[0]) { + extent1[0] = extent2[0] + } + if(extent2[1] > extent1[1]) { + extent1[1] = extent2[1] + } + if(extent2[2] < extent1[2]) { + extent1[2] = extent2[2] + } + if(extent2[3] > extent1[3]) { + extent1[3] = extent2[3] + } +}; +ol.extent.extendCoordinate = function(extent, coordinate) { + if(coordinate[0] < extent[0]) { + extent[0] = coordinate[0] + } + if(coordinate[0] > extent[1]) { + extent[1] = coordinate[0] + } + if(coordinate[1] < extent[2]) { + extent[2] = coordinate[1] + } + if(coordinate[1] > extent[3]) { + extent[3] = coordinate[1] + } +}; +ol.extent.getBottomLeft = function(extent) { + return[extent[0], extent[2]] +}; +ol.extent.getBottomRight = function(extent) { + return[extent[1], extent[2]] +}; +ol.extent.getCenter = function(extent) { + return[(extent[0] + extent[1]) / 2, (extent[2] + extent[3]) / 2] +}; +ol.extent.getForView2DAndSize = function(center, resolution, rotation, size, opt_extent) { + var dx = resolution * size[0] / 2; + var dy = resolution * size[1] / 2; + var cosRotation = Math.cos(rotation); + var sinRotation = Math.sin(rotation); + var xs = [-dx, -dx, dx, dx]; + var ys = [-dy, dy, -dy, dy]; + var i, x, y; + for(i = 0;i < 4;++i) { + x = xs[i]; + y = ys[i]; + xs[i] = center[0] + x * cosRotation - y * sinRotation; + ys[i] = center[1] + x * sinRotation + y * cosRotation + } + return ol.extent.boundingExtentXYs_(xs, ys, opt_extent) +}; +ol.extent.getHeight = function(extent) { + return extent[3] - extent[2] +}; +ol.extent.getSize = function(extent) { + return[extent[1] - extent[0], extent[3] - extent[2]] +}; +ol.extent.getTopLeft = function(extent) { + return[extent[0], extent[3]] +}; +ol.extent.getTopRight = function(extent) { + return[extent[1], extent[3]] +}; +ol.extent.getWidth = function(extent) { + return extent[1] - extent[0] +}; +ol.extent.intersects = function(extent1, extent2) { + return extent1[0] <= extent2[1] && extent1[1] >= extent2[0] && extent1[2] <= extent2[3] && extent1[3] >= extent2[2] +}; +ol.extent.isEmpty = function(extent) { + return extent[1] < extent[0] || extent[3] < extent[2] +}; +ol.extent.normalize = function(extent, coordinate) { + return[(coordinate[0] - extent[0]) / (extent[1] - extent[0]), (coordinate[1] - extent[2]) / (extent[3] - extent[2])] +}; +ol.extent.scaleFromCenter = function(extent, value) { + var deltaX = (extent[1] - extent[0]) / 2 * (value - 1); + var deltaY = (extent[3] - extent[2]) / 2 * (value - 1); + extent[0] -= deltaX; + extent[1] += deltaX; + extent[2] -= deltaY; + extent[3] += deltaY +}; +ol.extent.toString = function(extent) { + return"(" + [extent[0], extent[1], extent[2], extent[3]].join(", ") + ")" +}; +ol.extent.transform = function(extent, transformFn, opt_extent) { + var coordinates = [extent[0], extent[2], extent[0], extent[3], extent[1], extent[2], extent[1], extent[3]]; + transformFn(coordinates, coordinates, 2); + var xs = [coordinates[0], coordinates[2], coordinates[4], coordinates[6]]; + var ys = [coordinates[1], coordinates[3], coordinates[5], coordinates[7]]; + return ol.extent.boundingExtentXYs_(xs, ys, opt_extent) +}; +goog.provide("ol.geom.SharedVertices"); +goog.require("goog.asserts"); +goog.require("ol.Coordinate"); +goog.require("ol.CoordinateArray"); +ol.geom.SharedVerticesOptions; +ol.geom.SharedVertices = function(opt_options) { + var options = opt_options ? opt_options : {}; + this.coordinates = []; + this.starts_ = []; + this.counts_ = []; + this.dimension_ = options.dimension || 2; + this.offset_ = options.offset || null; + goog.asserts.assert(goog.isNull(this.offset_) || this.offset_.length === this.dimension_) +}; +ol.geom.SharedVertices.prototype.add = function(vertices) { + var start = this.coordinates.length; + var offset = this.offset_; + var dimension = this.dimension_; + var count = vertices.length; + var vertex, index; + for(var i = 0;i < count;++i) { + vertex = vertices[i]; + index = start + i * dimension; + for(var j = 0;j < dimension;++j) { + this.coordinates[index + j] = vertex[j] - (offset ? offset[j] : 0) + } + } + var length = this.starts_.push(start); + this.counts_.push(count); + return length - 1 +}; +ol.geom.SharedVertices.prototype.get = function(id, index, dim) { + goog.asserts.assert(id < this.starts_.length); + goog.asserts.assert(dim <= this.dimension_); + goog.asserts.assert(index < this.counts_[id]); + var start = this.starts_[id]; + var value = this.coordinates[start + index * this.dimension_ + dim]; + if(this.offset_) { + value += this.offset_[dim] + } + return value +}; +ol.geom.SharedVertices.prototype.getCount = function(id) { + goog.asserts.assert(id < this.counts_.length); + return this.counts_[id] +}; +ol.geom.SharedVertices.prototype.getCounts = function() { + return this.counts_ +}; +ol.geom.SharedVertices.prototype.getDimension = function() { + return this.dimension_ +}; +ol.geom.SharedVertices.prototype.getOffset = function() { + return this.offset_ +}; +ol.geom.SharedVertices.prototype.getStart = function(id) { + goog.asserts.assert(id < this.starts_.length); + return this.starts_[id] +}; +ol.geom.SharedVertices.prototype.getStarts = function() { + return this.starts_ +}; +ol.geom.SharedVertices.prototype.set = function(id, index, dim, value) { + goog.asserts.assert(id < this.starts_.length); + goog.asserts.assert(dim <= this.dimension_); + goog.asserts.assert(index < this.counts_[id]); + var start = this.starts_[id]; + if(this.offset_) { + value -= this.offset_[dim] + } + this.coordinates[start + index * this.dimension_ + dim] = value +}; +goog.provide("ol.geom.Geometry"); +goog.provide("ol.geom.GeometryType"); +goog.require("ol.Extent"); +goog.require("ol.geom.SharedVertices"); +ol.geom.Geometry = function() { + this.vertices = null +}; +ol.geom.Geometry.prototype.dimension; +ol.geom.Geometry.prototype.clone = function() { + var clone = new this.constructor(this.getCoordinates()); + clone.dimension = this.dimension; + return clone +}; +ol.geom.Geometry.prototype.getBounds = goog.abstractMethod; +ol.geom.Geometry.prototype.getCoordinates = goog.abstractMethod; +ol.geom.Geometry.prototype.getSharedVertices = function() { + return this.vertices +}; +ol.geom.Geometry.prototype.getType = goog.abstractMethod; +ol.geom.Geometry.prototype.invalidateBounds = goog.abstractMethod; +ol.geom.GeometryType = {POINT:"point", LINESTRING:"linestring", LINEARRING:"linearring", POLYGON:"polygon", MULTIPOINT:"multipoint", MULTILINESTRING:"multilinestring", MULTIPOLYGON:"multipolygon", GEOMETRYCOLLECTION:"geometrycollection"}; +goog.provide("ol.layer.VectorLayerRenderIntent"); +ol.layer.VectorLayerRenderIntent = {DEFAULT:"default", FUTURE:"future", HIDDEN:"hidden", SELECTED:"selected", TEMPORARY:"temporary"}; +goog.provide("ol.Feature"); +goog.require("ol.Object"); +goog.require("ol.geom.Geometry"); +goog.require("ol.layer.VectorLayerRenderIntent"); +ol.Feature = function(opt_values) { + goog.base(this, opt_values); + this.featureId_; + this.geometryName_; + this.renderIntent = ol.layer.VectorLayerRenderIntent.DEFAULT; + this.symbolizers_ = null +}; +goog.inherits(ol.Feature, ol.Object); +ol.Feature.prototype.getAttributes = function() { + var keys = this.getKeys(), len = keys.length, attributes = {}, i, key; + for(i = 0;i < len;++i) { + key = keys[i]; + attributes[key] = this.get(key) + } + return attributes +}; +ol.Feature.prototype.getFeatureId = function() { + return this.featureId_ +}; +ol.Feature.prototype.getGeometry = function() { + return goog.isDef(this.geometryName_) ? (this.get(this.geometryName_)) : null +}; +ol.Feature.prototype.getSymbolizers = function() { + return this.symbolizers_ +}; +ol.Feature.prototype.set = function(key, value) { + if(!goog.isDef(this.geometryName_) && value instanceof ol.geom.Geometry) { + this.geometryName_ = key + } + goog.base(this, "set", key, value) +}; +ol.Feature.prototype.setFeatureId = function(featureId) { + this.featureId_ = featureId +}; +ol.Feature.prototype.setGeometry = function(geometry) { + if(!goog.isDef(this.geometryName_)) { + this.geometryName_ = ol.Feature.DEFAULT_GEOMETRY + } + this.set(this.geometryName_, geometry) +}; +ol.Feature.prototype.setSymbolizers = function(symbolizers) { + this.symbolizers_ = symbolizers +}; +ol.Feature.DEFAULT_GEOMETRY = "geometry"; +goog.provide("goog.vec.Float32Array"); +goog.vec.Float32Array = function(p0) { + this.length = (p0.length || p0); + for(var i = 0;i < this.length;i++) { + this[i] = p0[i] || 0 + } +}; +goog.vec.Float32Array.BYTES_PER_ELEMENT = 4; +goog.vec.Float32Array.prototype.BYTES_PER_ELEMENT = 4; +goog.vec.Float32Array.prototype.set = function(values, opt_offset) { + opt_offset = opt_offset || 0; + for(var i = 0;i < values.length && opt_offset + i < this.length;i++) { + this[opt_offset + i] = values[i] + } +}; +goog.vec.Float32Array.prototype.toString = Array.prototype.join; +if(typeof Float32Array == "undefined") { + goog.exportProperty(goog.vec.Float32Array, "BYTES_PER_ELEMENT", goog.vec.Float32Array.BYTES_PER_ELEMENT); + goog.exportProperty(goog.vec.Float32Array.prototype, "BYTES_PER_ELEMENT", goog.vec.Float32Array.prototype.BYTES_PER_ELEMENT); + goog.exportProperty(goog.vec.Float32Array.prototype, "set", goog.vec.Float32Array.prototype.set); + goog.exportProperty(goog.vec.Float32Array.prototype, "toString", goog.vec.Float32Array.prototype.toString); + goog.exportSymbol("Float32Array", goog.vec.Float32Array) +} +;goog.provide("goog.vec.Float64Array"); +goog.vec.Float64Array = function(p0) { + this.length = (p0.length || p0); + for(var i = 0;i < this.length;i++) { + this[i] = p0[i] || 0 + } +}; +goog.vec.Float64Array.BYTES_PER_ELEMENT = 8; +goog.vec.Float64Array.prototype.BYTES_PER_ELEMENT = 8; +goog.vec.Float64Array.prototype.set = function(values, opt_offset) { + opt_offset = opt_offset || 0; + for(var i = 0;i < values.length && opt_offset + i < this.length;i++) { + this[opt_offset + i] = values[i] + } +}; +goog.vec.Float64Array.prototype.toString = Array.prototype.join; +if(typeof Float64Array == "undefined") { + try { + goog.exportProperty(goog.vec.Float64Array, "BYTES_PER_ELEMENT", goog.vec.Float64Array.BYTES_PER_ELEMENT) + }catch(float64ArrayError) { + } + goog.exportProperty(goog.vec.Float64Array.prototype, "BYTES_PER_ELEMENT", goog.vec.Float64Array.prototype.BYTES_PER_ELEMENT); + goog.exportProperty(goog.vec.Float64Array.prototype, "set", goog.vec.Float64Array.prototype.set); + goog.exportProperty(goog.vec.Float64Array.prototype, "toString", goog.vec.Float64Array.prototype.toString); + goog.exportSymbol("Float64Array", goog.vec.Float64Array) +} +;goog.provide("goog.vec"); +goog.provide("goog.vec.AnyType"); +goog.provide("goog.vec.ArrayType"); +goog.provide("goog.vec.Float32"); +goog.provide("goog.vec.Float64"); +goog.provide("goog.vec.Number"); +goog.require("goog.vec.Float32Array"); +goog.require("goog.vec.Float64Array"); +goog.vec.Float32; +goog.vec.Float64; +goog.vec.Number; +goog.vec.AnyType; +goog.vec.ArrayType; +goog.vec.EPSILON = 1E-6; +goog.provide("goog.vec.Vec3"); +goog.require("goog.vec"); +goog.vec.Vec3.Float32; +goog.vec.Vec3.Float64; +goog.vec.Vec3.Number; +goog.vec.Vec3.AnyType; +goog.vec.Vec3.Type; +goog.vec.Vec3.Vec3Like; +goog.vec.Vec3.createFloat32 = function() { + return new Float32Array(3) +}; +goog.vec.Vec3.createFloat64 = function() { + return new Float64Array(3) +}; +goog.vec.Vec3.createNumber = function() { + var a = new Array(3); + goog.vec.Vec3.setFromValues(a, 0, 0, 0); + return a +}; +goog.vec.Vec3.create = function() { + return new Float32Array(3) +}; +goog.vec.Vec3.createFloat32FromArray = function(vec) { + var newVec = goog.vec.Vec3.createFloat32(); + goog.vec.Vec3.setFromArray(newVec, vec); + return newVec +}; +goog.vec.Vec3.createFloat32FromValues = function(v0, v1, v2) { + var a = goog.vec.Vec3.createFloat32(); + goog.vec.Vec3.setFromValues(a, v0, v1, v2); + return a +}; +goog.vec.Vec3.cloneFloat32 = goog.vec.Vec3.createFloat32FromArray; +goog.vec.Vec3.createFloat64FromArray = function(vec) { + var newVec = goog.vec.Vec3.createFloat64(); + goog.vec.Vec3.setFromArray(newVec, vec); + return newVec +}; +goog.vec.Vec3.createFloat64FromValues = function(v0, v1, v2) { + var vec = goog.vec.Vec3.createFloat64(); + goog.vec.Vec3.setFromValues(vec, v0, v1, v2); + return vec +}; +goog.vec.Vec3.cloneFloat64 = goog.vec.Vec3.createFloat64FromArray; +goog.vec.Vec3.createFromArray = function(vec) { + var newVec = goog.vec.Vec3.create(); + goog.vec.Vec3.setFromArray(newVec, vec); + return newVec +}; +goog.vec.Vec3.createFromValues = function(v0, v1, v2) { + var vec = goog.vec.Vec3.create(); + goog.vec.Vec3.setFromValues(vec, v0, v1, v2); + return vec +}; +goog.vec.Vec3.clone = function(vec) { + var newVec = goog.vec.Vec3.create(); + goog.vec.Vec3.setFromArray(newVec, vec); + return newVec +}; +goog.vec.Vec3.setFromValues = function(vec, v0, v1, v2) { + vec[0] = v0; + vec[1] = v1; + vec[2] = v2; + return vec +}; +goog.vec.Vec3.setFromArray = function(vec, values) { + vec[0] = values[0]; + vec[1] = values[1]; + vec[2] = values[2]; + return vec +}; +goog.vec.Vec3.add = function(vec0, vec1, resultVec) { + resultVec[0] = vec0[0] + vec1[0]; + resultVec[1] = vec0[1] + vec1[1]; + resultVec[2] = vec0[2] + vec1[2]; + return resultVec +}; +goog.vec.Vec3.subtract = function(vec0, vec1, resultVec) { + resultVec[0] = vec0[0] - vec1[0]; + resultVec[1] = vec0[1] - vec1[1]; + resultVec[2] = vec0[2] - vec1[2]; + return resultVec +}; +goog.vec.Vec3.negate = function(vec0, resultVec) { + resultVec[0] = -vec0[0]; + resultVec[1] = -vec0[1]; + resultVec[2] = -vec0[2]; + return resultVec +}; +goog.vec.Vec3.scale = function(vec0, scalar, resultVec) { + resultVec[0] = vec0[0] * scalar; + resultVec[1] = vec0[1] * scalar; + resultVec[2] = vec0[2] * scalar; + return resultVec +}; +goog.vec.Vec3.magnitudeSquared = function(vec0) { + var x = vec0[0], y = vec0[1], z = vec0[2]; + return x * x + y * y + z * z +}; +goog.vec.Vec3.magnitude = function(vec0) { + var x = vec0[0], y = vec0[1], z = vec0[2]; + return Math.sqrt(x * x + y * y + z * z) +}; +goog.vec.Vec3.normalize = function(vec0, resultVec) { + var ilen = 1 / goog.vec.Vec3.magnitude(vec0); + resultVec[0] = vec0[0] * ilen; + resultVec[1] = vec0[1] * ilen; + resultVec[2] = vec0[2] * ilen; + return resultVec +}; +goog.vec.Vec3.dot = function(v0, v1) { + return v0[0] * v1[0] + v0[1] * v1[1] + v0[2] * v1[2] +}; +goog.vec.Vec3.cross = function(v0, v1, resultVec) { + var x0 = v0[0], y0 = v0[1], z0 = v0[2]; + var x1 = v1[0], y1 = v1[1], z1 = v1[2]; + resultVec[0] = y0 * z1 - z0 * y1; + resultVec[1] = z0 * x1 - x0 * z1; + resultVec[2] = x0 * y1 - y0 * x1; + return resultVec +}; +goog.vec.Vec3.distanceSquared = function(vec0, vec1) { + var x = vec0[0] - vec1[0]; + var y = vec0[1] - vec1[1]; + var z = vec0[2] - vec1[2]; + return x * x + y * y + z * z +}; +goog.vec.Vec3.distance = function(vec0, vec1) { + return Math.sqrt(goog.vec.Vec3.distanceSquared(vec0, vec1)) +}; +goog.vec.Vec3.direction = function(vec0, vec1, resultVec) { + var x = vec1[0] - vec0[0]; + var y = vec1[1] - vec0[1]; + var z = vec1[2] - vec0[2]; + var d = Math.sqrt(x * x + y * y + z * z); + if(d) { + d = 1 / d; + resultVec[0] = x * d; + resultVec[1] = y * d; + resultVec[2] = z * d + }else { + resultVec[0] = resultVec[1] = resultVec[2] = 0 + } + return resultVec +}; +goog.vec.Vec3.lerp = function(v0, v1, f, resultVec) { + var x = v0[0], y = v0[1], z = v0[2]; + resultVec[0] = (v1[0] - x) * f + x; + resultVec[1] = (v1[1] - y) * f + y; + resultVec[2] = (v1[2] - z) * f + z; + return resultVec +}; +goog.vec.Vec3.equals = function(v0, v1) { + return v0.length == v1.length && v0[0] == v1[0] && v0[1] == v1[1] && v0[2] == v1[2] +}; +goog.provide("goog.vec.Vec4"); +goog.require("goog.vec"); +goog.vec.Vec4.Float32; +goog.vec.Vec4.Float64; +goog.vec.Vec4.Number; +goog.vec.Vec4.AnyType; +goog.vec.Vec4.Type; +goog.vec.Vec4.Vec4Like; +goog.vec.Vec4.createFloat32 = function() { + return new Float32Array(4) +}; +goog.vec.Vec4.createFloat64 = function() { + return new Float64Array(4) +}; +goog.vec.Vec4.createNumber = function() { + var v = new Array(4); + goog.vec.Vec4.setFromValues(v, 0, 0, 0, 0); + return v +}; +goog.vec.Vec4.create = function() { + return new Float32Array(4) +}; +goog.vec.Vec4.createFromArray = function(vec) { + var newVec = goog.vec.Vec4.create(); + goog.vec.Vec4.setFromArray(newVec, vec); + return newVec +}; +goog.vec.Vec4.createFloat32FromArray = function(vec) { + var newVec = goog.vec.Vec4.createFloat32(); + goog.vec.Vec4.setFromArray(newVec, vec); + return newVec +}; +goog.vec.Vec4.createFloat32FromValues = function(v0, v1, v2, v3) { + var vec = goog.vec.Vec4.createFloat32(); + goog.vec.Vec4.setFromValues(vec, v0, v1, v2, v3); + return vec +}; +goog.vec.Vec4.cloneFloat32 = goog.vec.Vec4.createFloat32FromArray; +goog.vec.Vec4.createFloat64FromArray = function(vec) { + var newVec = goog.vec.Vec4.createFloat64(); + goog.vec.Vec4.setFromArray(newVec, vec); + return newVec +}; +goog.vec.Vec4.createFloat64FromValues = function(v0, v1, v2, v3) { + var vec = goog.vec.Vec4.createFloat64(); + goog.vec.Vec4.setFromValues(vec, v0, v1, v2, v3); + return vec +}; +goog.vec.Vec4.cloneFloat64 = goog.vec.Vec4.createFloat64FromArray; +goog.vec.Vec4.createFromValues = function(v0, v1, v2, v3) { + var vec = goog.vec.Vec4.create(); + goog.vec.Vec4.setFromValues(vec, v0, v1, v2, v3); + return vec +}; +goog.vec.Vec4.clone = goog.vec.Vec4.createFromArray; +goog.vec.Vec4.setFromValues = function(vec, v0, v1, v2, v3) { + vec[0] = v0; + vec[1] = v1; + vec[2] = v2; + vec[3] = v3; + return vec +}; +goog.vec.Vec4.setFromArray = function(vec, values) { + vec[0] = values[0]; + vec[1] = values[1]; + vec[2] = values[2]; + vec[3] = values[3]; + return vec +}; +goog.vec.Vec4.add = function(vec0, vec1, resultVec) { + resultVec[0] = vec0[0] + vec1[0]; + resultVec[1] = vec0[1] + vec1[1]; + resultVec[2] = vec0[2] + vec1[2]; + resultVec[3] = vec0[3] + vec1[3]; + return resultVec +}; +goog.vec.Vec4.subtract = function(vec0, vec1, resultVec) { + resultVec[0] = vec0[0] - vec1[0]; + resultVec[1] = vec0[1] - vec1[1]; + resultVec[2] = vec0[2] - vec1[2]; + resultVec[3] = vec0[3] - vec1[3]; + return resultVec +}; +goog.vec.Vec4.negate = function(vec0, resultVec) { + resultVec[0] = -vec0[0]; + resultVec[1] = -vec0[1]; + resultVec[2] = -vec0[2]; + resultVec[3] = -vec0[3]; + return resultVec +}; +goog.vec.Vec4.scale = function(vec0, scalar, resultVec) { + resultVec[0] = vec0[0] * scalar; + resultVec[1] = vec0[1] * scalar; + resultVec[2] = vec0[2] * scalar; + resultVec[3] = vec0[3] * scalar; + return resultVec +}; +goog.vec.Vec4.magnitudeSquared = function(vec0) { + var x = vec0[0], y = vec0[1], z = vec0[2], w = vec0[3]; + return x * x + y * y + z * z + w * w +}; +goog.vec.Vec4.magnitude = function(vec0) { + var x = vec0[0], y = vec0[1], z = vec0[2], w = vec0[3]; + return Math.sqrt(x * x + y * y + z * z + w * w) +}; +goog.vec.Vec4.normalize = function(vec0, resultVec) { + var ilen = 1 / goog.vec.Vec4.magnitude(vec0); + resultVec[0] = vec0[0] * ilen; + resultVec[1] = vec0[1] * ilen; + resultVec[2] = vec0[2] * ilen; + resultVec[3] = vec0[3] * ilen; + return resultVec +}; +goog.vec.Vec4.dot = function(v0, v1) { + return v0[0] * v1[0] + v0[1] * v1[1] + v0[2] * v1[2] + v0[3] * v1[3] +}; +goog.vec.Vec4.lerp = function(v0, v1, f, resultVec) { + var x = v0[0], y = v0[1], z = v0[2], w = v0[3]; + resultVec[0] = (v1[0] - x) * f + x; + resultVec[1] = (v1[1] - y) * f + y; + resultVec[2] = (v1[2] - z) * f + z; + resultVec[3] = (v1[3] - w) * f + w; + return resultVec +}; +goog.vec.Vec4.equals = function(v0, v1) { + return v0.length == v1.length && v0[0] == v1[0] && v0[1] == v1[1] && v0[2] == v1[2] && v0[3] == v1[3] +}; +goog.provide("goog.vec.Mat4"); +goog.require("goog.vec"); +goog.require("goog.vec.Vec3"); +goog.require("goog.vec.Vec4"); +goog.vec.Mat4.Float32; +goog.vec.Mat4.Float64; +goog.vec.Mat4.Number; +goog.vec.Mat4.AnyType; +goog.vec.Mat4.Type; +goog.vec.Mat4.Mat4Like; +goog.vec.Mat4.createFloat32 = function() { + return new Float32Array(16) +}; +goog.vec.Mat4.createFloat64 = function() { + return new Float64Array(16) +}; +goog.vec.Mat4.createNumber = function() { + var a = new Array(16); + goog.vec.Mat4.setFromValues(a, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); + return a +}; +goog.vec.Mat4.create = function() { + return goog.vec.Mat4.createFloat32() +}; +goog.vec.Mat4.createFloat32Identity = function() { + var mat = goog.vec.Mat4.createFloat32(); + mat[0] = mat[5] = mat[10] = mat[15] = 1; + return mat +}; +goog.vec.Mat4.createFloat64Identity = function() { + var mat = goog.vec.Mat4.createFloat64(); + mat[0] = mat[5] = mat[10] = mat[15] = 1; + return mat +}; +goog.vec.Mat4.createNumberIdentity = function() { + var a = new Array(16); + goog.vec.Mat4.setFromValues(a, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); + return a +}; +goog.vec.Mat4.createIdentity = function() { + return goog.vec.Mat4.createFloat32Identity() +}; +goog.vec.Mat4.createFloat32FromArray = function(matrix) { + var newMatrix = goog.vec.Mat4.createFloat32(); + goog.vec.Mat4.setFromArray(newMatrix, matrix); + return newMatrix +}; +goog.vec.Mat4.createFloat32FromValues = function(v00, v10, v20, v30, v01, v11, v21, v31, v02, v12, v22, v32, v03, v13, v23, v33) { + var newMatrix = goog.vec.Mat4.createFloat32(); + goog.vec.Mat4.setFromValues(newMatrix, v00, v10, v20, v30, v01, v11, v21, v31, v02, v12, v22, v32, v03, v13, v23, v33); + return newMatrix +}; +goog.vec.Mat4.cloneFloat32 = goog.vec.Mat4.createFloat32FromArray; +goog.vec.Mat4.createFloat64FromArray = function(matrix) { + var newMatrix = goog.vec.Mat4.createFloat64(); + goog.vec.Mat4.setFromArray(newMatrix, matrix); + return newMatrix +}; +goog.vec.Mat4.createFloat64FromValues = function(v00, v10, v20, v30, v01, v11, v21, v31, v02, v12, v22, v32, v03, v13, v23, v33) { + var newMatrix = goog.vec.Mat4.createFloat64(); + goog.vec.Mat4.setFromValues(newMatrix, v00, v10, v20, v30, v01, v11, v21, v31, v02, v12, v22, v32, v03, v13, v23, v33); + return newMatrix +}; +goog.vec.Mat4.cloneFloat64 = goog.vec.Mat4.createFloat64FromArray; +goog.vec.Mat4.createFromArray = function(matrix) { + var newMatrix = goog.vec.Mat4.createFloat32(); + goog.vec.Mat4.setFromArray(newMatrix, matrix); + return newMatrix +}; +goog.vec.Mat4.createFromValues = function(v00, v10, v20, v30, v01, v11, v21, v31, v02, v12, v22, v32, v03, v13, v23, v33) { + return goog.vec.Mat4.createFloat32FromValues(v00, v10, v20, v30, v01, v11, v21, v31, v02, v12, v22, v32, v03, v13, v23, v33) +}; +goog.vec.Mat4.clone = goog.vec.Mat4.createFromArray; +goog.vec.Mat4.getElement = function(mat, row, column) { + return mat[row + column * 4] +}; +goog.vec.Mat4.setElement = function(mat, row, column, value) { + mat[row + column * 4] = value; + return mat +}; +goog.vec.Mat4.setFromValues = function(mat, v00, v10, v20, v30, v01, v11, v21, v31, v02, v12, v22, v32, v03, v13, v23, v33) { + mat[0] = v00; + mat[1] = v10; + mat[2] = v20; + mat[3] = v30; + mat[4] = v01; + mat[5] = v11; + mat[6] = v21; + mat[7] = v31; + mat[8] = v02; + mat[9] = v12; + mat[10] = v22; + mat[11] = v32; + mat[12] = v03; + mat[13] = v13; + mat[14] = v23; + mat[15] = v33; + return mat +}; +goog.vec.Mat4.setFromArray = function(mat, values) { + mat[0] = values[0]; + mat[1] = values[1]; + mat[2] = values[2]; + mat[3] = values[3]; + mat[4] = values[4]; + mat[5] = values[5]; + mat[6] = values[6]; + mat[7] = values[7]; + mat[8] = values[8]; + mat[9] = values[9]; + mat[10] = values[10]; + mat[11] = values[11]; + mat[12] = values[12]; + mat[13] = values[13]; + mat[14] = values[14]; + mat[15] = values[15]; + return mat +}; +goog.vec.Mat4.setFromRowMajorArray = function(mat, values) { + mat[0] = values[0]; + mat[1] = values[4]; + mat[2] = values[8]; + mat[3] = values[12]; + mat[4] = values[1]; + mat[5] = values[5]; + mat[6] = values[9]; + mat[7] = values[13]; + mat[8] = values[2]; + mat[9] = values[6]; + mat[10] = values[10]; + mat[11] = values[14]; + mat[12] = values[3]; + mat[13] = values[7]; + mat[14] = values[11]; + mat[15] = values[15]; + return mat +}; +goog.vec.Mat4.setDiagonalValues = function(mat, v00, v11, v22, v33) { + mat[0] = v00; + mat[5] = v11; + mat[10] = v22; + mat[15] = v33; + return mat +}; +goog.vec.Mat4.setDiagonal = function(mat, vec) { + mat[0] = vec[0]; + mat[5] = vec[1]; + mat[10] = vec[2]; + mat[15] = vec[3]; + return mat +}; +goog.vec.Mat4.getDiagonal = function(mat, vec, opt_diagonal) { + if(!opt_diagonal) { + vec[0] = mat[0]; + vec[1] = mat[5]; + vec[2] = mat[10]; + vec[3] = mat[15] + }else { + var offset = opt_diagonal > 0 ? 4 * opt_diagonal : -opt_diagonal; + for(var i = 0;i < 4 - Math.abs(opt_diagonal);i++) { + vec[i] = mat[offset + 5 * i] + } + } + return vec +}; +goog.vec.Mat4.setColumnValues = function(mat, column, v0, v1, v2, v3) { + var i = column * 4; + mat[i] = v0; + mat[i + 1] = v1; + mat[i + 2] = v2; + mat[i + 3] = v3; + return mat +}; +goog.vec.Mat4.setColumn = function(mat, column, vec) { + var i = column * 4; + mat[i] = vec[0]; + mat[i + 1] = vec[1]; + mat[i + 2] = vec[2]; + mat[i + 3] = vec[3]; + return mat +}; +goog.vec.Mat4.getColumn = function(mat, column, vec) { + var i = column * 4; + vec[0] = mat[i]; + vec[1] = mat[i + 1]; + vec[2] = mat[i + 2]; + vec[3] = mat[i + 3]; + return vec +}; +goog.vec.Mat4.setColumns = function(mat, vec0, vec1, vec2, vec3) { + goog.vec.Mat4.setColumn(mat, 0, vec0); + goog.vec.Mat4.setColumn(mat, 1, vec1); + goog.vec.Mat4.setColumn(mat, 2, vec2); + goog.vec.Mat4.setColumn(mat, 3, vec3); + return mat +}; +goog.vec.Mat4.getColumns = function(mat, vec0, vec1, vec2, vec3) { + goog.vec.Mat4.getColumn(mat, 0, vec0); + goog.vec.Mat4.getColumn(mat, 1, vec1); + goog.vec.Mat4.getColumn(mat, 2, vec2); + goog.vec.Mat4.getColumn(mat, 3, vec3) +}; +goog.vec.Mat4.setRowValues = function(mat, row, v0, v1, v2, v3) { + mat[row] = v0; + mat[row + 4] = v1; + mat[row + 8] = v2; + mat[row + 12] = v3; + return mat +}; +goog.vec.Mat4.setRow = function(mat, row, vec) { + mat[row] = vec[0]; + mat[row + 4] = vec[1]; + mat[row + 8] = vec[2]; + mat[row + 12] = vec[3]; + return mat +}; +goog.vec.Mat4.getRow = function(mat, row, vec) { + vec[0] = mat[row]; + vec[1] = mat[row + 4]; + vec[2] = mat[row + 8]; + vec[3] = mat[row + 12]; + return vec +}; +goog.vec.Mat4.setRows = function(mat, vec0, vec1, vec2, vec3) { + goog.vec.Mat4.setRow(mat, 0, vec0); + goog.vec.Mat4.setRow(mat, 1, vec1); + goog.vec.Mat4.setRow(mat, 2, vec2); + goog.vec.Mat4.setRow(mat, 3, vec3); + return mat +}; +goog.vec.Mat4.getRows = function(mat, vec0, vec1, vec2, vec3) { + goog.vec.Mat4.getRow(mat, 0, vec0); + goog.vec.Mat4.getRow(mat, 1, vec1); + goog.vec.Mat4.getRow(mat, 2, vec2); + goog.vec.Mat4.getRow(mat, 3, vec3) +}; +goog.vec.Mat4.makeZero = function(mat) { + mat[0] = 0; + mat[1] = 0; + mat[2] = 0; + mat[3] = 0; + mat[4] = 0; + mat[5] = 0; + mat[6] = 0; + mat[7] = 0; + mat[8] = 0; + mat[9] = 0; + mat[10] = 0; + mat[11] = 0; + mat[12] = 0; + mat[13] = 0; + mat[14] = 0; + mat[15] = 0; + return mat +}; +goog.vec.Mat4.makeIdentity = function(mat) { + mat[0] = 1; + mat[1] = 0; + mat[2] = 0; + mat[3] = 0; + mat[4] = 0; + mat[5] = 1; + mat[6] = 0; + mat[7] = 0; + mat[8] = 0; + mat[9] = 0; + mat[10] = 1; + mat[11] = 0; + mat[12] = 0; + mat[13] = 0; + mat[14] = 0; + mat[15] = 1; + return mat +}; +goog.vec.Mat4.addMat = function(mat0, mat1, resultMat) { + resultMat[0] = mat0[0] + mat1[0]; + resultMat[1] = mat0[1] + mat1[1]; + resultMat[2] = mat0[2] + mat1[2]; + resultMat[3] = mat0[3] + mat1[3]; + resultMat[4] = mat0[4] + mat1[4]; + resultMat[5] = mat0[5] + mat1[5]; + resultMat[6] = mat0[6] + mat1[6]; + resultMat[7] = mat0[7] + mat1[7]; + resultMat[8] = mat0[8] + mat1[8]; + resultMat[9] = mat0[9] + mat1[9]; + resultMat[10] = mat0[10] + mat1[10]; + resultMat[11] = mat0[11] + mat1[11]; + resultMat[12] = mat0[12] + mat1[12]; + resultMat[13] = mat0[13] + mat1[13]; + resultMat[14] = mat0[14] + mat1[14]; + resultMat[15] = mat0[15] + mat1[15]; + return resultMat +}; +goog.vec.Mat4.subMat = function(mat0, mat1, resultMat) { + resultMat[0] = mat0[0] - mat1[0]; + resultMat[1] = mat0[1] - mat1[1]; + resultMat[2] = mat0[2] - mat1[2]; + resultMat[3] = mat0[3] - mat1[3]; + resultMat[4] = mat0[4] - mat1[4]; + resultMat[5] = mat0[5] - mat1[5]; + resultMat[6] = mat0[6] - mat1[6]; + resultMat[7] = mat0[7] - mat1[7]; + resultMat[8] = mat0[8] - mat1[8]; + resultMat[9] = mat0[9] - mat1[9]; + resultMat[10] = mat0[10] - mat1[10]; + resultMat[11] = mat0[11] - mat1[11]; + resultMat[12] = mat0[12] - mat1[12]; + resultMat[13] = mat0[13] - mat1[13]; + resultMat[14] = mat0[14] - mat1[14]; + resultMat[15] = mat0[15] - mat1[15]; + return resultMat +}; +goog.vec.Mat4.multScalar = function(mat, scalar, resultMat) { + resultMat[0] = mat[0] * scalar; + resultMat[1] = mat[1] * scalar; + resultMat[2] = mat[2] * scalar; + resultMat[3] = mat[3] * scalar; + resultMat[4] = mat[4] * scalar; + resultMat[5] = mat[5] * scalar; + resultMat[6] = mat[6] * scalar; + resultMat[7] = mat[7] * scalar; + resultMat[8] = mat[8] * scalar; + resultMat[9] = mat[9] * scalar; + resultMat[10] = mat[10] * scalar; + resultMat[11] = mat[11] * scalar; + resultMat[12] = mat[12] * scalar; + resultMat[13] = mat[13] * scalar; + resultMat[14] = mat[14] * scalar; + resultMat[15] = mat[15] * scalar; + return resultMat +}; +goog.vec.Mat4.multMat = function(mat0, mat1, resultMat) { + var a00 = mat0[0], a10 = mat0[1], a20 = mat0[2], a30 = mat0[3]; + var a01 = mat0[4], a11 = mat0[5], a21 = mat0[6], a31 = mat0[7]; + var a02 = mat0[8], a12 = mat0[9], a22 = mat0[10], a32 = mat0[11]; + var a03 = mat0[12], a13 = mat0[13], a23 = mat0[14], a33 = mat0[15]; + var b00 = mat1[0], b10 = mat1[1], b20 = mat1[2], b30 = mat1[3]; + var b01 = mat1[4], b11 = mat1[5], b21 = mat1[6], b31 = mat1[7]; + var b02 = mat1[8], b12 = mat1[9], b22 = mat1[10], b32 = mat1[11]; + var b03 = mat1[12], b13 = mat1[13], b23 = mat1[14], b33 = mat1[15]; + resultMat[0] = a00 * b00 + a01 * b10 + a02 * b20 + a03 * b30; + resultMat[1] = a10 * b00 + a11 * b10 + a12 * b20 + a13 * b30; + resultMat[2] = a20 * b00 + a21 * b10 + a22 * b20 + a23 * b30; + resultMat[3] = a30 * b00 + a31 * b10 + a32 * b20 + a33 * b30; + resultMat[4] = a00 * b01 + a01 * b11 + a02 * b21 + a03 * b31; + resultMat[5] = a10 * b01 + a11 * b11 + a12 * b21 + a13 * b31; + resultMat[6] = a20 * b01 + a21 * b11 + a22 * b21 + a23 * b31; + resultMat[7] = a30 * b01 + a31 * b11 + a32 * b21 + a33 * b31; + resultMat[8] = a00 * b02 + a01 * b12 + a02 * b22 + a03 * b32; + resultMat[9] = a10 * b02 + a11 * b12 + a12 * b22 + a13 * b32; + resultMat[10] = a20 * b02 + a21 * b12 + a22 * b22 + a23 * b32; + resultMat[11] = a30 * b02 + a31 * b12 + a32 * b22 + a33 * b32; + resultMat[12] = a00 * b03 + a01 * b13 + a02 * b23 + a03 * b33; + resultMat[13] = a10 * b03 + a11 * b13 + a12 * b23 + a13 * b33; + resultMat[14] = a20 * b03 + a21 * b13 + a22 * b23 + a23 * b33; + resultMat[15] = a30 * b03 + a31 * b13 + a32 * b23 + a33 * b33; + return resultMat +}; +goog.vec.Mat4.transpose = function(mat, resultMat) { + if(resultMat == mat) { + var a10 = mat[1], a20 = mat[2], a30 = mat[3]; + var a21 = mat[6], a31 = mat[7]; + var a32 = mat[11]; + resultMat[1] = mat[4]; + resultMat[2] = mat[8]; + resultMat[3] = mat[12]; + resultMat[4] = a10; + resultMat[6] = mat[9]; + resultMat[7] = mat[13]; + resultMat[8] = a20; + resultMat[9] = a21; + resultMat[11] = mat[14]; + resultMat[12] = a30; + resultMat[13] = a31; + resultMat[14] = a32 + }else { + resultMat[0] = mat[0]; + resultMat[1] = mat[4]; + resultMat[2] = mat[8]; + resultMat[3] = mat[12]; + resultMat[4] = mat[1]; + resultMat[5] = mat[5]; + resultMat[6] = mat[9]; + resultMat[7] = mat[13]; + resultMat[8] = mat[2]; + resultMat[9] = mat[6]; + resultMat[10] = mat[10]; + resultMat[11] = mat[14]; + resultMat[12] = mat[3]; + resultMat[13] = mat[7]; + resultMat[14] = mat[11]; + resultMat[15] = mat[15] + } + return resultMat +}; +goog.vec.Mat4.determinant = function(mat) { + var m00 = mat[0], m10 = mat[1], m20 = mat[2], m30 = mat[3]; + var m01 = mat[4], m11 = mat[5], m21 = mat[6], m31 = mat[7]; + var m02 = mat[8], m12 = mat[9], m22 = mat[10], m32 = mat[11]; + var m03 = mat[12], m13 = mat[13], m23 = mat[14], m33 = mat[15]; + var a0 = m00 * m11 - m10 * m01; + var a1 = m00 * m21 - m20 * m01; + var a2 = m00 * m31 - m30 * m01; + var a3 = m10 * m21 - m20 * m11; + var a4 = m10 * m31 - m30 * m11; + var a5 = m20 * m31 - m30 * m21; + var b0 = m02 * m13 - m12 * m03; + var b1 = m02 * m23 - m22 * m03; + var b2 = m02 * m33 - m32 * m03; + var b3 = m12 * m23 - m22 * m13; + var b4 = m12 * m33 - m32 * m13; + var b5 = m22 * m33 - m32 * m23; + return a0 * b5 - a1 * b4 + a2 * b3 + a3 * b2 - a4 * b1 + a5 * b0 +}; +goog.vec.Mat4.invert = function(mat, resultMat) { + var m00 = mat[0], m10 = mat[1], m20 = mat[2], m30 = mat[3]; + var m01 = mat[4], m11 = mat[5], m21 = mat[6], m31 = mat[7]; + var m02 = mat[8], m12 = mat[9], m22 = mat[10], m32 = mat[11]; + var m03 = mat[12], m13 = mat[13], m23 = mat[14], m33 = mat[15]; + var a0 = m00 * m11 - m10 * m01; + var a1 = m00 * m21 - m20 * m01; + var a2 = m00 * m31 - m30 * m01; + var a3 = m10 * m21 - m20 * m11; + var a4 = m10 * m31 - m30 * m11; + var a5 = m20 * m31 - m30 * m21; + var b0 = m02 * m13 - m12 * m03; + var b1 = m02 * m23 - m22 * m03; + var b2 = m02 * m33 - m32 * m03; + var b3 = m12 * m23 - m22 * m13; + var b4 = m12 * m33 - m32 * m13; + var b5 = m22 * m33 - m32 * m23; + var det = a0 * b5 - a1 * b4 + a2 * b3 + a3 * b2 - a4 * b1 + a5 * b0; + if(det == 0) { + return false + } + var idet = 1 / det; + resultMat[0] = (m11 * b5 - m21 * b4 + m31 * b3) * idet; + resultMat[1] = (-m10 * b5 + m20 * b4 - m30 * b3) * idet; + resultMat[2] = (m13 * a5 - m23 * a4 + m33 * a3) * idet; + resultMat[3] = (-m12 * a5 + m22 * a4 - m32 * a3) * idet; + resultMat[4] = (-m01 * b5 + m21 * b2 - m31 * b1) * idet; + resultMat[5] = (m00 * b5 - m20 * b2 + m30 * b1) * idet; + resultMat[6] = (-m03 * a5 + m23 * a2 - m33 * a1) * idet; + resultMat[7] = (m02 * a5 - m22 * a2 + m32 * a1) * idet; + resultMat[8] = (m01 * b4 - m11 * b2 + m31 * b0) * idet; + resultMat[9] = (-m00 * b4 + m10 * b2 - m30 * b0) * idet; + resultMat[10] = (m03 * a4 - m13 * a2 + m33 * a0) * idet; + resultMat[11] = (-m02 * a4 + m12 * a2 - m32 * a0) * idet; + resultMat[12] = (-m01 * b3 + m11 * b1 - m21 * b0) * idet; + resultMat[13] = (m00 * b3 - m10 * b1 + m20 * b0) * idet; + resultMat[14] = (-m03 * a3 + m13 * a1 - m23 * a0) * idet; + resultMat[15] = (m02 * a3 - m12 * a1 + m22 * a0) * idet; + return true +}; +goog.vec.Mat4.equals = function(mat0, mat1) { + return mat0.length == mat1.length && mat0[0] == mat1[0] && mat0[1] == mat1[1] && mat0[2] == mat1[2] && mat0[3] == mat1[3] && mat0[4] == mat1[4] && mat0[5] == mat1[5] && mat0[6] == mat1[6] && mat0[7] == mat1[7] && mat0[8] == mat1[8] && mat0[9] == mat1[9] && mat0[10] == mat1[10] && mat0[11] == mat1[11] && mat0[12] == mat1[12] && mat0[13] == mat1[13] && mat0[14] == mat1[14] && mat0[15] == mat1[15] +}; +goog.vec.Mat4.multVec3 = function(mat, vec, resultVec) { + var x = vec[0], y = vec[1], z = vec[2]; + resultVec[0] = x * mat[0] + y * mat[4] + z * mat[8] + mat[12]; + resultVec[1] = x * mat[1] + y * mat[5] + z * mat[9] + mat[13]; + resultVec[2] = x * mat[2] + y * mat[6] + z * mat[10] + mat[14]; + return resultVec +}; +goog.vec.Mat4.multVec3NoTranslate = function(mat, vec, resultVec) { + var x = vec[0], y = vec[1], z = vec[2]; + resultVec[0] = x * mat[0] + y * mat[4] + z * mat[8]; + resultVec[1] = x * mat[1] + y * mat[5] + z * mat[9]; + resultVec[2] = x * mat[2] + y * mat[6] + z * mat[10]; + return resultVec +}; +goog.vec.Mat4.multVec3Projective = function(mat, vec, resultVec) { + var x = vec[0], y = vec[1], z = vec[2]; + var invw = 1 / (x * mat[3] + y * mat[7] + z * mat[11] + mat[15]); + resultVec[0] = (x * mat[0] + y * mat[4] + z * mat[8] + mat[12]) * invw; + resultVec[1] = (x * mat[1] + y * mat[5] + z * mat[9] + mat[13]) * invw; + resultVec[2] = (x * mat[2] + y * mat[6] + z * mat[10] + mat[14]) * invw; + return resultVec +}; +goog.vec.Mat4.multVec4 = function(mat, vec, resultVec) { + var x = vec[0], y = vec[1], z = vec[2], w = vec[3]; + resultVec[0] = x * mat[0] + y * mat[4] + z * mat[8] + w * mat[12]; + resultVec[1] = x * mat[1] + y * mat[5] + z * mat[9] + w * mat[13]; + resultVec[2] = x * mat[2] + y * mat[6] + z * mat[10] + w * mat[14]; + resultVec[3] = x * mat[3] + y * mat[7] + z * mat[11] + w * mat[15]; + return resultVec +}; +goog.vec.Mat4.makeTranslate = function(mat, x, y, z) { + goog.vec.Mat4.makeIdentity(mat); + return goog.vec.Mat4.setColumnValues(mat, 3, x, y, z, 1) +}; +goog.vec.Mat4.makeScale = function(mat, x, y, z) { + goog.vec.Mat4.makeIdentity(mat); + return goog.vec.Mat4.setDiagonalValues(mat, x, y, z, 1) +}; +goog.vec.Mat4.makeRotate = function(mat, angle, ax, ay, az) { + var c = Math.cos(angle); + var d = 1 - c; + var s = Math.sin(angle); + return goog.vec.Mat4.setFromValues(mat, ax * ax * d + c, ax * ay * d + az * s, ax * az * d - ay * s, 0, ax * ay * d - az * s, ay * ay * d + c, ay * az * d + ax * s, 0, ax * az * d + ay * s, ay * az * d - ax * s, az * az * d + c, 0, 0, 0, 0, 1) +}; +goog.vec.Mat4.makeRotateX = function(mat, angle) { + var c = Math.cos(angle); + var s = Math.sin(angle); + return goog.vec.Mat4.setFromValues(mat, 1, 0, 0, 0, 0, c, s, 0, 0, -s, c, 0, 0, 0, 0, 1) +}; +goog.vec.Mat4.makeRotateY = function(mat, angle) { + var c = Math.cos(angle); + var s = Math.sin(angle); + return goog.vec.Mat4.setFromValues(mat, c, 0, -s, 0, 0, 1, 0, 0, s, 0, c, 0, 0, 0, 0, 1) +}; +goog.vec.Mat4.makeRotateZ = function(mat, angle) { + var c = Math.cos(angle); + var s = Math.sin(angle); + return goog.vec.Mat4.setFromValues(mat, c, s, 0, 0, -s, c, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1) +}; +goog.vec.Mat4.makeFrustum = function(mat, left, right, bottom, top, near, far) { + var x = 2 * near / (right - left); + var y = 2 * near / (top - bottom); + var a = (right + left) / (right - left); + var b = (top + bottom) / (top - bottom); + var c = -(far + near) / (far - near); + var d = -(2 * far * near) / (far - near); + return goog.vec.Mat4.setFromValues(mat, x, 0, 0, 0, 0, y, 0, 0, a, b, c, -1, 0, 0, d, 0) +}; +goog.vec.Mat4.makePerspective = function(mat, fovy, aspect, near, far) { + var angle = fovy / 2; + var dz = far - near; + var sinAngle = Math.sin(angle); + if(dz == 0 || sinAngle == 0 || aspect == 0) { + return mat + } + var cot = Math.cos(angle) / sinAngle; + return goog.vec.Mat4.setFromValues(mat, cot / aspect, 0, 0, 0, 0, cot, 0, 0, 0, 0, -(far + near) / dz, -1, 0, 0, -(2 * near * far) / dz, 0) +}; +goog.vec.Mat4.makeOrtho = function(mat, left, right, bottom, top, near, far) { + var x = 2 / (right - left); + var y = 2 / (top - bottom); + var z = -2 / (far - near); + var a = -(right + left) / (right - left); + var b = -(top + bottom) / (top - bottom); + var c = -(far + near) / (far - near); + return goog.vec.Mat4.setFromValues(mat, x, 0, 0, 0, 0, y, 0, 0, 0, 0, z, 0, a, b, c, 1) +}; +goog.vec.Mat4.makeLookAt = function(mat, eyePt, centerPt, worldUpVec) { + var fwdVec = goog.vec.Mat4.tmpVec4_[0]; + goog.vec.Vec3.subtract(centerPt, eyePt, fwdVec); + goog.vec.Vec3.normalize(fwdVec, fwdVec); + fwdVec[3] = 0; + var sideVec = goog.vec.Mat4.tmpVec4_[1]; + goog.vec.Vec3.cross(fwdVec, worldUpVec, sideVec); + goog.vec.Vec3.normalize(sideVec, sideVec); + sideVec[3] = 0; + var upVec = goog.vec.Mat4.tmpVec4_[2]; + goog.vec.Vec3.cross(sideVec, fwdVec, upVec); + goog.vec.Vec3.normalize(upVec, upVec); + upVec[3] = 0; + goog.vec.Vec3.negate(fwdVec, fwdVec); + goog.vec.Mat4.setRow(mat, 0, sideVec); + goog.vec.Mat4.setRow(mat, 1, upVec); + goog.vec.Mat4.setRow(mat, 2, fwdVec); + goog.vec.Mat4.setRowValues(mat, 3, 0, 0, 0, 1); + goog.vec.Mat4.translate(mat, -eyePt[0], -eyePt[1], -eyePt[2]); + return mat +}; +goog.vec.Mat4.toLookAt = function(mat, eyePt, fwdVec, worldUpVec) { + var matInverse = goog.vec.Mat4.tmpMat4_[0]; + if(!goog.vec.Mat4.invert(mat, matInverse)) { + return false + } + if(eyePt) { + eyePt[0] = matInverse[12]; + eyePt[1] = matInverse[13]; + eyePt[2] = matInverse[14] + } + if(fwdVec || worldUpVec) { + if(!fwdVec) { + fwdVec = goog.vec.Mat4.tmpVec3_[0] + } + fwdVec[0] = -mat[2]; + fwdVec[1] = -mat[6]; + fwdVec[2] = -mat[10]; + goog.vec.Vec3.normalize(fwdVec, fwdVec) + } + if(worldUpVec) { + var side = goog.vec.Mat4.tmpVec3_[1]; + side[0] = mat[0]; + side[1] = mat[4]; + side[2] = mat[8]; + goog.vec.Vec3.cross(side, fwdVec, worldUpVec); + goog.vec.Vec3.normalize(worldUpVec, worldUpVec) + } + return true +}; +goog.vec.Mat4.makeEulerZXZ = function(mat, theta1, theta2, theta3) { + var c1 = Math.cos(theta1); + var s1 = Math.sin(theta1); + var c2 = Math.cos(theta2); + var s2 = Math.sin(theta2); + var c3 = Math.cos(theta3); + var s3 = Math.sin(theta3); + mat[0] = c1 * c3 - c2 * s1 * s3; + mat[1] = c2 * c1 * s3 + c3 * s1; + mat[2] = s3 * s2; + mat[3] = 0; + mat[4] = -c1 * s3 - c3 * c2 * s1; + mat[5] = c1 * c2 * c3 - s1 * s3; + mat[6] = c3 * s2; + mat[7] = 0; + mat[8] = s2 * s1; + mat[9] = -c1 * s2; + mat[10] = c2; + mat[11] = 0; + mat[12] = 0; + mat[13] = 0; + mat[14] = 0; + mat[15] = 1; + return mat +}; +goog.vec.Mat4.toEulerZXZ = function(mat, euler, opt_theta2IsNegative) { + var sinTheta2 = Math.sqrt(mat[2] * mat[2] + mat[6] * mat[6]); + var signTheta2 = opt_theta2IsNegative ? -1 : 1; + if(sinTheta2 > goog.vec.EPSILON) { + euler[2] = Math.atan2(mat[2] * signTheta2, mat[6] * signTheta2); + euler[1] = Math.atan2(sinTheta2 * signTheta2, mat[10]); + euler[0] = Math.atan2(mat[8] * signTheta2, -mat[9] * signTheta2) + }else { + euler[0] = 0; + euler[1] = Math.atan2(sinTheta2 * signTheta2, mat[10]); + euler[2] = Math.atan2(mat[1], mat[0]) + } + euler[0] = (euler[0] + Math.PI * 2) % (Math.PI * 2); + euler[2] = (euler[2] + Math.PI * 2) % (Math.PI * 2); + euler[1] = (euler[1] * signTheta2 + Math.PI * 2) % (Math.PI * 2) * signTheta2; + return euler +}; +goog.vec.Mat4.translate = function(mat, x, y, z) { + return goog.vec.Mat4.setColumnValues(mat, 3, mat[0] * x + mat[4] * y + mat[8] * z + mat[12], mat[1] * x + mat[5] * y + mat[9] * z + mat[13], mat[2] * x + mat[6] * y + mat[10] * z + mat[14], mat[3] * x + mat[7] * y + mat[11] * z + mat[15]) +}; +goog.vec.Mat4.scale = function(mat, x, y, z) { + return goog.vec.Mat4.setFromValues(mat, mat[0] * x, mat[1] * x, mat[2] * x, mat[3] * x, mat[4] * y, mat[5] * y, mat[6] * y, mat[7] * y, mat[8] * z, mat[9] * z, mat[10] * z, mat[11] * z, mat[12], mat[13], mat[14], mat[15]) +}; +goog.vec.Mat4.rotate = function(mat, angle, x, y, z) { + var m00 = mat[0], m10 = mat[1], m20 = mat[2], m30 = mat[3]; + var m01 = mat[4], m11 = mat[5], m21 = mat[6], m31 = mat[7]; + var m02 = mat[8], m12 = mat[9], m22 = mat[10], m32 = mat[11]; + var m03 = mat[12], m13 = mat[13], m23 = mat[14], m33 = mat[15]; + var cosAngle = Math.cos(angle); + var sinAngle = Math.sin(angle); + var diffCosAngle = 1 - cosAngle; + var r00 = x * x * diffCosAngle + cosAngle; + var r10 = x * y * diffCosAngle + z * sinAngle; + var r20 = x * z * diffCosAngle - y * sinAngle; + var r01 = x * y * diffCosAngle - z * sinAngle; + var r11 = y * y * diffCosAngle + cosAngle; + var r21 = y * z * diffCosAngle + x * sinAngle; + var r02 = x * z * diffCosAngle + y * sinAngle; + var r12 = y * z * diffCosAngle - x * sinAngle; + var r22 = z * z * diffCosAngle + cosAngle; + return goog.vec.Mat4.setFromValues(mat, m00 * r00 + m01 * r10 + m02 * r20, m10 * r00 + m11 * r10 + m12 * r20, m20 * r00 + m21 * r10 + m22 * r20, m30 * r00 + m31 * r10 + m32 * r20, m00 * r01 + m01 * r11 + m02 * r21, m10 * r01 + m11 * r11 + m12 * r21, m20 * r01 + m21 * r11 + m22 * r21, m30 * r01 + m31 * r11 + m32 * r21, m00 * r02 + m01 * r12 + m02 * r22, m10 * r02 + m11 * r12 + m12 * r22, m20 * r02 + m21 * r12 + m22 * r22, m30 * r02 + m31 * r12 + m32 * r22, m03, m13, m23, m33) +}; +goog.vec.Mat4.rotateX = function(mat, angle) { + var m01 = mat[4], m11 = mat[5], m21 = mat[6], m31 = mat[7]; + var m02 = mat[8], m12 = mat[9], m22 = mat[10], m32 = mat[11]; + var c = Math.cos(angle); + var s = Math.sin(angle); + mat[4] = m01 * c + m02 * s; + mat[5] = m11 * c + m12 * s; + mat[6] = m21 * c + m22 * s; + mat[7] = m31 * c + m32 * s; + mat[8] = m01 * -s + m02 * c; + mat[9] = m11 * -s + m12 * c; + mat[10] = m21 * -s + m22 * c; + mat[11] = m31 * -s + m32 * c; + return mat +}; +goog.vec.Mat4.rotateY = function(mat, angle) { + var m00 = mat[0], m10 = mat[1], m20 = mat[2], m30 = mat[3]; + var m02 = mat[8], m12 = mat[9], m22 = mat[10], m32 = mat[11]; + var c = Math.cos(angle); + var s = Math.sin(angle); + mat[0] = m00 * c + m02 * -s; + mat[1] = m10 * c + m12 * -s; + mat[2] = m20 * c + m22 * -s; + mat[3] = m30 * c + m32 * -s; + mat[8] = m00 * s + m02 * c; + mat[9] = m10 * s + m12 * c; + mat[10] = m20 * s + m22 * c; + mat[11] = m30 * s + m32 * c; + return mat +}; +goog.vec.Mat4.rotateZ = function(mat, angle) { + var m00 = mat[0], m10 = mat[1], m20 = mat[2], m30 = mat[3]; + var m01 = mat[4], m11 = mat[5], m21 = mat[6], m31 = mat[7]; + var c = Math.cos(angle); + var s = Math.sin(angle); + mat[0] = m00 * c + m01 * s; + mat[1] = m10 * c + m11 * s; + mat[2] = m20 * c + m21 * s; + mat[3] = m30 * c + m31 * s; + mat[4] = m00 * -s + m01 * c; + mat[5] = m10 * -s + m11 * c; + mat[6] = m20 * -s + m21 * c; + mat[7] = m30 * -s + m31 * c; + return mat +}; +goog.vec.Mat4.getTranslation = function(mat, translation) { + translation[0] = mat[12]; + translation[1] = mat[13]; + translation[2] = mat[14]; + return translation +}; +goog.vec.Mat4.tmpVec3_ = [goog.vec.Vec3.createFloat64(), goog.vec.Vec3.createFloat64()]; +goog.vec.Mat4.tmpVec4_ = [goog.vec.Vec4.createFloat64(), goog.vec.Vec4.createFloat64(), goog.vec.Vec4.createFloat64()]; +goog.vec.Mat4.tmpMat4_ = [goog.vec.Mat4.createFloat64()]; +goog.provide("ol.Tile"); +goog.provide("ol.TileState"); +goog.require("goog.events"); +goog.require("goog.events.EventTarget"); +goog.require("goog.events.EventType"); +goog.require("ol.TileCoord"); +ol.TileState = {IDLE:0, LOADING:1, LOADED:2, ERROR:3, EMPTY:4}; +ol.Tile = function(tileCoord, state) { + goog.base(this); + this.tileCoord = tileCoord; + this.state = state +}; +goog.inherits(ol.Tile, goog.events.EventTarget); +ol.Tile.prototype.dispatchChangeEvent = function() { + this.dispatchEvent(goog.events.EventType.CHANGE) +}; +ol.Tile.prototype.getImage = goog.abstractMethod; +ol.Tile.prototype.getKey = function() { + return goog.getUid(this).toString() +}; +ol.Tile.prototype.getState = function() { + return this.state +}; +ol.Tile.prototype.load = goog.abstractMethod; +goog.provide("ol.structs.PriorityQueue"); +goog.require("goog.asserts"); +goog.require("goog.object"); +ol.structs.PriorityQueue = function(priorityFunction, keyFunction) { + this.priorityFunction_ = priorityFunction; + this.keyFunction_ = keyFunction; + this.elements_ = []; + this.priorities_ = []; + this.queuedElements_ = {} +}; +ol.structs.PriorityQueue.DROP = Infinity; +ol.structs.PriorityQueue.prototype.assertValid = function() { + var elements = this.elements_; + var priorities = this.priorities_; + var n = elements.length; + goog.asserts.assert(priorities.length == n); + var i, priority; + for(i = 0;i < (n >> 1) - 1;++i) { + priority = priorities[i]; + goog.asserts.assert(priority <= priorities[this.getLeftChildIndex_(i)]); + goog.asserts.assert(priority <= priorities[this.getRightChildIndex_(i)]) + } +}; +ol.structs.PriorityQueue.prototype.clear = function() { + this.elements_.length = 0; + this.priorities_.length = 0; + goog.object.clear(this.queuedElements_) +}; +ol.structs.PriorityQueue.prototype.dequeue = function() { + var elements = this.elements_; + goog.asserts.assert(elements.length > 0); + var priorities = this.priorities_; + var element = elements[0]; + if(elements.length == 1) { + elements.length = 0; + priorities.length = 0 + }else { + elements[0] = elements.pop(); + priorities[0] = priorities.pop(); + this.siftUp_(0) + } + var elementKey = this.keyFunction_(element); + goog.asserts.assert(elementKey in this.queuedElements_); + delete this.queuedElements_[elementKey]; + return element +}; +ol.structs.PriorityQueue.prototype.enqueue = function(element) { + goog.asserts.assert(!(this.keyFunction_(element) in this.queuedElements_)); + var priority = this.priorityFunction_(element); + if(priority != ol.structs.PriorityQueue.DROP) { + this.elements_.push(element); + this.priorities_.push(priority); + this.queuedElements_[this.keyFunction_(element)] = true; + this.siftDown_(0, this.elements_.length - 1) + } +}; +ol.structs.PriorityQueue.prototype.getCount = function() { + return this.elements_.length +}; +ol.structs.PriorityQueue.prototype.getLeftChildIndex_ = function(index) { + return index * 2 + 1 +}; +ol.structs.PriorityQueue.prototype.getRightChildIndex_ = function(index) { + return index * 2 + 2 +}; +ol.structs.PriorityQueue.prototype.getParentIndex_ = function(index) { + return index - 1 >> 1 +}; +ol.structs.PriorityQueue.prototype.heapify_ = function() { + var i; + for(i = (this.elements_.length >> 1) - 1;i >= 0;i--) { + this.siftUp_(i) + } +}; +ol.structs.PriorityQueue.prototype.isEmpty = function() { + return this.elements_.length === 0 +}; +ol.structs.PriorityQueue.prototype.isKeyQueued = function(key) { + return key in this.queuedElements_ +}; +ol.structs.PriorityQueue.prototype.isQueued = function(element) { + return this.isKeyQueued(this.keyFunction_(element)) +}; +ol.structs.PriorityQueue.prototype.siftUp_ = function(index) { + var elements = this.elements_; + var priorities = this.priorities_; + var count = elements.length; + var element = elements[index]; + var priority = priorities[index]; + var startIndex = index; + while(index < count >> 1) { + var lIndex = this.getLeftChildIndex_(index); + var rIndex = this.getRightChildIndex_(index); + var smallerChildIndex = rIndex < count && priorities[rIndex] < priorities[lIndex] ? rIndex : lIndex; + elements[index] = elements[smallerChildIndex]; + priorities[index] = priorities[smallerChildIndex]; + index = smallerChildIndex + } + elements[index] = element; + priorities[index] = priority; + this.siftDown_(startIndex, index) +}; +ol.structs.PriorityQueue.prototype.siftDown_ = function(startIndex, index) { + var elements = this.elements_; + var priorities = this.priorities_; + var element = elements[index]; + var priority = priorities[index]; + while(index > startIndex) { + var parentIndex = this.getParentIndex_(index); + if(priorities[parentIndex] > priority) { + elements[index] = elements[parentIndex]; + priorities[index] = priorities[parentIndex]; + index = parentIndex + }else { + break + } + } + elements[index] = element; + priorities[index] = priority +}; +ol.structs.PriorityQueue.prototype.reprioritize = function() { + var priorityFunction = this.priorityFunction_; + var elements = this.elements_; + var priorities = this.priorities_; + var index = 0; + var n = elements.length; + var element, i, priority; + for(i = 0;i < n;++i) { + element = elements[i]; + priority = priorityFunction(element); + if(priority == ol.structs.PriorityQueue.DROP) { + delete this.queuedElements_[this.keyFunction_(element)] + }else { + priorities[index] = priority; + elements[index++] = element + } + } + elements.length = index; + priorities.length = index; + this.heapify_() +}; +goog.provide("ol.TilePriorityFunction"); +goog.provide("ol.TileQueue"); +goog.require("goog.events"); +goog.require("goog.events.EventType"); +goog.require("ol.Coordinate"); +goog.require("ol.Tile"); +goog.require("ol.structs.PriorityQueue"); +ol.TilePriorityFunction; +ol.TileQueue = function(tilePriorityFunction, tileChangeCallback) { + goog.base(this, function(element) { + return tilePriorityFunction.apply(null, element) + }, function(element) { + return(element[0]).getKey() + }); + this.tileChangeCallback_ = tileChangeCallback; + this.tilesLoading_ = 0 +}; +goog.inherits(ol.TileQueue, ol.structs.PriorityQueue); +ol.TileQueue.prototype.getTilesLoading = function() { + return this.tilesLoading_ +}; +ol.TileQueue.prototype.handleTileChange = function() { + --this.tilesLoading_; + this.tileChangeCallback_() +}; +ol.TileQueue.prototype.loadMoreTiles = function(maxTotalLoading, maxNewLoads) { + var newLoads = Math.min(maxTotalLoading - this.getTilesLoading(), maxNewLoads, this.getCount()); + var i, tile; + for(i = 0;i < newLoads;++i) { + tile = (this.dequeue()[0]); + goog.events.listenOnce(tile, goog.events.EventType.CHANGE, this.handleTileChange, false, this); + tile.load() + } + this.tilesLoading_ += newLoads +}; +/* + + Latitude/longitude spherical geodesy formulae taken from + http://www.movable-type.co.uk/scripts/latlong.html + Licenced under CC-BY-3.0. +*/ +goog.provide("ol.Sphere"); +goog.require("goog.math"); +ol.Sphere = function(radius) { + this.radius = radius +}; +ol.Sphere.prototype.cosineDistance = function(c1, c2) { + var lat1 = goog.math.toRadians(c1[1]); + var lat2 = goog.math.toRadians(c2[1]); + var deltaLon = goog.math.toRadians(c2[0] - c1[0]); + return this.radius * Math.acos(Math.sin(lat1) * Math.sin(lat2) + Math.cos(lat1) * Math.cos(lat2) * Math.cos(deltaLon)) +}; +ol.Sphere.prototype.crossTrackDistance = function(c1, c2, c3) { + var d13 = this.cosineDistance(c1, c2); + var theta12 = goog.math.toRadians(this.initialBearing(c1, c2)); + var theta13 = goog.math.toRadians(this.initialBearing(c1, c3)); + return this.radius * Math.asin(Math.sin(d13 / this.radius) * Math.sin(theta13 - theta12)) +}; +ol.Sphere.prototype.equirectangularDistance = function(c1, c2) { + var lat1 = goog.math.toRadians(c1[1]); + var lat2 = goog.math.toRadians(c2[1]); + var deltaLon = goog.math.toRadians(c2[0] - c1[0]); + var x = deltaLon * Math.cos((lat1 + lat2) / 2); + var y = lat2 - lat1; + return this.radius * Math.sqrt(x * x + y * y) +}; +ol.Sphere.prototype.finalBearing = function(c1, c2) { + return(this.initialBearing(c2, c1) + 180) % 360 +}; +ol.Sphere.prototype.haversineDistance = function(c1, c2) { + var lat1 = goog.math.toRadians(c1[1]); + var lat2 = goog.math.toRadians(c2[1]); + var deltaLatBy2 = (lat2 - lat1) / 2; + var deltaLonBy2 = goog.math.toRadians(c2[0] - c1[0]) / 2; + var a = Math.sin(deltaLatBy2) * Math.sin(deltaLatBy2) + Math.sin(deltaLonBy2) * Math.sin(deltaLonBy2) * Math.cos(lat1) * Math.cos(lat2); + return 2 * this.radius * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)) +}; +ol.Sphere.prototype.initialBearing = function(c1, c2) { + var lat1 = goog.math.toRadians(c1[1]); + var lat2 = goog.math.toRadians(c2[1]); + var deltaLon = goog.math.toRadians(c2[0] - c1[0]); + var y = Math.sin(deltaLon) * Math.cos(lat2); + var x = Math.cos(lat1) * Math.sin(lat2) - Math.sin(lat1) * Math.cos(lat2) * Math.cos(deltaLon); + return goog.math.toDegrees(Math.atan2(y, x)) +}; +ol.Sphere.prototype.maximumLatitude = function(bearing, latitude) { + return Math.cos(Math.abs(Math.sin(goog.math.toRadians(bearing)) * Math.cos(goog.math.toRadians(latitude)))) +}; +ol.Sphere.prototype.midpoint = function(c1, c2) { + var lat1 = goog.math.toRadians(c1[1]); + var lat2 = goog.math.toRadians(c2[1]); + var lon1 = goog.math.toRadians(c1[0]); + var deltaLon = goog.math.toRadians(c2[0] - c1[0]); + var Bx = Math.cos(lat2) * Math.cos(deltaLon); + var By = Math.cos(lat2) * Math.sin(deltaLon); + var cosLat1PlusBx = Math.cos(lat1) + Bx; + var lat = Math.atan2(Math.sin(lat1) + Math.sin(lat2), Math.sqrt(cosLat1PlusBx * cosLat1PlusBx + By * By)); + var lon = lon1 + Math.atan2(By, cosLat1PlusBx); + return[goog.math.toDegrees(lon), goog.math.toDegrees(lat)] +}; +ol.Sphere.prototype.offset = function(c1, distance, bearing) { + var lat1 = goog.math.toRadians(c1[1]); + var lon1 = goog.math.toRadians(c1[0]); + var dByR = distance / this.radius; + var lat = Math.asin(Math.sin(lat1) * Math.cos(dByR) + Math.cos(lat1) * Math.sin(dByR) * Math.cos(bearing)); + var lon = lon1 + Math.atan2(Math.sin(bearing) * Math.sin(dByR) * Math.cos(lat1), Math.cos(dByR) - Math.sin(lat1) * Math.sin(lat)); + return[goog.math.toDegrees(lon), goog.math.toDegrees(lat)] +}; +goog.provide("ol.sphere.NORMAL"); +goog.require("ol.Sphere"); +ol.sphere.NORMAL = new ol.Sphere(6370997); +goog.provide("ol.Projection"); +goog.provide("ol.ProjectionLike"); +goog.provide("ol.ProjectionUnits"); +goog.provide("ol.proj"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.require("goog.object"); +goog.require("ol.Extent"); +goog.require("ol.TransformFunction"); +goog.require("ol.sphere.NORMAL"); +ol.ENABLE_PROJ4JS = true; +ol.HAVE_PROJ4JS = ol.ENABLE_PROJ4JS && typeof Proj4js == "object"; +ol.ProjectionLike; +ol.ProjectionUnits = {DEGREES:"degrees", FEET:"ft", METERS:"m"}; +ol.METERS_PER_UNIT = {}; +ol.METERS_PER_UNIT[ol.ProjectionUnits.DEGREES] = 2 * Math.PI * ol.sphere.NORMAL.radius / 360; +ol.METERS_PER_UNIT[ol.ProjectionUnits.FEET] = 0.3048; +ol.METERS_PER_UNIT[ol.ProjectionUnits.METERS] = 1; +ol.Projection = function(options) { + this.code_ = options.code; + this.units_ = options.units; + this.extent_ = goog.isDef(options.extent) ? options.extent : null; + this.axisOrientation_ = goog.isDef(options.axisOrientation) ? options.axisOrientation : "enu"; + this.global_ = goog.isDef(options.global) ? options.global : false; + this.defaultTileGrid_ = null +}; +ol.Projection.prototype.getCode = function() { + return this.code_ +}; +ol.Projection.prototype.getExtent = function() { + return this.extent_ +}; +ol.Projection.prototype.getPointResolution = goog.abstractMethod; +ol.Projection.prototype.getUnits = function() { + return this.units_ +}; +ol.Projection.prototype.getMetersPerUnit = function() { + return ol.METERS_PER_UNIT[this.units_] +}; +ol.Projection.prototype.getAxisOrientation = function() { + return this.axisOrientation_ +}; +ol.Projection.prototype.isGlobal = function() { + return this.global_ +}; +ol.Projection.prototype.getDefaultTileGrid = function() { + return this.defaultTileGrid_ +}; +ol.Projection.prototype.setDefaultTileGrid = function(tileGrid) { + this.defaultTileGrid_ = tileGrid +}; +ol.Proj4jsProjection_ = function(proj4jsProj, options) { + var units = (proj4jsProj.units); + var config = ({units:units, axisOrientation:proj4jsProj.axis}); + goog.object.extend(config, options); + goog.base(this, config); + this.proj4jsProj_ = proj4jsProj; + this.toEPSG4326_ = null +}; +goog.inherits(ol.Proj4jsProjection_, ol.Projection); +ol.Proj4jsProjection_.prototype.getMetersPerUnit = function() { + var metersPerUnit = this.proj4jsProj_.to_meter; + if(!goog.isDef(metersPerUnit)) { + metersPerUnit = ol.METERS_PER_UNIT[this.units_] + } + return metersPerUnit +}; +ol.Proj4jsProjection_.prototype.getPointResolution = function(resolution, point) { + if(this.getUnits() == ol.ProjectionUnits.DEGREES) { + return resolution + }else { + if(goog.isNull(this.toEPSG4326_)) { + this.toEPSG4326_ = ol.proj.getTransformFromProjections(this, ol.proj.getProj4jsProjectionFromCode_({code:"EPSG:4326", extent:null})) + } + var vertices = [point[0] - resolution / 2, point[1], point[0] + resolution / 2, point[1], point[0], point[1] - resolution / 2, point[0], point[1] + resolution / 2]; + vertices = this.toEPSG4326_(vertices, vertices, 2); + var width = ol.sphere.NORMAL.haversineDistance(vertices.slice(0, 2), vertices.slice(2, 4)); + var height = ol.sphere.NORMAL.haversineDistance(vertices.slice(4, 6), vertices.slice(6, 8)); + var pointResolution = (width + height) / 2; + if(this.getUnits() == ol.ProjectionUnits.FEET) { + pointResolution /= 0.3048 + } + return pointResolution + } +}; +ol.Proj4jsProjection_.prototype.getProj4jsProj = function() { + return this.proj4jsProj_ +}; +ol.proj.proj4jsProjections_ = {}; +ol.proj.projections_ = {}; +ol.proj.transforms_ = {}; +ol.proj.addEquivalentProjections = function(projections) { + ol.proj.addProjections(projections); + goog.array.forEach(projections, function(source) { + goog.array.forEach(projections, function(destination) { + if(source !== destination) { + ol.proj.addTransform(source, destination, ol.proj.cloneTransform) + } + }) + }) +}; +ol.proj.addEquivalentTransforms = function(projections1, projections2, forwardTransform, inverseTransform) { + goog.array.forEach(projections1, function(projection1) { + goog.array.forEach(projections2, function(projection2) { + ol.proj.addTransform(projection1, projection2, forwardTransform); + ol.proj.addTransform(projection2, projection1, inverseTransform) + }) + }) +}; +ol.proj.addProj4jsProjection_ = function(proj4jsProjection) { + var proj4jsProjections = ol.proj.proj4jsProjections_; + var code = proj4jsProjection.getCode(); + goog.asserts.assert(!goog.object.containsKey(proj4jsProjections, code)); + proj4jsProjections[code] = proj4jsProjection +}; +ol.proj.addProjection = function(projection) { + var projections = ol.proj.projections_; + var code = projection.getCode(); + projections[code] = projection; + ol.proj.addTransform(projection, projection, ol.proj.cloneTransform) +}; +ol.proj.addProjections = function(projections) { + goog.array.forEach(projections, function(projection) { + ol.proj.addProjection(projection) + }) +}; +ol.proj.clearAllProjections = function() { + if(ol.ENABLE_PROJ4JS) { + ol.proj.proj4jsProjections_ = {} + } + ol.proj.projections_ = {}; + ol.proj.transforms_ = {} +}; +ol.proj.createProjection = function(projection, defaultCode) { + if(!goog.isDefAndNotNull(projection)) { + return ol.proj.get(defaultCode) + }else { + if(goog.isString(projection)) { + return ol.proj.get(projection) + }else { + goog.asserts.assertInstanceof(projection, ol.Projection); + return projection + } + } +}; +ol.proj.addTransform = function(source, destination, transformFn) { + var sourceCode = source.getCode(); + var destinationCode = destination.getCode(); + var transforms = ol.proj.transforms_; + if(!goog.object.containsKey(transforms, sourceCode)) { + transforms[sourceCode] = {} + } + transforms[sourceCode][destinationCode] = transformFn +}; +ol.proj.removeTransform = function(source, destination) { + var sourceCode = source.getCode(); + var destinationCode = destination.getCode(); + var transforms = ol.proj.transforms_; + goog.asserts.assert(sourceCode in transforms); + goog.asserts.assert(destinationCode in transforms[sourceCode]); + var transform = transforms[sourceCode][destinationCode]; + delete transforms[sourceCode][destinationCode]; + var keys = goog.object.getKeys(transforms[sourceCode]); + if(keys.length === 0) { + delete transforms[sourceCode] + } + return transform +}; +ol.proj.get = function(projectionLike) { + var projection; + if(projectionLike instanceof ol.Projection) { + projection = projectionLike + }else { + if(goog.isString(projectionLike)) { + var code = projectionLike; + projection = ol.proj.projections_[code]; + if(ol.HAVE_PROJ4JS && !goog.isDef(projection)) { + projection = ol.proj.getProj4jsProjectionFromCode_({code:code, extent:null}) + } + if(!goog.isDef(projection)) { + goog.asserts.assert(goog.isDef(projection)); + projection = null + } + }else { + projection = null + } + } + return projection +}; +ol.proj.getProj4jsProjectionFromCode_ = function(options) { + var code = options.code; + var proj4jsProjections = ol.proj.proj4jsProjections_; + var proj4jsProjection = proj4jsProjections[code]; + if(!goog.isDef(proj4jsProjection)) { + var proj4jsProj = new Proj4js.Proj(code); + var srsCode = proj4jsProj.srsCode; + proj4jsProjection = proj4jsProjections[srsCode]; + if(!goog.isDef(proj4jsProjection)) { + var config = (goog.object.clone(options)); + config.code = srsCode; + proj4jsProjection = new ol.Proj4jsProjection_(proj4jsProj, config); + proj4jsProjections[srsCode] = proj4jsProjection + } + proj4jsProjections[code] = proj4jsProjection + } + return proj4jsProjection +}; +ol.proj.equivalent = function(projection1, projection2) { + if(projection1 === projection2) { + return true + }else { + if(projection1.getUnits() != projection2.getUnits()) { + return false + }else { + var transformFn = ol.proj.getTransformFromProjections(projection1, projection2); + return transformFn === ol.proj.cloneTransform + } + } +}; +ol.proj.getTransform = function(source, destination) { + var sourceProjection = ol.proj.get(source); + var destinationProjection = ol.proj.get(destination); + return ol.proj.getTransformFromProjections(sourceProjection, destinationProjection) +}; +ol.proj.getTransformFromProjections = function(sourceProjection, destinationProjection) { + var transforms = ol.proj.transforms_; + var sourceCode = sourceProjection.getCode(); + var destinationCode = destinationProjection.getCode(); + var transform; + if(goog.object.containsKey(transforms, sourceCode) && goog.object.containsKey(transforms[sourceCode], destinationCode)) { + transform = transforms[sourceCode][destinationCode] + } + if(ol.HAVE_PROJ4JS && !goog.isDef(transform)) { + var proj4jsSource; + if(sourceProjection instanceof ol.Proj4jsProjection_) { + proj4jsSource = sourceProjection + }else { + proj4jsSource = ol.proj.getProj4jsProjectionFromCode_({code:sourceCode, extent:null}) + } + var sourceProj4jsProj = proj4jsSource.getProj4jsProj(); + var proj4jsDestination; + if(destinationProjection instanceof ol.Proj4jsProjection_) { + proj4jsDestination = destinationProjection + }else { + proj4jsDestination = ol.proj.getProj4jsProjectionFromCode_({code:destinationCode, extent:null}) + } + var destinationProj4jsProj = proj4jsDestination.getProj4jsProj(); + transform = function(input, opt_output, opt_dimension) { + var length = input.length, dimension = opt_dimension > 1 ? opt_dimension : 2, output = opt_output; + if(!goog.isDef(output)) { + if(dimension > 2) { + output = input.slice() + }else { + output = new Array(length) + } + } + goog.asserts.assert(output.length % dimension === 0); + var proj4jsPoint; + for(var i = 0;i < length;i += dimension) { + proj4jsPoint = new Proj4js.Point(input[i], input[i + 1]); + proj4jsPoint = Proj4js.transform(sourceProj4jsProj, destinationProj4jsProj, proj4jsPoint); + output[i] = proj4jsPoint.x; + output[i + 1] = proj4jsPoint.y + } + return output + }; + ol.proj.addTransform(sourceProjection, destinationProjection, transform) + } + if(!goog.isDef(transform)) { + goog.asserts.assert(goog.isDef(transform)); + transform = ol.proj.identityTransform + } + return transform +}; +ol.proj.identityTransform = function(input, opt_output, opt_dimension) { + if(goog.isDef(opt_output) && input !== opt_output) { + goog.asserts.fail("This should not be used internally."); + for(var i = 0, ii = input.length;i < ii;++i) { + opt_output[i] = input[i] + } + input = opt_output + } + return input +}; +ol.proj.cloneTransform = function(input, opt_output, opt_dimension) { + var output; + if(goog.isDef(opt_output)) { + for(var i = 0, ii = input.length;i < ii;++i) { + opt_output[i] = input[i] + } + output = opt_output + }else { + output = input.slice() + } + return output +}; +ol.proj.transform = function(point, source, destination) { + var transformFn = ol.proj.getTransform(source, destination); + return transformFn(point) +}; +ol.proj.transformWithProjections = function(point, sourceProjection, destinationProjection) { + var transformFn = ol.proj.getTransformFromProjections(sourceProjection, destinationProjection); + return transformFn(point) +}; +ol.proj.configureProj4jsProjection = function(options) { + goog.asserts.assert(!goog.object.containsKey(ol.proj.proj4jsProjections_, options.code)); + return ol.proj.getProj4jsProjectionFromCode_(options) +}; +goog.provide("ol.IView2D"); +goog.provide("ol.View2DState"); +goog.require("ol.Coordinate"); +goog.require("ol.Projection"); +ol.View2DState; +ol.IView2D = function() { +}; +ol.IView2D.prototype.getCenter = function() { +}; +ol.IView2D.prototype.getProjection = function() { +}; +ol.IView2D.prototype.getResolution = function() { +}; +ol.IView2D.prototype.getRotation = function() { +}; +ol.IView2D.prototype.getView2DState = function() { +}; +goog.provide("ol.layer.Base"); +goog.provide("ol.layer.LayerProperty"); +goog.provide("ol.layer.LayerState"); +goog.require("goog.events"); +goog.require("goog.events.EventType"); +goog.require("goog.math"); +goog.require("goog.object"); +goog.require("ol.Object"); +ol.layer.LayerProperty = {BRIGHTNESS:"brightness", CONTRAST:"contrast", HUE:"hue", OPACITY:"opacity", SATURATION:"saturation", VISIBLE:"visible"}; +ol.layer.LayerState; +ol.layer.Base = function(options) { + goog.base(this); + var values = goog.object.clone(options); + values.brightness = goog.isDef(values.brightness) ? values.brightness : 0; + values.contrast = goog.isDef(values.contrast) ? values.contrast : 1; + values.hue = goog.isDef(values.hue) ? values.hue : 0; + values.opacity = goog.isDef(values.opacity) ? values.opacity : 1; + values.saturation = goog.isDef(values.saturation) ? values.saturation : 1; + values.visible = goog.isDef(values.visible) ? values.visible : true; + this.setValues(values); + goog.events.listen(this, [ol.Object.getChangeEventType(ol.layer.LayerProperty.BRIGHTNESS), ol.Object.getChangeEventType(ol.layer.LayerProperty.CONTRAST), ol.Object.getChangeEventType(ol.layer.LayerProperty.HUE), ol.Object.getChangeEventType(ol.layer.LayerProperty.OPACITY), ol.Object.getChangeEventType(ol.layer.LayerProperty.SATURATION), goog.events.EventType.LOAD], this.handleLayerChange, false, this); + goog.events.listen(this, ol.Object.getChangeEventType(ol.layer.LayerProperty.VISIBLE), this.handleLayerVisibleChange, false, this) +}; +goog.inherits(ol.layer.Base, ol.Object); +ol.layer.Base.prototype.dispatchChangeEvent = function() { + this.dispatchEvent(goog.events.EventType.CHANGE) +}; +ol.layer.Base.prototype.getBrightness = function() { + return(this.get(ol.layer.LayerProperty.BRIGHTNESS)) +}; +goog.exportProperty(ol.layer.Base.prototype, "getBrightness", ol.layer.Base.prototype.getBrightness); +ol.layer.Base.prototype.getContrast = function() { + return(this.get(ol.layer.LayerProperty.CONTRAST)) +}; +goog.exportProperty(ol.layer.Base.prototype, "getContrast", ol.layer.Base.prototype.getContrast); +ol.layer.Base.prototype.getHue = function() { + return(this.get(ol.layer.LayerProperty.HUE)) +}; +goog.exportProperty(ol.layer.Base.prototype, "getHue", ol.layer.Base.prototype.getHue); +ol.layer.Base.prototype.getLayerState = function() { + var brightness = this.getBrightness(); + var contrast = this.getContrast(); + var hue = this.getHue(); + var opacity = this.getOpacity(); + var ready = this.isReady(); + var saturation = this.getSaturation(); + var visible = this.getVisible(); + return{brightness:goog.isDef(brightness) ? goog.math.clamp(brightness, -1, 1) : 0, contrast:goog.isDef(contrast) ? Math.max(contrast, 0) : 1, hue:goog.isDef(hue) ? hue : 0, opacity:goog.isDef(opacity) ? goog.math.clamp(opacity, 0, 1) : 1, ready:ready, saturation:goog.isDef(saturation) ? Math.max(saturation, 0) : 1, visible:goog.isDef(visible) ? !!visible : true} +}; +ol.layer.Base.prototype.getLayersArray = goog.abstractMethod; +ol.layer.Base.prototype.getLayerStatesArray = goog.abstractMethod; +ol.layer.Base.prototype.getOpacity = function() { + return(this.get(ol.layer.LayerProperty.OPACITY)) +}; +goog.exportProperty(ol.layer.Base.prototype, "getOpacity", ol.layer.Base.prototype.getOpacity); +ol.layer.Base.prototype.getSaturation = function() { + return(this.get(ol.layer.LayerProperty.SATURATION)) +}; +goog.exportProperty(ol.layer.Base.prototype, "getSaturation", ol.layer.Base.prototype.getSaturation); +ol.layer.Base.prototype.getVisible = function() { + return(this.get(ol.layer.LayerProperty.VISIBLE)) +}; +goog.exportProperty(ol.layer.Base.prototype, "getVisible", ol.layer.Base.prototype.getVisible); +ol.layer.Base.prototype.handleLayerChange = function() { + if(this.getVisible() && this.isReady()) { + this.dispatchChangeEvent() + } +}; +ol.layer.Base.prototype.handleLayerVisibleChange = function() { + if(this.isReady()) { + this.dispatchChangeEvent() + } +}; +ol.layer.Base.prototype.isReady = goog.abstractMethod; +ol.layer.Base.prototype.setBrightness = function(brightness) { + this.set(ol.layer.LayerProperty.BRIGHTNESS, brightness) +}; +goog.exportProperty(ol.layer.Base.prototype, "setBrightness", ol.layer.Base.prototype.setBrightness); +ol.layer.Base.prototype.setContrast = function(contrast) { + this.set(ol.layer.LayerProperty.CONTRAST, contrast) +}; +goog.exportProperty(ol.layer.Base.prototype, "setContrast", ol.layer.Base.prototype.setContrast); +ol.layer.Base.prototype.setHue = function(hue) { + this.set(ol.layer.LayerProperty.HUE, hue) +}; +goog.exportProperty(ol.layer.Base.prototype, "setHue", ol.layer.Base.prototype.setHue); +ol.layer.Base.prototype.setOpacity = function(opacity) { + this.set(ol.layer.LayerProperty.OPACITY, opacity) +}; +goog.exportProperty(ol.layer.Base.prototype, "setOpacity", ol.layer.Base.prototype.setOpacity); +ol.layer.Base.prototype.setSaturation = function(saturation) { + this.set(ol.layer.LayerProperty.SATURATION, saturation) +}; +goog.exportProperty(ol.layer.Base.prototype, "setSaturation", ol.layer.Base.prototype.setSaturation); +ol.layer.Base.prototype.setVisible = function(visible) { + this.set(ol.layer.LayerProperty.VISIBLE, visible) +}; +goog.exportProperty(ol.layer.Base.prototype, "setVisible", ol.layer.Base.prototype.setVisible); +goog.provide("goog.functions"); +goog.functions.constant = function(retValue) { + return function() { + return retValue + } +}; +goog.functions.FALSE = goog.functions.constant(false); +goog.functions.TRUE = goog.functions.constant(true); +goog.functions.NULL = goog.functions.constant(null); +goog.functions.identity = function(opt_returnValue, var_args) { + return opt_returnValue +}; +goog.functions.error = function(message) { + return function() { + throw Error(message); + } +}; +goog.functions.fail = function(err) { + return function() { + throw err; + } +}; +goog.functions.lock = function(f, opt_numArgs) { + opt_numArgs = opt_numArgs || 0; + return function() { + return f.apply(this, Array.prototype.slice.call(arguments, 0, opt_numArgs)) + } +}; +goog.functions.withReturnValue = function(f, retValue) { + return goog.functions.sequence(f, goog.functions.constant(retValue)) +}; +goog.functions.compose = function(fn, var_args) { + var functions = arguments; + var length = functions.length; + return function() { + var result; + if(length) { + result = functions[length - 1].apply(this, arguments) + } + for(var i = length - 2;i >= 0;i--) { + result = functions[i].call(this, result) + } + return result + } +}; +goog.functions.sequence = function(var_args) { + var functions = arguments; + var length = functions.length; + return function() { + var result; + for(var i = 0;i < length;i++) { + result = functions[i].apply(this, arguments) + } + return result + } +}; +goog.functions.and = function(var_args) { + var functions = arguments; + var length = functions.length; + return function() { + for(var i = 0;i < length;i++) { + if(!functions[i].apply(this, arguments)) { + return false + } + } + return true + } +}; +goog.functions.or = function(var_args) { + var functions = arguments; + var length = functions.length; + return function() { + for(var i = 0;i < length;i++) { + if(functions[i].apply(this, arguments)) { + return true + } + } + return false + } +}; +goog.functions.not = function(f) { + return function() { + return!f.apply(this, arguments) + } +}; +goog.functions.create = function(constructor, var_args) { + var temp = function() { + }; + temp.prototype = constructor.prototype; + var obj = new temp; + constructor.apply(obj, Array.prototype.slice.call(arguments, 1)); + return obj +}; +goog.provide("ol.source.Source"); +goog.require("goog.events.EventTarget"); +goog.require("goog.events.EventType"); +goog.require("goog.functions"); +goog.require("ol.Attribution"); +goog.require("ol.Extent"); +goog.require("ol.proj"); +ol.source.Source = function(options) { + goog.base(this); + this.projection_ = ol.proj.get(options.projection); + this.extent_ = goog.isDef(options.extent) ? options.extent : goog.isDef(options.projection) ? this.projection_.getExtent() : null; + this.attributions_ = goog.isDef(options.attributions) ? options.attributions : null; + this.logo_ = options.logo; + this.revision_ = 0 +}; +goog.inherits(ol.source.Source, goog.events.EventTarget); +ol.source.Source.prototype.dispatchChangeEvent = function() { + ++this.revision_; + this.dispatchEvent(goog.events.EventType.CHANGE) +}; +ol.source.Source.prototype.dispatchLoadEvent = function() { + ++this.revision_; + this.dispatchEvent(goog.events.EventType.LOAD) +}; +ol.source.Source.prototype.getAttributions = function() { + return this.attributions_ +}; +ol.source.Source.prototype.getExtent = function() { + return this.extent_ +}; +ol.source.Source.prototype.getLogo = function() { + return this.logo_ +}; +ol.source.Source.prototype.getProjection = function() { + return this.projection_ +}; +ol.source.Source.prototype.getResolutions = goog.abstractMethod; +ol.source.Source.prototype.getRevision = function() { + return this.revision_ +}; +ol.source.Source.prototype.isReady = goog.functions.TRUE; +ol.source.Source.prototype.setAttributions = function(attributions) { + this.attributions_ = attributions +}; +ol.source.Source.prototype.setExtent = function(extent) { + this.extent_ = extent +}; +ol.source.Source.prototype.setLogo = function(logo) { + this.logo_ = logo +}; +ol.source.Source.prototype.setProjection = function(projection) { + this.projection_ = projection +}; +goog.provide("ol.layer.Layer"); +goog.require("goog.asserts"); +goog.require("goog.events"); +goog.require("goog.events.EventType"); +goog.require("goog.object"); +goog.require("ol.layer.Base"); +goog.require("ol.source.Source"); +ol.layer.Layer = function(options) { + var baseOptions = (goog.object.clone(options)); + delete baseOptions.source; + goog.base(this, baseOptions); + this.selectionData_ = {featuresBySelectedFeatureUid:{}, layer:null, selectedFeaturesByFeatureUid:{}}; + this.source_ = options.source; + goog.events.listen(this.source_, goog.events.EventType.CHANGE, this.handleSourceChange_, false, this); + if(!this.source_.isReady()) { + goog.events.listenOnce(this.source_, goog.events.EventType.LOAD, this.handleSourceLoad_, false, this) + } +}; +goog.inherits(ol.layer.Layer, ol.layer.Base); +ol.layer.Layer.prototype.dispatchLoadEvent_ = function() { + this.dispatchEvent(goog.events.EventType.LOAD) +}; +ol.layer.Layer.prototype.getLayersArray = function(opt_array) { + var array = goog.isDef(opt_array) ? opt_array : []; + array.push(this); + return array +}; +ol.layer.Layer.prototype.getLayerStatesArray = function(opt_obj) { + var obj = goog.isDef(opt_obj) ? opt_obj : {layers:[], layerStates:[]}; + goog.asserts.assert(obj.layers.length === obj.layerStates.length); + obj.layers.push(this); + obj.layerStates.push(this.getLayerState()); + return obj +}; +ol.layer.Layer.prototype.getSelectionData = function() { + return this.selectionData_ +}; +ol.layer.Layer.prototype.getSource = function() { + return this.source_ +}; +ol.layer.Layer.prototype.handleSourceChange_ = function() { + this.dispatchChangeEvent() +}; +ol.layer.Layer.prototype.handleSourceLoad_ = function() { + this.dispatchLoadEvent_() +}; +ol.layer.Layer.prototype.isReady = function() { + return this.getSource().isReady() +}; +goog.provide("ol.FrameState"); +goog.provide("ol.PostRenderFunction"); +goog.provide("ol.PreRenderFunction"); +goog.require("goog.vec.Mat4"); +goog.require("ol.Attribution"); +goog.require("ol.Extent"); +goog.require("ol.Size"); +goog.require("ol.TileQueue"); +goog.require("ol.TileRange"); +goog.require("ol.View2DState"); +goog.require("ol.layer.Layer"); +goog.require("ol.layer.LayerState"); +ol.FrameState; +ol.PostRenderFunction; +ol.PreRenderFunction; +goog.provide("ol.Geolocation"); +goog.provide("ol.Geolocation.SUPPORTED"); +goog.provide("ol.GeolocationProperty"); +goog.require("goog.events"); +goog.require("goog.events.EventType"); +goog.require("goog.math"); +goog.require("ol.Coordinate"); +goog.require("ol.Object"); +goog.require("ol.Projection"); +goog.require("ol.proj"); +ol.GeolocationProperty = {ACCURACY:"accuracy", ALTITUDE:"altitude", ALTITUDE_ACCURACY:"altitudeAccuracy", HEADING:"heading", POSITION:"position", PROJECTION:"projection", SPEED:"speed", TRACKING:"tracking", TRACKING_OPTIONS:"trackingOptions"}; +ol.Geolocation = function(opt_options) { + goog.base(this); + var options = goog.isDef(opt_options) ? opt_options : {}; + this.position_ = null; + this.transform_ = ol.proj.identityTransform; + this.watchId_ = undefined; + goog.events.listen(this, ol.Object.getChangeEventType(ol.GeolocationProperty.PROJECTION), this.handleProjectionChanged_, false, this); + goog.events.listen(this, ol.Object.getChangeEventType(ol.GeolocationProperty.TRACKING), this.handleTrackingChanged_, false, this); + if(goog.isDef(options.projection)) { + this.setProjection(ol.proj.get(options.projection)) + } + if(goog.isDef(options.trackingOptions)) { + this.setTrackingOptions(options.trackingOptions) + } + this.setTracking(goog.isDef(options.tracking) ? options.tracking : false) +}; +goog.inherits(ol.Geolocation, ol.Object); +ol.Geolocation.prototype.disposeInternal = function() { + this.setTracking(false); + goog.base(this, "disposeInternal") +}; +ol.Geolocation.prototype.handleProjectionChanged_ = function() { + var projection = this.getProjection(); + if(goog.isDefAndNotNull(projection)) { + this.transform_ = ol.proj.getTransformFromProjections(ol.proj.get("EPSG:4326"), projection); + if(!goog.isNull(this.position_)) { + this.set(ol.GeolocationProperty.POSITION, this.transform_(this.position_)) + } + } +}; +ol.Geolocation.prototype.handleTrackingChanged_ = function() { + if(ol.Geolocation.SUPPORTED) { + var tracking = this.getTracking(); + if(tracking && !goog.isDef(this.watchId_)) { + this.watchId_ = goog.global.navigator.geolocation.watchPosition(goog.bind(this.positionChange_, this), goog.bind(this.positionError_, this), this.getTrackingOptions()) + }else { + if(!tracking && goog.isDef(this.watchId_)) { + goog.global.navigator.geolocation.clearWatch(this.watchId_); + this.watchId_ = undefined + } + } + } +}; +ol.Geolocation.SUPPORTED = "geolocation" in goog.global.navigator; +ol.Geolocation.prototype.positionChange_ = function(position) { + var coords = position.coords; + this.set(ol.GeolocationProperty.ACCURACY, coords.accuracy); + this.set(ol.GeolocationProperty.ALTITUDE, goog.isNull(coords.altitude) ? undefined : coords.altitude); + this.set(ol.GeolocationProperty.ALTITUDE_ACCURACY, goog.isNull(coords.altitudeAccuracy) ? undefined : coords.altitudeAccuracy); + this.set(ol.GeolocationProperty.HEADING, goog.isNull(coords.heading) ? undefined : goog.math.toRadians(coords.heading)); + if(goog.isNull(this.position_)) { + this.position_ = [coords.longitude, coords.latitude] + }else { + this.position_[0] = coords.longitude; + this.position_[1] = coords.latitude + } + this.set(ol.GeolocationProperty.POSITION, this.transform_(this.position_)); + this.set(ol.GeolocationProperty.SPEED, goog.isNull(coords.speed) ? undefined : coords.speed) +}; +ol.Geolocation.prototype.positionError_ = function(error) { + error.type = goog.events.EventType.ERROR; + this.dispatchEvent(error) +}; +ol.Geolocation.prototype.getAccuracy = function() { + return(this.get(ol.GeolocationProperty.ACCURACY)) +}; +goog.exportProperty(ol.Geolocation.prototype, "getAccuracy", ol.Geolocation.prototype.getAccuracy); +ol.Geolocation.prototype.getAltitude = function() { + return(this.get(ol.GeolocationProperty.ALTITUDE)) +}; +goog.exportProperty(ol.Geolocation.prototype, "getAltitude", ol.Geolocation.prototype.getAltitude); +ol.Geolocation.prototype.getAltitudeAccuracy = function() { + return(this.get(ol.GeolocationProperty.ALTITUDE_ACCURACY)) +}; +goog.exportProperty(ol.Geolocation.prototype, "getAltitudeAccuracy", ol.Geolocation.prototype.getAltitudeAccuracy); +ol.Geolocation.prototype.getHeading = function() { + return(this.get(ol.GeolocationProperty.HEADING)) +}; +goog.exportProperty(ol.Geolocation.prototype, "getHeading", ol.Geolocation.prototype.getHeading); +ol.Geolocation.prototype.getPosition = function() { + return(this.get(ol.GeolocationProperty.POSITION)) +}; +goog.exportProperty(ol.Geolocation.prototype, "getPosition", ol.Geolocation.prototype.getPosition); +ol.Geolocation.prototype.getProjection = function() { + return(this.get(ol.GeolocationProperty.PROJECTION)) +}; +goog.exportProperty(ol.Geolocation.prototype, "getProjection", ol.Geolocation.prototype.getProjection); +ol.Geolocation.prototype.getSpeed = function() { + return(this.get(ol.GeolocationProperty.SPEED)) +}; +goog.exportProperty(ol.Geolocation.prototype, "getSpeed", ol.Geolocation.prototype.getSpeed); +ol.Geolocation.prototype.getTracking = function() { + return(this.get(ol.GeolocationProperty.TRACKING)) +}; +goog.exportProperty(ol.Geolocation.prototype, "getTracking", ol.Geolocation.prototype.getTracking); +ol.Geolocation.prototype.getTrackingOptions = function() { + return(this.get(ol.GeolocationProperty.TRACKING_OPTIONS)) +}; +goog.exportProperty(ol.Geolocation.prototype, "getTrackingOptions", ol.Geolocation.prototype.getTrackingOptions); +ol.Geolocation.prototype.setProjection = function(projection) { + this.set(ol.GeolocationProperty.PROJECTION, projection) +}; +goog.exportProperty(ol.Geolocation.prototype, "setProjection", ol.Geolocation.prototype.setProjection); +ol.Geolocation.prototype.setTracking = function(tracking) { + this.set(ol.GeolocationProperty.TRACKING, tracking) +}; +goog.exportProperty(ol.Geolocation.prototype, "setTracking", ol.Geolocation.prototype.setTracking); +ol.Geolocation.prototype.setTrackingOptions = function(options) { + this.set(ol.GeolocationProperty.TRACKING_OPTIONS, options) +}; +goog.exportProperty(ol.Geolocation.prototype, "setTrackingOptions", ol.Geolocation.prototype.setTrackingOptions); +goog.provide("ol.IView3D"); +ol.IView3D = function() { +}; +goog.provide("ol.IView"); +goog.require("ol.IView2D"); +goog.require("ol.IView3D"); +ol.IView = function() { +}; +ol.IView.prototype.getView2D = function() { +}; +ol.IView.prototype.getView3D = function() { +}; +goog.provide("ol.Image"); +goog.provide("ol.ImageState"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.require("goog.events"); +goog.require("goog.events.EventTarget"); +goog.require("goog.events.EventType"); +goog.require("goog.object"); +goog.require("ol.Attribution"); +goog.require("ol.Extent"); +ol.ImageState = {IDLE:0, LOADING:1, LOADED:2, ERROR:3}; +ol.Image = function(extent, resolution, src, crossOrigin, attributions) { + goog.base(this); + this.attributions_ = attributions; + this.extent_ = extent; + this.src_ = src; + this.resolution_ = resolution; + this.image_ = new Image; + if(!goog.isNull(crossOrigin)) { + this.image_.crossOrigin = crossOrigin + } + this.imageByContext_ = {}; + this.imageListenerKeys_ = null; + this.state = ol.ImageState.IDLE +}; +goog.inherits(ol.Image, goog.events.EventTarget); +ol.Image.prototype.dispatchChangeEvent = function() { + this.dispatchEvent(goog.events.EventType.CHANGE) +}; +ol.Image.prototype.getAttributions = function() { + return this.attributions_ +}; +ol.Image.prototype.getExtent = function() { + return this.extent_ +}; +ol.Image.prototype.getImageElement = function(opt_context) { + if(goog.isDef(opt_context)) { + var image; + var key = goog.getUid(opt_context); + if(key in this.imageByContext_) { + return this.imageByContext_[key] + }else { + if(goog.object.isEmpty(this.imageByContext_)) { + image = this.image_ + }else { + image = (this.image_.cloneNode(false)) + } + } + this.imageByContext_[key] = image; + return image + }else { + return this.image_ + } +}; +ol.Image.prototype.getResolution = function() { + return this.resolution_ +}; +ol.Image.prototype.getState = function() { + return this.state +}; +ol.Image.prototype.handleImageError_ = function() { + this.state = ol.ImageState.ERROR; + this.unlistenImage_(); + this.dispatchChangeEvent() +}; +ol.Image.prototype.handleImageLoad_ = function() { + this.state = ol.ImageState.LOADED; + this.unlistenImage_(); + this.dispatchChangeEvent() +}; +ol.Image.prototype.load = function() { + if(this.state == ol.ImageState.IDLE) { + this.state = ol.ImageState.LOADING; + goog.asserts.assert(goog.isNull(this.imageListenerKeys_)); + this.imageListenerKeys_ = [goog.events.listenOnce(this.image_, goog.events.EventType.ERROR, this.handleImageError_, false, this), goog.events.listenOnce(this.image_, goog.events.EventType.LOAD, this.handleImageLoad_, false, this)]; + this.image_.src = this.src_ + } +}; +ol.Image.prototype.unlistenImage_ = function() { + goog.asserts.assert(!goog.isNull(this.imageListenerKeys_)); + goog.array.forEach(this.imageListenerKeys_, goog.events.unlistenByKey); + this.imageListenerKeys_ = null +}; +goog.provide("ol.ImageTile"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.require("goog.events"); +goog.require("goog.events.EventType"); +goog.require("goog.object"); +goog.require("ol.Tile"); +goog.require("ol.TileCoord"); +goog.require("ol.TileState"); +ol.ImageTile = function(tileCoord, state, src, crossOrigin) { + goog.base(this, tileCoord, state); + this.src_ = src; + this.image_ = new Image; + if(!goog.isNull(crossOrigin)) { + this.image_.crossOrigin = crossOrigin + } + this.imageByContext_ = {}; + this.imageListenerKeys_ = null +}; +goog.inherits(ol.ImageTile, ol.Tile); +ol.ImageTile.prototype.getImage = function(opt_context) { + if(goog.isDef(opt_context)) { + var image; + var key = goog.getUid(opt_context); + if(key in this.imageByContext_) { + return this.imageByContext_[key] + }else { + if(goog.object.isEmpty(this.imageByContext_)) { + image = this.image_ + }else { + image = (this.image_.cloneNode(false)) + } + } + this.imageByContext_[key] = image; + return image + }else { + return this.image_ + } +}; +ol.ImageTile.prototype.getKey = function() { + return this.src_ +}; +ol.ImageTile.prototype.handleImageError_ = function() { + this.state = ol.TileState.ERROR; + this.unlistenImage_(); + this.dispatchChangeEvent() +}; +ol.ImageTile.prototype.handleImageLoad_ = function() { + if(this.image_.naturalWidth && this.image_.naturalHeight) { + this.state = ol.TileState.LOADED + }else { + this.state = ol.TileState.EMPTY + } + this.unlistenImage_(); + this.dispatchChangeEvent() +}; +ol.ImageTile.prototype.load = function() { + if(this.state == ol.TileState.IDLE) { + this.state = ol.TileState.LOADING; + goog.asserts.assert(goog.isNull(this.imageListenerKeys_)); + this.imageListenerKeys_ = [goog.events.listenOnce(this.image_, goog.events.EventType.ERROR, this.handleImageError_, false, this), goog.events.listenOnce(this.image_, goog.events.EventType.LOAD, this.handleImageLoad_, false, this)]; + this.image_.src = this.src_ + } +}; +ol.ImageTile.prototype.unlistenImage_ = function() { + goog.asserts.assert(!goog.isNull(this.imageListenerKeys_)); + goog.array.forEach(this.imageListenerKeys_, goog.events.unlistenByKey); + this.imageListenerKeys_ = null +}; +goog.provide("ol.ImageUrlFunction"); +goog.provide("ol.ImageUrlFunctionType"); +goog.require("ol.Size"); +ol.ImageUrlFunctionType; +ol.ImageUrlFunction.createFromParamsFunction = function(baseUrl, params, paramsFunction) { + return function(extent, size, projection) { + return paramsFunction(baseUrl, params, extent, size, projection) + } +}; +ol.ImageUrlFunction.nullImageUrlFunction = function(extent, size) { + return undefined +}; +goog.provide("ol.View"); +goog.provide("ol.ViewHint"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.require("ol.IView"); +goog.require("ol.Object"); +ol.ViewHint = {ANIMATING:0, INTERACTING:1}; +ol.View = function() { + goog.base(this); + this.hints_ = [0, 0] +}; +goog.inherits(ol.View, ol.Object); +ol.View.prototype.getHints = function() { + return goog.array.clone(this.hints_) +}; +ol.View.prototype.getView2D = goog.abstractMethod; +ol.View.prototype.getView3D = goog.abstractMethod; +ol.View.prototype.setHint = function(hint, delta) { + goog.asserts.assert(0 <= hint && hint < this.hints_.length); + this.hints_[hint] += delta; + goog.asserts.assert(this.hints_[hint] >= 0); + return this.hints_[hint] +}; +goog.provide("goog.fx.easing"); +goog.fx.easing.easeIn = function(t) { + return t * t * t +}; +goog.fx.easing.easeOut = function(t) { + return 1 - Math.pow(1 - t, 3) +}; +goog.fx.easing.inAndOut = function(t) { + return 3 * t * t - 2 * t * t * t +}; +goog.provide("ol.easing"); +goog.require("goog.fx.easing"); +ol.easing.bounce = function(t) { + var s = 7.5625, p = 2.75, l; + if(t < 1 / p) { + l = s * t * t + }else { + if(t < 2 / p) { + t -= 1.5 / p; + l = s * t * t + 0.75 + }else { + if(t < 2.5 / p) { + t -= 2.25 / p; + l = s * t * t + 0.9375 + }else { + t -= 2.625 / p; + l = s * t * t + 0.984375 + } + } + } + return l +}; +ol.easing.easeIn = goog.fx.easing.easeIn; +ol.easing.easeOut = goog.fx.easing.easeOut; +ol.easing.elastic = function(t) { + return Math.pow(2, -10 * t) * Math.sin((t - 0.075) * 2 * Math.PI / 0.3) + 1 +}; +ol.easing.inAndOut = goog.fx.easing.inAndOut; +ol.easing.linear = function(t) { + return t +}; +ol.easing.upAndDown = function(t) { + if(t < 0.5) { + return ol.easing.inAndOut(2 * t) + }else { + return 1 - ol.easing.inAndOut(2 * (t - 0.5)) + } +}; +goog.provide("ol.animation"); +goog.require("ol.PreRenderFunction"); +goog.require("ol.ViewHint"); +goog.require("ol.easing"); +ol.animation.bounce = function(options) { + var resolution = options.resolution; + var start = goog.isDef(options.start) ? options.start : goog.now(); + var duration = goog.isDef(options.duration) ? options.duration : 1E3; + var easing = goog.isDef(options.easing) ? options.easing : ol.easing.upAndDown; + return function(map, frameState) { + if(frameState.time < start) { + frameState.animate = true; + frameState.viewHints[ol.ViewHint.ANIMATING] += 1; + return true + }else { + if(frameState.time < start + duration) { + var delta = easing((frameState.time - start) / duration); + var deltaResolution = resolution - frameState.view2DState.resolution; + frameState.animate = true; + frameState.view2DState.resolution += delta * deltaResolution; + frameState.viewHints[ol.ViewHint.ANIMATING] += 1; + return true + }else { + return false + } + } + } +}; +ol.animation.pan = function(options) { + var source = options.source; + var start = goog.isDef(options.start) ? options.start : goog.now(); + var sourceX = source[0]; + var sourceY = source[1]; + var duration = goog.isDef(options.duration) ? options.duration : 1E3; + var easing = goog.isDef(options.easing) ? options.easing : ol.easing.inAndOut; + return function(map, frameState) { + if(frameState.time < start) { + frameState.animate = true; + frameState.viewHints[ol.ViewHint.ANIMATING] += 1; + return true + }else { + if(frameState.time < start + duration) { + var delta = 1 - easing((frameState.time - start) / duration); + var deltaX = sourceX - frameState.view2DState.center[0]; + var deltaY = sourceY - frameState.view2DState.center[1]; + frameState.animate = true; + frameState.view2DState.center[0] += delta * deltaX; + frameState.view2DState.center[1] += delta * deltaY; + frameState.viewHints[ol.ViewHint.ANIMATING] += 1; + return true + }else { + return false + } + } + } +}; +ol.animation.rotate = function(options) { + var sourceRotation = options.rotation; + var start = goog.isDef(options.start) ? options.start : goog.now(); + var duration = goog.isDef(options.duration) ? options.duration : 1E3; + var easing = goog.isDef(options.easing) ? options.easing : ol.easing.inAndOut; + return function(map, frameState) { + if(frameState.time < start) { + frameState.animate = true; + frameState.viewHints[ol.ViewHint.ANIMATING] += 1; + return true + }else { + if(frameState.time < start + duration) { + var delta = 1 - easing((frameState.time - start) / duration); + var deltaRotation = sourceRotation - frameState.view2DState.rotation; + frameState.animate = true; + frameState.view2DState.rotation += delta * deltaRotation; + frameState.viewHints[ol.ViewHint.ANIMATING] += 1; + return true + }else { + return false + } + } + } +}; +ol.animation.zoom = function(options) { + var sourceResolution = options.resolution; + var start = goog.isDef(options.start) ? options.start : goog.now(); + var duration = goog.isDef(options.duration) ? options.duration : 1E3; + var easing = goog.isDef(options.easing) ? options.easing : ol.easing.inAndOut; + return function(map, frameState) { + if(frameState.time < start) { + frameState.animate = true; + frameState.viewHints[ol.ViewHint.ANIMATING] += 1; + return true + }else { + if(frameState.time < start + duration) { + var delta = 1 - easing((frameState.time - start) / duration); + var deltaResolution = sourceResolution - frameState.view2DState.resolution; + frameState.animate = true; + frameState.view2DState.resolution += delta * deltaResolution; + frameState.viewHints[ol.ViewHint.ANIMATING] += 1; + return true + }else { + return false + } + } + } +}; +goog.provide("ol.Kinetic"); +goog.require("ol.Coordinate"); +goog.require("ol.PreRenderFunction"); +goog.require("ol.animation"); +ol.Kinetic = function(decay, minVelocity, delay) { + this.decay_ = decay; + this.minVelocity_ = minVelocity; + this.delay_ = delay; + this.points_ = []; + this.angle_ = 0; + this.initialVelocity_ = 0 +}; +ol.Kinetic.prototype.begin = function() { + this.points_.length = 0; + this.angle_ = 0; + this.initialVelocity_ = 0 +}; +ol.Kinetic.prototype.update = function(x, y) { + this.points_.push(x, y, goog.now()) +}; +ol.Kinetic.prototype.end = function() { + var delay = goog.now() - this.delay_; + var lastIndex = this.points_.length - 3; + if(this.points_[lastIndex + 2] < delay) { + return false + } + var firstIndex = lastIndex - 3; + while(firstIndex >= 0 && this.points_[firstIndex + 2] > delay) { + firstIndex -= 3 + } + if(firstIndex >= 0) { + var duration = this.points_[lastIndex + 2] - this.points_[firstIndex + 2]; + var dx = this.points_[lastIndex] - this.points_[firstIndex]; + var dy = this.points_[lastIndex + 1] - this.points_[firstIndex + 1]; + this.angle_ = Math.atan2(dy, dx); + this.initialVelocity_ = Math.sqrt(dx * dx + dy * dy) / duration; + return this.initialVelocity_ > this.minVelocity_ + } + return false +}; +ol.Kinetic.prototype.pan = function(source) { + var decay = this.decay_; + var initialVelocity = this.initialVelocity_; + var minVelocity = this.minVelocity_; + var duration = this.getDuration_(); + var easingFunction = function(t) { + return initialVelocity * (Math.exp(decay * t * duration) - 1) / (minVelocity - initialVelocity) + }; + return ol.animation.pan({source:source, duration:duration, easing:easingFunction}) +}; +ol.Kinetic.prototype.getDuration_ = function() { + return Math.log(this.minVelocity_ / this.initialVelocity_) / this.decay_ +}; +ol.Kinetic.prototype.getDistance = function() { + return(this.minVelocity_ - this.initialVelocity_) / this.decay_ +}; +ol.Kinetic.prototype.getAngle = function() { + return this.angle_ +}; +goog.provide("goog.structs"); +goog.require("goog.array"); +goog.require("goog.object"); +goog.structs.getCount = function(col) { + if(typeof col.getCount == "function") { + return col.getCount() + } + if(goog.isArrayLike(col) || goog.isString(col)) { + return col.length + } + return goog.object.getCount(col) +}; +goog.structs.getValues = function(col) { + if(typeof col.getValues == "function") { + return col.getValues() + } + if(goog.isString(col)) { + return col.split("") + } + if(goog.isArrayLike(col)) { + var rv = []; + var l = col.length; + for(var i = 0;i < l;i++) { + rv.push(col[i]) + } + return rv + } + return goog.object.getValues(col) +}; +goog.structs.getKeys = function(col) { + if(typeof col.getKeys == "function") { + return col.getKeys() + } + if(typeof col.getValues == "function") { + return undefined + } + if(goog.isArrayLike(col) || goog.isString(col)) { + var rv = []; + var l = col.length; + for(var i = 0;i < l;i++) { + rv.push(i) + } + return rv + } + return goog.object.getKeys(col) +}; +goog.structs.contains = function(col, val) { + if(typeof col.contains == "function") { + return col.contains(val) + } + if(typeof col.containsValue == "function") { + return col.containsValue(val) + } + if(goog.isArrayLike(col) || goog.isString(col)) { + return goog.array.contains((col), val) + } + return goog.object.containsValue(col, val) +}; +goog.structs.isEmpty = function(col) { + if(typeof col.isEmpty == "function") { + return col.isEmpty() + } + if(goog.isArrayLike(col) || goog.isString(col)) { + return goog.array.isEmpty((col)) + } + return goog.object.isEmpty(col) +}; +goog.structs.clear = function(col) { + if(typeof col.clear == "function") { + col.clear() + }else { + if(goog.isArrayLike(col)) { + goog.array.clear((col)) + }else { + goog.object.clear(col) + } + } +}; +goog.structs.forEach = function(col, f, opt_obj) { + if(typeof col.forEach == "function") { + col.forEach(f, opt_obj) + }else { + if(goog.isArrayLike(col) || goog.isString(col)) { + goog.array.forEach((col), f, opt_obj) + }else { + var keys = goog.structs.getKeys(col); + var values = goog.structs.getValues(col); + var l = values.length; + for(var i = 0;i < l;i++) { + f.call(opt_obj, values[i], keys && keys[i], col) + } + } + } +}; +goog.structs.filter = function(col, f, opt_obj) { + if(typeof col.filter == "function") { + return col.filter(f, opt_obj) + } + if(goog.isArrayLike(col) || goog.isString(col)) { + return goog.array.filter((col), f, opt_obj) + } + var rv; + var keys = goog.structs.getKeys(col); + var values = goog.structs.getValues(col); + var l = values.length; + if(keys) { + rv = {}; + for(var i = 0;i < l;i++) { + if(f.call(opt_obj, values[i], keys[i], col)) { + rv[keys[i]] = values[i] + } + } + }else { + rv = []; + for(var i = 0;i < l;i++) { + if(f.call(opt_obj, values[i], undefined, col)) { + rv.push(values[i]) + } + } + } + return rv +}; +goog.structs.map = function(col, f, opt_obj) { + if(typeof col.map == "function") { + return col.map(f, opt_obj) + } + if(goog.isArrayLike(col) || goog.isString(col)) { + return goog.array.map((col), f, opt_obj) + } + var rv; + var keys = goog.structs.getKeys(col); + var values = goog.structs.getValues(col); + var l = values.length; + if(keys) { + rv = {}; + for(var i = 0;i < l;i++) { + rv[keys[i]] = f.call(opt_obj, values[i], keys[i], col) + } + }else { + rv = []; + for(var i = 0;i < l;i++) { + rv[i] = f.call(opt_obj, values[i], undefined, col) + } + } + return rv +}; +goog.structs.some = function(col, f, opt_obj) { + if(typeof col.some == "function") { + return col.some(f, opt_obj) + } + if(goog.isArrayLike(col) || goog.isString(col)) { + return goog.array.some((col), f, opt_obj) + } + var keys = goog.structs.getKeys(col); + var values = goog.structs.getValues(col); + var l = values.length; + for(var i = 0;i < l;i++) { + if(f.call(opt_obj, values[i], keys && keys[i], col)) { + return true + } + } + return false +}; +goog.structs.every = function(col, f, opt_obj) { + if(typeof col.every == "function") { + return col.every(f, opt_obj) + } + if(goog.isArrayLike(col) || goog.isString(col)) { + return goog.array.every((col), f, opt_obj) + } + var keys = goog.structs.getKeys(col); + var values = goog.structs.getValues(col); + var l = values.length; + for(var i = 0;i < l;i++) { + if(!f.call(opt_obj, values[i], keys && keys[i], col)) { + return false + } + } + return true +}; +goog.provide("goog.iter"); +goog.provide("goog.iter.Iterator"); +goog.provide("goog.iter.StopIteration"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.iter.Iterable; +if("StopIteration" in goog.global) { + goog.iter.StopIteration = goog.global["StopIteration"] +}else { + goog.iter.StopIteration = Error("StopIteration") +} +goog.iter.Iterator = function() { +}; +goog.iter.Iterator.prototype.next = function() { + throw goog.iter.StopIteration; +}; +goog.iter.Iterator.prototype.__iterator__ = function(opt_keys) { + return this +}; +goog.iter.toIterator = function(iterable) { + if(iterable instanceof goog.iter.Iterator) { + return iterable + } + if(typeof iterable.__iterator__ == "function") { + return iterable.__iterator__(false) + } + if(goog.isArrayLike(iterable)) { + var i = 0; + var newIter = new goog.iter.Iterator; + newIter.next = function() { + while(true) { + if(i >= iterable.length) { + throw goog.iter.StopIteration; + } + if(!(i in iterable)) { + i++; + continue + } + return iterable[i++] + } + }; + return newIter + } + throw Error("Not implemented"); +}; +goog.iter.forEach = function(iterable, f, opt_obj) { + if(goog.isArrayLike(iterable)) { + try { + goog.array.forEach((iterable), f, opt_obj) + }catch(ex) { + if(ex !== goog.iter.StopIteration) { + throw ex; + } + } + }else { + iterable = goog.iter.toIterator(iterable); + try { + while(true) { + f.call(opt_obj, iterable.next(), undefined, iterable) + } + }catch(ex) { + if(ex !== goog.iter.StopIteration) { + throw ex; + } + } + } +}; +goog.iter.filter = function(iterable, f, opt_obj) { + var iterator = goog.iter.toIterator(iterable); + var newIter = new goog.iter.Iterator; + newIter.next = function() { + while(true) { + var val = iterator.next(); + if(f.call(opt_obj, val, undefined, iterator)) { + return val + } + } + }; + return newIter +}; +goog.iter.range = function(startOrStop, opt_stop, opt_step) { + var start = 0; + var stop = startOrStop; + var step = opt_step || 1; + if(arguments.length > 1) { + start = startOrStop; + stop = opt_stop + } + if(step == 0) { + throw Error("Range step argument must not be zero"); + } + var newIter = new goog.iter.Iterator; + newIter.next = function() { + if(step > 0 && start >= stop || step < 0 && start <= stop) { + throw goog.iter.StopIteration; + } + var rv = start; + start += step; + return rv + }; + return newIter +}; +goog.iter.join = function(iterable, deliminator) { + return goog.iter.toArray(iterable).join(deliminator) +}; +goog.iter.map = function(iterable, f, opt_obj) { + var iterator = goog.iter.toIterator(iterable); + var newIter = new goog.iter.Iterator; + newIter.next = function() { + while(true) { + var val = iterator.next(); + return f.call(opt_obj, val, undefined, iterator) + } + }; + return newIter +}; +goog.iter.reduce = function(iterable, f, val, opt_obj) { + var rval = val; + goog.iter.forEach(iterable, function(val) { + rval = f.call(opt_obj, rval, val) + }); + return rval +}; +goog.iter.some = function(iterable, f, opt_obj) { + iterable = goog.iter.toIterator(iterable); + try { + while(true) { + if(f.call(opt_obj, iterable.next(), undefined, iterable)) { + return true + } + } + }catch(ex) { + if(ex !== goog.iter.StopIteration) { + throw ex; + } + } + return false +}; +goog.iter.every = function(iterable, f, opt_obj) { + iterable = goog.iter.toIterator(iterable); + try { + while(true) { + if(!f.call(opt_obj, iterable.next(), undefined, iterable)) { + return false + } + } + }catch(ex) { + if(ex !== goog.iter.StopIteration) { + throw ex; + } + } + return true +}; +goog.iter.chain = function(var_args) { + var args = arguments; + var length = args.length; + var i = 0; + var newIter = new goog.iter.Iterator; + newIter.next = function() { + try { + if(i >= length) { + throw goog.iter.StopIteration; + } + var current = goog.iter.toIterator(args[i]); + return current.next() + }catch(ex) { + if(ex !== goog.iter.StopIteration || i >= length) { + throw ex; + }else { + i++; + return this.next() + } + } + }; + return newIter +}; +goog.iter.dropWhile = function(iterable, f, opt_obj) { + var iterator = goog.iter.toIterator(iterable); + var newIter = new goog.iter.Iterator; + var dropping = true; + newIter.next = function() { + while(true) { + var val = iterator.next(); + if(dropping && f.call(opt_obj, val, undefined, iterator)) { + continue + }else { + dropping = false + } + return val + } + }; + return newIter +}; +goog.iter.takeWhile = function(iterable, f, opt_obj) { + var iterator = goog.iter.toIterator(iterable); + var newIter = new goog.iter.Iterator; + var taking = true; + newIter.next = function() { + while(true) { + if(taking) { + var val = iterator.next(); + if(f.call(opt_obj, val, undefined, iterator)) { + return val + }else { + taking = false + } + }else { + throw goog.iter.StopIteration; + } + } + }; + return newIter +}; +goog.iter.toArray = function(iterable) { + if(goog.isArrayLike(iterable)) { + return goog.array.toArray((iterable)) + } + iterable = goog.iter.toIterator(iterable); + var array = []; + goog.iter.forEach(iterable, function(val) { + array.push(val) + }); + return array +}; +goog.iter.equals = function(iterable1, iterable2) { + iterable1 = goog.iter.toIterator(iterable1); + iterable2 = goog.iter.toIterator(iterable2); + var b1, b2; + try { + while(true) { + b1 = b2 = false; + var val1 = iterable1.next(); + b1 = true; + var val2 = iterable2.next(); + b2 = true; + if(val1 != val2) { + return false + } + } + }catch(ex) { + if(ex !== goog.iter.StopIteration) { + throw ex; + }else { + if(b1 && !b2) { + return false + } + if(!b2) { + try { + val2 = iterable2.next(); + return false + }catch(ex1) { + if(ex1 !== goog.iter.StopIteration) { + throw ex1; + } + return true + } + } + } + } + return false +}; +goog.iter.nextOrValue = function(iterable, defaultValue) { + try { + return goog.iter.toIterator(iterable).next() + }catch(e) { + if(e != goog.iter.StopIteration) { + throw e; + } + return defaultValue + } +}; +goog.iter.product = function(var_args) { + var someArrayEmpty = goog.array.some(arguments, function(arr) { + return!arr.length + }); + if(someArrayEmpty || !arguments.length) { + return new goog.iter.Iterator + } + var iter = new goog.iter.Iterator; + var arrays = arguments; + var indicies = goog.array.repeat(0, arrays.length); + iter.next = function() { + if(indicies) { + var retVal = goog.array.map(indicies, function(valueIndex, arrayIndex) { + return arrays[arrayIndex][valueIndex] + }); + for(var i = indicies.length - 1;i >= 0;i--) { + goog.asserts.assert(indicies); + if(indicies[i] < arrays[i].length - 1) { + indicies[i]++; + break + } + if(i == 0) { + indicies = null; + break + } + indicies[i] = 0 + } + return retVal + } + throw goog.iter.StopIteration; + }; + return iter +}; +goog.iter.cycle = function(iterable) { + var baseIterator = goog.iter.toIterator(iterable); + var cache = []; + var cacheIndex = 0; + var iter = new goog.iter.Iterator; + var useCache = false; + iter.next = function() { + var returnElement = null; + if(!useCache) { + try { + returnElement = baseIterator.next(); + cache.push(returnElement); + return returnElement + }catch(e) { + if(e != goog.iter.StopIteration || goog.array.isEmpty(cache)) { + throw e; + } + useCache = true + } + } + returnElement = cache[cacheIndex]; + cacheIndex = (cacheIndex + 1) % cache.length; + return returnElement + }; + return iter +}; +goog.provide("goog.structs.Map"); +goog.require("goog.iter.Iterator"); +goog.require("goog.iter.StopIteration"); +goog.require("goog.object"); +goog.structs.Map = function(opt_map, var_args) { + this.map_ = {}; + this.keys_ = []; + var argLength = arguments.length; + if(argLength > 1) { + if(argLength % 2) { + throw Error("Uneven number of arguments"); + } + for(var i = 0;i < argLength;i += 2) { + this.set(arguments[i], arguments[i + 1]) + } + }else { + if(opt_map) { + this.addAll((opt_map)) + } + } +}; +goog.structs.Map.prototype.count_ = 0; +goog.structs.Map.prototype.version_ = 0; +goog.structs.Map.prototype.getCount = function() { + return this.count_ +}; +goog.structs.Map.prototype.getValues = function() { + this.cleanupKeysArray_(); + var rv = []; + for(var i = 0;i < this.keys_.length;i++) { + var key = this.keys_[i]; + rv.push(this.map_[key]) + } + return rv +}; +goog.structs.Map.prototype.getKeys = function() { + this.cleanupKeysArray_(); + return(this.keys_.concat()) +}; +goog.structs.Map.prototype.containsKey = function(key) { + return goog.structs.Map.hasKey_(this.map_, key) +}; +goog.structs.Map.prototype.containsValue = function(val) { + for(var i = 0;i < this.keys_.length;i++) { + var key = this.keys_[i]; + if(goog.structs.Map.hasKey_(this.map_, key) && this.map_[key] == val) { + return true + } + } + return false +}; +goog.structs.Map.prototype.equals = function(otherMap, opt_equalityFn) { + if(this === otherMap) { + return true + } + if(this.count_ != otherMap.getCount()) { + return false + } + var equalityFn = opt_equalityFn || goog.structs.Map.defaultEquals; + this.cleanupKeysArray_(); + for(var key, i = 0;key = this.keys_[i];i++) { + if(!equalityFn(this.get(key), otherMap.get(key))) { + return false + } + } + return true +}; +goog.structs.Map.defaultEquals = function(a, b) { + return a === b +}; +goog.structs.Map.prototype.isEmpty = function() { + return this.count_ == 0 +}; +goog.structs.Map.prototype.clear = function() { + this.map_ = {}; + this.keys_.length = 0; + this.count_ = 0; + this.version_ = 0 +}; +goog.structs.Map.prototype.remove = function(key) { + if(goog.structs.Map.hasKey_(this.map_, key)) { + delete this.map_[key]; + this.count_--; + this.version_++; + if(this.keys_.length > 2 * this.count_) { + this.cleanupKeysArray_() + } + return true + } + return false +}; +goog.structs.Map.prototype.cleanupKeysArray_ = function() { + if(this.count_ != this.keys_.length) { + var srcIndex = 0; + var destIndex = 0; + while(srcIndex < this.keys_.length) { + var key = this.keys_[srcIndex]; + if(goog.structs.Map.hasKey_(this.map_, key)) { + this.keys_[destIndex++] = key + } + srcIndex++ + } + this.keys_.length = destIndex + } + if(this.count_ != this.keys_.length) { + var seen = {}; + var srcIndex = 0; + var destIndex = 0; + while(srcIndex < this.keys_.length) { + var key = this.keys_[srcIndex]; + if(!goog.structs.Map.hasKey_(seen, key)) { + this.keys_[destIndex++] = key; + seen[key] = 1 + } + srcIndex++ + } + this.keys_.length = destIndex + } +}; +goog.structs.Map.prototype.get = function(key, opt_val) { + if(goog.structs.Map.hasKey_(this.map_, key)) { + return this.map_[key] + } + return opt_val +}; +goog.structs.Map.prototype.set = function(key, value) { + if(!goog.structs.Map.hasKey_(this.map_, key)) { + this.count_++; + this.keys_.push(key); + this.version_++ + } + this.map_[key] = value +}; +goog.structs.Map.prototype.addAll = function(map) { + var keys, values; + if(map instanceof goog.structs.Map) { + keys = map.getKeys(); + values = map.getValues() + }else { + keys = goog.object.getKeys(map); + values = goog.object.getValues(map) + } + for(var i = 0;i < keys.length;i++) { + this.set(keys[i], values[i]) + } +}; +goog.structs.Map.prototype.clone = function() { + return new goog.structs.Map(this) +}; +goog.structs.Map.prototype.transpose = function() { + var transposed = new goog.structs.Map; + for(var i = 0;i < this.keys_.length;i++) { + var key = this.keys_[i]; + var value = this.map_[key]; + transposed.set(value, key) + } + return transposed +}; +goog.structs.Map.prototype.toObject = function() { + this.cleanupKeysArray_(); + var obj = {}; + for(var i = 0;i < this.keys_.length;i++) { + var key = this.keys_[i]; + obj[key] = this.map_[key] + } + return obj +}; +goog.structs.Map.prototype.getKeyIterator = function() { + return this.__iterator__(true) +}; +goog.structs.Map.prototype.getValueIterator = function() { + return this.__iterator__(false) +}; +goog.structs.Map.prototype.__iterator__ = function(opt_keys) { + this.cleanupKeysArray_(); + var i = 0; + var keys = this.keys_; + var map = this.map_; + var version = this.version_; + var selfObj = this; + var newIter = new goog.iter.Iterator; + newIter.next = function() { + while(true) { + if(version != selfObj.version_) { + throw Error("The map has changed since the iterator was created"); + } + if(i >= keys.length) { + throw goog.iter.StopIteration; + } + var key = keys[i++]; + return opt_keys ? key : map[key] + } + }; + return newIter +}; +goog.structs.Map.hasKey_ = function(obj, key) { + return Object.prototype.hasOwnProperty.call(obj, key) +}; +goog.provide("goog.uri.utils"); +goog.provide("goog.uri.utils.ComponentIndex"); +goog.provide("goog.uri.utils.QueryArray"); +goog.provide("goog.uri.utils.QueryValue"); +goog.provide("goog.uri.utils.StandardQueryParam"); +goog.require("goog.asserts"); +goog.require("goog.string"); +goog.require("goog.userAgent"); +goog.uri.utils.CharCode_ = {AMPERSAND:38, EQUAL:61, HASH:35, QUESTION:63}; +goog.uri.utils.buildFromEncodedParts = function(opt_scheme, opt_userInfo, opt_domain, opt_port, opt_path, opt_queryData, opt_fragment) { + var out = ""; + if(opt_scheme) { + out += opt_scheme + ":" + } + if(opt_domain) { + out += "//"; + if(opt_userInfo) { + out += opt_userInfo + "@" + } + out += opt_domain; + if(opt_port) { + out += ":" + opt_port + } + } + if(opt_path) { + out += opt_path + } + if(opt_queryData) { + out += "?" + opt_queryData + } + if(opt_fragment) { + out += "#" + opt_fragment + } + return out +}; +goog.uri.utils.splitRe_ = new RegExp("^" + "(?:" + "([^:/?#.]+)" + ":)?" + "(?://" + "(?:([^/?#]*)@)?" + "([^/#?]*?)" + "(?::([0-9]+))?" + "(?\x3d[/#?]|$)" + ")?" + "([^?#]+)?" + "(?:\\?([^#]*))?" + "(?:#(.*))?" + "$"); +goog.uri.utils.ComponentIndex = {SCHEME:1, USER_INFO:2, DOMAIN:3, PORT:4, PATH:5, QUERY_DATA:6, FRAGMENT:7}; +goog.uri.utils.split = function(uri) { + goog.uri.utils.phishingProtection_(); + return(uri.match(goog.uri.utils.splitRe_)) +}; +goog.uri.utils.needsPhishingProtection_ = goog.userAgent.WEBKIT; +goog.uri.utils.phishingProtection_ = function() { + if(goog.uri.utils.needsPhishingProtection_) { + goog.uri.utils.needsPhishingProtection_ = false; + var location = goog.global["location"]; + if(location) { + var href = location["href"]; + if(href) { + var domain = goog.uri.utils.getDomain(href); + if(domain && domain != location["hostname"]) { + goog.uri.utils.needsPhishingProtection_ = true; + throw Error(); + } + } + } + } +}; +goog.uri.utils.decodeIfPossible_ = function(uri) { + return uri && decodeURIComponent(uri) +}; +goog.uri.utils.getComponentByIndex_ = function(componentIndex, uri) { + return goog.uri.utils.split(uri)[componentIndex] || null +}; +goog.uri.utils.getScheme = function(uri) { + return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.SCHEME, uri) +}; +goog.uri.utils.getEffectiveScheme = function(uri) { + var scheme = goog.uri.utils.getScheme(uri); + if(!scheme && self.location) { + var protocol = self.location.protocol; + scheme = protocol.substr(0, protocol.length - 1) + } + return scheme ? scheme.toLowerCase() : "" +}; +goog.uri.utils.getUserInfoEncoded = function(uri) { + return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.USER_INFO, uri) +}; +goog.uri.utils.getUserInfo = function(uri) { + return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getUserInfoEncoded(uri)) +}; +goog.uri.utils.getDomainEncoded = function(uri) { + return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.DOMAIN, uri) +}; +goog.uri.utils.getDomain = function(uri) { + return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getDomainEncoded(uri)) +}; +goog.uri.utils.getPort = function(uri) { + return Number(goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.PORT, uri)) || null +}; +goog.uri.utils.getPathEncoded = function(uri) { + return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.PATH, uri) +}; +goog.uri.utils.getPath = function(uri) { + return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getPathEncoded(uri)) +}; +goog.uri.utils.getQueryData = function(uri) { + return goog.uri.utils.getComponentByIndex_(goog.uri.utils.ComponentIndex.QUERY_DATA, uri) +}; +goog.uri.utils.getFragmentEncoded = function(uri) { + var hashIndex = uri.indexOf("#"); + return hashIndex < 0 ? null : uri.substr(hashIndex + 1) +}; +goog.uri.utils.setFragmentEncoded = function(uri, fragment) { + return goog.uri.utils.removeFragment(uri) + (fragment ? "#" + fragment : "") +}; +goog.uri.utils.getFragment = function(uri) { + return goog.uri.utils.decodeIfPossible_(goog.uri.utils.getFragmentEncoded(uri)) +}; +goog.uri.utils.getHost = function(uri) { + var pieces = goog.uri.utils.split(uri); + return goog.uri.utils.buildFromEncodedParts(pieces[goog.uri.utils.ComponentIndex.SCHEME], pieces[goog.uri.utils.ComponentIndex.USER_INFO], pieces[goog.uri.utils.ComponentIndex.DOMAIN], pieces[goog.uri.utils.ComponentIndex.PORT]) +}; +goog.uri.utils.getPathAndAfter = function(uri) { + var pieces = goog.uri.utils.split(uri); + return goog.uri.utils.buildFromEncodedParts(null, null, null, null, pieces[goog.uri.utils.ComponentIndex.PATH], pieces[goog.uri.utils.ComponentIndex.QUERY_DATA], pieces[goog.uri.utils.ComponentIndex.FRAGMENT]) +}; +goog.uri.utils.removeFragment = function(uri) { + var hashIndex = uri.indexOf("#"); + return hashIndex < 0 ? uri : uri.substr(0, hashIndex) +}; +goog.uri.utils.haveSameDomain = function(uri1, uri2) { + var pieces1 = goog.uri.utils.split(uri1); + var pieces2 = goog.uri.utils.split(uri2); + return pieces1[goog.uri.utils.ComponentIndex.DOMAIN] == pieces2[goog.uri.utils.ComponentIndex.DOMAIN] && pieces1[goog.uri.utils.ComponentIndex.SCHEME] == pieces2[goog.uri.utils.ComponentIndex.SCHEME] && pieces1[goog.uri.utils.ComponentIndex.PORT] == pieces2[goog.uri.utils.ComponentIndex.PORT] +}; +goog.uri.utils.assertNoFragmentsOrQueries_ = function(uri) { + if(goog.DEBUG && (uri.indexOf("#") >= 0 || uri.indexOf("?") >= 0)) { + throw Error("goog.uri.utils: Fragment or query identifiers are not " + "supported: [" + uri + "]"); + } +}; +goog.uri.utils.QueryValue; +goog.uri.utils.QueryArray; +goog.uri.utils.appendQueryData_ = function(buffer) { + if(buffer[1]) { + var baseUri = (buffer[0]); + var hashIndex = baseUri.indexOf("#"); + if(hashIndex >= 0) { + buffer.push(baseUri.substr(hashIndex)); + buffer[0] = baseUri = baseUri.substr(0, hashIndex) + } + var questionIndex = baseUri.indexOf("?"); + if(questionIndex < 0) { + buffer[1] = "?" + }else { + if(questionIndex == baseUri.length - 1) { + buffer[1] = undefined + } + } + } + return buffer.join("") +}; +goog.uri.utils.appendKeyValuePairs_ = function(key, value, pairs) { + if(goog.isArray(value)) { + goog.asserts.assertArray(value); + for(var j = 0;j < value.length;j++) { + goog.uri.utils.appendKeyValuePairs_(key, String(value[j]), pairs) + } + }else { + if(value != null) { + pairs.push("\x26", key, value === "" ? "" : "\x3d", goog.string.urlEncode(value)) + } + } +}; +goog.uri.utils.buildQueryDataBuffer_ = function(buffer, keysAndValues, opt_startIndex) { + goog.asserts.assert(Math.max(keysAndValues.length - (opt_startIndex || 0), 0) % 2 == 0, "goog.uri.utils: Key/value lists must be even in length."); + for(var i = opt_startIndex || 0;i < keysAndValues.length;i += 2) { + goog.uri.utils.appendKeyValuePairs_(keysAndValues[i], keysAndValues[i + 1], buffer) + } + return buffer +}; +goog.uri.utils.buildQueryData = function(keysAndValues, opt_startIndex) { + var buffer = goog.uri.utils.buildQueryDataBuffer_([], keysAndValues, opt_startIndex); + buffer[0] = ""; + return buffer.join("") +}; +goog.uri.utils.buildQueryDataBufferFromMap_ = function(buffer, map) { + for(var key in map) { + goog.uri.utils.appendKeyValuePairs_(key, map[key], buffer) + } + return buffer +}; +goog.uri.utils.buildQueryDataFromMap = function(map) { + var buffer = goog.uri.utils.buildQueryDataBufferFromMap_([], map); + buffer[0] = ""; + return buffer.join("") +}; +goog.uri.utils.appendParams = function(uri, var_args) { + return goog.uri.utils.appendQueryData_(arguments.length == 2 ? goog.uri.utils.buildQueryDataBuffer_([uri], arguments[1], 0) : goog.uri.utils.buildQueryDataBuffer_([uri], arguments, 1)) +}; +goog.uri.utils.appendParamsFromMap = function(uri, map) { + return goog.uri.utils.appendQueryData_(goog.uri.utils.buildQueryDataBufferFromMap_([uri], map)) +}; +goog.uri.utils.appendParam = function(uri, key, opt_value) { + var paramArr = [uri, "\x26", key]; + if(goog.isDefAndNotNull(opt_value)) { + paramArr.push("\x3d", goog.string.urlEncode(opt_value)) + } + return goog.uri.utils.appendQueryData_(paramArr) +}; +goog.uri.utils.findParam_ = function(uri, startIndex, keyEncoded, hashOrEndIndex) { + var index = startIndex; + var keyLength = keyEncoded.length; + while((index = uri.indexOf(keyEncoded, index)) >= 0 && index < hashOrEndIndex) { + var precedingChar = uri.charCodeAt(index - 1); + if(precedingChar == goog.uri.utils.CharCode_.AMPERSAND || precedingChar == goog.uri.utils.CharCode_.QUESTION) { + var followingChar = uri.charCodeAt(index + keyLength); + if(!followingChar || followingChar == goog.uri.utils.CharCode_.EQUAL || followingChar == goog.uri.utils.CharCode_.AMPERSAND || followingChar == goog.uri.utils.CharCode_.HASH) { + return index + } + } + index += keyLength + 1 + } + return-1 +}; +goog.uri.utils.hashOrEndRe_ = /#|$/; +goog.uri.utils.hasParam = function(uri, keyEncoded) { + return goog.uri.utils.findParam_(uri, 0, keyEncoded, uri.search(goog.uri.utils.hashOrEndRe_)) >= 0 +}; +goog.uri.utils.getParamValue = function(uri, keyEncoded) { + var hashOrEndIndex = uri.search(goog.uri.utils.hashOrEndRe_); + var foundIndex = goog.uri.utils.findParam_(uri, 0, keyEncoded, hashOrEndIndex); + if(foundIndex < 0) { + return null + }else { + var endPosition = uri.indexOf("\x26", foundIndex); + if(endPosition < 0 || endPosition > hashOrEndIndex) { + endPosition = hashOrEndIndex + } + foundIndex += keyEncoded.length + 1; + return goog.string.urlDecode(uri.substr(foundIndex, endPosition - foundIndex)) + } +}; +goog.uri.utils.getParamValues = function(uri, keyEncoded) { + var hashOrEndIndex = uri.search(goog.uri.utils.hashOrEndRe_); + var position = 0; + var foundIndex; + var result = []; + while((foundIndex = goog.uri.utils.findParam_(uri, position, keyEncoded, hashOrEndIndex)) >= 0) { + position = uri.indexOf("\x26", foundIndex); + if(position < 0 || position > hashOrEndIndex) { + position = hashOrEndIndex + } + foundIndex += keyEncoded.length + 1; + result.push(goog.string.urlDecode(uri.substr(foundIndex, position - foundIndex))) + } + return result +}; +goog.uri.utils.trailingQueryPunctuationRe_ = /[?&]($|#)/; +goog.uri.utils.removeParam = function(uri, keyEncoded) { + var hashOrEndIndex = uri.search(goog.uri.utils.hashOrEndRe_); + var position = 0; + var foundIndex; + var buffer = []; + while((foundIndex = goog.uri.utils.findParam_(uri, position, keyEncoded, hashOrEndIndex)) >= 0) { + buffer.push(uri.substring(position, foundIndex)); + position = Math.min(uri.indexOf("\x26", foundIndex) + 1 || hashOrEndIndex, hashOrEndIndex) + } + buffer.push(uri.substr(position)); + return buffer.join("").replace(goog.uri.utils.trailingQueryPunctuationRe_, "$1") +}; +goog.uri.utils.setParam = function(uri, keyEncoded, value) { + return goog.uri.utils.appendParam(goog.uri.utils.removeParam(uri, keyEncoded), keyEncoded, value) +}; +goog.uri.utils.appendPath = function(baseUri, path) { + goog.uri.utils.assertNoFragmentsOrQueries_(baseUri); + if(goog.string.endsWith(baseUri, "/")) { + baseUri = baseUri.substr(0, baseUri.length - 1) + } + if(goog.string.startsWith(path, "/")) { + path = path.substr(1) + } + return goog.string.buildString(baseUri, "/", path) +}; +goog.uri.utils.StandardQueryParam = {RANDOM:"zx"}; +goog.uri.utils.makeUnique = function(uri) { + return goog.uri.utils.setParam(uri, goog.uri.utils.StandardQueryParam.RANDOM, goog.string.getRandomString()) +}; +goog.provide("goog.Uri"); +goog.provide("goog.Uri.QueryData"); +goog.require("goog.array"); +goog.require("goog.string"); +goog.require("goog.structs"); +goog.require("goog.structs.Map"); +goog.require("goog.uri.utils"); +goog.require("goog.uri.utils.ComponentIndex"); +goog.require("goog.uri.utils.StandardQueryParam"); +goog.Uri = function(opt_uri, opt_ignoreCase) { + var m; + if(opt_uri instanceof goog.Uri) { + this.ignoreCase_ = goog.isDef(opt_ignoreCase) ? opt_ignoreCase : opt_uri.getIgnoreCase(); + this.setScheme(opt_uri.getScheme()); + this.setUserInfo(opt_uri.getUserInfo()); + this.setDomain(opt_uri.getDomain()); + this.setPort(opt_uri.getPort()); + this.setPath(opt_uri.getPath()); + this.setQueryData(opt_uri.getQueryData().clone()); + this.setFragment(opt_uri.getFragment()) + }else { + if(opt_uri && (m = goog.uri.utils.split(String(opt_uri)))) { + this.ignoreCase_ = !!opt_ignoreCase; + this.setScheme(m[goog.uri.utils.ComponentIndex.SCHEME] || "", true); + this.setUserInfo(m[goog.uri.utils.ComponentIndex.USER_INFO] || "", true); + this.setDomain(m[goog.uri.utils.ComponentIndex.DOMAIN] || "", true); + this.setPort(m[goog.uri.utils.ComponentIndex.PORT]); + this.setPath(m[goog.uri.utils.ComponentIndex.PATH] || "", true); + this.setQueryData(m[goog.uri.utils.ComponentIndex.QUERY_DATA] || "", true); + this.setFragment(m[goog.uri.utils.ComponentIndex.FRAGMENT] || "", true) + }else { + this.ignoreCase_ = !!opt_ignoreCase; + this.queryData_ = new goog.Uri.QueryData(null, null, this.ignoreCase_) + } + } +}; +goog.Uri.preserveParameterTypesCompatibilityFlag = false; +goog.Uri.RANDOM_PARAM = goog.uri.utils.StandardQueryParam.RANDOM; +goog.Uri.prototype.scheme_ = ""; +goog.Uri.prototype.userInfo_ = ""; +goog.Uri.prototype.domain_ = ""; +goog.Uri.prototype.port_ = null; +goog.Uri.prototype.path_ = ""; +goog.Uri.prototype.queryData_; +goog.Uri.prototype.fragment_ = ""; +goog.Uri.prototype.isReadOnly_ = false; +goog.Uri.prototype.ignoreCase_ = false; +goog.Uri.prototype.toString = function() { + var out = []; + var scheme = this.getScheme(); + if(scheme) { + out.push(goog.Uri.encodeSpecialChars_(scheme, goog.Uri.reDisallowedInSchemeOrUserInfo_), ":") + } + var domain = this.getDomain(); + if(domain) { + out.push("//"); + var userInfo = this.getUserInfo(); + if(userInfo) { + out.push(goog.Uri.encodeSpecialChars_(userInfo, goog.Uri.reDisallowedInSchemeOrUserInfo_), "@") + } + out.push(goog.string.urlEncode(domain)); + var port = this.getPort(); + if(port != null) { + out.push(":", String(port)) + } + } + var path = this.getPath(); + if(path) { + if(this.hasDomain() && path.charAt(0) != "/") { + out.push("/") + } + out.push(goog.Uri.encodeSpecialChars_(path, path.charAt(0) == "/" ? goog.Uri.reDisallowedInAbsolutePath_ : goog.Uri.reDisallowedInRelativePath_)) + } + var query = this.getEncodedQuery(); + if(query) { + out.push("?", query) + } + var fragment = this.getFragment(); + if(fragment) { + out.push("#", goog.Uri.encodeSpecialChars_(fragment, goog.Uri.reDisallowedInFragment_)) + } + return out.join("") +}; +goog.Uri.prototype.resolve = function(relativeUri) { + var absoluteUri = this.clone(); + var overridden = relativeUri.hasScheme(); + if(overridden) { + absoluteUri.setScheme(relativeUri.getScheme()) + }else { + overridden = relativeUri.hasUserInfo() + } + if(overridden) { + absoluteUri.setUserInfo(relativeUri.getUserInfo()) + }else { + overridden = relativeUri.hasDomain() + } + if(overridden) { + absoluteUri.setDomain(relativeUri.getDomain()) + }else { + overridden = relativeUri.hasPort() + } + var path = relativeUri.getPath(); + if(overridden) { + absoluteUri.setPort(relativeUri.getPort()) + }else { + overridden = relativeUri.hasPath(); + if(overridden) { + if(path.charAt(0) != "/") { + if(this.hasDomain() && !this.hasPath()) { + path = "/" + path + }else { + var lastSlashIndex = absoluteUri.getPath().lastIndexOf("/"); + if(lastSlashIndex != -1) { + path = absoluteUri.getPath().substr(0, lastSlashIndex + 1) + path + } + } + } + path = goog.Uri.removeDotSegments(path) + } + } + if(overridden) { + absoluteUri.setPath(path) + }else { + overridden = relativeUri.hasQuery() + } + if(overridden) { + absoluteUri.setQueryData(relativeUri.getDecodedQuery()) + }else { + overridden = relativeUri.hasFragment() + } + if(overridden) { + absoluteUri.setFragment(relativeUri.getFragment()) + } + return absoluteUri +}; +goog.Uri.prototype.clone = function() { + return new goog.Uri(this) +}; +goog.Uri.prototype.getScheme = function() { + return this.scheme_ +}; +goog.Uri.prototype.setScheme = function(newScheme, opt_decode) { + this.enforceReadOnly(); + this.scheme_ = opt_decode ? goog.Uri.decodeOrEmpty_(newScheme) : newScheme; + if(this.scheme_) { + this.scheme_ = this.scheme_.replace(/:$/, "") + } + return this +}; +goog.Uri.prototype.hasScheme = function() { + return!!this.scheme_ +}; +goog.Uri.prototype.getUserInfo = function() { + return this.userInfo_ +}; +goog.Uri.prototype.setUserInfo = function(newUserInfo, opt_decode) { + this.enforceReadOnly(); + this.userInfo_ = opt_decode ? goog.Uri.decodeOrEmpty_(newUserInfo) : newUserInfo; + return this +}; +goog.Uri.prototype.hasUserInfo = function() { + return!!this.userInfo_ +}; +goog.Uri.prototype.getDomain = function() { + return this.domain_ +}; +goog.Uri.prototype.setDomain = function(newDomain, opt_decode) { + this.enforceReadOnly(); + this.domain_ = opt_decode ? goog.Uri.decodeOrEmpty_(newDomain) : newDomain; + return this +}; +goog.Uri.prototype.hasDomain = function() { + return!!this.domain_ +}; +goog.Uri.prototype.getPort = function() { + return this.port_ +}; +goog.Uri.prototype.setPort = function(newPort) { + this.enforceReadOnly(); + if(newPort) { + newPort = Number(newPort); + if(isNaN(newPort) || newPort < 0) { + throw Error("Bad port number " + newPort); + } + this.port_ = newPort + }else { + this.port_ = null + } + return this +}; +goog.Uri.prototype.hasPort = function() { + return this.port_ != null +}; +goog.Uri.prototype.getPath = function() { + return this.path_ +}; +goog.Uri.prototype.setPath = function(newPath, opt_decode) { + this.enforceReadOnly(); + this.path_ = opt_decode ? goog.Uri.decodeOrEmpty_(newPath) : newPath; + return this +}; +goog.Uri.prototype.hasPath = function() { + return!!this.path_ +}; +goog.Uri.prototype.hasQuery = function() { + return this.queryData_.toString() !== "" +}; +goog.Uri.prototype.setQueryData = function(queryData, opt_decode) { + this.enforceReadOnly(); + if(queryData instanceof goog.Uri.QueryData) { + this.queryData_ = queryData; + this.queryData_.setIgnoreCase(this.ignoreCase_) + }else { + if(!opt_decode) { + queryData = goog.Uri.encodeSpecialChars_(queryData, goog.Uri.reDisallowedInQuery_) + } + this.queryData_ = new goog.Uri.QueryData(queryData, null, this.ignoreCase_) + } + return this +}; +goog.Uri.prototype.setQuery = function(newQuery, opt_decode) { + return this.setQueryData(newQuery, opt_decode) +}; +goog.Uri.prototype.getEncodedQuery = function() { + return this.queryData_.toString() +}; +goog.Uri.prototype.getDecodedQuery = function() { + return this.queryData_.toDecodedString() +}; +goog.Uri.prototype.getQueryData = function() { + return this.queryData_ +}; +goog.Uri.prototype.getQuery = function() { + return this.getEncodedQuery() +}; +goog.Uri.prototype.setParameterValue = function(key, value) { + this.enforceReadOnly(); + this.queryData_.set(key, value); + return this +}; +goog.Uri.prototype.setParameterValues = function(key, values) { + this.enforceReadOnly(); + if(!goog.isArray(values)) { + values = [String(values)] + } + this.queryData_.setValues(key, (values)); + return this +}; +goog.Uri.prototype.getParameterValues = function(name) { + return this.queryData_.getValues(name) +}; +goog.Uri.prototype.getParameterValue = function(paramName) { + return(this.queryData_.get(paramName)) +}; +goog.Uri.prototype.getFragment = function() { + return this.fragment_ +}; +goog.Uri.prototype.setFragment = function(newFragment, opt_decode) { + this.enforceReadOnly(); + this.fragment_ = opt_decode ? goog.Uri.decodeOrEmpty_(newFragment) : newFragment; + return this +}; +goog.Uri.prototype.hasFragment = function() { + return!!this.fragment_ +}; +goog.Uri.prototype.hasSameDomainAs = function(uri2) { + return(!this.hasDomain() && !uri2.hasDomain() || this.getDomain() == uri2.getDomain()) && (!this.hasPort() && !uri2.hasPort() || this.getPort() == uri2.getPort()) +}; +goog.Uri.prototype.makeUnique = function() { + this.enforceReadOnly(); + this.setParameterValue(goog.Uri.RANDOM_PARAM, goog.string.getRandomString()); + return this +}; +goog.Uri.prototype.removeParameter = function(key) { + this.enforceReadOnly(); + this.queryData_.remove(key); + return this +}; +goog.Uri.prototype.setReadOnly = function(isReadOnly) { + this.isReadOnly_ = isReadOnly; + return this +}; +goog.Uri.prototype.isReadOnly = function() { + return this.isReadOnly_ +}; +goog.Uri.prototype.enforceReadOnly = function() { + if(this.isReadOnly_) { + throw Error("Tried to modify a read-only Uri"); + } +}; +goog.Uri.prototype.setIgnoreCase = function(ignoreCase) { + this.ignoreCase_ = ignoreCase; + if(this.queryData_) { + this.queryData_.setIgnoreCase(ignoreCase) + } + return this +}; +goog.Uri.prototype.getIgnoreCase = function() { + return this.ignoreCase_ +}; +goog.Uri.parse = function(uri, opt_ignoreCase) { + return uri instanceof goog.Uri ? uri.clone() : new goog.Uri(uri, opt_ignoreCase) +}; +goog.Uri.create = function(opt_scheme, opt_userInfo, opt_domain, opt_port, opt_path, opt_query, opt_fragment, opt_ignoreCase) { + var uri = new goog.Uri(null, opt_ignoreCase); + opt_scheme && uri.setScheme(opt_scheme); + opt_userInfo && uri.setUserInfo(opt_userInfo); + opt_domain && uri.setDomain(opt_domain); + opt_port && uri.setPort(opt_port); + opt_path && uri.setPath(opt_path); + opt_query && uri.setQueryData(opt_query); + opt_fragment && uri.setFragment(opt_fragment); + return uri +}; +goog.Uri.resolve = function(base, rel) { + if(!(base instanceof goog.Uri)) { + base = goog.Uri.parse(base) + } + if(!(rel instanceof goog.Uri)) { + rel = goog.Uri.parse(rel) + } + return base.resolve(rel) +}; +goog.Uri.removeDotSegments = function(path) { + if(path == ".." || path == ".") { + return"" + }else { + if(!goog.string.contains(path, "./") && !goog.string.contains(path, "/.")) { + return path + }else { + var leadingSlash = goog.string.startsWith(path, "/"); + var segments = path.split("/"); + var out = []; + for(var pos = 0;pos < segments.length;) { + var segment = segments[pos++]; + if(segment == ".") { + if(leadingSlash && pos == segments.length) { + out.push("") + } + }else { + if(segment == "..") { + if(out.length > 1 || out.length == 1 && out[0] != "") { + out.pop() + } + if(leadingSlash && pos == segments.length) { + out.push("") + } + }else { + out.push(segment); + leadingSlash = true + } + } + } + return out.join("/") + } + } +}; +goog.Uri.decodeOrEmpty_ = function(val) { + return val ? decodeURIComponent(val) : "" +}; +goog.Uri.encodeSpecialChars_ = function(unescapedPart, extra) { + if(goog.isString(unescapedPart)) { + return encodeURI(unescapedPart).replace(extra, goog.Uri.encodeChar_) + } + return null +}; +goog.Uri.encodeChar_ = function(ch) { + var n = ch.charCodeAt(0); + return"%" + (n >> 4 & 15).toString(16) + (n & 15).toString(16) +}; +goog.Uri.reDisallowedInSchemeOrUserInfo_ = /[#\/\?@]/g; +goog.Uri.reDisallowedInRelativePath_ = /[\#\?:]/g; +goog.Uri.reDisallowedInAbsolutePath_ = /[\#\?]/g; +goog.Uri.reDisallowedInQuery_ = /[\#\?@]/g; +goog.Uri.reDisallowedInFragment_ = /#/g; +goog.Uri.haveSameDomain = function(uri1String, uri2String) { + var pieces1 = goog.uri.utils.split(uri1String); + var pieces2 = goog.uri.utils.split(uri2String); + return pieces1[goog.uri.utils.ComponentIndex.DOMAIN] == pieces2[goog.uri.utils.ComponentIndex.DOMAIN] && pieces1[goog.uri.utils.ComponentIndex.PORT] == pieces2[goog.uri.utils.ComponentIndex.PORT] +}; +goog.Uri.QueryData = function(opt_query, opt_uri, opt_ignoreCase) { + this.encodedQuery_ = opt_query || null; + this.ignoreCase_ = !!opt_ignoreCase +}; +goog.Uri.QueryData.prototype.ensureKeyMapInitialized_ = function() { + if(!this.keyMap_) { + this.keyMap_ = new goog.structs.Map; + this.count_ = 0; + if(this.encodedQuery_) { + var pairs = this.encodedQuery_.split("\x26"); + for(var i = 0;i < pairs.length;i++) { + var indexOfEquals = pairs[i].indexOf("\x3d"); + var name = null; + var value = null; + if(indexOfEquals >= 0) { + name = pairs[i].substring(0, indexOfEquals); + value = pairs[i].substring(indexOfEquals + 1) + }else { + name = pairs[i] + } + name = goog.string.urlDecode(name); + name = this.getKeyName_(name); + this.add(name, value ? goog.string.urlDecode(value) : "") + } + } + } +}; +goog.Uri.QueryData.createFromMap = function(map, opt_uri, opt_ignoreCase) { + var keys = goog.structs.getKeys(map); + if(typeof keys == "undefined") { + throw Error("Keys are undefined"); + } + var queryData = new goog.Uri.QueryData(null, null, opt_ignoreCase); + var values = goog.structs.getValues(map); + for(var i = 0;i < keys.length;i++) { + var key = keys[i]; + var value = values[i]; + if(!goog.isArray(value)) { + queryData.add(key, value) + }else { + queryData.setValues(key, value) + } + } + return queryData +}; +goog.Uri.QueryData.createFromKeysValues = function(keys, values, opt_uri, opt_ignoreCase) { + if(keys.length != values.length) { + throw Error("Mismatched lengths for keys/values"); + } + var queryData = new goog.Uri.QueryData(null, null, opt_ignoreCase); + for(var i = 0;i < keys.length;i++) { + queryData.add(keys[i], values[i]) + } + return queryData +}; +goog.Uri.QueryData.prototype.keyMap_ = null; +goog.Uri.QueryData.prototype.count_ = null; +goog.Uri.QueryData.prototype.getCount = function() { + this.ensureKeyMapInitialized_(); + return this.count_ +}; +goog.Uri.QueryData.prototype.add = function(key, value) { + this.ensureKeyMapInitialized_(); + this.invalidateCache_(); + key = this.getKeyName_(key); + var values = this.keyMap_.get(key); + if(!values) { + this.keyMap_.set(key, values = []) + } + values.push(value); + this.count_++; + return this +}; +goog.Uri.QueryData.prototype.remove = function(key) { + this.ensureKeyMapInitialized_(); + key = this.getKeyName_(key); + if(this.keyMap_.containsKey(key)) { + this.invalidateCache_(); + this.count_ -= this.keyMap_.get(key).length; + return this.keyMap_.remove(key) + } + return false +}; +goog.Uri.QueryData.prototype.clear = function() { + this.invalidateCache_(); + this.keyMap_ = null; + this.count_ = 0 +}; +goog.Uri.QueryData.prototype.isEmpty = function() { + this.ensureKeyMapInitialized_(); + return this.count_ == 0 +}; +goog.Uri.QueryData.prototype.containsKey = function(key) { + this.ensureKeyMapInitialized_(); + key = this.getKeyName_(key); + return this.keyMap_.containsKey(key) +}; +goog.Uri.QueryData.prototype.containsValue = function(value) { + var vals = this.getValues(); + return goog.array.contains(vals, value) +}; +goog.Uri.QueryData.prototype.getKeys = function() { + this.ensureKeyMapInitialized_(); + var vals = (this.keyMap_.getValues()); + var keys = this.keyMap_.getKeys(); + var rv = []; + for(var i = 0;i < keys.length;i++) { + var val = vals[i]; + for(var j = 0;j < val.length;j++) { + rv.push(keys[i]) + } + } + return rv +}; +goog.Uri.QueryData.prototype.getValues = function(opt_key) { + this.ensureKeyMapInitialized_(); + var rv = []; + if(opt_key) { + if(this.containsKey(opt_key)) { + rv = goog.array.concat(rv, this.keyMap_.get(this.getKeyName_(opt_key))) + } + }else { + var values = (this.keyMap_.getValues()); + for(var i = 0;i < values.length;i++) { + rv = goog.array.concat(rv, values[i]) + } + } + return rv +}; +goog.Uri.QueryData.prototype.set = function(key, value) { + this.ensureKeyMapInitialized_(); + this.invalidateCache_(); + key = this.getKeyName_(key); + if(this.containsKey(key)) { + this.count_ -= this.keyMap_.get(key).length + } + this.keyMap_.set(key, [value]); + this.count_++; + return this +}; +goog.Uri.QueryData.prototype.get = function(key, opt_default) { + var values = key ? this.getValues(key) : []; + if(goog.Uri.preserveParameterTypesCompatibilityFlag) { + return values.length > 0 ? values[0] : opt_default + }else { + return values.length > 0 ? String(values[0]) : opt_default + } +}; +goog.Uri.QueryData.prototype.setValues = function(key, values) { + this.remove(key); + if(values.length > 0) { + this.invalidateCache_(); + this.keyMap_.set(this.getKeyName_(key), goog.array.clone(values)); + this.count_ += values.length + } +}; +goog.Uri.QueryData.prototype.toString = function() { + if(this.encodedQuery_) { + return this.encodedQuery_ + } + if(!this.keyMap_) { + return"" + } + var sb = []; + var keys = this.keyMap_.getKeys(); + for(var i = 0;i < keys.length;i++) { + var key = keys[i]; + var encodedKey = goog.string.urlEncode(key); + var val = this.getValues(key); + for(var j = 0;j < val.length;j++) { + var param = encodedKey; + if(val[j] !== "") { + param += "\x3d" + goog.string.urlEncode(val[j]) + } + sb.push(param) + } + } + return this.encodedQuery_ = sb.join("\x26") +}; +goog.Uri.QueryData.prototype.toDecodedString = function() { + return goog.Uri.decodeOrEmpty_(this.toString()) +}; +goog.Uri.QueryData.prototype.invalidateCache_ = function() { + this.encodedQuery_ = null +}; +goog.Uri.QueryData.prototype.filterKeys = function(keys) { + this.ensureKeyMapInitialized_(); + goog.structs.forEach(this.keyMap_, function(value, key, map) { + if(!goog.array.contains(keys, key)) { + this.remove(key) + } + }, this); + return this +}; +goog.Uri.QueryData.prototype.clone = function() { + var rv = new goog.Uri.QueryData; + rv.encodedQuery_ = this.encodedQuery_; + if(this.keyMap_) { + rv.keyMap_ = this.keyMap_.clone(); + rv.count_ = this.count_ + } + return rv +}; +goog.Uri.QueryData.prototype.getKeyName_ = function(arg) { + var keyName = String(arg); + if(this.ignoreCase_) { + keyName = keyName.toLowerCase() + } + return keyName +}; +goog.Uri.QueryData.prototype.setIgnoreCase = function(ignoreCase) { + var resetKeys = ignoreCase && !this.ignoreCase_; + if(resetKeys) { + this.ensureKeyMapInitialized_(); + this.invalidateCache_(); + goog.structs.forEach(this.keyMap_, function(value, key) { + var lowerCase = key.toLowerCase(); + if(key != lowerCase) { + this.remove(key); + this.setValues(lowerCase, value) + } + }, this) + } + this.ignoreCase_ = ignoreCase +}; +goog.Uri.QueryData.prototype.extend = function(var_args) { + for(var i = 0;i < arguments.length;i++) { + var data = arguments[i]; + goog.structs.forEach(data, function(value, key) { + this.add(key, value) + }, this) + } +}; +goog.provide("goog.async.AnimationDelay"); +goog.require("goog.Disposable"); +goog.require("goog.events"); +goog.require("goog.functions"); +goog.async.AnimationDelay = function(listener, opt_window, opt_handler) { + goog.base(this); + this.listener_ = listener; + this.handler_ = opt_handler; + this.win_ = opt_window || window; + this.callback_ = goog.bind(this.doAction_, this) +}; +goog.inherits(goog.async.AnimationDelay, goog.Disposable); +goog.async.AnimationDelay.prototype.id_ = null; +goog.async.AnimationDelay.prototype.usingListeners_ = false; +goog.async.AnimationDelay.TIMEOUT = 20; +goog.async.AnimationDelay.MOZ_BEFORE_PAINT_EVENT_ = "MozBeforePaint"; +goog.async.AnimationDelay.prototype.start = function() { + this.stop(); + this.usingListeners_ = false; + var raf = this.getRaf_(); + var cancelRaf = this.getCancelRaf_(); + if(raf && !cancelRaf && this.win_.mozRequestAnimationFrame) { + this.id_ = goog.events.listen(this.win_, goog.async.AnimationDelay.MOZ_BEFORE_PAINT_EVENT_, this.callback_); + this.win_.mozRequestAnimationFrame(null); + this.usingListeners_ = true + }else { + if(raf && cancelRaf) { + this.id_ = raf.call(this.win_, this.callback_) + }else { + this.id_ = this.win_.setTimeout(goog.functions.lock(this.callback_), goog.async.AnimationDelay.TIMEOUT) + } + } +}; +goog.async.AnimationDelay.prototype.stop = function() { + if(this.isActive()) { + var raf = this.getRaf_(); + var cancelRaf = this.getCancelRaf_(); + if(raf && !cancelRaf && this.win_.mozRequestAnimationFrame) { + goog.events.unlistenByKey(this.id_) + }else { + if(raf && cancelRaf) { + cancelRaf.call(this.win_, (this.id_)) + }else { + this.win_.clearTimeout((this.id_)) + } + } + } + this.id_ = null +}; +goog.async.AnimationDelay.prototype.fire = function() { + this.stop(); + this.doAction_() +}; +goog.async.AnimationDelay.prototype.fireIfActive = function() { + if(this.isActive()) { + this.fire() + } +}; +goog.async.AnimationDelay.prototype.isActive = function() { + return this.id_ != null +}; +goog.async.AnimationDelay.prototype.doAction_ = function() { + if(this.usingListeners_ && this.id_) { + goog.events.unlistenByKey(this.id_) + } + this.id_ = null; + this.listener_.call(this.handler_, goog.now()) +}; +goog.async.AnimationDelay.prototype.disposeInternal = function() { + this.stop(); + goog.base(this, "disposeInternal") +}; +goog.async.AnimationDelay.prototype.getRaf_ = function() { + var win = this.win_; + return win.requestAnimationFrame || win.webkitRequestAnimationFrame || win.mozRequestAnimationFrame || win.oRequestAnimationFrame || win.msRequestAnimationFrame || null +}; +goog.async.AnimationDelay.prototype.getCancelRaf_ = function() { + var win = this.win_; + return win.cancelRequestAnimationFrame || win.webkitCancelRequestAnimationFrame || win.mozCancelRequestAnimationFrame || win.oCancelRequestAnimationFrame || win.msCancelRequestAnimationFrame || null +}; +goog.provide("goog.Timer"); +goog.require("goog.events.EventTarget"); +goog.Timer = function(opt_interval, opt_timerObject) { + goog.events.EventTarget.call(this); + this.interval_ = opt_interval || 1; + this.timerObject_ = opt_timerObject || goog.Timer.defaultTimerObject; + this.boundTick_ = goog.bind(this.tick_, this); + this.last_ = goog.now() +}; +goog.inherits(goog.Timer, goog.events.EventTarget); +goog.Timer.MAX_TIMEOUT_ = 2147483647; +goog.Timer.prototype.enabled = false; +goog.Timer.defaultTimerObject = goog.global; +goog.Timer.intervalScale = 0.8; +goog.Timer.prototype.timer_ = null; +goog.Timer.prototype.getInterval = function() { + return this.interval_ +}; +goog.Timer.prototype.setInterval = function(interval) { + this.interval_ = interval; + if(this.timer_ && this.enabled) { + this.stop(); + this.start() + }else { + if(this.timer_) { + this.stop() + } + } +}; +goog.Timer.prototype.tick_ = function() { + if(this.enabled) { + var elapsed = goog.now() - this.last_; + if(elapsed > 0 && elapsed < this.interval_ * goog.Timer.intervalScale) { + this.timer_ = this.timerObject_.setTimeout(this.boundTick_, this.interval_ - elapsed); + return + } + if(this.timer_) { + this.timerObject_.clearTimeout(this.timer_); + this.timer_ = null + } + this.dispatchTick(); + if(this.enabled) { + this.timer_ = this.timerObject_.setTimeout(this.boundTick_, this.interval_); + this.last_ = goog.now() + } + } +}; +goog.Timer.prototype.dispatchTick = function() { + this.dispatchEvent(goog.Timer.TICK) +}; +goog.Timer.prototype.start = function() { + this.enabled = true; + if(!this.timer_) { + this.timer_ = this.timerObject_.setTimeout(this.boundTick_, this.interval_); + this.last_ = goog.now() + } +}; +goog.Timer.prototype.stop = function() { + this.enabled = false; + if(this.timer_) { + this.timerObject_.clearTimeout(this.timer_); + this.timer_ = null + } +}; +goog.Timer.prototype.disposeInternal = function() { + goog.Timer.superClass_.disposeInternal.call(this); + this.stop(); + delete this.timerObject_ +}; +goog.Timer.TICK = "tick"; +goog.Timer.callOnce = function(listener, opt_delay, opt_handler) { + if(goog.isFunction(listener)) { + if(opt_handler) { + listener = goog.bind(listener, opt_handler) + } + }else { + if(listener && typeof listener.handleEvent == "function") { + listener = goog.bind(listener.handleEvent, listener) + }else { + throw Error("Invalid listener argument"); + } + } + if(opt_delay > goog.Timer.MAX_TIMEOUT_) { + return-1 + }else { + return goog.Timer.defaultTimerObject.setTimeout(listener, opt_delay || 0) + } +}; +goog.Timer.clear = function(timerId) { + goog.Timer.defaultTimerObject.clearTimeout(timerId) +}; +goog.provide("goog.Delay"); +goog.provide("goog.async.Delay"); +goog.require("goog.Disposable"); +goog.require("goog.Timer"); +goog.async.Delay = function(listener, opt_interval, opt_handler) { + goog.Disposable.call(this); + this.listener_ = listener; + this.interval_ = opt_interval || 0; + this.handler_ = opt_handler; + this.callback_ = goog.bind(this.doAction_, this) +}; +goog.inherits(goog.async.Delay, goog.Disposable); +goog.Delay = goog.async.Delay; +goog.async.Delay.prototype.id_ = 0; +goog.async.Delay.prototype.disposeInternal = function() { + goog.async.Delay.superClass_.disposeInternal.call(this); + this.stop(); + delete this.listener_; + delete this.handler_ +}; +goog.async.Delay.prototype.start = function(opt_interval) { + this.stop(); + this.id_ = goog.Timer.callOnce(this.callback_, goog.isDef(opt_interval) ? opt_interval : this.interval_) +}; +goog.async.Delay.prototype.stop = function() { + if(this.isActive()) { + goog.Timer.clear(this.id_) + } + this.id_ = 0 +}; +goog.async.Delay.prototype.fire = function() { + this.stop(); + this.doAction_() +}; +goog.async.Delay.prototype.fireIfActive = function() { + if(this.isActive()) { + this.fire() + } +}; +goog.async.Delay.prototype.isActive = function() { + return this.id_ != 0 +}; +goog.async.Delay.prototype.doAction_ = function() { + this.id_ = 0; + if(this.listener_) { + this.listener_.call(this.handler_) + } +}; +goog.provide("goog.structs.Collection"); +goog.structs.Collection = function() { +}; +goog.structs.Collection.prototype.add; +goog.structs.Collection.prototype.remove; +goog.structs.Collection.prototype.contains; +goog.structs.Collection.prototype.getCount; +goog.provide("goog.structs.Set"); +goog.require("goog.structs"); +goog.require("goog.structs.Collection"); +goog.require("goog.structs.Map"); +goog.structs.Set = function(opt_values) { + this.map_ = new goog.structs.Map; + if(opt_values) { + this.addAll(opt_values) + } +}; +goog.structs.Set.getKey_ = function(val) { + var type = typeof val; + if(type == "object" && val || type == "function") { + return"o" + goog.getUid((val)) + }else { + return type.substr(0, 1) + val + } +}; +goog.structs.Set.prototype.getCount = function() { + return this.map_.getCount() +}; +goog.structs.Set.prototype.add = function(element) { + this.map_.set(goog.structs.Set.getKey_(element), element) +}; +goog.structs.Set.prototype.addAll = function(col) { + var values = goog.structs.getValues(col); + var l = values.length; + for(var i = 0;i < l;i++) { + this.add(values[i]) + } +}; +goog.structs.Set.prototype.removeAll = function(col) { + var values = goog.structs.getValues(col); + var l = values.length; + for(var i = 0;i < l;i++) { + this.remove(values[i]) + } +}; +goog.structs.Set.prototype.remove = function(element) { + return this.map_.remove(goog.structs.Set.getKey_(element)) +}; +goog.structs.Set.prototype.clear = function() { + this.map_.clear() +}; +goog.structs.Set.prototype.isEmpty = function() { + return this.map_.isEmpty() +}; +goog.structs.Set.prototype.contains = function(element) { + return this.map_.containsKey(goog.structs.Set.getKey_(element)) +}; +goog.structs.Set.prototype.containsAll = function(col) { + return goog.structs.every(col, this.contains, this) +}; +goog.structs.Set.prototype.intersection = function(col) { + var result = new goog.structs.Set; + var values = goog.structs.getValues(col); + for(var i = 0;i < values.length;i++) { + var value = values[i]; + if(this.contains(value)) { + result.add(value) + } + } + return result +}; +goog.structs.Set.prototype.difference = function(col) { + var result = this.clone(); + result.removeAll(col); + return result +}; +goog.structs.Set.prototype.getValues = function() { + return this.map_.getValues() +}; +goog.structs.Set.prototype.clone = function() { + return new goog.structs.Set(this) +}; +goog.structs.Set.prototype.equals = function(col) { + return this.getCount() == goog.structs.getCount(col) && this.isSubsetOf(col) +}; +goog.structs.Set.prototype.isSubsetOf = function(col) { + var colCount = goog.structs.getCount(col); + if(this.getCount() > colCount) { + return false + } + if(!(col instanceof goog.structs.Set) && colCount > 5) { + col = new goog.structs.Set(col) + } + return goog.structs.every(this, function(value) { + return goog.structs.contains(col, value) + }) +}; +goog.structs.Set.prototype.__iterator__ = function(opt_keys) { + return this.map_.__iterator__(false) +}; +goog.provide("goog.debug"); +goog.require("goog.array"); +goog.require("goog.string"); +goog.require("goog.structs.Set"); +goog.require("goog.userAgent"); +goog.define("goog.debug.LOGGING_ENABLED", goog.DEBUG); +goog.debug.catchErrors = function(logFunc, opt_cancel, opt_target) { + var target = opt_target || goog.global; + var oldErrorHandler = target.onerror; + var retVal = !!opt_cancel; + if(goog.userAgent.WEBKIT && !goog.userAgent.isVersionOrHigher("535.3")) { + retVal = !retVal + } + target.onerror = function(message, url, line) { + if(oldErrorHandler) { + oldErrorHandler(message, url, line) + } + logFunc({message:message, fileName:url, line:line}); + return retVal + } +}; +goog.debug.expose = function(obj, opt_showFn) { + if(typeof obj == "undefined") { + return"undefined" + } + if(obj == null) { + return"NULL" + } + var str = []; + for(var x in obj) { + if(!opt_showFn && goog.isFunction(obj[x])) { + continue + } + var s = x + " \x3d "; + try { + s += obj[x] + }catch(e) { + s += "*** " + e + " ***" + } + str.push(s) + } + return str.join("\n") +}; +goog.debug.deepExpose = function(obj, opt_showFn) { + var previous = new goog.structs.Set; + var str = []; + var helper = function(obj, space) { + var nestspace = space + " "; + var indentMultiline = function(str) { + return str.replace(/\n/g, "\n" + space) + }; + try { + if(!goog.isDef(obj)) { + str.push("undefined") + }else { + if(goog.isNull(obj)) { + str.push("NULL") + }else { + if(goog.isString(obj)) { + str.push('"' + indentMultiline(obj) + '"') + }else { + if(goog.isFunction(obj)) { + str.push(indentMultiline(String(obj))) + }else { + if(goog.isObject(obj)) { + if(previous.contains(obj)) { + str.push("*** reference loop detected ***") + }else { + previous.add(obj); + str.push("{"); + for(var x in obj) { + if(!opt_showFn && goog.isFunction(obj[x])) { + continue + } + str.push("\n"); + str.push(nestspace); + str.push(x + " \x3d "); + helper(obj[x], nestspace) + } + str.push("\n" + space + "}") + } + }else { + str.push(obj) + } + } + } + } + } + }catch(e) { + str.push("*** " + e + " ***") + } + }; + helper(obj, ""); + return str.join("") +}; +goog.debug.exposeArray = function(arr) { + var str = []; + for(var i = 0;i < arr.length;i++) { + if(goog.isArray(arr[i])) { + str.push(goog.debug.exposeArray(arr[i])) + }else { + str.push(arr[i]) + } + } + return"[ " + str.join(", ") + " ]" +}; +goog.debug.exposeException = function(err, opt_fn) { + try { + var e = goog.debug.normalizeErrorObject(err); + var error = "Message: " + goog.string.htmlEscape(e.message) + '\nUrl: \x3ca href\x3d"view-source:' + e.fileName + '" target\x3d"_new"\x3e' + e.fileName + "\x3c/a\x3e\nLine: " + e.lineNumber + "\n\nBrowser stack:\n" + goog.string.htmlEscape(e.stack + "-\x3e ") + "[end]\n\nJS stack traversal:\n" + goog.string.htmlEscape(goog.debug.getStacktrace(opt_fn) + "-\x3e "); + return error + }catch(e2) { + return"Exception trying to expose exception! You win, we lose. " + e2 + } +}; +goog.debug.normalizeErrorObject = function(err) { + var href = goog.getObjectByName("window.location.href"); + if(goog.isString(err)) { + return{"message":err, "name":"Unknown error", "lineNumber":"Not available", "fileName":href, "stack":"Not available"} + } + var lineNumber, fileName; + var threwError = false; + try { + lineNumber = err.lineNumber || err.line || "Not available" + }catch(e) { + lineNumber = "Not available"; + threwError = true + } + try { + fileName = err.fileName || err.filename || err.sourceURL || goog.global["$googDebugFname"] || href + }catch(e) { + fileName = "Not available"; + threwError = true + } + if(threwError || !err.lineNumber || !err.fileName || !err.stack || !err.message || !err.name) { + return{"message":err.message || "Not available", "name":err.name || "UnknownError", "lineNumber":lineNumber, "fileName":fileName, "stack":err.stack || "Not available"} + } + return err +}; +goog.debug.enhanceError = function(err, opt_message) { + var error = typeof err == "string" ? Error(err) : err; + if(!error.stack) { + error.stack = goog.debug.getStacktrace(arguments.callee.caller) + } + if(opt_message) { + var x = 0; + while(error["message" + x]) { + ++x + } + error["message" + x] = String(opt_message) + } + return error +}; +goog.debug.getStacktraceSimple = function(opt_depth) { + var sb = []; + var fn = arguments.callee.caller; + var depth = 0; + while(fn && (!opt_depth || depth < opt_depth)) { + sb.push(goog.debug.getFunctionName(fn)); + sb.push("()\n"); + try { + fn = fn.caller + }catch(e) { + sb.push("[exception trying to get caller]\n"); + break + } + depth++; + if(depth >= goog.debug.MAX_STACK_DEPTH) { + sb.push("[...long stack...]"); + break + } + } + if(opt_depth && depth >= opt_depth) { + sb.push("[...reached max depth limit...]") + }else { + sb.push("[end]") + } + return sb.join("") +}; +goog.debug.MAX_STACK_DEPTH = 50; +goog.debug.getStacktrace = function(opt_fn) { + return goog.debug.getStacktraceHelper_(opt_fn || arguments.callee.caller, []) +}; +goog.debug.getStacktraceHelper_ = function(fn, visited) { + var sb = []; + if(goog.array.contains(visited, fn)) { + sb.push("[...circular reference...]") + }else { + if(fn && visited.length < goog.debug.MAX_STACK_DEPTH) { + sb.push(goog.debug.getFunctionName(fn) + "("); + var args = fn.arguments; + for(var i = 0;i < args.length;i++) { + if(i > 0) { + sb.push(", ") + } + var argDesc; + var arg = args[i]; + switch(typeof arg) { + case "object": + argDesc = arg ? "object" : "null"; + break; + case "string": + argDesc = arg; + break; + case "number": + argDesc = String(arg); + break; + case "boolean": + argDesc = arg ? "true" : "false"; + break; + case "function": + argDesc = goog.debug.getFunctionName(arg); + argDesc = argDesc ? argDesc : "[fn]"; + break; + case "undefined": + ; + default: + argDesc = typeof arg; + break + } + if(argDesc.length > 40) { + argDesc = argDesc.substr(0, 40) + "..." + } + sb.push(argDesc) + } + visited.push(fn); + sb.push(")\n"); + try { + sb.push(goog.debug.getStacktraceHelper_(fn.caller, visited)) + }catch(e) { + sb.push("[exception trying to get caller]\n") + } + }else { + if(fn) { + sb.push("[...long stack...]") + }else { + sb.push("[end]") + } + } + } + return sb.join("") +}; +goog.debug.setFunctionResolver = function(resolver) { + goog.debug.fnNameResolver_ = resolver +}; +goog.debug.getFunctionName = function(fn) { + if(goog.debug.fnNameCache_[fn]) { + return goog.debug.fnNameCache_[fn] + } + if(goog.debug.fnNameResolver_) { + var name = goog.debug.fnNameResolver_(fn); + if(name) { + goog.debug.fnNameCache_[fn] = name; + return name + } + } + var functionSource = String(fn); + if(!goog.debug.fnNameCache_[functionSource]) { + var matches = /function ([^\(]+)/.exec(functionSource); + if(matches) { + var method = matches[1]; + goog.debug.fnNameCache_[functionSource] = method + }else { + goog.debug.fnNameCache_[functionSource] = "[Anonymous]" + } + } + return goog.debug.fnNameCache_[functionSource] +}; +goog.debug.makeWhitespaceVisible = function(string) { + return string.replace(/ /g, "[_]").replace(/\f/g, "[f]").replace(/\n/g, "[n]\n").replace(/\r/g, "[r]").replace(/\t/g, "[t]") +}; +goog.debug.fnNameCache_ = {}; +goog.debug.fnNameResolver_; +goog.provide("goog.debug.LogRecord"); +goog.debug.LogRecord = function(level, msg, loggerName, opt_time, opt_sequenceNumber) { + this.reset(level, msg, loggerName, opt_time, opt_sequenceNumber) +}; +goog.debug.LogRecord.prototype.time_; +goog.debug.LogRecord.prototype.level_; +goog.debug.LogRecord.prototype.msg_; +goog.debug.LogRecord.prototype.loggerName_; +goog.debug.LogRecord.prototype.sequenceNumber_ = 0; +goog.debug.LogRecord.prototype.exception_ = null; +goog.debug.LogRecord.prototype.exceptionText_ = null; +goog.define("goog.debug.LogRecord.ENABLE_SEQUENCE_NUMBERS", true); +goog.debug.LogRecord.nextSequenceNumber_ = 0; +goog.debug.LogRecord.prototype.reset = function(level, msg, loggerName, opt_time, opt_sequenceNumber) { + if(goog.debug.LogRecord.ENABLE_SEQUENCE_NUMBERS) { + this.sequenceNumber_ = typeof opt_sequenceNumber == "number" ? opt_sequenceNumber : goog.debug.LogRecord.nextSequenceNumber_++ + } + this.time_ = opt_time || goog.now(); + this.level_ = level; + this.msg_ = msg; + this.loggerName_ = loggerName; + delete this.exception_; + delete this.exceptionText_ +}; +goog.debug.LogRecord.prototype.getLoggerName = function() { + return this.loggerName_ +}; +goog.debug.LogRecord.prototype.getException = function() { + return this.exception_ +}; +goog.debug.LogRecord.prototype.setException = function(exception) { + this.exception_ = exception +}; +goog.debug.LogRecord.prototype.getExceptionText = function() { + return this.exceptionText_ +}; +goog.debug.LogRecord.prototype.setExceptionText = function(text) { + this.exceptionText_ = text +}; +goog.debug.LogRecord.prototype.setLoggerName = function(loggerName) { + this.loggerName_ = loggerName +}; +goog.debug.LogRecord.prototype.getLevel = function() { + return this.level_ +}; +goog.debug.LogRecord.prototype.setLevel = function(level) { + this.level_ = level +}; +goog.debug.LogRecord.prototype.getMessage = function() { + return this.msg_ +}; +goog.debug.LogRecord.prototype.setMessage = function(msg) { + this.msg_ = msg +}; +goog.debug.LogRecord.prototype.getMillis = function() { + return this.time_ +}; +goog.debug.LogRecord.prototype.setMillis = function(time) { + this.time_ = time +}; +goog.debug.LogRecord.prototype.getSequenceNumber = function() { + return this.sequenceNumber_ +}; +goog.provide("goog.debug.LogBuffer"); +goog.require("goog.asserts"); +goog.require("goog.debug.LogRecord"); +goog.debug.LogBuffer = function() { + goog.asserts.assert(goog.debug.LogBuffer.isBufferingEnabled(), "Cannot use goog.debug.LogBuffer without defining " + "goog.debug.LogBuffer.CAPACITY."); + this.clear() +}; +goog.debug.LogBuffer.getInstance = function() { + if(!goog.debug.LogBuffer.instance_) { + goog.debug.LogBuffer.instance_ = new goog.debug.LogBuffer + } + return goog.debug.LogBuffer.instance_ +}; +goog.define("goog.debug.LogBuffer.CAPACITY", 0); +goog.debug.LogBuffer.prototype.buffer_; +goog.debug.LogBuffer.prototype.curIndex_; +goog.debug.LogBuffer.prototype.isFull_; +goog.debug.LogBuffer.prototype.addRecord = function(level, msg, loggerName) { + var curIndex = (this.curIndex_ + 1) % goog.debug.LogBuffer.CAPACITY; + this.curIndex_ = curIndex; + if(this.isFull_) { + var ret = this.buffer_[curIndex]; + ret.reset(level, msg, loggerName); + return ret + } + this.isFull_ = curIndex == goog.debug.LogBuffer.CAPACITY - 1; + return this.buffer_[curIndex] = new goog.debug.LogRecord(level, msg, loggerName) +}; +goog.debug.LogBuffer.isBufferingEnabled = function() { + return goog.debug.LogBuffer.CAPACITY > 0 +}; +goog.debug.LogBuffer.prototype.clear = function() { + this.buffer_ = new Array(goog.debug.LogBuffer.CAPACITY); + this.curIndex_ = -1; + this.isFull_ = false +}; +goog.debug.LogBuffer.prototype.forEachRecord = function(func) { + var buffer = this.buffer_; + if(!buffer[0]) { + return + } + var curIndex = this.curIndex_; + var i = this.isFull_ ? curIndex : -1; + do { + i = (i + 1) % goog.debug.LogBuffer.CAPACITY; + func((buffer[i])) + }while(i != curIndex) +}; +goog.provide("goog.debug.LogManager"); +goog.provide("goog.debug.Logger"); +goog.provide("goog.debug.Logger.Level"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.require("goog.debug"); +goog.require("goog.debug.LogBuffer"); +goog.require("goog.debug.LogRecord"); +goog.debug.Logger = function(name) { + this.name_ = name +}; +goog.debug.Logger.prototype.parent_ = null; +goog.debug.Logger.prototype.level_ = null; +goog.debug.Logger.prototype.children_ = null; +goog.debug.Logger.prototype.handlers_ = null; +goog.define("goog.debug.Logger.ENABLE_HIERARCHY", true); +if(!goog.debug.Logger.ENABLE_HIERARCHY) { + goog.debug.Logger.rootHandlers_ = []; + goog.debug.Logger.rootLevel_ +} +goog.debug.Logger.Level = function(name, value) { + this.name = name; + this.value = value +}; +goog.debug.Logger.Level.prototype.toString = function() { + return this.name +}; +goog.debug.Logger.Level.OFF = new goog.debug.Logger.Level("OFF", Infinity); +goog.debug.Logger.Level.SHOUT = new goog.debug.Logger.Level("SHOUT", 1200); +goog.debug.Logger.Level.SEVERE = new goog.debug.Logger.Level("SEVERE", 1E3); +goog.debug.Logger.Level.WARNING = new goog.debug.Logger.Level("WARNING", 900); +goog.debug.Logger.Level.INFO = new goog.debug.Logger.Level("INFO", 800); +goog.debug.Logger.Level.CONFIG = new goog.debug.Logger.Level("CONFIG", 700); +goog.debug.Logger.Level.FINE = new goog.debug.Logger.Level("FINE", 500); +goog.debug.Logger.Level.FINER = new goog.debug.Logger.Level("FINER", 400); +goog.debug.Logger.Level.FINEST = new goog.debug.Logger.Level("FINEST", 300); +goog.debug.Logger.Level.ALL = new goog.debug.Logger.Level("ALL", 0); +goog.debug.Logger.Level.PREDEFINED_LEVELS = [goog.debug.Logger.Level.OFF, goog.debug.Logger.Level.SHOUT, goog.debug.Logger.Level.SEVERE, goog.debug.Logger.Level.WARNING, goog.debug.Logger.Level.INFO, goog.debug.Logger.Level.CONFIG, goog.debug.Logger.Level.FINE, goog.debug.Logger.Level.FINER, goog.debug.Logger.Level.FINEST, goog.debug.Logger.Level.ALL]; +goog.debug.Logger.Level.predefinedLevelsCache_ = null; +goog.debug.Logger.Level.createPredefinedLevelsCache_ = function() { + goog.debug.Logger.Level.predefinedLevelsCache_ = {}; + for(var i = 0, level;level = goog.debug.Logger.Level.PREDEFINED_LEVELS[i];i++) { + goog.debug.Logger.Level.predefinedLevelsCache_[level.value] = level; + goog.debug.Logger.Level.predefinedLevelsCache_[level.name] = level + } +}; +goog.debug.Logger.Level.getPredefinedLevel = function(name) { + if(!goog.debug.Logger.Level.predefinedLevelsCache_) { + goog.debug.Logger.Level.createPredefinedLevelsCache_() + } + return goog.debug.Logger.Level.predefinedLevelsCache_[name] || null +}; +goog.debug.Logger.Level.getPredefinedLevelByValue = function(value) { + if(!goog.debug.Logger.Level.predefinedLevelsCache_) { + goog.debug.Logger.Level.createPredefinedLevelsCache_() + } + if(value in goog.debug.Logger.Level.predefinedLevelsCache_) { + return goog.debug.Logger.Level.predefinedLevelsCache_[value] + } + for(var i = 0;i < goog.debug.Logger.Level.PREDEFINED_LEVELS.length;++i) { + var level = goog.debug.Logger.Level.PREDEFINED_LEVELS[i]; + if(level.value <= value) { + return level + } + } + return null +}; +goog.debug.Logger.getLogger = function(name) { + return goog.debug.LogManager.getLogger(name) +}; +goog.debug.Logger.logToProfilers = function(msg) { + if(goog.global["console"]) { + if(goog.global["console"]["timeStamp"]) { + goog.global["console"]["timeStamp"](msg) + }else { + if(goog.global["console"]["markTimeline"]) { + goog.global["console"]["markTimeline"](msg) + } + } + } + if(goog.global["msWriteProfilerMark"]) { + goog.global["msWriteProfilerMark"](msg) + } +}; +goog.debug.Logger.prototype.getName = function() { + return this.name_ +}; +goog.debug.Logger.prototype.addHandler = function(handler) { + if(goog.debug.LOGGING_ENABLED) { + if(goog.debug.Logger.ENABLE_HIERARCHY) { + if(!this.handlers_) { + this.handlers_ = [] + } + this.handlers_.push(handler) + }else { + goog.asserts.assert(!this.name_, "Cannot call addHandler on a non-root logger when " + "goog.debug.Logger.ENABLE_HIERARCHY is false."); + goog.debug.Logger.rootHandlers_.push(handler) + } + } +}; +goog.debug.Logger.prototype.removeHandler = function(handler) { + if(goog.debug.LOGGING_ENABLED) { + var handlers = goog.debug.Logger.ENABLE_HIERARCHY ? this.handlers_ : goog.debug.Logger.rootHandlers_; + return!!handlers && goog.array.remove(handlers, handler) + }else { + return false + } +}; +goog.debug.Logger.prototype.getParent = function() { + return this.parent_ +}; +goog.debug.Logger.prototype.getChildren = function() { + if(!this.children_) { + this.children_ = {} + } + return this.children_ +}; +goog.debug.Logger.prototype.setLevel = function(level) { + if(goog.debug.LOGGING_ENABLED) { + if(goog.debug.Logger.ENABLE_HIERARCHY) { + this.level_ = level + }else { + goog.asserts.assert(!this.name_, "Cannot call setLevel() on a non-root logger when " + "goog.debug.Logger.ENABLE_HIERARCHY is false."); + goog.debug.Logger.rootLevel_ = level + } + } +}; +goog.debug.Logger.prototype.getLevel = function() { + return goog.debug.LOGGING_ENABLED ? this.level_ : goog.debug.Logger.Level.OFF +}; +goog.debug.Logger.prototype.getEffectiveLevel = function() { + if(!goog.debug.LOGGING_ENABLED) { + return goog.debug.Logger.Level.OFF + } + if(!goog.debug.Logger.ENABLE_HIERARCHY) { + return goog.debug.Logger.rootLevel_ + } + if(this.level_) { + return this.level_ + } + if(this.parent_) { + return this.parent_.getEffectiveLevel() + } + goog.asserts.fail("Root logger has no level set."); + return null +}; +goog.debug.Logger.prototype.isLoggable = function(level) { + return goog.debug.LOGGING_ENABLED && level.value >= this.getEffectiveLevel().value +}; +goog.debug.Logger.prototype.log = function(level, msg, opt_exception) { + if(goog.debug.LOGGING_ENABLED && this.isLoggable(level)) { + this.doLogRecord_(this.getLogRecord(level, msg, opt_exception)) + } +}; +goog.debug.Logger.prototype.getLogRecord = function(level, msg, opt_exception) { + if(goog.debug.LogBuffer.isBufferingEnabled()) { + var logRecord = goog.debug.LogBuffer.getInstance().addRecord(level, msg, this.name_) + }else { + logRecord = new goog.debug.LogRecord(level, String(msg), this.name_) + } + if(opt_exception) { + logRecord.setException(opt_exception); + logRecord.setExceptionText(goog.debug.exposeException(opt_exception, arguments.callee.caller)) + } + return logRecord +}; +goog.debug.Logger.prototype.shout = function(msg, opt_exception) { + if(goog.debug.LOGGING_ENABLED) { + this.log(goog.debug.Logger.Level.SHOUT, msg, opt_exception) + } +}; +goog.debug.Logger.prototype.severe = function(msg, opt_exception) { + if(goog.debug.LOGGING_ENABLED) { + this.log(goog.debug.Logger.Level.SEVERE, msg, opt_exception) + } +}; +goog.debug.Logger.prototype.warning = function(msg, opt_exception) { + if(goog.debug.LOGGING_ENABLED) { + this.log(goog.debug.Logger.Level.WARNING, msg, opt_exception) + } +}; +goog.debug.Logger.prototype.info = function(msg, opt_exception) { + if(goog.debug.LOGGING_ENABLED) { + this.log(goog.debug.Logger.Level.INFO, msg, opt_exception) + } +}; +goog.debug.Logger.prototype.config = function(msg, opt_exception) { + if(goog.debug.LOGGING_ENABLED) { + this.log(goog.debug.Logger.Level.CONFIG, msg, opt_exception) + } +}; +goog.debug.Logger.prototype.fine = function(msg, opt_exception) { + if(goog.debug.LOGGING_ENABLED) { + this.log(goog.debug.Logger.Level.FINE, msg, opt_exception) + } +}; +goog.debug.Logger.prototype.finer = function(msg, opt_exception) { + if(goog.debug.LOGGING_ENABLED) { + this.log(goog.debug.Logger.Level.FINER, msg, opt_exception) + } +}; +goog.debug.Logger.prototype.finest = function(msg, opt_exception) { + if(goog.debug.LOGGING_ENABLED) { + this.log(goog.debug.Logger.Level.FINEST, msg, opt_exception) + } +}; +goog.debug.Logger.prototype.logRecord = function(logRecord) { + if(goog.debug.LOGGING_ENABLED && this.isLoggable(logRecord.getLevel())) { + this.doLogRecord_(logRecord) + } +}; +goog.debug.Logger.prototype.doLogRecord_ = function(logRecord) { + goog.debug.Logger.logToProfilers("log:" + logRecord.getMessage()); + if(goog.debug.Logger.ENABLE_HIERARCHY) { + var target = this; + while(target) { + target.callPublish_(logRecord); + target = target.getParent() + } + }else { + for(var i = 0, handler;handler = goog.debug.Logger.rootHandlers_[i++];) { + handler(logRecord) + } + } +}; +goog.debug.Logger.prototype.callPublish_ = function(logRecord) { + if(this.handlers_) { + for(var i = 0, handler;handler = this.handlers_[i];i++) { + handler(logRecord) + } + } +}; +goog.debug.Logger.prototype.setParent_ = function(parent) { + this.parent_ = parent +}; +goog.debug.Logger.prototype.addChild_ = function(name, logger) { + this.getChildren()[name] = logger +}; +goog.debug.LogManager = {}; +goog.debug.LogManager.loggers_ = {}; +goog.debug.LogManager.rootLogger_ = null; +goog.debug.LogManager.initialize = function() { + if(!goog.debug.LogManager.rootLogger_) { + goog.debug.LogManager.rootLogger_ = new goog.debug.Logger(""); + goog.debug.LogManager.loggers_[""] = goog.debug.LogManager.rootLogger_; + goog.debug.LogManager.rootLogger_.setLevel(goog.debug.Logger.Level.CONFIG) + } +}; +goog.debug.LogManager.getLoggers = function() { + return goog.debug.LogManager.loggers_ +}; +goog.debug.LogManager.getRoot = function() { + goog.debug.LogManager.initialize(); + return(goog.debug.LogManager.rootLogger_) +}; +goog.debug.LogManager.getLogger = function(name) { + goog.debug.LogManager.initialize(); + var ret = goog.debug.LogManager.loggers_[name]; + return ret || goog.debug.LogManager.createLogger_(name) +}; +goog.debug.LogManager.createFunctionForCatchErrors = function(opt_logger) { + return function(info) { + var logger = opt_logger || goog.debug.LogManager.getRoot(); + logger.severe("Error: " + info.message + " (" + info.fileName + " @ Line: " + info.line + ")") + } +}; +goog.debug.LogManager.createLogger_ = function(name) { + var logger = new goog.debug.Logger(name); + if(goog.debug.Logger.ENABLE_HIERARCHY) { + var lastDotIndex = name.lastIndexOf("."); + var parentName = name.substr(0, lastDotIndex); + var leafName = name.substr(lastDotIndex + 1); + var parentLogger = goog.debug.LogManager.getLogger(parentName); + parentLogger.addChild_(leafName, logger); + logger.setParent_(parentLogger) + } + goog.debug.LogManager.loggers_[name] = logger; + return logger +}; +goog.provide("goog.debug.RelativeTimeProvider"); +goog.debug.RelativeTimeProvider = function() { + this.relativeTimeStart_ = goog.now() +}; +goog.debug.RelativeTimeProvider.defaultInstance_ = new goog.debug.RelativeTimeProvider; +goog.debug.RelativeTimeProvider.prototype.set = function(timeStamp) { + this.relativeTimeStart_ = timeStamp +}; +goog.debug.RelativeTimeProvider.prototype.reset = function() { + this.set(goog.now()) +}; +goog.debug.RelativeTimeProvider.prototype.get = function() { + return this.relativeTimeStart_ +}; +goog.debug.RelativeTimeProvider.getDefaultInstance = function() { + return goog.debug.RelativeTimeProvider.defaultInstance_ +}; +goog.provide("goog.debug.Formatter"); +goog.provide("goog.debug.HtmlFormatter"); +goog.provide("goog.debug.TextFormatter"); +goog.require("goog.debug.RelativeTimeProvider"); +goog.require("goog.string"); +goog.debug.Formatter = function(opt_prefix) { + this.prefix_ = opt_prefix || ""; + this.startTimeProvider_ = goog.debug.RelativeTimeProvider.getDefaultInstance() +}; +goog.debug.Formatter.prototype.showAbsoluteTime = true; +goog.debug.Formatter.prototype.showRelativeTime = true; +goog.debug.Formatter.prototype.showLoggerName = true; +goog.debug.Formatter.prototype.showExceptionText = false; +goog.debug.Formatter.prototype.showSeverityLevel = false; +goog.debug.Formatter.prototype.formatRecord = goog.abstractMethod; +goog.debug.Formatter.prototype.setStartTimeProvider = function(provider) { + this.startTimeProvider_ = provider +}; +goog.debug.Formatter.prototype.getStartTimeProvider = function() { + return this.startTimeProvider_ +}; +goog.debug.Formatter.prototype.resetRelativeTimeStart = function() { + this.startTimeProvider_.reset() +}; +goog.debug.Formatter.getDateTimeStamp_ = function(logRecord) { + var time = new Date(logRecord.getMillis()); + return goog.debug.Formatter.getTwoDigitString_(time.getFullYear() - 2E3) + goog.debug.Formatter.getTwoDigitString_(time.getMonth() + 1) + goog.debug.Formatter.getTwoDigitString_(time.getDate()) + " " + goog.debug.Formatter.getTwoDigitString_(time.getHours()) + ":" + goog.debug.Formatter.getTwoDigitString_(time.getMinutes()) + ":" + goog.debug.Formatter.getTwoDigitString_(time.getSeconds()) + "." + goog.debug.Formatter.getTwoDigitString_(Math.floor(time.getMilliseconds() / 10)) +}; +goog.debug.Formatter.getTwoDigitString_ = function(n) { + if(n < 10) { + return"0" + n + } + return String(n) +}; +goog.debug.Formatter.getRelativeTime_ = function(logRecord, relativeTimeStart) { + var ms = logRecord.getMillis() - relativeTimeStart; + var sec = ms / 1E3; + var str = sec.toFixed(3); + var spacesToPrepend = 0; + if(sec < 1) { + spacesToPrepend = 2 + }else { + while(sec < 100) { + spacesToPrepend++; + sec *= 10 + } + } + while(spacesToPrepend-- > 0) { + str = " " + str + } + return str +}; +goog.debug.HtmlFormatter = function(opt_prefix) { + goog.debug.Formatter.call(this, opt_prefix) +}; +goog.inherits(goog.debug.HtmlFormatter, goog.debug.Formatter); +goog.debug.HtmlFormatter.prototype.showExceptionText = true; +goog.debug.HtmlFormatter.prototype.formatRecord = function(logRecord) { + var className; + switch(logRecord.getLevel().value) { + case goog.debug.Logger.Level.SHOUT.value: + className = "dbg-sh"; + break; + case goog.debug.Logger.Level.SEVERE.value: + className = "dbg-sev"; + break; + case goog.debug.Logger.Level.WARNING.value: + className = "dbg-w"; + break; + case goog.debug.Logger.Level.INFO.value: + className = "dbg-i"; + break; + case goog.debug.Logger.Level.FINE.value: + ; + default: + className = "dbg-f"; + break + } + var sb = []; + sb.push(this.prefix_, " "); + if(this.showAbsoluteTime) { + sb.push("[", goog.debug.Formatter.getDateTimeStamp_(logRecord), "] ") + } + if(this.showRelativeTime) { + sb.push("[", goog.string.whitespaceEscape(goog.debug.Formatter.getRelativeTime_(logRecord, this.startTimeProvider_.get())), "s] ") + } + if(this.showLoggerName) { + sb.push("[", goog.string.htmlEscape(logRecord.getLoggerName()), "] ") + } + if(this.showSeverityLevel) { + sb.push("[", goog.string.htmlEscape(logRecord.getLevel().name), "] ") + } + sb.push('\x3cspan class\x3d"', className, '"\x3e', goog.string.newLineToBr(goog.string.whitespaceEscape(goog.string.htmlEscape(logRecord.getMessage())))); + if(this.showExceptionText && logRecord.getException()) { + sb.push("\x3cbr\x3e", goog.string.newLineToBr(goog.string.whitespaceEscape(logRecord.getExceptionText() || ""))) + } + sb.push("\x3c/span\x3e\x3cbr\x3e"); + return sb.join("") +}; +goog.debug.TextFormatter = function(opt_prefix) { + goog.debug.Formatter.call(this, opt_prefix) +}; +goog.inherits(goog.debug.TextFormatter, goog.debug.Formatter); +goog.debug.TextFormatter.prototype.formatRecord = function(logRecord) { + var sb = []; + sb.push(this.prefix_, " "); + if(this.showAbsoluteTime) { + sb.push("[", goog.debug.Formatter.getDateTimeStamp_(logRecord), "] ") + } + if(this.showRelativeTime) { + sb.push("[", goog.debug.Formatter.getRelativeTime_(logRecord, this.startTimeProvider_.get()), "s] ") + } + if(this.showLoggerName) { + sb.push("[", logRecord.getLoggerName(), "] ") + } + if(this.showSeverityLevel) { + sb.push("[", logRecord.getLevel().name, "] ") + } + sb.push(logRecord.getMessage(), "\n"); + if(this.showExceptionText && logRecord.getException()) { + sb.push(logRecord.getExceptionText(), "\n") + } + return sb.join("") +}; +goog.provide("goog.debug.Console"); +goog.require("goog.debug.LogManager"); +goog.require("goog.debug.Logger.Level"); +goog.require("goog.debug.TextFormatter"); +goog.debug.Console = function() { + this.publishHandler_ = goog.bind(this.addLogRecord, this); + this.formatter_ = new goog.debug.TextFormatter; + this.formatter_.showAbsoluteTime = false; + this.formatter_.showExceptionText = false; + this.isCapturing_ = false; + this.logBuffer_ = ""; + this.filteredLoggers_ = {} +}; +goog.debug.Console.prototype.getFormatter = function() { + return this.formatter_ +}; +goog.debug.Console.prototype.setCapturing = function(capturing) { + if(capturing == this.isCapturing_) { + return + } + var rootLogger = goog.debug.LogManager.getRoot(); + if(capturing) { + rootLogger.addHandler(this.publishHandler_) + }else { + rootLogger.removeHandler(this.publishHandler_); + this.logBuffer = "" + } + this.isCapturing_ = capturing +}; +goog.debug.Console.prototype.addLogRecord = function(logRecord) { + if(this.filteredLoggers_[logRecord.getLoggerName()]) { + return + } + var record = this.formatter_.formatRecord(logRecord); + var console = goog.debug.Console.console_; + if(console) { + switch(logRecord.getLevel()) { + case goog.debug.Logger.Level.SHOUT: + goog.debug.Console.logToConsole_(console, "info", record); + break; + case goog.debug.Logger.Level.SEVERE: + goog.debug.Console.logToConsole_(console, "error", record); + break; + case goog.debug.Logger.Level.WARNING: + goog.debug.Console.logToConsole_(console, "warn", record); + break; + default: + goog.debug.Console.logToConsole_(console, "debug", record); + break + } + }else { + if(window.opera) { + window.opera["postError"](record) + }else { + this.logBuffer_ += record + } + } +}; +goog.debug.Console.prototype.addFilter = function(loggerName) { + this.filteredLoggers_[loggerName] = true +}; +goog.debug.Console.prototype.removeFilter = function(loggerName) { + delete this.filteredLoggers_[loggerName] +}; +goog.debug.Console.instance = null; +goog.debug.Console.console_ = window.console; +goog.debug.Console.setConsole = function(console) { + goog.debug.Console.console_ = console +}; +goog.debug.Console.autoInstall = function() { + if(!goog.debug.Console.instance) { + goog.debug.Console.instance = new goog.debug.Console + } + if(window.location.href.indexOf("Debug\x3dtrue") != -1) { + goog.debug.Console.instance.setCapturing(true) + } +}; +goog.debug.Console.show = function() { + alert(goog.debug.Console.instance.logBuffer_) +}; +goog.debug.Console.logToConsole_ = function(console, fnName, record) { + if(console[fnName]) { + console[fnName](record) + }else { + console.log(record) + } +}; +goog.provide("goog.dom.BrowserFeature"); +goog.require("goog.userAgent"); +goog.dom.BrowserFeature = {CAN_ADD_NAME_OR_TYPE_ATTRIBUTES:!goog.userAgent.IE || goog.userAgent.isDocumentModeOrHigher(9), CAN_USE_CHILDREN_ATTRIBUTE:!goog.userAgent.GECKO && !goog.userAgent.IE || goog.userAgent.IE && goog.userAgent.isDocumentModeOrHigher(9) || goog.userAgent.GECKO && goog.userAgent.isVersionOrHigher("1.9.1"), CAN_USE_INNER_TEXT:goog.userAgent.IE && !goog.userAgent.isVersionOrHigher("9"), CAN_USE_PARENT_ELEMENT_PROPERTY:goog.userAgent.IE || goog.userAgent.OPERA || goog.userAgent.WEBKIT, +INNER_HTML_NEEDS_SCOPED_ELEMENT:goog.userAgent.IE}; +goog.provide("goog.dom.TagName"); +goog.dom.TagName = {A:"A", ABBR:"ABBR", ACRONYM:"ACRONYM", ADDRESS:"ADDRESS", APPLET:"APPLET", AREA:"AREA", ARTICLE:"ARTICLE", ASIDE:"ASIDE", AUDIO:"AUDIO", B:"B", BASE:"BASE", BASEFONT:"BASEFONT", BDI:"BDI", BDO:"BDO", BIG:"BIG", BLOCKQUOTE:"BLOCKQUOTE", BODY:"BODY", BR:"BR", BUTTON:"BUTTON", CANVAS:"CANVAS", CAPTION:"CAPTION", CENTER:"CENTER", CITE:"CITE", CODE:"CODE", COL:"COL", COLGROUP:"COLGROUP", COMMAND:"COMMAND", DATA:"DATA", DATALIST:"DATALIST", DD:"DD", DEL:"DEL", DETAILS:"DETAILS", DFN:"DFN", +DIALOG:"DIALOG", DIR:"DIR", DIV:"DIV", DL:"DL", DT:"DT", EM:"EM", EMBED:"EMBED", FIELDSET:"FIELDSET", FIGCAPTION:"FIGCAPTION", FIGURE:"FIGURE", FONT:"FONT", FOOTER:"FOOTER", FORM:"FORM", FRAME:"FRAME", FRAMESET:"FRAMESET", H1:"H1", H2:"H2", H3:"H3", H4:"H4", H5:"H5", H6:"H6", HEAD:"HEAD", HEADER:"HEADER", HGROUP:"HGROUP", HR:"HR", HTML:"HTML", I:"I", IFRAME:"IFRAME", IMG:"IMG", INPUT:"INPUT", INS:"INS", ISINDEX:"ISINDEX", KBD:"KBD", KEYGEN:"KEYGEN", LABEL:"LABEL", LEGEND:"LEGEND", LI:"LI", LINK:"LINK", +MAP:"MAP", MARK:"MARK", MATH:"MATH", MENU:"MENU", META:"META", METER:"METER", NAV:"NAV", NOFRAMES:"NOFRAMES", NOSCRIPT:"NOSCRIPT", OBJECT:"OBJECT", OL:"OL", OPTGROUP:"OPTGROUP", OPTION:"OPTION", OUTPUT:"OUTPUT", P:"P", PARAM:"PARAM", PRE:"PRE", PROGRESS:"PROGRESS", Q:"Q", RP:"RP", RT:"RT", RUBY:"RUBY", S:"S", SAMP:"SAMP", SCRIPT:"SCRIPT", SECTION:"SECTION", SELECT:"SELECT", SMALL:"SMALL", SOURCE:"SOURCE", SPAN:"SPAN", STRIKE:"STRIKE", STRONG:"STRONG", STYLE:"STYLE", SUB:"SUB", SUMMARY:"SUMMARY", +SUP:"SUP", SVG:"SVG", TABLE:"TABLE", TBODY:"TBODY", TD:"TD", TEXTAREA:"TEXTAREA", TFOOT:"TFOOT", TH:"TH", THEAD:"THEAD", TIME:"TIME", TITLE:"TITLE", TR:"TR", TRACK:"TRACK", TT:"TT", U:"U", UL:"UL", VAR:"VAR", VIDEO:"VIDEO", WBR:"WBR"}; +goog.provide("goog.dom.classes"); +goog.require("goog.array"); +goog.dom.classes.set = function(element, className) { + element.className = className +}; +goog.dom.classes.get = function(element) { + var className = element.className; + return goog.isString(className) && className.match(/\S+/g) || [] +}; +goog.dom.classes.add = function(element, var_args) { + var classes = goog.dom.classes.get(element); + var args = goog.array.slice(arguments, 1); + var expectedCount = classes.length + args.length; + goog.dom.classes.add_(classes, args); + goog.dom.classes.set(element, classes.join(" ")); + return classes.length == expectedCount +}; +goog.dom.classes.remove = function(element, var_args) { + var classes = goog.dom.classes.get(element); + var args = goog.array.slice(arguments, 1); + var newClasses = goog.dom.classes.getDifference_(classes, args); + goog.dom.classes.set(element, newClasses.join(" ")); + return newClasses.length == classes.length - args.length +}; +goog.dom.classes.add_ = function(classes, args) { + for(var i = 0;i < args.length;i++) { + if(!goog.array.contains(classes, args[i])) { + classes.push(args[i]) + } + } +}; +goog.dom.classes.getDifference_ = function(arr1, arr2) { + return goog.array.filter(arr1, function(item) { + return!goog.array.contains(arr2, item) + }) +}; +goog.dom.classes.swap = function(element, fromClass, toClass) { + var classes = goog.dom.classes.get(element); + var removed = false; + for(var i = 0;i < classes.length;i++) { + if(classes[i] == fromClass) { + goog.array.splice(classes, i--, 1); + removed = true + } + } + if(removed) { + classes.push(toClass); + goog.dom.classes.set(element, classes.join(" ")) + } + return removed +}; +goog.dom.classes.addRemove = function(element, classesToRemove, classesToAdd) { + var classes = goog.dom.classes.get(element); + if(goog.isString(classesToRemove)) { + goog.array.remove(classes, classesToRemove) + }else { + if(goog.isArray(classesToRemove)) { + classes = goog.dom.classes.getDifference_(classes, classesToRemove) + } + } + if(goog.isString(classesToAdd) && !goog.array.contains(classes, classesToAdd)) { + classes.push(classesToAdd) + }else { + if(goog.isArray(classesToAdd)) { + goog.dom.classes.add_(classes, classesToAdd) + } + } + goog.dom.classes.set(element, classes.join(" ")) +}; +goog.dom.classes.has = function(element, className) { + return goog.array.contains(goog.dom.classes.get(element), className) +}; +goog.dom.classes.enable = function(element, className, enabled) { + if(enabled) { + goog.dom.classes.add(element, className) + }else { + goog.dom.classes.remove(element, className) + } +}; +goog.dom.classes.toggle = function(element, className) { + var add = !goog.dom.classes.has(element, className); + goog.dom.classes.enable(element, className, add); + return add +}; +goog.provide("goog.math.Coordinate"); +goog.require("goog.math"); +goog.math.Coordinate = function(opt_x, opt_y) { + this.x = goog.isDef(opt_x) ? opt_x : 0; + this.y = goog.isDef(opt_y) ? opt_y : 0 +}; +goog.math.Coordinate.prototype.clone = function() { + return new goog.math.Coordinate(this.x, this.y) +}; +if(goog.DEBUG) { + goog.math.Coordinate.prototype.toString = function() { + return"(" + this.x + ", " + this.y + ")" + } +} +goog.math.Coordinate.equals = function(a, b) { + if(a == b) { + return true + } + if(!a || !b) { + return false + } + return a.x == b.x && a.y == b.y +}; +goog.math.Coordinate.distance = function(a, b) { + var dx = a.x - b.x; + var dy = a.y - b.y; + return Math.sqrt(dx * dx + dy * dy) +}; +goog.math.Coordinate.magnitude = function(a) { + return Math.sqrt(a.x * a.x + a.y * a.y) +}; +goog.math.Coordinate.azimuth = function(a) { + return goog.math.angle(0, 0, a.x, a.y) +}; +goog.math.Coordinate.squaredDistance = function(a, b) { + var dx = a.x - b.x; + var dy = a.y - b.y; + return dx * dx + dy * dy +}; +goog.math.Coordinate.difference = function(a, b) { + return new goog.math.Coordinate(a.x - b.x, a.y - b.y) +}; +goog.math.Coordinate.sum = function(a, b) { + return new goog.math.Coordinate(a.x + b.x, a.y + b.y) +}; +goog.math.Coordinate.prototype.ceil = function() { + this.x = Math.ceil(this.x); + this.y = Math.ceil(this.y); + return this +}; +goog.math.Coordinate.prototype.floor = function() { + this.x = Math.floor(this.x); + this.y = Math.floor(this.y); + return this +}; +goog.math.Coordinate.prototype.round = function() { + this.x = Math.round(this.x); + this.y = Math.round(this.y); + return this +}; +goog.math.Coordinate.prototype.translate = function(tx, opt_ty) { + if(tx instanceof goog.math.Coordinate) { + this.x += tx.x; + this.y += tx.y + }else { + this.x += tx; + if(goog.isNumber(opt_ty)) { + this.y += opt_ty + } + } + return this +}; +goog.math.Coordinate.prototype.scale = function(sx, opt_sy) { + var sy = goog.isNumber(opt_sy) ? opt_sy : sx; + this.x *= sx; + this.y *= sy; + return this +}; +goog.provide("goog.math.Size"); +goog.math.Size = function(width, height) { + this.width = width; + this.height = height +}; +goog.math.Size.equals = function(a, b) { + if(a == b) { + return true + } + if(!a || !b) { + return false + } + return a.width == b.width && a.height == b.height +}; +goog.math.Size.prototype.clone = function() { + return new goog.math.Size(this.width, this.height) +}; +if(goog.DEBUG) { + goog.math.Size.prototype.toString = function() { + return"(" + this.width + " x " + this.height + ")" + } +} +goog.math.Size.prototype.getLongest = function() { + return Math.max(this.width, this.height) +}; +goog.math.Size.prototype.getShortest = function() { + return Math.min(this.width, this.height) +}; +goog.math.Size.prototype.area = function() { + return this.width * this.height +}; +goog.math.Size.prototype.perimeter = function() { + return(this.width + this.height) * 2 +}; +goog.math.Size.prototype.aspectRatio = function() { + return this.width / this.height +}; +goog.math.Size.prototype.isEmpty = function() { + return!this.area() +}; +goog.math.Size.prototype.ceil = function() { + this.width = Math.ceil(this.width); + this.height = Math.ceil(this.height); + return this +}; +goog.math.Size.prototype.fitsInside = function(target) { + return this.width <= target.width && this.height <= target.height +}; +goog.math.Size.prototype.floor = function() { + this.width = Math.floor(this.width); + this.height = Math.floor(this.height); + return this +}; +goog.math.Size.prototype.round = function() { + this.width = Math.round(this.width); + this.height = Math.round(this.height); + return this +}; +goog.math.Size.prototype.scale = function(sx, opt_sy) { + var sy = goog.isNumber(opt_sy) ? opt_sy : sx; + this.width *= sx; + this.height *= sy; + return this +}; +goog.math.Size.prototype.scaleToFit = function(target) { + var s = this.aspectRatio() > target.aspectRatio() ? target.width / this.width : target.height / this.height; + return this.scale(s) +}; +goog.provide("goog.dom"); +goog.provide("goog.dom.Appendable"); +goog.provide("goog.dom.DomHelper"); +goog.provide("goog.dom.NodeType"); +goog.require("goog.array"); +goog.require("goog.dom.BrowserFeature"); +goog.require("goog.dom.TagName"); +goog.require("goog.dom.classes"); +goog.require("goog.math.Coordinate"); +goog.require("goog.math.Size"); +goog.require("goog.object"); +goog.require("goog.string"); +goog.require("goog.userAgent"); +goog.define("goog.dom.ASSUME_QUIRKS_MODE", false); +goog.define("goog.dom.ASSUME_STANDARDS_MODE", false); +goog.dom.COMPAT_MODE_KNOWN_ = goog.dom.ASSUME_QUIRKS_MODE || goog.dom.ASSUME_STANDARDS_MODE; +goog.dom.NodeType = {ELEMENT:1, ATTRIBUTE:2, TEXT:3, CDATA_SECTION:4, ENTITY_REFERENCE:5, ENTITY:6, PROCESSING_INSTRUCTION:7, COMMENT:8, DOCUMENT:9, DOCUMENT_TYPE:10, DOCUMENT_FRAGMENT:11, NOTATION:12}; +goog.dom.getDomHelper = function(opt_element) { + return opt_element ? new goog.dom.DomHelper(goog.dom.getOwnerDocument(opt_element)) : goog.dom.defaultDomHelper_ || (goog.dom.defaultDomHelper_ = new goog.dom.DomHelper) +}; +goog.dom.defaultDomHelper_; +goog.dom.getDocument = function() { + return document +}; +goog.dom.getElement = function(element) { + return goog.isString(element) ? document.getElementById(element) : element +}; +goog.dom.$ = goog.dom.getElement; +goog.dom.getElementsByTagNameAndClass = function(opt_tag, opt_class, opt_el) { + return goog.dom.getElementsByTagNameAndClass_(document, opt_tag, opt_class, opt_el) +}; +goog.dom.getElementsByClass = function(className, opt_el) { + var parent = opt_el || document; + if(goog.dom.canUseQuerySelector_(parent)) { + return parent.querySelectorAll("." + className) + }else { + if(parent.getElementsByClassName) { + return parent.getElementsByClassName(className) + } + } + return goog.dom.getElementsByTagNameAndClass_(document, "*", className, opt_el) +}; +goog.dom.getElementByClass = function(className, opt_el) { + var parent = opt_el || document; + var retVal = null; + if(goog.dom.canUseQuerySelector_(parent)) { + retVal = parent.querySelector("." + className) + }else { + retVal = goog.dom.getElementsByClass(className, opt_el)[0] + } + return retVal || null +}; +goog.dom.canUseQuerySelector_ = function(parent) { + return!!(parent.querySelectorAll && parent.querySelector) +}; +goog.dom.getElementsByTagNameAndClass_ = function(doc, opt_tag, opt_class, opt_el) { + var parent = opt_el || doc; + var tagName = opt_tag && opt_tag != "*" ? opt_tag.toUpperCase() : ""; + if(goog.dom.canUseQuerySelector_(parent) && (tagName || opt_class)) { + var query = tagName + (opt_class ? "." + opt_class : ""); + return parent.querySelectorAll(query) + } + if(opt_class && parent.getElementsByClassName) { + var els = parent.getElementsByClassName(opt_class); + if(tagName) { + var arrayLike = {}; + var len = 0; + for(var i = 0, el;el = els[i];i++) { + if(tagName == el.nodeName) { + arrayLike[len++] = el + } + } + arrayLike.length = len; + return arrayLike + }else { + return els + } + } + var els = parent.getElementsByTagName(tagName || "*"); + if(opt_class) { + var arrayLike = {}; + var len = 0; + for(var i = 0, el;el = els[i];i++) { + var className = el.className; + if(typeof className.split == "function" && goog.array.contains(className.split(/\s+/), opt_class)) { + arrayLike[len++] = el + } + } + arrayLike.length = len; + return arrayLike + }else { + return els + } +}; +goog.dom.$$ = goog.dom.getElementsByTagNameAndClass; +goog.dom.setProperties = function(element, properties) { + goog.object.forEach(properties, function(val, key) { + if(key == "style") { + element.style.cssText = val + }else { + if(key == "class") { + element.className = val + }else { + if(key == "for") { + element.htmlFor = val + }else { + if(key in goog.dom.DIRECT_ATTRIBUTE_MAP_) { + element.setAttribute(goog.dom.DIRECT_ATTRIBUTE_MAP_[key], val) + }else { + if(goog.string.startsWith(key, "aria-") || goog.string.startsWith(key, "data-")) { + element.setAttribute(key, val) + }else { + element[key] = val + } + } + } + } + } + }) +}; +goog.dom.DIRECT_ATTRIBUTE_MAP_ = {"cellpadding":"cellPadding", "cellspacing":"cellSpacing", "colspan":"colSpan", "frameborder":"frameBorder", "height":"height", "maxlength":"maxLength", "role":"role", "rowspan":"rowSpan", "type":"type", "usemap":"useMap", "valign":"vAlign", "width":"width"}; +goog.dom.getViewportSize = function(opt_window) { + return goog.dom.getViewportSize_(opt_window || window) +}; +goog.dom.getViewportSize_ = function(win) { + var doc = win.document; + var el = goog.dom.isCss1CompatMode_(doc) ? doc.documentElement : doc.body; + return new goog.math.Size(el.clientWidth, el.clientHeight) +}; +goog.dom.getDocumentHeight = function() { + return goog.dom.getDocumentHeight_(window) +}; +goog.dom.getDocumentHeight_ = function(win) { + var doc = win.document; + var height = 0; + if(doc) { + var vh = goog.dom.getViewportSize_(win).height; + var body = doc.body; + var docEl = doc.documentElement; + if(goog.dom.isCss1CompatMode_(doc) && docEl.scrollHeight) { + height = docEl.scrollHeight != vh ? docEl.scrollHeight : docEl.offsetHeight + }else { + var sh = docEl.scrollHeight; + var oh = docEl.offsetHeight; + if(docEl.clientHeight != oh) { + sh = body.scrollHeight; + oh = body.offsetHeight + } + if(sh > vh) { + height = sh > oh ? sh : oh + }else { + height = sh < oh ? sh : oh + } + } + } + return height +}; +goog.dom.getPageScroll = function(opt_window) { + var win = opt_window || goog.global || window; + return goog.dom.getDomHelper(win.document).getDocumentScroll() +}; +goog.dom.getDocumentScroll = function() { + return goog.dom.getDocumentScroll_(document) +}; +goog.dom.getDocumentScroll_ = function(doc) { + var el = goog.dom.getDocumentScrollElement_(doc); + var win = goog.dom.getWindow_(doc); + if(goog.userAgent.IE && goog.userAgent.isVersionOrHigher("10") && win.pageYOffset != el.scrollTop) { + return new goog.math.Coordinate(el.scrollLeft, el.scrollTop) + } + return new goog.math.Coordinate(win.pageXOffset || el.scrollLeft, win.pageYOffset || el.scrollTop) +}; +goog.dom.getDocumentScrollElement = function() { + return goog.dom.getDocumentScrollElement_(document) +}; +goog.dom.getDocumentScrollElement_ = function(doc) { + return!goog.userAgent.WEBKIT && goog.dom.isCss1CompatMode_(doc) ? doc.documentElement : doc.body +}; +goog.dom.getWindow = function(opt_doc) { + return opt_doc ? goog.dom.getWindow_(opt_doc) : window +}; +goog.dom.getWindow_ = function(doc) { + return doc.parentWindow || doc.defaultView +}; +goog.dom.createDom = function(tagName, opt_attributes, var_args) { + return goog.dom.createDom_(document, arguments) +}; +goog.dom.createDom_ = function(doc, args) { + var tagName = args[0]; + var attributes = args[1]; + if(!goog.dom.BrowserFeature.CAN_ADD_NAME_OR_TYPE_ATTRIBUTES && attributes && (attributes.name || attributes.type)) { + var tagNameArr = ["\x3c", tagName]; + if(attributes.name) { + tagNameArr.push(' name\x3d"', goog.string.htmlEscape(attributes.name), '"') + } + if(attributes.type) { + tagNameArr.push(' type\x3d"', goog.string.htmlEscape(attributes.type), '"'); + var clone = {}; + goog.object.extend(clone, attributes); + delete clone["type"]; + attributes = clone + } + tagNameArr.push("\x3e"); + tagName = tagNameArr.join("") + } + var element = doc.createElement(tagName); + if(attributes) { + if(goog.isString(attributes)) { + element.className = attributes + }else { + if(goog.isArray(attributes)) { + goog.dom.classes.add.apply(null, [element].concat(attributes)) + }else { + goog.dom.setProperties(element, attributes) + } + } + } + if(args.length > 2) { + goog.dom.append_(doc, element, args, 2) + } + return element +}; +goog.dom.append_ = function(doc, parent, args, startIndex) { + function childHandler(child) { + if(child) { + parent.appendChild(goog.isString(child) ? doc.createTextNode(child) : child) + } + } + for(var i = startIndex;i < args.length;i++) { + var arg = args[i]; + if(goog.isArrayLike(arg) && !goog.dom.isNodeLike(arg)) { + goog.array.forEach(goog.dom.isNodeList(arg) ? goog.array.toArray(arg) : arg, childHandler) + }else { + childHandler(arg) + } + } +}; +goog.dom.$dom = goog.dom.createDom; +goog.dom.createElement = function(name) { + return document.createElement(name) +}; +goog.dom.createTextNode = function(content) { + return document.createTextNode(String(content)) +}; +goog.dom.createTable = function(rows, columns, opt_fillWithNbsp) { + return goog.dom.createTable_(document, rows, columns, !!opt_fillWithNbsp) +}; +goog.dom.createTable_ = function(doc, rows, columns, fillWithNbsp) { + var rowHtml = ["\x3ctr\x3e"]; + for(var i = 0;i < columns;i++) { + rowHtml.push(fillWithNbsp ? "\x3ctd\x3e\x26nbsp;\x3c/td\x3e" : "\x3ctd\x3e\x3c/td\x3e") + } + rowHtml.push("\x3c/tr\x3e"); + rowHtml = rowHtml.join(""); + var totalHtml = ["\x3ctable\x3e"]; + for(i = 0;i < rows;i++) { + totalHtml.push(rowHtml) + } + totalHtml.push("\x3c/table\x3e"); + var elem = doc.createElement(goog.dom.TagName.DIV); + elem.innerHTML = totalHtml.join(""); + return(elem.removeChild(elem.firstChild)) +}; +goog.dom.htmlToDocumentFragment = function(htmlString) { + return goog.dom.htmlToDocumentFragment_(document, htmlString) +}; +goog.dom.htmlToDocumentFragment_ = function(doc, htmlString) { + var tempDiv = doc.createElement("div"); + if(goog.dom.BrowserFeature.INNER_HTML_NEEDS_SCOPED_ELEMENT) { + tempDiv.innerHTML = "\x3cbr\x3e" + htmlString; + tempDiv.removeChild(tempDiv.firstChild) + }else { + tempDiv.innerHTML = htmlString + } + if(tempDiv.childNodes.length == 1) { + return(tempDiv.removeChild(tempDiv.firstChild)) + }else { + var fragment = doc.createDocumentFragment(); + while(tempDiv.firstChild) { + fragment.appendChild(tempDiv.firstChild) + } + return fragment + } +}; +goog.dom.getCompatMode = function() { + return goog.dom.isCss1CompatMode() ? "CSS1Compat" : "BackCompat" +}; +goog.dom.isCss1CompatMode = function() { + return goog.dom.isCss1CompatMode_(document) +}; +goog.dom.isCss1CompatMode_ = function(doc) { + if(goog.dom.COMPAT_MODE_KNOWN_) { + return goog.dom.ASSUME_STANDARDS_MODE + } + return doc.compatMode == "CSS1Compat" +}; +goog.dom.canHaveChildren = function(node) { + if(node.nodeType != goog.dom.NodeType.ELEMENT) { + return false + } + switch(node.tagName) { + case goog.dom.TagName.APPLET: + ; + case goog.dom.TagName.AREA: + ; + case goog.dom.TagName.BASE: + ; + case goog.dom.TagName.BR: + ; + case goog.dom.TagName.COL: + ; + case goog.dom.TagName.COMMAND: + ; + case goog.dom.TagName.EMBED: + ; + case goog.dom.TagName.FRAME: + ; + case goog.dom.TagName.HR: + ; + case goog.dom.TagName.IMG: + ; + case goog.dom.TagName.INPUT: + ; + case goog.dom.TagName.IFRAME: + ; + case goog.dom.TagName.ISINDEX: + ; + case goog.dom.TagName.KEYGEN: + ; + case goog.dom.TagName.LINK: + ; + case goog.dom.TagName.NOFRAMES: + ; + case goog.dom.TagName.NOSCRIPT: + ; + case goog.dom.TagName.META: + ; + case goog.dom.TagName.OBJECT: + ; + case goog.dom.TagName.PARAM: + ; + case goog.dom.TagName.SCRIPT: + ; + case goog.dom.TagName.SOURCE: + ; + case goog.dom.TagName.STYLE: + ; + case goog.dom.TagName.TRACK: + ; + case goog.dom.TagName.WBR: + return false + } + return true +}; +goog.dom.appendChild = function(parent, child) { + parent.appendChild(child) +}; +goog.dom.append = function(parent, var_args) { + goog.dom.append_(goog.dom.getOwnerDocument(parent), parent, arguments, 1) +}; +goog.dom.removeChildren = function(node) { + var child; + while(child = node.firstChild) { + node.removeChild(child) + } +}; +goog.dom.insertSiblingBefore = function(newNode, refNode) { + if(refNode.parentNode) { + refNode.parentNode.insertBefore(newNode, refNode) + } +}; +goog.dom.insertSiblingAfter = function(newNode, refNode) { + if(refNode.parentNode) { + refNode.parentNode.insertBefore(newNode, refNode.nextSibling) + } +}; +goog.dom.insertChildAt = function(parent, child, index) { + parent.insertBefore(child, parent.childNodes[index] || null) +}; +goog.dom.removeNode = function(node) { + return node && node.parentNode ? node.parentNode.removeChild(node) : null +}; +goog.dom.replaceNode = function(newNode, oldNode) { + var parent = oldNode.parentNode; + if(parent) { + parent.replaceChild(newNode, oldNode) + } +}; +goog.dom.flattenElement = function(element) { + var child, parent = element.parentNode; + if(parent && parent.nodeType != goog.dom.NodeType.DOCUMENT_FRAGMENT) { + if(element.removeNode) { + return(element.removeNode(false)) + }else { + while(child = element.firstChild) { + parent.insertBefore(child, element) + } + return(goog.dom.removeNode(element)) + } + } +}; +goog.dom.getChildren = function(element) { + if(goog.dom.BrowserFeature.CAN_USE_CHILDREN_ATTRIBUTE && element.children != undefined) { + return element.children + } + return goog.array.filter(element.childNodes, function(node) { + return node.nodeType == goog.dom.NodeType.ELEMENT + }) +}; +goog.dom.getFirstElementChild = function(node) { + if(node.firstElementChild != undefined) { + return(node).firstElementChild + } + return goog.dom.getNextElementNode_(node.firstChild, true) +}; +goog.dom.getLastElementChild = function(node) { + if(node.lastElementChild != undefined) { + return(node).lastElementChild + } + return goog.dom.getNextElementNode_(node.lastChild, false) +}; +goog.dom.getNextElementSibling = function(node) { + if(node.nextElementSibling != undefined) { + return(node).nextElementSibling + } + return goog.dom.getNextElementNode_(node.nextSibling, true) +}; +goog.dom.getPreviousElementSibling = function(node) { + if(node.previousElementSibling != undefined) { + return(node).previousElementSibling + } + return goog.dom.getNextElementNode_(node.previousSibling, false) +}; +goog.dom.getNextElementNode_ = function(node, forward) { + while(node && node.nodeType != goog.dom.NodeType.ELEMENT) { + node = forward ? node.nextSibling : node.previousSibling + } + return(node) +}; +goog.dom.getNextNode = function(node) { + if(!node) { + return null + } + if(node.firstChild) { + return node.firstChild + } + while(node && !node.nextSibling) { + node = node.parentNode + } + return node ? node.nextSibling : null +}; +goog.dom.getPreviousNode = function(node) { + if(!node) { + return null + } + if(!node.previousSibling) { + return node.parentNode + } + node = node.previousSibling; + while(node && node.lastChild) { + node = node.lastChild + } + return node +}; +goog.dom.isNodeLike = function(obj) { + return goog.isObject(obj) && obj.nodeType > 0 +}; +goog.dom.isElement = function(obj) { + return goog.isObject(obj) && obj.nodeType == goog.dom.NodeType.ELEMENT +}; +goog.dom.isWindow = function(obj) { + return goog.isObject(obj) && obj["window"] == obj +}; +goog.dom.getParentElement = function(element) { + if(goog.dom.BrowserFeature.CAN_USE_PARENT_ELEMENT_PROPERTY) { + var isIe9 = goog.userAgent.IE && goog.userAgent.isVersionOrHigher("9") && !goog.userAgent.isVersionOrHigher("10"); + if(!(isIe9 && goog.global["SVGElement"] && element instanceof goog.global["SVGElement"])) { + return element.parentElement + } + } + var parent = element.parentNode; + return goog.dom.isElement(parent) ? (parent) : null +}; +goog.dom.contains = function(parent, descendant) { + if(parent.contains && descendant.nodeType == goog.dom.NodeType.ELEMENT) { + return parent == descendant || parent.contains(descendant) + } + if(typeof parent.compareDocumentPosition != "undefined") { + return parent == descendant || Boolean(parent.compareDocumentPosition(descendant) & 16) + } + while(descendant && parent != descendant) { + descendant = descendant.parentNode + } + return descendant == parent +}; +goog.dom.compareNodeOrder = function(node1, node2) { + if(node1 == node2) { + return 0 + } + if(node1.compareDocumentPosition) { + return node1.compareDocumentPosition(node2) & 2 ? 1 : -1 + } + if(goog.userAgent.IE && !goog.userAgent.isDocumentModeOrHigher(9)) { + if(node1.nodeType == goog.dom.NodeType.DOCUMENT) { + return-1 + } + if(node2.nodeType == goog.dom.NodeType.DOCUMENT) { + return 1 + } + } + if("sourceIndex" in node1 || node1.parentNode && "sourceIndex" in node1.parentNode) { + var isElement1 = node1.nodeType == goog.dom.NodeType.ELEMENT; + var isElement2 = node2.nodeType == goog.dom.NodeType.ELEMENT; + if(isElement1 && isElement2) { + return node1.sourceIndex - node2.sourceIndex + }else { + var parent1 = node1.parentNode; + var parent2 = node2.parentNode; + if(parent1 == parent2) { + return goog.dom.compareSiblingOrder_(node1, node2) + } + if(!isElement1 && goog.dom.contains(parent1, node2)) { + return-1 * goog.dom.compareParentsDescendantNodeIe_(node1, node2) + } + if(!isElement2 && goog.dom.contains(parent2, node1)) { + return goog.dom.compareParentsDescendantNodeIe_(node2, node1) + } + return(isElement1 ? node1.sourceIndex : parent1.sourceIndex) - (isElement2 ? node2.sourceIndex : parent2.sourceIndex) + } + } + var doc = goog.dom.getOwnerDocument(node1); + var range1, range2; + range1 = doc.createRange(); + range1.selectNode(node1); + range1.collapse(true); + range2 = doc.createRange(); + range2.selectNode(node2); + range2.collapse(true); + return range1.compareBoundaryPoints(goog.global["Range"].START_TO_END, range2) +}; +goog.dom.compareParentsDescendantNodeIe_ = function(textNode, node) { + var parent = textNode.parentNode; + if(parent == node) { + return-1 + } + var sibling = node; + while(sibling.parentNode != parent) { + sibling = sibling.parentNode + } + return goog.dom.compareSiblingOrder_(sibling, textNode) +}; +goog.dom.compareSiblingOrder_ = function(node1, node2) { + var s = node2; + while(s = s.previousSibling) { + if(s == node1) { + return-1 + } + } + return 1 +}; +goog.dom.findCommonAncestor = function(var_args) { + var i, count = arguments.length; + if(!count) { + return null + }else { + if(count == 1) { + return arguments[0] + } + } + var paths = []; + var minLength = Infinity; + for(i = 0;i < count;i++) { + var ancestors = []; + var node = arguments[i]; + while(node) { + ancestors.unshift(node); + node = node.parentNode + } + paths.push(ancestors); + minLength = Math.min(minLength, ancestors.length) + } + var output = null; + for(i = 0;i < minLength;i++) { + var first = paths[0][i]; + for(var j = 1;j < count;j++) { + if(first != paths[j][i]) { + return output + } + } + output = first + } + return output +}; +goog.dom.getOwnerDocument = function(node) { + return(node.nodeType == goog.dom.NodeType.DOCUMENT ? node : node.ownerDocument || node.document) +}; +goog.dom.getFrameContentDocument = function(frame) { + var doc = frame.contentDocument || frame.contentWindow.document; + return doc +}; +goog.dom.getFrameContentWindow = function(frame) { + return frame.contentWindow || goog.dom.getWindow_(goog.dom.getFrameContentDocument(frame)) +}; +goog.dom.setTextContent = function(element, text) { + if("textContent" in element) { + element.textContent = text + }else { + if(element.firstChild && element.firstChild.nodeType == goog.dom.NodeType.TEXT) { + while(element.lastChild != element.firstChild) { + element.removeChild(element.lastChild) + } + element.firstChild.data = text + }else { + goog.dom.removeChildren(element); + var doc = goog.dom.getOwnerDocument(element); + element.appendChild(doc.createTextNode(String(text))) + } + } +}; +goog.dom.getOuterHtml = function(element) { + if("outerHTML" in element) { + return element.outerHTML + }else { + var doc = goog.dom.getOwnerDocument(element); + var div = doc.createElement("div"); + div.appendChild(element.cloneNode(true)); + return div.innerHTML + } +}; +goog.dom.findNode = function(root, p) { + var rv = []; + var found = goog.dom.findNodes_(root, p, rv, true); + return found ? rv[0] : undefined +}; +goog.dom.findNodes = function(root, p) { + var rv = []; + goog.dom.findNodes_(root, p, rv, false); + return rv +}; +goog.dom.findNodes_ = function(root, p, rv, findOne) { + if(root != null) { + var child = root.firstChild; + while(child) { + if(p(child)) { + rv.push(child); + if(findOne) { + return true + } + } + if(goog.dom.findNodes_(child, p, rv, findOne)) { + return true + } + child = child.nextSibling + } + } + return false +}; +goog.dom.TAGS_TO_IGNORE_ = {"SCRIPT":1, "STYLE":1, "HEAD":1, "IFRAME":1, "OBJECT":1}; +goog.dom.PREDEFINED_TAG_VALUES_ = {"IMG":" ", "BR":"\n"}; +goog.dom.isFocusableTabIndex = function(element) { + var attrNode = element.getAttributeNode("tabindex"); + if(attrNode && attrNode.specified) { + var index = element.tabIndex; + return goog.isNumber(index) && index >= 0 && index < 32768 + } + return false +}; +goog.dom.setFocusableTabIndex = function(element, enable) { + if(enable) { + element.tabIndex = 0 + }else { + element.tabIndex = -1; + element.removeAttribute("tabIndex") + } +}; +goog.dom.getTextContent = function(node) { + var textContent; + if(goog.dom.BrowserFeature.CAN_USE_INNER_TEXT && "innerText" in node) { + textContent = goog.string.canonicalizeNewlines(node.innerText) + }else { + var buf = []; + goog.dom.getTextContent_(node, buf, true); + textContent = buf.join("") + } + textContent = textContent.replace(/ \xAD /g, " ").replace(/\xAD/g, ""); + textContent = textContent.replace(/\u200B/g, ""); + if(!goog.dom.BrowserFeature.CAN_USE_INNER_TEXT) { + textContent = textContent.replace(/ +/g, " ") + } + if(textContent != " ") { + textContent = textContent.replace(/^\s*/, "") + } + return textContent +}; +goog.dom.getRawTextContent = function(node) { + var buf = []; + goog.dom.getTextContent_(node, buf, false); + return buf.join("") +}; +goog.dom.getTextContent_ = function(node, buf, normalizeWhitespace) { + if(node.nodeName in goog.dom.TAGS_TO_IGNORE_) { + }else { + if(node.nodeType == goog.dom.NodeType.TEXT) { + if(normalizeWhitespace) { + buf.push(String(node.nodeValue).replace(/(\r\n|\r|\n)/g, "")) + }else { + buf.push(node.nodeValue) + } + }else { + if(node.nodeName in goog.dom.PREDEFINED_TAG_VALUES_) { + buf.push(goog.dom.PREDEFINED_TAG_VALUES_[node.nodeName]) + }else { + var child = node.firstChild; + while(child) { + goog.dom.getTextContent_(child, buf, normalizeWhitespace); + child = child.nextSibling + } + } + } + } +}; +goog.dom.getNodeTextLength = function(node) { + return goog.dom.getTextContent(node).length +}; +goog.dom.getNodeTextOffset = function(node, opt_offsetParent) { + var root = opt_offsetParent || goog.dom.getOwnerDocument(node).body; + var buf = []; + while(node && node != root) { + var cur = node; + while(cur = cur.previousSibling) { + buf.unshift(goog.dom.getTextContent(cur)) + } + node = node.parentNode + } + return goog.string.trimLeft(buf.join("")).replace(/ +/g, " ").length +}; +goog.dom.getNodeAtOffset = function(parent, offset, opt_result) { + var stack = [parent], pos = 0, cur = null; + while(stack.length > 0 && pos < offset) { + cur = stack.pop(); + if(cur.nodeName in goog.dom.TAGS_TO_IGNORE_) { + }else { + if(cur.nodeType == goog.dom.NodeType.TEXT) { + var text = cur.nodeValue.replace(/(\r\n|\r|\n)/g, "").replace(/ +/g, " "); + pos += text.length + }else { + if(cur.nodeName in goog.dom.PREDEFINED_TAG_VALUES_) { + pos += goog.dom.PREDEFINED_TAG_VALUES_[cur.nodeName].length + }else { + for(var i = cur.childNodes.length - 1;i >= 0;i--) { + stack.push(cur.childNodes[i]) + } + } + } + } + } + if(goog.isObject(opt_result)) { + opt_result.remainder = cur ? cur.nodeValue.length + offset - pos - 1 : 0; + opt_result.node = cur + } + return cur +}; +goog.dom.isNodeList = function(val) { + if(val && typeof val.length == "number") { + if(goog.isObject(val)) { + return typeof val.item == "function" || typeof val.item == "string" + }else { + if(goog.isFunction(val)) { + return typeof val.item == "function" + } + } + } + return false +}; +goog.dom.getAncestorByTagNameAndClass = function(element, opt_tag, opt_class) { + if(!opt_tag && !opt_class) { + return null + } + var tagName = opt_tag ? opt_tag.toUpperCase() : null; + return(goog.dom.getAncestor(element, function(node) { + return(!tagName || node.nodeName == tagName) && (!opt_class || goog.dom.classes.has(node, opt_class)) + }, true)) +}; +goog.dom.getAncestorByClass = function(element, className) { + return goog.dom.getAncestorByTagNameAndClass(element, null, className) +}; +goog.dom.getAncestor = function(element, matcher, opt_includeNode, opt_maxSearchSteps) { + if(!opt_includeNode) { + element = element.parentNode + } + var ignoreSearchSteps = opt_maxSearchSteps == null; + var steps = 0; + while(element && (ignoreSearchSteps || steps <= opt_maxSearchSteps)) { + if(matcher(element)) { + return element + } + element = element.parentNode; + steps++ + } + return null +}; +goog.dom.getActiveElement = function(doc) { + try { + return doc && doc.activeElement + }catch(e) { + } + return null +}; +goog.dom.DomHelper = function(opt_document) { + this.document_ = opt_document || goog.global.document || document +}; +goog.dom.DomHelper.prototype.getDomHelper = goog.dom.getDomHelper; +goog.dom.DomHelper.prototype.setDocument = function(document) { + this.document_ = document +}; +goog.dom.DomHelper.prototype.getDocument = function() { + return this.document_ +}; +goog.dom.DomHelper.prototype.getElement = function(element) { + if(goog.isString(element)) { + return this.document_.getElementById(element) + }else { + return element + } +}; +goog.dom.DomHelper.prototype.$ = goog.dom.DomHelper.prototype.getElement; +goog.dom.DomHelper.prototype.getElementsByTagNameAndClass = function(opt_tag, opt_class, opt_el) { + return goog.dom.getElementsByTagNameAndClass_(this.document_, opt_tag, opt_class, opt_el) +}; +goog.dom.DomHelper.prototype.getElementsByClass = function(className, opt_el) { + var doc = opt_el || this.document_; + return goog.dom.getElementsByClass(className, doc) +}; +goog.dom.DomHelper.prototype.getElementByClass = function(className, opt_el) { + var doc = opt_el || this.document_; + return goog.dom.getElementByClass(className, doc) +}; +goog.dom.DomHelper.prototype.$$ = goog.dom.DomHelper.prototype.getElementsByTagNameAndClass; +goog.dom.DomHelper.prototype.setProperties = goog.dom.setProperties; +goog.dom.DomHelper.prototype.getViewportSize = function(opt_window) { + return goog.dom.getViewportSize(opt_window || this.getWindow()) +}; +goog.dom.DomHelper.prototype.getDocumentHeight = function() { + return goog.dom.getDocumentHeight_(this.getWindow()) +}; +goog.dom.Appendable; +goog.dom.DomHelper.prototype.createDom = function(tagName, opt_attributes, var_args) { + return goog.dom.createDom_(this.document_, arguments) +}; +goog.dom.DomHelper.prototype.$dom = goog.dom.DomHelper.prototype.createDom; +goog.dom.DomHelper.prototype.createElement = function(name) { + return this.document_.createElement(name) +}; +goog.dom.DomHelper.prototype.createTextNode = function(content) { + return this.document_.createTextNode(String(content)) +}; +goog.dom.DomHelper.prototype.createTable = function(rows, columns, opt_fillWithNbsp) { + return goog.dom.createTable_(this.document_, rows, columns, !!opt_fillWithNbsp) +}; +goog.dom.DomHelper.prototype.htmlToDocumentFragment = function(htmlString) { + return goog.dom.htmlToDocumentFragment_(this.document_, htmlString) +}; +goog.dom.DomHelper.prototype.getCompatMode = function() { + return this.isCss1CompatMode() ? "CSS1Compat" : "BackCompat" +}; +goog.dom.DomHelper.prototype.isCss1CompatMode = function() { + return goog.dom.isCss1CompatMode_(this.document_) +}; +goog.dom.DomHelper.prototype.getWindow = function() { + return goog.dom.getWindow_(this.document_) +}; +goog.dom.DomHelper.prototype.getDocumentScrollElement = function() { + return goog.dom.getDocumentScrollElement_(this.document_) +}; +goog.dom.DomHelper.prototype.getDocumentScroll = function() { + return goog.dom.getDocumentScroll_(this.document_) +}; +goog.dom.DomHelper.prototype.getActiveElement = function(opt_doc) { + return goog.dom.getActiveElement(opt_doc || this.document_) +}; +goog.dom.DomHelper.prototype.appendChild = goog.dom.appendChild; +goog.dom.DomHelper.prototype.append = goog.dom.append; +goog.dom.DomHelper.prototype.canHaveChildren = goog.dom.canHaveChildren; +goog.dom.DomHelper.prototype.removeChildren = goog.dom.removeChildren; +goog.dom.DomHelper.prototype.insertSiblingBefore = goog.dom.insertSiblingBefore; +goog.dom.DomHelper.prototype.insertSiblingAfter = goog.dom.insertSiblingAfter; +goog.dom.DomHelper.prototype.insertChildAt = goog.dom.insertChildAt; +goog.dom.DomHelper.prototype.removeNode = goog.dom.removeNode; +goog.dom.DomHelper.prototype.replaceNode = goog.dom.replaceNode; +goog.dom.DomHelper.prototype.flattenElement = goog.dom.flattenElement; +goog.dom.DomHelper.prototype.getChildren = goog.dom.getChildren; +goog.dom.DomHelper.prototype.getFirstElementChild = goog.dom.getFirstElementChild; +goog.dom.DomHelper.prototype.getLastElementChild = goog.dom.getLastElementChild; +goog.dom.DomHelper.prototype.getNextElementSibling = goog.dom.getNextElementSibling; +goog.dom.DomHelper.prototype.getPreviousElementSibling = goog.dom.getPreviousElementSibling; +goog.dom.DomHelper.prototype.getNextNode = goog.dom.getNextNode; +goog.dom.DomHelper.prototype.getPreviousNode = goog.dom.getPreviousNode; +goog.dom.DomHelper.prototype.isNodeLike = goog.dom.isNodeLike; +goog.dom.DomHelper.prototype.isElement = goog.dom.isElement; +goog.dom.DomHelper.prototype.isWindow = goog.dom.isWindow; +goog.dom.DomHelper.prototype.getParentElement = goog.dom.getParentElement; +goog.dom.DomHelper.prototype.contains = goog.dom.contains; +goog.dom.DomHelper.prototype.compareNodeOrder = goog.dom.compareNodeOrder; +goog.dom.DomHelper.prototype.findCommonAncestor = goog.dom.findCommonAncestor; +goog.dom.DomHelper.prototype.getOwnerDocument = goog.dom.getOwnerDocument; +goog.dom.DomHelper.prototype.getFrameContentDocument = goog.dom.getFrameContentDocument; +goog.dom.DomHelper.prototype.getFrameContentWindow = goog.dom.getFrameContentWindow; +goog.dom.DomHelper.prototype.setTextContent = goog.dom.setTextContent; +goog.dom.DomHelper.prototype.getOuterHtml = goog.dom.getOuterHtml; +goog.dom.DomHelper.prototype.findNode = goog.dom.findNode; +goog.dom.DomHelper.prototype.findNodes = goog.dom.findNodes; +goog.dom.DomHelper.prototype.isFocusableTabIndex = goog.dom.isFocusableTabIndex; +goog.dom.DomHelper.prototype.setFocusableTabIndex = goog.dom.setFocusableTabIndex; +goog.dom.DomHelper.prototype.getTextContent = goog.dom.getTextContent; +goog.dom.DomHelper.prototype.getNodeTextLength = goog.dom.getNodeTextLength; +goog.dom.DomHelper.prototype.getNodeTextOffset = goog.dom.getNodeTextOffset; +goog.dom.DomHelper.prototype.getNodeAtOffset = goog.dom.getNodeAtOffset; +goog.dom.DomHelper.prototype.isNodeList = goog.dom.isNodeList; +goog.dom.DomHelper.prototype.getAncestorByTagNameAndClass = goog.dom.getAncestorByTagNameAndClass; +goog.dom.DomHelper.prototype.getAncestorByClass = goog.dom.getAncestorByClass; +goog.dom.DomHelper.prototype.getAncestor = goog.dom.getAncestor; +goog.provide("goog.dom.ViewportSizeMonitor"); +goog.require("goog.dom"); +goog.require("goog.events"); +goog.require("goog.events.EventTarget"); +goog.require("goog.events.EventType"); +goog.require("goog.math.Size"); +goog.dom.ViewportSizeMonitor = function(opt_window) { + goog.events.EventTarget.call(this); + this.window_ = opt_window || window; + this.listenerKey_ = goog.events.listen(this.window_, goog.events.EventType.RESIZE, this.handleResize_, false, this); + this.size_ = goog.dom.getViewportSize(this.window_) +}; +goog.inherits(goog.dom.ViewportSizeMonitor, goog.events.EventTarget); +goog.dom.ViewportSizeMonitor.getInstanceForWindow = function(opt_window) { + var currentWindow = opt_window || window; + var uid = goog.getUid(currentWindow); + return goog.dom.ViewportSizeMonitor.windowInstanceMap_[uid] = goog.dom.ViewportSizeMonitor.windowInstanceMap_[uid] || new goog.dom.ViewportSizeMonitor(currentWindow) +}; +goog.dom.ViewportSizeMonitor.removeInstanceForWindow = function(opt_window) { + var uid = goog.getUid(opt_window || window); + goog.dispose(goog.dom.ViewportSizeMonitor.windowInstanceMap_[uid]); + delete goog.dom.ViewportSizeMonitor.windowInstanceMap_[uid] +}; +goog.dom.ViewportSizeMonitor.windowInstanceMap_ = {}; +goog.dom.ViewportSizeMonitor.prototype.listenerKey_ = null; +goog.dom.ViewportSizeMonitor.prototype.window_ = null; +goog.dom.ViewportSizeMonitor.prototype.size_ = null; +goog.dom.ViewportSizeMonitor.prototype.getSize = function() { + return this.size_ ? this.size_.clone() : null +}; +goog.dom.ViewportSizeMonitor.prototype.disposeInternal = function() { + goog.dom.ViewportSizeMonitor.superClass_.disposeInternal.call(this); + if(this.listenerKey_) { + goog.events.unlistenByKey(this.listenerKey_); + this.listenerKey_ = null + } + this.window_ = null; + this.size_ = null +}; +goog.dom.ViewportSizeMonitor.prototype.handleResize_ = function(event) { + var size = goog.dom.getViewportSize(this.window_); + if(!goog.math.Size.equals(size, this.size_)) { + this.size_ = size; + this.dispatchEvent(goog.events.EventType.RESIZE) + } +}; +goog.provide("goog.events.KeyCodes"); +goog.require("goog.userAgent"); +goog.events.KeyCodes = {WIN_KEY_FF_LINUX:0, MAC_ENTER:3, BACKSPACE:8, TAB:9, NUM_CENTER:12, ENTER:13, SHIFT:16, CTRL:17, ALT:18, PAUSE:19, CAPS_LOCK:20, ESC:27, SPACE:32, PAGE_UP:33, PAGE_DOWN:34, END:35, HOME:36, LEFT:37, UP:38, RIGHT:39, DOWN:40, PRINT_SCREEN:44, INSERT:45, DELETE:46, ZERO:48, ONE:49, TWO:50, THREE:51, FOUR:52, FIVE:53, SIX:54, SEVEN:55, EIGHT:56, NINE:57, FF_SEMICOLON:59, FF_EQUALS:61, QUESTION_MARK:63, A:65, B:66, C:67, D:68, E:69, F:70, G:71, H:72, I:73, J:74, K:75, L:76, M:77, +N:78, O:79, P:80, Q:81, R:82, S:83, T:84, U:85, V:86, W:87, X:88, Y:89, Z:90, META:91, WIN_KEY_RIGHT:92, CONTEXT_MENU:93, NUM_ZERO:96, NUM_ONE:97, NUM_TWO:98, NUM_THREE:99, NUM_FOUR:100, NUM_FIVE:101, NUM_SIX:102, NUM_SEVEN:103, NUM_EIGHT:104, NUM_NINE:105, NUM_MULTIPLY:106, NUM_PLUS:107, NUM_MINUS:109, NUM_PERIOD:110, NUM_DIVISION:111, F1:112, F2:113, F3:114, F4:115, F5:116, F6:117, F7:118, F8:119, F9:120, F10:121, F11:122, F12:123, NUMLOCK:144, SCROLL_LOCK:145, FIRST_MEDIA_KEY:166, LAST_MEDIA_KEY:183, +SEMICOLON:186, DASH:189, EQUALS:187, COMMA:188, PERIOD:190, SLASH:191, APOSTROPHE:192, TILDE:192, SINGLE_QUOTE:222, OPEN_SQUARE_BRACKET:219, BACKSLASH:220, CLOSE_SQUARE_BRACKET:221, WIN_KEY:224, MAC_FF_META:224, WIN_IME:229, PHANTOM:255}; +goog.events.KeyCodes.isTextModifyingKeyEvent = function(e) { + if(e.altKey && !e.ctrlKey || e.metaKey || e.keyCode >= goog.events.KeyCodes.F1 && e.keyCode <= goog.events.KeyCodes.F12) { + return false + } + switch(e.keyCode) { + case goog.events.KeyCodes.ALT: + ; + case goog.events.KeyCodes.CAPS_LOCK: + ; + case goog.events.KeyCodes.CONTEXT_MENU: + ; + case goog.events.KeyCodes.CTRL: + ; + case goog.events.KeyCodes.DOWN: + ; + case goog.events.KeyCodes.END: + ; + case goog.events.KeyCodes.ESC: + ; + case goog.events.KeyCodes.HOME: + ; + case goog.events.KeyCodes.INSERT: + ; + case goog.events.KeyCodes.LEFT: + ; + case goog.events.KeyCodes.MAC_FF_META: + ; + case goog.events.KeyCodes.META: + ; + case goog.events.KeyCodes.NUMLOCK: + ; + case goog.events.KeyCodes.NUM_CENTER: + ; + case goog.events.KeyCodes.PAGE_DOWN: + ; + case goog.events.KeyCodes.PAGE_UP: + ; + case goog.events.KeyCodes.PAUSE: + ; + case goog.events.KeyCodes.PHANTOM: + ; + case goog.events.KeyCodes.PRINT_SCREEN: + ; + case goog.events.KeyCodes.RIGHT: + ; + case goog.events.KeyCodes.SCROLL_LOCK: + ; + case goog.events.KeyCodes.SHIFT: + ; + case goog.events.KeyCodes.UP: + ; + case goog.events.KeyCodes.WIN_KEY: + ; + case goog.events.KeyCodes.WIN_KEY_RIGHT: + return false; + case goog.events.KeyCodes.WIN_KEY_FF_LINUX: + return!goog.userAgent.GECKO; + default: + return e.keyCode < goog.events.KeyCodes.FIRST_MEDIA_KEY || e.keyCode > goog.events.KeyCodes.LAST_MEDIA_KEY + } +}; +goog.events.KeyCodes.firesKeyPressEvent = function(keyCode, opt_heldKeyCode, opt_shiftKey, opt_ctrlKey, opt_altKey) { + if(!goog.userAgent.IE && !(goog.userAgent.WEBKIT && goog.userAgent.isVersionOrHigher("525"))) { + return true + } + if(goog.userAgent.MAC && opt_altKey) { + return goog.events.KeyCodes.isCharacterKey(keyCode) + } + if(opt_altKey && !opt_ctrlKey) { + return false + } + if(!opt_shiftKey && (opt_heldKeyCode == goog.events.KeyCodes.CTRL || opt_heldKeyCode == goog.events.KeyCodes.ALT || goog.userAgent.MAC && opt_heldKeyCode == goog.events.KeyCodes.META)) { + return false + } + if(goog.userAgent.WEBKIT && opt_ctrlKey && opt_shiftKey) { + switch(keyCode) { + case goog.events.KeyCodes.BACKSLASH: + ; + case goog.events.KeyCodes.OPEN_SQUARE_BRACKET: + ; + case goog.events.KeyCodes.CLOSE_SQUARE_BRACKET: + ; + case goog.events.KeyCodes.TILDE: + ; + case goog.events.KeyCodes.SEMICOLON: + ; + case goog.events.KeyCodes.DASH: + ; + case goog.events.KeyCodes.EQUALS: + ; + case goog.events.KeyCodes.COMMA: + ; + case goog.events.KeyCodes.PERIOD: + ; + case goog.events.KeyCodes.SLASH: + ; + case goog.events.KeyCodes.APOSTROPHE: + ; + case goog.events.KeyCodes.SINGLE_QUOTE: + return false + } + } + if(goog.userAgent.IE && opt_ctrlKey && opt_heldKeyCode == keyCode) { + return false + } + switch(keyCode) { + case goog.events.KeyCodes.ENTER: + return!(goog.userAgent.IE && goog.userAgent.isDocumentModeOrHigher(9)); + case goog.events.KeyCodes.ESC: + return!goog.userAgent.WEBKIT + } + return goog.events.KeyCodes.isCharacterKey(keyCode) +}; +goog.events.KeyCodes.isCharacterKey = function(keyCode) { + if(keyCode >= goog.events.KeyCodes.ZERO && keyCode <= goog.events.KeyCodes.NINE) { + return true + } + if(keyCode >= goog.events.KeyCodes.NUM_ZERO && keyCode <= goog.events.KeyCodes.NUM_MULTIPLY) { + return true + } + if(keyCode >= goog.events.KeyCodes.A && keyCode <= goog.events.KeyCodes.Z) { + return true + } + if(goog.userAgent.WEBKIT && keyCode == 0) { + return true + } + switch(keyCode) { + case goog.events.KeyCodes.SPACE: + ; + case goog.events.KeyCodes.QUESTION_MARK: + ; + case goog.events.KeyCodes.NUM_PLUS: + ; + case goog.events.KeyCodes.NUM_MINUS: + ; + case goog.events.KeyCodes.NUM_PERIOD: + ; + case goog.events.KeyCodes.NUM_DIVISION: + ; + case goog.events.KeyCodes.SEMICOLON: + ; + case goog.events.KeyCodes.FF_SEMICOLON: + ; + case goog.events.KeyCodes.DASH: + ; + case goog.events.KeyCodes.EQUALS: + ; + case goog.events.KeyCodes.FF_EQUALS: + ; + case goog.events.KeyCodes.COMMA: + ; + case goog.events.KeyCodes.PERIOD: + ; + case goog.events.KeyCodes.SLASH: + ; + case goog.events.KeyCodes.APOSTROPHE: + ; + case goog.events.KeyCodes.SINGLE_QUOTE: + ; + case goog.events.KeyCodes.OPEN_SQUARE_BRACKET: + ; + case goog.events.KeyCodes.BACKSLASH: + ; + case goog.events.KeyCodes.CLOSE_SQUARE_BRACKET: + return true; + default: + return false + } +}; +goog.events.KeyCodes.normalizeGeckoKeyCode = function(keyCode) { + switch(keyCode) { + case goog.events.KeyCodes.FF_EQUALS: + return goog.events.KeyCodes.EQUALS; + case goog.events.KeyCodes.FF_SEMICOLON: + return goog.events.KeyCodes.SEMICOLON; + case goog.events.KeyCodes.MAC_FF_META: + return goog.events.KeyCodes.META; + case goog.events.KeyCodes.WIN_KEY_FF_LINUX: + return goog.events.KeyCodes.WIN_KEY; + default: + return keyCode + } +}; +goog.provide("goog.events.KeyEvent"); +goog.provide("goog.events.KeyHandler"); +goog.provide("goog.events.KeyHandler.EventType"); +goog.require("goog.events"); +goog.require("goog.events.BrowserEvent"); +goog.require("goog.events.EventTarget"); +goog.require("goog.events.EventType"); +goog.require("goog.events.KeyCodes"); +goog.require("goog.userAgent"); +goog.events.KeyHandler = function(opt_element, opt_capture) { + goog.events.EventTarget.call(this); + if(opt_element) { + this.attach(opt_element, opt_capture) + } +}; +goog.inherits(goog.events.KeyHandler, goog.events.EventTarget); +goog.events.KeyHandler.prototype.element_ = null; +goog.events.KeyHandler.prototype.keyPressKey_ = null; +goog.events.KeyHandler.prototype.keyDownKey_ = null; +goog.events.KeyHandler.prototype.keyUpKey_ = null; +goog.events.KeyHandler.prototype.lastKey_ = -1; +goog.events.KeyHandler.prototype.keyCode_ = -1; +goog.events.KeyHandler.prototype.altKey_ = false; +goog.events.KeyHandler.EventType = {KEY:"key"}; +goog.events.KeyHandler.safariKey_ = {3:goog.events.KeyCodes.ENTER, 12:goog.events.KeyCodes.NUMLOCK, 63232:goog.events.KeyCodes.UP, 63233:goog.events.KeyCodes.DOWN, 63234:goog.events.KeyCodes.LEFT, 63235:goog.events.KeyCodes.RIGHT, 63236:goog.events.KeyCodes.F1, 63237:goog.events.KeyCodes.F2, 63238:goog.events.KeyCodes.F3, 63239:goog.events.KeyCodes.F4, 63240:goog.events.KeyCodes.F5, 63241:goog.events.KeyCodes.F6, 63242:goog.events.KeyCodes.F7, 63243:goog.events.KeyCodes.F8, 63244:goog.events.KeyCodes.F9, +63245:goog.events.KeyCodes.F10, 63246:goog.events.KeyCodes.F11, 63247:goog.events.KeyCodes.F12, 63248:goog.events.KeyCodes.PRINT_SCREEN, 63272:goog.events.KeyCodes.DELETE, 63273:goog.events.KeyCodes.HOME, 63275:goog.events.KeyCodes.END, 63276:goog.events.KeyCodes.PAGE_UP, 63277:goog.events.KeyCodes.PAGE_DOWN, 63289:goog.events.KeyCodes.NUMLOCK, 63302:goog.events.KeyCodes.INSERT}; +goog.events.KeyHandler.keyIdentifier_ = {"Up":goog.events.KeyCodes.UP, "Down":goog.events.KeyCodes.DOWN, "Left":goog.events.KeyCodes.LEFT, "Right":goog.events.KeyCodes.RIGHT, "Enter":goog.events.KeyCodes.ENTER, "F1":goog.events.KeyCodes.F1, "F2":goog.events.KeyCodes.F2, "F3":goog.events.KeyCodes.F3, "F4":goog.events.KeyCodes.F4, "F5":goog.events.KeyCodes.F5, "F6":goog.events.KeyCodes.F6, "F7":goog.events.KeyCodes.F7, "F8":goog.events.KeyCodes.F8, "F9":goog.events.KeyCodes.F9, "F10":goog.events.KeyCodes.F10, +"F11":goog.events.KeyCodes.F11, "F12":goog.events.KeyCodes.F12, "U+007F":goog.events.KeyCodes.DELETE, "Home":goog.events.KeyCodes.HOME, "End":goog.events.KeyCodes.END, "PageUp":goog.events.KeyCodes.PAGE_UP, "PageDown":goog.events.KeyCodes.PAGE_DOWN, "Insert":goog.events.KeyCodes.INSERT}; +goog.events.KeyHandler.USES_KEYDOWN_ = goog.userAgent.IE || goog.userAgent.WEBKIT && goog.userAgent.isVersionOrHigher("525"); +goog.events.KeyHandler.SAVE_ALT_FOR_KEYPRESS_ = goog.userAgent.MAC && goog.userAgent.GECKO; +goog.events.KeyHandler.prototype.handleKeyDown_ = function(e) { + if(goog.userAgent.WEBKIT) { + if(this.lastKey_ == goog.events.KeyCodes.CTRL && !e.ctrlKey || this.lastKey_ == goog.events.KeyCodes.ALT && !e.altKey || goog.userAgent.MAC && this.lastKey_ == goog.events.KeyCodes.META && !e.metaKey) { + this.lastKey_ = -1; + this.keyCode_ = -1 + } + } + if(this.lastKey_ == -1) { + if(e.ctrlKey && e.keyCode != goog.events.KeyCodes.CTRL) { + this.lastKey_ = goog.events.KeyCodes.CTRL + }else { + if(e.altKey && e.keyCode != goog.events.KeyCodes.ALT) { + this.lastKey_ = goog.events.KeyCodes.ALT + }else { + if(e.metaKey && e.keyCode != goog.events.KeyCodes.META) { + this.lastKey_ = goog.events.KeyCodes.META + } + } + } + } + if(goog.events.KeyHandler.USES_KEYDOWN_ && !goog.events.KeyCodes.firesKeyPressEvent(e.keyCode, this.lastKey_, e.shiftKey, e.ctrlKey, e.altKey)) { + this.handleEvent(e) + }else { + this.keyCode_ = goog.userAgent.GECKO ? goog.events.KeyCodes.normalizeGeckoKeyCode(e.keyCode) : e.keyCode; + if(goog.events.KeyHandler.SAVE_ALT_FOR_KEYPRESS_) { + this.altKey_ = e.altKey + } + } +}; +goog.events.KeyHandler.prototype.resetState = function() { + this.lastKey_ = -1; + this.keyCode_ = -1 +}; +goog.events.KeyHandler.prototype.handleKeyup_ = function(e) { + this.resetState(); + this.altKey_ = e.altKey +}; +goog.events.KeyHandler.prototype.handleEvent = function(e) { + var be = e.getBrowserEvent(); + var keyCode, charCode; + var altKey = be.altKey; + if(goog.userAgent.IE && e.type == goog.events.EventType.KEYPRESS) { + keyCode = this.keyCode_; + charCode = keyCode != goog.events.KeyCodes.ENTER && keyCode != goog.events.KeyCodes.ESC ? be.keyCode : 0 + }else { + if(goog.userAgent.WEBKIT && e.type == goog.events.EventType.KEYPRESS) { + keyCode = this.keyCode_; + charCode = be.charCode >= 0 && be.charCode < 63232 && goog.events.KeyCodes.isCharacterKey(keyCode) ? be.charCode : 0 + }else { + if(goog.userAgent.OPERA) { + keyCode = this.keyCode_; + charCode = goog.events.KeyCodes.isCharacterKey(keyCode) ? be.keyCode : 0 + }else { + keyCode = be.keyCode || this.keyCode_; + charCode = be.charCode || 0; + if(goog.events.KeyHandler.SAVE_ALT_FOR_KEYPRESS_) { + altKey = this.altKey_ + } + if(goog.userAgent.MAC && charCode == goog.events.KeyCodes.QUESTION_MARK && keyCode == goog.events.KeyCodes.WIN_KEY) { + keyCode = goog.events.KeyCodes.SLASH + } + } + } + } + var key = keyCode; + var keyIdentifier = be.keyIdentifier; + if(keyCode) { + if(keyCode >= 63232 && keyCode in goog.events.KeyHandler.safariKey_) { + key = goog.events.KeyHandler.safariKey_[keyCode] + }else { + if(keyCode == 25 && e.shiftKey) { + key = 9 + } + } + }else { + if(keyIdentifier && keyIdentifier in goog.events.KeyHandler.keyIdentifier_) { + key = goog.events.KeyHandler.keyIdentifier_[keyIdentifier] + } + } + var repeat = key == this.lastKey_; + this.lastKey_ = key; + var event = new goog.events.KeyEvent(key, charCode, repeat, be); + event.altKey = altKey; + this.dispatchEvent(event) +}; +goog.events.KeyHandler.prototype.getElement = function() { + return this.element_ +}; +goog.events.KeyHandler.prototype.attach = function(element, opt_capture) { + if(this.keyUpKey_) { + this.detach() + } + this.element_ = element; + this.keyPressKey_ = goog.events.listen(this.element_, goog.events.EventType.KEYPRESS, this, opt_capture); + this.keyDownKey_ = goog.events.listen(this.element_, goog.events.EventType.KEYDOWN, this.handleKeyDown_, opt_capture, this); + this.keyUpKey_ = goog.events.listen(this.element_, goog.events.EventType.KEYUP, this.handleKeyup_, opt_capture, this) +}; +goog.events.KeyHandler.prototype.detach = function() { + if(this.keyPressKey_) { + goog.events.unlistenByKey(this.keyPressKey_); + goog.events.unlistenByKey(this.keyDownKey_); + goog.events.unlistenByKey(this.keyUpKey_); + this.keyPressKey_ = null; + this.keyDownKey_ = null; + this.keyUpKey_ = null + } + this.element_ = null; + this.lastKey_ = -1; + this.keyCode_ = -1 +}; +goog.events.KeyHandler.prototype.disposeInternal = function() { + goog.events.KeyHandler.superClass_.disposeInternal.call(this); + this.detach() +}; +goog.events.KeyEvent = function(keyCode, charCode, repeat, browserEvent) { + goog.events.BrowserEvent.call(this, browserEvent); + this.type = goog.events.KeyHandler.EventType.KEY; + this.keyCode = keyCode; + this.charCode = charCode; + this.repeat = repeat +}; +goog.inherits(goog.events.KeyEvent, goog.events.BrowserEvent); +goog.provide("goog.dom.vendor"); +goog.require("goog.userAgent"); +goog.dom.vendor.getVendorJsPrefix = function() { + if(goog.userAgent.WEBKIT) { + return"Webkit" + }else { + if(goog.userAgent.GECKO) { + return"Moz" + }else { + if(goog.userAgent.IE) { + return"ms" + }else { + if(goog.userAgent.OPERA) { + return"O" + } + } + } + } + return null +}; +goog.dom.vendor.getVendorPrefix = function() { + if(goog.userAgent.WEBKIT) { + return"-webkit" + }else { + if(goog.userAgent.GECKO) { + return"-moz" + }else { + if(goog.userAgent.IE) { + return"-ms" + }else { + if(goog.userAgent.OPERA) { + return"-o" + } + } + } + } + return null +}; +goog.provide("goog.math.Box"); +goog.require("goog.math.Coordinate"); +goog.math.Box = function(top, right, bottom, left) { + this.top = top; + this.right = right; + this.bottom = bottom; + this.left = left +}; +goog.math.Box.boundingBox = function(var_args) { + var box = new goog.math.Box(arguments[0].y, arguments[0].x, arguments[0].y, arguments[0].x); + for(var i = 1;i < arguments.length;i++) { + var coord = arguments[i]; + box.top = Math.min(box.top, coord.y); + box.right = Math.max(box.right, coord.x); + box.bottom = Math.max(box.bottom, coord.y); + box.left = Math.min(box.left, coord.x) + } + return box +}; +goog.math.Box.prototype.clone = function() { + return new goog.math.Box(this.top, this.right, this.bottom, this.left) +}; +if(goog.DEBUG) { + goog.math.Box.prototype.toString = function() { + return"(" + this.top + "t, " + this.right + "r, " + this.bottom + "b, " + this.left + "l)" + } +} +goog.math.Box.prototype.contains = function(other) { + return goog.math.Box.contains(this, other) +}; +goog.math.Box.prototype.expand = function(top, opt_right, opt_bottom, opt_left) { + if(goog.isObject(top)) { + this.top -= top.top; + this.right += top.right; + this.bottom += top.bottom; + this.left -= top.left + }else { + this.top -= top; + this.right += opt_right; + this.bottom += opt_bottom; + this.left -= opt_left + } + return this +}; +goog.math.Box.prototype.expandToInclude = function(box) { + this.left = Math.min(this.left, box.left); + this.top = Math.min(this.top, box.top); + this.right = Math.max(this.right, box.right); + this.bottom = Math.max(this.bottom, box.bottom) +}; +goog.math.Box.equals = function(a, b) { + if(a == b) { + return true + } + if(!a || !b) { + return false + } + return a.top == b.top && a.right == b.right && a.bottom == b.bottom && a.left == b.left +}; +goog.math.Box.contains = function(box, other) { + if(!box || !other) { + return false + } + if(other instanceof goog.math.Box) { + return other.left >= box.left && other.right <= box.right && other.top >= box.top && other.bottom <= box.bottom + } + return other.x >= box.left && other.x <= box.right && other.y >= box.top && other.y <= box.bottom +}; +goog.math.Box.relativePositionX = function(box, coord) { + if(coord.x < box.left) { + return coord.x - box.left + }else { + if(coord.x > box.right) { + return coord.x - box.right + } + } + return 0 +}; +goog.math.Box.relativePositionY = function(box, coord) { + if(coord.y < box.top) { + return coord.y - box.top + }else { + if(coord.y > box.bottom) { + return coord.y - box.bottom + } + } + return 0 +}; +goog.math.Box.distance = function(box, coord) { + var x = goog.math.Box.relativePositionX(box, coord); + var y = goog.math.Box.relativePositionY(box, coord); + return Math.sqrt(x * x + y * y) +}; +goog.math.Box.intersects = function(a, b) { + return a.left <= b.right && b.left <= a.right && a.top <= b.bottom && b.top <= a.bottom +}; +goog.math.Box.intersectsWithPadding = function(a, b, padding) { + return a.left <= b.right + padding && b.left <= a.right + padding && a.top <= b.bottom + padding && b.top <= a.bottom + padding +}; +goog.math.Box.prototype.ceil = function() { + this.top = Math.ceil(this.top); + this.right = Math.ceil(this.right); + this.bottom = Math.ceil(this.bottom); + this.left = Math.ceil(this.left); + return this +}; +goog.math.Box.prototype.floor = function() { + this.top = Math.floor(this.top); + this.right = Math.floor(this.right); + this.bottom = Math.floor(this.bottom); + this.left = Math.floor(this.left); + return this +}; +goog.math.Box.prototype.round = function() { + this.top = Math.round(this.top); + this.right = Math.round(this.right); + this.bottom = Math.round(this.bottom); + this.left = Math.round(this.left); + return this +}; +goog.math.Box.prototype.translate = function(tx, opt_ty) { + if(tx instanceof goog.math.Coordinate) { + this.left += tx.x; + this.right += tx.x; + this.top += tx.y; + this.bottom += tx.y + }else { + this.left += tx; + this.right += tx; + if(goog.isNumber(opt_ty)) { + this.top += opt_ty; + this.bottom += opt_ty + } + } + return this +}; +goog.math.Box.prototype.scale = function(sx, opt_sy) { + var sy = goog.isNumber(opt_sy) ? opt_sy : sx; + this.left *= sx; + this.right *= sx; + this.top *= sy; + this.bottom *= sy; + return this +}; +goog.provide("goog.math.Rect"); +goog.require("goog.math.Box"); +goog.require("goog.math.Coordinate"); +goog.require("goog.math.Size"); +goog.math.Rect = function(x, y, w, h) { + this.left = x; + this.top = y; + this.width = w; + this.height = h +}; +goog.math.Rect.prototype.clone = function() { + return new goog.math.Rect(this.left, this.top, this.width, this.height) +}; +goog.math.Rect.prototype.toBox = function() { + var right = this.left + this.width; + var bottom = this.top + this.height; + return new goog.math.Box(this.top, right, bottom, this.left) +}; +goog.math.Rect.createFromBox = function(box) { + return new goog.math.Rect(box.left, box.top, box.right - box.left, box.bottom - box.top) +}; +if(goog.DEBUG) { + goog.math.Rect.prototype.toString = function() { + return"(" + this.left + ", " + this.top + " - " + this.width + "w x " + this.height + "h)" + } +} +goog.math.Rect.equals = function(a, b) { + if(a == b) { + return true + } + if(!a || !b) { + return false + } + return a.left == b.left && a.width == b.width && a.top == b.top && a.height == b.height +}; +goog.math.Rect.prototype.intersection = function(rect) { + var x0 = Math.max(this.left, rect.left); + var x1 = Math.min(this.left + this.width, rect.left + rect.width); + if(x0 <= x1) { + var y0 = Math.max(this.top, rect.top); + var y1 = Math.min(this.top + this.height, rect.top + rect.height); + if(y0 <= y1) { + this.left = x0; + this.top = y0; + this.width = x1 - x0; + this.height = y1 - y0; + return true + } + } + return false +}; +goog.math.Rect.intersection = function(a, b) { + var x0 = Math.max(a.left, b.left); + var x1 = Math.min(a.left + a.width, b.left + b.width); + if(x0 <= x1) { + var y0 = Math.max(a.top, b.top); + var y1 = Math.min(a.top + a.height, b.top + b.height); + if(y0 <= y1) { + return new goog.math.Rect(x0, y0, x1 - x0, y1 - y0) + } + } + return null +}; +goog.math.Rect.intersects = function(a, b) { + return a.left <= b.left + b.width && b.left <= a.left + a.width && a.top <= b.top + b.height && b.top <= a.top + a.height +}; +goog.math.Rect.prototype.intersects = function(rect) { + return goog.math.Rect.intersects(this, rect) +}; +goog.math.Rect.difference = function(a, b) { + var intersection = goog.math.Rect.intersection(a, b); + if(!intersection || !intersection.height || !intersection.width) { + return[a.clone()] + } + var result = []; + var top = a.top; + var height = a.height; + var ar = a.left + a.width; + var ab = a.top + a.height; + var br = b.left + b.width; + var bb = b.top + b.height; + if(b.top > a.top) { + result.push(new goog.math.Rect(a.left, a.top, a.width, b.top - a.top)); + top = b.top; + height -= b.top - a.top + } + if(bb < ab) { + result.push(new goog.math.Rect(a.left, bb, a.width, ab - bb)); + height = bb - top + } + if(b.left > a.left) { + result.push(new goog.math.Rect(a.left, top, b.left - a.left, height)) + } + if(br < ar) { + result.push(new goog.math.Rect(br, top, ar - br, height)) + } + return result +}; +goog.math.Rect.prototype.difference = function(rect) { + return goog.math.Rect.difference(this, rect) +}; +goog.math.Rect.prototype.boundingRect = function(rect) { + var right = Math.max(this.left + this.width, rect.left + rect.width); + var bottom = Math.max(this.top + this.height, rect.top + rect.height); + this.left = Math.min(this.left, rect.left); + this.top = Math.min(this.top, rect.top); + this.width = right - this.left; + this.height = bottom - this.top +}; +goog.math.Rect.boundingRect = function(a, b) { + if(!a || !b) { + return null + } + var clone = a.clone(); + clone.boundingRect(b); + return clone +}; +goog.math.Rect.prototype.contains = function(another) { + if(another instanceof goog.math.Rect) { + return this.left <= another.left && this.left + this.width >= another.left + another.width && this.top <= another.top && this.top + this.height >= another.top + another.height + }else { + return another.x >= this.left && another.x <= this.left + this.width && another.y >= this.top && another.y <= this.top + this.height + } +}; +goog.math.Rect.prototype.squaredDistance = function(point) { + var dx = point.x < this.left ? this.left - point.x : Math.max(point.x - (this.left + this.width), 0); + var dy = point.y < this.top ? this.top - point.y : Math.max(point.y - (this.top + this.height), 0); + return dx * dx + dy * dy +}; +goog.math.Rect.prototype.distance = function(point) { + return Math.sqrt(this.squaredDistance(point)) +}; +goog.math.Rect.prototype.getSize = function() { + return new goog.math.Size(this.width, this.height) +}; +goog.math.Rect.prototype.getTopLeft = function() { + return new goog.math.Coordinate(this.left, this.top) +}; +goog.math.Rect.prototype.getCenter = function() { + return new goog.math.Coordinate(this.left + this.width / 2, this.top + this.height / 2) +}; +goog.math.Rect.prototype.getBottomRight = function() { + return new goog.math.Coordinate(this.left + this.width, this.top + this.height) +}; +goog.math.Rect.prototype.ceil = function() { + this.left = Math.ceil(this.left); + this.top = Math.ceil(this.top); + this.width = Math.ceil(this.width); + this.height = Math.ceil(this.height); + return this +}; +goog.math.Rect.prototype.floor = function() { + this.left = Math.floor(this.left); + this.top = Math.floor(this.top); + this.width = Math.floor(this.width); + this.height = Math.floor(this.height); + return this +}; +goog.math.Rect.prototype.round = function() { + this.left = Math.round(this.left); + this.top = Math.round(this.top); + this.width = Math.round(this.width); + this.height = Math.round(this.height); + return this +}; +goog.math.Rect.prototype.translate = function(tx, opt_ty) { + if(tx instanceof goog.math.Coordinate) { + this.left += tx.x; + this.top += tx.y + }else { + this.left += tx; + if(goog.isNumber(opt_ty)) { + this.top += opt_ty + } + } + return this +}; +goog.math.Rect.prototype.scale = function(sx, opt_sy) { + var sy = goog.isNumber(opt_sy) ? opt_sy : sx; + this.left *= sx; + this.width *= sx; + this.top *= sy; + this.height *= sy; + return this +}; +goog.provide("goog.style"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.require("goog.dom"); +goog.require("goog.dom.NodeType"); +goog.require("goog.dom.vendor"); +goog.require("goog.math.Box"); +goog.require("goog.math.Coordinate"); +goog.require("goog.math.Rect"); +goog.require("goog.math.Size"); +goog.require("goog.object"); +goog.require("goog.string"); +goog.require("goog.userAgent"); +goog.define("goog.style.GET_BOUNDING_CLIENT_RECT_ALWAYS_EXISTS", false); +goog.style.setStyle = function(element, style, opt_value) { + if(goog.isString(style)) { + goog.style.setStyle_(element, opt_value, style) + }else { + goog.object.forEach(style, goog.partial(goog.style.setStyle_, element)) + } +}; +goog.style.setStyle_ = function(element, value, style) { + var propertyName = goog.style.getVendorJsStyleName_(element, style); + if(propertyName) { + element.style[propertyName] = value + } +}; +goog.style.getVendorJsStyleName_ = function(element, style) { + var camelStyle = goog.string.toCamelCase(style); + if(element.style[camelStyle] === undefined) { + var prefixedStyle = goog.dom.vendor.getVendorJsPrefix() + goog.string.toTitleCase(style); + if(element.style[prefixedStyle] !== undefined) { + return prefixedStyle + } + } + return camelStyle +}; +goog.style.getVendorStyleName_ = function(element, style) { + var camelStyle = goog.string.toCamelCase(style); + if(element.style[camelStyle] === undefined) { + var prefixedStyle = goog.dom.vendor.getVendorJsPrefix() + goog.string.toTitleCase(style); + if(element.style[prefixedStyle] !== undefined) { + return goog.dom.vendor.getVendorPrefix() + "-" + style + } + } + return style +}; +goog.style.getStyle = function(element, property) { + var styleValue = element.style[goog.string.toCamelCase(property)]; + if(typeof styleValue !== "undefined") { + return styleValue + } + return element.style[goog.style.getVendorJsStyleName_(element, property)] || "" +}; +goog.style.getComputedStyle = function(element, property) { + var doc = goog.dom.getOwnerDocument(element); + if(doc.defaultView && doc.defaultView.getComputedStyle) { + var styles = doc.defaultView.getComputedStyle(element, null); + if(styles) { + return styles[property] || styles.getPropertyValue(property) || "" + } + } + return"" +}; +goog.style.getCascadedStyle = function(element, style) { + return element.currentStyle ? element.currentStyle[style] : null +}; +goog.style.getStyle_ = function(element, style) { + return goog.style.getComputedStyle(element, style) || goog.style.getCascadedStyle(element, style) || element.style && element.style[style] +}; +goog.style.getComputedPosition = function(element) { + return goog.style.getStyle_(element, "position") +}; +goog.style.getBackgroundColor = function(element) { + return goog.style.getStyle_(element, "backgroundColor") +}; +goog.style.getComputedOverflowX = function(element) { + return goog.style.getStyle_(element, "overflowX") +}; +goog.style.getComputedOverflowY = function(element) { + return goog.style.getStyle_(element, "overflowY") +}; +goog.style.getComputedZIndex = function(element) { + return goog.style.getStyle_(element, "zIndex") +}; +goog.style.getComputedTextAlign = function(element) { + return goog.style.getStyle_(element, "textAlign") +}; +goog.style.getComputedCursor = function(element) { + return goog.style.getStyle_(element, "cursor") +}; +goog.style.setPosition = function(el, arg1, opt_arg2) { + var x, y; + var buggyGeckoSubPixelPos = goog.userAgent.GECKO && (goog.userAgent.MAC || goog.userAgent.X11) && goog.userAgent.isVersionOrHigher("1.9"); + if(arg1 instanceof goog.math.Coordinate) { + x = arg1.x; + y = arg1.y + }else { + x = arg1; + y = opt_arg2 + } + el.style.left = goog.style.getPixelStyleValue_((x), buggyGeckoSubPixelPos); + el.style.top = goog.style.getPixelStyleValue_((y), buggyGeckoSubPixelPos) +}; +goog.style.getPosition = function(element) { + return new goog.math.Coordinate(element.offsetLeft, element.offsetTop) +}; +goog.style.getClientViewportElement = function(opt_node) { + var doc; + if(opt_node) { + doc = goog.dom.getOwnerDocument(opt_node) + }else { + doc = goog.dom.getDocument() + } + if(goog.userAgent.IE && !goog.userAgent.isDocumentModeOrHigher(9) && !goog.dom.getDomHelper(doc).isCss1CompatMode()) { + return doc.body + } + return doc.documentElement +}; +goog.style.getViewportPageOffset = function(doc) { + var body = doc.body; + var documentElement = doc.documentElement; + var scrollLeft = body.scrollLeft || documentElement.scrollLeft; + var scrollTop = body.scrollTop || documentElement.scrollTop; + return new goog.math.Coordinate(scrollLeft, scrollTop) +}; +goog.style.getBoundingClientRect_ = function(el) { + var rect; + try { + rect = el.getBoundingClientRect() + }catch(e) { + return{"left":0, "top":0, "right":0, "bottom":0} + } + if(goog.userAgent.IE) { + var doc = el.ownerDocument; + rect.left -= doc.documentElement.clientLeft + doc.body.clientLeft; + rect.top -= doc.documentElement.clientTop + doc.body.clientTop + } + return(rect) +}; +goog.style.getOffsetParent = function(element) { + if(goog.userAgent.IE && !goog.userAgent.isDocumentModeOrHigher(8)) { + return element.offsetParent + } + var doc = goog.dom.getOwnerDocument(element); + var positionStyle = goog.style.getStyle_(element, "position"); + var skipStatic = positionStyle == "fixed" || positionStyle == "absolute"; + for(var parent = element.parentNode;parent && parent != doc;parent = parent.parentNode) { + positionStyle = goog.style.getStyle_((parent), "position"); + skipStatic = skipStatic && positionStyle == "static" && parent != doc.documentElement && parent != doc.body; + if(!skipStatic && (parent.scrollWidth > parent.clientWidth || parent.scrollHeight > parent.clientHeight || positionStyle == "fixed" || positionStyle == "absolute" || positionStyle == "relative")) { + return(parent) + } + } + return null +}; +goog.style.getVisibleRectForElement = function(element) { + var visibleRect = new goog.math.Box(0, Infinity, Infinity, 0); + var dom = goog.dom.getDomHelper(element); + var body = dom.getDocument().body; + var documentElement = dom.getDocument().documentElement; + var scrollEl = dom.getDocumentScrollElement(); + for(var el = element;el = goog.style.getOffsetParent(el);) { + if((!goog.userAgent.IE || el.clientWidth != 0) && (!goog.userAgent.WEBKIT || el.clientHeight != 0 || el != body) && el != body && el != documentElement && goog.style.getStyle_(el, "overflow") != "visible") { + var pos = goog.style.getPageOffset(el); + var client = goog.style.getClientLeftTop(el); + pos.x += client.x; + pos.y += client.y; + visibleRect.top = Math.max(visibleRect.top, pos.y); + visibleRect.right = Math.min(visibleRect.right, pos.x + el.clientWidth); + visibleRect.bottom = Math.min(visibleRect.bottom, pos.y + el.clientHeight); + visibleRect.left = Math.max(visibleRect.left, pos.x) + } + } + var scrollX = scrollEl.scrollLeft, scrollY = scrollEl.scrollTop; + visibleRect.left = Math.max(visibleRect.left, scrollX); + visibleRect.top = Math.max(visibleRect.top, scrollY); + var winSize = dom.getViewportSize(); + visibleRect.right = Math.min(visibleRect.right, scrollX + winSize.width); + visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + winSize.height); + return visibleRect.top >= 0 && visibleRect.left >= 0 && visibleRect.bottom > visibleRect.top && visibleRect.right > visibleRect.left ? visibleRect : null +}; +goog.style.getContainerOffsetToScrollInto = function(element, container, opt_center) { + var elementPos = goog.style.getPageOffset(element); + var containerPos = goog.style.getPageOffset(container); + var containerBorder = goog.style.getBorderBox(container); + var relX = elementPos.x - containerPos.x - containerBorder.left; + var relY = elementPos.y - containerPos.y - containerBorder.top; + var spaceX = container.clientWidth - element.offsetWidth; + var spaceY = container.clientHeight - element.offsetHeight; + var scrollLeft = container.scrollLeft; + var scrollTop = container.scrollTop; + if(opt_center) { + scrollLeft += relX - spaceX / 2; + scrollTop += relY - spaceY / 2 + }else { + scrollLeft += Math.min(relX, Math.max(relX - spaceX, 0)); + scrollTop += Math.min(relY, Math.max(relY - spaceY, 0)) + } + return new goog.math.Coordinate(scrollLeft, scrollTop) +}; +goog.style.scrollIntoContainerView = function(element, container, opt_center) { + var offset = goog.style.getContainerOffsetToScrollInto(element, container, opt_center); + container.scrollLeft = offset.x; + container.scrollTop = offset.y +}; +goog.style.getClientLeftTop = function(el) { + if(goog.userAgent.GECKO && !goog.userAgent.isVersionOrHigher("1.9")) { + var left = parseFloat(goog.style.getComputedStyle(el, "borderLeftWidth")); + if(goog.style.isRightToLeft(el)) { + var scrollbarWidth = el.offsetWidth - el.clientWidth - left - parseFloat(goog.style.getComputedStyle(el, "borderRightWidth")); + left += scrollbarWidth + } + return new goog.math.Coordinate(left, parseFloat(goog.style.getComputedStyle(el, "borderTopWidth"))) + } + return new goog.math.Coordinate(el.clientLeft, el.clientTop) +}; +goog.style.getPageOffset = function(el) { + var box, doc = goog.dom.getOwnerDocument(el); + var positionStyle = goog.style.getStyle_(el, "position"); + goog.asserts.assertObject(el, "Parameter is required"); + var BUGGY_GECKO_BOX_OBJECT = !goog.style.GET_BOUNDING_CLIENT_RECT_ALWAYS_EXISTS && goog.userAgent.GECKO && doc.getBoxObjectFor && !el.getBoundingClientRect && positionStyle == "absolute" && (box = doc.getBoxObjectFor(el)) && (box.screenX < 0 || box.screenY < 0); + var pos = new goog.math.Coordinate(0, 0); + var viewportElement = goog.style.getClientViewportElement(doc); + if(el == viewportElement) { + return pos + } + if(goog.style.GET_BOUNDING_CLIENT_RECT_ALWAYS_EXISTS || el.getBoundingClientRect) { + box = goog.style.getBoundingClientRect_(el); + var scrollCoord = goog.dom.getDomHelper(doc).getDocumentScroll(); + pos.x = box.left + scrollCoord.x; + pos.y = box.top + scrollCoord.y + }else { + if(doc.getBoxObjectFor && !BUGGY_GECKO_BOX_OBJECT) { + box = doc.getBoxObjectFor(el); + var vpBox = doc.getBoxObjectFor(viewportElement); + pos.x = box.screenX - vpBox.screenX; + pos.y = box.screenY - vpBox.screenY + }else { + var parent = el; + do { + pos.x += parent.offsetLeft; + pos.y += parent.offsetTop; + if(parent != el) { + pos.x += parent.clientLeft || 0; + pos.y += parent.clientTop || 0 + } + if(goog.userAgent.WEBKIT && goog.style.getComputedPosition(parent) == "fixed") { + pos.x += doc.body.scrollLeft; + pos.y += doc.body.scrollTop; + break + } + parent = parent.offsetParent + }while(parent && parent != el); + if(goog.userAgent.OPERA || goog.userAgent.WEBKIT && positionStyle == "absolute") { + pos.y -= doc.body.offsetTop + } + for(parent = el;(parent = goog.style.getOffsetParent(parent)) && parent != doc.body && parent != viewportElement;) { + pos.x -= parent.scrollLeft; + if(!goog.userAgent.OPERA || parent.tagName != "TR") { + pos.y -= parent.scrollTop + } + } + } + } + return pos +}; +goog.style.getPageOffsetLeft = function(el) { + return goog.style.getPageOffset(el).x +}; +goog.style.getPageOffsetTop = function(el) { + return goog.style.getPageOffset(el).y +}; +goog.style.getFramedPageOffset = function(el, relativeWin) { + var position = new goog.math.Coordinate(0, 0); + var currentWin = goog.dom.getWindow(goog.dom.getOwnerDocument(el)); + var currentEl = el; + do { + var offset = currentWin == relativeWin ? goog.style.getPageOffset(currentEl) : goog.style.getClientPositionForElement_(goog.asserts.assert(currentEl)); + position.x += offset.x; + position.y += offset.y + }while(currentWin && currentWin != relativeWin && (currentEl = currentWin.frameElement) && (currentWin = currentWin.parent)); + return position +}; +goog.style.translateRectForAnotherFrame = function(rect, origBase, newBase) { + if(origBase.getDocument() != newBase.getDocument()) { + var body = origBase.getDocument().body; + var pos = goog.style.getFramedPageOffset(body, newBase.getWindow()); + pos = goog.math.Coordinate.difference(pos, goog.style.getPageOffset(body)); + if(goog.userAgent.IE && !origBase.isCss1CompatMode()) { + pos = goog.math.Coordinate.difference(pos, origBase.getDocumentScroll()) + } + rect.left += pos.x; + rect.top += pos.y + } +}; +goog.style.getRelativePosition = function(a, b) { + var ap = goog.style.getClientPosition(a); + var bp = goog.style.getClientPosition(b); + return new goog.math.Coordinate(ap.x - bp.x, ap.y - bp.y) +}; +goog.style.getClientPositionForElement_ = function(el) { + var pos; + if(goog.style.GET_BOUNDING_CLIENT_RECT_ALWAYS_EXISTS || el.getBoundingClientRect) { + var box = goog.style.getBoundingClientRect_(el); + pos = new goog.math.Coordinate(box.left, box.top) + }else { + var scrollCoord = goog.dom.getDomHelper(el).getDocumentScroll(); + var pageCoord = goog.style.getPageOffset(el); + pos = new goog.math.Coordinate(pageCoord.x - scrollCoord.x, pageCoord.y - scrollCoord.y) + } + if(goog.userAgent.GECKO && !goog.userAgent.isVersionOrHigher(12)) { + return goog.math.Coordinate.sum(pos, goog.style.getCssTranslation(el)) + }else { + return pos + } +}; +goog.style.getClientPosition = function(el) { + goog.asserts.assert(el); + if(el.nodeType == goog.dom.NodeType.ELEMENT) { + return goog.style.getClientPositionForElement_((el)) + }else { + var isAbstractedEvent = goog.isFunction(el.getBrowserEvent); + var targetEvent = el; + if(el.targetTouches) { + targetEvent = el.targetTouches[0] + }else { + if(isAbstractedEvent && el.getBrowserEvent().targetTouches) { + targetEvent = el.getBrowserEvent().targetTouches[0] + } + } + return new goog.math.Coordinate(targetEvent.clientX, targetEvent.clientY) + } +}; +goog.style.setPageOffset = function(el, x, opt_y) { + var cur = goog.style.getPageOffset(el); + if(x instanceof goog.math.Coordinate) { + opt_y = x.y; + x = x.x + } + var dx = x - cur.x; + var dy = opt_y - cur.y; + goog.style.setPosition(el, el.offsetLeft + dx, el.offsetTop + dy) +}; +goog.style.setSize = function(element, w, opt_h) { + var h; + if(w instanceof goog.math.Size) { + h = w.height; + w = w.width + }else { + if(opt_h == undefined) { + throw Error("missing height argument"); + } + h = opt_h + } + goog.style.setWidth(element, (w)); + goog.style.setHeight(element, (h)) +}; +goog.style.getPixelStyleValue_ = function(value, round) { + if(typeof value == "number") { + value = (round ? Math.round(value) : value) + "px" + } + return value +}; +goog.style.setHeight = function(element, height) { + element.style.height = goog.style.getPixelStyleValue_(height, true) +}; +goog.style.setWidth = function(element, width) { + element.style.width = goog.style.getPixelStyleValue_(width, true) +}; +goog.style.getSize = function(element) { + return goog.style.evaluateWithTemporaryDisplay_(goog.style.getSizeWithDisplay_, (element)) +}; +goog.style.evaluateWithTemporaryDisplay_ = function(fn, element) { + if(goog.style.getStyle_(element, "display") != "none") { + return fn(element) + } + var style = element.style; + var originalDisplay = style.display; + var originalVisibility = style.visibility; + var originalPosition = style.position; + style.visibility = "hidden"; + style.position = "absolute"; + style.display = "inline"; + var retVal = fn(element); + style.display = originalDisplay; + style.position = originalPosition; + style.visibility = originalVisibility; + return retVal +}; +goog.style.getSizeWithDisplay_ = function(element) { + var offsetWidth = element.offsetWidth; + var offsetHeight = element.offsetHeight; + var webkitOffsetsZero = goog.userAgent.WEBKIT && !offsetWidth && !offsetHeight; + if((!goog.isDef(offsetWidth) || webkitOffsetsZero) && element.getBoundingClientRect) { + var clientRect = goog.style.getBoundingClientRect_(element); + return new goog.math.Size(clientRect.right - clientRect.left, clientRect.bottom - clientRect.top) + } + return new goog.math.Size(offsetWidth, offsetHeight) +}; +goog.style.getTransformedSize = function(element) { + if(!element.getBoundingClientRect) { + return null + } + var clientRect = goog.style.evaluateWithTemporaryDisplay_(goog.style.getBoundingClientRect_, element); + return new goog.math.Size(clientRect.right - clientRect.left, clientRect.bottom - clientRect.top) +}; +goog.style.getBounds = function(element) { + var o = goog.style.getPageOffset(element); + var s = goog.style.getSize(element); + return new goog.math.Rect(o.x, o.y, s.width, s.height) +}; +goog.style.toCamelCase = function(selector) { + return goog.string.toCamelCase(String(selector)) +}; +goog.style.toSelectorCase = function(selector) { + return goog.string.toSelectorCase(selector) +}; +goog.style.getOpacity = function(el) { + var style = el.style; + var result = ""; + if("opacity" in style) { + result = style.opacity + }else { + if("MozOpacity" in style) { + result = style.MozOpacity + }else { + if("filter" in style) { + var match = style.filter.match(/alpha\(opacity=([\d.]+)\)/); + if(match) { + result = String(match[1] / 100) + } + } + } + } + return result == "" ? result : Number(result) +}; +goog.style.setOpacity = function(el, alpha) { + var style = el.style; + if("opacity" in style) { + style.opacity = alpha + }else { + if("MozOpacity" in style) { + style.MozOpacity = alpha + }else { + if("filter" in style) { + if(alpha === "") { + style.filter = "" + }else { + style.filter = "alpha(opacity\x3d" + alpha * 100 + ")" + } + } + } + } +}; +goog.style.setTransparentBackgroundImage = function(el, src) { + var style = el.style; + if(goog.userAgent.IE && !goog.userAgent.isVersionOrHigher("8")) { + style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(" + 'src\x3d"' + src + '", sizingMethod\x3d"crop")' + }else { + style.backgroundImage = "url(" + src + ")"; + style.backgroundPosition = "top left"; + style.backgroundRepeat = "no-repeat" + } +}; +goog.style.clearTransparentBackgroundImage = function(el) { + var style = el.style; + if("filter" in style) { + style.filter = "" + }else { + style.backgroundImage = "none" + } +}; +goog.style.showElement = function(el, display) { + goog.style.setElementShown(el, display) +}; +goog.style.setElementShown = function(el, isShown) { + el.style.display = isShown ? "" : "none" +}; +goog.style.isElementShown = function(el) { + return el.style.display != "none" +}; +goog.style.installStyles = function(stylesString, opt_node) { + var dh = goog.dom.getDomHelper(opt_node); + var styleSheet = null; + if(goog.userAgent.IE) { + styleSheet = dh.getDocument().createStyleSheet(); + goog.style.setStyles(styleSheet, stylesString) + }else { + var head = dh.getElementsByTagNameAndClass("head")[0]; + if(!head) { + var body = dh.getElementsByTagNameAndClass("body")[0]; + head = dh.createDom("head"); + body.parentNode.insertBefore(head, body) + } + styleSheet = dh.createDom("style"); + goog.style.setStyles(styleSheet, stylesString); + dh.appendChild(head, styleSheet) + } + return styleSheet +}; +goog.style.uninstallStyles = function(styleSheet) { + var node = styleSheet.ownerNode || styleSheet.owningElement || (styleSheet); + goog.dom.removeNode(node) +}; +goog.style.setStyles = function(element, stylesString) { + if(goog.userAgent.IE) { + element.cssText = stylesString + }else { + element.innerHTML = stylesString + } +}; +goog.style.setPreWrap = function(el) { + var style = el.style; + if(goog.userAgent.IE && !goog.userAgent.isVersionOrHigher("8")) { + style.whiteSpace = "pre"; + style.wordWrap = "break-word" + }else { + if(goog.userAgent.GECKO) { + style.whiteSpace = "-moz-pre-wrap" + }else { + style.whiteSpace = "pre-wrap" + } + } +}; +goog.style.setInlineBlock = function(el) { + var style = el.style; + style.position = "relative"; + if(goog.userAgent.IE && !goog.userAgent.isVersionOrHigher("8")) { + style.zoom = "1"; + style.display = "inline" + }else { + if(goog.userAgent.GECKO) { + style.display = goog.userAgent.isVersionOrHigher("1.9a") ? "inline-block" : "-moz-inline-box" + }else { + style.display = "inline-block" + } + } +}; +goog.style.isRightToLeft = function(el) { + return"rtl" == goog.style.getStyle_(el, "direction") +}; +goog.style.unselectableStyle_ = goog.userAgent.GECKO ? "MozUserSelect" : goog.userAgent.WEBKIT ? "WebkitUserSelect" : null; +goog.style.isUnselectable = function(el) { + if(goog.style.unselectableStyle_) { + return el.style[goog.style.unselectableStyle_].toLowerCase() == "none" + }else { + if(goog.userAgent.IE || goog.userAgent.OPERA) { + return el.getAttribute("unselectable") == "on" + } + } + return false +}; +goog.style.setUnselectable = function(el, unselectable, opt_noRecurse) { + var descendants = !opt_noRecurse ? el.getElementsByTagName("*") : null; + var name = goog.style.unselectableStyle_; + if(name) { + var value = unselectable ? "none" : ""; + el.style[name] = value; + if(descendants) { + for(var i = 0, descendant;descendant = descendants[i];i++) { + descendant.style[name] = value + } + } + }else { + if(goog.userAgent.IE || goog.userAgent.OPERA) { + var value = unselectable ? "on" : ""; + el.setAttribute("unselectable", value); + if(descendants) { + for(var i = 0, descendant;descendant = descendants[i];i++) { + descendant.setAttribute("unselectable", value) + } + } + } + } +}; +goog.style.getBorderBoxSize = function(element) { + return new goog.math.Size(element.offsetWidth, element.offsetHeight) +}; +goog.style.setBorderBoxSize = function(element, size) { + var doc = goog.dom.getOwnerDocument(element); + var isCss1CompatMode = goog.dom.getDomHelper(doc).isCss1CompatMode(); + if(goog.userAgent.IE && (!isCss1CompatMode || !goog.userAgent.isVersionOrHigher("8"))) { + var style = element.style; + if(isCss1CompatMode) { + var paddingBox = goog.style.getPaddingBox(element); + var borderBox = goog.style.getBorderBox(element); + style.pixelWidth = size.width - borderBox.left - paddingBox.left - paddingBox.right - borderBox.right; + style.pixelHeight = size.height - borderBox.top - paddingBox.top - paddingBox.bottom - borderBox.bottom + }else { + style.pixelWidth = size.width; + style.pixelHeight = size.height + } + }else { + goog.style.setBoxSizingSize_(element, size, "border-box") + } +}; +goog.style.getContentBoxSize = function(element) { + var doc = goog.dom.getOwnerDocument(element); + var ieCurrentStyle = goog.userAgent.IE && element.currentStyle; + if(ieCurrentStyle && goog.dom.getDomHelper(doc).isCss1CompatMode() && ieCurrentStyle.width != "auto" && ieCurrentStyle.height != "auto" && !ieCurrentStyle.boxSizing) { + var width = goog.style.getIePixelValue_(element, ieCurrentStyle.width, "width", "pixelWidth"); + var height = goog.style.getIePixelValue_(element, ieCurrentStyle.height, "height", "pixelHeight"); + return new goog.math.Size(width, height) + }else { + var borderBoxSize = goog.style.getBorderBoxSize(element); + var paddingBox = goog.style.getPaddingBox(element); + var borderBox = goog.style.getBorderBox(element); + return new goog.math.Size(borderBoxSize.width - borderBox.left - paddingBox.left - paddingBox.right - borderBox.right, borderBoxSize.height - borderBox.top - paddingBox.top - paddingBox.bottom - borderBox.bottom) + } +}; +goog.style.setContentBoxSize = function(element, size) { + var doc = goog.dom.getOwnerDocument(element); + var isCss1CompatMode = goog.dom.getDomHelper(doc).isCss1CompatMode(); + if(goog.userAgent.IE && (!isCss1CompatMode || !goog.userAgent.isVersionOrHigher("8"))) { + var style = element.style; + if(isCss1CompatMode) { + style.pixelWidth = size.width; + style.pixelHeight = size.height + }else { + var paddingBox = goog.style.getPaddingBox(element); + var borderBox = goog.style.getBorderBox(element); + style.pixelWidth = size.width + borderBox.left + paddingBox.left + paddingBox.right + borderBox.right; + style.pixelHeight = size.height + borderBox.top + paddingBox.top + paddingBox.bottom + borderBox.bottom + } + }else { + goog.style.setBoxSizingSize_(element, size, "content-box") + } +}; +goog.style.setBoxSizingSize_ = function(element, size, boxSizing) { + var style = element.style; + if(goog.userAgent.GECKO) { + style.MozBoxSizing = boxSizing + }else { + if(goog.userAgent.WEBKIT) { + style.WebkitBoxSizing = boxSizing + }else { + style.boxSizing = boxSizing + } + } + style.width = Math.max(size.width, 0) + "px"; + style.height = Math.max(size.height, 0) + "px" +}; +goog.style.getIePixelValue_ = function(element, value, name, pixelName) { + if(/^\d+px?$/.test(value)) { + return parseInt(value, 10) + }else { + var oldStyleValue = element.style[name]; + var oldRuntimeValue = element.runtimeStyle[name]; + element.runtimeStyle[name] = element.currentStyle[name]; + element.style[name] = value; + var pixelValue = element.style[pixelName]; + element.style[name] = oldStyleValue; + element.runtimeStyle[name] = oldRuntimeValue; + return pixelValue + } +}; +goog.style.getIePixelDistance_ = function(element, propName) { + var value = goog.style.getCascadedStyle(element, propName); + return value ? goog.style.getIePixelValue_(element, value, "left", "pixelLeft") : 0 +}; +goog.style.getBox_ = function(element, stylePrefix) { + if(goog.userAgent.IE) { + var left = goog.style.getIePixelDistance_(element, stylePrefix + "Left"); + var right = goog.style.getIePixelDistance_(element, stylePrefix + "Right"); + var top = goog.style.getIePixelDistance_(element, stylePrefix + "Top"); + var bottom = goog.style.getIePixelDistance_(element, stylePrefix + "Bottom"); + return new goog.math.Box(top, right, bottom, left) + }else { + var left = (goog.style.getComputedStyle(element, stylePrefix + "Left")); + var right = (goog.style.getComputedStyle(element, stylePrefix + "Right")); + var top = (goog.style.getComputedStyle(element, stylePrefix + "Top")); + var bottom = (goog.style.getComputedStyle(element, stylePrefix + "Bottom")); + return new goog.math.Box(parseFloat(top), parseFloat(right), parseFloat(bottom), parseFloat(left)) + } +}; +goog.style.getPaddingBox = function(element) { + return goog.style.getBox_(element, "padding") +}; +goog.style.getMarginBox = function(element) { + return goog.style.getBox_(element, "margin") +}; +goog.style.ieBorderWidthKeywords_ = {"thin":2, "medium":4, "thick":6}; +goog.style.getIePixelBorder_ = function(element, prop) { + if(goog.style.getCascadedStyle(element, prop + "Style") == "none") { + return 0 + } + var width = goog.style.getCascadedStyle(element, prop + "Width"); + if(width in goog.style.ieBorderWidthKeywords_) { + return goog.style.ieBorderWidthKeywords_[width] + } + return goog.style.getIePixelValue_(element, width, "left", "pixelLeft") +}; +goog.style.getBorderBox = function(element) { + if(goog.userAgent.IE) { + var left = goog.style.getIePixelBorder_(element, "borderLeft"); + var right = goog.style.getIePixelBorder_(element, "borderRight"); + var top = goog.style.getIePixelBorder_(element, "borderTop"); + var bottom = goog.style.getIePixelBorder_(element, "borderBottom"); + return new goog.math.Box(top, right, bottom, left) + }else { + var left = (goog.style.getComputedStyle(element, "borderLeftWidth")); + var right = (goog.style.getComputedStyle(element, "borderRightWidth")); + var top = (goog.style.getComputedStyle(element, "borderTopWidth")); + var bottom = (goog.style.getComputedStyle(element, "borderBottomWidth")); + return new goog.math.Box(parseFloat(top), parseFloat(right), parseFloat(bottom), parseFloat(left)) + } +}; +goog.style.getFontFamily = function(el) { + var doc = goog.dom.getOwnerDocument(el); + var font = ""; + if(doc.body.createTextRange) { + var range = doc.body.createTextRange(); + range.moveToElementText(el); + try { + font = range.queryCommandValue("FontName") + }catch(e) { + font = "" + } + } + if(!font) { + font = goog.style.getStyle_(el, "fontFamily") + } + var fontsArray = font.split(","); + if(fontsArray.length > 1) { + font = fontsArray[0] + } + return goog.string.stripQuotes(font, "\"'") +}; +goog.style.lengthUnitRegex_ = /[^\d]+$/; +goog.style.getLengthUnits = function(value) { + var units = value.match(goog.style.lengthUnitRegex_); + return units && units[0] || null +}; +goog.style.ABSOLUTE_CSS_LENGTH_UNITS_ = {"cm":1, "in":1, "mm":1, "pc":1, "pt":1}; +goog.style.CONVERTIBLE_RELATIVE_CSS_UNITS_ = {"em":1, "ex":1}; +goog.style.getFontSize = function(el) { + var fontSize = goog.style.getStyle_(el, "fontSize"); + var sizeUnits = goog.style.getLengthUnits(fontSize); + if(fontSize && "px" == sizeUnits) { + return parseInt(fontSize, 10) + } + if(goog.userAgent.IE) { + if(sizeUnits in goog.style.ABSOLUTE_CSS_LENGTH_UNITS_) { + return goog.style.getIePixelValue_(el, fontSize, "left", "pixelLeft") + }else { + if(el.parentNode && el.parentNode.nodeType == goog.dom.NodeType.ELEMENT && sizeUnits in goog.style.CONVERTIBLE_RELATIVE_CSS_UNITS_) { + var parentElement = (el.parentNode); + var parentSize = goog.style.getStyle_(parentElement, "fontSize"); + return goog.style.getIePixelValue_(parentElement, fontSize == parentSize ? "1em" : fontSize, "left", "pixelLeft") + } + } + } + var sizeElement = goog.dom.createDom("span", {"style":"visibility:hidden;position:absolute;" + "line-height:0;padding:0;margin:0;border:0;height:1em;"}); + goog.dom.appendChild(el, sizeElement); + fontSize = sizeElement.offsetHeight; + goog.dom.removeNode(sizeElement); + return fontSize +}; +goog.style.parseStyleAttribute = function(value) { + var result = {}; + goog.array.forEach(value.split(/\s*;\s*/), function(pair) { + var keyValue = pair.split(/\s*:\s*/); + if(keyValue.length == 2) { + result[goog.string.toCamelCase(keyValue[0].toLowerCase())] = keyValue[1] + } + }); + return result +}; +goog.style.toStyleAttribute = function(obj) { + var buffer = []; + goog.object.forEach(obj, function(value, key) { + buffer.push(goog.string.toSelectorCase(key), ":", value, ";") + }); + return buffer.join("") +}; +goog.style.setFloat = function(el, value) { + el.style[goog.userAgent.IE ? "styleFloat" : "cssFloat"] = value +}; +goog.style.getFloat = function(el) { + return el.style[goog.userAgent.IE ? "styleFloat" : "cssFloat"] || "" +}; +goog.style.getScrollbarWidth = function(opt_className) { + var outerDiv = goog.dom.createElement("div"); + if(opt_className) { + outerDiv.className = opt_className + } + outerDiv.style.cssText = "overflow:auto;" + "position:absolute;top:0;width:100px;height:100px"; + var innerDiv = goog.dom.createElement("div"); + goog.style.setSize(innerDiv, "200px", "200px"); + outerDiv.appendChild(innerDiv); + goog.dom.appendChild(goog.dom.getDocument().body, outerDiv); + var width = outerDiv.offsetWidth - outerDiv.clientWidth; + goog.dom.removeNode(outerDiv); + return width +}; +goog.style.MATRIX_TRANSLATION_REGEX_ = new RegExp("matrix\\([0-9\\.\\-]+, [0-9\\.\\-]+, " + "[0-9\\.\\-]+, [0-9\\.\\-]+, " + "([0-9\\.\\-]+)p?x?, ([0-9\\.\\-]+)p?x?\\)"); +goog.style.getCssTranslation = function(element) { + var property; + if(goog.userAgent.IE) { + property = "-ms-transform" + }else { + if(goog.userAgent.WEBKIT) { + property = "-webkit-transform" + }else { + if(goog.userAgent.OPERA) { + property = "-o-transform" + }else { + if(goog.userAgent.GECKO) { + property = "-moz-transform" + } + } + } + } + var transform; + if(property) { + transform = goog.style.getStyle_(element, property) + } + if(!transform) { + transform = goog.style.getStyle_(element, "transform") + } + if(!transform) { + return new goog.math.Coordinate(0, 0) + } + var matches = transform.match(goog.style.MATRIX_TRANSLATION_REGEX_); + if(!matches) { + return new goog.math.Coordinate(0, 0) + } + return new goog.math.Coordinate(parseFloat(matches[1]), parseFloat(matches[2])) +}; +goog.provide("goog.events.MouseWheelEvent"); +goog.provide("goog.events.MouseWheelHandler"); +goog.provide("goog.events.MouseWheelHandler.EventType"); +goog.require("goog.dom"); +goog.require("goog.events"); +goog.require("goog.events.BrowserEvent"); +goog.require("goog.events.EventTarget"); +goog.require("goog.math"); +goog.require("goog.style"); +goog.require("goog.userAgent"); +goog.events.MouseWheelHandler = function(element, opt_capture) { + goog.events.EventTarget.call(this); + this.element_ = element; + var rtlElement = goog.dom.isElement(this.element_) ? (this.element_) : this.element_ ? (this.element_).body : null; + this.isRtl_ = !!rtlElement && goog.style.isRightToLeft(rtlElement); + var type = goog.userAgent.GECKO ? "DOMMouseScroll" : "mousewheel"; + this.listenKey_ = goog.events.listen(this.element_, type, this, opt_capture) +}; +goog.inherits(goog.events.MouseWheelHandler, goog.events.EventTarget); +goog.events.MouseWheelHandler.EventType = {MOUSEWHEEL:"mousewheel"}; +goog.events.MouseWheelHandler.prototype.maxDeltaX_; +goog.events.MouseWheelHandler.prototype.maxDeltaY_; +goog.events.MouseWheelHandler.prototype.setMaxDeltaX = function(maxDeltaX) { + this.maxDeltaX_ = maxDeltaX +}; +goog.events.MouseWheelHandler.prototype.setMaxDeltaY = function(maxDeltaY) { + this.maxDeltaY_ = maxDeltaY +}; +goog.events.MouseWheelHandler.prototype.handleEvent = function(e) { + var deltaX = 0; + var deltaY = 0; + var detail = 0; + var be = e.getBrowserEvent(); + if(be.type == "mousewheel") { + var wheelDeltaScaleFactor = 1; + if(goog.userAgent.IE || goog.userAgent.WEBKIT && (goog.userAgent.WINDOWS || goog.userAgent.isVersionOrHigher("532.0"))) { + wheelDeltaScaleFactor = 40 + } + detail = goog.events.MouseWheelHandler.smartScale_(-be.wheelDelta, wheelDeltaScaleFactor); + if(goog.isDef(be.wheelDeltaX)) { + deltaX = goog.events.MouseWheelHandler.smartScale_(-be.wheelDeltaX, wheelDeltaScaleFactor); + deltaY = goog.events.MouseWheelHandler.smartScale_(-be.wheelDeltaY, wheelDeltaScaleFactor) + }else { + deltaY = detail + } + }else { + detail = be.detail; + if(detail > 100) { + detail = 3 + }else { + if(detail < -100) { + detail = -3 + } + } + if(goog.isDef(be.axis) && be.axis === be.HORIZONTAL_AXIS) { + deltaX = detail + }else { + deltaY = detail + } + } + if(goog.isNumber(this.maxDeltaX_)) { + deltaX = goog.math.clamp(deltaX, -this.maxDeltaX_, this.maxDeltaX_) + } + if(goog.isNumber(this.maxDeltaY_)) { + deltaY = goog.math.clamp(deltaY, -this.maxDeltaY_, this.maxDeltaY_) + } + if(this.isRtl_) { + deltaX = -deltaX + } + var newEvent = new goog.events.MouseWheelEvent(detail, be, deltaX, deltaY); + this.dispatchEvent(newEvent) +}; +goog.events.MouseWheelHandler.smartScale_ = function(mouseWheelDelta, scaleFactor) { + if(goog.userAgent.WEBKIT && (goog.userAgent.MAC || goog.userAgent.LINUX) && mouseWheelDelta % scaleFactor != 0) { + return mouseWheelDelta + }else { + return mouseWheelDelta / scaleFactor + } +}; +goog.events.MouseWheelHandler.prototype.disposeInternal = function() { + goog.events.MouseWheelHandler.superClass_.disposeInternal.call(this); + goog.events.unlistenByKey(this.listenKey_); + this.listenKey_ = null +}; +goog.events.MouseWheelEvent = function(detail, browserEvent, deltaX, deltaY) { + goog.events.BrowserEvent.call(this, browserEvent); + this.type = goog.events.MouseWheelHandler.EventType.MOUSEWHEEL; + this.detail = detail; + this.deltaX = deltaX; + this.deltaY = deltaY +}; +goog.inherits(goog.events.MouseWheelEvent, goog.events.BrowserEvent); +goog.provide("goog.log"); +goog.provide("goog.log.Level"); +goog.provide("goog.log.LogRecord"); +goog.provide("goog.log.Logger"); +goog.require("goog.debug"); +goog.require("goog.debug.LogRecord"); +goog.require("goog.debug.Logger"); +goog.define("goog.log.ENABLED", goog.debug.LOGGING_ENABLED); +goog.log.Logger = goog.debug.Logger; +goog.log.Level = goog.debug.Logger.Level; +goog.log.LogRecord = goog.debug.LogRecord; +goog.log.getLogger = function(name, opt_level) { + if(goog.log.ENABLED) { + var logger = goog.debug.Logger.getLogger(name); + if(opt_level && logger) { + logger.setLevel(opt_level) + } + return logger + }else { + return null + } +}; +goog.log.addHandler = function(logger, handler) { + if(goog.log.ENABLED && logger) { + logger.addHandler(handler) + } +}; +goog.log.removeHandler = function(logger, handler) { + if(goog.log.ENABLED && logger) { + return logger.removeHandler(handler) + }else { + return false + } +}; +goog.log.log = function(logger, level, msg, opt_exception) { + if(goog.log.ENABLED && logger) { + logger.log(level, msg, opt_exception) + } +}; +goog.log.error = function(logger, msg, opt_exception) { + if(goog.log.ENABLED && logger) { + logger.severe(msg, opt_exception) + } +}; +goog.log.warning = function(logger, msg, opt_exception) { + if(goog.log.ENABLED && logger) { + logger.warning(msg, opt_exception) + } +}; +goog.log.info = function(logger, msg, opt_exception) { + if(goog.log.ENABLED && logger) { + logger.info(msg, opt_exception) + } +}; +goog.log.fine = function(logger, msg, opt_exception) { + if(goog.log.ENABLED && logger) { + logger.fine(msg, opt_exception) + } +}; +goog.provide("ol.MapEvent"); +goog.provide("ol.MapEventType"); +goog.require("goog.events.Event"); +goog.require("ol.FrameState"); +ol.MapEventType = {POSTRENDER:"postrender", MOVEEND:"moveend"}; +ol.MapEvent = function(type, map, opt_frameState) { + goog.base(this, type); + this.map = map; + this.frameState = goog.isDef(opt_frameState) ? opt_frameState : null +}; +goog.inherits(ol.MapEvent, goog.events.Event); +goog.provide("ol.Pixel"); +ol.Pixel; +goog.provide("ol.MapBrowserEvent"); +goog.provide("ol.MapBrowserEvent.EventType"); +goog.provide("ol.MapBrowserEventHandler"); +goog.require("goog.array"); +goog.require("goog.events"); +goog.require("goog.events.BrowserEvent"); +goog.require("goog.events.EventTarget"); +goog.require("goog.events.EventType"); +goog.require("goog.style"); +goog.require("ol.BrowserFeature"); +goog.require("ol.Coordinate"); +goog.require("ol.FrameState"); +goog.require("ol.MapEvent"); +goog.require("ol.Pixel"); +ol.MapBrowserEvent = function(type, map, browserEvent, opt_frameState) { + goog.base(this, type, map, opt_frameState); + this.browserEvent = browserEvent; + this.coordinate_ = null; + this.pixel_ = null +}; +goog.inherits(ol.MapBrowserEvent, ol.MapEvent); +ol.MapBrowserEvent.prototype.getCoordinate = function() { + if(goog.isNull(this.coordinate_)) { + this.coordinate_ = this.map.getCoordinateFromPixel(this.getPixel()) + } + return this.coordinate_ +}; +ol.MapBrowserEvent.prototype.getPixel = function() { + if(goog.isNull(this.pixel_)) { + var eventPosition = goog.style.getRelativePosition(this.browserEvent, this.map.getViewport()); + this.pixel_ = [eventPosition.x, eventPosition.y] + } + return this.pixel_ +}; +ol.MapBrowserEvent.prototype.isMouseActionButton = function() { + return ol.BrowserFeature.HAS_TOUCH || this.browserEvent.isMouseActionButton() +}; +ol.MapBrowserEvent.prototype.preventDefault = function() { + goog.base(this, "preventDefault"); + this.browserEvent.preventDefault() +}; +ol.MapBrowserEvent.prototype.stopPropagation = function() { + goog.base(this, "stopPropagation"); + this.browserEvent.stopPropagation() +}; +ol.MapBrowserEventHandler = function(map) { + goog.base(this); + this.map_ = map; + this.dragged_ = false; + this.timestamp_ = null; + this.listenerKeys_ = null; + this.dragListenerKeys_ = null; + this.touchListenerKeys_ = null; + this.down_ = null; + var element = this.map_.getViewport(); + this.listenerKeys_ = [goog.events.listen(element, [goog.events.EventType.CLICK, goog.events.EventType.DBLCLICK], this.click_, false, this), goog.events.listen(element, goog.events.EventType.MOUSEDOWN, this.handleMouseDown_, false, this), goog.events.listen(element, goog.events.EventType.MOUSEMOVE, this.relayEvent_, false, this), goog.events.listen(element, goog.events.EventType.MOUSEOUT, this.relayEvent_, false, this), goog.events.listen(element, goog.events.EventType.CONTEXTMENU, this.relayEvent_, + false, this)]; + this.touchListenerKeys_ = [goog.events.listen(element, [goog.events.EventType.TOUCHSTART, goog.events.EventType.MSPOINTERDOWN], this.handleTouchStart_, false, this), goog.events.listen(goog.global.document, [goog.events.EventType.TOUCHMOVE, goog.events.EventType.MSPOINTERMOVE], this.handleTouchMove_, false, this), goog.events.listen(goog.global.document, [goog.events.EventType.TOUCHEND, goog.events.EventType.MSPOINTERUP], this.handleTouchEnd_, false, this)] +}; +goog.inherits(ol.MapBrowserEventHandler, goog.events.EventTarget); +ol.MapBrowserEventHandler.prototype.click_ = function(browserEvent) { + if(!this.dragged_) { + var newEvent; + var type = browserEvent.type; + if(this.timestamp_ === 0 || type == goog.events.EventType.DBLCLICK) { + newEvent = new ol.MapBrowserEvent(ol.MapBrowserEvent.EventType.DBLCLICK, this.map_, browserEvent); + this.dispatchEvent(newEvent) + }else { + newEvent = new ol.MapBrowserEvent(ol.MapBrowserEvent.EventType.CLICK, this.map_, browserEvent); + this.dispatchEvent(newEvent) + } + } +}; +ol.MapBrowserEventHandler.prototype.handleMouseUp_ = function(browserEvent) { + if(this.down_) { + this.down_ = null; + goog.array.forEach(this.dragListenerKeys_, goog.events.unlistenByKey); + this.dragListenerKeys_ = null; + if(this.dragged_) { + var newEvent = new ol.MapBrowserEvent(ol.MapBrowserEvent.EventType.DRAGEND, this.map_, browserEvent); + this.dispatchEvent(newEvent) + } + } +}; +ol.MapBrowserEventHandler.prototype.handleMouseDown_ = function(browserEvent) { + var newEvent = new ol.MapBrowserEvent(ol.MapBrowserEvent.EventType.DOWN, this.map_, browserEvent); + this.dispatchEvent(newEvent); + if(!this.down_) { + this.down_ = browserEvent; + this.dragged_ = false; + this.dragListenerKeys_ = [goog.events.listen(goog.global.document, goog.events.EventType.MOUSEMOVE, this.handleMouseMove_, false, this), goog.events.listen(goog.global.document, goog.events.EventType.MOUSEUP, this.handleMouseUp_, false, this)]; + browserEvent.preventDefault() + } +}; +ol.MapBrowserEventHandler.prototype.handleMouseMove_ = function(browserEvent) { + var newEvent; + if(!this.dragged_) { + this.dragged_ = true; + newEvent = new ol.MapBrowserEvent(ol.MapBrowserEvent.EventType.DRAGSTART, this.map_, this.down_); + this.dispatchEvent(newEvent) + } + newEvent = new ol.MapBrowserEvent(ol.MapBrowserEvent.EventType.DRAG, this.map_, browserEvent); + this.dispatchEvent(newEvent) +}; +ol.MapBrowserEventHandler.prototype.relayEvent_ = function(browserEvent) { + this.dispatchEvent(new ol.MapBrowserEvent(browserEvent.type, this.map_, browserEvent)) +}; +ol.MapBrowserEventHandler.prototype.handleTouchStart_ = function(browserEvent) { + browserEvent.preventDefault(); + this.down_ = browserEvent; + this.dragged_ = false; + var newEvent = new ol.MapBrowserEvent(ol.MapBrowserEvent.EventType.TOUCHSTART, this.map_, browserEvent); + this.dispatchEvent(newEvent) +}; +ol.MapBrowserEventHandler.prototype.handleTouchMove_ = function(browserEvent) { + if(this.down_) { + this.dragged_ = true; + var newEvent = new ol.MapBrowserEvent(ol.MapBrowserEvent.EventType.TOUCHMOVE, this.map_, browserEvent); + this.dispatchEvent(newEvent) + } +}; +ol.MapBrowserEventHandler.prototype.handleTouchEnd_ = function(browserEvent) { + var newEvent = new ol.MapBrowserEvent(ol.MapBrowserEvent.EventType.TOUCHEND, this.map_, browserEvent); + this.dispatchEvent(newEvent); + if(!this.dragged_) { + var now = goog.now(); + if(!this.timestamp_ || now - this.timestamp_ > 250) { + this.timestamp_ = now + }else { + this.timestamp_ = 0 + } + if(!goog.isNull(this.down_)) { + this.click_(this.down_) + } + } + this.down_ = null +}; +ol.MapBrowserEventHandler.prototype.disposeInternal = function() { + if(!goog.isNull(this.listenerKeys_)) { + goog.array.forEach(this.listenerKeys_, goog.events.unlistenByKey); + this.listenerKeys_ = null + } + if(!goog.isNull(this.dragListenerKeys_)) { + goog.array.forEach(this.dragListenerKeys_, goog.events.unlistenByKey); + this.dragListenerKeys_ = null + } + if(!goog.isNull(this.touchListenerKeys_)) { + goog.array.forEach(this.touchListenerKeys_, goog.events.unlistenByKey); + this.touchListenerKeys_ = null + } + goog.base(this, "disposeInternal") +}; +ol.MapBrowserEvent.EventType = {CLICK:goog.events.EventType.CLICK, DBLCLICK:goog.events.EventType.DBLCLICK, DOWN:"down", DRAGSTART:"dragstart", DRAG:"drag", DRAGEND:"dragend", TOUCHSTART:goog.events.EventType.TOUCHSTART, TOUCHMOVE:goog.events.EventType.TOUCHMOVE, TOUCHEND:goog.events.EventType.TOUCHEND, MOUSEMOVE:goog.events.EventType.MOUSEMOVE, MOUSEOUT:goog.events.EventType.MOUSEOUT, CONTEXTMENU:goog.events.EventType.CONTEXTMENU}; +goog.provide("ol.View2D"); +goog.provide("ol.View2DProperty"); +goog.require("goog.asserts"); +goog.require("ol.Constraints"); +goog.require("ol.IView2D"); +goog.require("ol.IView3D"); +goog.require("ol.Projection"); +goog.require("ol.ProjectionUnits"); +goog.require("ol.ResolutionConstraint"); +goog.require("ol.RotationConstraint"); +goog.require("ol.RotationConstraintType"); +goog.require("ol.Size"); +goog.require("ol.View"); +goog.require("ol.coordinate"); +goog.require("ol.extent"); +goog.require("ol.proj"); +ol.View2DProperty = {CENTER:"center", PROJECTION:"projection", RESOLUTION:"resolution", ROTATION:"rotation"}; +ol.View2D = function(opt_options) { + goog.base(this); + var options = opt_options || {}; + var values = {}; + values[ol.View2DProperty.CENTER] = goog.isDef(options.center) ? options.center : null; + values[ol.View2DProperty.PROJECTION] = ol.proj.createProjection(options.projection, "EPSG:3857"); + var resolutionConstraintInfo = ol.View2D.createResolutionConstraint_(options); + this.maxResolution_ = resolutionConstraintInfo.maxResolution; + this.minResolution_ = resolutionConstraintInfo.minResolution; + var resolutionConstraint = resolutionConstraintInfo.constraint; + var rotationConstraint = ol.View2D.createRotationConstraint_(options); + this.constraints_ = new ol.Constraints(resolutionConstraint, rotationConstraint); + if(goog.isDef(options.resolution)) { + values[ol.View2DProperty.RESOLUTION] = options.resolution + }else { + if(goog.isDef(options.zoom)) { + values[ol.View2DProperty.RESOLUTION] = this.constrainResolution(this.maxResolution_, options.zoom) + } + } + values[ol.View2DProperty.ROTATION] = goog.isDef(options.rotation) ? options.rotation : 0; + this.setValues(values) +}; +goog.inherits(ol.View2D, ol.View); +ol.View2D.prototype.calculateCenterRotate = function(rotation, anchor) { + var center; + var currentCenter = this.getCenter(); + if(goog.isDef(currentCenter)) { + center = [currentCenter[0] - anchor[0], currentCenter[1] - anchor[1]]; + ol.coordinate.rotate(center, rotation - this.getRotation()); + ol.coordinate.add(center, anchor) + } + return center +}; +ol.View2D.prototype.calculateCenterZoom = function(resolution, anchor) { + var center; + var currentCenter = this.getCenter(); + var currentResolution = this.getResolution(); + if(goog.isDef(currentCenter) && goog.isDef(currentResolution)) { + var x = anchor[0] - resolution * (anchor[0] - currentCenter[0]) / currentResolution; + var y = anchor[1] - resolution * (anchor[1] - currentCenter[1]) / currentResolution; + center = [x, y] + } + return center +}; +ol.View2D.prototype.constrainResolution = function(resolution, opt_delta, opt_direction) { + var delta = opt_delta || 0; + var direction = opt_direction || 0; + return this.constraints_.resolution(resolution, delta, direction) +}; +ol.View2D.prototype.constrainRotation = function(rotation, opt_delta) { + var delta = opt_delta || 0; + return this.constraints_.rotation(rotation, delta) +}; +ol.View2D.prototype.getCenter = function() { + return(this.get(ol.View2DProperty.CENTER)) +}; +goog.exportProperty(ol.View2D.prototype, "getCenter", ol.View2D.prototype.getCenter); +ol.View2D.prototype.calculateExtent = function(size) { + goog.asserts.assert(this.isDef()); + var center = this.getCenter(); + var resolution = this.getResolution(); + var minX = center[0] - resolution * size[0] / 2; + var maxX = center[0] + resolution * size[0] / 2; + var minY = center[1] - resolution * size[1] / 2; + var maxY = center[1] + resolution * size[1] / 2; + return[minX, maxX, minY, maxY] +}; +ol.View2D.prototype.getProjection = function() { + return(this.get(ol.View2DProperty.PROJECTION)) +}; +goog.exportProperty(ol.View2D.prototype, "getProjection", ol.View2D.prototype.getProjection); +ol.View2D.prototype.getResolution = function() { + return(this.get(ol.View2DProperty.RESOLUTION)) +}; +goog.exportProperty(ol.View2D.prototype, "getResolution", ol.View2D.prototype.getResolution); +ol.View2D.prototype.getResolutionForExtent = function(extent, size) { + var xResolution = (extent[1] - extent[0]) / size[0]; + var yResolution = (extent[3] - extent[2]) / size[1]; + return Math.max(xResolution, yResolution) +}; +ol.View2D.prototype.getResolutionForValueFunction = function(opt_power) { + var power = opt_power || 2; + var maxResolution = this.maxResolution_; + var minResolution = this.minResolution_; + var max = Math.log(maxResolution / minResolution) / Math.log(power); + return function(value) { + var resolution = maxResolution / Math.pow(power, value * max); + goog.asserts.assert(resolution >= minResolution && resolution <= maxResolution); + return resolution + } +}; +ol.View2D.prototype.getRotation = function() { + return(this.get(ol.View2DProperty.ROTATION)) +}; +goog.exportProperty(ol.View2D.prototype, "getRotation", ol.View2D.prototype.getRotation); +ol.View2D.prototype.getValueForResolutionFunction = function(opt_power) { + var power = opt_power || 2; + var maxResolution = this.maxResolution_; + var minResolution = this.minResolution_; + var max = Math.log(maxResolution / minResolution) / Math.log(power); + return function(resolution) { + var value = Math.log(maxResolution / resolution) / Math.log(power) / max; + goog.asserts.assert(value >= 0 && value <= 1); + return value + } +}; +ol.View2D.prototype.getView2D = function() { + return this +}; +ol.View2D.prototype.getView2DState = function() { + goog.asserts.assert(this.isDef()); + var center = (this.getCenter()); + var projection = this.getProjection(); + var resolution = (this.getResolution()); + var rotation = this.getRotation(); + return{center:center.slice(), projection:goog.isDef(projection) ? projection : null, resolution:resolution, rotation:goog.isDef(rotation) ? rotation : 0} +}; +ol.View2D.prototype.getView3D = function() { +}; +ol.View2D.prototype.getZoom = function() { + var zoom; + var resolution = this.getResolution(); + if(goog.isDef(resolution)) { + var res, z = 0; + do { + res = this.constrainResolution(this.maxResolution_, z); + if(res == resolution) { + zoom = z; + break + } + ++z + }while(res > this.minResolution_) + } + return zoom +}; +ol.View2D.prototype.fitExtent = function(extent, size) { + this.setCenter(ol.extent.getCenter(extent)); + var resolution = this.getResolutionForExtent(extent, size); + resolution = this.constrainResolution(resolution, 0, 0); + this.setResolution(resolution) +}; +ol.View2D.prototype.isDef = function() { + return goog.isDefAndNotNull(this.getCenter()) && goog.isDef(this.getResolution()) +}; +ol.View2D.prototype.setCenter = function(center) { + this.set(ol.View2DProperty.CENTER, center) +}; +goog.exportProperty(ol.View2D.prototype, "setCenter", ol.View2D.prototype.setCenter); +ol.View2D.prototype.setProjection = function(projection) { + this.set(ol.View2DProperty.PROJECTION, projection) +}; +goog.exportProperty(ol.View2D.prototype, "setProjection", ol.View2D.prototype.setProjection); +ol.View2D.prototype.setResolution = function(resolution) { + this.set(ol.View2DProperty.RESOLUTION, resolution) +}; +goog.exportProperty(ol.View2D.prototype, "setResolution", ol.View2D.prototype.setResolution); +ol.View2D.prototype.setRotation = function(rotation) { + this.set(ol.View2DProperty.ROTATION, rotation) +}; +goog.exportProperty(ol.View2D.prototype, "setRotation", ol.View2D.prototype.setRotation); +ol.View2D.prototype.setZoom = function(zoom) { + var resolution = this.constrainResolution(this.maxResolution_, zoom, 0); + this.setResolution(resolution) +}; +ol.View2D.createResolutionConstraint_ = function(options) { + var resolutionConstraint; + var maxResolution; + var minResolution; + if(goog.isDef(options.resolutions)) { + var resolutions = options.resolutions; + maxResolution = resolutions[0]; + minResolution = resolutions[resolutions.length - 1]; + resolutionConstraint = ol.ResolutionConstraint.createSnapToResolutions(resolutions) + }else { + maxResolution = options.maxResolution; + if(!goog.isDef(maxResolution)) { + var projection = options.projection; + var projectionExtent = ol.proj.createProjection(projection, "EPSG:3857").getExtent(); + var size = goog.isNull(projectionExtent) ? 360 * ol.METERS_PER_UNIT[ol.ProjectionUnits.DEGREES] / ol.METERS_PER_UNIT[projection.getUnits()] : Math.max(projectionExtent[1] - projectionExtent[0], projectionExtent[3] - projectionExtent[2]); + maxResolution = size / ol.DEFAULT_TILE_SIZE + } + var maxZoom = options.maxZoom; + if(!goog.isDef(maxZoom)) { + maxZoom = 28 + } + var zoomFactor = options.zoomFactor; + if(!goog.isDef(zoomFactor)) { + zoomFactor = 2 + } + minResolution = maxResolution / Math.pow(zoomFactor, maxZoom); + resolutionConstraint = ol.ResolutionConstraint.createSnapToPower(zoomFactor, maxResolution, maxZoom) + } + return{constraint:resolutionConstraint, maxResolution:maxResolution, minResolution:minResolution} +}; +ol.View2D.createRotationConstraint_ = function(options) { + return ol.RotationConstraint.createSnapToZero() +}; +goog.provide("ol.control.Control"); +goog.require("goog.array"); +goog.require("goog.dom"); +goog.require("goog.events"); +goog.require("ol.MapEventType"); +goog.require("ol.Object"); +ol.control.Control = function(options) { + goog.base(this); + this.element = goog.isDef(options.element) ? options.element : null; + this.target_ = options.target; + this.map_ = null; + this.listenerKeys = [] +}; +goog.inherits(ol.control.Control, ol.Object); +ol.control.Control.prototype.disposeInternal = function() { + goog.dom.removeNode(this.element); + goog.base(this, "disposeInternal") +}; +ol.control.Control.prototype.getMap = function() { + return this.map_ +}; +ol.control.Control.prototype.handleMapPostrender = goog.nullFunction; +ol.control.Control.prototype.setMap = function(map) { + if(!goog.isNull(this.map_)) { + goog.dom.removeNode(this.element) + } + if(!goog.array.isEmpty(this.listenerKeys)) { + goog.array.forEach(this.listenerKeys, goog.events.unlistenByKey); + this.listenerKeys.length = 0 + } + this.map_ = map; + if(!goog.isNull(this.map_)) { + var target = goog.isDef(this.target_) ? this.target_ : map.getOverlayContainer(); + goog.dom.appendChild(target, this.element); + if(this.handleMapPostrender !== goog.nullFunction) { + this.listenerKeys.push(goog.events.listen(map, ol.MapEventType.POSTRENDER, this.handleMapPostrender, false, this)) + } + } +}; +goog.provide("ol.css"); +ol.css.CLASS_UNSELECTABLE = "ol-unselectable"; +ol.css.CLASS_UNSUPPORTED = "ol-unsupported"; +goog.provide("ol.control.Attribution"); +goog.require("goog.array"); +goog.require("goog.dom"); +goog.require("goog.dom.TagName"); +goog.require("goog.object"); +goog.require("goog.style"); +goog.require("ol.Attribution"); +goog.require("ol.FrameState"); +goog.require("ol.control.Control"); +goog.require("ol.css"); +ol.control.Attribution = function(opt_options) { + var options = goog.isDef(opt_options) ? opt_options : {}; + this.ulElement_ = goog.dom.createElement(goog.dom.TagName.UL); + var className = goog.isDef(options.className) ? options.className : "ol-attribution"; + var element = goog.dom.createDom(goog.dom.TagName.DIV, {"class":className + " " + ol.css.CLASS_UNSELECTABLE}, this.ulElement_); + goog.base(this, {element:element, target:options.target}); + this.renderedVisible_ = true; + this.attributionElements_ = {}; + this.attributionElementRenderedVisible_ = {} +}; +goog.inherits(ol.control.Attribution, ol.control.Control); +ol.control.Attribution.prototype.getSourceAttributions = function(frameState) { + var i, ii, j, jj, tileRanges, source, sourceAttribution, sourceAttributionKey, sourceAttributions, sourceKey; + var layers = frameState.layersArray; + var attributions = goog.object.clone(frameState.attributions); + var hiddenAttributions = {}; + for(i = 0, ii = layers.length;i < ii;i++) { + source = layers[i].getSource(); + sourceKey = goog.getUid(source).toString(); + sourceAttributions = source.getAttributions(); + if(goog.isNull(sourceAttributions)) { + continue + } + for(j = 0, jj = sourceAttributions.length;j < jj;j++) { + sourceAttribution = sourceAttributions[j]; + sourceAttributionKey = goog.getUid(sourceAttribution).toString(); + if(sourceAttributionKey in attributions) { + continue + } + tileRanges = frameState.usedTiles[sourceKey]; + if(goog.isDef(tileRanges) && sourceAttribution.intersectsAnyTileRange(tileRanges)) { + if(sourceAttributionKey in hiddenAttributions) { + delete hiddenAttributions[sourceAttributionKey] + } + attributions[sourceAttributionKey] = sourceAttribution + }else { + hiddenAttributions[sourceAttributionKey] = sourceAttribution + } + } + } + return[attributions, hiddenAttributions] +}; +ol.control.Attribution.prototype.handleMapPostrender = function(mapEvent) { + this.updateElement_(mapEvent.frameState) +}; +ol.control.Attribution.prototype.updateElement_ = function(frameState) { + if(goog.isNull(frameState)) { + if(this.renderedVisible_) { + goog.style.setElementShown(this.element, false); + this.renderedVisible_ = false + } + return + } + var attributions = this.getSourceAttributions(frameState); + var visibleAttributions = attributions[0]; + var hiddenAttributions = attributions[1]; + var attributionElement, attributionKey; + for(attributionKey in this.attributionElements_) { + if(attributionKey in visibleAttributions) { + if(!this.attributionElementRenderedVisible_[attributionKey]) { + goog.style.setElementShown(this.attributionElements_[attributionKey], true); + this.attributionElementRenderedVisible_[attributionKey] = true + } + delete visibleAttributions[attributionKey] + }else { + if(attributionKey in hiddenAttributions) { + if(this.attributionElementRenderedVisible_[attributionKey]) { + goog.style.setElementShown(this.attributionElements_[attributionKey], false); + delete this.attributionElementRenderedVisible_[attributionKey] + } + delete hiddenAttributions[attributionKey] + }else { + goog.dom.removeNode(this.attributionElements_[attributionKey]); + delete this.attributionElements_[attributionKey]; + delete this.attributionElementRenderedVisible_[attributionKey] + } + } + } + for(attributionKey in visibleAttributions) { + attributionElement = goog.dom.createElement(goog.dom.TagName.LI); + attributionElement.innerHTML = visibleAttributions[attributionKey].getHTML(); + goog.dom.appendChild(this.ulElement_, attributionElement); + this.attributionElements_[attributionKey] = attributionElement; + this.attributionElementRenderedVisible_[attributionKey] = true + } + for(attributionKey in hiddenAttributions) { + attributionElement = goog.dom.createElement(goog.dom.TagName.LI); + attributionElement.innerHTML = hiddenAttributions[attributionKey].getHTML(); + goog.style.setElementShown(attributionElement, false); + goog.dom.appendChild(this.ulElement_, attributionElement); + this.attributionElements_[attributionKey] = attributionElement + } + var renderVisible = !goog.object.isEmpty(this.attributionElementRenderedVisible_); + if(this.renderedVisible_ != renderVisible) { + goog.style.setElementShown(this.element, renderVisible); + this.renderedVisible_ = renderVisible + } +}; +goog.provide("ol.control.Logo"); +goog.require("goog.dom"); +goog.require("goog.dom.TagName"); +goog.require("goog.object"); +goog.require("goog.style"); +goog.require("ol.FrameState"); +goog.require("ol.control.Control"); +goog.require("ol.css"); +ol.control.Logo = function(opt_options) { + var options = goog.isDef(opt_options) ? opt_options : {}; + this.ulElement_ = goog.dom.createElement(goog.dom.TagName.UL); + var className = goog.isDef(options.className) ? options.className : "ol-logo"; + var element = goog.dom.createDom(goog.dom.TagName.DIV, {"class":className + " " + ol.css.CLASS_UNSELECTABLE}, this.ulElement_); + goog.base(this, {element:element, target:options.target}); + this.renderedVisible_ = true; + this.logoElements_ = {} +}; +goog.inherits(ol.control.Logo, ol.control.Control); +ol.control.Logo.prototype.handleMapPostrender = function(mapEvent) { + this.updateElement_(mapEvent.frameState) +}; +ol.control.Logo.prototype.updateElement_ = function(frameState) { + if(goog.isNull(frameState)) { + if(this.renderedVisible_) { + goog.style.setElementShown(this.element, false); + this.renderedVisible_ = false + } + return + } + var logo; + var logos = frameState.logos; + var logoElements = this.logoElements_; + for(logo in logoElements) { + if(!(logo in logos)) { + goog.dom.removeNode(logoElements[logo]); + delete logoElements[logo] + } + } + var image, logoElement; + for(logo in logos) { + if(!(logo in logoElements)) { + image = new Image; + image.src = logo; + logoElement = goog.dom.createElement(goog.dom.TagName.LI); + logoElement.appendChild(image); + goog.dom.appendChild(this.ulElement_, logoElement); + logoElements[logo] = logoElement + } + } + var renderVisible = !goog.object.isEmpty(logos); + if(this.renderedVisible_ != renderVisible) { + goog.style.setElementShown(this.element, renderVisible); + this.renderedVisible_ = renderVisible + } +}; +goog.provide("ol.control.Zoom"); +goog.require("goog.dom"); +goog.require("goog.dom.TagName"); +goog.require("goog.events"); +goog.require("goog.events.EventType"); +goog.require("ol.animation"); +goog.require("ol.control.Control"); +goog.require("ol.css"); +goog.require("ol.easing"); +ol.control.ZOOM_DURATION = 250; +ol.control.Zoom = function(opt_options) { + var options = goog.isDef(opt_options) ? opt_options : {}; + var className = goog.isDef(options.className) ? options.className : "ol-zoom"; + var delta = goog.isDef(options.delta) ? options.delta : 1; + var inElement = goog.dom.createDom(goog.dom.TagName.A, {"href":"#zoomIn", "class":className + "-in"}); + goog.events.listen(inElement, [goog.events.EventType.TOUCHEND, goog.events.EventType.CLICK], goog.partial(ol.control.Zoom.prototype.zoomByDelta_, delta), false, this); + var outElement = goog.dom.createDom(goog.dom.TagName.A, {"href":"#zoomOut", "class":className + "-out"}); + goog.events.listen(outElement, [goog.events.EventType.TOUCHEND, goog.events.EventType.CLICK], goog.partial(ol.control.Zoom.prototype.zoomByDelta_, -delta), false, this); + var cssClasses = className + " " + ol.css.CLASS_UNSELECTABLE; + var element = goog.dom.createDom(goog.dom.TagName.DIV, cssClasses, inElement, outElement); + goog.base(this, {element:element, target:options.target}) +}; +goog.inherits(ol.control.Zoom, ol.control.Control); +ol.control.Zoom.prototype.zoomByDelta_ = function(delta, browserEvent) { + browserEvent.preventDefault(); + var map = this.getMap(); + var view = map.getView().getView2D(); + var currentResolution = view.getResolution(); + if(goog.isDef(currentResolution)) { + map.beforeRender(ol.animation.zoom({resolution:currentResolution, duration:ol.control.ZOOM_DURATION, easing:ol.easing.easeOut})); + var newResolution = view.constrainResolution(currentResolution, delta); + view.setResolution(newResolution) + } +}; +goog.provide("ol.control"); +goog.require("ol.Collection"); +goog.require("ol.control.Attribution"); +goog.require("ol.control.Logo"); +goog.require("ol.control.Zoom"); +ol.control.defaults = function(opt_options) { + var options = goog.isDef(opt_options) ? opt_options : {}; + var controls = new ol.Collection; + var attributionControl = goog.isDef(options.attribution) ? options.attribution : true; + if(attributionControl) { + var attributionControlOptions = goog.isDef(options.attributionOptions) ? options.attributionOptions : undefined; + controls.push(new ol.control.Attribution(attributionControlOptions)) + } + var logoControl = goog.isDef(options.logo) ? options.logo : true; + if(logoControl) { + var logoControlOptions = goog.isDef(options.logoOptions) ? options.logoOptions : undefined; + controls.push(new ol.control.Logo(logoControlOptions)) + } + var zoomControl = goog.isDef(options.zoom) ? options.zoom : true; + if(zoomControl) { + var zoomControlOptions = goog.isDef(options.zoomOptions) ? options.zoomOptions : undefined; + controls.push(new ol.control.Zoom(zoomControlOptions)) + } + return controls +}; +goog.provide("ol.interaction.Interaction"); +goog.require("ol.MapBrowserEvent"); +goog.require("ol.animation"); +goog.require("ol.easing"); +ol.interaction.Interaction = function() { +}; +ol.interaction.Interaction.prototype.handleMapBrowserEvent = goog.abstractMethod; +ol.interaction.Interaction.pan = function(map, view, delta, opt_duration) { + var currentCenter = view.getCenter(); + if(goog.isDef(currentCenter)) { + if(goog.isDef(opt_duration)) { + map.beforeRender(ol.animation.pan({source:currentCenter, duration:opt_duration, easing:ol.easing.linear})) + } + view.setCenter([currentCenter[0] + delta[0], currentCenter[1] + delta[1]]) + } +}; +ol.interaction.Interaction.rotate = function(map, view, rotation, opt_anchor, opt_duration) { + rotation = view.constrainRotation(rotation, 0); + ol.interaction.Interaction.rotateWithoutConstraints(map, view, rotation, opt_anchor, opt_duration) +}; +ol.interaction.Interaction.rotateWithoutConstraints = function(map, view, rotation, opt_anchor, opt_duration) { + if(goog.isDefAndNotNull(rotation)) { + var currentRotation = view.getRotation(); + var currentCenter = view.getCenter(); + if(goog.isDef(currentRotation) && goog.isDef(currentCenter) && goog.isDef(opt_duration)) { + map.beforeRender(ol.animation.rotate({rotation:currentRotation, duration:opt_duration, easing:ol.easing.easeOut})); + if(goog.isDef(opt_anchor)) { + map.beforeRender(ol.animation.pan({source:currentCenter, duration:opt_duration, easing:ol.easing.easeOut})) + } + } + if(goog.isDefAndNotNull(opt_anchor)) { + var center = view.calculateCenterRotate(rotation, opt_anchor); + map.withFrozenRendering(function() { + view.setCenter(center); + view.setRotation(rotation) + }) + }else { + view.setRotation(rotation) + } + } +}; +ol.interaction.Interaction.zoom = function(map, view, resolution, opt_anchor, opt_duration, opt_direction) { + resolution = view.constrainResolution(resolution, 0, opt_direction); + ol.interaction.Interaction.zoomWithoutConstraints(map, view, resolution, opt_anchor, opt_duration) +}; +ol.interaction.Interaction.zoomByDelta = function(map, view, delta, opt_anchor, opt_duration) { + var currentResolution = view.getResolution(); + var resolution = view.constrainResolution(currentResolution, delta, 0); + ol.interaction.Interaction.zoomWithoutConstraints(map, view, resolution, opt_anchor, opt_duration) +}; +ol.interaction.Interaction.zoomWithoutConstraints = function(map, view, resolution, opt_anchor, opt_duration) { + if(goog.isDefAndNotNull(resolution)) { + var currentResolution = view.getResolution(); + var currentCenter = view.getCenter(); + if(goog.isDef(currentResolution) && goog.isDef(currentCenter) && goog.isDef(opt_duration)) { + map.beforeRender(ol.animation.zoom({resolution:currentResolution, duration:opt_duration, easing:ol.easing.easeOut})); + if(goog.isDef(opt_anchor)) { + map.beforeRender(ol.animation.pan({source:currentCenter, duration:opt_duration, easing:ol.easing.easeOut})) + } + } + if(goog.isDefAndNotNull(opt_anchor)) { + var center = view.calculateCenterZoom(resolution, opt_anchor); + map.withFrozenRendering(function() { + view.setCenter(center); + view.setResolution(resolution) + }) + }else { + view.setResolution(resolution) + } + } +}; +goog.provide("ol.interaction.DoubleClickZoom"); +goog.require("goog.asserts"); +goog.require("ol.MapBrowserEvent"); +goog.require("ol.MapBrowserEvent.EventType"); +goog.require("ol.interaction.Interaction"); +ol.interaction.DOUBLECLICKZOOM_ANIMATION_DURATION = 250; +ol.interaction.DoubleClickZoom = function(opt_options) { + var options = goog.isDef(opt_options) ? opt_options : {}; + this.delta_ = goog.isDef(options.delta) ? options.delta : 1; + goog.base(this) +}; +goog.inherits(ol.interaction.DoubleClickZoom, ol.interaction.Interaction); +ol.interaction.DoubleClickZoom.prototype.handleMapBrowserEvent = function(mapBrowserEvent) { + var stopEvent = false; + var browserEvent = mapBrowserEvent.browserEvent; + if(mapBrowserEvent.type == ol.MapBrowserEvent.EventType.DBLCLICK && mapBrowserEvent.isMouseActionButton()) { + var map = mapBrowserEvent.map; + var anchor = mapBrowserEvent.getCoordinate(); + var delta = browserEvent.shiftKey ? -this.delta_ : this.delta_; + var view = map.getView().getView2D(); + ol.interaction.Interaction.zoomByDelta(map, view, delta, anchor, ol.interaction.DOUBLECLICKZOOM_ANIMATION_DURATION); + mapBrowserEvent.preventDefault(); + stopEvent = true + } + return!stopEvent +}; +goog.provide("ol.interaction.ConditionType"); +goog.provide("ol.interaction.condition"); +goog.require("goog.dom.TagName"); +goog.require("goog.events.EventType"); +goog.require("goog.functions"); +ol.interaction.ConditionType; +ol.interaction.condition.altKeyOnly = function(mapBrowserEvent) { + var browserEvent = mapBrowserEvent.browserEvent; + return browserEvent.altKey && !browserEvent.platformModifierKey && !browserEvent.shiftKey +}; +ol.interaction.condition.altShiftKeysOnly = function(mapBrowserEvent) { + var browserEvent = mapBrowserEvent.browserEvent; + return browserEvent.altKey && !browserEvent.platformModifierKey && browserEvent.shiftKey +}; +ol.interaction.condition.always = goog.functions.TRUE; +ol.interaction.condition.clickOnly = function(mapBrowserEvent) { + var browserEvent = mapBrowserEvent.browserEvent; + return browserEvent.type == goog.events.EventType.CLICK +}; +ol.interaction.condition.noModifierKeys = function(mapBrowserEvent) { + var browserEvent = mapBrowserEvent.browserEvent; + return!browserEvent.altKey && !browserEvent.platformModifierKey && !browserEvent.shiftKey +}; +ol.interaction.condition.platformModifierKeyOnly = function(mapBrowserEvent) { + var browserEvent = mapBrowserEvent.browserEvent; + return!browserEvent.altKey && browserEvent.platformModifierKey && !browserEvent.shiftKey +}; +ol.interaction.condition.shiftKeyOnly = function(mapBrowserEvent) { + var browserEvent = mapBrowserEvent.browserEvent; + return!browserEvent.altKey && !browserEvent.platformModifierKey && browserEvent.shiftKey +}; +ol.interaction.condition.targetNotEditable = function(mapBrowserEvent) { + var browserEvent = mapBrowserEvent.browserEvent; + var tagName = browserEvent.target.tagName; + return tagName !== goog.dom.TagName.INPUT && tagName !== goog.dom.TagName.SELECT && tagName !== goog.dom.TagName.TEXTAREA +}; +goog.provide("ol.interaction.Drag"); +goog.require("goog.asserts"); +goog.require("goog.events.BrowserEvent"); +goog.require("goog.functions"); +goog.require("ol.Coordinate"); +goog.require("ol.MapBrowserEvent"); +goog.require("ol.MapBrowserEvent.EventType"); +goog.require("ol.ViewHint"); +goog.require("ol.interaction.Interaction"); +ol.interaction.Drag = function() { + goog.base(this); + this.dragging_ = false; + this.interactingHint = 1; + this.startX = 0; + this.startY = 0; + this.offsetX = 0; + this.offsetY = 0; + this.startCenter = null; + this.startCoordinate = null +}; +goog.inherits(ol.interaction.Drag, ol.interaction.Interaction); +ol.interaction.Drag.prototype.getDragging = function() { + return this.dragging_ +}; +ol.interaction.Drag.prototype.handleDrag = goog.nullFunction; +ol.interaction.Drag.prototype.handleDragEnd = goog.nullFunction; +ol.interaction.Drag.prototype.handleDragStart = goog.functions.FALSE; +ol.interaction.Drag.prototype.handleDown = goog.nullFunction; +ol.interaction.Drag.prototype.handleMapBrowserEvent = function(mapBrowserEvent) { + var map = mapBrowserEvent.map; + if(!map.isDef()) { + return true + } + var stopEvent = false; + var view = map.getView(); + var browserEvent = mapBrowserEvent.browserEvent; + if(mapBrowserEvent.type == ol.MapBrowserEvent.EventType.DOWN) { + goog.asserts.assertInstanceof(browserEvent, goog.events.BrowserEvent); + this.handleDown(mapBrowserEvent) + } + if(this.dragging_) { + if(mapBrowserEvent.type == ol.MapBrowserEvent.EventType.DRAG) { + goog.asserts.assertInstanceof(browserEvent, goog.events.BrowserEvent); + this.deltaX = browserEvent.clientX - this.startX; + this.deltaY = browserEvent.clientY - this.startY; + this.handleDrag(mapBrowserEvent) + }else { + if(mapBrowserEvent.type == ol.MapBrowserEvent.EventType.DRAGEND) { + goog.asserts.assertInstanceof(browserEvent, goog.events.BrowserEvent); + this.deltaX = browserEvent.clientX - this.startX; + this.deltaY = browserEvent.clientY - this.startY; + this.handleDragEnd(mapBrowserEvent); + view.setHint(ol.ViewHint.INTERACTING, -this.interactingHint); + this.dragging_ = false + } + } + }else { + if(mapBrowserEvent.type == ol.MapBrowserEvent.EventType.DRAGSTART) { + goog.asserts.assertInstanceof(browserEvent, goog.events.BrowserEvent); + var view2DState = view.getView2D().getView2DState(); + this.startX = browserEvent.clientX; + this.startY = browserEvent.clientY; + this.deltaX = 0; + this.deltaY = 0; + this.startCenter = view2DState.center; + this.startCoordinate = (mapBrowserEvent.getCoordinate()); + var handled = this.handleDragStart(mapBrowserEvent); + if(handled) { + view.setHint(ol.ViewHint.INTERACTING, this.interactingHint); + this.dragging_ = true; + mapBrowserEvent.preventDefault(); + stopEvent = true + } + } + } + return!stopEvent +}; +goog.provide("ol.interaction.DragPan"); +goog.require("goog.asserts"); +goog.require("ol.Kinetic"); +goog.require("ol.PreRenderFunction"); +goog.require("ol.View2D"); +goog.require("ol.coordinate"); +goog.require("ol.interaction.ConditionType"); +goog.require("ol.interaction.Drag"); +goog.require("ol.interaction.condition"); +ol.interaction.DragPan = function(opt_options) { + goog.base(this); + var options = goog.isDef(opt_options) ? opt_options : {}; + this.condition_ = goog.isDef(options.condition) ? options.condition : ol.interaction.condition.noModifierKeys; + this.kinetic_ = options.kinetic; + this.kineticPreRenderFn_ = null +}; +goog.inherits(ol.interaction.DragPan, ol.interaction.Drag); +ol.interaction.DragPan.prototype.handleDrag = function(mapBrowserEvent) { + if(this.kinetic_) { + this.kinetic_.update(mapBrowserEvent.browserEvent.clientX, mapBrowserEvent.browserEvent.clientY) + } + var map = mapBrowserEvent.map; + var view = map.getView(); + goog.asserts.assertInstanceof(view, ol.View2D); + var view2DState = view.getView2DState(); + var newCenter = [-view2DState.resolution * this.deltaX, view2DState.resolution * this.deltaY]; + ol.coordinate.rotate(newCenter, view2DState.rotation); + ol.coordinate.add(newCenter, this.startCenter); + map.requestRenderFrame(); + view.setCenter(newCenter) +}; +ol.interaction.DragPan.prototype.handleDragEnd = function(mapBrowserEvent) { + var map = mapBrowserEvent.map; + var view = map.getView().getView2D(); + if(this.kinetic_ && this.kinetic_.end()) { + var view2DState = view.getView2DState(); + var distance = this.kinetic_.getDistance(); + var angle = this.kinetic_.getAngle(); + this.kineticPreRenderFn_ = this.kinetic_.pan(view2DState.center); + map.beforeRender(this.kineticPreRenderFn_); + var centerpx = map.getPixelFromCoordinate(view2DState.center); + var dest = map.getCoordinateFromPixel([centerpx[0] - distance * Math.cos(angle), centerpx[1] - distance * Math.sin(angle)]); + view.setCenter(dest) + } + map.requestRenderFrame() +}; +ol.interaction.DragPan.prototype.handleDragStart = function(mapBrowserEvent) { + var browserEvent = mapBrowserEvent.browserEvent; + if(browserEvent.isMouseActionButton() && this.condition_(mapBrowserEvent)) { + if(this.kinetic_) { + this.kinetic_.begin(); + this.kinetic_.update(browserEvent.clientX, browserEvent.clientY) + } + var map = mapBrowserEvent.map; + map.requestRenderFrame(); + return true + }else { + return false + } +}; +ol.interaction.DragPan.prototype.handleDown = function(mapBrowserEvent) { + var map = mapBrowserEvent.map; + var view = map.getView(); + goog.asserts.assertInstanceof(view, ol.View2D); + goog.asserts.assert(!goog.isNull(mapBrowserEvent.frameState)); + if(!goog.isNull(this.kineticPreRenderFn_) && map.removePreRenderFunction(this.kineticPreRenderFn_)) { + map.requestRenderFrame(); + view.setCenter(mapBrowserEvent.frameState.view2DState.center); + this.kineticPreRenderFn_ = null + } +}; +goog.provide("ol.interaction.DragRotate"); +goog.require("goog.asserts"); +goog.require("ol.interaction.ConditionType"); +goog.require("ol.interaction.Drag"); +goog.require("ol.interaction.Interaction"); +goog.require("ol.interaction.condition"); +ol.interaction.DRAGROTATE_ANIMATION_DURATION = 250; +ol.interaction.DragRotate = function(opt_options) { + var options = goog.isDef(opt_options) ? opt_options : {}; + goog.base(this); + this.condition_ = goog.isDef(options.condition) ? options.condition : ol.interaction.condition.altShiftKeysOnly; + this.lastAngle_ = undefined +}; +goog.inherits(ol.interaction.DragRotate, ol.interaction.Drag); +ol.interaction.DragRotate.prototype.handleDrag = function(mapBrowserEvent) { + var map = mapBrowserEvent.map; + var size = map.getSize(); + var offset = mapBrowserEvent.getPixel(); + var theta = Math.atan2(size[1] / 2 - offset[1], offset[0] - size[0] / 2); + if(goog.isDef(this.lastAngle_)) { + var delta = theta - this.lastAngle_; + var view = map.getView().getView2D(); + var view2DState = view.getView2DState(); + map.requestRenderFrame(); + ol.interaction.Interaction.rotateWithoutConstraints(map, view, view2DState.rotation - delta) + } + this.lastAngle_ = theta +}; +ol.interaction.DragRotate.prototype.handleDragEnd = function(mapBrowserEvent) { + var map = mapBrowserEvent.map; + var view = map.getView().getView2D(); + var view2DState = view.getView2DState(); + ol.interaction.Interaction.rotate(map, view, view2DState.rotation, undefined, ol.interaction.DRAGROTATE_ANIMATION_DURATION) +}; +ol.interaction.DragRotate.prototype.handleDragStart = function(mapBrowserEvent) { + var browserEvent = mapBrowserEvent.browserEvent; + if(browserEvent.isMouseActionButton() && this.condition_(mapBrowserEvent)) { + var map = mapBrowserEvent.map; + map.requestRenderFrame(); + this.lastAngle_ = undefined; + return true + }else { + return false + } +}; +goog.provide("ol.control.DragBox"); +goog.require("goog.asserts"); +goog.require("goog.dom"); +goog.require("goog.dom.TagName"); +goog.require("goog.events"); +goog.require("goog.math.Size"); +goog.require("goog.style"); +goog.require("ol.Coordinate"); +goog.require("ol.MapBrowserEvent"); +goog.require("ol.MapBrowserEvent.EventType"); +goog.require("ol.Pixel"); +goog.require("ol.control.Control"); +ol.control.DragBoxOptions; +ol.control.DragBox = function(options) { + var element = goog.dom.createDom(goog.dom.TagName.DIV, "ol-dragbox"); + this.startPixel_ = null; + this.startCoordinate_ = options.startCoordinate; + goog.base(this, {element:element}) +}; +goog.inherits(ol.control.DragBox, ol.control.Control); +ol.control.DragBox.prototype.setMap = function(map) { + goog.base(this, "setMap", map); + if(!goog.isNull(map)) { + this.startPixel_ = map.getPixelFromCoordinate(this.startCoordinate_); + goog.asserts.assert(goog.isDef(this.startPixel_)); + goog.style.setPosition(this.element, this.startPixel_[0], this.startPixel_[1]); + goog.style.setBorderBoxSize(this.element, new goog.math.Size(0, 0)); + this.listenerKeys.push(goog.events.listen(map, ol.MapBrowserEvent.EventType.DRAG, this.updateBox_, false, this)) + } +}; +ol.control.DragBox.prototype.updateBox_ = function(mapBrowserEvent) { + var map = this.getMap(); + var coordinate = mapBrowserEvent.getCoordinate(); + goog.asserts.assert(goog.isDef(coordinate)); + var currentPixel = map.getPixelFromCoordinate(coordinate); + goog.style.setPosition(this.element, Math.min(currentPixel[0], this.startPixel_[0]), Math.min(currentPixel[1], this.startPixel_[1])); + goog.style.setBorderBoxSize(this.element, new goog.math.Size(Math.abs(currentPixel[0] - this.startPixel_[0]), Math.abs(currentPixel[1] - this.startPixel_[1]))) +}; +goog.provide("ol.interaction.DragZoom"); +goog.require("goog.asserts"); +goog.require("ol.Size"); +goog.require("ol.View2D"); +goog.require("ol.control.DragBox"); +goog.require("ol.extent"); +goog.require("ol.interaction.ConditionType"); +goog.require("ol.interaction.Drag"); +goog.require("ol.interaction.condition"); +ol.SHIFT_DRAG_ZOOM_HYSTERESIS_PIXELS = 8; +ol.SHIFT_DRAG_ZOOM_HYSTERESIS_PIXELS_SQUARED = ol.SHIFT_DRAG_ZOOM_HYSTERESIS_PIXELS * ol.SHIFT_DRAG_ZOOM_HYSTERESIS_PIXELS; +ol.interaction.DragZoom = function(opt_options) { + goog.base(this); + var options = goog.isDef(opt_options) ? opt_options : {}; + this.condition_ = goog.isDef(options.condition) ? options.condition : ol.interaction.condition.shiftKeyOnly; + this.dragBox_ = null +}; +goog.inherits(ol.interaction.DragZoom, ol.interaction.Drag); +ol.interaction.DragZoom.prototype.handleDragEnd = function(mapBrowserEvent) { + this.dragBox_.setMap(null); + this.dragBox_ = null; + if(this.deltaX * this.deltaX + this.deltaY * this.deltaY >= ol.SHIFT_DRAG_ZOOM_HYSTERESIS_PIXELS_SQUARED) { + var map = mapBrowserEvent.map; + var extent = ol.extent.boundingExtent([this.startCoordinate, mapBrowserEvent.getCoordinate()]); + map.withFrozenRendering(function() { + var view = map.getView(); + goog.asserts.assertInstanceof(view, ol.View2D); + var mapSize = (map.getSize()); + view.fitExtent(extent, mapSize); + view.setRotation(0) + }) + } +}; +ol.interaction.DragZoom.prototype.handleDragStart = function(mapBrowserEvent) { + var browserEvent = mapBrowserEvent.browserEvent; + if(browserEvent.isMouseActionButton() && this.condition_(mapBrowserEvent)) { + this.dragBox_ = new ol.control.DragBox({startCoordinate:this.startCoordinate}); + this.dragBox_.setMap(mapBrowserEvent.map); + return true + }else { + return false + } +}; +goog.provide("ol.interaction.KeyboardPan"); +goog.require("goog.asserts"); +goog.require("goog.events.KeyCodes"); +goog.require("goog.events.KeyHandler.EventType"); +goog.require("goog.functions"); +goog.require("ol.View2D"); +goog.require("ol.coordinate"); +goog.require("ol.interaction.ConditionType"); +goog.require("ol.interaction.Interaction"); +goog.require("ol.interaction.condition"); +ol.interaction.KEYBOARD_PAN_DURATION = 100; +ol.interaction.KeyboardPan = function(opt_options) { + goog.base(this); + var options = goog.isDef(opt_options) ? opt_options : {}; + this.condition_ = goog.isDef(options.condition) ? options.condition : goog.functions.and(ol.interaction.condition.noModifierKeys, ol.interaction.condition.targetNotEditable); + this.delta_ = goog.isDef(options.delta) ? options.delta : 128 +}; +goog.inherits(ol.interaction.KeyboardPan, ol.interaction.Interaction); +ol.interaction.KeyboardPan.prototype.handleMapBrowserEvent = function(mapBrowserEvent) { + var stopEvent = false; + if(mapBrowserEvent.type == goog.events.KeyHandler.EventType.KEY) { + var keyEvent = (mapBrowserEvent.browserEvent); + var keyCode = keyEvent.keyCode; + if(this.condition_(mapBrowserEvent) && (keyCode == goog.events.KeyCodes.DOWN || keyCode == goog.events.KeyCodes.LEFT || keyCode == goog.events.KeyCodes.RIGHT || keyCode == goog.events.KeyCodes.UP)) { + var map = mapBrowserEvent.map; + var view = map.getView(); + goog.asserts.assertInstanceof(view, ol.View2D); + var view2DState = view.getView2DState(); + var mapUnitsDelta = view2DState.resolution * this.delta_; + var deltaX = 0, deltaY = 0; + if(keyCode == goog.events.KeyCodes.DOWN) { + deltaY = -mapUnitsDelta + }else { + if(keyCode == goog.events.KeyCodes.LEFT) { + deltaX = -mapUnitsDelta + }else { + if(keyCode == goog.events.KeyCodes.RIGHT) { + deltaX = mapUnitsDelta + }else { + deltaY = mapUnitsDelta + } + } + } + var delta = [deltaX, deltaY]; + ol.coordinate.rotate(delta, view2DState.rotation); + ol.interaction.Interaction.pan(map, view, delta, ol.interaction.KEYBOARD_PAN_DURATION); + mapBrowserEvent.preventDefault(); + stopEvent = true + } + } + return!stopEvent +}; +goog.provide("ol.interaction.KeyboardZoom"); +goog.require("goog.asserts"); +goog.require("goog.events.KeyHandler.EventType"); +goog.require("goog.functions"); +goog.require("ol.interaction.ConditionType"); +goog.require("ol.interaction.Interaction"); +goog.require("ol.interaction.condition"); +ol.interaction.KEYBOARD_ZOOM_DURATION = 100; +ol.interaction.KeyboardZoom = function(opt_options) { + goog.base(this); + var options = goog.isDef(opt_options) ? opt_options : {}; + this.condition_ = goog.isDef(options.condition) ? options.condition : goog.functions.and(ol.interaction.condition.noModifierKeys, ol.interaction.condition.targetNotEditable); + this.delta_ = goog.isDef(options.delta) ? options.delta : 1 +}; +goog.inherits(ol.interaction.KeyboardZoom, ol.interaction.Interaction); +ol.interaction.KeyboardZoom.prototype.handleMapBrowserEvent = function(mapBrowserEvent) { + var stopEvent = false; + if(mapBrowserEvent.type == goog.events.KeyHandler.EventType.KEY) { + var keyEvent = (mapBrowserEvent.browserEvent); + var charCode = keyEvent.charCode; + if(this.condition_(mapBrowserEvent) && (charCode == "+".charCodeAt(0) || charCode == "-".charCodeAt(0))) { + var map = mapBrowserEvent.map; + var delta = charCode == "+".charCodeAt(0) ? this.delta_ : -this.delta_; + map.requestRenderFrame(); + var view = map.getView().getView2D(); + ol.interaction.Interaction.zoomByDelta(map, view, delta, undefined, ol.interaction.KEYBOARD_ZOOM_DURATION); + mapBrowserEvent.preventDefault(); + stopEvent = true + } + } + return!stopEvent +}; +goog.provide("ol.interaction.MouseWheelZoom"); +goog.require("goog.asserts"); +goog.require("goog.events.MouseWheelEvent"); +goog.require("goog.events.MouseWheelHandler.EventType"); +goog.require("goog.math"); +goog.require("ol.Coordinate"); +goog.require("ol.interaction.Interaction"); +ol.interaction.MOUSEWHEELZOOM_ANIMATION_DURATION = 250; +ol.interaction.MOUSEWHEELZOOM_MAXDELTA = 1; +ol.interaction.MOUSEWHEELZOOM_TIMEOUT_DURATION = 80; +ol.interaction.MouseWheelZoom = function() { + goog.base(this); + this.delta_ = 0; + this.lastAnchor_ = null; + this.startTime_ = undefined; + this.timeoutId_ = undefined +}; +goog.inherits(ol.interaction.MouseWheelZoom, ol.interaction.Interaction); +ol.interaction.MouseWheelZoom.prototype.handleMapBrowserEvent = function(mapBrowserEvent) { + var stopEvent = false; + if(mapBrowserEvent.type == goog.events.MouseWheelHandler.EventType.MOUSEWHEEL) { + var map = mapBrowserEvent.map; + var mouseWheelEvent = (mapBrowserEvent.browserEvent); + goog.asserts.assertInstanceof(mouseWheelEvent, goog.events.MouseWheelEvent); + this.lastAnchor_ = mapBrowserEvent.getCoordinate(); + this.delta_ += mouseWheelEvent.deltaY / 3; + if(!goog.isDef(this.startTime_)) { + this.startTime_ = goog.now() + } + var duration = ol.interaction.MOUSEWHEELZOOM_TIMEOUT_DURATION; + var timeLeft = Math.max(duration - (goog.now() - this.startTime_), 0); + goog.global.clearTimeout(this.timeoutId_); + this.timeoutId_ = goog.global.setTimeout(goog.bind(this.doZoom_, this, map), timeLeft); + mapBrowserEvent.preventDefault(); + stopEvent = true + } + return!stopEvent +}; +ol.interaction.MouseWheelZoom.prototype.doZoom_ = function(map) { + var maxDelta = ol.interaction.MOUSEWHEELZOOM_MAXDELTA; + var delta = goog.math.clamp(this.delta_, -maxDelta, maxDelta); + var view = map.getView().getView2D(); + map.requestRenderFrame(); + ol.interaction.Interaction.zoomByDelta(map, view, -delta, this.lastAnchor_, ol.interaction.MOUSEWHEELZOOM_ANIMATION_DURATION); + this.delta_ = 0; + this.lastAnchor_ = null; + this.startTime_ = undefined; + this.timeoutId_ = undefined +}; +goog.provide("ol.interaction.Touch"); +goog.require("goog.asserts"); +goog.require("goog.functions"); +goog.require("goog.object"); +goog.require("ol.MapBrowserEvent"); +goog.require("ol.MapBrowserEvent.EventType"); +goog.require("ol.Pixel"); +goog.require("ol.ViewHint"); +goog.require("ol.interaction.Interaction"); +ol.interaction.Touch = function() { + goog.base(this); + this.handled_ = false; + this.trackedTouches_ = {}; + this.targetTouches = [] +}; +goog.inherits(ol.interaction.Touch, ol.interaction.Interaction); +ol.interaction.Touch.centroid = function(touches) { + var length = touches.length; + var clientX = 0; + var clientY = 0; + for(var i = 0;i < length;i++) { + clientX += touches[i].clientX; + clientY += touches[i].clientY + } + return[clientX / length, clientY / length] +}; +ol.interaction.Touch.isTouchEvent_ = function(mapBrowserEvent) { + var type = mapBrowserEvent.type; + return type === ol.MapBrowserEvent.EventType.TOUCHSTART || type === ol.MapBrowserEvent.EventType.TOUCHMOVE || type === ol.MapBrowserEvent.EventType.TOUCHEND +}; +ol.interaction.Touch.prototype.updateTrackedTouches_ = function(mapBrowserEvent) { + if(ol.interaction.Touch.isTouchEvent_(mapBrowserEvent)) { + var event = mapBrowserEvent.browserEvent.getBrowserEvent(); + if(goog.isDef(event.targetTouches)) { + this.targetTouches = event.targetTouches + }else { + if(goog.isDef(event.pointerId)) { + if(mapBrowserEvent.type == ol.MapBrowserEvent.EventType.TOUCHEND) { + delete this.trackedTouches_[event.pointerId] + }else { + this.trackedTouches_[event.pointerId] = event + } + this.targetTouches = goog.object.getValues(this.trackedTouches_) + }else { + goog.asserts.fail("unknown touch event model") + } + } + } +}; +ol.interaction.Touch.prototype.handleTouchMove = goog.nullFunction; +ol.interaction.Touch.prototype.handleTouchEnd = goog.functions.FALSE; +ol.interaction.Touch.prototype.handleTouchStart = goog.functions.FALSE; +ol.interaction.Touch.prototype.handleMapBrowserEvent = function(mapBrowserEvent) { + var view = mapBrowserEvent.map.getView(); + this.updateTrackedTouches_(mapBrowserEvent); + if(this.handled_) { + if(mapBrowserEvent.type == ol.MapBrowserEvent.EventType.TOUCHMOVE) { + this.handleTouchMove(mapBrowserEvent) + }else { + if(mapBrowserEvent.type == ol.MapBrowserEvent.EventType.TOUCHEND) { + this.handled_ = this.handleTouchEnd(mapBrowserEvent); + if(!this.handled_) { + view.setHint(ol.ViewHint.INTERACTING, -1) + } + } + } + } + if(mapBrowserEvent.type == ol.MapBrowserEvent.EventType.TOUCHSTART) { + var handled = this.handleTouchStart(mapBrowserEvent); + if(!this.handled_ && handled) { + view.setHint(ol.ViewHint.INTERACTING, 1) + } + this.handled_ = handled + } + return true +}; +goog.provide("ol.interaction.TouchPan"); +goog.require("goog.asserts"); +goog.require("ol.Kinetic"); +goog.require("ol.Pixel"); +goog.require("ol.PreRenderFunction"); +goog.require("ol.coordinate"); +goog.require("ol.interaction.Touch"); +ol.interaction.TouchPan = function(opt_options) { + goog.base(this); + var options = goog.isDef(opt_options) ? opt_options : {}; + this.kinetic_ = options.kinetic; + this.kineticPreRenderFn_ = null; + this.lastCentroid = null; + this.noKinetic_ = false +}; +goog.inherits(ol.interaction.TouchPan, ol.interaction.Touch); +ol.interaction.TouchPan.prototype.handleTouchMove = function(mapBrowserEvent) { + goog.asserts.assert(this.targetTouches.length >= 1); + var centroid = ol.interaction.Touch.centroid(this.targetTouches); + if(!goog.isNull(this.lastCentroid)) { + if(this.kinetic_) { + this.kinetic_.update(centroid[0], centroid[1]) + } + var deltaX = this.lastCentroid[0] - centroid[0]; + var deltaY = centroid[1] - this.lastCentroid[1]; + var map = mapBrowserEvent.map; + var view = map.getView().getView2D(); + var view2DState = view.getView2DState(); + var center = [deltaX, deltaY]; + ol.coordinate.scale(center, view2DState.resolution); + ol.coordinate.rotate(center, view2DState.rotation); + ol.coordinate.add(center, view2DState.center); + map.requestRenderFrame(); + view.setCenter(center) + } + this.lastCentroid = centroid +}; +ol.interaction.TouchPan.prototype.handleTouchEnd = function(mapBrowserEvent) { + var map = mapBrowserEvent.map; + var view = map.getView(); + if(this.targetTouches.length === 0) { + if(!this.noKinetic_ && this.kinetic_ && this.kinetic_.end()) { + var distance = this.kinetic_.getDistance(); + var angle = this.kinetic_.getAngle(); + var center = view.getCenter(); + this.kineticPreRenderFn_ = this.kinetic_.pan(center); + map.beforeRender(this.kineticPreRenderFn_); + var centerpx = map.getPixelFromCoordinate(center); + var dest = map.getCoordinateFromPixel([centerpx[0] - distance * Math.cos(angle), centerpx[1] - distance * Math.sin(angle)]); + view.setCenter(dest) + } + map.requestRenderFrame(); + return false + }else { + this.lastCentroid = null; + return true + } +}; +ol.interaction.TouchPan.prototype.handleTouchStart = function(mapBrowserEvent) { + if(this.targetTouches.length > 0) { + var map = mapBrowserEvent.map; + var view = map.getView(); + this.lastCentroid = null; + map.requestRenderFrame(); + if(!goog.isNull(this.kineticPreRenderFn_) && map.removePreRenderFunction(this.kineticPreRenderFn_)) { + view.setCenter(mapBrowserEvent.frameState.view2DState.center); + this.kineticPreRenderFn_ = null + } + if(this.kinetic_) { + this.kinetic_.begin() + } + this.noKinetic_ = this.targetTouches.length > 1; + return true + }else { + return false + } +}; +goog.provide("ol.interaction.TouchRotate"); +goog.require("goog.asserts"); +goog.require("goog.style"); +goog.require("ol.Coordinate"); +goog.require("ol.interaction.Interaction"); +goog.require("ol.interaction.Touch"); +ol.interaction.TOUCHROTATE_ANIMATION_DURATION = 250; +ol.interaction.TouchRotate = function(opt_options) { + goog.base(this); + var options = goog.isDef(opt_options) ? opt_options : {}; + this.anchor_ = null; + this.lastAngle_ = undefined; + this.rotating_ = false; + this.rotationDelta_ = 0; + this.threshold_ = goog.isDef(options.threshold) ? options.threshold : 0.3 +}; +goog.inherits(ol.interaction.TouchRotate, ol.interaction.Touch); +ol.interaction.TouchRotate.prototype.handleTouchMove = function(mapBrowserEvent) { + goog.asserts.assert(this.targetTouches.length >= 2); + var rotationDelta = 0; + var touch0 = this.targetTouches[0]; + var touch1 = this.targetTouches[1]; + var angle = Math.atan2(touch1.clientY - touch0.clientY, touch1.clientX - touch0.clientX); + if(goog.isDef(this.lastAngle_)) { + var delta = angle - this.lastAngle_; + this.rotationDelta_ += delta; + if(!this.rotating_ && Math.abs(this.rotationDelta_) > this.threshold_) { + this.rotating_ = true + } + rotationDelta = delta + } + this.lastAngle_ = angle; + var map = mapBrowserEvent.map; + var viewportPosition = goog.style.getClientPosition(map.getViewport()); + var centroid = ol.interaction.Touch.centroid(this.targetTouches); + centroid[0] -= viewportPosition.x; + centroid[1] -= viewportPosition.y; + this.anchor_ = map.getCoordinateFromPixel(centroid); + if(this.rotating_) { + var view = map.getView().getView2D(); + var view2DState = view.getView2DState(); + map.requestRenderFrame(); + ol.interaction.Interaction.rotateWithoutConstraints(map, view, view2DState.rotation + rotationDelta, this.anchor_) + } +}; +ol.interaction.TouchRotate.prototype.handleTouchEnd = function(mapBrowserEvent) { + if(this.targetTouches.length < 2) { + var map = mapBrowserEvent.map; + var view = map.getView().getView2D(); + var view2DState = view.getView2DState(); + if(this.rotating_) { + ol.interaction.Interaction.rotate(map, view, view2DState.rotation, this.anchor_, ol.interaction.TOUCHROTATE_ANIMATION_DURATION) + } + return false + }else { + return true + } +}; +ol.interaction.TouchRotate.prototype.handleTouchStart = function(mapBrowserEvent) { + if(this.targetTouches.length >= 2) { + var map = mapBrowserEvent.map; + this.anchor_ = null; + this.lastAngle_ = undefined; + this.rotating_ = false; + this.rotationDelta_ = 0; + map.requestRenderFrame(); + return true + }else { + return false + } +}; +goog.provide("ol.interaction.TouchZoom"); +goog.require("goog.asserts"); +goog.require("goog.style"); +goog.require("ol.Coordinate"); +goog.require("ol.interaction.Interaction"); +goog.require("ol.interaction.Touch"); +ol.interaction.TOUCHZOOM_ANIMATION_DURATION = 400; +ol.interaction.TouchZoom = function() { + goog.base(this); + this.anchor_ = null; + this.lastDistance_ = undefined; + this.lastScaleDelta_ = 1 +}; +goog.inherits(ol.interaction.TouchZoom, ol.interaction.Touch); +ol.interaction.TouchZoom.prototype.handleTouchMove = function(mapBrowserEvent) { + goog.asserts.assert(this.targetTouches.length >= 2); + var scaleDelta = 1; + var touch0 = this.targetTouches[0]; + var touch1 = this.targetTouches[1]; + var dx = touch0.clientX - touch1.clientX; + var dy = touch0.clientY - touch1.clientY; + var distance = Math.sqrt(dx * dx + dy * dy); + if(goog.isDef(this.lastDistance_)) { + scaleDelta = this.lastDistance_ / distance + } + this.lastDistance_ = distance; + if(scaleDelta != 1) { + this.lastScaleDelta_ = scaleDelta + } + var map = mapBrowserEvent.map; + var view = map.getView().getView2D(); + var view2DState = view.getView2DState(); + var viewportPosition = goog.style.getClientPosition(map.getViewport()); + var centroid = ol.interaction.Touch.centroid(this.targetTouches); + centroid[0] -= viewportPosition.x; + centroid[1] -= viewportPosition.y; + this.anchor_ = map.getCoordinateFromPixel(centroid); + map.requestRenderFrame(); + ol.interaction.Interaction.zoomWithoutConstraints(map, view, view2DState.resolution * scaleDelta, this.anchor_) +}; +ol.interaction.TouchZoom.prototype.handleTouchEnd = function(mapBrowserEvent) { + if(this.targetTouches.length < 2) { + var map = mapBrowserEvent.map; + var view = map.getView().getView2D(); + var view2DState = view.getView2DState(); + var direction = this.lastScaleDelta_ - 1; + ol.interaction.Interaction.zoom(map, view, view2DState.resolution, this.anchor_, ol.interaction.TOUCHZOOM_ANIMATION_DURATION, direction); + return false + }else { + return true + } +}; +ol.interaction.TouchZoom.prototype.handleTouchStart = function(mapBrowserEvent) { + if(this.targetTouches.length >= 2) { + var map = mapBrowserEvent.map; + this.anchor_ = null; + this.lastDistance_ = undefined; + this.lastScaleDelta_ = 1; + map.requestRenderFrame(); + return true + }else { + return false + } +}; +goog.provide("ol.interaction"); +goog.require("ol.Collection"); +goog.require("ol.Kinetic"); +goog.require("ol.interaction.DoubleClickZoom"); +goog.require("ol.interaction.DragPan"); +goog.require("ol.interaction.DragRotate"); +goog.require("ol.interaction.DragZoom"); +goog.require("ol.interaction.KeyboardPan"); +goog.require("ol.interaction.KeyboardZoom"); +goog.require("ol.interaction.MouseWheelZoom"); +goog.require("ol.interaction.TouchPan"); +goog.require("ol.interaction.TouchRotate"); +goog.require("ol.interaction.TouchZoom"); +ol.interaction.defaults = function(opt_options) { + var options = goog.isDef(opt_options) ? opt_options : {}; + var interactions = new ol.Collection; + var kinetic = new ol.Kinetic(-0.005, 0.05, 100); + var altShiftDragRotate = goog.isDef(options.altShiftDragRotate) ? options.altShiftDragRotate : true; + if(altShiftDragRotate) { + interactions.push(new ol.interaction.DragRotate) + } + var doubleClickZoom = goog.isDef(options.doubleClickZoom) ? options.doubleClickZoom : true; + if(doubleClickZoom) { + interactions.push(new ol.interaction.DoubleClickZoom({delta:options.zoomDelta})) + } + var touchPan = goog.isDef(options.touchPan) ? options.touchPan : true; + if(touchPan) { + interactions.push(new ol.interaction.TouchPan({kinetic:kinetic})) + } + var touchRotate = goog.isDef(options.touchRotate) ? options.touchRotate : true; + if(touchRotate) { + interactions.push(new ol.interaction.TouchRotate) + } + var touchZoom = goog.isDef(options.touchZoom) ? options.touchZoom : true; + if(touchZoom) { + interactions.push(new ol.interaction.TouchZoom) + } + var dragPan = goog.isDef(options.dragPan) ? options.dragPan : true; + if(dragPan) { + interactions.push(new ol.interaction.DragPan({kinetic:kinetic})) + } + var keyboard = goog.isDef(options.keyboard) ? options.keyboard : true; + if(keyboard) { + interactions.push(new ol.interaction.KeyboardPan); + interactions.push(new ol.interaction.KeyboardZoom({delta:options.zoomDelta})) + } + var mouseWheelZoom = goog.isDef(options.mouseWheelZoom) ? options.mouseWheelZoom : true; + if(mouseWheelZoom) { + interactions.push(new ol.interaction.MouseWheelZoom) + } + var shiftDragZoom = goog.isDef(options.shiftDragZoom) ? options.shiftDragZoom : true; + if(shiftDragZoom) { + interactions.push(new ol.interaction.DragZoom) + } + return interactions +}; +goog.provide("ol.layer.Group"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.require("goog.events"); +goog.require("goog.events.EventType"); +goog.require("goog.math"); +goog.require("goog.object"); +goog.require("ol.Collection"); +goog.require("ol.CollectionEvent"); +goog.require("ol.CollectionEventType"); +goog.require("ol.Object"); +goog.require("ol.layer.Base"); +ol.layer.GroupProperty = {LAYERS:"layers"}; +ol.layer.Group = function(opt_options) { + var options = goog.isDef(opt_options) ? opt_options : {}; + var baseOptions = (goog.object.clone(options)); + delete baseOptions.layers; + var layers = options.layers; + goog.base(this, baseOptions); + this.listenerKeys_ = null; + goog.events.listen(this, ol.Object.getChangeEventType(ol.layer.GroupProperty.LAYERS), this.handleLayersChanged_, false, this); + if(goog.isDef(layers)) { + if(goog.isArray(layers)) { + layers = new ol.Collection(goog.array.clone(layers)) + }else { + goog.asserts.assertInstanceof(layers, ol.Collection); + layers = layers + } + }else { + layers = new ol.Collection + } + this.setLayers(layers) +}; +goog.inherits(ol.layer.Group, ol.layer.Base); +ol.layer.Group.prototype.handleLayerChange = function() { + if(this.getVisible()) { + this.dispatchChangeEvent() + } +}; +ol.layer.Group.prototype.handleLayerVisibleChange = function() { + this.dispatchChangeEvent() +}; +ol.layer.Group.prototype.handleLayersChanged_ = function(event) { + if(!goog.isNull(this.listenerKeys_)) { + goog.array.forEach(goog.object.getValues(this.listenerKeys_), goog.events.unlistenByKey); + this.listenerKeys_ = null + } + var layers = this.getLayers(); + if(goog.isDefAndNotNull(layers)) { + this.listenerKeys_ = {"add":goog.events.listen(layers, ol.CollectionEventType.ADD, this.handleLayersAdd_, false, this), "remove":goog.events.listen(layers, ol.CollectionEventType.REMOVE, this.handleLayersRemove_, false, this)}; + var layersArray = layers.getArray(); + var i, ii, layer; + for(i = 0, ii = layersArray.length;i < ii;i++) { + layer = layersArray[i]; + this.listenerKeys_[goog.getUid(layer).toString()] = goog.events.listen(layer, goog.events.EventType.CHANGE, this.handleLayerChange, false, this) + } + } + this.dispatchChangeEvent() +}; +ol.layer.Group.prototype.handleLayersAdd_ = function(collectionEvent) { + var layer = (collectionEvent.getElement()); + this.listenerKeys_[goog.getUid(layer).toString()] = goog.events.listen(layer, goog.events.EventType.CHANGE, this.handleLayerChange, false, this); + this.dispatchChangeEvent() +}; +ol.layer.Group.prototype.handleLayersRemove_ = function(collectionEvent) { + var layer = (collectionEvent.getElement()); + var key = goog.getUid(layer).toString(); + goog.events.unlistenByKey(this.listenerKeys_[key]); + delete this.listenerKeys_[key]; + this.dispatchChangeEvent() +}; +ol.layer.Group.prototype.getLayers = function() { + return(this.get(ol.layer.GroupProperty.LAYERS)) +}; +goog.exportProperty(ol.layer.Group.prototype, "getLayers", ol.layer.Group.prototype.getLayers); +ol.layer.Group.prototype.setLayers = function(layers) { + this.set(ol.layer.GroupProperty.LAYERS, layers) +}; +goog.exportProperty(ol.layer.Group.prototype, "setLayers", ol.layer.Group.prototype.setLayers); +ol.layer.Group.prototype.getLayersArray = function(opt_array) { + var array = goog.isDef(opt_array) ? opt_array : []; + this.getLayers().forEach(function(layer) { + layer.getLayersArray(array) + }); + return array +}; +ol.layer.Group.prototype.getLayerStatesArray = function(opt_obj) { + var obj = goog.isDef(opt_obj) ? opt_obj : {layers:[], layerStates:[]}; + goog.asserts.assert(obj.layers.length === obj.layerStates.length); + var pos = obj.layers.length; + this.getLayers().forEach(function(layer) { + layer.getLayerStatesArray(obj) + }); + var ownLayerState = this.getLayerState(); + var i, ii, layerState; + for(i = pos, ii = obj.layerStates.length;i < ii;i++) { + layerState = obj.layerStates[i]; + layerState.brightness = goog.math.clamp(layerState.brightness + ownLayerState.brightness, -1, 1); + layerState.contrast *= ownLayerState.contrast; + layerState.hue += ownLayerState.hue; + layerState.opacity *= ownLayerState.opacity; + layerState.saturation *= ownLayerState.saturation; + layerState.visible = layerState.visible && ownLayerState.visible + } + return obj +}; +ol.layer.Group.prototype.isReady = function() { + return null === goog.array.find(this.getLayers().getArray(), function(elt, index, array) { + return!elt.isReady() + }) +}; +goog.provide("ol.math"); +goog.require("goog.asserts"); +ol.math.cosh = function(x) { + return(Math.exp(x) + Math.exp(-x)) / 2 +}; +ol.math.coth = function(x) { + var expMinusTwoX = Math.exp(-2 * x); + return(1 + expMinusTwoX) / (1 - expMinusTwoX) +}; +ol.math.csch = function(x) { + return 2 / (Math.exp(x) - Math.exp(-x)) +}; +ol.math.roundUpToPowerOfTwo = function(x) { + goog.asserts.assert(0 < x); + return Math.pow(2, Math.ceil(Math.log(x) / Math.LN2)) +}; +ol.math.sech = function(x) { + return 2 / (Math.exp(x) + Math.exp(-x)) +}; +ol.math.sinh = function(x) { + return(Math.exp(x) - Math.exp(-x)) / 2 +}; +ol.math.tanh = function(x) { + var expMinusTwoX = Math.exp(-2 * x); + return(1 - expMinusTwoX) / (1 + expMinusTwoX) +}; +goog.provide("ol.proj.EPSG3857"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.require("ol.Projection"); +goog.require("ol.ProjectionUnits"); +goog.require("ol.math"); +goog.require("ol.proj"); +ol.proj.EPSG3857 = function(code) { + goog.base(this, {code:code, units:ol.ProjectionUnits.METERS, extent:ol.proj.EPSG3857.EXTENT, global:true}) +}; +goog.inherits(ol.proj.EPSG3857, ol.Projection); +ol.proj.EPSG3857.RADIUS = 6378137; +ol.proj.EPSG3857.HALF_SIZE = Math.PI * ol.proj.EPSG3857.RADIUS; +ol.proj.EPSG3857.EXTENT = [-ol.proj.EPSG3857.HALF_SIZE, ol.proj.EPSG3857.HALF_SIZE, -ol.proj.EPSG3857.HALF_SIZE, ol.proj.EPSG3857.HALF_SIZE]; +ol.proj.EPSG3857.CODES = ["EPSG:3857", "EPSG:102100", "EPSG:102113", "EPSG:900913", "urn:ogc:def:crs:EPSG:6.18:3:3857"]; +ol.proj.EPSG3857.PROJECTIONS = goog.array.map(ol.proj.EPSG3857.CODES, function(code) { + return new ol.proj.EPSG3857(code) +}); +ol.proj.EPSG3857.fromEPSG4326 = function(input, opt_output, opt_dimension) { + var length = input.length, dimension = opt_dimension > 1 ? opt_dimension : 2, output = opt_output; + if(!goog.isDef(output)) { + if(dimension > 2) { + output = input.slice() + }else { + output = new Array(length) + } + } + goog.asserts.assert(output.length % dimension === 0); + for(var i = 0;i < length;i += dimension) { + output[i] = ol.proj.EPSG3857.RADIUS * Math.PI * input[i] / 180; + output[i + 1] = ol.proj.EPSG3857.RADIUS * Math.log(Math.tan(Math.PI * (input[i + 1] + 90) / 360)) + } + return output +}; +ol.proj.EPSG3857.toEPSG4326 = function(input, opt_output, opt_dimension) { + var length = input.length, dimension = opt_dimension > 1 ? opt_dimension : 2, output = opt_output; + if(!goog.isDef(output)) { + if(dimension > 2) { + output = input.slice() + }else { + output = new Array(length) + } + } + goog.asserts.assert(output.length % dimension === 0); + for(var i = 0;i < length;i += dimension) { + output[i] = 180 * input[i] / (ol.proj.EPSG3857.RADIUS * Math.PI); + output[i + 1] = 360 * Math.atan(Math.exp(input[i + 1] / ol.proj.EPSG3857.RADIUS)) / Math.PI - 90 + } + return output +}; +ol.proj.EPSG3857.prototype.getPointResolution = function(resolution, point) { + return resolution / ol.math.cosh(point[1] / ol.proj.EPSG3857.RADIUS) +}; +goog.provide("ol.proj.EPSG4326"); +goog.require("ol.Projection"); +goog.require("ol.ProjectionUnits"); +goog.require("ol.proj"); +ol.proj.EPSG4326 = function(code, opt_axisOrientation) { + goog.base(this, {code:code, units:ol.ProjectionUnits.DEGREES, extent:ol.proj.EPSG4326.EXTENT, axisOrientation:opt_axisOrientation, global:true}) +}; +goog.inherits(ol.proj.EPSG4326, ol.Projection); +ol.proj.EPSG4326.EXTENT = [-180, 180, -90, 90]; +ol.proj.EPSG4326.PROJECTIONS = [new ol.proj.EPSG4326("CRS:84"), new ol.proj.EPSG4326("EPSG:4326", "neu"), new ol.proj.EPSG4326("urn:ogc:def:crs:EPSG:6.6:4326", "neu"), new ol.proj.EPSG4326("urn:ogc:def:crs:OGC:1.3:CRS84"), new ol.proj.EPSG4326("urn:ogc:def:crs:OGC:2:84"), new ol.proj.EPSG4326("http://www.opengis.net/gml/srs/epsg.xml#4326", "neu"), new ol.proj.EPSG4326("urn:x-ogc:def:crs:EPSG:4326", "neu")]; +ol.proj.EPSG4326.prototype.getPointResolution = function(resolution, point) { + return resolution +}; +goog.provide("ol.proj.common"); +goog.require("ol.proj"); +goog.require("ol.proj.EPSG3857"); +goog.require("ol.proj.EPSG4326"); +ol.proj.common.add = function() { + ol.proj.addEquivalentProjections(ol.proj.EPSG3857.PROJECTIONS); + ol.proj.addEquivalentProjections(ol.proj.EPSG4326.PROJECTIONS); + ol.proj.addEquivalentTransforms(ol.proj.EPSG4326.PROJECTIONS, ol.proj.EPSG3857.PROJECTIONS, ol.proj.EPSG3857.fromEPSG4326, ol.proj.EPSG3857.toEPSG4326) +}; +goog.provide("ol.tilegrid.TileGrid"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.require("ol.Coordinate"); +goog.require("ol.Projection"); +goog.require("ol.ProjectionUnits"); +goog.require("ol.Size"); +goog.require("ol.TileCoord"); +goog.require("ol.TileRange"); +goog.require("ol.array"); +goog.require("ol.extent"); +ol.DEFAULT_TILE_SIZE = 256; +ol.DEFAULT_MAX_ZOOM = 42; +ol.tilegrid.TileGrid = function(options) { + this.minZoom = goog.isDef(options.minZoom) ? options.minZoom : 0; + this.resolutions_ = options.resolutions; + goog.asserts.assert(goog.array.isSorted(this.resolutions_, function(a, b) { + return b - a + }, true)); + this.maxZoom = this.resolutions_.length - 1; + this.origin_ = goog.isDef(options.origin) ? options.origin : null; + this.origins_ = null; + if(goog.isDef(options.origins)) { + this.origins_ = options.origins; + goog.asserts.assert(this.origins_.length == this.maxZoom + 1) + } + goog.asserts.assert(goog.isNull(this.origin_) && !goog.isNull(this.origins_) || !goog.isNull(this.origin_) && goog.isNull(this.origins_)); + this.tileSizes_ = null; + if(goog.isDef(options.tileSizes)) { + this.tileSizes_ = options.tileSizes; + goog.asserts.assert(this.tileSizes_.length == this.maxZoom + 1) + } + this.tileSize_ = goog.isDef(options.tileSize) ? options.tileSize : goog.isNull(this.tileSizes_) ? [ol.DEFAULT_TILE_SIZE, ol.DEFAULT_TILE_SIZE] : null; + goog.asserts.assert(goog.isNull(this.tileSize_) && !goog.isNull(this.tileSizes_) || !goog.isNull(this.tileSize_) && goog.isNull(this.tileSizes_)) +}; +ol.tilegrid.TileGrid.tmpTileCoord_ = new ol.TileCoord(0, 0, 0); +ol.tilegrid.TileGrid.prototype.createTileCoordTransform = goog.abstractMethod; +ol.tilegrid.TileGrid.prototype.forEachTileCoordParentTileRange = function(tileCoord, callback, opt_obj, opt_tileRange, opt_extent) { + var tileCoordExtent = this.getTileCoordExtent(tileCoord, opt_extent); + var z = tileCoord.z - 1; + while(z >= this.minZoom) { + if(callback.call(opt_obj, z, this.getTileRangeForExtentAndZ(tileCoordExtent, z, opt_tileRange))) { + return true + } + --z + } + return false +}; +ol.tilegrid.TileGrid.prototype.getMaxZoom = function() { + return this.maxZoom +}; +ol.tilegrid.TileGrid.prototype.getMinZoom = function() { + return this.minZoom +}; +ol.tilegrid.TileGrid.prototype.getOrigin = function(z) { + if(!goog.isNull(this.origin_)) { + return this.origin_ + }else { + goog.asserts.assert(!goog.isNull(this.origins_)); + goog.asserts.assert(this.minZoom <= z && z <= this.maxZoom); + return this.origins_[z] + } +}; +ol.tilegrid.TileGrid.prototype.getResolution = function(z) { + goog.asserts.assert(this.minZoom <= z && z <= this.maxZoom); + return this.resolutions_[z] +}; +ol.tilegrid.TileGrid.prototype.getResolutions = function() { + return this.resolutions_ +}; +ol.tilegrid.TileGrid.prototype.getTileCoordChildTileRange = function(tileCoord, opt_tileRange, opt_extent) { + if(tileCoord.z < this.maxZoom) { + var tileCoordExtent = this.getTileCoordExtent(tileCoord, opt_extent); + return this.getTileRangeForExtentAndZ(tileCoordExtent, tileCoord.z + 1, opt_tileRange) + }else { + return null + } +}; +ol.tilegrid.TileGrid.prototype.getTileRangeExtent = function(z, tileRange, opt_extent) { + var origin = this.getOrigin(z); + var resolution = this.getResolution(z); + var tileSize = this.getTileSize(z); + var minX = origin[0] + tileRange.minX * tileSize[0] * resolution; + var maxX = origin[0] + (tileRange.maxX + 1) * tileSize[0] * resolution; + var minY = origin[1] + tileRange.minY * tileSize[1] * resolution; + var maxY = origin[1] + (tileRange.maxY + 1) * tileSize[1] * resolution; + return ol.extent.createOrUpdate(minX, maxX, minY, maxY, opt_extent) +}; +ol.tilegrid.TileGrid.prototype.getTileRangeForExtentAndResolution = function(extent, resolution, opt_tileRange) { + var tileCoord = ol.tilegrid.TileGrid.tmpTileCoord_; + this.getTileCoordForXYAndResolution_(extent[0], extent[2], resolution, false, tileCoord); + var minX = tileCoord.x; + var minY = tileCoord.y; + this.getTileCoordForXYAndResolution_(extent[1], extent[3], resolution, true, tileCoord); + return ol.TileRange.createOrUpdate(minX, tileCoord.x, minY, tileCoord.y, opt_tileRange) +}; +ol.tilegrid.TileGrid.prototype.getTileRangeForExtentAndZ = function(extent, z, opt_tileRange) { + var resolution = this.getResolution(z); + return this.getTileRangeForExtentAndResolution(extent, resolution, opt_tileRange) +}; +ol.tilegrid.TileGrid.prototype.getTileCoordCenter = function(tileCoord) { + var origin = this.getOrigin(tileCoord.z); + var resolution = this.getResolution(tileCoord.z); + var tileSize = this.getTileSize(tileCoord.z); + return[origin[0] + (tileCoord.x + 0.5) * tileSize[0] * resolution, origin[1] + (tileCoord.y + 0.5) * tileSize[1] * resolution] +}; +ol.tilegrid.TileGrid.prototype.getTileCoordExtent = function(tileCoord, opt_extent) { + var origin = this.getOrigin(tileCoord.z); + var resolution = this.getResolution(tileCoord.z); + var tileSize = this.getTileSize(tileCoord.z); + var minX = origin[0] + tileCoord.x * tileSize[0] * resolution; + var maxX = minX + tileSize[0] * resolution; + var minY = origin[1] + tileCoord.y * tileSize[1] * resolution; + var maxY = minY + tileSize[1] * resolution; + return ol.extent.createOrUpdate(minX, maxX, minY, maxY, opt_extent) +}; +ol.tilegrid.TileGrid.prototype.getTileCoordForCoordAndResolution = function(coordinate, resolution, opt_tileCoord) { + return this.getTileCoordForXYAndResolution_(coordinate[0], coordinate[1], resolution, false, opt_tileCoord) +}; +ol.tilegrid.TileGrid.prototype.getTileCoordForXYAndResolution_ = function(x, y, resolution, reverseIntersectionPolicy, opt_tileCoord) { + var z = this.getZForResolution(resolution); + var scale = resolution / this.getResolution(z); + var origin = this.getOrigin(z); + var tileSize = this.getTileSize(z); + var tileCoordX = scale * (x - origin[0]) / (resolution * tileSize[0]); + var tileCoordY = scale * (y - origin[1]) / (resolution * tileSize[1]); + if(reverseIntersectionPolicy) { + tileCoordX = Math.ceil(tileCoordX) - 1; + tileCoordY = Math.ceil(tileCoordY) - 1 + }else { + tileCoordX = Math.floor(tileCoordX); + tileCoordY = Math.floor(tileCoordY) + } + return ol.TileCoord.createOrUpdate(z, tileCoordX, tileCoordY, opt_tileCoord) +}; +ol.tilegrid.TileGrid.prototype.getTileCoordForCoordAndZ = function(coordinate, z, opt_tileCoord) { + var resolution = this.getResolution(z); + return this.getTileCoordForXYAndResolution_(coordinate[0], coordinate[1], resolution, false, opt_tileCoord) +}; +ol.tilegrid.TileGrid.prototype.getTileCoordResolution = function(tileCoord) { + goog.asserts.assert(this.minZoom <= tileCoord.z && tileCoord.z <= this.maxZoom); + return this.resolutions_[tileCoord.z] +}; +ol.tilegrid.TileGrid.prototype.getTileSize = function(z) { + if(!goog.isNull(this.tileSize_)) { + return this.tileSize_ + }else { + goog.asserts.assert(!goog.isNull(this.tileSizes_)); + goog.asserts.assert(this.minZoom <= z && z <= this.maxZoom); + return this.tileSizes_[z] + } +}; +ol.tilegrid.TileGrid.prototype.getZForResolution = function(resolution) { + return ol.array.linearFindNearest(this.resolutions_, resolution, 0) +}; +ol.tilegrid.getForProjection = function(projection) { + var tileGrid = projection.getDefaultTileGrid(); + if(goog.isNull(tileGrid)) { + tileGrid = ol.tilegrid.createForProjection(projection); + projection.setDefaultTileGrid(tileGrid) + } + return tileGrid +}; +ol.tilegrid.createForProjection = function(projection, opt_maxZoom, opt_tileSize) { + var projectionExtent = projection.getExtent(); + var size = goog.isNull(projectionExtent) ? 360 * ol.METERS_PER_UNIT[ol.ProjectionUnits.DEGREES] / projection.getMetersPerUnit() : Math.max(projectionExtent[1] - projectionExtent[0], projectionExtent[3] - projectionExtent[2]); + var maxZoom = goog.isDef(opt_maxZoom) ? opt_maxZoom : ol.DEFAULT_MAX_ZOOM; + var tileSize = goog.isDef(opt_tileSize) ? opt_tileSize : [ol.DEFAULT_TILE_SIZE, ol.DEFAULT_TILE_SIZE]; + var resolutions = new Array(maxZoom + 1); + var maxResolution = size / Math.max(tileSize[0], tileSize[1]); + for(var z = 0, zz = resolutions.length;z < zz;++z) { + resolutions[z] = maxResolution / Math.pow(2, z) + } + return new ol.tilegrid.TileGrid({origin:goog.isNull(projectionExtent) ? [0, 0] : ol.extent.getBottomLeft(projectionExtent), resolutions:resolutions, tileSize:tileSize}) +}; +goog.provide("ol.source.Tile"); +goog.provide("ol.source.TileOptions"); +goog.require("goog.functions"); +goog.require("ol.Attribution"); +goog.require("ol.Extent"); +goog.require("ol.Tile"); +goog.require("ol.TileCoord"); +goog.require("ol.TileRange"); +goog.require("ol.source.Source"); +goog.require("ol.tilegrid.TileGrid"); +ol.source.TileOptions; +ol.source.Tile = function(options) { + goog.base(this, {attributions:options.attributions, extent:options.extent, logo:options.logo, projection:options.projection}); + this.opaque_ = goog.isDef(options.opaque) ? options.opaque : false; + this.tileGrid = goog.isDef(options.tileGrid) ? options.tileGrid : null +}; +goog.inherits(ol.source.Tile, ol.source.Source); +ol.source.Tile.prototype.canExpireCache = goog.functions.FALSE; +ol.source.Tile.prototype.expireCache = goog.abstractMethod; +ol.source.Tile.prototype.findLoadedTiles = function(loadedTilesByZ, getTileIfLoaded, z, tileRange) { + var fullyCovered = true; + var tile, tileCoordKey, x, y; + for(x = tileRange.minX;x <= tileRange.maxX;++x) { + for(y = tileRange.minY;y <= tileRange.maxY;++y) { + tileCoordKey = this.getKeyZXY(z, x, y); + if(loadedTilesByZ[z] && loadedTilesByZ[z][tileCoordKey]) { + continue + } + tile = getTileIfLoaded(z, x, y); + if(!goog.isNull(tile)) { + if(!loadedTilesByZ[z]) { + loadedTilesByZ[z] = {} + } + loadedTilesByZ[z][tileCoordKey] = tile + }else { + fullyCovered = false + } + } + } + return fullyCovered +}; +ol.source.Tile.prototype.getKeyZXY = function(z, x, y) { + return ol.TileCoord.getKeyZXY(z, x, y) +}; +ol.source.Tile.prototype.getOpaque = function() { + return this.opaque_ +}; +ol.source.Tile.prototype.getResolutions = function() { + return this.tileGrid.getResolutions() +}; +ol.source.Tile.prototype.getTile = goog.abstractMethod; +ol.source.Tile.prototype.getTileGrid = function() { + return this.tileGrid +}; +ol.source.Tile.prototype.useTile = goog.nullFunction; +goog.provide("ol.renderer.Layer"); +goog.require("goog.Disposable"); +goog.require("ol.FrameState"); +goog.require("ol.Image"); +goog.require("ol.ImageState"); +goog.require("ol.Tile"); +goog.require("ol.TileRange"); +goog.require("ol.TileState"); +goog.require("ol.layer.Layer"); +goog.require("ol.layer.LayerState"); +goog.require("ol.source.Source"); +goog.require("ol.source.Tile"); +ol.renderer.Layer = function(mapRenderer, layer) { + goog.base(this); + this.mapRenderer_ = mapRenderer; + this.layer_ = layer +}; +goog.inherits(ol.renderer.Layer, goog.Disposable); +ol.renderer.Layer.prototype.getFeatureInfoForPixel = function(pixel, success, opt_error) { + var layer = this.getLayer(); + var source = layer.getSource(); + if(goog.isFunction(source.getFeatureInfoForPixel)) { + var callback = function(layerFeatureInfo) { + success(layerFeatureInfo, layer) + }; + source.getFeatureInfoForPixel(pixel, this.getMap(), callback, opt_error) + } +}; +ol.renderer.Layer.prototype.getLayer = function() { + return this.layer_ +}; +ol.renderer.Layer.prototype.getMap = function() { + return this.mapRenderer_.getMap() +}; +ol.renderer.Layer.prototype.getMapRenderer = function() { + return this.mapRenderer_ +}; +ol.renderer.Layer.prototype.handleImageChange = function(event) { + var image = (event.target); + if(image.getState() === ol.ImageState.LOADED) { + this.renderIfReadyAndVisible() + } +}; +ol.renderer.Layer.prototype.renderFrame = goog.abstractMethod; +ol.renderer.Layer.prototype.renderIfReadyAndVisible = function() { + var layer = this.getLayer(); + if(layer.getVisible() && layer.isReady()) { + this.getMap().render() + } +}; +ol.renderer.Layer.prototype.scheduleExpireCache = function(frameState, tileSource) { + if(tileSource.canExpireCache()) { + frameState.postRenderFunctions.push(goog.partial(function(tileSource, map, frameState) { + var tileSourceKey = goog.getUid(tileSource).toString(); + tileSource.expireCache(frameState.usedTiles[tileSourceKey]) + }, tileSource)) + } +}; +ol.renderer.Layer.prototype.updateAttributions = function(attributionsSet, attributions) { + if(goog.isDefAndNotNull(attributions)) { + var attribution, i, ii; + for(i = 0, ii = attributions.length;i < ii;++i) { + attribution = attributions[i]; + attributionsSet[goog.getUid(attribution).toString()] = attribution + } + } +}; +ol.renderer.Layer.prototype.updateLogos = function(frameState, source) { + var logo = source.getLogo(); + if(goog.isDef(logo)) { + frameState.logos[logo] = true + } +}; +ol.renderer.Layer.prototype.updateUsedTiles = function(usedTiles, tileSource, z, tileRange) { + var tileSourceKey = goog.getUid(tileSource).toString(); + var zKey = z.toString(); + if(tileSourceKey in usedTiles) { + if(zKey in usedTiles[tileSourceKey]) { + usedTiles[tileSourceKey][zKey].extend(tileRange) + }else { + usedTiles[tileSourceKey][zKey] = tileRange + } + }else { + usedTiles[tileSourceKey] = {}; + usedTiles[tileSourceKey][zKey] = tileRange + } +}; +ol.renderer.Layer.prototype.createGetTileIfLoadedFunction = function(isLoadedFunction, tileSource, projection) { + return function(z, x, y) { + var tile = tileSource.getTile(z, x, y, projection); + return isLoadedFunction(tile) ? tile : null + } +}; +ol.renderer.Layer.prototype.snapCenterToPixel = function(center, resolution, size) { + return[resolution * (Math.round(center[0] / resolution) + size[0] % 2 / 2), resolution * (Math.round(center[1] / resolution) + size[1] % 2 / 2)] +}; +ol.renderer.Layer.prototype.manageTilePyramid = function(frameState, tileSource, tileGrid, projection, extent, currentZ, preload, opt_tileCallback, opt_obj) { + var tileSourceKey = goog.getUid(tileSource).toString(); + if(!(tileSourceKey in frameState.wantedTiles)) { + frameState.wantedTiles[tileSourceKey] = {} + } + var wantedTiles = frameState.wantedTiles[tileSourceKey]; + var tileQueue = frameState.tileQueue; + var minZoom = tileGrid.getMinZoom(); + var tile, tileRange, tileResolution, x, y, z; + for(z = currentZ;z >= minZoom;--z) { + tileRange = tileGrid.getTileRangeForExtentAndZ(extent, z); + tileResolution = tileGrid.getResolution(z); + for(x = tileRange.minX;x <= tileRange.maxX;++x) { + for(y = tileRange.minY;y <= tileRange.maxY;++y) { + if(currentZ - z <= preload) { + tile = tileSource.getTile(z, x, y, projection); + if(tile.getState() == ol.TileState.IDLE) { + wantedTiles[tile.tileCoord.toString()] = true; + if(!tileQueue.isKeyQueued(tile.getKey())) { + tileQueue.enqueue([tile, tileSourceKey, tileGrid.getTileCoordCenter(tile.tileCoord), tileResolution]) + } + } + if(goog.isDef(opt_tileCallback)) { + opt_tileCallback.call(opt_obj, tile) + } + }else { + tileSource.useTile(z, x, y) + } + } + } + } +}; +goog.provide("ol.renderer.Map"); +goog.require("goog.Disposable"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.require("goog.dispose"); +goog.require("goog.functions"); +goog.require("goog.object"); +goog.require("goog.vec.Mat4"); +goog.require("ol.FrameState"); +goog.require("ol.layer.Layer"); +goog.require("ol.renderer.Layer"); +ol.renderer.Map = function(container, map) { + goog.base(this); + this.map_ = map; + this.layerRenderers_ = {} +}; +goog.inherits(ol.renderer.Map, goog.Disposable); +ol.renderer.Map.prototype.calculateMatrices2D = function(frameState) { + var view2DState = frameState.view2DState; + var coordinateToPixelMatrix = frameState.coordinateToPixelMatrix; + goog.vec.Mat4.makeIdentity(coordinateToPixelMatrix); + goog.vec.Mat4.translate(coordinateToPixelMatrix, frameState.size[0] / 2, frameState.size[1] / 2, 0); + goog.vec.Mat4.scale(coordinateToPixelMatrix, 1 / view2DState.resolution, -1 / view2DState.resolution, 1); + goog.vec.Mat4.rotateZ(coordinateToPixelMatrix, -view2DState.rotation); + goog.vec.Mat4.translate(coordinateToPixelMatrix, -view2DState.center[0], -view2DState.center[1], 0); + var inverted = goog.vec.Mat4.invert(coordinateToPixelMatrix, frameState.pixelToCoordinateMatrix); + goog.asserts.assert(inverted) +}; +ol.renderer.Map.prototype.createLayerRenderer = function(layer) { + return new ol.renderer.Layer(this, layer) +}; +ol.renderer.Map.prototype.disposeInternal = function() { + goog.object.forEach(this.layerRenderers_, function(layerRenderer) { + goog.dispose(layerRenderer) + }); + goog.base(this, "disposeInternal") +}; +ol.renderer.Map.prototype.getCanvas = goog.functions.NULL; +ol.renderer.Map.prototype.getFeatureInfoForPixel = function(pixel, layers, success, opt_error) { + var numLayers = layers.length; + var featureInfo = new Array(numLayers); + var callback = function(layerFeatureInfo, layer) { + featureInfo[goog.array.indexOf(layers, layer)] = layerFeatureInfo; + --numLayers; + if(!numLayers) { + success(featureInfo) + } + }; + var layer, layerRenderer; + for(var i = 0;i < numLayers;++i) { + layer = layers[i]; + layerRenderer = this.getLayerRenderer(layer); + if(goog.isFunction(layerRenderer.getFeatureInfoForPixel)) { + layerRenderer.getFeatureInfoForPixel(pixel, callback, opt_error) + }else { + --numLayers + } + } +}; +ol.renderer.Map.prototype.getFeaturesForPixel = function(pixel, layers, success, opt_error) { + var numLayers = layers.length; + var features = new Array(numLayers); + var callback = function(layerFeatures, layer) { + features[goog.array.indexOf(layers, layer)] = layerFeatures; + --numLayers; + if(!numLayers) { + success(features) + } + }; + var layer, layerRenderer; + for(var i = 0;i < numLayers;++i) { + layer = layers[i]; + layerRenderer = this.getLayerRenderer(layer); + if(goog.isFunction(layerRenderer.getFeaturesForPixel)) { + layerRenderer.getFeaturesForPixel(pixel, callback, opt_error) + }else { + --numLayers + } + } +}; +ol.renderer.Map.prototype.getLayerRenderer = function(layer) { + var layerKey = goog.getUid(layer).toString(); + if(layerKey in this.layerRenderers_) { + return this.layerRenderers_[layerKey] + }else { + var layerRenderer = this.createLayerRenderer(layer); + this.layerRenderers_[layerKey] = layerRenderer; + return layerRenderer + } +}; +ol.renderer.Map.prototype.getLayerRendererByKey = function(layerKey) { + goog.asserts.assert(layerKey in this.layerRenderers_); + return this.layerRenderers_[layerKey] +}; +ol.renderer.Map.prototype.getLayerRenderers = function() { + return this.layerRenderers_ +}; +ol.renderer.Map.prototype.getMap = function() { + return this.map_ +}; +ol.renderer.Map.prototype.removeLayerRendererByKey_ = function(layerKey) { + goog.asserts.assert(layerKey in this.layerRenderers_); + var layerRenderer = this.layerRenderers_[layerKey]; + delete this.layerRenderers_[layerKey]; + return layerRenderer +}; +ol.renderer.Map.prototype.renderFrame = goog.nullFunction; +ol.renderer.Map.prototype.removeUnusedLayerRenderers_ = function(map, frameState) { + var layerKey; + for(layerKey in this.layerRenderers_) { + if(goog.isNull(frameState) || !(layerKey in frameState.layerStates)) { + goog.dispose(this.removeLayerRendererByKey_(layerKey)) + } + } +}; +ol.renderer.Map.prototype.scheduleRemoveUnusedLayerRenderers = function(frameState) { + var layerKey; + for(layerKey in this.layerRenderers_) { + if(!(layerKey in frameState.layerStates)) { + frameState.postRenderFunctions.push(goog.bind(this.removeUnusedLayerRenderers_, this)); + return + } + } +}; +goog.provide("ol.source.Image"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.require("ol.Attribution"); +goog.require("ol.Extent"); +goog.require("ol.Image"); +goog.require("ol.ImageUrlFunction"); +goog.require("ol.ImageUrlFunctionType"); +goog.require("ol.Projection"); +goog.require("ol.Size"); +goog.require("ol.array"); +goog.require("ol.source.Source"); +ol.source.ImageOptions; +ol.source.Image = function(options) { + goog.base(this, {attributions:options.attributions, extent:options.extent, logo:options.logo, projection:options.projection}); + this.imageUrlFunction = goog.isDef(options.imageUrlFunction) ? options.imageUrlFunction : ol.ImageUrlFunction.nullImageUrlFunction; + this.crossOrigin_ = goog.isDef(options.crossOrigin) ? options.crossOrigin : null; + this.resolutions_ = goog.isDef(options.resolutions) ? options.resolutions : null; + goog.asserts.assert(goog.isNull(this.resolutions_) || goog.array.isSorted(this.resolutions_, function(a, b) { + return b - a + }, true)) +}; +goog.inherits(ol.source.Image, ol.source.Source); +ol.source.Image.prototype.createImage = function(extent, resolution, size, projection) { + var image = null; + var imageUrl = this.imageUrlFunction(extent, size, projection); + if(goog.isDef(imageUrl)) { + image = new ol.Image(extent, resolution, imageUrl, this.crossOrigin_, this.getAttributions()) + } + return image +}; +ol.source.Image.prototype.findNearestResolution = function(resolution) { + if(!goog.isNull(this.resolutions_)) { + var idx = ol.array.linearFindNearest(this.resolutions_, resolution, 0); + resolution = this.resolutions_[idx] + } + return resolution +}; +ol.source.Image.prototype.getImage = goog.abstractMethod; +goog.provide("ol.layer.Image"); +goog.require("ol.layer.Layer"); +goog.require("ol.source.Image"); +ol.layer.Image = function(options) { + goog.base(this, options) +}; +goog.inherits(ol.layer.Image, ol.layer.Layer); +ol.layer.Image.prototype.getImageSource = function() { + return(this.getSource()) +}; +goog.provide("ol.layer.Tile"); +goog.require("ol.layer.Layer"); +goog.require("ol.source.Tile"); +ol.layer.TileProperty = {PRELOAD:"preload"}; +ol.layer.Tile = function(options) { + goog.base(this, options); + this.setPreload(goog.isDef(options.preload) ? options.preload : 0) +}; +goog.inherits(ol.layer.Tile, ol.layer.Layer); +ol.layer.Tile.prototype.getPreload = function() { + return(this.get(ol.layer.TileProperty.PRELOAD)) +}; +goog.exportProperty(ol.layer.Tile.prototype, "getPreload", ol.layer.Tile.prototype.getPreload); +ol.layer.Tile.prototype.getTileSource = function() { + return(this.getSource()) +}; +ol.layer.Tile.prototype.setPreload = function(preload) { + this.set(ol.layer.TileProperty.PRELOAD, preload) +}; +goog.exportProperty(ol.layer.Tile.prototype, "setPreload", ol.layer.Tile.prototype.setPreload); +goog.provide("ol.expr.Call"); +goog.provide("ol.expr.Comparison"); +goog.provide("ol.expr.ComparisonOp"); +goog.provide("ol.expr.Expression"); +goog.provide("ol.expr.Identifier"); +goog.provide("ol.expr.Literal"); +goog.provide("ol.expr.Logical"); +goog.provide("ol.expr.LogicalOp"); +goog.provide("ol.expr.Math"); +goog.provide("ol.expr.MathOp"); +goog.provide("ol.expr.Member"); +goog.provide("ol.expr.Not"); +ol.expr.Expression = function() { +}; +ol.expr.Expression.prototype.evaluate = goog.abstractMethod; +ol.expr.Call = function(callee, args) { + this.callee_ = callee; + this.args_ = args +}; +goog.inherits(ol.expr.Call, ol.expr.Expression); +ol.expr.Call.prototype.evaluate = function(opt_scope, opt_fns, opt_this) { + var fnScope = goog.isDefAndNotNull(opt_fns) ? opt_fns : opt_scope; + var fn = this.callee_.evaluate(fnScope); + if(!fn || !goog.isFunction(fn)) { + throw new Error("Expected function but found " + fn); + } + var thisArg = goog.isDef(opt_this) ? opt_this : {}; + var len = this.args_.length; + var values = new Array(len); + for(var i = 0;i < len;++i) { + values[i] = this.args_[i].evaluate(opt_scope, opt_fns, opt_this) + } + return fn.apply(thisArg, values) +}; +ol.expr.Call.prototype.getArgs = function() { + return this.args_ +}; +ol.expr.Call.prototype.getCallee = function() { + return this.callee_ +}; +ol.expr.ComparisonOp = {EQ:"\x3d\x3d", NEQ:"!\x3d", STRICT_EQ:"\x3d\x3d\x3d", STRICT_NEQ:"!\x3d\x3d", GT:"\x3e", LT:"\x3c", GTE:"\x3e\x3d", LTE:"\x3c\x3d"}; +ol.expr.Comparison = function(operator, left, right) { + this.operator_ = operator; + this.left_ = left; + this.right_ = right +}; +goog.inherits(ol.expr.Comparison, ol.expr.Expression); +ol.expr.Comparison.isValidOp = function() { + var valid = {}; + for(var key in ol.expr.ComparisonOp) { + valid[ol.expr.ComparisonOp[key]] = true + } + return function isValidOp(candidate) { + return!!valid[candidate] + } +}(); +ol.expr.Comparison.prototype.evaluate = function(opt_scope, opt_fns, opt_this) { + var result; + var rightVal = this.right_.evaluate(opt_scope, opt_fns, opt_this); + var leftVal = this.left_.evaluate(opt_scope, opt_fns, opt_this); + var op = this.operator_; + if(op === ol.expr.ComparisonOp.EQ) { + result = leftVal == rightVal + }else { + if(op === ol.expr.ComparisonOp.NEQ) { + result = leftVal != rightVal + }else { + if(op === ol.expr.ComparisonOp.STRICT_EQ) { + result = leftVal === rightVal + }else { + if(op === ol.expr.ComparisonOp.STRICT_NEQ) { + result = leftVal !== rightVal + }else { + if(op === ol.expr.ComparisonOp.GT) { + result = leftVal > rightVal + }else { + if(op === ol.expr.ComparisonOp.LT) { + result = leftVal < rightVal + }else { + if(op === ol.expr.ComparisonOp.GTE) { + result = leftVal >= rightVal + }else { + if(op === ol.expr.ComparisonOp.LTE) { + result = leftVal <= rightVal + }else { + throw new Error("Unsupported comparison operator: " + this.operator_); + } + } + } + } + } + } + } + } + return result +}; +ol.expr.Comparison.prototype.getOperator = function() { + return this.operator_ +}; +ol.expr.Comparison.prototype.getLeft = function() { + return this.left_ +}; +ol.expr.Comparison.prototype.getRight = function() { + return this.right_ +}; +ol.expr.Identifier = function(name) { + this.name_ = name +}; +goog.inherits(ol.expr.Identifier, ol.expr.Expression); +ol.expr.Identifier.prototype.evaluate = function(opt_scope) { + if(!goog.isDefAndNotNull(opt_scope)) { + throw new Error("Attempt to evaluate identifier with no scope"); + } + return opt_scope[this.name_] +}; +ol.expr.Identifier.prototype.getName = function() { + return this.name_ +}; +ol.expr.Literal = function(value) { + this.value_ = value +}; +goog.inherits(ol.expr.Literal, ol.expr.Expression); +ol.expr.Literal.prototype.evaluate = function() { + return this.value_ +}; +ol.expr.Literal.prototype.getValue = function() { + return this.value_ +}; +ol.expr.LogicalOp = {AND:"\x26\x26", OR:"||"}; +ol.expr.Logical = function(operator, left, right) { + this.operator_ = operator; + this.left_ = left; + this.right_ = right +}; +goog.inherits(ol.expr.Logical, ol.expr.Expression); +ol.expr.Logical.isValidOp = function() { + var valid = {}; + for(var key in ol.expr.LogicalOp) { + valid[ol.expr.LogicalOp[key]] = true + } + return function isValidOp(candidate) { + return!!valid[candidate] + } +}(); +ol.expr.Logical.prototype.evaluate = function(opt_scope, opt_fns, opt_this) { + var result; + var rightVal = this.right_.evaluate(opt_scope, opt_fns, opt_this); + var leftVal = this.left_.evaluate(opt_scope, opt_fns, opt_this); + if(this.operator_ === ol.expr.LogicalOp.AND) { + result = leftVal && rightVal + }else { + if(this.operator_ === ol.expr.LogicalOp.OR) { + result = leftVal || rightVal + }else { + throw new Error("Unsupported logical operator: " + this.operator_); + } + } + return result +}; +ol.expr.Logical.prototype.getOperator = function() { + return this.operator_ +}; +ol.expr.Logical.prototype.getLeft = function() { + return this.left_ +}; +ol.expr.Logical.prototype.getRight = function() { + return this.right_ +}; +ol.expr.MathOp = {ADD:"+", SUBTRACT:"-", MULTIPLY:"*", DIVIDE:"/", MOD:"%"}; +ol.expr.Math = function(operator, left, right) { + this.operator_ = operator; + this.left_ = left; + this.right_ = right +}; +goog.inherits(ol.expr.Math, ol.expr.Expression); +ol.expr.Math.isValidOp = function() { + var valid = {}; + for(var key in ol.expr.MathOp) { + valid[ol.expr.MathOp[key]] = true + } + return function isValidOp(candidate) { + return!!valid[candidate] + } +}(); +ol.expr.Math.prototype.evaluate = function(opt_scope, opt_fns, opt_this) { + var result; + var rightVal = this.right_.evaluate(opt_scope, opt_fns, opt_this); + var leftVal = this.left_.evaluate(opt_scope, opt_fns, opt_this); + var op = this.operator_; + if(op === ol.expr.MathOp.ADD) { + result = leftVal + rightVal + }else { + if(op === ol.expr.MathOp.SUBTRACT) { + result = Number(leftVal) - Number(rightVal) + }else { + if(op === ol.expr.MathOp.MULTIPLY) { + result = Number(leftVal) * Number(rightVal) + }else { + if(op === ol.expr.MathOp.DIVIDE) { + result = Number(leftVal) / Number(rightVal) + }else { + if(op === ol.expr.MathOp.MOD) { + result = Number(leftVal) % Number(rightVal) + }else { + throw new Error("Unsupported math operator: " + this.operator_); + } + } + } + } + } + return result +}; +ol.expr.Math.prototype.getOperator = function() { + return this.operator_ +}; +ol.expr.Math.prototype.getLeft = function() { + return this.left_ +}; +ol.expr.Math.prototype.getRight = function() { + return this.right_ +}; +ol.expr.Member = function(object, property) { + this.object_ = object; + this.property_ = property +}; +goog.inherits(ol.expr.Member, ol.expr.Expression); +ol.expr.Member.prototype.evaluate = function(opt_scope, opt_fns, opt_this) { + var obj = this.object_.evaluate(opt_scope, opt_fns, opt_this); + if(!goog.isObject(obj)) { + throw new Error("Expected member expression to evaluate to an object " + "but got " + obj); + } + return this.property_.evaluate((obj)) +}; +ol.expr.Member.prototype.getObject = function() { + return this.object_ +}; +ol.expr.Member.prototype.getProperty = function() { + return this.property_ +}; +ol.expr.Not = function(argument) { + this.argument_ = argument +}; +goog.inherits(ol.expr.Not, ol.expr.Expression); +ol.expr.Not.prototype.evaluate = function(opt_scope, opt_fns, opt_this) { + return!this.argument_.evaluate(opt_scope, opt_fns, opt_this) +}; +ol.expr.Not.prototype.getArgument = function() { + return this.argument_ +}; +goog.provide("ol.expr.Char"); +goog.provide("ol.expr.Lexer"); +goog.provide("ol.expr.Token"); +goog.provide("ol.expr.TokenType"); +goog.provide("ol.expr.UnexpectedToken"); +goog.require("goog.asserts"); +goog.require("goog.debug.Error"); +ol.expr.Char = {AMPERSAND:38, BACKSLASH:92, BANG:33, CARRIAGE_RETURN:13, COMMA:44, DIGIT_0:48, DIGIT_7:55, DIGIT_9:57, DOLLAR:36, DOUBLE_QUOTE:34, DOT:46, EQUAL:61, FORM_FEED:12, GREATER:62, LEFT_PAREN:40, LESS:60, LINE_FEED:10, LINE_SEPARATOR:8232, LOWER_A:97, LOWER_E:101, LOWER_F:102, LOWER_X:120, LOWER_Z:122, MINUS:45, NONBREAKING_SPACE:160, PARAGRAPH_SEPARATOR:8233, PERCENT:37, PIPE:124, PLUS:43, RIGHT_PAREN:41, SINGLE_QUOTE:39, SLASH:47, SPACE:32, STAR:42, TAB:9, TILDE:126, UNDERSCORE:95, UPPER_A:65, +UPPER_E:69, UPPER_F:70, UPPER_X:88, UPPER_Z:90, VERTICAL_TAB:11}; +ol.expr.TokenType = {BOOLEAN_LITERAL:"Boolean", EOF:"\x3cend\x3e", IDENTIFIER:"Identifier", KEYWORD:"Keyword", NULL_LITERAL:"Null", NUMERIC_LITERAL:"Numeric", PUNCTUATOR:"Punctuator", STRING_LITERAL:"String", UNKNOWN:"Unknown"}; +ol.expr.Token; +ol.expr.Lexer = function(source) { + this.source_ = source; + this.length_ = source.length; + this.index_ = 0; + this.nextIndex_ = 0 +}; +ol.expr.Lexer.prototype.expect = function(value) { + var match = this.match(value); + if(!match) { + throw new ol.expr.UnexpectedToken({type:ol.expr.TokenType.UNKNOWN, value:this.getCurrentChar_(), index:this.index_}); + } + this.skip() +}; +ol.expr.Lexer.prototype.increment_ = function(delta) { + this.index_ += delta +}; +ol.expr.Lexer.prototype.isDecimalDigit_ = function(code) { + return code >= ol.expr.Char.DIGIT_0 && code <= ol.expr.Char.DIGIT_9 +}; +ol.expr.Lexer.prototype.isFutureReservedWord_ = function(id) { + return id === "class" || id === "enum" || id === "export" || id === "extends" || id === "import" || id === "super" +}; +ol.expr.Lexer.prototype.isHexDigit_ = function(code) { + return this.isDecimalDigit_(code) || code >= ol.expr.Char.LOWER_A && code <= ol.expr.Char.LOWER_F || code >= ol.expr.Char.UPPER_A && code <= ol.expr.Char.UPPER_F +}; +ol.expr.Lexer.prototype.isIdentifierPart_ = function(code) { + return this.isIdentifierStart_(code) || code >= ol.expr.Char.DIGIT_0 && code <= ol.expr.Char.DIGIT_9 +}; +ol.expr.Lexer.prototype.isIdentifierStart_ = function(code) { + return code === ol.expr.Char.DOLLAR || code === ol.expr.Char.UNDERSCORE || code >= ol.expr.Char.UPPER_A && code <= ol.expr.Char.UPPER_Z || code >= ol.expr.Char.LOWER_A && code <= ol.expr.Char.LOWER_Z +}; +ol.expr.Lexer.prototype.isKeyword_ = function(id) { + return id === "break" || id === "case" || id === "catch" || id === "continue" || id === "debugger" || id === "default" || id === "delete" || id === "do" || id === "else" || id === "finally" || id === "for" || id === "function" || id === "if" || id === "in" || id === "instanceof" || id === "new" || id === "return" || id === "switch" || id === "this" || id === "throw" || id === "try" || id === "typeof" || id === "var" || id === "void" || id === "while" || id === "with" +}; +ol.expr.Lexer.prototype.isLineTerminator_ = function(code) { + return code === ol.expr.Char.LINE_FEED || code === ol.expr.Char.CARRIAGE_RETURN || code === ol.expr.Char.LINE_SEPARATOR || code === ol.expr.Char.PARAGRAPH_SEPARATOR +}; +ol.expr.Lexer.prototype.isOctalDigit_ = function(code) { + return code >= ol.expr.Char.DIGIT_0 && code <= ol.expr.Char.DIGIT_7 +}; +ol.expr.Lexer.prototype.isWhitespace_ = function(code) { + return code === ol.expr.Char.SPACE || code === ol.expr.Char.TAB || code === ol.expr.Char.VERTICAL_TAB || code === ol.expr.Char.FORM_FEED || code === ol.expr.Char.NONBREAKING_SPACE || code >= 5760 && "\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005" + "\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\ufeff".indexOf(String.fromCharCode(code)) > 0 +}; +ol.expr.Lexer.prototype.getCharCode_ = function(delta) { + return this.source_.charCodeAt(this.index_ + delta) +}; +ol.expr.Lexer.prototype.getCurrentChar_ = function() { + return this.source_[this.index_] +}; +ol.expr.Lexer.prototype.getCurrentCharCode_ = function() { + return this.getCharCode_(0) +}; +ol.expr.Lexer.prototype.match = function(value) { + var token = this.peek(); + return token.type === ol.expr.TokenType.PUNCTUATOR && token.value === value +}; +ol.expr.Lexer.prototype.next = function() { + var code = this.skipWhitespace_(); + if(this.index_ >= this.length_) { + return{type:ol.expr.TokenType.EOF, value:null, index:this.index_} + } + if(code === ol.expr.Char.LEFT_PAREN || code === ol.expr.Char.RIGHT_PAREN) { + return this.scanPunctuator_(code) + } + if(code === ol.expr.Char.SINGLE_QUOTE || code === ol.expr.Char.DOUBLE_QUOTE) { + return this.scanStringLiteral_(code) + } + if(this.isIdentifierStart_(code)) { + return this.scanIdentifier_(code) + } + if(code === ol.expr.Char.DOT) { + if(this.isDecimalDigit_(this.getCharCode_(1))) { + return this.scanNumericLiteral_(code) + } + return this.scanPunctuator_(code) + } + if(this.isDecimalDigit_(code)) { + return this.scanNumericLiteral_(code) + } + return this.scanPunctuator_(code) +}; +ol.expr.Lexer.prototype.peek = function() { + var currentIndex = this.index_; + var token = this.next(); + this.nextIndex_ = this.index_; + this.index_ = currentIndex; + return token +}; +ol.expr.Lexer.prototype.scanHexLiteral_ = function(code) { + var str = ""; + var start = this.index_ - 2; + while(this.index_ < this.length_) { + if(!this.isHexDigit_(code)) { + break + } + str += String.fromCharCode(code); + this.increment_(1); + code = this.getCurrentCharCode_() + } + if(str.length === 0 || this.isIdentifierStart_(code)) { + throw new ol.expr.UnexpectedToken({type:ol.expr.TokenType.UNKNOWN, value:String.fromCharCode(code), index:this.index_}); + } + goog.asserts.assert(!isNaN(parseInt("0x" + str, 16)), "Valid hex: " + str); + return{type:ol.expr.TokenType.NUMERIC_LITERAL, value:parseInt("0x" + str, 16), index:start} +}; +ol.expr.Lexer.prototype.scanIdentifier_ = function(code) { + goog.asserts.assert(this.isIdentifierStart_(code), "Must be called with a valid identifier"); + var start = this.index_; + this.increment_(1); + while(this.index_ < this.length_) { + code = this.getCurrentCharCode_(); + if(this.isIdentifierPart_(code)) { + this.increment_(1) + }else { + break + } + } + var id = this.source_.slice(start, this.index_); + var type; + if(id.length === 1) { + type = ol.expr.TokenType.IDENTIFIER + }else { + if(this.isKeyword_(id)) { + type = ol.expr.TokenType.KEYWORD + }else { + if(id === "null") { + type = ol.expr.TokenType.NULL_LITERAL + }else { + if(id === "true" || id === "false") { + type = ol.expr.TokenType.BOOLEAN_LITERAL + }else { + type = ol.expr.TokenType.IDENTIFIER + } + } + } + } + return{type:type, value:id, index:start} +}; +ol.expr.Lexer.prototype.scanNumericLiteral_ = function(code) { + goog.asserts.assert(code === ol.expr.Char.DOT || this.isDecimalDigit_(code), "Valid start for numeric literal: " + String.fromCharCode(code)); + var str = ""; + var start = this.index_; + if(code !== ol.expr.Char.DOT) { + if(code === ol.expr.Char.DIGIT_0) { + var nextCode = this.getCharCode_(1); + if(nextCode === ol.expr.Char.UPPER_X || nextCode === ol.expr.Char.LOWER_X) { + this.increment_(2); + return this.scanHexLiteral_(this.getCurrentCharCode_()) + } + if(this.isOctalDigit_(nextCode)) { + this.increment_(1); + return this.scanOctalLiteral_(nextCode) + } + if(this.isDecimalDigit_(nextCode)) { + throw new ol.expr.UnexpectedToken({type:ol.expr.TokenType.UNKNOWN, value:String.fromCharCode(nextCode), index:this.index_}); + } + } + while(this.isDecimalDigit_(code)) { + str += String.fromCharCode(code); + this.increment_(1); + code = this.getCurrentCharCode_() + } + } + if(code === ol.expr.Char.DOT) { + str += String.fromCharCode(code); + this.increment_(1); + code = this.getCurrentCharCode_(); + while(this.isDecimalDigit_(code)) { + str += String.fromCharCode(code); + this.increment_(1); + code = this.getCurrentCharCode_() + } + } + if(code === ol.expr.Char.UPPER_E || code === ol.expr.Char.LOWER_E) { + str += "E"; + this.increment_(1); + code = this.getCurrentCharCode_(); + if(code === ol.expr.Char.PLUS || code === ol.expr.Char.MINUS) { + str += String.fromCharCode(code); + this.increment_(1); + code = this.getCurrentCharCode_() + } + if(!this.isDecimalDigit_(code)) { + throw new ol.expr.UnexpectedToken({type:ol.expr.TokenType.UNKNOWN, value:String.fromCharCode(code), index:this.index_}); + } + while(this.isDecimalDigit_(code)) { + str += String.fromCharCode(code); + this.increment_(1); + code = this.getCurrentCharCode_() + } + } + if(this.isIdentifierStart_(code)) { + throw new ol.expr.UnexpectedToken({type:ol.expr.TokenType.UNKNOWN, value:String.fromCharCode(code), index:this.index_}); + } + goog.asserts.assert(!isNaN(parseFloat(str)), "Valid number: " + str); + return{type:ol.expr.TokenType.NUMERIC_LITERAL, value:parseFloat(str), index:start} +}; +ol.expr.Lexer.prototype.scanOctalLiteral_ = function(code) { + goog.asserts.assert(this.isOctalDigit_(code)); + var str = "0" + String.fromCharCode(code); + var start = this.index_ - 1; + this.increment_(1); + while(this.index_ < this.length_) { + code = this.getCurrentCharCode_(); + if(!this.isOctalDigit_(code)) { + break + } + str += String.fromCharCode(code); + this.increment_(1) + } + code = this.getCurrentCharCode_(); + if(this.isIdentifierStart_(code) || this.isDecimalDigit_(code)) { + throw new ol.expr.UnexpectedToken({type:ol.expr.TokenType.UNKNOWN, value:String.fromCharCode(code), index:this.index_}); + } + goog.asserts.assert(!isNaN(parseInt(str, 8)), "Valid octal: " + str); + return{type:ol.expr.TokenType.NUMERIC_LITERAL, value:parseInt(str, 8), index:start} +}; +ol.expr.Lexer.prototype.scanPunctuator_ = function(code) { + var start = this.index_; + if(code === ol.expr.Char.DOT || code === ol.expr.Char.LEFT_PAREN || code === ol.expr.Char.RIGHT_PAREN || code === ol.expr.Char.COMMA || code === ol.expr.Char.PLUS || code === ol.expr.Char.MINUS || code === ol.expr.Char.STAR || code === ol.expr.Char.SLASH || code === ol.expr.Char.PERCENT || code === ol.expr.Char.TILDE) { + this.increment_(1); + return{type:ol.expr.TokenType.PUNCTUATOR, value:String.fromCharCode(code), index:start} + } + var nextCode = this.getCharCode_(1); + if(nextCode === ol.expr.Char.EQUAL) { + if(code === ol.expr.Char.BANG || code === ol.expr.Char.EQUAL) { + this.increment_(2); + if(this.getCurrentCharCode_() === ol.expr.Char.EQUAL) { + this.increment_(1); + return{type:ol.expr.TokenType.PUNCTUATOR, value:String.fromCharCode(code) + "\x3d\x3d", index:start} + }else { + return{type:ol.expr.TokenType.PUNCTUATOR, value:String.fromCharCode(code) + "\x3d", index:start} + } + } + if(code === ol.expr.Char.GREATER || code === ol.expr.Char.LESS) { + this.increment_(2); + return{type:ol.expr.TokenType.PUNCTUATOR, value:String.fromCharCode(code) + "\x3d", index:start} + } + } + if(code === nextCode && (code === ol.expr.Char.PIPE || code === ol.expr.Char.AMPERSAND)) { + this.increment_(2); + var str = String.fromCharCode(code); + return{type:ol.expr.TokenType.PUNCTUATOR, value:str + str, index:start} + } + if(code === ol.expr.Char.GREATER || code === ol.expr.Char.LESS || code === ol.expr.Char.BANG || code === ol.expr.Char.AMPERSAND || code === ol.expr.Char.PIPE) { + this.increment_(1); + return{type:ol.expr.TokenType.PUNCTUATOR, value:String.fromCharCode(code), index:start} + } + throw new ol.expr.UnexpectedToken({type:ol.expr.TokenType.UNKNOWN, value:String.fromCharCode(code), index:this.index_}); +}; +ol.expr.Lexer.prototype.scanStringLiteral_ = function(quote) { + goog.asserts.assert(quote === ol.expr.Char.SINGLE_QUOTE || quote === ol.expr.Char.DOUBLE_QUOTE, "Strings must start with a quote: " + String.fromCharCode(quote)); + var start = this.index_; + this.increment_(1); + var str = ""; + var code; + while(this.index_ < this.length_) { + code = this.getCurrentCharCode_(); + this.increment_(1); + if(code === quote) { + quote = 0; + break + } + if(code === ol.expr.Char.BACKSLASH) { + str += this.getCurrentChar_(); + this.increment_(1) + }else { + str += String.fromCharCode(code) + } + } + if(quote !== 0) { + throw new ol.expr.UnexpectedToken(this.peek()); + } + return{type:ol.expr.TokenType.STRING_LITERAL, value:str, index:start} +}; +ol.expr.Lexer.prototype.skip = function() { + this.index_ = this.nextIndex_ +}; +ol.expr.Lexer.prototype.skipWhitespace_ = function() { + var code = NaN; + while(this.index_ < this.length_) { + code = this.getCurrentCharCode_(); + if(this.isWhitespace_(code)) { + this.increment_(1) + }else { + break + } + } + return code +}; +ol.expr.UnexpectedToken = function(token, opt_message) { + var message = goog.isDef(opt_message) ? opt_message : "Unexpected token " + token.value + " at index " + token.index; + goog.debug.Error.call(this, message); + this.token = token +}; +goog.inherits(ol.expr.UnexpectedToken, goog.debug.Error); +ol.expr.UnexpectedToken.prototype.name = "UnexpectedToken"; +goog.provide("ol.expr.Parser"); +goog.require("goog.asserts"); +goog.require("ol.expr.Call"); +goog.require("ol.expr.Comparison"); +goog.require("ol.expr.ComparisonOp"); +goog.require("ol.expr.Expression"); +goog.require("ol.expr.Identifier"); +goog.require("ol.expr.Lexer"); +goog.require("ol.expr.Literal"); +goog.require("ol.expr.Logical"); +goog.require("ol.expr.LogicalOp"); +goog.require("ol.expr.Math"); +goog.require("ol.expr.MathOp"); +goog.require("ol.expr.Member"); +goog.require("ol.expr.Not"); +goog.require("ol.expr.Token"); +goog.require("ol.expr.TokenType"); +goog.require("ol.expr.UnexpectedToken"); +ol.expr.Parser = function() { +}; +ol.expr.Parser.prototype.binaryPrecedence_ = function(token) { + var precedence = 0; + if(token.type !== ol.expr.TokenType.PUNCTUATOR) { + return precedence + } + switch(token.value) { + case ol.expr.LogicalOp.OR: + precedence = 1; + break; + case ol.expr.LogicalOp.AND: + precedence = 2; + break; + case ol.expr.ComparisonOp.EQ: + ; + case ol.expr.ComparisonOp.NEQ: + ; + case ol.expr.ComparisonOp.STRICT_EQ: + ; + case ol.expr.ComparisonOp.STRICT_NEQ: + precedence = 3; + break; + case ol.expr.ComparisonOp.GT: + ; + case ol.expr.ComparisonOp.LT: + ; + case ol.expr.ComparisonOp.GTE: + ; + case ol.expr.ComparisonOp.LTE: + precedence = 4; + break; + case ol.expr.MathOp.ADD: + ; + case ol.expr.MathOp.SUBTRACT: + precedence = 5; + break; + case ol.expr.MathOp.MULTIPLY: + ; + case ol.expr.MathOp.DIVIDE: + ; + case ol.expr.MathOp.MOD: + precedence = 6; + break; + default: + break + } + return precedence +}; +ol.expr.Parser.prototype.createBinaryExpression_ = function(operator, left, right) { + var expr; + if(ol.expr.Comparison.isValidOp(operator)) { + expr = new ol.expr.Comparison((operator), left, right) + }else { + if(ol.expr.Logical.isValidOp(operator)) { + expr = new ol.expr.Logical((operator), left, right) + }else { + if(ol.expr.Math.isValidOp(operator)) { + expr = new ol.expr.Math((operator), left, right) + }else { + throw new Error("Unsupported binary operator: " + operator); + } + } + } + return expr +}; +ol.expr.Parser.prototype.createCallExpression_ = function(callee, args) { + return new ol.expr.Call(callee, args) +}; +ol.expr.Parser.prototype.createIdentifier_ = function(name) { + return new ol.expr.Identifier(name) +}; +ol.expr.Parser.prototype.createLiteral_ = function(value) { + return new ol.expr.Literal(value) +}; +ol.expr.Parser.prototype.createMemberExpression_ = function(object, property) { + return new ol.expr.Member(object, property) +}; +ol.expr.Parser.prototype.createUnaryExpression_ = function(op, argument) { + goog.asserts.assert(op.value === "!" || op.value === "+" || op.value === "-"); + var expr; + if(op.value === "!") { + expr = new ol.expr.Not(argument) + }else { + if(!(argument instanceof ol.expr.Literal)) { + throw new ol.expr.UnexpectedToken(op); + }else { + if(op.value === "+") { + expr = this.createLiteral_(+(argument.evaluate())) + }else { + expr = this.createLiteral_(-(argument.evaluate())) + } + } + } + return expr +}; +ol.expr.Parser.prototype.parse = function(source) { + var lexer = new ol.expr.Lexer(source); + var expr = this.parseExpression_(lexer); + var token = lexer.peek(); + if(token.type !== ol.expr.TokenType.EOF) { + throw new ol.expr.UnexpectedToken(token); + } + return expr +}; +ol.expr.Parser.prototype.parseArguments_ = function(lexer) { + var args = []; + lexer.expect("("); + if(!lexer.match(")")) { + while(true) { + args.push(this.parseBinaryExpression_(lexer)); + if(lexer.match(")")) { + break + } + lexer.expect(",") + } + } + lexer.skip(); + return args +}; +ol.expr.Parser.prototype.parseBinaryExpression_ = function(lexer) { + var left = this.parseUnaryExpression_(lexer); + var operator = lexer.peek(); + var precedence = this.binaryPrecedence_(operator); + if(precedence === 0) { + return left + } + lexer.skip(); + var right = this.parseUnaryExpression_(lexer); + var stack = [left, operator, right]; + precedence = this.binaryPrecedence_(lexer.peek()); + while(precedence > 0) { + while(stack.length > 2 && precedence <= this.binaryPrecedence_(stack[stack.length - 2])) { + right = stack.pop(); + operator = stack.pop(); + left = stack.pop(); + stack.push(this.createBinaryExpression_(operator.value, left, right)) + } + stack.push(lexer.next()); + stack.push(this.parseUnaryExpression_(lexer)); + precedence = this.binaryPrecedence_(lexer.peek()) + } + var i = stack.length - 1; + var expr = stack[i]; + while(i > 1) { + expr = this.createBinaryExpression_(stack[i - 1].value, stack[i - 2], expr); + i -= 2 + } + return expr +}; +ol.expr.Parser.prototype.parseGroupExpression_ = function(lexer) { + lexer.expect("("); + var expr = this.parseExpression_(lexer); + lexer.expect(")"); + return expr +}; +ol.expr.Parser.prototype.parseLeftHandSideExpression_ = function(lexer) { + var expr = this.parsePrimaryExpression_(lexer); + var token = lexer.peek(); + if(token.value === "(") { + if(!(expr instanceof ol.expr.Identifier)) { + throw new ol.expr.UnexpectedToken(token); + } + var args = this.parseArguments_(lexer); + expr = this.createCallExpression_(expr, args) + }else { + while(token.value === ".") { + var property = this.parseNonComputedMember_(lexer); + expr = this.createMemberExpression_(expr, property); + token = lexer.peek() + } + } + return expr +}; +ol.expr.Parser.prototype.parseNonComputedMember_ = function(lexer) { + lexer.expect("."); + var token = lexer.next(); + if(token.type !== ol.expr.TokenType.IDENTIFIER && token.type !== ol.expr.TokenType.KEYWORD && token.type !== ol.expr.TokenType.BOOLEAN_LITERAL && token.type !== ol.expr.TokenType.NULL_LITERAL) { + throw new ol.expr.UnexpectedToken(token); + } + return this.createIdentifier_(String(token.value)) +}; +ol.expr.Parser.prototype.parsePrimaryExpression_ = function(lexer) { + var token = lexer.peek(); + if(token.value === "(") { + return this.parseGroupExpression_(lexer) + } + lexer.skip(); + var expr; + var type = token.type; + if(type === ol.expr.TokenType.IDENTIFIER) { + expr = this.createIdentifier_((token.value)) + }else { + if(type === ol.expr.TokenType.STRING_LITERAL || type === ol.expr.TokenType.NUMERIC_LITERAL) { + expr = this.createLiteral_(token.value) + }else { + if(type === ol.expr.TokenType.BOOLEAN_LITERAL) { + expr = this.createLiteral_(token.value === "true") + }else { + if(type === ol.expr.TokenType.NULL_LITERAL) { + expr = this.createLiteral_(null) + }else { + throw new ol.expr.UnexpectedToken(token); + } + } + } + } + return expr +}; +ol.expr.Parser.prototype.parseUnaryExpression_ = function(lexer) { + var expr; + var operator = lexer.peek(); + if(operator.type !== ol.expr.TokenType.PUNCTUATOR) { + expr = this.parseLeftHandSideExpression_(lexer) + }else { + if(operator.value === "!" || operator.value === "-" || operator.value === "+") { + lexer.skip(); + expr = this.parseUnaryExpression_(lexer); + expr = this.createUnaryExpression_(operator, expr) + }else { + expr = this.parseLeftHandSideExpression_(lexer) + } + } + return expr +}; +ol.expr.Parser.prototype.parseExpression_ = function(lexer) { + return this.parseBinaryExpression_(lexer) +}; +goog.provide("ol.expr"); +goog.provide("ol.expr.functions"); +goog.require("ol.Extent"); +goog.require("ol.Feature"); +goog.require("ol.expr.Call"); +goog.require("ol.expr.Expression"); +goog.require("ol.expr.Identifier"); +goog.require("ol.expr.Parser"); +goog.require("ol.extent"); +goog.require("ol.geom.GeometryType"); +ol.expr.evaluateFeature = function(expr, opt_feature) { + var result; + if(goog.isDef(opt_feature)) { + result = expr.evaluate(opt_feature.getAttributes(), ol.expr.lib, opt_feature) + }else { + result = expr.evaluate() + } + return result +}; +ol.expr.parse = function(source) { + var parser = new ol.expr.Parser; + return parser.parse(source) +}; +ol.expr.register = function(name, func) { + ol.expr.lib[name] = func +}; +ol.expr.isLibCall = function(expr) { + var name; + if(expr instanceof ol.expr.Call) { + var callee = expr.getCallee(); + if(callee instanceof ol.expr.Identifier) { + name = callee.getName(); + if(!ol.expr.lib.hasOwnProperty(name)) { + name = undefined + } + } + } + return name +}; +ol.expr.lib = {}; +ol.expr.functions = {CONCAT:"concat", EXTENT:"extent", FID:"fid", GEOMETRY_TYPE:"geometryType", RENDER_INTENT:"renderIntent", INTERSECTS:"intersects", CONTAINS:"contains", DWITHIN:"dwithin", WITHIN:"within", LIKE:"like", IEQ:"ieq", INEQ:"ineq"}; +ol.expr.lib[ol.expr.functions.CONCAT] = function(var_args) { + var str = ""; + for(var i = 0, ii = arguments.length;i < ii;++i) { + str += String(arguments[i]) + } + return str +}; +ol.expr.lib[ol.expr.functions.EXTENT] = function(minX, maxX, minY, maxY, opt_projection, opt_attribute) { + var intersects = false; + var geometry = goog.isDef(opt_attribute) ? this.get(opt_attribute) : this.getGeometry(); + if(geometry) { + intersects = ol.extent.intersects(geometry.getBounds(), [minX, maxX, minY, maxY]) + } + return intersects +}; +ol.expr.lib[ol.expr.functions.FID] = function(var_args) { + var matches = false; + var id = this.getFeatureId(); + if(goog.isDef(id)) { + for(var i = 0, ii = arguments.length;i < ii;++i) { + if(arguments[i] === id) { + matches = true; + break + } + } + } + return matches +}; +ol.expr.lib[ol.expr.functions.LIKE] = function(value, pattern, wildCard, singleChar, escapeChar, matchCase) { + if(wildCard == ".") { + throw new Error('"." is an unsupported wildCard character for ' + 'the "like" function'); + } + wildCard = goog.isDef(wildCard) ? wildCard : "*"; + singleChar = goog.isDef(singleChar) ? singleChar : "."; + escapeChar = goog.isDef(escapeChar) ? escapeChar : "!"; + pattern = pattern.replace(new RegExp("\\" + escapeChar + "(.|$)", "g"), "\\$1"); + pattern = pattern.replace(new RegExp("\\" + singleChar, "g"), "."); + pattern = pattern.replace(new RegExp("\\" + wildCard, "g"), ".*"); + pattern = pattern.replace(new RegExp("\\\\.\\*", "g"), "\\" + wildCard); + pattern = pattern.replace(new RegExp("\\\\\\.", "g"), "\\" + singleChar); + var modifiers = matchCase === false ? "gi" : "g"; + return(new RegExp(pattern, modifiers)).test(value) +}; +ol.expr.lib[ol.expr.functions.IEQ] = function(first, second) { + if(goog.isString(first) && goog.isString(second)) { + return first.toUpperCase() == second.toUpperCase() + }else { + return first == second + } +}; +ol.expr.lib[ol.expr.functions.INEQ] = function(first, second) { + if(goog.isString(first) && goog.isString(second)) { + return first.toUpperCase() != second.toUpperCase() + }else { + return first != second + } +}; +ol.expr.lib[ol.expr.functions.GEOMETRY_TYPE] = function(type) { + var same = false; + var geometry = this.getGeometry(); + if(geometry) { + same = geometry.getType() === type + } + return same +}; +ol.expr.lib[ol.expr.functions.RENDER_INTENT] = function(renderIntent) { + return this.renderIntent == renderIntent +}; +ol.expr.lib[ol.expr.functions.INTERSECTS] = function(geom, opt_projection, opt_attribute) { + throw new Error("Spatial function not implemented: " + ol.expr.functions.INTERSECTS); +}; +ol.expr.lib[ol.expr.functions.WITHIN] = function(geom, opt_projection, opt_attribute) { + throw new Error("Spatial function not implemented: " + ol.expr.functions.WITHIN); +}; +ol.expr.lib[ol.expr.functions.CONTAINS] = function(geom, opt_projeciton, opt_attribute) { + throw new Error("Spatial function not implemented: " + ol.expr.functions.CONTAINS); +}; +ol.expr.lib[ol.expr.functions.DWITHIN] = function(geom, distance, units, opt_projection, opt_attribute) { + throw new Error("Spatial function not implemented: " + ol.expr.functions.DWITHIN); +}; +goog.provide("goog.json"); +goog.provide("goog.json.Serializer"); +goog.json.isValid_ = function(s) { + if(/^\s*$/.test(s)) { + return false + } + var backslashesRe = /\\["\\\/bfnrtu]/g; + var simpleValuesRe = /"[^"\\\n\r\u2028\u2029\x00-\x08\x0a-\x1f]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g; + var openBracketsRe = /(?:^|:|,)(?:[\s\u2028\u2029]*\[)+/g; + var remainderRe = /^[\],:{}\s\u2028\u2029]*$/; + return remainderRe.test(s.replace(backslashesRe, "@").replace(simpleValuesRe, "]").replace(openBracketsRe, "")) +}; +goog.json.parse = function(s) { + var o = String(s); + if(goog.json.isValid_(o)) { + try { + return(eval("(" + o + ")")) + }catch(ex) { + } + } + throw Error("Invalid JSON string: " + o); +}; +goog.json.unsafeParse = function(s) { + return(eval("(" + s + ")")) +}; +goog.json.Replacer; +goog.json.Reviver; +goog.json.serialize = function(object, opt_replacer) { + return(new goog.json.Serializer(opt_replacer)).serialize(object) +}; +goog.json.Serializer = function(opt_replacer) { + this.replacer_ = opt_replacer +}; +goog.json.Serializer.prototype.serialize = function(object) { + var sb = []; + this.serialize_(object, sb); + return sb.join("") +}; +goog.json.Serializer.prototype.serialize_ = function(object, sb) { + switch(typeof object) { + case "string": + this.serializeString_((object), sb); + break; + case "number": + this.serializeNumber_((object), sb); + break; + case "boolean": + sb.push(object); + break; + case "undefined": + sb.push("null"); + break; + case "object": + if(object == null) { + sb.push("null"); + break + } + if(goog.isArray(object)) { + this.serializeArray((object), sb); + break + } + this.serializeObject_((object), sb); + break; + case "function": + break; + default: + throw Error("Unknown type: " + typeof object); + } +}; +goog.json.Serializer.charToJsonCharCache_ = {'"':'\\"', "\\":"\\\\", "/":"\\/", "\b":"\\b", "\f":"\\f", "\n":"\\n", "\r":"\\r", "\t":"\\t", "\x0B":"\\u000b"}; +goog.json.Serializer.charsToReplace_ = /\uffff/.test("\uffff") ? /[\\\"\x00-\x1f\x7f-\uffff]/g : /[\\\"\x00-\x1f\x7f-\xff]/g; +goog.json.Serializer.prototype.serializeString_ = function(s, sb) { + sb.push('"', s.replace(goog.json.Serializer.charsToReplace_, function(c) { + if(c in goog.json.Serializer.charToJsonCharCache_) { + return goog.json.Serializer.charToJsonCharCache_[c] + } + var cc = c.charCodeAt(0); + var rv = "\\u"; + if(cc < 16) { + rv += "000" + }else { + if(cc < 256) { + rv += "00" + }else { + if(cc < 4096) { + rv += "0" + } + } + } + return goog.json.Serializer.charToJsonCharCache_[c] = rv + cc.toString(16) + }), '"') +}; +goog.json.Serializer.prototype.serializeNumber_ = function(n, sb) { + sb.push(isFinite(n) && !isNaN(n) ? n : "null") +}; +goog.json.Serializer.prototype.serializeArray = function(arr, sb) { + var l = arr.length; + sb.push("["); + var sep = ""; + for(var i = 0;i < l;i++) { + sb.push(sep); + var value = arr[i]; + this.serialize_(this.replacer_ ? this.replacer_.call(arr, String(i), value) : value, sb); + sep = "," + } + sb.push("]") +}; +goog.json.Serializer.prototype.serializeObject_ = function(obj, sb) { + sb.push("{"); + var sep = ""; + for(var key in obj) { + if(Object.prototype.hasOwnProperty.call(obj, key)) { + var value = obj[key]; + if(typeof value != "function") { + sb.push(sep); + this.serializeString_(key, sb); + sb.push(":"); + this.serialize_(this.replacer_ ? this.replacer_.call(obj, key, value) : value, sb); + sep = "," + } + } + } + sb.push("}") +}; +goog.provide("goog.net.ErrorCode"); +goog.net.ErrorCode = {NO_ERROR:0, ACCESS_DENIED:1, FILE_NOT_FOUND:2, FF_SILENT_ERROR:3, CUSTOM_ERROR:4, EXCEPTION:5, HTTP_ERROR:6, ABORT:7, TIMEOUT:8, OFFLINE:9}; +goog.net.ErrorCode.getDebugMessage = function(errorCode) { + switch(errorCode) { + case goog.net.ErrorCode.NO_ERROR: + return"No Error"; + case goog.net.ErrorCode.ACCESS_DENIED: + return"Access denied to content document"; + case goog.net.ErrorCode.FILE_NOT_FOUND: + return"File not found"; + case goog.net.ErrorCode.FF_SILENT_ERROR: + return"Firefox silently errored"; + case goog.net.ErrorCode.CUSTOM_ERROR: + return"Application custom error"; + case goog.net.ErrorCode.EXCEPTION: + return"An exception occurred"; + case goog.net.ErrorCode.HTTP_ERROR: + return"Http response at 400 or 500 level"; + case goog.net.ErrorCode.ABORT: + return"Request was aborted"; + case goog.net.ErrorCode.TIMEOUT: + return"Request timed out"; + case goog.net.ErrorCode.OFFLINE: + return"The resource is not available offline"; + default: + return"Unrecognized error code" + } +}; +goog.provide("goog.net.EventType"); +goog.net.EventType = {COMPLETE:"complete", SUCCESS:"success", ERROR:"error", ABORT:"abort", READY:"ready", READY_STATE_CHANGE:"readystatechange", TIMEOUT:"timeout", INCREMENTAL_DATA:"incrementaldata", PROGRESS:"progress"}; +goog.provide("goog.net.HttpStatus"); +goog.net.HttpStatus = {CONTINUE:100, SWITCHING_PROTOCOLS:101, OK:200, CREATED:201, ACCEPTED:202, NON_AUTHORITATIVE_INFORMATION:203, NO_CONTENT:204, RESET_CONTENT:205, PARTIAL_CONTENT:206, MULTIPLE_CHOICES:300, MOVED_PERMANENTLY:301, FOUND:302, SEE_OTHER:303, NOT_MODIFIED:304, USE_PROXY:305, TEMPORARY_REDIRECT:307, BAD_REQUEST:400, UNAUTHORIZED:401, PAYMENT_REQUIRED:402, FORBIDDEN:403, NOT_FOUND:404, METHOD_NOT_ALLOWED:405, NOT_ACCEPTABLE:406, PROXY_AUTHENTICATION_REQUIRED:407, REQUEST_TIMEOUT:408, +CONFLICT:409, GONE:410, LENGTH_REQUIRED:411, PRECONDITION_FAILED:412, REQUEST_ENTITY_TOO_LARGE:413, REQUEST_URI_TOO_LONG:414, UNSUPPORTED_MEDIA_TYPE:415, REQUEST_RANGE_NOT_SATISFIABLE:416, EXPECTATION_FAILED:417, INTERNAL_SERVER_ERROR:500, NOT_IMPLEMENTED:501, BAD_GATEWAY:502, SERVICE_UNAVAILABLE:503, GATEWAY_TIMEOUT:504, HTTP_VERSION_NOT_SUPPORTED:505, QUIRK_IE_NO_CONTENT:1223}; +goog.net.HttpStatus.isSuccess = function(status) { + switch(status) { + case goog.net.HttpStatus.OK: + ; + case goog.net.HttpStatus.CREATED: + ; + case goog.net.HttpStatus.ACCEPTED: + ; + case goog.net.HttpStatus.NO_CONTENT: + ; + case goog.net.HttpStatus.PARTIAL_CONTENT: + ; + case goog.net.HttpStatus.NOT_MODIFIED: + ; + case goog.net.HttpStatus.QUIRK_IE_NO_CONTENT: + return true; + default: + return false + } +}; +goog.provide("goog.net.XmlHttpFactory"); +goog.net.XmlHttpFactory = function() { +}; +goog.net.XmlHttpFactory.prototype.cachedOptions_ = null; +goog.net.XmlHttpFactory.prototype.createInstance = goog.abstractMethod; +goog.net.XmlHttpFactory.prototype.getOptions = function() { + return this.cachedOptions_ || (this.cachedOptions_ = this.internalGetOptions()) +}; +goog.net.XmlHttpFactory.prototype.internalGetOptions = goog.abstractMethod; +goog.provide("goog.net.WrapperXmlHttpFactory"); +goog.require("goog.net.XmlHttpFactory"); +goog.net.WrapperXmlHttpFactory = function(xhrFactory, optionsFactory) { + goog.net.XmlHttpFactory.call(this); + this.xhrFactory_ = xhrFactory; + this.optionsFactory_ = optionsFactory +}; +goog.inherits(goog.net.WrapperXmlHttpFactory, goog.net.XmlHttpFactory); +goog.net.WrapperXmlHttpFactory.prototype.createInstance = function() { + return this.xhrFactory_() +}; +goog.net.WrapperXmlHttpFactory.prototype.getOptions = function() { + return this.optionsFactory_() +}; +goog.provide("goog.net.DefaultXmlHttpFactory"); +goog.provide("goog.net.XmlHttp"); +goog.provide("goog.net.XmlHttp.OptionType"); +goog.provide("goog.net.XmlHttp.ReadyState"); +goog.require("goog.net.WrapperXmlHttpFactory"); +goog.require("goog.net.XmlHttpFactory"); +goog.net.XmlHttp = function() { + return goog.net.XmlHttp.factory_.createInstance() +}; +goog.define("goog.net.XmlHttp.ASSUME_NATIVE_XHR", false); +goog.net.XmlHttp.getOptions = function() { + return goog.net.XmlHttp.factory_.getOptions() +}; +goog.net.XmlHttp.OptionType = {USE_NULL_FUNCTION:0, LOCAL_REQUEST_ERROR:1}; +goog.net.XmlHttp.ReadyState = {UNINITIALIZED:0, LOADING:1, LOADED:2, INTERACTIVE:3, COMPLETE:4}; +goog.net.XmlHttp.factory_; +goog.net.XmlHttp.setFactory = function(factory, optionsFactory) { + goog.net.XmlHttp.setGlobalFactory(new goog.net.WrapperXmlHttpFactory((factory), (optionsFactory))) +}; +goog.net.XmlHttp.setGlobalFactory = function(factory) { + goog.net.XmlHttp.factory_ = factory +}; +goog.net.DefaultXmlHttpFactory = function() { + goog.net.XmlHttpFactory.call(this) +}; +goog.inherits(goog.net.DefaultXmlHttpFactory, goog.net.XmlHttpFactory); +goog.net.DefaultXmlHttpFactory.prototype.createInstance = function() { + var progId = this.getProgId_(); + if(progId) { + return new ActiveXObject(progId) + }else { + return new XMLHttpRequest + } +}; +goog.net.DefaultXmlHttpFactory.prototype.internalGetOptions = function() { + var progId = this.getProgId_(); + var options = {}; + if(progId) { + options[goog.net.XmlHttp.OptionType.USE_NULL_FUNCTION] = true; + options[goog.net.XmlHttp.OptionType.LOCAL_REQUEST_ERROR] = true + } + return options +}; +goog.net.DefaultXmlHttpFactory.prototype.ieProgId_; +goog.net.DefaultXmlHttpFactory.prototype.getProgId_ = function() { + if(goog.net.XmlHttp.ASSUME_NATIVE_XHR) { + return"" + } + if(!this.ieProgId_ && typeof XMLHttpRequest == "undefined" && typeof ActiveXObject != "undefined") { + var ACTIVE_X_IDENTS = ["MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"]; + for(var i = 0;i < ACTIVE_X_IDENTS.length;i++) { + var candidate = ACTIVE_X_IDENTS[i]; + try { + new ActiveXObject(candidate); + this.ieProgId_ = candidate; + return candidate + }catch(e) { + } + } + throw Error("Could not create ActiveXObject. ActiveX might be disabled," + " or MSXML might not be installed"); + } + return(this.ieProgId_) +}; +goog.net.XmlHttp.setGlobalFactory(new goog.net.DefaultXmlHttpFactory); +goog.provide("goog.net.XhrIo"); +goog.provide("goog.net.XhrIo.ResponseType"); +goog.require("goog.Timer"); +goog.require("goog.array"); +goog.require("goog.debug.entryPointRegistry"); +goog.require("goog.events.EventTarget"); +goog.require("goog.json"); +goog.require("goog.log"); +goog.require("goog.net.ErrorCode"); +goog.require("goog.net.EventType"); +goog.require("goog.net.HttpStatus"); +goog.require("goog.net.XmlHttp"); +goog.require("goog.object"); +goog.require("goog.string"); +goog.require("goog.structs"); +goog.require("goog.structs.Map"); +goog.require("goog.uri.utils"); +goog.require("goog.userAgent"); +goog.net.XhrIo = function(opt_xmlHttpFactory) { + goog.base(this); + this.headers = new goog.structs.Map; + this.xmlHttpFactory_ = opt_xmlHttpFactory || null; + this.active_ = false; + this.xhr_ = null; + this.xhrOptions_ = null; + this.lastUri_ = ""; + this.lastMethod_ = ""; + this.lastErrorCode_ = goog.net.ErrorCode.NO_ERROR; + this.lastError_ = ""; + this.errorDispatched_ = false; + this.inSend_ = false; + this.inOpen_ = false; + this.inAbort_ = false; + this.timeoutInterval_ = 0; + this.timeoutId_ = null; + this.responseType_ = goog.net.XhrIo.ResponseType.DEFAULT; + this.withCredentials_ = false; + this.useXhr2Timeout_ = false +}; +goog.inherits(goog.net.XhrIo, goog.events.EventTarget); +goog.net.XhrIo.ResponseType = {DEFAULT:"", TEXT:"text", DOCUMENT:"document", BLOB:"blob", ARRAY_BUFFER:"arraybuffer"}; +goog.net.XhrIo.prototype.logger_ = goog.log.getLogger("goog.net.XhrIo"); +goog.net.XhrIo.CONTENT_TYPE_HEADER = "Content-Type"; +goog.net.XhrIo.HTTP_SCHEME_PATTERN = /^https?$/i; +goog.net.XhrIo.METHODS_WITH_FORM_DATA = ["POST", "PUT"]; +goog.net.XhrIo.FORM_CONTENT_TYPE = "application/x-www-form-urlencoded;charset\x3dutf-8"; +goog.net.XhrIo.XHR2_TIMEOUT_ = "timeout"; +goog.net.XhrIo.XHR2_ON_TIMEOUT_ = "ontimeout"; +goog.net.XhrIo.sendInstances_ = []; +goog.net.XhrIo.send = function(url, opt_callback, opt_method, opt_content, opt_headers, opt_timeoutInterval, opt_withCredentials) { + var x = new goog.net.XhrIo; + goog.net.XhrIo.sendInstances_.push(x); + if(opt_callback) { + x.listen(goog.net.EventType.COMPLETE, opt_callback) + } + x.listenOnce(goog.net.EventType.READY, x.cleanupSend_); + if(opt_timeoutInterval) { + x.setTimeoutInterval(opt_timeoutInterval) + } + if(opt_withCredentials) { + x.setWithCredentials(opt_withCredentials) + } + x.send(url, opt_method, opt_content, opt_headers) +}; +goog.net.XhrIo.cleanup = function() { + var instances = goog.net.XhrIo.sendInstances_; + while(instances.length) { + instances.pop().dispose() + } +}; +goog.net.XhrIo.protectEntryPoints = function(errorHandler) { + goog.net.XhrIo.prototype.onReadyStateChangeEntryPoint_ = errorHandler.protectEntryPoint(goog.net.XhrIo.prototype.onReadyStateChangeEntryPoint_) +}; +goog.net.XhrIo.prototype.cleanupSend_ = function() { + this.dispose(); + goog.array.remove(goog.net.XhrIo.sendInstances_, this) +}; +goog.net.XhrIo.prototype.getTimeoutInterval = function() { + return this.timeoutInterval_ +}; +goog.net.XhrIo.prototype.setTimeoutInterval = function(ms) { + this.timeoutInterval_ = Math.max(0, ms) +}; +goog.net.XhrIo.prototype.setResponseType = function(type) { + this.responseType_ = type +}; +goog.net.XhrIo.prototype.getResponseType = function() { + return this.responseType_ +}; +goog.net.XhrIo.prototype.setWithCredentials = function(withCredentials) { + this.withCredentials_ = withCredentials +}; +goog.net.XhrIo.prototype.getWithCredentials = function() { + return this.withCredentials_ +}; +goog.net.XhrIo.prototype.send = function(url, opt_method, opt_content, opt_headers) { + if(this.xhr_) { + throw Error("[goog.net.XhrIo] Object is active with another request\x3d" + this.lastUri_ + "; newUri\x3d" + url); + } + var method = opt_method ? opt_method.toUpperCase() : "GET"; + this.lastUri_ = url; + this.lastError_ = ""; + this.lastErrorCode_ = goog.net.ErrorCode.NO_ERROR; + this.lastMethod_ = method; + this.errorDispatched_ = false; + this.active_ = true; + this.xhr_ = this.createXhr(); + this.xhrOptions_ = this.xmlHttpFactory_ ? this.xmlHttpFactory_.getOptions() : goog.net.XmlHttp.getOptions(); + this.xhr_.onreadystatechange = goog.bind(this.onReadyStateChange_, this); + try { + goog.log.fine(this.logger_, this.formatMsg_("Opening Xhr")); + this.inOpen_ = true; + this.xhr_.open(method, url, true); + this.inOpen_ = false + }catch(err) { + goog.log.fine(this.logger_, this.formatMsg_("Error opening Xhr: " + err.message)); + this.error_(goog.net.ErrorCode.EXCEPTION, err); + return + } + var content = opt_content || ""; + var headers = this.headers.clone(); + if(opt_headers) { + goog.structs.forEach(opt_headers, function(value, key) { + headers.set(key, value) + }) + } + var contentTypeKey = goog.array.find(headers.getKeys(), goog.net.XhrIo.isContentTypeHeader_); + var contentIsFormData = goog.global["FormData"] && content instanceof goog.global["FormData"]; + if(goog.array.contains(goog.net.XhrIo.METHODS_WITH_FORM_DATA, method) && !contentTypeKey && !contentIsFormData) { + headers.set(goog.net.XhrIo.CONTENT_TYPE_HEADER, goog.net.XhrIo.FORM_CONTENT_TYPE) + } + goog.structs.forEach(headers, function(value, key) { + this.xhr_.setRequestHeader(key, value) + }, this); + if(this.responseType_) { + this.xhr_.responseType = this.responseType_ + } + if(goog.object.containsKey(this.xhr_, "withCredentials")) { + this.xhr_.withCredentials = this.withCredentials_ + } + try { + this.cleanUpTimeoutTimer_(); + if(this.timeoutInterval_ > 0) { + this.useXhr2Timeout_ = goog.net.XhrIo.shouldUseXhr2Timeout_(this.xhr_); + goog.log.fine(this.logger_, this.formatMsg_("Will abort after " + this.timeoutInterval_ + "ms if incomplete, xhr2 " + this.useXhr2Timeout_)); + if(this.useXhr2Timeout_) { + this.xhr_[goog.net.XhrIo.XHR2_TIMEOUT_] = this.timeoutInterval_; + this.xhr_[goog.net.XhrIo.XHR2_ON_TIMEOUT_] = goog.bind(this.timeout_, this) + }else { + this.timeoutId_ = goog.Timer.callOnce(this.timeout_, this.timeoutInterval_, this) + } + } + goog.log.fine(this.logger_, this.formatMsg_("Sending request")); + this.inSend_ = true; + this.xhr_.send(content); + this.inSend_ = false + }catch(err) { + goog.log.fine(this.logger_, this.formatMsg_("Send error: " + err.message)); + this.error_(goog.net.ErrorCode.EXCEPTION, err) + } +}; +goog.net.XhrIo.shouldUseXhr2Timeout_ = function(xhr) { + return goog.userAgent.IE && goog.userAgent.isVersionOrHigher(9) && goog.isNumber(xhr[goog.net.XhrIo.XHR2_TIMEOUT_]) && goog.isDef(xhr[goog.net.XhrIo.XHR2_ON_TIMEOUT_]) +}; +goog.net.XhrIo.isContentTypeHeader_ = function(header) { + return goog.string.caseInsensitiveEquals(goog.net.XhrIo.CONTENT_TYPE_HEADER, header) +}; +goog.net.XhrIo.prototype.createXhr = function() { + return this.xmlHttpFactory_ ? this.xmlHttpFactory_.createInstance() : goog.net.XmlHttp() +}; +goog.net.XhrIo.prototype.timeout_ = function() { + if(typeof goog == "undefined") { + }else { + if(this.xhr_) { + this.lastError_ = "Timed out after " + this.timeoutInterval_ + "ms, aborting"; + this.lastErrorCode_ = goog.net.ErrorCode.TIMEOUT; + goog.log.fine(this.logger_, this.formatMsg_(this.lastError_)); + this.dispatchEvent(goog.net.EventType.TIMEOUT); + this.abort(goog.net.ErrorCode.TIMEOUT) + } + } +}; +goog.net.XhrIo.prototype.error_ = function(errorCode, err) { + this.active_ = false; + if(this.xhr_) { + this.inAbort_ = true; + this.xhr_.abort(); + this.inAbort_ = false + } + this.lastError_ = err; + this.lastErrorCode_ = errorCode; + this.dispatchErrors_(); + this.cleanUpXhr_() +}; +goog.net.XhrIo.prototype.dispatchErrors_ = function() { + if(!this.errorDispatched_) { + this.errorDispatched_ = true; + this.dispatchEvent(goog.net.EventType.COMPLETE); + this.dispatchEvent(goog.net.EventType.ERROR) + } +}; +goog.net.XhrIo.prototype.abort = function(opt_failureCode) { + if(this.xhr_ && this.active_) { + goog.log.fine(this.logger_, this.formatMsg_("Aborting")); + this.active_ = false; + this.inAbort_ = true; + this.xhr_.abort(); + this.inAbort_ = false; + this.lastErrorCode_ = opt_failureCode || goog.net.ErrorCode.ABORT; + this.dispatchEvent(goog.net.EventType.COMPLETE); + this.dispatchEvent(goog.net.EventType.ABORT); + this.cleanUpXhr_() + } +}; +goog.net.XhrIo.prototype.disposeInternal = function() { + if(this.xhr_) { + if(this.active_) { + this.active_ = false; + this.inAbort_ = true; + this.xhr_.abort(); + this.inAbort_ = false + } + this.cleanUpXhr_(true) + } + goog.base(this, "disposeInternal") +}; +goog.net.XhrIo.prototype.onReadyStateChange_ = function() { + if(this.isDisposed()) { + return + } + if(!this.inOpen_ && !this.inSend_ && !this.inAbort_) { + this.onReadyStateChangeEntryPoint_() + }else { + this.onReadyStateChangeHelper_() + } +}; +goog.net.XhrIo.prototype.onReadyStateChangeEntryPoint_ = function() { + this.onReadyStateChangeHelper_() +}; +goog.net.XhrIo.prototype.onReadyStateChangeHelper_ = function() { + if(!this.active_) { + return + } + if(typeof goog == "undefined") { + }else { + if(this.xhrOptions_[goog.net.XmlHttp.OptionType.LOCAL_REQUEST_ERROR] && this.getReadyState() == goog.net.XmlHttp.ReadyState.COMPLETE && this.getStatus() == 2) { + goog.log.fine(this.logger_, this.formatMsg_("Local request error detected and ignored")) + }else { + if(this.inSend_ && this.getReadyState() == goog.net.XmlHttp.ReadyState.COMPLETE) { + goog.Timer.callOnce(this.onReadyStateChange_, 0, this); + return + } + this.dispatchEvent(goog.net.EventType.READY_STATE_CHANGE); + if(this.isComplete()) { + goog.log.fine(this.logger_, this.formatMsg_("Request complete")); + this.active_ = false; + try { + if(this.isSuccess()) { + this.dispatchEvent(goog.net.EventType.COMPLETE); + this.dispatchEvent(goog.net.EventType.SUCCESS) + }else { + this.lastErrorCode_ = goog.net.ErrorCode.HTTP_ERROR; + this.lastError_ = this.getStatusText() + " [" + this.getStatus() + "]"; + this.dispatchErrors_() + } + }finally { + this.cleanUpXhr_() + } + } + } + } +}; +goog.net.XhrIo.prototype.cleanUpXhr_ = function(opt_fromDispose) { + if(this.xhr_) { + this.cleanUpTimeoutTimer_(); + var xhr = this.xhr_; + var clearedOnReadyStateChange = this.xhrOptions_[goog.net.XmlHttp.OptionType.USE_NULL_FUNCTION] ? goog.nullFunction : null; + this.xhr_ = null; + this.xhrOptions_ = null; + if(!opt_fromDispose) { + this.dispatchEvent(goog.net.EventType.READY) + } + try { + xhr.onreadystatechange = clearedOnReadyStateChange + }catch(e) { + goog.log.error(this.logger_, "Problem encountered resetting onreadystatechange: " + e.message) + } + } +}; +goog.net.XhrIo.prototype.cleanUpTimeoutTimer_ = function() { + if(this.xhr_ && this.useXhr2Timeout_) { + this.xhr_[goog.net.XhrIo.XHR2_ON_TIMEOUT_] = null + } + if(goog.isNumber(this.timeoutId_)) { + goog.Timer.clear(this.timeoutId_); + this.timeoutId_ = null + } +}; +goog.net.XhrIo.prototype.isActive = function() { + return!!this.xhr_ +}; +goog.net.XhrIo.prototype.isComplete = function() { + return this.getReadyState() == goog.net.XmlHttp.ReadyState.COMPLETE +}; +goog.net.XhrIo.prototype.isSuccess = function() { + var status = this.getStatus(); + return goog.net.HttpStatus.isSuccess(status) || status === 0 && !this.isLastUriEffectiveSchemeHttp_() +}; +goog.net.XhrIo.prototype.isLastUriEffectiveSchemeHttp_ = function() { + var scheme = goog.uri.utils.getEffectiveScheme(String(this.lastUri_)); + return goog.net.XhrIo.HTTP_SCHEME_PATTERN.test(scheme) +}; +goog.net.XhrIo.prototype.getReadyState = function() { + return this.xhr_ ? (this.xhr_.readyState) : goog.net.XmlHttp.ReadyState.UNINITIALIZED +}; +goog.net.XhrIo.prototype.getStatus = function() { + try { + return this.getReadyState() > goog.net.XmlHttp.ReadyState.LOADED ? this.xhr_.status : -1 + }catch(e) { + goog.log.warning(this.logger_, "Can not get status: " + e.message); + return-1 + } +}; +goog.net.XhrIo.prototype.getStatusText = function() { + try { + return this.getReadyState() > goog.net.XmlHttp.ReadyState.LOADED ? this.xhr_.statusText : "" + }catch(e) { + goog.log.fine(this.logger_, "Can not get status: " + e.message); + return"" + } +}; +goog.net.XhrIo.prototype.getLastUri = function() { + return String(this.lastUri_) +}; +goog.net.XhrIo.prototype.getResponseText = function() { + try { + return this.xhr_ ? this.xhr_.responseText : "" + }catch(e) { + goog.log.fine(this.logger_, "Can not get responseText: " + e.message); + return"" + } +}; +goog.net.XhrIo.prototype.getResponseBody = function() { + try { + if(this.xhr_ && "responseBody" in this.xhr_) { + return this.xhr_["responseBody"] + } + }catch(e) { + goog.log.fine(this.logger_, "Can not get responseBody: " + e.message) + } + return null +}; +goog.net.XhrIo.prototype.getResponseXml = function() { + try { + return this.xhr_ ? this.xhr_.responseXML : null + }catch(e) { + goog.log.fine(this.logger_, "Can not get responseXML: " + e.message); + return null + } +}; +goog.net.XhrIo.prototype.getResponseJson = function(opt_xssiPrefix) { + if(!this.xhr_) { + return undefined + } + var responseText = this.xhr_.responseText; + if(opt_xssiPrefix && responseText.indexOf(opt_xssiPrefix) == 0) { + responseText = responseText.substring(opt_xssiPrefix.length) + } + return goog.json.parse(responseText) +}; +goog.net.XhrIo.prototype.getResponse = function() { + try { + if(!this.xhr_) { + return null + } + if("response" in this.xhr_) { + return this.xhr_.response + } + switch(this.responseType_) { + case goog.net.XhrIo.ResponseType.DEFAULT: + ; + case goog.net.XhrIo.ResponseType.TEXT: + return this.xhr_.responseText; + case goog.net.XhrIo.ResponseType.ARRAY_BUFFER: + if("mozResponseArrayBuffer" in this.xhr_) { + return this.xhr_.mozResponseArrayBuffer + } + } + goog.log.error(this.logger_, "Response type " + this.responseType_ + " is not " + "supported on this browser"); + return null + }catch(e) { + goog.log.fine(this.logger_, "Can not get response: " + e.message); + return null + } +}; +goog.net.XhrIo.prototype.getResponseHeader = function(key) { + return this.xhr_ && this.isComplete() ? this.xhr_.getResponseHeader(key) : undefined +}; +goog.net.XhrIo.prototype.getAllResponseHeaders = function() { + return this.xhr_ && this.isComplete() ? this.xhr_.getAllResponseHeaders() : "" +}; +goog.net.XhrIo.prototype.getLastErrorCode = function() { + return this.lastErrorCode_ +}; +goog.net.XhrIo.prototype.getLastError = function() { + return goog.isString(this.lastError_) ? this.lastError_ : String(this.lastError_) +}; +goog.net.XhrIo.prototype.formatMsg_ = function(msg) { + return msg + " [" + this.lastMethod_ + " " + this.lastUri_ + " " + this.getStatus() + "]" +}; +goog.debug.entryPointRegistry.register(function(transformer) { + goog.net.XhrIo.prototype.onReadyStateChangeEntryPoint_ = transformer(goog.net.XhrIo.prototype.onReadyStateChangeEntryPoint_) +}); +goog.provide("ol.source.Vector"); +goog.require("goog.asserts"); +goog.require("goog.net.XhrIo"); +goog.require("ol.source.Source"); +ol.source.VectorLoadState = {IDLE:0, LOADING:1, LOADED:2, ERROR:3}; +ol.source.Vector = function(options) { + this.data_ = goog.isDef(options.data) ? options.data : null; + this.loadState_ = ol.source.VectorLoadState.IDLE; + this.parser_ = goog.isDef(options.parser) ? options.parser : null; + this.url_ = options.url; + goog.base(this, {attributions:options.attributions, extent:options.extent, logo:options.logo, projection:options.projection}) +}; +goog.inherits(ol.source.Vector, ol.source.Source); +ol.source.Vector.prototype.prepareFeatures = function(layer, extent, projection, opt_callback) { + if(goog.isDef(this.url_) && this.loadState_ == ol.source.VectorLoadState.IDLE) { + this.loadState_ = ol.source.VectorLoadState.LOADING; + goog.net.XhrIo.send(this.url_, goog.bind(function(event) { + var xhr = event.target; + if(xhr.isSuccess()) { + layer.parseFeatures(xhr.getResponseText(), this.parser_, projection); + this.loadState_ = ol.source.VectorLoadState.LOADED; + if(goog.isDef(opt_callback)) { + opt_callback() + } + }else { + this.loadState_ = ol.source.VectorLoadState.ERROR + } + }, this)) + }else { + if(!goog.isNull(this.data_)) { + layer.parseFeatures(this.data_, this.parser_, projection); + this.data_ = null; + this.loadState_ = ol.source.VectorLoadState.LOADED + } + } + return this.loadState_ +}; +goog.provide("ol.structs.RTree"); +goog.require("goog.array"); +goog.require("ol.extent"); +ol.structs.RTreeNode; +ol.structs.RTree = function(opt_maxWidth) { + this.maxWidth_ = goog.isDef(opt_maxWidth) ? opt_maxWidth : 6; + this.minWidth_ = Math.floor(this.maxWidth_ / 2); + this.rootTree_ = ({extent:ol.extent.createEmpty(), nodes:[]}) +}; +ol.structs.RTree.recalculateExtent_ = function(node) { + var n = node.nodes.length; + var extent = node.extent; + if(n === 0) { + ol.extent.empty(extent) + }else { + var firstNodeExtent = node.nodes[0].extent; + extent[0] = firstNodeExtent[0]; + extent[1] = firstNodeExtent[1]; + extent[2] = firstNodeExtent[2]; + extent[3] = firstNodeExtent[3]; + var i; + for(i = 1;i < n;++i) { + ol.extent.extend(extent, node.nodes[i].extent) + } + } +}; +ol.structs.RTree.squarifiedRatio_ = function(l, w, fill) { + var peri = (l + w) / 2; + var area = l * w; + var geo = area / (peri * peri); + return area * fill / geo +}; +ol.structs.RTree.prototype.chooseLeafSubtree_ = function(rect, root) { + var bestChoiceIndex = -1; + var bestChoiceStack = []; + var bestChoiceArea; + bestChoiceStack.push(root); + var nodes = root.nodes; + do { + if(bestChoiceIndex != -1) { + bestChoiceStack.push(nodes[bestChoiceIndex]); + nodes = nodes[bestChoiceIndex].nodes; + bestChoiceIndex = -1 + } + for(var i = nodes.length - 1;i >= 0;--i) { + var lTree = nodes[i]; + if(goog.isDef(lTree.leaf)) { + bestChoiceIndex = -1; + break + } + var oldLRatio = ol.structs.RTree.squarifiedRatio_(lTree.extent[1] - lTree.extent[0], lTree.extent[3] - lTree.extent[2], lTree.nodes.length + 1); + var nw = (lTree.extent[1] > rect.extent[1] ? lTree.extent[1] : rect.extent[1]) - (lTree.extent[0] < rect.extent[0] ? lTree.extent[0] : rect.extent[0]); + var nh = (lTree.extent[3] > rect.extent[3] ? lTree.extent[3] : rect.extent[3]) - (lTree.extent[2] < rect.extent[2] ? lTree.extent[2] : rect.extent[2]); + var lRatio = ol.structs.RTree.squarifiedRatio_(nw, nh, lTree.nodes.length + 2); + if(bestChoiceIndex < 0 || Math.abs(lRatio - oldLRatio) < bestChoiceArea) { + bestChoiceArea = Math.abs(lRatio - oldLRatio); + bestChoiceIndex = i + } + } + }while(bestChoiceIndex != -1); + return bestChoiceStack +}; +ol.structs.RTree.prototype.insert = function(extent, obj, opt_type) { + var node = ({extent:extent, leaf:obj}); + if(goog.isDef(opt_type)) { + node.type = opt_type + } + this.insertSubtree_(node, this.rootTree_) +}; +ol.structs.RTree.prototype.insertSubtree_ = function(node, root) { + var bc; + if(root.nodes.length === 0) { + root.extent = node.extent.concat(); + root.nodes.push(node); + return + } + var treeStack = this.chooseLeafSubtree_(node, root); + var workingObject = node; + do { + if(bc && goog.isDef(bc.nodes) && bc.nodes.length === 0) { + var pbc = bc; + bc = treeStack.pop(); + for(var t = 0, tt = bc.nodes.length;t < tt;++t) { + if(bc.nodes[t] === pbc || bc.nodes[t].nodes.length === 0) { + bc.nodes.splice(t, 1); + break + } + } + }else { + bc = treeStack.pop() + } + var isArray = goog.isArray(workingObject); + if(goog.isDef(workingObject.leaf) || goog.isDef(workingObject.nodes) || isArray) { + if(isArray) { + for(var ai = 0, aii = workingObject.length;ai < aii;++ai) { + ol.extent.extend(bc.extent, workingObject[ai].extent) + } + bc.nodes = bc.nodes.concat(workingObject) + }else { + ol.extent.extend(bc.extent, workingObject.extent); + bc.nodes.push(workingObject) + } + if(bc.nodes.length <= this.maxWidth_) { + workingObject = {extent:bc.extent.concat()} + }else { + var a = this.linearSplit_(bc.nodes); + workingObject = a; + if(treeStack.length < 1) { + bc.nodes.push(a[0]); + treeStack.push(bc); + workingObject = a[1] + } + } + }else { + ol.extent.extend(bc.extent, workingObject.extent); + workingObject = {extent:bc.extent.concat()} + } + }while(treeStack.length > 0) +}; +ol.structs.RTree.prototype.linearSplit_ = function(nodes) { + var n = this.pickLinear_(nodes); + while(nodes.length > 0) { + this.pickNext_(nodes, n[0], n[1]) + } + return n +}; +ol.structs.RTree.prototype.pickLinear_ = function(nodes) { + var lowestHighX = nodes.length - 1; + var highestLowX = 0; + var lowestHighY = nodes.length - 1; + var highestLowY = 0; + var t1, t2; + for(var i = nodes.length - 2;i >= 0;--i) { + var l = nodes[i]; + if(l.extent[0] > nodes[highestLowX].extent[0]) { + highestLowX = i + }else { + if(l.extent[1] < nodes[lowestHighX].extent[2]) { + lowestHighX = i + } + } + if(l.extent[2] > nodes[highestLowY].extent[2]) { + highestLowY = i + }else { + if(l.extent[3] < nodes[lowestHighY].extent[3]) { + lowestHighY = i + } + } + } + var dx = Math.abs(nodes[lowestHighX].extent[1] - nodes[highestLowX].extent[0]); + var dy = Math.abs(nodes[lowestHighY].extent[3] - nodes[highestLowY].extent[2]); + if(dx > dy) { + if(lowestHighX > highestLowX) { + t1 = nodes.splice(lowestHighX, 1)[0]; + t2 = nodes.splice(highestLowX, 1)[0] + }else { + t2 = nodes.splice(highestLowX, 1)[0]; + t1 = nodes.splice(lowestHighX, 1)[0] + } + }else { + if(lowestHighY > highestLowY) { + t1 = nodes.splice(lowestHighY, 1)[0]; + t2 = nodes.splice(highestLowY, 1)[0] + }else { + t2 = nodes.splice(highestLowY, 1)[0]; + t1 = nodes.splice(lowestHighY, 1)[0] + } + } + return[({extent:t1.extent.concat(), nodes:[t1]}), ({extent:t2.extent.concat(), nodes:[t2]})] +}; +ol.structs.RTree.prototype.pickNext_ = function(nodes, a, b) { + var areaA = ol.structs.RTree.squarifiedRatio_(a.extent[1] - a.extent[0], a.extent[3] - a.extent[2], a.nodes.length + 1); + var areaB = ol.structs.RTree.squarifiedRatio_(b.extent[1] - b.extent[0], b.extent[3] - b.extent[2], b.nodes.length + 1); + var highAreaDelta; + var highAreaNode; + var lowestGrowthGroup; + for(var i = nodes.length - 1;i >= 0;--i) { + var l = nodes[i]; + var newAreaA = [a.extent[0] < l.extent[0] ? a.extent[0] : l.extent[0], a.extent[1] > l.extent[1] ? a.extent[1] : l.extent[1], a.extent[2] < l.extent[2] ? a.extent[2] : l.extent[2], a.extent[3] > l.extent[3] ? a.extent[3] : l.extent[3]]; + var changeNewAreaA = Math.abs(ol.structs.RTree.squarifiedRatio_(newAreaA[1] - newAreaA[0], newAreaA[3] - newAreaA[2], a.nodes.length + 2) - areaA); + var newAreaB = [b.extent[0] < l.extent[0] ? b.extent[0] : l.extent[0], b.extent[1] > l.extent[1] ? b.extent[1] : l.extent[1], b.extent[2] < l.extent[2] ? b.extent[2] : l.extent[2], b.extent[3] > l.extent[3] ? b.extent[3] : l.extent[3]]; + var changeNewAreaB = Math.abs(ol.structs.RTree.squarifiedRatio_(newAreaB[1] - newAreaB[0], newAreaB[3] - newAreaB[2], b.nodes.length + 2) - areaB); + var changeNewAreaDelta = Math.abs(changeNewAreaB - changeNewAreaA); + if(!highAreaNode || !highAreaDelta || changeNewAreaDelta < highAreaDelta) { + highAreaNode = i; + highAreaDelta = changeNewAreaDelta; + lowestGrowthGroup = changeNewAreaB < changeNewAreaA ? b : a + } + } + var tempNode = nodes.splice(highAreaNode, 1)[0]; + if(a.nodes.length + nodes.length + 1 <= this.minWidth_) { + a.nodes.push(tempNode); + ol.extent.extend(a.extent, tempNode.extent) + }else { + if(b.nodes.length + nodes.length + 1 <= this.minWidth_) { + b.nodes.push(tempNode); + ol.extent.extend(b.extent, tempNode.extent) + }else { + lowestGrowthGroup.nodes.push(tempNode); + ol.extent.extend(lowestGrowthGroup.extent, tempNode.extent) + } + } +}; +ol.structs.RTree.prototype.remove = function(extent, opt_obj) { + arguments[0] = ({extent:extent}); + switch(arguments.length) { + case 1: + arguments[1] = false; + case 2: + arguments[2] = this.rootTree_; + default: + arguments.length = 3 + } + if(arguments[1] === false) { + var numberDeleted = 0; + var result = []; + do { + numberDeleted = result.length; + result = result.concat(this.removeSubtree_.apply(this, arguments)) + }while(numberDeleted != result.length); + return result + }else { + return this.removeSubtree_.apply(this, arguments) + } +}; +ol.structs.RTree.prototype.removeSubtree_ = function(rect, obj, root) { + var hitStack = []; + var countStack = []; + var returnArray = []; + var currentDepth = 1; + if(!rect || !ol.extent.intersects(rect.extent, root.extent)) { + return returnArray + } + var workingObject = ({extent:rect.extent.concat(), target:obj}); + countStack.push(root.nodes.length); + hitStack.push(root); + do { + var tree = hitStack.pop(); + var i = countStack.pop() - 1; + if(goog.isDef(workingObject.target)) { + while(i >= 0) { + var lTree = tree.nodes[i]; + if(ol.extent.intersects(workingObject.extent, lTree.extent)) { + if(workingObject.target && goog.isDef(lTree.leaf) && lTree.leaf === workingObject.target || !workingObject.target && (goog.isDef(lTree.leaf) || ol.extent.containsExtent(workingObject.extent, lTree.extent))) { + if(goog.isDef(lTree.nodes)) { + returnArray = this.searchSubtree_(lTree, true, [], lTree); + tree.nodes.splice(i, 1) + }else { + returnArray = tree.nodes.splice(i, 1) + } + ol.structs.RTree.recalculateExtent_(tree); + workingObject.target = undefined; + if(tree.nodes.length < this.minWidth_) { + workingObject.nodes = (this.searchSubtree_(tree, true, [], tree)) + } + break + }else { + if(goog.isDef(lTree.nodes)) { + currentDepth += 1; + countStack.push(i); + hitStack.push(tree); + tree = lTree; + i = lTree.nodes.length + } + } + } + i -= 1 + } + }else { + if(goog.isDef(workingObject.nodes)) { + tree.nodes.splice(i + 1, 1); + if(tree.nodes.length > 0) { + ol.structs.RTree.recalculateExtent_(tree) + } + for(var t = 0, tt = workingObject.nodes.length;t < tt;++t) { + this.insertSubtree_(workingObject.nodes[t], tree) + } + workingObject.nodes.length = 0; + if(hitStack.length === 0 && tree.nodes.length <= 1) { + workingObject.nodes = (this.searchSubtree_(tree, true, workingObject.nodes, tree)); + tree.nodes.length = 0; + hitStack.push(tree); + countStack.push(1) + }else { + if(hitStack.length > 0 && tree.nodes.length < this.minWidth_) { + workingObject.nodes = (this.searchSubtree_(tree, true, workingObject.nodes, tree)); + tree.nodes.length = 0 + }else { + workingObject.nodes = undefined + } + } + }else { + ol.structs.RTree.recalculateExtent_(tree) + } + } + currentDepth -= 1 + }while(hitStack.length > 0); + return returnArray +}; +ol.structs.RTree.prototype.search = function(extent, opt_type) { + var rect = ({extent:extent}); + return(this.searchSubtree_(rect, false, [], this.rootTree_, opt_type)) +}; +ol.structs.RTree.prototype.searchReturningObject = function(extent, opt_type) { + var rect = ({extent:extent}); + return(this.searchSubtree_(rect, false, [], this.rootTree_, opt_type, true)) +}; +ol.structs.RTree.prototype.searchSubtree_ = function(rect, returnNode, result, root, opt_type, opt_resultAsObject) { + var resultObject = {}; + var hitStack = []; + if(!ol.extent.intersects(rect.extent, root.extent)) { + return result + } + hitStack.push(root.nodes); + do { + var nodes = hitStack.pop(); + for(var i = nodes.length - 1;i >= 0;--i) { + var lTree = nodes[i]; + if(ol.extent.intersects(rect.extent, lTree.extent)) { + if(goog.isDef(lTree.nodes)) { + hitStack.push(lTree.nodes) + }else { + if(goog.isDef(lTree.leaf)) { + if(!returnNode) { + if(!goog.isDef(opt_type) || lTree.type == opt_type) { + var obj = lTree.leaf; + if(goog.isDef(opt_resultAsObject)) { + resultObject[goog.getUid(obj).toString()] = obj + }else { + result.push(obj) + } + } + }else { + result.push(lTree) + } + } + } + } + } + }while(hitStack.length > 0); + if(goog.isDef(opt_resultAsObject)) { + return resultObject + }else { + return result + } +}; +goog.provide("ol.style.Literal"); +ol.style.Literal = function() { +}; +ol.style.Literal.prototype.equals = goog.abstractMethod; +goog.provide("ol.style.PolygonLiteral"); +goog.require("goog.asserts"); +goog.require("ol.style.Literal"); +ol.style.PolygonLiteralOptions; +ol.style.PolygonLiteral = function(options) { + goog.base(this); + this.fillColor = options.fillColor; + if(goog.isDef(options.fillColor)) { + goog.asserts.assertString(options.fillColor, "fillColor must be a string") + } + this.fillOpacity = options.fillOpacity; + if(goog.isDef(options.fillOpacity)) { + goog.asserts.assertNumber(options.fillOpacity, "fillOpacity must be a number") + } + this.strokeColor = options.strokeColor; + if(goog.isDef(this.strokeColor)) { + goog.asserts.assertString(this.strokeColor, "strokeColor must be a string") + } + this.strokeOpacity = options.strokeOpacity; + if(goog.isDef(this.strokeOpacity)) { + goog.asserts.assertNumber(this.strokeOpacity, "strokeOpacity must be a number") + } + this.strokeWidth = options.strokeWidth; + if(goog.isDef(this.strokeWidth)) { + goog.asserts.assertNumber(this.strokeWidth, "strokeWidth must be a number") + } + var fillDef = goog.isDef(this.fillColor) && goog.isDef(this.fillOpacity); + var strokeDef = goog.isDef(this.strokeColor) && goog.isDef(this.strokeOpacity) && goog.isDef(this.strokeWidth); + goog.asserts.assert(fillDef || strokeDef, "Either fillColor and fillOpacity or " + "strokeColor and strokeOpacity and strokeWidth must be set") +}; +goog.inherits(ol.style.PolygonLiteral, ol.style.Literal); +ol.style.PolygonLiteral.prototype.equals = function(polygonLiteral) { + return this.fillColor == polygonLiteral.fillColor && this.fillOpacity == polygonLiteral.fillOpacity && this.strokeColor == polygonLiteral.strokeColor && this.strokeOpacity == polygonLiteral.strokeOpacity && this.strokeWidth == polygonLiteral.strokeWidth +}; +goog.provide("ol.style.Symbolizer"); +goog.require("ol.Feature"); +goog.require("ol.style.Literal"); +ol.style.Symbolizer = function() { +}; +ol.style.Symbolizer.prototype.createLiteral = goog.abstractMethod; +goog.provide("ol.style.Fill"); +goog.require("goog.asserts"); +goog.require("ol.Feature"); +goog.require("ol.expr"); +goog.require("ol.expr.Expression"); +goog.require("ol.expr.Literal"); +goog.require("ol.geom.GeometryType"); +goog.require("ol.style.PolygonLiteral"); +goog.require("ol.style.Symbolizer"); +ol.style.Fill = function(opt_options) { + goog.base(this); + var options = opt_options || {}; + this.color_ = !goog.isDefAndNotNull(options.color) ? new ol.expr.Literal(ol.style.FillDefaults.color) : options.color instanceof ol.expr.Expression ? options.color : new ol.expr.Literal(options.color); + this.opacity_ = !goog.isDefAndNotNull(options.opacity) ? new ol.expr.Literal(ol.style.FillDefaults.opacity) : options.opacity instanceof ol.expr.Expression ? options.opacity : new ol.expr.Literal(options.opacity) +}; +goog.inherits(ol.style.Fill, ol.style.Symbolizer); +ol.style.Fill.prototype.createLiteral = function(featureOrType) { + var feature, type; + if(featureOrType instanceof ol.Feature) { + feature = featureOrType; + var geometry = feature.getGeometry(); + type = geometry ? geometry.getType() : null + }else { + type = featureOrType + } + var literal = null; + if(type === ol.geom.GeometryType.POLYGON || type === ol.geom.GeometryType.MULTIPOLYGON) { + var color = ol.expr.evaluateFeature(this.color_, feature); + goog.asserts.assertString(color, "color must be a string"); + var opacity = Number(ol.expr.evaluateFeature(this.opacity_, feature)); + goog.asserts.assert(!isNaN(opacity), "opacity must be a number"); + literal = new ol.style.PolygonLiteral({fillColor:color, fillOpacity:opacity}) + } + return literal +}; +ol.style.Fill.prototype.getColor = function() { + return this.color_ +}; +ol.style.Fill.prototype.getOpacity = function() { + return this.opacity_ +}; +ol.style.Fill.prototype.setColor = function(color) { + goog.asserts.assertInstanceof(color, ol.expr.Expression); + this.color_ = color +}; +ol.style.Fill.prototype.setOpacity = function(opacity) { + goog.asserts.assertInstanceof(opacity, ol.expr.Expression); + this.opacity_ = opacity +}; +ol.style.FillDefaults = {color:"#ffffff", opacity:0.4}; +goog.provide("ol.style.Rule"); +goog.require("goog.asserts"); +goog.require("ol.Feature"); +goog.require("ol.expr"); +goog.require("ol.expr.Expression"); +goog.require("ol.style.Symbolizer"); +ol.style.Rule = function(options) { + var filter = null; + if(goog.isDef(options.filter)) { + if(goog.isString(options.filter)) { + filter = ol.expr.parse(options.filter) + }else { + goog.asserts.assert(options.filter instanceof ol.expr.Expression); + filter = options.filter + } + } + this.filter_ = filter; + this.symbolizers_ = goog.isDef(options.symbolizers) ? options.symbolizers : [] +}; +ol.style.Rule.prototype.applies = function(feature) { + return goog.isNull(this.filter_) ? true : !!ol.expr.evaluateFeature(this.filter_, feature) +}; +ol.style.Rule.prototype.getSymbolizers = function() { + return this.symbolizers_ +}; +goog.provide("ol.style.Point"); +goog.require("ol.style.Symbolizer"); +ol.style.Point = function() { + goog.base(this) +}; +goog.inherits(ol.style.Point, ol.style.Symbolizer); +ol.style.Point.prototype.createLiteral = goog.abstractMethod; +goog.provide("ol.style.PointLiteral"); +goog.require("ol.style.Literal"); +ol.style.PointLiteral = function() { + goog.base(this) +}; +goog.inherits(ol.style.PointLiteral, ol.style.Literal); +goog.provide("ol.style.ShapeLiteral"); +goog.provide("ol.style.ShapeType"); +goog.require("goog.asserts"); +goog.require("ol.style.PointLiteral"); +ol.style.ShapeType = {CIRCLE:"circle"}; +ol.style.ShapeLiteralOptions; +ol.style.ShapeLiteral = function(options) { + goog.asserts.assertString(options.type, "type must be a string"); + this.type = options.type; + goog.asserts.assertNumber(options.size, "size must be a number"); + this.size = options.size; + this.fillColor = options.fillColor; + if(goog.isDef(options.fillColor)) { + goog.asserts.assertString(options.fillColor, "fillColor must be a string") + } + this.fillOpacity = options.fillOpacity; + if(goog.isDef(options.fillOpacity)) { + goog.asserts.assertNumber(options.fillOpacity, "fillOpacity must be a number") + } + this.strokeColor = options.strokeColor; + if(goog.isDef(this.strokeColor)) { + goog.asserts.assertString(this.strokeColor, "strokeColor must be a string") + } + this.strokeOpacity = options.strokeOpacity; + if(goog.isDef(this.strokeOpacity)) { + goog.asserts.assertNumber(this.strokeOpacity, "strokeOpacity must be a number") + } + this.strokeWidth = options.strokeWidth; + if(goog.isDef(this.strokeWidth)) { + goog.asserts.assertNumber(this.strokeWidth, "strokeWidth must be a number") + } + var fillDef = goog.isDef(this.fillColor) && goog.isDef(this.fillOpacity); + var strokeDef = goog.isDef(this.strokeColor) && goog.isDef(this.strokeOpacity) && goog.isDef(this.strokeWidth); + goog.asserts.assert(fillDef || strokeDef, "Either fillColor and fillOpacity or " + "strokeColor and strokeOpacity and strokeWidth must be set") +}; +goog.inherits(ol.style.ShapeLiteral, ol.style.PointLiteral); +ol.style.ShapeLiteral.prototype.equals = function(shapeLiteral) { + return this.type == shapeLiteral.type && this.size == shapeLiteral.size && this.fillColor == shapeLiteral.fillColor && this.fillOpacity == shapeLiteral.fillOpacity && this.strokeColor == shapeLiteral.strokeColor && this.strokeOpacity == shapeLiteral.strokeOpacity && this.strokeWidth == shapeLiteral.strokeWidth +}; +goog.provide("ol.style.LineLiteral"); +goog.require("goog.asserts"); +goog.require("ol.style.Literal"); +ol.style.LineLiteralOptions; +ol.style.LineLiteral = function(options) { + goog.base(this); + goog.asserts.assertString(options.color, "color must be a string"); + this.color = options.color; + goog.asserts.assertNumber(options.opacity, "opacity must be a number"); + this.opacity = options.opacity; + goog.asserts.assertNumber(options.width, "width must be a number"); + this.width = options.width +}; +goog.inherits(ol.style.LineLiteral, ol.style.Literal); +ol.style.LineLiteral.prototype.equals = function(lineLiteral) { + return this.color == lineLiteral.color && this.opacity == lineLiteral.opacity && this.width == lineLiteral.width +}; +goog.provide("ol.style.Stroke"); +goog.provide("ol.style.StrokeDefaults"); +goog.require("goog.asserts"); +goog.require("ol.Feature"); +goog.require("ol.expr"); +goog.require("ol.expr.Expression"); +goog.require("ol.expr.Literal"); +goog.require("ol.geom.GeometryType"); +goog.require("ol.style.LineLiteral"); +goog.require("ol.style.PolygonLiteral"); +goog.require("ol.style.Symbolizer"); +ol.style.Stroke = function(opt_options) { + goog.base(this); + var options = opt_options || {}; + this.color_ = !goog.isDefAndNotNull(options.color) ? new ol.expr.Literal(ol.style.StrokeDefaults.color) : options.color instanceof ol.expr.Expression ? options.color : new ol.expr.Literal(options.color); + this.opacity_ = !goog.isDefAndNotNull(options.opacity) ? new ol.expr.Literal(ol.style.StrokeDefaults.opacity) : options.opacity instanceof ol.expr.Expression ? options.opacity : new ol.expr.Literal(options.opacity); + this.width_ = !goog.isDefAndNotNull(options.width) ? new ol.expr.Literal(ol.style.StrokeDefaults.width) : options.width instanceof ol.expr.Expression ? options.width : new ol.expr.Literal(options.width) +}; +goog.inherits(ol.style.Stroke, ol.style.Symbolizer); +ol.style.Stroke.prototype.createLiteral = function(featureOrType) { + var feature, type; + if(featureOrType instanceof ol.Feature) { + feature = featureOrType; + var geometry = feature.getGeometry(); + type = geometry ? geometry.getType() : null + }else { + type = featureOrType + } + var color = ol.expr.evaluateFeature(this.color_, feature); + goog.asserts.assertString(color, "color must be a string"); + var opacity = Number(ol.expr.evaluateFeature(this.opacity_, feature)); + goog.asserts.assert(!isNaN(opacity), "opacity must be a number"); + var width = Number(ol.expr.evaluateFeature(this.width_, feature)); + goog.asserts.assert(!isNaN(width), "width must be a number"); + var literal = null; + if(type === ol.geom.GeometryType.LINESTRING || type === ol.geom.GeometryType.MULTILINESTRING) { + literal = new ol.style.LineLiteral({color:color, opacity:opacity, width:width}) + }else { + if(type === ol.geom.GeometryType.POLYGON || type === ol.geom.GeometryType.MULTIPOLYGON) { + literal = new ol.style.PolygonLiteral({strokeColor:color, strokeOpacity:opacity, strokeWidth:width}) + } + } + return literal +}; +ol.style.Stroke.prototype.getColor = function() { + return this.color_ +}; +ol.style.Stroke.prototype.getOpacity = function() { + return this.opacity_ +}; +ol.style.Stroke.prototype.getWidth = function() { + return this.width_ +}; +ol.style.Stroke.prototype.setColor = function(color) { + goog.asserts.assertInstanceof(color, ol.expr.Expression); + this.color_ = color +}; +ol.style.Stroke.prototype.setOpacity = function(opacity) { + goog.asserts.assertInstanceof(opacity, ol.expr.Expression); + this.opacity_ = opacity +}; +ol.style.Stroke.prototype.setWidth = function(width) { + goog.asserts.assertInstanceof(width, ol.expr.Expression); + this.width_ = width +}; +ol.style.StrokeDefaults = {color:"#696969", opacity:0.75, width:1.5}; +ol.style.StrokeDefaultsSelect = {color:"#696969", opacity:0.9, width:2}; +goog.provide("ol.style.Shape"); +goog.require("goog.asserts"); +goog.require("ol.Feature"); +goog.require("ol.expr"); +goog.require("ol.expr.Expression"); +goog.require("ol.expr.Literal"); +goog.require("ol.geom.GeometryType"); +goog.require("ol.style.Fill"); +goog.require("ol.style.Point"); +goog.require("ol.style.ShapeLiteral"); +goog.require("ol.style.ShapeType"); +goog.require("ol.style.Stroke"); +ol.style.Shape = function(options) { + this.type_ = (goog.isDef(options.type) ? options.type : ol.style.ShapeDefaults.type); + this.size_ = !goog.isDefAndNotNull(options.size) ? new ol.expr.Literal(ol.style.ShapeDefaults.size) : options.size instanceof ol.expr.Expression ? options.size : new ol.expr.Literal(options.size); + this.fill_ = goog.isDefAndNotNull(options.fill) ? options.fill : null; + this.stroke_ = goog.isDefAndNotNull(options.stroke) ? options.stroke : null; + goog.asserts.assert(this.fill_ || this.stroke_, "Stroke or fill must be provided") +}; +ol.style.Shape.prototype.createLiteral = function(featureOrType) { + var feature, type; + if(featureOrType instanceof ol.Feature) { + feature = featureOrType; + var geometry = feature.getGeometry(); + type = geometry ? geometry.getType() : null + }else { + type = featureOrType + } + var literal = null; + if(type === ol.geom.GeometryType.POINT || type === ol.geom.GeometryType.MULTIPOINT) { + var size = Number(ol.expr.evaluateFeature(this.size_, feature)); + goog.asserts.assert(!isNaN(size), "size must be a number"); + var fillColor, fillOpacity; + if(!goog.isNull(this.fill_)) { + fillColor = ol.expr.evaluateFeature(this.fill_.getColor(), feature); + goog.asserts.assertString(fillColor, "fillColor must be a string"); + fillOpacity = Number(ol.expr.evaluateFeature(this.fill_.getOpacity(), feature)); + goog.asserts.assert(!isNaN(fillOpacity), "fillOpacity must be a number") + } + var strokeColor, strokeOpacity, strokeWidth; + if(!goog.isNull(this.stroke_)) { + strokeColor = ol.expr.evaluateFeature(this.stroke_.getColor(), feature); + goog.asserts.assertString(strokeColor, "strokeColor must be a string"); + strokeOpacity = Number(ol.expr.evaluateFeature(this.stroke_.getOpacity(), feature)); + goog.asserts.assert(!isNaN(strokeOpacity), "strokeOpacity must be a number"); + strokeWidth = Number(ol.expr.evaluateFeature(this.stroke_.getWidth(), feature)); + goog.asserts.assert(!isNaN(strokeWidth), "strokeWidth must be a number") + } + literal = new ol.style.ShapeLiteral({type:this.type_, size:size, fillColor:fillColor, fillOpacity:fillOpacity, strokeColor:strokeColor, strokeOpacity:strokeOpacity, strokeWidth:strokeWidth}) + } + return literal +}; +ol.style.Shape.prototype.getFill = function() { + return this.fill_ +}; +ol.style.Shape.prototype.getSize = function() { + return this.size_ +}; +ol.style.Shape.prototype.getStroke = function() { + return this.stroke_ +}; +ol.style.Shape.prototype.getType = function() { + return this.type_ +}; +ol.style.Shape.prototype.setFill = function(fill) { + if(!goog.isNull(fill)) { + goog.asserts.assertInstanceof(fill, ol.style.Fill) + } + this.fill_ = fill +}; +ol.style.Shape.prototype.setSize = function(size) { + goog.asserts.assertInstanceof(size, ol.expr.Expression); + this.size_ = size +}; +ol.style.Shape.prototype.setStroke = function(stroke) { + if(!goog.isNull(stroke)) { + goog.asserts.assertInstanceof(stroke, ol.style.Stroke) + } + this.stroke_ = stroke +}; +ol.style.Shape.prototype.setType = function(type) { + this.type_ = type +}; +ol.style.ShapeDefaults = {type:ol.style.ShapeType.CIRCLE, size:5}; +goog.provide("ol.style"); +goog.provide("ol.style.Style"); +goog.require("goog.object"); +goog.require("ol.Feature"); +goog.require("ol.expr.Call"); +goog.require("ol.expr.Identifier"); +goog.require("ol.expr.Literal"); +goog.require("ol.expr.functions"); +goog.require("ol.geom.GeometryType"); +goog.require("ol.style.Fill"); +goog.require("ol.style.Literal"); +goog.require("ol.style.PolygonLiteral"); +goog.require("ol.style.Rule"); +goog.require("ol.style.Shape"); +goog.require("ol.style.Stroke"); +goog.require("ol.style.Symbolizer"); +ol.style.Style = function(options) { + this.rules_ = goog.isDef(options.rules) ? options.rules : []; + this.symbolizers_ = goog.isDef(options.symbolizers) ? options.symbolizers : [] +}; +ol.style.Style.prototype.createLiterals = function(feature) { + var rules = this.rules_, symbolizers = [], applies = false, rule; + for(var i = 0, ii = rules.length;i < ii;++i) { + rule = rules[i]; + if(rule.applies(feature)) { + applies = true; + symbolizers.push.apply(symbolizers, rule.getSymbolizers()) + } + } + if(!applies) { + symbolizers = this.symbolizers_ + } + return ol.style.Style.createLiterals(symbolizers, feature) +}; +ol.style.default_ = null; +ol.style.getDefault = function() { + if(goog.isNull(ol.style.default_)) { + ol.style.default_ = new ol.style.Style({rules:[new ol.style.Rule({filter:new ol.expr.Call(new ol.expr.Identifier(ol.expr.functions.RENDER_INTENT), [new ol.expr.Literal("select")]), symbolizers:[new ol.style.Shape({fill:new ol.style.Fill({color:"#ffffff", opacity:0.7}), stroke:new ol.style.Stroke({color:"#696969", opacity:0.9, width:2})}), new ol.style.Fill({color:"#ffffff", opacity:0.7}), new ol.style.Stroke({color:"#696969", opacity:0.9, width:2})]})], symbolizers:[new ol.style.Shape({fill:new ol.style.Fill, + stroke:new ol.style.Stroke}), new ol.style.Fill, new ol.style.Stroke]}) + } + return ol.style.default_ +}; +ol.style.setDefault = function(style) { + ol.style.default_ = style; + return style +}; +ol.style.Style.createLiterals = function(symbolizers, featureOrType) { + var length = symbolizers.length; + var literals = new Array(length); + for(var i = 0;i < length;++i) { + literals[i] = symbolizers[i].createLiteral(featureOrType) + } + return ol.style.Style.reduceLiterals_(literals) +}; +ol.style.Style.reduceLiterals_ = function(literals) { + var reduced = []; + var literal, stroke, fill, key, value; + for(var i = 0, ii = literals.length;i < ii;++i) { + literal = literals[i]; + if(literal instanceof ol.style.PolygonLiteral) { + if(goog.isDef(literal.strokeColor) && !goog.isDef(literal.fillColor)) { + if(fill) { + for(key in literal) { + value = literal[key]; + if(goog.isDef(value)) { + fill[key] = value + } + } + fill = null + }else { + stroke = literal; + reduced.push(stroke) + } + }else { + if(goog.isDef(literal.fillColor) && !goog.isDef(literal.strokeColor)) { + if(stroke) { + for(key in literal) { + value = literal[key]; + if(goog.isDef(value)) { + stroke[key] = value + } + } + stroke = null + }else { + fill = literal; + reduced.push(fill) + } + }else { + reduced.push(literal) + } + } + }else { + if(literal) { + reduced.push(literal) + } + } + } + return reduced +}; +goog.provide("ol.style.TextLiteral"); +goog.require("goog.asserts"); +goog.require("ol.style.Literal"); +ol.style.TextLiteralOptions; +ol.style.TextLiteral = function(options) { + goog.asserts.assertString(options.color, "color must be a string"); + this.color = options.color; + goog.asserts.assertString(options.fontFamily, "fontFamily must be a string"); + this.fontFamily = options.fontFamily; + goog.asserts.assertNumber(options.fontSize, "fontSize must be a number"); + this.fontSize = options.fontSize; + goog.asserts.assertString(options.text, "text must be a string"); + this.text = options.text; + goog.asserts.assertNumber(options.opacity, "opacity must be a number"); + this.opacity = options.opacity +}; +goog.inherits(ol.style.TextLiteral, ol.style.Literal); +ol.style.TextLiteral.prototype.equals = function(textLiteral) { + return this.color == textLiteral.color && this.fontFamily == textLiteral.fontFamily && this.fontSize == textLiteral.fontSize && this.opacity == textLiteral.opacity +}; +goog.provide("ol.layer.Vector"); +goog.provide("ol.layer.VectorLayerEventType"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.require("goog.events.EventType"); +goog.require("goog.object"); +goog.require("ol.Feature"); +goog.require("ol.expr"); +goog.require("ol.expr.Literal"); +goog.require("ol.expr.Logical"); +goog.require("ol.expr.LogicalOp"); +goog.require("ol.expr.functions"); +goog.require("ol.extent"); +goog.require("ol.geom.GeometryType"); +goog.require("ol.geom.SharedVertices"); +goog.require("ol.layer.Layer"); +goog.require("ol.proj"); +goog.require("ol.source.Vector"); +goog.require("ol.structs.RTree"); +goog.require("ol.style"); +goog.require("ol.style.Style"); +goog.require("ol.style.TextLiteral"); +ol.layer.FeatureCache = function() { + this.idLookup_; + this.geometryTypeIndex_; + this.rTree_; + this.clear() +}; +ol.layer.FeatureCache.prototype.clear = function() { + this.idLookup_ = {}; + var geometryTypeIndex = {}; + for(var key in ol.geom.GeometryType) { + geometryTypeIndex[ol.geom.GeometryType[key]] = {} + } + this.geometryTypeIndex_ = geometryTypeIndex; + this.rTree_ = new ol.structs.RTree +}; +ol.layer.FeatureCache.prototype.add = function(feature) { + var id = goog.getUid(feature).toString(), geometry = feature.getGeometry(); + this.idLookup_[id] = feature; + if(!goog.isNull(geometry)) { + var geometryType = geometry.getType(); + this.geometryTypeIndex_[geometryType][id] = feature; + this.rTree_.insert(geometry.getBounds(), feature, geometryType) + } +}; +ol.layer.FeatureCache.prototype.getFeaturesObject = function(opt_expr) { + var features; + if(!goog.isDef(opt_expr)) { + features = this.idLookup_ + }else { + var name = ol.expr.isLibCall(opt_expr); + if(name === ol.expr.functions.GEOMETRY_TYPE) { + var args = (opt_expr).getArgs(); + goog.asserts.assert(args.length === 1); + goog.asserts.assert(args[0] instanceof ol.expr.Literal); + var type = (args[0]).evaluate(); + goog.asserts.assertString(type); + features = this.geometryTypeIndex_[type] + }else { + if(name === ol.expr.functions.EXTENT) { + var args = (opt_expr).getArgs(); + goog.asserts.assert(args.length === 4); + var extent = []; + for(var i = 0;i < 4;++i) { + goog.asserts.assert(args[i] instanceof ol.expr.Literal); + extent[i] = (args[i]).evaluate(); + goog.asserts.assertNumber(extent[i]) + } + features = this.rTree_.searchReturningObject(extent) + }else { + if(opt_expr instanceof ol.expr.Logical) { + var op = (opt_expr).getOperator(); + if(op === ol.expr.LogicalOp.AND) { + var expressions = [opt_expr.getLeft(), opt_expr.getRight()]; + var expr, args, type, extent; + for(var i = 0;i <= 1;++i) { + expr = expressions[i]; + name = ol.expr.isLibCall(expr); + if(name === ol.expr.functions.GEOMETRY_TYPE) { + args = (expr).getArgs(); + goog.asserts.assert(args.length === 1); + goog.asserts.assert(args[0] instanceof ol.expr.Literal); + type = (args[0]).evaluate(); + goog.asserts.assertString(type) + }else { + if(name === ol.expr.functions.EXTENT) { + args = (expr).getArgs(); + goog.asserts.assert(args.length === 4); + extent = []; + for(var j = 0;j < 4;++j) { + goog.asserts.assert(args[j] instanceof ol.expr.Literal); + extent[j] = (args[j]).evaluate(); + goog.asserts.assertNumber(extent[j]) + } + } + } + } + if(type && extent) { + features = this.getFeaturesObjectForExtent(extent, (type)) + } + } + } + } + } + if(!goog.isDef(features)) { + var candidates = this.idLookup_, feature; + features = {}; + for(i in candidates) { + feature = candidates[i]; + if(ol.expr.evaluateFeature(opt_expr, feature)) { + features[i] = feature + } + } + } + } + return features +}; +ol.layer.FeatureCache.prototype.getFeaturesObjectForExtent = function(extent, opt_type) { + var features; + if(goog.isDef(opt_type) && goog.object.isEmpty(this.geometryTypeIndex_[opt_type])) { + features = {} + }else { + features = this.rTree_.searchReturningObject(extent, opt_type) + } + return features +}; +ol.layer.FeatureCache.prototype.getFeaturesByIds_ = function(ids) { + var len = ids.length, features = new Array(len), i; + for(i = 0;i < len;++i) { + features[i] = this.idLookup_[ids[i]] + } + return features +}; +ol.layer.FeatureCache.prototype.getFeatureWithUid = function(uid) { + return this.idLookup_[uid] +}; +ol.layer.FeatureCache.prototype.remove = function(feature) { + var bounds = null; + var id = goog.getUid(feature).toString(), geometry = feature.getGeometry(); + delete this.idLookup_[id]; + if(!goog.isNull(geometry)) { + var geometryType = geometry.getType(); + delete this.geometryTypeIndex_[geometryType][id]; + var result = this.rTree_.remove(geometry.getBounds(), feature); + if(result.length == 0) { + result = this.rTree_.remove([-Infinity, Infinity, -Infinity, Infinity], feature) + } + bounds = result[0].extent + } + return bounds +}; +ol.layer.VectorLayerEventType = {ADD:"add", CHANGE:goog.events.EventType.CHANGE, REMOVE:"remove", INTENTCHANGE:"intentchange"}; +ol.layer.VectorLayerEventObject; +ol.layer.Vector = function(options) { + goog.base(this, (options)); + this.style_ = goog.isDef(options.style) ? options.style : null; + this.featureCache_ = new ol.layer.FeatureCache; + this.transformFeatureInfo_ = goog.isDef(options.transformFeatureInfo) ? options.transformFeatureInfo : ol.layer.Vector.uidTransformFeatureInfo; + this.pointVertices_ = new ol.geom.SharedVertices; + this.lineVertices_ = new ol.geom.SharedVertices; + this.polygonVertices_ = new ol.geom.SharedVertices; + this.temporary_ = false; + this.editData_ = {rTree:null, vertexFeature:null} +}; +goog.inherits(ol.layer.Vector, ol.layer.Layer); +ol.layer.Vector.prototype.addFeatures = function(features) { + var extent = ol.extent.createEmpty(), feature, geometry; + for(var i = 0, ii = features.length;i < ii;++i) { + feature = features[i]; + this.featureCache_.add(feature); + geometry = feature.getGeometry(); + if(!goog.isNull(geometry)) { + ol.extent.extend(extent, geometry.getBounds()) + } + } + this.dispatchEvent(({extent:extent, features:features, type:ol.layer.VectorLayerEventType.ADD})) +}; +ol.layer.Vector.prototype.clear = function() { + this.featureCache_.clear(); + this.dispatchEvent(({type:ol.layer.VectorLayerEventType.CHANGE})) +}; +ol.layer.Vector.prototype.getTemporary = function() { + return this.temporary_ +}; +ol.layer.Vector.prototype.getEditData = function() { + return this.editData_ +}; +ol.layer.Vector.prototype.getVectorSource = function() { + return(this.getSource()) +}; +ol.layer.Vector.prototype.getStyle = function() { + return this.style_ +}; +ol.layer.Vector.prototype.getFeaturesObjectForExtent = function(extent, projection, opt_type, opt_callback) { + var source = this.getSource(); + return source.prepareFeatures(this, extent, projection, opt_callback) == ol.source.VectorLoadState.LOADING ? null : this.featureCache_.getFeaturesObjectForExtent(extent, opt_type) +}; +ol.layer.Vector.prototype.getLineVertices = function() { + return this.lineVertices_ +}; +ol.layer.Vector.prototype.getPointVertices = function() { + return this.pointVertices_ +}; +ol.layer.Vector.prototype.getPolygonVertices = function() { + return this.polygonVertices_ +}; +ol.layer.Vector.prototype.groupFeaturesBySymbolizerLiteral = function(features) { + var uniqueLiterals = {}, featuresBySymbolizer = [], style = this.style_, i, j, l, feature, symbolizers, literals, numLiterals, literal, uniqueLiteral, key, item; + for(i in features) { + feature = features[i]; + symbolizers = feature.getSymbolizers(); + if(!goog.isNull(symbolizers)) { + literals = ol.style.Style.createLiterals(symbolizers, feature) + }else { + if(goog.isNull(style)) { + style = ol.style.getDefault() + } + literals = style.createLiterals(feature) + } + numLiterals = literals.length; + for(j = 0;j < numLiterals;++j) { + literal = literals[j]; + for(l in uniqueLiterals) { + uniqueLiteral = featuresBySymbolizer[uniqueLiterals[l]][1]; + if(literal.equals(uniqueLiteral)) { + literal = uniqueLiteral; + break + } + } + key = goog.getUid(literal); + if(!goog.object.containsKey(uniqueLiterals, key)) { + uniqueLiterals[key] = featuresBySymbolizer.length; + featuresBySymbolizer.push([([]), (literal), ([])]) + } + item = featuresBySymbolizer[uniqueLiterals[key]]; + item[0].push(feature); + if(literal instanceof ol.style.TextLiteral) { + item[2].push(literals[j].text) + } + } + } + return featuresBySymbolizer +}; +ol.layer.Vector.prototype.parseFeatures = function(data, parser, projection) { + var lookup = {}; + lookup[ol.geom.GeometryType.POINT] = this.pointVertices_; + lookup[ol.geom.GeometryType.LINESTRING] = this.lineVertices_; + lookup[ol.geom.GeometryType.POLYGON] = this.polygonVertices_; + lookup[ol.geom.GeometryType.MULTIPOINT] = this.pointVertices_; + lookup[ol.geom.GeometryType.MULTILINESTRING] = this.lineVertices_; + lookup[ol.geom.GeometryType.MULTIPOLYGON] = this.polygonVertices_; + var callback = function(feature, type) { + return lookup[type] + }; + var addFeatures = function(data) { + var features = data.features; + var sourceProjection = this.getSource().getProjection(); + if(goog.isNull(sourceProjection)) { + sourceProjection = data.metadata.projection + } + var transform = ol.proj.getTransform(sourceProjection, projection); + transform(this.pointVertices_.coordinates, this.pointVertices_.coordinates, this.pointVertices_.getDimension()); + transform(this.lineVertices_.coordinates, this.lineVertices_.coordinates, this.lineVertices_.getDimension()); + transform(this.polygonVertices_.coordinates, this.polygonVertices_.coordinates, this.polygonVertices_.getDimension()); + this.addFeatures(features) + }; + var options = {callback:callback}, result; + if(goog.isString(data)) { + if(goog.isFunction(parser.readFeaturesFromStringAsync)) { + parser.readFeaturesFromStringAsync(data, goog.bind(addFeatures, this), options) + }else { + goog.asserts.assert(goog.isFunction(parser.readFeaturesFromString), "Expected parser with a readFeaturesFromString method."); + result = parser.readFeaturesFromString(data, options); + addFeatures.call(this, result) + } + }else { + if(goog.isObject(data)) { + if(goog.isFunction(parser.readFeaturesFromObjectAsync)) { + parser.readFeaturesFromObjectAsync(data, goog.bind(addFeatures, this), options) + }else { + goog.asserts.assert(goog.isFunction(parser.readFeaturesFromObject), "Expected parser with a readFeaturesFromObject method."); + result = parser.readFeaturesFromObject(data, options); + addFeatures.call(this, result) + } + }else { + throw new Error("Data type not supported: " + data); + } + } +}; +ol.layer.Vector.prototype.getTransformFeatureInfo = function() { + return this.transformFeatureInfo_ +}; +ol.layer.Vector.prototype.removeFeatures = function(features) { + var extent = ol.extent.createEmpty(), feature, geometry; + for(var i = 0, ii = features.length;i < ii;++i) { + feature = features[i]; + this.featureCache_.remove(feature); + geometry = feature.getGeometry(); + if(!goog.isNull(geometry)) { + ol.extent.extend(extent, geometry.getBounds()) + } + } + this.dispatchEvent(({extent:extent, features:features, type:ol.layer.VectorLayerEventType.REMOVE})) +}; +ol.layer.Vector.prototype.setRenderIntent = function(renderIntent, opt_features) { + var features = goog.isDef(opt_features) ? opt_features : goog.object.getValues(this.featureCache_.getFeaturesObject()); + var extent = ol.extent.createEmpty(), feature, geometry; + for(var i = features.length - 1;i >= 0;--i) { + feature = features[i]; + feature.renderIntent = renderIntent; + geometry = feature.getGeometry(); + if(!goog.isNull(geometry)) { + ol.extent.extend(extent, geometry.getBounds()) + } + } + this.dispatchEvent(({extent:extent, features:features, type:ol.layer.VectorLayerEventType.INTENTCHANGE})) +}; +ol.layer.Vector.prototype.setTemporary = function(temporary) { + this.temporary_ = temporary +}; +ol.layer.Vector.prototype.updateFeatures = function(features) { + var extent = ol.extent.createEmpty(); + for(var i = features.length - 1;i >= 0;--i) { + var feature = features[i]; + var geometry = feature.getGeometry(); + var oldBounds = this.featureCache_.remove(feature); + if(!goog.isNull(oldBounds)) { + ol.extent.extend(extent, oldBounds) + } + this.featureCache_.add(feature); + ol.extent.extend(extent, geometry.getBounds()) + } + this.dispatchEvent(({extent:extent, features:features, type:ol.layer.VectorLayerEventType.CHANGE})) +}; +ol.layer.Vector.uidTransformFeatureInfo = function(features) { + var uids = goog.array.map(features, function(feature) { + return goog.getUid(feature) + }); + return uids.join(", ") +}; +goog.provide("ol.renderer.canvas.Layer"); +goog.require("ol.layer.Layer"); +goog.require("ol.renderer.Layer"); +ol.renderer.canvas.Layer = function(mapRenderer, layer) { + goog.base(this, mapRenderer, layer) +}; +goog.inherits(ol.renderer.canvas.Layer, ol.renderer.Layer); +ol.renderer.canvas.Layer.prototype.getImage = goog.abstractMethod; +ol.renderer.canvas.Layer.prototype.getTransform = goog.abstractMethod; +goog.provide("ol.renderer.canvas.ImageLayer"); +goog.require("goog.events"); +goog.require("goog.events.EventType"); +goog.require("goog.vec.Mat4"); +goog.require("ol.Image"); +goog.require("ol.ImageState"); +goog.require("ol.ViewHint"); +goog.require("ol.layer.Image"); +goog.require("ol.renderer.Map"); +goog.require("ol.renderer.canvas.Layer"); +ol.renderer.canvas.ImageLayer = function(mapRenderer, imageLayer) { + goog.base(this, mapRenderer, imageLayer); + this.image_ = null; + this.transform_ = goog.vec.Mat4.createNumber() +}; +goog.inherits(ol.renderer.canvas.ImageLayer, ol.renderer.canvas.Layer); +ol.renderer.canvas.ImageLayer.prototype.getImage = function() { + return goog.isNull(this.image_) ? null : this.image_.getImageElement(this) +}; +ol.renderer.canvas.ImageLayer.prototype.getImageLayer = function() { + return(this.getLayer()) +}; +ol.renderer.canvas.ImageLayer.prototype.getTransform = function() { + return this.transform_ +}; +ol.renderer.canvas.ImageLayer.prototype.renderFrame = function(frameState, layerState) { + var view2DState = frameState.view2DState; + var viewCenter = view2DState.center; + var viewResolution = view2DState.resolution; + var viewRotation = view2DState.rotation; + var image; + var imageLayer = this.getImageLayer(); + var imageSource = imageLayer.getImageSource(); + var hints = frameState.viewHints; + if(!hints[ol.ViewHint.ANIMATING] && !hints[ol.ViewHint.INTERACTING]) { + image = imageSource.getImage(frameState.extent, viewResolution, view2DState.projection); + if(!goog.isNull(image)) { + var imageState = image.getState(); + if(imageState == ol.ImageState.IDLE) { + goog.events.listenOnce(image, goog.events.EventType.CHANGE, this.handleImageChange, false, this); + image.load() + }else { + if(imageState == ol.ImageState.LOADED) { + this.image_ = image + } + } + } + } + if(!goog.isNull(this.image_)) { + image = this.image_; + var imageExtent = image.getExtent(); + var imageResolution = image.getResolution(); + var transform = this.transform_; + goog.vec.Mat4.makeIdentity(transform); + goog.vec.Mat4.translate(transform, frameState.size[0] / 2, frameState.size[1] / 2, 0); + goog.vec.Mat4.rotateZ(transform, viewRotation); + goog.vec.Mat4.scale(transform, imageResolution / viewResolution, imageResolution / viewResolution, 1); + goog.vec.Mat4.translate(transform, (imageExtent[0] - viewCenter[0]) / imageResolution, (viewCenter[1] - imageExtent[3]) / imageResolution, 0); + this.updateAttributions(frameState.attributions, image.getAttributions()); + this.updateLogos(frameState, imageSource) + } +}; +goog.provide("ol.renderer.canvas.TileLayer"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.require("goog.dom"); +goog.require("goog.dom.TagName"); +goog.require("goog.object"); +goog.require("goog.vec.Mat4"); +goog.require("ol.Size"); +goog.require("ol.Tile"); +goog.require("ol.TileCoord"); +goog.require("ol.TileRange"); +goog.require("ol.TileState"); +goog.require("ol.extent"); +goog.require("ol.layer.Tile"); +goog.require("ol.renderer.Map"); +goog.require("ol.renderer.canvas.Layer"); +ol.renderer.canvas.TileLayer = function(mapRenderer, tileLayer) { + goog.base(this, mapRenderer, tileLayer); + this.canvas_ = null; + this.canvasSize_ = null; + this.context_ = null; + this.transform_ = goog.vec.Mat4.createNumber(); + this.renderedCanvasZ_ = NaN; + this.renderedCanvasTileRange_ = null; + this.renderedTiles_ = null +}; +goog.inherits(ol.renderer.canvas.TileLayer, ol.renderer.canvas.Layer); +ol.renderer.canvas.TileLayer.prototype.getImage = function() { + return this.canvas_ +}; +ol.renderer.canvas.TileLayer.prototype.getTileLayer = function() { + return(this.getLayer()) +}; +ol.renderer.canvas.TileLayer.prototype.getTransform = function() { + return this.transform_ +}; +ol.renderer.canvas.TileLayer.prototype.renderFrame = function(frameState, layerState) { + var view2DState = frameState.view2DState; + var projection = view2DState.projection; + var tileLayer = this.getTileLayer(); + var tileSource = tileLayer.getTileSource(); + var tileGrid = tileSource.getTileGrid(); + if(goog.isNull(tileGrid)) { + tileGrid = ol.tilegrid.getForProjection(projection) + } + var z = tileGrid.getZForResolution(view2DState.resolution); + var tileSize = tileGrid.getTileSize(z); + var tileResolution = tileGrid.getResolution(z); + var center = view2DState.center; + var extent; + if(tileResolution == view2DState.resolution) { + center = this.snapCenterToPixel(center, tileResolution, frameState.size); + extent = ol.extent.getForView2DAndSize(center, tileResolution, view2DState.rotation, frameState.size) + }else { + extent = frameState.extent + } + var tileRange = tileGrid.getTileRangeForExtentAndResolution(extent, tileResolution); + var canvasWidth = tileSize[0] * tileRange.getWidth(); + var canvasHeight = tileSize[1] * tileRange.getHeight(); + var canvas, context; + if(goog.isNull(this.canvas_)) { + goog.asserts.assert(goog.isNull(this.canvasSize_)); + goog.asserts.assert(goog.isNull(this.context_)); + goog.asserts.assert(goog.isNull(this.renderedCanvasTileRange_)); + canvas = (goog.dom.createElement(goog.dom.TagName.CANVAS)); + canvas.width = canvasWidth; + canvas.height = canvasHeight; + context = (canvas.getContext("2d")); + this.canvas_ = canvas; + this.canvasSize_ = [canvasWidth, canvasHeight]; + this.context_ = context + }else { + goog.asserts.assert(!goog.isNull(this.canvasSize_)); + goog.asserts.assert(!goog.isNull(this.context_)); + canvas = this.canvas_; + context = this.context_; + if(this.canvasSize_[0] < canvasWidth || this.canvasSize_[1] < canvasHeight) { + canvas.width = canvasWidth; + canvas.height = canvasHeight; + this.canvasSize_ = [canvasWidth, canvasHeight]; + this.renderedCanvasTileRange_ = null + }else { + canvasWidth = this.canvasSize_[0]; + canvasHeight = this.canvasSize_[1]; + if(z != this.renderedCanvasZ_ || !this.renderedCanvasTileRange_.containsTileRange(tileRange)) { + this.renderedCanvasTileRange_ = null + } + } + } + var canvasTileRange, canvasTileRangeWidth, minX, minY; + if(goog.isNull(this.renderedCanvasTileRange_)) { + canvasTileRangeWidth = canvasWidth / tileSize[0]; + var canvasTileRangeHeight = canvasHeight / tileSize[1]; + minX = tileRange.minX - Math.floor((canvasTileRangeWidth - tileRange.getWidth()) / 2); + minY = tileRange.minY - Math.floor((canvasTileRangeHeight - tileRange.getHeight()) / 2); + this.renderedCanvasZ_ = z; + this.renderedCanvasTileRange_ = new ol.TileRange(minX, minX + canvasTileRangeWidth - 1, minY, minY + canvasTileRangeHeight - 1); + this.renderedTiles_ = new Array(canvasTileRangeWidth * canvasTileRangeHeight); + canvasTileRange = this.renderedCanvasTileRange_ + }else { + canvasTileRange = this.renderedCanvasTileRange_; + canvasTileRangeWidth = canvasTileRange.getWidth() + } + goog.asserts.assert(canvasTileRange.containsTileRange(tileRange)); + var tilesToDrawByZ = {}; + tilesToDrawByZ[z] = {}; + var tilesToClear = []; + var getTileIfLoaded = this.createGetTileIfLoadedFunction(function(tile) { + return!goog.isNull(tile) && tile.getState() == ol.TileState.LOADED + }, tileSource, projection); + var findLoadedTiles = goog.bind(tileSource.findLoadedTiles, tileSource, tilesToDrawByZ, getTileIfLoaded); + var tmpExtent = ol.extent.createEmpty(); + var tmpTileRange = new ol.TileRange(0, 0, 0, 0); + var childTileRange, fullyLoaded, tile, tileState, x, y; + for(x = tileRange.minX;x <= tileRange.maxX;++x) { + for(y = tileRange.minY;y <= tileRange.maxY;++y) { + tile = tileSource.getTile(z, x, y, projection); + tileState = tile.getState(); + if(tileState == ol.TileState.LOADED || tileState == ol.TileState.EMPTY || tileState == ol.TileState.ERROR) { + tilesToDrawByZ[z][tile.tileCoord.toString()] = tile; + continue + } + fullyLoaded = tileGrid.forEachTileCoordParentTileRange(tile.tileCoord, findLoadedTiles, null, tmpTileRange, tmpExtent); + if(!fullyLoaded) { + tilesToClear.push(tile); + childTileRange = tileGrid.getTileCoordChildTileRange(tile.tileCoord, tmpTileRange, tmpExtent); + if(!goog.isNull(childTileRange)) { + findLoadedTiles(z + 1, childTileRange) + } + } + } + } + var i, ii; + for(i = 0, ii = tilesToClear.length;i < ii;++i) { + tile = tilesToClear[i]; + x = tileSize[0] * (tile.tileCoord.x - canvasTileRange.minX); + y = tileSize[1] * (canvasTileRange.maxY - tile.tileCoord.y); + context.clearRect(x, y, tileSize[0], tileSize[1]) + } + var zs = goog.array.map(goog.object.getKeys(tilesToDrawByZ), Number); + goog.array.sort(zs); + var opaque = tileSource.getOpaque(); + var origin = ol.extent.getTopLeft(tileGrid.getTileCoordExtent(new ol.TileCoord(z, canvasTileRange.minX, canvasTileRange.maxY), tmpExtent)); + var currentZ, index, scale, tileCoordKey, tileExtent, tilesToDraw; + var ix, iy, interimTileExtent, interimTileRange, maxX, maxY; + var height, width; + for(i = 0, ii = zs.length;i < ii;++i) { + currentZ = zs[i]; + tileSize = tileGrid.getTileSize(currentZ); + tilesToDraw = tilesToDrawByZ[currentZ]; + if(currentZ == z) { + for(tileCoordKey in tilesToDraw) { + tile = tilesToDraw[tileCoordKey]; + index = (tile.tileCoord.y - canvasTileRange.minY) * canvasTileRangeWidth + (tile.tileCoord.x - canvasTileRange.minX); + if(this.renderedTiles_[index] != tile) { + x = tileSize[0] * (tile.tileCoord.x - canvasTileRange.minX); + y = tileSize[1] * (canvasTileRange.maxY - tile.tileCoord.y); + tileState = tile.getState(); + if(tileState == ol.TileState.EMPTY || tileState == ol.TileState.ERROR || !opaque) { + context.clearRect(x, y, tileSize[0], tileSize[1]) + } + if(tileState == ol.TileState.LOADED) { + context.drawImage(tile.getImage(), x, y) + } + this.renderedTiles_[index] = tile + } + } + }else { + scale = tileGrid.getResolution(currentZ) / tileResolution; + for(tileCoordKey in tilesToDraw) { + tile = tilesToDraw[tileCoordKey]; + tileExtent = tileGrid.getTileCoordExtent(tile.tileCoord, tmpExtent); + x = (tileExtent[0] - origin[0]) / tileResolution; + y = (origin[1] - tileExtent[3]) / tileResolution; + width = scale * tileSize[0]; + height = scale * tileSize[1]; + tileState = tile.getState(); + if(tileState == ol.TileState.EMPTY || !opaque) { + context.clearRect(x, y, width, height) + } + if(tileState == ol.TileState.LOADED) { + context.drawImage(tile.getImage(), x, y, width, height) + } + interimTileRange = tileGrid.getTileRangeForExtentAndZ(tileExtent, z, tmpTileRange); + minX = Math.max(interimTileRange.minX, canvasTileRange.minX); + maxX = Math.min(interimTileRange.maxX, canvasTileRange.maxX); + minY = Math.max(interimTileRange.minY, canvasTileRange.minY); + maxY = Math.min(interimTileRange.maxY, canvasTileRange.maxY); + for(ix = minX;ix <= maxX;++ix) { + for(iy = minY;iy <= maxY;++iy) { + index = (iy - canvasTileRange.minY) * canvasTileRangeWidth + (ix - canvasTileRange.minX); + this.renderedTiles_[index] = undefined + } + } + } + } + } + this.updateUsedTiles(frameState.usedTiles, tileSource, z, tileRange); + this.manageTilePyramid(frameState, tileSource, tileGrid, projection, extent, z, tileLayer.getPreload()); + this.scheduleExpireCache(frameState, tileSource); + this.updateLogos(frameState, tileSource); + var transform = this.transform_; + goog.vec.Mat4.makeIdentity(transform); + goog.vec.Mat4.translate(transform, frameState.size[0] / 2, frameState.size[1] / 2, 0); + goog.vec.Mat4.rotateZ(transform, view2DState.rotation); + goog.vec.Mat4.scale(transform, tileResolution / view2DState.resolution, tileResolution / view2DState.resolution, 1); + goog.vec.Mat4.translate(transform, (origin[0] - center[0]) / tileResolution, (center[1] - origin[1]) / tileResolution, 0) +}; +goog.provide("ol.structs.LRUCache"); +goog.require("goog.asserts"); +goog.require("goog.object"); +ol.structs.LRUCache = function() { + this.count_ = 0; + this.entries_ = {}; + this.oldest_ = null; + this.newest_ = null +}; +ol.structs.LRUCache.prototype.assertValid = function() { + if(this.count_ === 0) { + goog.asserts.assert(goog.object.isEmpty(this.entries_)); + goog.asserts.assert(goog.isNull(this.oldest_)); + goog.asserts.assert(goog.isNull(this.newest_)) + }else { + goog.asserts.assert(goog.object.getCount(this.entries_) == this.count_); + goog.asserts.assert(!goog.isNull(this.oldest_)); + goog.asserts.assert(goog.isNull(this.oldest_.older)); + goog.asserts.assert(!goog.isNull(this.newest_)); + goog.asserts.assert(goog.isNull(this.newest_.newer)); + var i, entry; + var older = null; + i = 0; + for(entry = this.oldest_;!goog.isNull(entry);entry = entry.newer) { + goog.asserts.assert(entry.older === older); + older = entry; + ++i + } + goog.asserts.assert(i == this.count_); + var newer = null; + i = 0; + for(entry = this.newest_;!goog.isNull(entry);entry = entry.older) { + goog.asserts.assert(entry.newer === newer); + newer = entry; + ++i + } + goog.asserts.assert(i == this.count_) + } +}; +ol.structs.LRUCache.prototype.clear = function() { + this.count_ = 0; + this.entries_ = {}; + this.oldest_ = null; + this.newest_ = null +}; +ol.structs.LRUCache.prototype.containsKey = function(key) { + return this.entries_.hasOwnProperty(key) +}; +ol.structs.LRUCache.prototype.forEach = function(f, opt_obj) { + var entry = this.oldest_; + while(!goog.isNull(entry)) { + f.call(opt_obj, entry.value_, entry.key_, this); + entry = entry.newer + } +}; +ol.structs.LRUCache.prototype.get = function(key) { + var entry = this.entries_[key]; + goog.asserts.assert(goog.isDef(entry)); + if(entry === this.newest_) { + return entry.value_ + }else { + if(entry === this.oldest_) { + this.oldest_ = this.oldest_.newer; + this.oldest_.older = null + }else { + entry.newer.older = entry.older; + entry.older.newer = entry.newer + } + } + entry.newer = null; + entry.older = this.newest_; + this.newest_.newer = entry; + this.newest_ = entry; + return entry.value_ +}; +ol.structs.LRUCache.prototype.getCount = function() { + return this.count_ +}; +ol.structs.LRUCache.prototype.getKeys = function() { + var keys = new Array(this.count_); + var i = 0; + var entry; + for(entry = this.newest_;!goog.isNull(entry);entry = entry.older) { + keys[i++] = entry.key_ + } + goog.asserts.assert(i == this.count_); + return keys +}; +ol.structs.LRUCache.prototype.getValues = function() { + var values = new Array(this.count_); + var i = 0; + var entry; + for(entry = this.newest_;!goog.isNull(entry);entry = entry.older) { + values[i++] = entry.value_ + } + goog.asserts.assert(i == this.count_); + return values +}; +ol.structs.LRUCache.prototype.peekLast = function() { + goog.asserts.assert(!goog.isNull(this.oldest_)); + return this.oldest_.value_ +}; +ol.structs.LRUCache.prototype.peekLastKey = function() { + goog.asserts.assert(!goog.isNull(this.oldest_)); + return this.oldest_.key_ +}; +ol.structs.LRUCache.prototype.pop = function() { + goog.asserts.assert(!goog.isNull(this.oldest_)); + goog.asserts.assert(!goog.isNull(this.newest_)); + var entry = this.oldest_; + goog.asserts.assert(entry.key_ in this.entries_); + delete this.entries_[entry.key_]; + if(!goog.isNull(entry.newer)) { + entry.newer.older = null + } + this.oldest_ = entry.newer; + if(goog.isNull(this.oldest_)) { + this.newest_ = null + } + --this.count_; + return entry.value_ +}; +ol.structs.LRUCache.prototype.set = function(key, value) { + goog.asserts.assert(!(key in {})); + goog.asserts.assert(!(key in this.entries_)); + var entry = {key_:key, newer:null, older:this.newest_, value_:value}; + if(goog.isNull(this.newest_)) { + this.oldest_ = entry + }else { + this.newest_.newer = entry + } + this.newest_ = entry; + this.entries_[key] = entry; + ++this.count_ +}; +ol.structs.LRUCacheEntry; +goog.provide("ol.TileCache"); +goog.require("goog.asserts"); +goog.require("ol.Tile"); +goog.require("ol.TileCoord"); +goog.require("ol.TileRange"); +goog.require("ol.structs.LRUCache"); +ol.DEFAULT_TILE_CACHE_HIGH_WATER_MARK = 2048; +ol.TileCache = function(opt_highWaterMark) { + goog.base(this); + this.highWaterMark_ = goog.isDef(opt_highWaterMark) ? opt_highWaterMark : ol.DEFAULT_TILE_CACHE_HIGH_WATER_MARK +}; +goog.inherits(ol.TileCache, ol.structs.LRUCache); +ol.TileCache.prototype.canExpireCache = function() { + return this.getCount() > this.highWaterMark_ +}; +ol.TileCache.prototype.expireCache = function(usedTiles) { + var tile, zKey; + while(this.canExpireCache()) { + tile = (this.peekLast()); + goog.asserts.assert(tile instanceof ol.Tile, "ol.TileCache#expireCache only works with ol.Tile values."); + zKey = tile.tileCoord.z.toString(); + if(zKey in usedTiles && usedTiles[zKey].contains(tile.tileCoord)) { + break + }else { + this.pop() + } + } +}; +ol.TileCache.prototype.pruneTileRange = function(tileRange) { + var i = this.getCount(), key; + while(i--) { + key = this.peekLastKey(); + if(tileRange.contains(ol.TileCoord.createFromString(key))) { + this.pop() + }else { + this.get(key) + } + } +}; +goog.provide("ol.geom.AbstractCollection"); +goog.require("ol.geom.Geometry"); +ol.geom.AbstractCollection = function() { + goog.base(this); + this.dimension; + this.components = null; + this.bounds = null +}; +goog.inherits(ol.geom.AbstractCollection, ol.geom.Geometry); +ol.geom.AbstractCollection.prototype.getBounds = function() { + if(goog.isNull(this.bounds)) { + var minX, minY = minX = Infinity, maxX, maxY = maxX = -Infinity, components = this.components, len = components.length, bounds, i; + for(i = 0;i < len;++i) { + bounds = components[i].getBounds(); + minX = Math.min(bounds[0], minX); + maxX = Math.max(bounds[1], maxX); + minY = Math.min(bounds[2], minY); + maxY = Math.max(bounds[3], maxY) + } + this.bounds = [minX, maxX, minY, maxY] + } + return this.bounds +}; +ol.geom.AbstractCollection.prototype.getCoordinates = function() { + var count = this.components.length; + var coordinates = new Array(count); + for(var i = 0;i < count;++i) { + coordinates[i] = this.components[i].getCoordinates() + } + return coordinates +}; +ol.geom.AbstractCollection.prototype.getType = goog.abstractMethod; +ol.geom.AbstractCollection.prototype.invalidateBounds = function() { + this.bounds = null +}; +goog.provide("ol.geom"); +goog.require("ol.coordinate"); +ol.geom.squaredDistanceToSegment = function(coordinate, segment) { + return ol.coordinate.closestOnSegment(coordinate, segment)[2] +}; +goog.provide("ol.geom.LineString"); +goog.require("goog.asserts"); +goog.require("ol.CoordinateArray"); +goog.require("ol.geom"); +goog.require("ol.geom.Geometry"); +goog.require("ol.geom.GeometryType"); +goog.require("ol.geom.SharedVertices"); +ol.geom.LineString = function(coordinates, opt_shared) { + goog.base(this); + goog.asserts.assert(goog.isArray(coordinates[0])); + var vertices = opt_shared, dimension; + if(!goog.isDef(vertices)) { + dimension = coordinates[0].length; + vertices = new ol.geom.SharedVertices({dimension:dimension}) + } + this.vertices = vertices; + this.sharedId_ = vertices.add(coordinates); + this.dimension = vertices.getDimension(); + goog.asserts.assert(this.dimension >= 2); + this.bounds_ = null +}; +goog.inherits(ol.geom.LineString, ol.geom.Geometry); +ol.geom.LineString.prototype.get = function(index, dim) { + return this.vertices.get(this.sharedId_, index, dim) +}; +ol.geom.LineString.prototype.getCoordinates = function() { + var count = this.getCount(); + var coordinates = new Array(count); + var vertex; + for(var i = 0;i < count;++i) { + vertex = new Array(this.dimension); + for(var j = 0;j < this.dimension;++j) { + vertex[j] = this.get(i, j) + } + coordinates[i] = vertex + } + return coordinates +}; +ol.geom.LineString.prototype.getCount = function() { + return this.vertices.getCount(this.sharedId_) +}; +ol.geom.LineString.prototype.getBounds = function() { + if(goog.isNull(this.bounds_)) { + var dimension = this.dimension, vertices = this.vertices, id = this.sharedId_, count = vertices.getCount(id), start = vertices.getStart(id), end = start + count * dimension, coordinates = vertices.coordinates, minX, maxX, minY, maxY, x, y, i; + minX = maxX = coordinates[start]; + minY = maxY = coordinates[start + 1]; + for(i = start + dimension;i < end;i += dimension) { + x = coordinates[i]; + y = coordinates[i + 1]; + if(x < minX) { + minX = x + }else { + if(x > maxX) { + maxX = x + } + } + if(y < minY) { + minY = y + }else { + if(y > maxY) { + maxY = y + } + } + } + this.bounds_ = [minX, maxX, minY, maxY] + } + return this.bounds_ +}; +ol.geom.LineString.prototype.getType = function() { + return ol.geom.GeometryType.LINESTRING +}; +ol.geom.LineString.prototype.getSharedId = function() { + return this.sharedId_ +}; +ol.geom.LineString.prototype.distanceFromCoordinate = function(coordinate) { + var coordinates = this.getCoordinates(); + var dist2 = Infinity; + for(var i = 0, j = 1, len = coordinates.length;j < len;i = j++) { + dist2 = Math.min(dist2, ol.geom.squaredDistanceToSegment(coordinate, [coordinates[i], coordinates[j]])) + } + return Math.sqrt(dist2) +}; +ol.geom.LineString.prototype.invalidateBounds = function() { + this.bounds_ = null +}; +ol.geom.LineString.prototype.set = function(index, dim, value) { + this.invalidateBounds(); + this.vertices.set(this.sharedId_, index, dim, value) +}; +goog.provide("ol.geom.MultiLineString"); +goog.require("goog.asserts"); +goog.require("ol.CoordinateArray"); +goog.require("ol.geom.AbstractCollection"); +goog.require("ol.geom.GeometryType"); +goog.require("ol.geom.LineString"); +goog.require("ol.geom.SharedVertices"); +ol.geom.MultiLineString = function(coordinates, opt_shared) { + goog.base(this); + goog.asserts.assert(goog.isArray(coordinates[0][0])); + var vertices = opt_shared, dimension; + if(!goog.isDef(vertices)) { + dimension = coordinates[0][0].length; + vertices = new ol.geom.SharedVertices({dimension:dimension}) + } + var numParts = coordinates.length; + this.components = new Array(numParts); + for(var i = 0;i < numParts;++i) { + this.components[i] = new ol.geom.LineString(coordinates[i], vertices) + } + this.dimension = vertices.getDimension() +}; +goog.inherits(ol.geom.MultiLineString, ol.geom.AbstractCollection); +ol.geom.MultiLineString.prototype.getType = function() { + return ol.geom.GeometryType.MULTILINESTRING +}; +ol.geom.MultiLineString.prototype.distanceFromCoordinate = function(coordinate) { + var distance = Infinity; + for(var i = 0, ii = this.components.length;i < ii;++i) { + distance = Math.min(distance, this.components[i].distanceFromCoordinate(coordinate)) + } + return distance +}; +ol.geom.MultiLineString.fromParts = function(geometries, opt_shared) { + var count = geometries.length; + var coordinates = new Array(count); + for(var i = 0;i < count;++i) { + coordinates[i] = geometries[i].getCoordinates() + } + return new ol.geom.MultiLineString(coordinates, opt_shared) +}; +goog.provide("ol.geom.Point"); +goog.require("goog.asserts"); +goog.require("ol.Coordinate"); +goog.require("ol.geom.Geometry"); +goog.require("ol.geom.GeometryType"); +goog.require("ol.geom.SharedVertices"); +ol.geom.Point = function(coordinates, opt_shared) { + goog.base(this); + var vertices = opt_shared, dimension; + if(!goog.isDef(vertices)) { + dimension = coordinates.length; + vertices = new ol.geom.SharedVertices({dimension:dimension}) + } + this.vertices = vertices; + this.sharedId_ = vertices.add([coordinates]); + this.dimension = vertices.getDimension(); + goog.asserts.assert(this.dimension >= 2); + this.bounds_ = null +}; +goog.inherits(ol.geom.Point, ol.geom.Geometry); +ol.geom.Point.prototype.get = function(dim) { + return this.vertices.get(this.sharedId_, 0, dim) +}; +ol.geom.Point.prototype.getBounds = function() { + if(goog.isNull(this.bounds_)) { + var x = this.get(0), y = this.get(1); + this.bounds_ = [x, x, y, y] + } + return this.bounds_ +}; +ol.geom.Point.prototype.getCoordinates = function() { + var coordinates = new Array(this.dimension); + for(var i = 0;i < this.dimension;++i) { + coordinates[i] = this.get(i) + } + return coordinates +}; +ol.geom.Point.prototype.getType = function() { + return ol.geom.GeometryType.POINT +}; +ol.geom.Point.prototype.getSharedId = function() { + return this.sharedId_ +}; +ol.geom.Point.prototype.invalidateBounds = function() { + this.bounds_ = null +}; +ol.geom.Point.prototype.set = function(dim, value) { + if(!goog.isNull(this.bounds_) && dim <= 1) { + this.bounds_[dim * 2] = value; + this.bounds_[dim * 2 + 1] = value + } + this.vertices.set(this.sharedId_, 0, dim, value) +}; +goog.provide("ol.geom.MultiPoint"); +goog.require("goog.asserts"); +goog.require("ol.CoordinateArray"); +goog.require("ol.geom.AbstractCollection"); +goog.require("ol.geom.GeometryType"); +goog.require("ol.geom.Point"); +goog.require("ol.geom.SharedVertices"); +ol.geom.MultiPoint = function(coordinates, opt_shared) { + goog.base(this); + goog.asserts.assert(goog.isArray(coordinates[0])); + var vertices = opt_shared, dimension; + if(!goog.isDef(vertices)) { + dimension = coordinates[0].length; + vertices = new ol.geom.SharedVertices({dimension:dimension}) + } + this.vertices = vertices; + var numParts = coordinates.length; + this.components = new Array(numParts); + for(var i = 0;i < numParts;++i) { + this.components[i] = new ol.geom.Point(coordinates[i], vertices) + } + this.dimension = vertices.getDimension() +}; +goog.inherits(ol.geom.MultiPoint, ol.geom.AbstractCollection); +ol.geom.MultiPoint.prototype.getType = function() { + return ol.geom.GeometryType.MULTIPOINT +}; +ol.geom.MultiPoint.fromParts = function(geometries, opt_shared) { + var count = geometries.length; + var coordinates = new Array(count); + for(var i = 0;i < count;++i) { + coordinates[i] = geometries[i].getCoordinates() + } + return new ol.geom.MultiPoint(coordinates, opt_shared) +}; +goog.provide("ol.geom.LinearRing"); +goog.require("ol.CoordinateArray"); +goog.require("ol.geom.GeometryType"); +goog.require("ol.geom.LineString"); +goog.require("ol.geom.SharedVertices"); +ol.geom.LinearRing = function(coordinates, opt_shared) { + goog.base(this, coordinates, opt_shared) +}; +goog.inherits(ol.geom.LinearRing, ol.geom.LineString); +ol.geom.LinearRing.isClockwise = function(coordinates) { + var length = coordinates.length; + var edge = 0; + var last = coordinates[length - 1]; + var x1 = last[0]; + var y1 = last[1]; + var x2, y2, coord; + for(var i = 0;i < length;++i) { + coord = coordinates[i]; + x2 = coord[0]; + y2 = coord[1]; + edge += (x2 - x1) * (y2 + y1); + x1 = x2; + y1 = y2 + } + return edge > 0 +}; +ol.geom.LinearRing.prototype.getType = function() { + return ol.geom.GeometryType.LINEARRING +}; +ol.geom.LinearRing.prototype.containsCoordinate = function(coordinate) { + var x = coordinate[0], y = coordinate[1]; + var vertices = this.getCoordinates(); + var inside = false; + var xi, yi, xj, yj, intersect; + var numVertices = vertices.length; + for(var i = 0, j = numVertices - 1;i < numVertices;j = i++) { + xi = vertices[i][0]; + yi = vertices[i][1]; + xj = vertices[j][0]; + yj = vertices[j][1]; + intersect = yi > y != yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi; + if(intersect) { + inside = !inside + } + } + return inside +}; +goog.provide("ol.geom.Polygon"); +goog.require("goog.asserts"); +goog.require("ol.CoordinateArray"); +goog.require("ol.extent"); +goog.require("ol.geom.Geometry"); +goog.require("ol.geom.GeometryType"); +goog.require("ol.geom.LinearRing"); +goog.require("ol.geom.SharedVertices"); +ol.geom.Polygon = function(coordinates, opt_shared) { + goog.base(this); + goog.asserts.assert(goog.isArray(coordinates[0][0])); + var vertices = opt_shared, dimension; + if(!goog.isDef(vertices)) { + dimension = coordinates[0][0].length; + vertices = new ol.geom.SharedVertices({dimension:dimension}) + } + this.labelPoint_ = null; + this.vertices = vertices; + var numRings = coordinates.length; + this.rings = new Array(numRings); + var ringCoords; + for(var i = 0;i < numRings;++i) { + ringCoords = coordinates[i]; + if(i === 0) { + if(!ol.geom.LinearRing.isClockwise(ringCoords)) { + ringCoords.reverse() + } + }else { + if(ol.geom.LinearRing.isClockwise(ringCoords)) { + ringCoords.reverse() + } + } + this.rings[i] = new ol.geom.LinearRing(ringCoords, vertices) + } + this.dimension = vertices.getDimension(); + goog.asserts.assert(this.dimension >= 2) +}; +goog.inherits(ol.geom.Polygon, ol.geom.Geometry); +ol.geom.Polygon.prototype.getBounds = function() { + return this.rings[0].getBounds() +}; +ol.geom.Polygon.prototype.getCoordinates = function() { + var count = this.rings.length; + var coordinates = new Array(count); + for(var i = 0;i < count;++i) { + coordinates[i] = this.rings[i].getCoordinates() + } + return coordinates +}; +ol.geom.Polygon.prototype.getType = function() { + return ol.geom.GeometryType.POLYGON +}; +ol.geom.Polygon.prototype.containsCoordinate = function(coordinate) { + var rings = this.rings; + var containsCoordinate; + for(var i = 0, ii = rings.length;i < ii;++i) { + containsCoordinate = rings[i].containsCoordinate(coordinate); + if(i > 0) { + containsCoordinate = !containsCoordinate + } + if(!containsCoordinate) { + break + } + } + return containsCoordinate +}; +ol.geom.Polygon.prototype.getInteriorPoint = function() { + if(goog.isNull(this.labelPoint_)) { + var center = ol.extent.getCenter(this.getBounds()), resultY = center[1], vertices = this.rings[0].getCoordinates(), intersections = [], maxLength = 0, i, vertex1, vertex2, x, segmentLength, resultX; + for(i = vertices.length - 1;i >= 1;--i) { + vertex1 = vertices[i]; + vertex2 = vertices[i - 1]; + if(vertex1[1] >= resultY && vertex2[1] <= resultY || vertex1[1] <= resultY && vertex2[1] >= resultY) { + x = (resultY - vertex1[1]) / (vertex2[1] - vertex1[1]) * (vertex2[0] - vertex1[0]) + vertex1[0]; + intersections.push(x) + } + } + intersections.sort(); + for(i = intersections.length - 1;i >= 1;--i) { + segmentLength = Math.abs(intersections[i] - intersections[i - 1]); + if(segmentLength > maxLength) { + x = (intersections[i] + intersections[i - 1]) / 2; + if(this.containsCoordinate([x, resultY])) { + maxLength = segmentLength; + resultX = x + } + } + } + this.labelPoint_ = [resultX, resultY] + } + return this.labelPoint_ +}; +ol.geom.Polygon.prototype.invalidateBounds = function() { + this.rings[0].invalidateBounds() +}; +goog.provide("ol.geom.MultiPolygon"); +goog.require("goog.asserts"); +goog.require("ol.CoordinateArray"); +goog.require("ol.geom.AbstractCollection"); +goog.require("ol.geom.GeometryType"); +goog.require("ol.geom.Polygon"); +goog.require("ol.geom.SharedVertices"); +ol.geom.MultiPolygon = function(coordinates, opt_shared) { + goog.base(this); + goog.asserts.assert(goog.isArray(coordinates[0][0][0])); + var vertices = opt_shared, dimension; + if(!goog.isDef(vertices)) { + dimension = coordinates[0][0][0].length; + vertices = new ol.geom.SharedVertices({dimension:dimension}) + } + var numParts = coordinates.length; + this.components = new Array(numParts); + for(var i = 0;i < numParts;++i) { + this.components[i] = new ol.geom.Polygon(coordinates[i], vertices) + } + this.dimension = vertices.getDimension() +}; +goog.inherits(ol.geom.MultiPolygon, ol.geom.AbstractCollection); +ol.geom.MultiPolygon.prototype.getType = function() { + return ol.geom.GeometryType.MULTIPOLYGON +}; +ol.geom.MultiPolygon.prototype.containsCoordinate = function(coordinate) { + var containsCoordinate = false; + for(var i = 0, ii = this.components.length;i < ii;++i) { + if(this.components[i].containsCoordinate(coordinate)) { + containsCoordinate = true; + break + } + } + return containsCoordinate +}; +ol.geom.MultiPolygon.fromParts = function(geometries, opt_shared) { + var count = geometries.length; + var coordinates = new Array(count); + for(var i = 0;i < count;++i) { + coordinates[i] = geometries[i].getCoordinates() + } + return new ol.geom.MultiPolygon(coordinates, opt_shared) +}; +goog.provide("ol.style.IconLiteral"); +goog.require("ol.style.PointLiteral"); +ol.style.IconLiteralOptions; +ol.style.IconLiteral = function(options) { + this.url = options.url; + this.width = options.width; + this.height = options.height; + this.opacity = options.opacity; + this.rotation = options.rotation; + this.xOffset = options.xOffset; + this.yOffset = options.yOffset +}; +goog.inherits(ol.style.IconLiteral, ol.style.PointLiteral); +ol.style.IconLiteral.prototype.equals = function(iconLiteral) { + return this.url == iconLiteral.url && this.width == iconLiteral.width && this.height == iconLiteral.height && this.opacity == iconLiteral.opacity && this.rotation == iconLiteral.rotation && this.xOffset == iconLiteral.xOffset && this.yOffset == iconLiteral.yOffset +}; +goog.provide("ol.renderer.canvas.VectorRenderer"); +goog.require("goog.asserts"); +goog.require("goog.dom"); +goog.require("goog.dom.TagName"); +goog.require("goog.events"); +goog.require("goog.events.EventType"); +goog.require("goog.vec.Mat4"); +goog.require("ol.Feature"); +goog.require("ol.geom.AbstractCollection"); +goog.require("ol.geom.Geometry"); +goog.require("ol.geom.GeometryType"); +goog.require("ol.geom.LineString"); +goog.require("ol.geom.MultiLineString"); +goog.require("ol.geom.MultiPoint"); +goog.require("ol.geom.MultiPolygon"); +goog.require("ol.geom.Point"); +goog.require("ol.geom.Polygon"); +goog.require("ol.layer.VectorLayerRenderIntent"); +goog.require("ol.style.IconLiteral"); +goog.require("ol.style.LineLiteral"); +goog.require("ol.style.Literal"); +goog.require("ol.style.PointLiteral"); +goog.require("ol.style.PolygonLiteral"); +goog.require("ol.style.ShapeLiteral"); +goog.require("ol.style.ShapeType"); +goog.require("ol.style.TextLiteral"); +ol.renderer.canvas.VectorRenderer = function(canvas, transform, opt_iconLoadedCallback) { + var context = (canvas.getContext("2d")); + this.transform_ = transform; + var vec = [1, 0, 0]; + goog.vec.Mat4.multVec3NoTranslate(transform, vec, vec); + this.inverseScale_ = 1 / Math.sqrt(vec[0] * vec[0] + vec[1] * vec[1]); + this.context_ = context; + this.iconLoadedCallback_ = opt_iconLoadedCallback; + this.symbolSizes_ = {}; + this.symbolOffsets_ = {}; + this.maxSymbolSize_ = [0, 0] +}; +ol.renderer.canvas.VectorRenderer.prototype.getSymbolSizes = function() { + return this.symbolSizes_ +}; +ol.renderer.canvas.VectorRenderer.prototype.getSymbolOffsets = function() { + return this.symbolOffsets_ +}; +ol.renderer.canvas.VectorRenderer.prototype.getMaxSymbolSize = function() { + return this.maxSymbolSize_ +}; +ol.renderer.canvas.VectorRenderer.prototype.renderFeaturesByGeometryType = function(type, features, symbolizer, data) { + var deferred = false; + if(!(symbolizer instanceof ol.style.TextLiteral)) { + switch(type) { + case ol.geom.GeometryType.POINT: + ; + case ol.geom.GeometryType.MULTIPOINT: + goog.asserts.assert(symbolizer instanceof ol.style.PointLiteral, "Expected point symbolizer: " + symbolizer); + deferred = this.renderPointFeatures_(features, (symbolizer)); + break; + case ol.geom.GeometryType.LINESTRING: + ; + case ol.geom.GeometryType.MULTILINESTRING: + goog.asserts.assert(symbolizer instanceof ol.style.LineLiteral, "Expected line symbolizer: " + symbolizer); + this.renderLineStringFeatures_(features, (symbolizer)); + break; + case ol.geom.GeometryType.POLYGON: + ; + case ol.geom.GeometryType.MULTIPOLYGON: + goog.asserts.assert(symbolizer instanceof ol.style.PolygonLiteral, "Expected polygon symbolizer: " + symbolizer); + this.renderPolygonFeatures_(features, (symbolizer)); + break; + default: + throw new Error("Rendering not implemented for geometry type: " + type); + } + }else { + this.renderText_(features, symbolizer, data) + } + return deferred +}; +ol.renderer.canvas.VectorRenderer.prototype.renderLineStringFeatures_ = function(features, symbolizer) { + var context = this.context_, i, ii, feature, id, currentSize, geometry, components, j, jj, line, dim, k, kk, vec, strokeSize; + context.globalAlpha = symbolizer.opacity; + context.strokeStyle = symbolizer.color; + context.lineWidth = symbolizer.width; + context.lineCap = "round"; + context.lineJoin = "round"; + strokeSize = context.lineWidth * this.inverseScale_; + context.beginPath(); + for(i = 0, ii = features.length;i < ii;++i) { + feature = features[i]; + if(feature.renderIntent === ol.layer.VectorLayerRenderIntent.HIDDEN) { + continue + } + id = goog.getUid(feature); + currentSize = goog.isDef(this.symbolSizes_[id]) ? this.symbolSizes_[id] : [0]; + currentSize[0] = Math.max(currentSize[0], strokeSize); + this.symbolSizes_[id] = currentSize; + this.maxSymbolSize_ = [Math.max(currentSize[0], this.maxSymbolSize_[0]), Math.max(currentSize[0], this.maxSymbolSize_[1])]; + geometry = feature.getGeometry(); + if(geometry instanceof ol.geom.LineString) { + components = [geometry] + }else { + goog.asserts.assert(geometry instanceof ol.geom.MultiLineString, "Expected MultiLineString"); + components = geometry.components + } + for(j = 0, jj = components.length;j < jj;++j) { + line = components[j]; + dim = line.dimension; + for(k = 0, kk = line.getCount();k < kk;++k) { + vec = [line.get(k, 0), line.get(k, 1), 0]; + goog.vec.Mat4.multVec3(this.transform_, vec, vec); + if(k === 0) { + context.moveTo(vec[0], vec[1]) + }else { + context.lineTo(vec[0], vec[1]) + } + } + } + } + context.stroke() +}; +ol.renderer.canvas.VectorRenderer.prototype.renderPointFeatures_ = function(features, symbolizer) { + var context = this.context_, content, alpha, i, ii, feature, id, size, geometry, components, j, jj, point, vec; + var xOffset = 0; + var yOffset = 0; + if(symbolizer instanceof ol.style.ShapeLiteral) { + content = ol.renderer.canvas.VectorRenderer.renderShape(symbolizer); + alpha = 1 + }else { + if(symbolizer instanceof ol.style.IconLiteral) { + content = ol.renderer.canvas.VectorRenderer.renderIcon(symbolizer, this.iconLoadedCallback_); + alpha = symbolizer.opacity; + xOffset = symbolizer.xOffset; + yOffset = symbolizer.yOffset + }else { + throw new Error("Unsupported symbolizer: " + symbolizer); + } + } + if(goog.isNull(content)) { + return true + } + var midWidth = content.width / 2; + var midHeight = content.height / 2; + var contentWidth = content.width * this.inverseScale_; + var contentHeight = content.height * this.inverseScale_; + var contentXOffset = xOffset * this.inverseScale_; + var contentYOffset = yOffset * this.inverseScale_; + context.save(); + context.setTransform(1, 0, 0, 1, -midWidth, -midHeight); + context.globalAlpha = alpha; + for(i = 0, ii = features.length;i < ii;++i) { + feature = features[i]; + if(feature.renderIntent === ol.layer.VectorLayerRenderIntent.HIDDEN) { + continue + } + id = goog.getUid(feature); + size = this.symbolSizes_[id]; + this.symbolSizes_[id] = goog.isDef(size) ? [Math.max(size[0], contentWidth), Math.max(size[1], contentHeight)] : [contentWidth, contentHeight]; + this.symbolOffsets_[id] = [xOffset * this.inverseScale_, yOffset * this.inverseScale_]; + this.maxSymbolSize_ = [Math.max(this.maxSymbolSize_[0], this.symbolSizes_[id][0] + 2 * Math.abs(contentXOffset)), Math.max(this.maxSymbolSize_[1], this.symbolSizes_[id][1] + 2 * Math.abs(contentYOffset))]; + geometry = feature.getGeometry(); + if(geometry instanceof ol.geom.Point) { + components = [geometry] + }else { + goog.asserts.assert(geometry instanceof ol.geom.MultiPoint, "Expected MultiPoint"); + components = geometry.components + } + for(j = 0, jj = components.length;j < jj;++j) { + point = components[j]; + vec = [point.get(0), point.get(1), 0]; + goog.vec.Mat4.multVec3(this.transform_, vec, vec); + context.drawImage(content, vec[0] + xOffset, vec[1] + yOffset, content.width, content.height) + } + } + context.restore(); + return false +}; +ol.renderer.canvas.VectorRenderer.prototype.renderText_ = function(features, text, texts) { + var context = this.context_, feature, vecs, vec; + if(context.fillStyle !== text.color) { + context.fillStyle = text.color + } + context.font = text.fontSize + "px " + text.fontFamily; + context.globalAlpha = text.opacity; + context.textAlign = "center"; + context.textBaseline = "middle"; + for(var i = 0, ii = features.length;i < ii;++i) { + feature = features[i]; + if(feature.renderIntent === ol.layer.VectorLayerRenderIntent.HIDDEN) { + continue + } + vecs = ol.renderer.canvas.VectorRenderer.getLabelVectors(feature.getGeometry()); + for(var j = 0, jj = vecs.length;j < jj;++j) { + vec = vecs[j]; + goog.vec.Mat4.multVec3(this.transform_, vec, vec); + context.fillText(texts[i], vec[0], vec[1]) + } + } +}; +ol.renderer.canvas.VectorRenderer.prototype.renderPolygonFeatures_ = function(features, symbolizer) { + var context = this.context_, strokeColor = symbolizer.strokeColor, strokeWidth = symbolizer.strokeWidth, strokeOpacity = symbolizer.strokeOpacity, fillColor = symbolizer.fillColor, fillOpacity = symbolizer.fillOpacity, globalAlpha, i, ii, geometry, components, j, jj, poly, rings, numRings, ring, dim, k, kk, vec, feature; + if(strokeColor) { + context.strokeStyle = strokeColor; + if(strokeWidth) { + context.lineWidth = strokeWidth + } + context.lineCap = "round"; + context.lineJoin = "round" + } + if(fillColor) { + context.fillStyle = fillColor + } + context.beginPath(); + for(i = 0, ii = features.length;i < ii;++i) { + feature = features[i]; + if(feature.renderIntent === ol.layer.VectorLayerRenderIntent.HIDDEN) { + continue + } + geometry = feature.getGeometry(); + if(geometry instanceof ol.geom.Polygon) { + components = [geometry] + }else { + goog.asserts.assert(geometry instanceof ol.geom.MultiPolygon, "Expected MultiPolygon"); + components = geometry.components + } + for(j = 0, jj = components.length;j < jj;++j) { + poly = components[j]; + dim = poly.dimension; + rings = poly.rings; + numRings = rings.length; + if(numRings > 0) { + ring = rings[0]; + for(k = 0, kk = ring.getCount();k < kk;++k) { + vec = [ring.get(k, 0), ring.get(k, 1), 0]; + goog.vec.Mat4.multVec3(this.transform_, vec, vec); + if(k === 0) { + context.moveTo(vec[0], vec[1]) + }else { + context.lineTo(vec[0], vec[1]) + } + } + if(fillColor && strokeColor) { + if(fillOpacity !== globalAlpha) { + goog.asserts.assertNumber(fillOpacity); + context.globalAlpha = fillOpacity; + globalAlpha = fillOpacity + } + context.fill(); + if(strokeOpacity !== globalAlpha) { + goog.asserts.assertNumber(strokeOpacity); + context.globalAlpha = strokeOpacity; + globalAlpha = strokeOpacity + } + context.stroke(); + if(i < ii - 1 || j < jj - 1) { + context.beginPath() + } + } + } + } + } + if(!(fillColor && strokeColor)) { + if(fillColor) { + if(fillOpacity !== globalAlpha) { + goog.asserts.assertNumber(fillOpacity); + context.globalAlpha = fillOpacity; + globalAlpha = fillOpacity + } + context.fill() + }else { + if(strokeOpacity !== globalAlpha) { + goog.asserts.assertNumber(strokeOpacity); + context.globalAlpha = strokeOpacity; + globalAlpha = strokeOpacity + } + context.stroke() + } + } +}; +ol.renderer.canvas.VectorRenderer.renderCircle_ = function(circle) { + var strokeWidth = circle.strokeWidth || 0, size = circle.size + 2 * strokeWidth + 1, mid = size / 2, canvas = (goog.dom.createElement(goog.dom.TagName.CANVAS)), context = (canvas.getContext("2d")), fillColor = circle.fillColor, strokeColor = circle.strokeColor, twoPi = Math.PI * 2; + canvas.height = size; + canvas.width = size; + if(fillColor) { + context.fillStyle = fillColor + } + if(strokeColor) { + context.lineWidth = strokeWidth; + context.strokeStyle = strokeColor; + context.lineCap = "round"; + context.lineJoin = "round" + } + context.beginPath(); + context.arc(mid, mid, circle.size / 2, 0, twoPi, true); + if(fillColor) { + goog.asserts.assertNumber(circle.fillOpacity); + context.globalAlpha = circle.fillOpacity; + context.fill() + } + if(strokeColor) { + goog.asserts.assertNumber(circle.strokeOpacity); + context.globalAlpha = circle.strokeOpacity; + context.stroke() + } + return canvas +}; +ol.renderer.canvas.VectorRenderer.getLabelVectors = function(geometry) { + if(geometry instanceof ol.geom.AbstractCollection) { + var components = geometry.components; + var numComponents = components.length; + var result = []; + for(var i = 0;i < numComponents;++i) { + result.push.apply(result, ol.renderer.canvas.VectorRenderer.getLabelVectors(components[i])) + } + return result + } + var type = geometry.getType(); + if(type == ol.geom.GeometryType.POINT) { + return[[geometry.get(0), geometry.get(1), 0]] + } + if(type == ol.geom.GeometryType.POLYGON) { + var coordinates = geometry.getInteriorPoint(); + return[[coordinates[0], coordinates[1], 0]] + } + throw new Error("Label rendering not implemented for geometry type: " + type); +}; +ol.renderer.canvas.VectorRenderer.renderShape = function(shape) { + var canvas; + if(shape.type === ol.style.ShapeType.CIRCLE) { + canvas = ol.renderer.canvas.VectorRenderer.renderCircle_(shape) + }else { + throw new Error("Unsupported shape type: " + shape); + } + return canvas +}; +ol.renderer.canvas.VectorRenderer.renderIcon = function(icon, opt_callback) { + var url = icon.url; + var image = ol.renderer.canvas.VectorRenderer.icons_[url]; + var deferred = false; + if(!goog.isDef(image)) { + deferred = true; + image = (goog.dom.createElement(goog.dom.TagName.IMG)); + goog.events.listenOnce(image, goog.events.EventType.ERROR, goog.bind(ol.renderer.canvas.VectorRenderer.handleIconError_, null, opt_callback), false, ol.renderer.canvas.VectorRenderer.renderIcon); + goog.events.listenOnce(image, goog.events.EventType.LOAD, goog.bind(ol.renderer.canvas.VectorRenderer.handleIconLoad_, null, opt_callback), false, ol.renderer.canvas.VectorRenderer.renderIcon); + image.setAttribute("src", url) + }else { + if(!goog.isNull(image)) { + var width = icon.width, height = icon.height; + if(goog.isDef(width) && goog.isDef(height)) { + image.width = width; + image.height = height + }else { + if(goog.isDef(width)) { + image.height = width / image.width * image.height; + image.width = width + }else { + if(goog.isDef(height)) { + image.width = height / image.height * image.width; + image.height = height + } + } + } + } + } + return deferred ? null : image +}; +ol.renderer.canvas.VectorRenderer.icons_ = {}; +ol.renderer.canvas.VectorRenderer.handleIconError_ = function(opt_callback, opt_event) { + if(goog.isDef(opt_event)) { + var url = opt_event.target.getAttribute("src"); + ol.renderer.canvas.VectorRenderer.icons_[url] = null; + ol.renderer.canvas.VectorRenderer.handleIconLoad_(opt_callback, opt_event) + } +}; +ol.renderer.canvas.VectorRenderer.handleIconLoad_ = function(opt_callback, opt_event) { + if(goog.isDef(opt_event)) { + var url = opt_event.target.getAttribute("src"); + ol.renderer.canvas.VectorRenderer.icons_[url] = (opt_event.target) + } + if(goog.isDef(opt_callback)) { + opt_callback() + } +}; +goog.provide("ol.renderer.canvas.VectorLayer"); +goog.require("goog.dom"); +goog.require("goog.dom.TagName"); +goog.require("goog.events"); +goog.require("goog.object"); +goog.require("goog.vec.Mat4"); +goog.require("ol.Pixel"); +goog.require("ol.TileCache"); +goog.require("ol.TileCoord"); +goog.require("ol.TileRange"); +goog.require("ol.ViewHint"); +goog.require("ol.extent"); +goog.require("ol.geom.GeometryType"); +goog.require("ol.layer.Vector"); +goog.require("ol.layer.VectorLayerEventType"); +goog.require("ol.renderer.canvas.Layer"); +goog.require("ol.renderer.canvas.VectorRenderer"); +goog.require("ol.tilegrid.TileGrid"); +ol.renderer.canvas.MIN_RESOLUTION = 0.14929107086948487; +ol.renderer.canvas.VectorLayer = function(mapRenderer, layer) { + goog.base(this, mapRenderer, layer); + this.canvas_ = (goog.dom.createElement(goog.dom.TagName.CANVAS)); + this.context_ = (this.canvas_.getContext("2d")); + this.transform_ = goog.vec.Mat4.createNumber(); + this.sketchCanvas_ = (goog.dom.createElement(goog.dom.TagName.CANVAS)); + this.sketchTransform_ = goog.vec.Mat4.createNumber(); + this.tileCache_ = new ol.TileCache(ol.renderer.canvas.VectorLayer.TILECACHE_SIZE); + goog.events.listen(layer, [ol.layer.VectorLayerEventType.ADD, ol.layer.VectorLayerEventType.CHANGE, ol.layer.VectorLayerEventType.REMOVE, ol.layer.VectorLayerEventType.INTENTCHANGE], this.handleLayerChange_, false, this); + this.tileArchetype_ = null; + this.geometryTypes_ = [ol.geom.GeometryType.POINT, ol.geom.GeometryType.MULTIPOINT, ol.geom.GeometryType.LINESTRING, ol.geom.GeometryType.MULTILINESTRING, ol.geom.GeometryType.POLYGON, ol.geom.GeometryType.MULTIPOLYGON]; + this.renderedResolution_; + this.renderedExtent_ = null; + this.dirty_ = false; + this.pendingCachePrune_ = false; + this.tileGrid_ = null; + this.tileRange_ = new ol.TileRange(NaN, NaN, NaN, NaN); + this.requestMapRenderFrame_ = goog.bind(function() { + this.dirty_ = true; + mapRenderer.getMap().requestRenderFrame() + }, this) +}; +goog.inherits(ol.renderer.canvas.VectorLayer, ol.renderer.canvas.Layer); +ol.renderer.canvas.VectorLayer.prototype.expireTiles_ = function(opt_extent) { + var tileCache = this.tileCache_; + if(goog.isDef(opt_extent)) { + var tileRange = this.tileGrid_.getTileRangeForExtentAndZ(opt_extent, 0); + tileCache.pruneTileRange(tileRange) + }else { + tileCache.clear() + } +}; +ol.renderer.canvas.VectorLayer.prototype.getImage = function() { + return this.canvas_ +}; +ol.renderer.canvas.VectorLayer.prototype.getVectorLayer = function() { + return(this.getLayer()) +}; +ol.renderer.canvas.VectorLayer.prototype.getTransform = function() { + return this.transform_ +}; +ol.renderer.canvas.VectorLayer.prototype.getFeatureInfoForPixel = function(pixel, success) { + var callback = function(features, layer) { + success(layer.getTransformFeatureInfo()(features), layer) + }; + this.getFeaturesForPixel(pixel, callback) +}; +ol.renderer.canvas.VectorLayer.prototype.getFeaturesForPixel = function(pixel, success, opt_error) { + var map = this.getMap(); + var result = []; + var layer = this.getLayer(); + var location = map.getCoordinateFromPixel(pixel); + var tileCoord = this.tileGrid_.getTileCoordForCoordAndZ(location, 0); + var key = tileCoord.toString(); + if(this.tileCache_.containsKey(key)) { + var cachedTile = this.tileCache_.get(key); + var symbolSizes = cachedTile[1]; + var maxSymbolSize = cachedTile[2]; + var symbolOffsets = cachedTile[3]; + var halfMaxWidth = maxSymbolSize[0] / 2; + var halfMaxHeight = maxSymbolSize[1] / 2; + var locationMin = [location[0] - halfMaxWidth, location[1] - halfMaxHeight]; + var locationMax = [location[0] + halfMaxWidth, location[1] + halfMaxHeight]; + var locationBbox = ol.extent.boundingExtent([locationMin, locationMax]); + var candidates = layer.getFeaturesObjectForExtent(locationBbox, map.getView().getView2D().getProjection()); + if(goog.isNull(candidates)) { + if(goog.isDef(opt_error)) { + goog.global.setTimeout(function() { + opt_error() + }, 0) + } + return + } + var candidate, geom, type, symbolBounds, symbolSize, symbolOffset, halfWidth, halfHeight, uid, coordinates, j; + for(var id in candidates) { + candidate = candidates[id]; + geom = candidate.getGeometry(); + type = geom.getType(); + if(type === ol.geom.GeometryType.POINT || type === ol.geom.GeometryType.MULTIPOINT) { + uid = goog.getUid(candidate); + symbolSize = symbolSizes[uid]; + symbolOffset = symbolOffsets[uid]; + halfWidth = symbolSize[0] / 2; + halfHeight = symbolSize[1] / 2; + symbolBounds = ol.extent.boundingExtent([[location[0] - halfWidth - symbolOffset[0], location[1] - halfHeight + symbolOffset[1]], [location[0] + halfWidth - symbolOffset[0], location[1] + halfHeight + symbolOffset[1]]]); + coordinates = geom.getCoordinates(); + if(!goog.isArray(coordinates[0])) { + coordinates = [coordinates] + } + for(j = coordinates.length - 1;j >= 0;--j) { + if(ol.extent.containsCoordinate(symbolBounds, coordinates[j])) { + result.push(candidate); + break + } + } + }else { + if(goog.isFunction(geom.containsCoordinate)) { + if(geom.containsCoordinate(location)) { + result.push(candidate) + } + }else { + if(goog.isFunction(geom.distanceFromCoordinate)) { + if(2 * geom.distanceFromCoordinate(location) <= symbolSizes[goog.getUid(candidate)][0]) { + result.push(candidate) + } + } + } + } + } + } + goog.global.setTimeout(function() { + success(result, layer) + }, 0) +}; +ol.renderer.canvas.VectorLayer.prototype.handleLayerChange_ = function(event) { + this.expireTiles_(event.extent); + this.requestMapRenderFrame_() +}; +ol.renderer.canvas.VectorLayer.prototype.renderFrame = function(frameState, layerState) { + var view2DState = frameState.view2DState, resolution = view2DState.resolution, projection = view2DState.projection, extent = frameState.extent, layer = this.getVectorLayer(), tileGrid = this.tileGrid_, tileSize = [512, 512], idle = !frameState.viewHints[ol.ViewHint.ANIMATING] && !frameState.viewHints[ol.ViewHint.INTERACTING]; + if(idle) { + var minResolution = ol.renderer.canvas.MIN_RESOLUTION; + var metersPerUnit = projection.getMetersPerUnit(); + if(metersPerUnit) { + minResolution = minResolution / metersPerUnit + } + var gridResolution = Math.max(resolution, minResolution); + if(gridResolution !== this.renderedResolution_) { + tileGrid = new ol.tilegrid.TileGrid({origin:[0, 0], projection:projection, resolutions:[gridResolution], tileSize:tileSize}); + this.tileCache_.clear(); + this.tileGrid_ = tileGrid + } + } + if(goog.isNull(tileGrid)) { + return + } + var tileResolution = tileGrid.getResolution(0); + if(idle) { + tileGrid.getTileRangeForExtentAndResolution(extent, tileResolution, this.tileRange_) + } + var transform = this.transform_, tileRange = this.tileRange_, tileRangeExtent = tileGrid.getTileRangeExtent(0, tileRange), sketchOrigin = ol.extent.getTopLeft(tileRangeExtent); + goog.vec.Mat4.makeIdentity(transform); + goog.vec.Mat4.translate(transform, frameState.size[0] / 2, frameState.size[1] / 2, 0); + goog.vec.Mat4.scale(transform, tileResolution / resolution, tileResolution / resolution, 1); + goog.vec.Mat4.rotateZ(transform, view2DState.rotation); + goog.vec.Mat4.translate(transform, (sketchOrigin[0] - view2DState.center[0]) / tileResolution, (view2DState.center[1] - sketchOrigin[1]) / tileResolution, 0); + if(!this.dirty_ && this.renderedResolution_ === tileResolution && ol.extent.equals(this.renderedExtent_, tileRangeExtent)) { + return + } + if(goog.isNull(this.tileArchetype_)) { + this.tileArchetype_ = (goog.dom.createElement(goog.dom.TagName.CANVAS)); + this.tileArchetype_.width = tileSize[0]; + this.tileArchetype_.height = tileSize[1] + } + var sketchCanvas = this.sketchCanvas_; + var sketchWidth = tileSize[0] * tileRange.getWidth(); + var sketchHeight = tileSize[1] * tileRange.getHeight(); + var sketchTransform = this.sketchTransform_; + var halfWidth = sketchWidth / 2; + var halfHeight = sketchHeight / 2; + goog.vec.Mat4.makeIdentity(sketchTransform); + goog.vec.Mat4.translate(sketchTransform, halfWidth, halfHeight, 0); + goog.vec.Mat4.scale(sketchTransform, 1 / tileResolution, -1 / tileResolution, 1); + goog.vec.Mat4.translate(sketchTransform, -(sketchOrigin[0] + halfWidth * tileResolution), -(sketchOrigin[1] - halfHeight * tileResolution), 0); + sketchCanvas.width = sketchWidth; + sketchCanvas.height = sketchHeight; + var sketchCanvasRenderer = new ol.renderer.canvas.VectorRenderer(sketchCanvas, sketchTransform, this.requestMapRenderFrame_); + var finalCanvas = this.canvas_; + finalCanvas.width = sketchWidth; + finalCanvas.height = sketchHeight; + var finalContext = this.context_; + var featuresToRender = {}; + var tilesToRender = {}; + var tilesOnSketchCanvas = {}; + var tileGutter = 15 * tileResolution; + var tile, tileCoord, key, x, y; + var types = this.geometryTypes_, numTypes = types.length, deferred = false, dirty = false, i, type, tileExtent, groups, group, j, numGroups, featuresObject, tileHasFeatures; + fetchTileData:for(x = tileRange.minX;x <= tileRange.maxX;++x) { + for(y = tileRange.minY;y <= tileRange.maxY;++y) { + tileCoord = new ol.TileCoord(0, x, y); + key = tileCoord.toString(); + if(this.tileCache_.containsKey(key)) { + tilesToRender[key] = tileCoord + }else { + if(idle) { + tileExtent = tileGrid.getTileCoordExtent(tileCoord); + tileExtent[0] -= tileGutter; + tileExtent[1] += tileGutter; + tileExtent[2] -= tileGutter; + tileExtent[3] += tileGutter; + tileHasFeatures = false; + for(i = 0;i < numTypes;++i) { + type = types[i]; + if(!goog.isDef(featuresToRender[type])) { + featuresToRender[type] = {} + } + featuresObject = layer.getFeaturesObjectForExtent(tileExtent, projection, type, this.requestMapRenderFrame_); + if(goog.isNull(featuresObject)) { + deferred = true; + break fetchTileData + } + tileHasFeatures = tileHasFeatures || !goog.object.isEmpty(featuresObject); + goog.object.extend(featuresToRender[type], featuresObject) + } + if(tileHasFeatures) { + tilesOnSketchCanvas[key] = tileCoord + } + }else { + dirty = true + } + } + } + } + this.dirty_ = dirty; + renderByGeometryType:for(type in featuresToRender) { + groups = layer.groupFeaturesBySymbolizerLiteral(featuresToRender[type]); + numGroups = groups.length; + for(j = 0;j < numGroups;++j) { + group = groups[j]; + deferred = sketchCanvasRenderer.renderFeaturesByGeometryType((type), group[0], group[1], group[2]); + if(deferred) { + break renderByGeometryType + } + } + } + if(!deferred) { + goog.object.extend(tilesToRender, tilesOnSketchCanvas) + } + var symbolSizes = sketchCanvasRenderer.getSymbolSizes(), maxSymbolSize = sketchCanvasRenderer.getMaxSymbolSize(), symbolOffsets = sketchCanvasRenderer.getSymbolOffsets(); + for(key in tilesToRender) { + tileCoord = tilesToRender[key]; + if(this.tileCache_.containsKey(key)) { + tile = (this.tileCache_.get(key)[0]) + }else { + tile = (this.tileArchetype_.cloneNode(false)); + tile.getContext("2d").drawImage(sketchCanvas, (tileRange.minX - tileCoord.x) * tileSize[0], (tileCoord.y - tileRange.maxY) * tileSize[1]); + this.tileCache_.set(key, [tile, symbolSizes, maxSymbolSize, symbolOffsets]) + } + finalContext.drawImage(tile, tileSize[0] * (tileCoord.x - tileRange.minX), tileSize[1] * (tileRange.maxY - tileCoord.y)) + } + this.renderedResolution_ = tileResolution; + this.renderedExtent_ = tileRangeExtent; + if(!this.pendingCachePrune_) { + this.pendingCachePrune_ = true; + frameState.postRenderFunctions.push(goog.bind(this.pruneTileCache_, this)) + } +}; +ol.renderer.canvas.VectorLayer.prototype.pruneTileCache_ = function() { + while(this.tileCache_.canExpireCache()) { + this.tileCache_.pop() + } + this.pendingCachePrune_ = false +}; +ol.renderer.canvas.VectorLayer.TILECACHE_SIZE = 128; +goog.provide("ol.renderer.canvas.Map"); +goog.require("goog.asserts"); +goog.require("goog.dom"); +goog.require("goog.dom.TagName"); +goog.require("goog.style"); +goog.require("goog.vec.Mat4"); +goog.require("ol.Size"); +goog.require("ol.css"); +goog.require("ol.layer.Image"); +goog.require("ol.layer.Tile"); +goog.require("ol.layer.Vector"); +goog.require("ol.renderer.Map"); +goog.require("ol.renderer.canvas.ImageLayer"); +goog.require("ol.renderer.canvas.TileLayer"); +goog.require("ol.renderer.canvas.VectorLayer"); +goog.require("ol.size"); +ol.renderer.canvas.Map = function(container, map) { + goog.base(this, container, map); + this.canvas_ = goog.dom.createElement(goog.dom.TagName.CANVAS); + this.canvas_.height = container.clientHeight; + this.canvas_.width = container.clientWidth; + this.canvas_.className = ol.css.CLASS_UNSELECTABLE; + goog.dom.insertChildAt(container, this.canvas_, 0); + this.renderedVisible_ = true; + this.canvasSize_ = [container.clientHeight, container.clientWidth]; + this.context_ = this.canvas_.getContext("2d") +}; +goog.inherits(ol.renderer.canvas.Map, ol.renderer.Map); +ol.renderer.canvas.Map.prototype.createLayerRenderer = function(layer) { + if(layer instanceof ol.layer.Image) { + return new ol.renderer.canvas.ImageLayer(this, layer) + }else { + if(layer instanceof ol.layer.Tile) { + return new ol.renderer.canvas.TileLayer(this, layer) + }else { + if(layer instanceof ol.layer.Vector) { + return new ol.renderer.canvas.VectorLayer(this, layer) + }else { + goog.asserts.fail(); + return null + } + } + } +}; +ol.renderer.canvas.Map.prototype.getCanvas = function() { + return this.canvas_ +}; +ol.renderer.canvas.Map.prototype.renderFrame = function(frameState) { + if(goog.isNull(frameState)) { + if(this.renderedVisible_) { + goog.style.setElementShown(this.canvas_, false); + this.renderedVisible_ = false + } + return + } + var size = frameState.size; + if(!ol.size.equals(this.canvasSize_, size)) { + this.canvas_.width = size[0]; + this.canvas_.height = size[1]; + this.canvasSize_ = size + } + var context = this.context_; + context.setTransform(1, 0, 0, 1, 0, 0); + context.clearRect(0, 0, size[0], size[1]); + this.calculateMatrices2D(frameState); + var layerStates = frameState.layerStates; + var layersArray = frameState.layersArray; + var i, ii, image, layer, layerRenderer, layerState, transform; + for(i = 0, ii = layersArray.length;i < ii;++i) { + layer = layersArray[i]; + layerRenderer = this.getLayerRenderer(layer); + layerState = layerStates[goog.getUid(layer)]; + if(!layerState.visible || !layerState.ready) { + continue + } + layerRenderer.renderFrame(frameState, layerState); + image = layerRenderer.getImage(); + if(!goog.isNull(image)) { + transform = layerRenderer.getTransform(); + context.globalAlpha = layerState.opacity; + if(frameState.view2DState.rotation === 0) { + var dx = goog.vec.Mat4.getElement(transform, 0, 3); + var dy = goog.vec.Mat4.getElement(transform, 1, 3); + var dw = image.width * goog.vec.Mat4.getElement(transform, 0, 0); + var dh = image.height * goog.vec.Mat4.getElement(transform, 1, 1); + context.drawImage(image, 0, 0, image.width, image.height, dx, dy, dw, dh) + }else { + context.setTransform(goog.vec.Mat4.getElement(transform, 0, 0), goog.vec.Mat4.getElement(transform, 1, 0), goog.vec.Mat4.getElement(transform, 0, 1), goog.vec.Mat4.getElement(transform, 1, 1), goog.vec.Mat4.getElement(transform, 0, 3), goog.vec.Mat4.getElement(transform, 1, 3)); + context.drawImage(image, 0, 0) + } + } + } + if(!this.renderedVisible_) { + goog.style.setElementShown(this.canvas_, true); + this.renderedVisible_ = true + } + this.scheduleRemoveUnusedLayerRenderers(frameState) +}; +goog.provide("ol.canvas"); +goog.provide("ol.canvas.SUPPORTED"); +goog.require("goog.dom"); +goog.require("goog.dom.TagName"); +ol.canvas.SUPPORTED = function() { + if(!("HTMLCanvasElement" in goog.global)) { + return false + } + try { + var canvas = (goog.dom.createElement(goog.dom.TagName.CANVAS)); + return!goog.isNull(canvas.getContext("2d")) + }catch(e) { + return false + } +}(); +goog.provide("ol.renderer.canvas.SUPPORTED"); +goog.require("ol.canvas.SUPPORTED"); +ol.renderer.canvas.SUPPORTED = ol.canvas.SUPPORTED; +goog.provide("ol.dom"); +goog.provide("ol.dom.BrowserFeature"); +goog.require("goog.asserts"); +goog.require("goog.vec.Mat4"); +ol.dom.BrowserFeature = {CAN_USE_CSS_TRANSFORM:false, CAN_USE_CSS_TRANSFORM3D:true}; +ol.dom.setTransform = function(element, value) { + var style = element.style; + style.WebkitTransform = value; + style.MozTransform = value; + style.OTransform = value; + style.transform = value +}; +ol.dom.transformElement2D = function(element, transform, opt_precision) { + var i; + if(ol.dom.BrowserFeature.CAN_USE_CSS_TRANSFORM3D) { + var value3D; + if(goog.isDef(opt_precision)) { + var strings3D = new Array(16); + for(i = 0;i < 16;++i) { + strings3D[i] = transform[i].toFixed(opt_precision) + } + value3D = strings3D.join(",") + }else { + value3D = transform.join(",") + } + ol.dom.setTransform(element, "matrix3d(" + value3D + ")") + }else { + if(ol.dom.BrowserFeature.CAN_USE_CSS_TRANSFORM) { + var transform2D = [goog.vec.Mat4.getElement(transform, 0, 0), goog.vec.Mat4.getElement(transform, 1, 0), goog.vec.Mat4.getElement(transform, 0, 1), goog.vec.Mat4.getElement(transform, 1, 1), goog.vec.Mat4.getElement(transform, 0, 3), goog.vec.Mat4.getElement(transform, 1, 3)]; + var value2D; + if(goog.isDef(opt_precision)) { + var strings2D = new Array(6); + for(i = 0;i < 6;++i) { + strings2D[i] = transform2D[i].toFixed(opt_precision) + } + value2D = strings2D.join(",") + }else { + value2D = transform2D.join(",") + } + ol.dom.setTransform(element, "matrix(" + value2D + ")") + }else { + var style = element.style; + style.left = Math.round(goog.vec.Mat4.getElement(transform, 0, 3)) + "px"; + style.top = Math.round(goog.vec.Mat4.getElement(transform, 1, 3)) + "px" + } + } +}; +goog.provide("ol.renderer.dom.Layer"); +goog.require("goog.dom"); +goog.require("ol.layer.Layer"); +goog.require("ol.renderer.Layer"); +ol.renderer.dom.Layer = function(mapRenderer, layer, target) { + goog.base(this, mapRenderer, layer); + this.target = target +}; +goog.inherits(ol.renderer.dom.Layer, ol.renderer.Layer); +ol.renderer.dom.Layer.prototype.getTarget = function() { + return this.target +}; +goog.provide("ol.renderer.dom.ImageLayer"); +goog.require("goog.dom"); +goog.require("goog.dom.TagName"); +goog.require("goog.events"); +goog.require("goog.events.EventType"); +goog.require("goog.vec.Mat4"); +goog.require("ol.Image"); +goog.require("ol.ImageState"); +goog.require("ol.ViewHint"); +goog.require("ol.dom"); +goog.require("ol.layer.Image"); +goog.require("ol.renderer.dom.Layer"); +ol.renderer.dom.ImageLayer = function(mapRenderer, imageLayer) { + var target = goog.dom.createElement(goog.dom.TagName.DIV); + target.style.position = "absolute"; + goog.base(this, mapRenderer, imageLayer, target); + this.image_ = null; + this.transform_ = goog.vec.Mat4.createNumberIdentity() +}; +goog.inherits(ol.renderer.dom.ImageLayer, ol.renderer.dom.Layer); +ol.renderer.dom.ImageLayer.prototype.getImageLayer = function() { + return(this.getLayer()) +}; +ol.renderer.dom.ImageLayer.prototype.renderFrame = function(frameState, layerState) { + var view2DState = frameState.view2DState; + var viewCenter = view2DState.center; + var viewResolution = view2DState.resolution; + var viewRotation = view2DState.rotation; + var image = this.image_; + var imageLayer = this.getImageLayer(); + var imageSource = imageLayer.getImageSource(); + var hints = frameState.viewHints; + if(!hints[ol.ViewHint.ANIMATING] && !hints[ol.ViewHint.INTERACTING]) { + var image_ = imageSource.getImage(frameState.extent, viewResolution, view2DState.projection); + if(!goog.isNull(image_)) { + var imageState = image_.getState(); + if(imageState == ol.ImageState.IDLE) { + goog.events.listenOnce(image_, goog.events.EventType.CHANGE, this.handleImageChange, false, this); + image_.load() + }else { + if(imageState == ol.ImageState.LOADED) { + image = image_ + } + } + } + } + if(!goog.isNull(image)) { + var imageExtent = image.getExtent(); + var imageResolution = image.getResolution(); + var transform = goog.vec.Mat4.createNumber(); + goog.vec.Mat4.makeIdentity(transform); + goog.vec.Mat4.translate(transform, frameState.size[0] / 2, frameState.size[1] / 2, 0); + goog.vec.Mat4.rotateZ(transform, viewRotation); + goog.vec.Mat4.scale(transform, imageResolution / viewResolution, imageResolution / viewResolution, 1); + goog.vec.Mat4.translate(transform, (imageExtent[0] - viewCenter[0]) / imageResolution, (viewCenter[1] - imageExtent[3]) / imageResolution, 0); + if(image != this.image_) { + var imageElement = image.getImageElement(this); + imageElement.style.maxWidth = "none"; + imageElement.style.position = "absolute"; + goog.dom.removeChildren(this.target); + goog.dom.appendChild(this.target, imageElement); + this.image_ = image + } + this.setTransform_(transform); + this.updateAttributions(frameState.attributions, image.getAttributions()); + this.updateLogos(frameState, imageSource) + } +}; +ol.renderer.dom.ImageLayer.prototype.setTransform_ = function(transform) { + if(!goog.vec.Mat4.equals(transform, this.transform_)) { + ol.dom.transformElement2D(this.target, transform, 6); + goog.vec.Mat4.setFromArray(this.transform_, transform) + } +}; +goog.provide("ol.renderer.dom.TileLayer"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.require("goog.dom"); +goog.require("goog.dom.TagName"); +goog.require("goog.object"); +goog.require("goog.style"); +goog.require("goog.vec.Mat4"); +goog.require("ol.Coordinate"); +goog.require("ol.Tile"); +goog.require("ol.TileCoord"); +goog.require("ol.TileRange"); +goog.require("ol.TileState"); +goog.require("ol.ViewHint"); +goog.require("ol.dom"); +goog.require("ol.extent"); +goog.require("ol.layer.Tile"); +goog.require("ol.renderer.dom.Layer"); +goog.require("ol.tilegrid.TileGrid"); +ol.renderer.dom.TileLayer = function(mapRenderer, tileLayer) { + var target = goog.dom.createElement(goog.dom.TagName.DIV); + target.style.position = "absolute"; + goog.base(this, mapRenderer, tileLayer, target); + this.renderedVisible_ = true; + this.renderedOpacity_ = 1; + this.renderedRevision_ = 0; + this.tileLayerZs_ = {} +}; +goog.inherits(ol.renderer.dom.TileLayer, ol.renderer.dom.Layer); +ol.renderer.dom.TileLayer.prototype.getTileLayer = function() { + return(this.getLayer()) +}; +ol.renderer.dom.TileLayer.prototype.renderFrame = function(frameState, layerState) { + if(!layerState.visible) { + if(this.renderedVisible_) { + goog.style.setElementShown(this.target, false); + this.renderedVisible_ = false + } + return + } + var view2DState = frameState.view2DState; + var projection = view2DState.projection; + var tileLayer = this.getTileLayer(); + var tileSource = tileLayer.getTileSource(); + var tileGrid = tileSource.getTileGrid(); + if(goog.isNull(tileGrid)) { + tileGrid = ol.tilegrid.getForProjection(projection) + } + var z = tileGrid.getZForResolution(view2DState.resolution); + var tileResolution = tileGrid.getResolution(z); + var center = view2DState.center; + var extent; + if(tileResolution == view2DState.resolution) { + center = this.snapCenterToPixel(center, tileResolution, frameState.size); + extent = ol.extent.getForView2DAndSize(center, tileResolution, view2DState.rotation, frameState.size) + }else { + extent = frameState.extent + } + var tileRange = tileGrid.getTileRangeForExtentAndResolution(extent, tileResolution); + var tilesToDrawByZ = {}; + tilesToDrawByZ[z] = {}; + var getTileIfLoaded = this.createGetTileIfLoadedFunction(function(tile) { + return!goog.isNull(tile) && tile.getState() == ol.TileState.LOADED + }, tileSource, projection); + var findLoadedTiles = goog.bind(tileSource.findLoadedTiles, tileSource, tilesToDrawByZ, getTileIfLoaded); + var tmpExtent = ol.extent.createEmpty(); + var tmpTileRange = new ol.TileRange(0, 0, 0, 0); + var childTileRange, fullyLoaded, tile, tileState, x, y; + for(x = tileRange.minX;x <= tileRange.maxX;++x) { + for(y = tileRange.minY;y <= tileRange.maxY;++y) { + tile = tileSource.getTile(z, x, y, projection); + tileState = tile.getState(); + if(tileState == ol.TileState.LOADED) { + tilesToDrawByZ[z][tile.tileCoord.toString()] = tile; + continue + }else { + if(tileState == ol.TileState.ERROR || tileState == ol.TileState.EMPTY) { + continue + } + } + fullyLoaded = tileGrid.forEachTileCoordParentTileRange(tile.tileCoord, findLoadedTiles, null, tmpTileRange, tmpExtent); + if(!fullyLoaded) { + childTileRange = tileGrid.getTileCoordChildTileRange(tile.tileCoord, tmpTileRange, tmpExtent); + if(!goog.isNull(childTileRange)) { + findLoadedTiles(z + 1, childTileRange) + } + } + } + } + var tileLayerZ, tileLayerZKey; + if(this.renderedRevision_ != tileSource.getRevision()) { + for(tileLayerZKey in this.tileLayerZs_) { + tileLayerZ = this.tileLayerZs_[+tileLayerZKey]; + goog.dom.removeNode(tileLayerZ.target) + } + this.tileLayerZs_ = {}; + this.renderedRevision_ = tileSource.getRevision() + } + var zs = goog.array.map(goog.object.getKeys(tilesToDrawByZ), Number); + goog.array.sort(zs); + var newTileLayerZKeys = {}; + var iz, iziz, tileCoordKey, tileCoordOrigin, tilesToDraw; + for(iz = 0, iziz = zs.length;iz < iziz;++iz) { + tileLayerZKey = zs[iz]; + if(tileLayerZKey in this.tileLayerZs_) { + tileLayerZ = this.tileLayerZs_[tileLayerZKey] + }else { + tileCoordOrigin = tileGrid.getTileCoordForCoordAndZ(center, tileLayerZKey); + tileLayerZ = new ol.renderer.dom.TileLayerZ_(tileGrid, tileCoordOrigin); + newTileLayerZKeys[tileLayerZKey] = true; + this.tileLayerZs_[tileLayerZKey] = tileLayerZ + } + tilesToDraw = tilesToDrawByZ[tileLayerZKey]; + for(tileCoordKey in tilesToDraw) { + tileLayerZ.addTile(tilesToDraw[tileCoordKey]) + } + tileLayerZ.finalizeAddTiles() + } + var tileLayerZKeys = goog.array.map(goog.object.getKeys(this.tileLayerZs_), Number); + goog.array.sort(tileLayerZKeys); + var i, ii, j, origin, resolution; + var transform = goog.vec.Mat4.createNumber(); + for(i = 0, ii = tileLayerZKeys.length;i < ii;++i) { + tileLayerZKey = tileLayerZKeys[i]; + tileLayerZ = this.tileLayerZs_[tileLayerZKey]; + if(!(tileLayerZKey in tilesToDrawByZ)) { + goog.dom.removeNode(tileLayerZ.target); + delete this.tileLayerZs_[tileLayerZKey]; + continue + } + resolution = tileLayerZ.getResolution(); + origin = tileLayerZ.getOrigin(); + goog.vec.Mat4.makeIdentity(transform); + goog.vec.Mat4.translate(transform, frameState.size[0] / 2, frameState.size[1] / 2, 0); + goog.vec.Mat4.rotateZ(transform, view2DState.rotation); + goog.vec.Mat4.scale(transform, resolution / view2DState.resolution, resolution / view2DState.resolution, 1); + goog.vec.Mat4.translate(transform, (origin[0] - center[0]) / resolution, (center[1] - origin[1]) / resolution, 0); + tileLayerZ.setTransform(transform); + if(tileLayerZKey in newTileLayerZKeys) { + for(j = tileLayerZKey - 1;j >= 0;--j) { + if(j in this.tileLayerZs_) { + goog.dom.insertSiblingAfter(tileLayerZ.target, this.tileLayerZs_[j].target); + break + } + } + if(j < 0) { + goog.dom.insertChildAt(this.target, tileLayerZ.target, 0) + } + }else { + if(!frameState.viewHints[ol.ViewHint.ANIMATING] && !frameState.viewHints[ol.ViewHint.INTERACTING]) { + tileLayerZ.removeTilesOutsideExtent(extent, tmpTileRange) + } + } + } + if(layerState.opacity != this.renderedOpacity_) { + goog.style.setOpacity(this.target, layerState.opacity); + this.renderedOpacity_ = layerState.opacity + } + if(layerState.visible && !this.renderedVisible_) { + goog.style.setElementShown(this.target, true); + this.renderedVisible_ = true + } + this.updateUsedTiles(frameState.usedTiles, tileSource, z, tileRange); + this.manageTilePyramid(frameState, tileSource, tileGrid, projection, extent, z, tileLayer.getPreload()); + this.scheduleExpireCache(frameState, tileSource); + this.updateLogos(frameState, tileSource) +}; +ol.renderer.dom.TileLayerZ_ = function(tileGrid, tileCoordOrigin) { + this.target = goog.dom.createElement(goog.dom.TagName.DIV); + this.target.style.position = "absolute"; + this.tileGrid_ = tileGrid; + this.tileCoordOrigin_ = tileCoordOrigin; + this.origin_ = ol.extent.getTopLeft(tileGrid.getTileCoordExtent(tileCoordOrigin)); + this.resolution_ = tileGrid.getResolution(tileCoordOrigin.z); + this.tiles_ = {}; + this.documentFragment_ = null; + this.transform_ = goog.vec.Mat4.createNumberIdentity() +}; +ol.renderer.dom.TileLayerZ_.prototype.addTile = function(tile) { + var tileCoord = tile.tileCoord; + goog.asserts.assert(tileCoord.z == this.tileCoordOrigin_.z); + var tileCoordKey = tileCoord.toString(); + if(tileCoordKey in this.tiles_) { + return + } + var tileSize = this.tileGrid_.getTileSize(tileCoord.z); + var image = tile.getImage(this); + var style = image.style; + style.maxWidth = "none"; + style.position = "absolute"; + style.left = (tileCoord.x - this.tileCoordOrigin_.x) * tileSize[0] + "px"; + style.top = (this.tileCoordOrigin_.y - tileCoord.y) * tileSize[1] + "px"; + if(goog.isNull(this.documentFragment_)) { + this.documentFragment_ = document.createDocumentFragment() + } + goog.dom.appendChild(this.documentFragment_, image); + this.tiles_[tileCoordKey] = tile +}; +ol.renderer.dom.TileLayerZ_.prototype.finalizeAddTiles = function() { + if(!goog.isNull(this.documentFragment_)) { + goog.dom.appendChild(this.target, this.documentFragment_); + this.documentFragment_ = null + } +}; +ol.renderer.dom.TileLayerZ_.prototype.getOrigin = function() { + return this.origin_ +}; +ol.renderer.dom.TileLayerZ_.prototype.getResolution = function() { + return this.resolution_ +}; +ol.renderer.dom.TileLayerZ_.prototype.removeTilesOutsideExtent = function(extent, opt_tileRange) { + var tileRange = this.tileGrid_.getTileRangeForExtentAndZ(extent, this.tileCoordOrigin_.z, opt_tileRange); + var tilesToRemove = []; + var tile, tileCoordKey; + for(tileCoordKey in this.tiles_) { + tile = this.tiles_[tileCoordKey]; + if(!tileRange.contains(tile.tileCoord)) { + tilesToRemove.push(tile) + } + } + var i, ii; + for(i = 0, ii = tilesToRemove.length;i < ii;++i) { + tile = tilesToRemove[i]; + tileCoordKey = tile.tileCoord.toString(); + goog.dom.removeNode(tile.getImage(this)); + delete this.tiles_[tileCoordKey] + } +}; +ol.renderer.dom.TileLayerZ_.prototype.setTransform = function(transform) { + if(!goog.vec.Mat4.equals(transform, this.transform_)) { + ol.dom.transformElement2D(this.target, transform, 6); + goog.vec.Mat4.setFromArray(this.transform_, transform) + } +}; +goog.provide("ol.renderer.dom.Map"); +goog.require("goog.asserts"); +goog.require("goog.dom"); +goog.require("goog.dom.TagName"); +goog.require("goog.style"); +goog.require("ol.css"); +goog.require("ol.layer.Image"); +goog.require("ol.layer.Tile"); +goog.require("ol.renderer.Map"); +goog.require("ol.renderer.dom.ImageLayer"); +goog.require("ol.renderer.dom.TileLayer"); +ol.renderer.dom.Map = function(container, map) { + goog.base(this, container, map); + this.layersPane_ = goog.dom.createElement(goog.dom.TagName.DIV); + this.layersPane_.className = ol.css.CLASS_UNSELECTABLE; + var style = this.layersPane_.style; + style.position = "absolute"; + style.width = "100%"; + style.height = "100%"; + goog.dom.insertChildAt(container, this.layersPane_, 0); + this.renderedVisible_ = true +}; +goog.inherits(ol.renderer.dom.Map, ol.renderer.Map); +ol.renderer.dom.Map.prototype.createLayerRenderer = function(layer) { + var layerRenderer; + if(layer instanceof ol.layer.Tile) { + layerRenderer = new ol.renderer.dom.TileLayer(this, layer) + }else { + if(layer instanceof ol.layer.Image) { + layerRenderer = new ol.renderer.dom.ImageLayer(this, layer) + }else { + goog.asserts.fail(); + return null + } + } + goog.dom.appendChild(this.layersPane_, layerRenderer.getTarget()); + return layerRenderer +}; +ol.renderer.dom.Map.prototype.renderFrame = function(frameState) { + if(goog.isNull(frameState)) { + if(this.renderedVisible_) { + goog.style.setElementShown(this.layersPane_, false); + this.renderedVisible_ = false + } + return + } + var layerStates = frameState.layerStates; + var layersArray = frameState.layersArray; + var i, ii, layer, layerRenderer, layerState; + for(i = 0, ii = layersArray.length;i < ii;++i) { + layer = layersArray[i]; + layerRenderer = this.getLayerRenderer(layer); + layerState = frameState.layerStates[goog.getUid(layer)]; + if(layerState.ready) { + layerRenderer.renderFrame(frameState, layerState) + } + } + var layerKey; + for(layerKey in this.getLayerRenderers()) { + if(!(layerKey in layerStates)) { + layerRenderer = this.getLayerRendererByKey(layerKey); + goog.dom.removeNode(layerRenderer.getTarget()) + } + } + if(!this.renderedVisible_) { + goog.style.setElementShown(this.layersPane_, true); + this.renderedVisible_ = true + } + this.calculateMatrices2D(frameState); + this.scheduleRemoveUnusedLayerRenderers(frameState) +}; +goog.provide("ol.renderer.dom.SUPPORTED"); +ol.renderer.dom.SUPPORTED = true; +goog.provide("goog.webgl"); +goog.webgl.DEPTH_BUFFER_BIT = 256; +goog.webgl.STENCIL_BUFFER_BIT = 1024; +goog.webgl.COLOR_BUFFER_BIT = 16384; +goog.webgl.POINTS = 0; +goog.webgl.LINES = 1; +goog.webgl.LINE_LOOP = 2; +goog.webgl.LINE_STRIP = 3; +goog.webgl.TRIANGLES = 4; +goog.webgl.TRIANGLE_STRIP = 5; +goog.webgl.TRIANGLE_FAN = 6; +goog.webgl.ZERO = 0; +goog.webgl.ONE = 1; +goog.webgl.SRC_COLOR = 768; +goog.webgl.ONE_MINUS_SRC_COLOR = 769; +goog.webgl.SRC_ALPHA = 770; +goog.webgl.ONE_MINUS_SRC_ALPHA = 771; +goog.webgl.DST_ALPHA = 772; +goog.webgl.ONE_MINUS_DST_ALPHA = 773; +goog.webgl.DST_COLOR = 774; +goog.webgl.ONE_MINUS_DST_COLOR = 775; +goog.webgl.SRC_ALPHA_SATURATE = 776; +goog.webgl.FUNC_ADD = 32774; +goog.webgl.BLEND_EQUATION = 32777; +goog.webgl.BLEND_EQUATION_RGB = 32777; +goog.webgl.BLEND_EQUATION_ALPHA = 34877; +goog.webgl.FUNC_SUBTRACT = 32778; +goog.webgl.FUNC_REVERSE_SUBTRACT = 32779; +goog.webgl.BLEND_DST_RGB = 32968; +goog.webgl.BLEND_SRC_RGB = 32969; +goog.webgl.BLEND_DST_ALPHA = 32970; +goog.webgl.BLEND_SRC_ALPHA = 32971; +goog.webgl.CONSTANT_COLOR = 32769; +goog.webgl.ONE_MINUS_CONSTANT_COLOR = 32770; +goog.webgl.CONSTANT_ALPHA = 32771; +goog.webgl.ONE_MINUS_CONSTANT_ALPHA = 32772; +goog.webgl.BLEND_COLOR = 32773; +goog.webgl.ARRAY_BUFFER = 34962; +goog.webgl.ELEMENT_ARRAY_BUFFER = 34963; +goog.webgl.ARRAY_BUFFER_BINDING = 34964; +goog.webgl.ELEMENT_ARRAY_BUFFER_BINDING = 34965; +goog.webgl.STREAM_DRAW = 35040; +goog.webgl.STATIC_DRAW = 35044; +goog.webgl.DYNAMIC_DRAW = 35048; +goog.webgl.BUFFER_SIZE = 34660; +goog.webgl.BUFFER_USAGE = 34661; +goog.webgl.CURRENT_VERTEX_ATTRIB = 34342; +goog.webgl.FRONT = 1028; +goog.webgl.BACK = 1029; +goog.webgl.FRONT_AND_BACK = 1032; +goog.webgl.CULL_FACE = 2884; +goog.webgl.BLEND = 3042; +goog.webgl.DITHER = 3024; +goog.webgl.STENCIL_TEST = 2960; +goog.webgl.DEPTH_TEST = 2929; +goog.webgl.SCISSOR_TEST = 3089; +goog.webgl.POLYGON_OFFSET_FILL = 32823; +goog.webgl.SAMPLE_ALPHA_TO_COVERAGE = 32926; +goog.webgl.SAMPLE_COVERAGE = 32928; +goog.webgl.NO_ERROR = 0; +goog.webgl.INVALID_ENUM = 1280; +goog.webgl.INVALID_VALUE = 1281; +goog.webgl.INVALID_OPERATION = 1282; +goog.webgl.OUT_OF_MEMORY = 1285; +goog.webgl.CW = 2304; +goog.webgl.CCW = 2305; +goog.webgl.LINE_WIDTH = 2849; +goog.webgl.ALIASED_POINT_SIZE_RANGE = 33901; +goog.webgl.ALIASED_LINE_WIDTH_RANGE = 33902; +goog.webgl.CULL_FACE_MODE = 2885; +goog.webgl.FRONT_FACE = 2886; +goog.webgl.DEPTH_RANGE = 2928; +goog.webgl.DEPTH_WRITEMASK = 2930; +goog.webgl.DEPTH_CLEAR_VALUE = 2931; +goog.webgl.DEPTH_FUNC = 2932; +goog.webgl.STENCIL_CLEAR_VALUE = 2961; +goog.webgl.STENCIL_FUNC = 2962; +goog.webgl.STENCIL_FAIL = 2964; +goog.webgl.STENCIL_PASS_DEPTH_FAIL = 2965; +goog.webgl.STENCIL_PASS_DEPTH_PASS = 2966; +goog.webgl.STENCIL_REF = 2967; +goog.webgl.STENCIL_VALUE_MASK = 2963; +goog.webgl.STENCIL_WRITEMASK = 2968; +goog.webgl.STENCIL_BACK_FUNC = 34816; +goog.webgl.STENCIL_BACK_FAIL = 34817; +goog.webgl.STENCIL_BACK_PASS_DEPTH_FAIL = 34818; +goog.webgl.STENCIL_BACK_PASS_DEPTH_PASS = 34819; +goog.webgl.STENCIL_BACK_REF = 36003; +goog.webgl.STENCIL_BACK_VALUE_MASK = 36004; +goog.webgl.STENCIL_BACK_WRITEMASK = 36005; +goog.webgl.VIEWPORT = 2978; +goog.webgl.SCISSOR_BOX = 3088; +goog.webgl.COLOR_CLEAR_VALUE = 3106; +goog.webgl.COLOR_WRITEMASK = 3107; +goog.webgl.UNPACK_ALIGNMENT = 3317; +goog.webgl.PACK_ALIGNMENT = 3333; +goog.webgl.MAX_TEXTURE_SIZE = 3379; +goog.webgl.MAX_VIEWPORT_DIMS = 3386; +goog.webgl.SUBPIXEL_BITS = 3408; +goog.webgl.RED_BITS = 3410; +goog.webgl.GREEN_BITS = 3411; +goog.webgl.BLUE_BITS = 3412; +goog.webgl.ALPHA_BITS = 3413; +goog.webgl.DEPTH_BITS = 3414; +goog.webgl.STENCIL_BITS = 3415; +goog.webgl.POLYGON_OFFSET_UNITS = 10752; +goog.webgl.POLYGON_OFFSET_FACTOR = 32824; +goog.webgl.TEXTURE_BINDING_2D = 32873; +goog.webgl.SAMPLE_BUFFERS = 32936; +goog.webgl.SAMPLES = 32937; +goog.webgl.SAMPLE_COVERAGE_VALUE = 32938; +goog.webgl.SAMPLE_COVERAGE_INVERT = 32939; +goog.webgl.COMPRESSED_TEXTURE_FORMATS = 34467; +goog.webgl.DONT_CARE = 4352; +goog.webgl.FASTEST = 4353; +goog.webgl.NICEST = 4354; +goog.webgl.GENERATE_MIPMAP_HINT = 33170; +goog.webgl.BYTE = 5120; +goog.webgl.UNSIGNED_BYTE = 5121; +goog.webgl.SHORT = 5122; +goog.webgl.UNSIGNED_SHORT = 5123; +goog.webgl.INT = 5124; +goog.webgl.UNSIGNED_INT = 5125; +goog.webgl.FLOAT = 5126; +goog.webgl.DEPTH_COMPONENT = 6402; +goog.webgl.ALPHA = 6406; +goog.webgl.RGB = 6407; +goog.webgl.RGBA = 6408; +goog.webgl.LUMINANCE = 6409; +goog.webgl.LUMINANCE_ALPHA = 6410; +goog.webgl.UNSIGNED_SHORT_4_4_4_4 = 32819; +goog.webgl.UNSIGNED_SHORT_5_5_5_1 = 32820; +goog.webgl.UNSIGNED_SHORT_5_6_5 = 33635; +goog.webgl.FRAGMENT_SHADER = 35632; +goog.webgl.VERTEX_SHADER = 35633; +goog.webgl.MAX_VERTEX_ATTRIBS = 34921; +goog.webgl.MAX_VERTEX_UNIFORM_VECTORS = 36347; +goog.webgl.MAX_VARYING_VECTORS = 36348; +goog.webgl.MAX_COMBINED_TEXTURE_IMAGE_UNITS = 35661; +goog.webgl.MAX_VERTEX_TEXTURE_IMAGE_UNITS = 35660; +goog.webgl.MAX_TEXTURE_IMAGE_UNITS = 34930; +goog.webgl.MAX_FRAGMENT_UNIFORM_VECTORS = 36349; +goog.webgl.SHADER_TYPE = 35663; +goog.webgl.DELETE_STATUS = 35712; +goog.webgl.LINK_STATUS = 35714; +goog.webgl.VALIDATE_STATUS = 35715; +goog.webgl.ATTACHED_SHADERS = 35717; +goog.webgl.ACTIVE_UNIFORMS = 35718; +goog.webgl.ACTIVE_ATTRIBUTES = 35721; +goog.webgl.SHADING_LANGUAGE_VERSION = 35724; +goog.webgl.CURRENT_PROGRAM = 35725; +goog.webgl.NEVER = 512; +goog.webgl.LESS = 513; +goog.webgl.EQUAL = 514; +goog.webgl.LEQUAL = 515; +goog.webgl.GREATER = 516; +goog.webgl.NOTEQUAL = 517; +goog.webgl.GEQUAL = 518; +goog.webgl.ALWAYS = 519; +goog.webgl.KEEP = 7680; +goog.webgl.REPLACE = 7681; +goog.webgl.INCR = 7682; +goog.webgl.DECR = 7683; +goog.webgl.INVERT = 5386; +goog.webgl.INCR_WRAP = 34055; +goog.webgl.DECR_WRAP = 34056; +goog.webgl.VENDOR = 7936; +goog.webgl.RENDERER = 7937; +goog.webgl.VERSION = 7938; +goog.webgl.NEAREST = 9728; +goog.webgl.LINEAR = 9729; +goog.webgl.NEAREST_MIPMAP_NEAREST = 9984; +goog.webgl.LINEAR_MIPMAP_NEAREST = 9985; +goog.webgl.NEAREST_MIPMAP_LINEAR = 9986; +goog.webgl.LINEAR_MIPMAP_LINEAR = 9987; +goog.webgl.TEXTURE_MAG_FILTER = 10240; +goog.webgl.TEXTURE_MIN_FILTER = 10241; +goog.webgl.TEXTURE_WRAP_S = 10242; +goog.webgl.TEXTURE_WRAP_T = 10243; +goog.webgl.TEXTURE_2D = 3553; +goog.webgl.TEXTURE = 5890; +goog.webgl.TEXTURE_CUBE_MAP = 34067; +goog.webgl.TEXTURE_BINDING_CUBE_MAP = 34068; +goog.webgl.TEXTURE_CUBE_MAP_POSITIVE_X = 34069; +goog.webgl.TEXTURE_CUBE_MAP_NEGATIVE_X = 34070; +goog.webgl.TEXTURE_CUBE_MAP_POSITIVE_Y = 34071; +goog.webgl.TEXTURE_CUBE_MAP_NEGATIVE_Y = 34072; +goog.webgl.TEXTURE_CUBE_MAP_POSITIVE_Z = 34073; +goog.webgl.TEXTURE_CUBE_MAP_NEGATIVE_Z = 34074; +goog.webgl.MAX_CUBE_MAP_TEXTURE_SIZE = 34076; +goog.webgl.TEXTURE0 = 33984; +goog.webgl.TEXTURE1 = 33985; +goog.webgl.TEXTURE2 = 33986; +goog.webgl.TEXTURE3 = 33987; +goog.webgl.TEXTURE4 = 33988; +goog.webgl.TEXTURE5 = 33989; +goog.webgl.TEXTURE6 = 33990; +goog.webgl.TEXTURE7 = 33991; +goog.webgl.TEXTURE8 = 33992; +goog.webgl.TEXTURE9 = 33993; +goog.webgl.TEXTURE10 = 33994; +goog.webgl.TEXTURE11 = 33995; +goog.webgl.TEXTURE12 = 33996; +goog.webgl.TEXTURE13 = 33997; +goog.webgl.TEXTURE14 = 33998; +goog.webgl.TEXTURE15 = 33999; +goog.webgl.TEXTURE16 = 34E3; +goog.webgl.TEXTURE17 = 34001; +goog.webgl.TEXTURE18 = 34002; +goog.webgl.TEXTURE19 = 34003; +goog.webgl.TEXTURE20 = 34004; +goog.webgl.TEXTURE21 = 34005; +goog.webgl.TEXTURE22 = 34006; +goog.webgl.TEXTURE23 = 34007; +goog.webgl.TEXTURE24 = 34008; +goog.webgl.TEXTURE25 = 34009; +goog.webgl.TEXTURE26 = 34010; +goog.webgl.TEXTURE27 = 34011; +goog.webgl.TEXTURE28 = 34012; +goog.webgl.TEXTURE29 = 34013; +goog.webgl.TEXTURE30 = 34014; +goog.webgl.TEXTURE31 = 34015; +goog.webgl.ACTIVE_TEXTURE = 34016; +goog.webgl.REPEAT = 10497; +goog.webgl.CLAMP_TO_EDGE = 33071; +goog.webgl.MIRRORED_REPEAT = 33648; +goog.webgl.FLOAT_VEC2 = 35664; +goog.webgl.FLOAT_VEC3 = 35665; +goog.webgl.FLOAT_VEC4 = 35666; +goog.webgl.INT_VEC2 = 35667; +goog.webgl.INT_VEC3 = 35668; +goog.webgl.INT_VEC4 = 35669; +goog.webgl.BOOL = 35670; +goog.webgl.BOOL_VEC2 = 35671; +goog.webgl.BOOL_VEC3 = 35672; +goog.webgl.BOOL_VEC4 = 35673; +goog.webgl.FLOAT_MAT2 = 35674; +goog.webgl.FLOAT_MAT3 = 35675; +goog.webgl.FLOAT_MAT4 = 35676; +goog.webgl.SAMPLER_2D = 35678; +goog.webgl.SAMPLER_CUBE = 35680; +goog.webgl.VERTEX_ATTRIB_ARRAY_ENABLED = 34338; +goog.webgl.VERTEX_ATTRIB_ARRAY_SIZE = 34339; +goog.webgl.VERTEX_ATTRIB_ARRAY_STRIDE = 34340; +goog.webgl.VERTEX_ATTRIB_ARRAY_TYPE = 34341; +goog.webgl.VERTEX_ATTRIB_ARRAY_NORMALIZED = 34922; +goog.webgl.VERTEX_ATTRIB_ARRAY_POINTER = 34373; +goog.webgl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 34975; +goog.webgl.COMPILE_STATUS = 35713; +goog.webgl.LOW_FLOAT = 36336; +goog.webgl.MEDIUM_FLOAT = 36337; +goog.webgl.HIGH_FLOAT = 36338; +goog.webgl.LOW_INT = 36339; +goog.webgl.MEDIUM_INT = 36340; +goog.webgl.HIGH_INT = 36341; +goog.webgl.FRAMEBUFFER = 36160; +goog.webgl.RENDERBUFFER = 36161; +goog.webgl.RGBA4 = 32854; +goog.webgl.RGB5_A1 = 32855; +goog.webgl.RGB565 = 36194; +goog.webgl.DEPTH_COMPONENT16 = 33189; +goog.webgl.STENCIL_INDEX = 6401; +goog.webgl.STENCIL_INDEX8 = 36168; +goog.webgl.DEPTH_STENCIL = 34041; +goog.webgl.RENDERBUFFER_WIDTH = 36162; +goog.webgl.RENDERBUFFER_HEIGHT = 36163; +goog.webgl.RENDERBUFFER_INTERNAL_FORMAT = 36164; +goog.webgl.RENDERBUFFER_RED_SIZE = 36176; +goog.webgl.RENDERBUFFER_GREEN_SIZE = 36177; +goog.webgl.RENDERBUFFER_BLUE_SIZE = 36178; +goog.webgl.RENDERBUFFER_ALPHA_SIZE = 36179; +goog.webgl.RENDERBUFFER_DEPTH_SIZE = 36180; +goog.webgl.RENDERBUFFER_STENCIL_SIZE = 36181; +goog.webgl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 36048; +goog.webgl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 36049; +goog.webgl.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 36050; +goog.webgl.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 36051; +goog.webgl.COLOR_ATTACHMENT0 = 36064; +goog.webgl.DEPTH_ATTACHMENT = 36096; +goog.webgl.STENCIL_ATTACHMENT = 36128; +goog.webgl.DEPTH_STENCIL_ATTACHMENT = 33306; +goog.webgl.NONE = 0; +goog.webgl.FRAMEBUFFER_COMPLETE = 36053; +goog.webgl.FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 36054; +goog.webgl.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 36055; +goog.webgl.FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 36057; +goog.webgl.FRAMEBUFFER_UNSUPPORTED = 36061; +goog.webgl.FRAMEBUFFER_BINDING = 36006; +goog.webgl.RENDERBUFFER_BINDING = 36007; +goog.webgl.MAX_RENDERBUFFER_SIZE = 34024; +goog.webgl.INVALID_FRAMEBUFFER_OPERATION = 1286; +goog.webgl.UNPACK_FLIP_Y_WEBGL = 37440; +goog.webgl.UNPACK_PREMULTIPLY_ALPHA_WEBGL = 37441; +goog.webgl.CONTEXT_LOST_WEBGL = 37442; +goog.webgl.UNPACK_COLORSPACE_CONVERSION_WEBGL = 37443; +goog.webgl.BROWSER_DEFAULT_WEBGL = 37444; +goog.webgl.HALF_FLOAT_OES = 36193; +goog.webgl.FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 35723; +goog.webgl.VERTEX_ARRAY_BINDING_OES = 34229; +goog.webgl.UNMASKED_VENDOR_WEBGL = 37445; +goog.webgl.UNMASKED_RENDERER_WEBGL = 37446; +goog.webgl.COMPRESSED_RGB_S3TC_DXT1_EXT = 33776; +goog.webgl.COMPRESSED_RGBA_S3TC_DXT1_EXT = 33777; +goog.webgl.COMPRESSED_RGBA_S3TC_DXT3_EXT = 33778; +goog.webgl.COMPRESSED_RGBA_S3TC_DXT5_EXT = 33779; +goog.webgl.TEXTURE_MAX_ANISOTROPY_EXT = 34046; +goog.webgl.MAX_TEXTURE_MAX_ANISOTROPY_EXT = 34047; +goog.provide("ol.geom2"); +goog.require("goog.asserts"); +goog.require("ol.Extent"); +ol.geom2.getExtent = function(buf, dim) { + var extent = new Array(2 * dim); + var extentIndex = 0; + var i; + for(i = 0;i < dim;++i) { + extent[extentIndex++] = Infinity; + extent[extentIndex++] = -Infinity + } + var bufArr = buf.getArray(); + buf.forEachRange(function(start, stop) { + var extentIndex, i, j; + for(i = start;i < stop;i += dim) { + extentIndex = 0; + for(j = 0;j < dim;++j) { + extent[extentIndex++] = Math.min(extent[2 * j], bufArr[i + j]); + extent[extentIndex++] = Math.max(extent[2 * j + 1], bufArr[i + j]) + } + } + }); + return extent +}; +ol.geom2.packPoints = function(arr, offset, unpackedPoints, dim) { + var n = unpackedPoints.length; + var i, j, point; + for(i = 0;i < n;++i) { + point = unpackedPoints[i]; + goog.asserts.assert(point.length == dim); + for(j = 0;j < dim;++j) { + arr[offset++] = point[j] + } + } + return offset +}; +ol.geom2.unpackPoints = function(arr, offset, end, dim) { + var unpackedPoints = new Array((end - offset) / dim); + var i = 0; + var j; + for(j = offset;j < end;j += dim) { + unpackedPoints[i++] = arr.slice(j, j + dim) + } + return unpackedPoints +}; +goog.provide("ol.structs.IntegerSet"); +goog.require("goog.asserts"); +ol.structs.IntegerSet = function(opt_arr) { + this.arr_ = goog.isDef(opt_arr) ? opt_arr : []; + if(goog.DEBUG) { + this.assertValid() + } +}; +ol.structs.IntegerSet.prototype.addRange = function(addStart, addStop) { + goog.asserts.assert(addStart <= addStop); + if(addStart == addStop) { + return + } + var arr = this.arr_; + var n = arr.length; + var i; + for(i = 0;i < n;i += 2) { + if(addStart <= arr[i]) { + arr.splice(i, 0, addStart, addStop); + this.compactRanges_(); + return + } + } + arr.push(addStart, addStop); + this.compactRanges_() +}; +ol.structs.IntegerSet.prototype.assertValid = function() { + var arr = this.arr_; + var n = arr.length; + goog.asserts.assert(n % 2 === 0); + var i; + for(i = 1;i < n;++i) { + goog.asserts.assert(arr[i] > arr[i - 1]) + } +}; +ol.structs.IntegerSet.prototype.clear = function() { + this.arr_.length = 0 +}; +ol.structs.IntegerSet.prototype.compactRanges_ = function() { + var arr = this.arr_; + var n = arr.length; + var rangeIndex = 0; + var i; + for(i = 0;i < n;i += 2) { + if(arr[i] == arr[i + 1]) { + }else { + if(rangeIndex > 0 && arr[rangeIndex - 2] <= arr[i] && arr[i] <= arr[rangeIndex - 1]) { + arr[rangeIndex - 1] = Math.max(arr[rangeIndex - 1], arr[i + 1]) + }else { + arr[rangeIndex++] = arr[i]; + arr[rangeIndex++] = arr[i + 1] + } + } + } + arr.length = rangeIndex +}; +ol.structs.IntegerSet.prototype.findRange = function(minSize) { + goog.asserts.assert(minSize > 0); + var arr = this.arr_; + var n = arr.length; + var bestIndex = -1; + var bestSize, i, size; + for(i = 0;i < n;i += 2) { + size = arr[i + 1] - arr[i]; + if(size == minSize) { + return arr[i] + }else { + if(size > minSize && (bestIndex == -1 || size < bestSize)) { + bestIndex = arr[i]; + bestSize = size + } + } + } + return bestIndex +}; +ol.structs.IntegerSet.prototype.forEachRange = function(f, opt_obj) { + var arr = this.arr_; + var n = arr.length; + var i; + for(i = 0;i < n;i += 2) { + f.call(opt_obj, arr[i], arr[i + 1]) + } +}; +ol.structs.IntegerSet.prototype.forEachRangeInverted = function(start, stop, f, opt_obj) { + goog.asserts.assert(start < stop); + var arr = this.arr_; + var n = arr.length; + if(n === 0) { + f.call(opt_obj, start, stop) + }else { + if(start < arr[0]) { + f.call(opt_obj, start, arr[0]) + } + var i; + for(i = 1;i < n - 1;i += 2) { + f.call(opt_obj, arr[i], arr[i + 1]) + } + if(arr[n - 1] < stop) { + f.call(opt_obj, arr[n - 1], stop) + } + } +}; +ol.structs.IntegerSet.prototype.getArray = function() { + return this.arr_ +}; +ol.structs.IntegerSet.prototype.getFirst = function() { + return this.arr_.length === 0 ? -1 : this.arr_[0] +}; +ol.structs.IntegerSet.prototype.getLast = function() { + var n = this.arr_.length; + return n === 0 ? -1 : this.arr_[n - 1] +}; +ol.structs.IntegerSet.prototype.getSize = function() { + var arr = this.arr_; + var n = arr.length; + var size = 0; + var i; + for(i = 0;i < n;i += 2) { + size += arr[i + 1] - arr[i] + } + return size +}; +ol.structs.IntegerSet.prototype.intersectsRange = function(start, stop) { + goog.asserts.assert(start <= stop); + if(start == stop) { + return false + }else { + var arr = this.arr_; + var n = arr.length; + var i = 0; + for(i = 0;i < n;i += 2) { + if(arr[i] <= start && start < arr[i + 1] || arr[i] < stop && stop - 1 < arr[i + 1] || start < arr[i] && arr[i + 1] <= stop) { + return true + } + } + return false + } +}; +ol.structs.IntegerSet.prototype.isEmpty = function() { + return this.arr_.length === 0 +}; +ol.structs.IntegerSet.prototype.pack = function() { + return this.arr_ +}; +ol.structs.IntegerSet.prototype.removeRange = function(removeStart, removeStop) { + goog.asserts.assert(removeStart <= removeStop); + var arr = this.arr_; + var n = arr.length; + var i; + for(i = 0;i < n;i += 2) { + if(removeStop < arr[i] || arr[i + 1] < removeStart) { + continue + }else { + if(arr[i] > removeStop) { + break + } + } + if(removeStart < arr[i]) { + if(removeStop == arr[i]) { + break + }else { + if(removeStop < arr[i + 1]) { + arr[i] = Math.max(arr[i], removeStop); + break + }else { + arr.splice(i, 2); + i -= 2; + n -= 2 + } + } + }else { + if(removeStart == arr[i]) { + if(removeStop < arr[i + 1]) { + arr[i] = removeStop; + break + }else { + if(removeStop == arr[i + 1]) { + arr.splice(i, 2); + break + }else { + arr.splice(i, 2); + i -= 2; + n -= 2 + } + } + }else { + if(removeStop < arr[i + 1]) { + arr.splice(i, 2, arr[i], removeStart, removeStop, arr[i + 1]); + break + }else { + if(removeStop == arr[i + 1]) { + arr[i + 1] = removeStart; + break + }else { + arr[i + 1] = removeStart + } + } + } + } + } + this.compactRanges_() +}; +if(goog.DEBUG) { + ol.structs.IntegerSet.prototype.toString = function() { + var arr = this.arr_; + var n = arr.length; + var result = new Array(n / 2); + var resultIndex = 0; + var i; + for(i = 0;i < n;i += 2) { + result[resultIndex++] = arr[i] + "-" + arr[i + 1] + } + return result.join(", ") + } +} +;goog.provide("ol.structs.Buffer"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.require("goog.webgl"); +goog.require("ol.structs.IntegerSet"); +ol.structs.BufferUsage = {STATIC_DRAW:goog.webgl.STATIC_DRAW, STREAM_DRAW:goog.webgl.STREAM_DRAW, DYNAMIC_DRAW:goog.webgl.DYNAMIC_DRAW}; +ol.BUFFER_REPLACE_UNUSED_ENTRIES_WITH_NANS = goog.DEBUG; +ol.structs.Buffer = function(opt_arr, opt_used, opt_usage) { + this.arr_ = goog.isDef(opt_arr) ? opt_arr : []; + this.dirtySets_ = []; + this.freeSet_ = new ol.structs.IntegerSet; + var used = goog.isDef(opt_used) ? opt_used : this.arr_.length; + if(used < this.arr_.length) { + this.freeSet_.addRange(used, this.arr_.length) + } + if(ol.BUFFER_REPLACE_UNUSED_ENTRIES_WITH_NANS) { + var arr = this.arr_; + var n = arr.length; + var i; + for(i = used;i < n;++i) { + arr[i] = NaN + } + } + this.split32_ = null; + this.split32DirtySet_ = null; + this.usage_ = goog.isDef(opt_usage) ? opt_usage : ol.structs.BufferUsage.STATIC_DRAW +}; +ol.structs.Buffer.prototype.allocate = function(size) { + goog.asserts.assert(size > 0); + var offset = this.freeSet_.findRange(size); + goog.asserts.assert(offset != -1); + this.freeSet_.removeRange(offset, offset + size); + return offset +}; +ol.structs.Buffer.prototype.add = function(values) { + var size = values.length; + var offset = this.allocate(size); + var i; + for(i = 0;i < size;++i) { + this.arr_[offset + i] = values[i] + } + this.markDirty(size, offset); + return offset +}; +ol.structs.Buffer.prototype.addDirtySet = function(dirtySet) { + goog.asserts.assert(!goog.array.contains(this.dirtySets_, dirtySet)); + this.dirtySets_.push(dirtySet) +}; +ol.structs.Buffer.prototype.forEachRange = function(f, opt_obj) { + if(this.arr_.length !== 0) { + this.freeSet_.forEachRangeInverted(0, this.arr_.length, f, opt_obj) + } +}; +ol.structs.Buffer.prototype.getArray = function() { + return this.arr_ +}; +ol.structs.Buffer.prototype.getCount = function() { + return this.arr_.length - this.freeSet_.getSize() +}; +ol.structs.Buffer.prototype.getFreeSet = function() { + return this.freeSet_ +}; +ol.structs.Buffer.prototype.getSplit32 = function() { + var arr = this.arr_; + var n = arr.length; + if(goog.isNull(this.split32DirtySet_)) { + this.split32DirtySet_ = new ol.structs.IntegerSet([0, n]); + this.addDirtySet(this.split32DirtySet_) + } + if(goog.isNull(this.split32_)) { + this.split32_ = new Float32Array(2 * n) + } + var split32 = this.split32_; + this.split32DirtySet_.forEachRange(function(start, stop) { + var doubleHigh, i, j, value; + for(i = start, j = 2 * start;i < stop;++i, j += 2) { + value = arr[i]; + if(value < 0) { + doubleHigh = 65536 * Math.floor(-value / 65536); + split32[j] = -doubleHigh; + split32[j + 1] = value + doubleHigh + }else { + doubleHigh = 65536 * Math.floor(value / 65536); + split32[j] = doubleHigh; + split32[j + 1] = value - doubleHigh + } + } + }); + this.split32DirtySet_.clear(); + return this.split32_ +}; +ol.structs.Buffer.prototype.getUsage = function() { + return this.usage_ +}; +ol.structs.Buffer.prototype.markDirty = function(size, offset) { + var i, ii; + for(i = 0, ii = this.dirtySets_.length;i < ii;++i) { + this.dirtySets_[i].addRange(offset, offset + size) + } +}; +ol.structs.Buffer.prototype.remove = function(size, offset) { + var i, ii; + this.freeSet_.addRange(offset, offset + size); + for(i = 0, ii = this.dirtySets_.length;i < ii;++i) { + this.dirtySets_[i].removeRange(offset, offset + size) + } + if(ol.BUFFER_REPLACE_UNUSED_ENTRIES_WITH_NANS) { + var arr = this.arr_; + for(i = 0;i < size;++i) { + arr[offset + i] = NaN + } + } +}; +ol.structs.Buffer.prototype.removeDirtySet = function(dirtySet) { + var removed = goog.array.remove(this.dirtySets_, dirtySet); + goog.asserts.assert(removed) +}; +ol.structs.Buffer.prototype.set = function(values, offset) { + var arr = this.arr_; + var n = values.length; + goog.asserts.assert(0 <= offset && offset + n <= arr.length); + var i; + for(i = 0;i < n;++i) { + arr[offset + i] = values[i] + } + this.markDirty(n, offset) +}; +goog.provide("ol.geom2.LineString"); +goog.provide("ol.geom2.LineStringCollection"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.require("goog.object"); +goog.require("ol.geom2"); +goog.require("ol.structs.Buffer"); +ol.geom2.LineString; +ol.geom2.LineStringCollection = function(buf, opt_ranges, opt_dim) { + this.buf = buf; + this.ranges = goog.isDef(opt_ranges) ? opt_ranges : {}; + this.dim = goog.isDef(opt_dim) ? opt_dim : 2 +}; +ol.geom2.LineStringCollection.createEmpty = function(capacity, opt_dim) { + var dim = goog.isDef(opt_dim) ? opt_dim : 2; + var buf = new ol.structs.Buffer(new Array(capacity * dim), 0); + return new ol.geom2.LineStringCollection(buf, undefined, dim) +}; +ol.geom2.LineStringCollection.pack = function(unpackedLineStrings, opt_capacity, opt_dim) { + var i; + var n = unpackedLineStrings.length; + var dim = goog.isDef(opt_dim) ? opt_dim : n > 0 ? unpackedLineStrings[0][0].length : 2; + var capacity; + if(goog.isDef(opt_capacity)) { + capacity = opt_capacity + }else { + capacity = 0; + for(i = 0;i < n;++i) { + capacity += unpackedLineStrings[i].length + } + } + capacity *= dim; + var arr = new Array(capacity); + var ranges = {}; + var offset = 0; + var start; + for(i = 0;i < n;++i) { + goog.asserts.assert(unpackedLineStrings[i].length > 1); + start = offset; + offset = ol.geom2.packPoints(arr, offset, unpackedLineStrings[i], dim); + ranges[start + ""] = offset + } + goog.asserts.assert(offset <= capacity); + var buf = new ol.structs.Buffer(arr, offset); + return new ol.geom2.LineStringCollection(buf, ranges, dim) +}; +ol.geom2.LineStringCollection.prototype.add = function(lineString) { + var n = lineString.length * this.dim; + var offset = this.buf.allocate(n); + goog.asserts.assert(offset != -1); + this.ranges[offset + ""] = offset + n; + ol.geom2.packPoints(this.buf.getArray(), offset, lineString, this.dim); + return offset +}; +ol.geom2.LineStringCollection.prototype.get = function(offset) { + goog.asserts.assert(offset in this.ranges); + var range = this.ranges[offset + ""]; + return ol.geom2.unpackPoints(this.buf.getArray(), offset, range, this.dim) +}; +ol.geom2.LineStringCollection.prototype.getCount = function() { + return goog.object.getCount(this.ranges) +}; +ol.geom2.LineStringCollection.prototype.getExtent = function() { + return ol.geom2.getExtent(this.buf, this.dim) +}; +ol.geom2.LineStringCollection.prototype.getIndices = function() { + var dim = this.dim; + var offsets = goog.array.map(goog.object.getKeys(this.ranges), Number); + goog.array.sort(offsets); + var n = offsets.length; + var indices = []; + var i, j, range, offset, stop; + for(i = 0;i < n;++i) { + offset = offsets[i]; + range = this.ranges[offset]; + stop = range / dim - 1; + for(j = offset / dim;j < stop;++j) { + indices.push(j, j + 1) + } + } + return new Uint16Array(indices) +}; +ol.geom2.LineStringCollection.prototype.remove = function(offset) { + goog.asserts.assert(offset in this.ranges); + var range = this.ranges[offset + ""]; + this.buf.remove(range - offset, offset); + delete this.ranges[offset + ""] +}; +ol.geom2.LineStringCollection.prototype.set = function(offset, lineString) { + var dim = this.dim; + goog.asserts.assert(offset in this.ranges); + var range = this.ranges[offset + ""]; + if(lineString.length * dim == range - offset) { + ol.geom2.packPoints(this.buf.getArray(), offset, lineString, dim); + this.buf.markDirty(range - offset, offset); + return offset + }else { + this.remove(offset); + return this.add(lineString) + } +}; +ol.geom2.LineStringCollection.prototype.unpack = function() { + var dim = this.dim; + var n = this.getCount(); + var lineStrings = new Array(n); + var i = 0; + var offset, range; + for(offset in this.ranges) { + range = this.ranges[offset]; + lineStrings[i++] = ol.geom2.unpackPoints(this.buf.getArray(), Number(offset), range, dim) + } + return lineStrings +}; +goog.provide("ol.geom2.Point"); +goog.provide("ol.geom2.PointCollection"); +goog.require("goog.asserts"); +goog.require("ol.Extent"); +goog.require("ol.geom2"); +goog.require("ol.structs.Buffer"); +ol.geom2.Point; +ol.geom2.PointCollection = function(buf, opt_dim) { + this.buf = buf; + this.dim = goog.isDef(opt_dim) ? opt_dim : 2 +}; +ol.geom2.PointCollection.createEmpty = function(capacity, opt_dim) { + var dim = goog.isDef(opt_dim) ? opt_dim : 2; + var buf = new ol.structs.Buffer(new Array(capacity * dim), 0); + return new ol.geom2.PointCollection(buf, dim) +}; +ol.geom2.PointCollection.pack = function(unpackedPoints, opt_capacity, opt_dim) { + var n = unpackedPoints.length; + var dim = goog.isDef(opt_dim) ? opt_dim : n > 0 ? unpackedPoints[0].length : 2; + var capacity = goog.isDef(opt_capacity) ? opt_capacity : n * dim; + goog.asserts.assert(capacity >= n * dim); + var arr = new Array(capacity); + ol.geom2.packPoints(arr, 0, unpackedPoints, dim); + var buf = new ol.structs.Buffer(arr, n * dim); + return new ol.geom2.PointCollection(buf, dim) +}; +ol.geom2.PointCollection.prototype.add = function(point) { + goog.asserts.assert(point.length == this.dim); + return this.buf.add(point) +}; +ol.geom2.PointCollection.prototype.get = function(offset) { + var arr = this.buf.getArray(); + var dim = this.dim; + goog.asserts.assert(0 <= offset && offset + dim < arr.length); + goog.asserts.assert(offset % dim === 0); + return arr.slice(offset, offset + dim) +}; +ol.geom2.PointCollection.prototype.getCount = function() { + return this.buf.getCount() / this.dim +}; +ol.geom2.PointCollection.prototype.getExtent = function() { + return ol.geom2.getExtent(this.buf, this.dim) +}; +ol.geom2.PointCollection.prototype.remove = function(offset) { + this.buf.remove(this.dim, offset) +}; +ol.geom2.PointCollection.prototype.set = function(offset, point) { + this.buf.set(point, offset) +}; +ol.geom2.PointCollection.prototype.unpack = function() { + var dim = this.dim; + var n = this.getCount(); + var points = new Array(n); + var i = 0; + var bufArr = this.buf.getArray(); + this.buf.forEachRange(function(start, stop) { + var j; + for(j = start;j < stop;j += dim) { + points[i++] = bufArr.slice(j, j + dim) + } + }); + goog.asserts.assert(i == n); + return points +}; +goog.provide("ol.source.Vector2"); +goog.require("ol.geom2.LineStringCollection"); +goog.require("ol.geom2.PointCollection"); +goog.require("ol.source.Source"); +ol.source.Vector2 = function(options) { + goog.base(this, {attributions:options.attributions, extent:options.extent, projection:options.projection}); + this.pointCollections_ = goog.isDef(options.pointCollections) ? options.pointCollections : []; + this.lineStringCollections_ = goog.isDef(options.lineStringCollections) ? options.lineStringCollections : [] +}; +goog.inherits(ol.source.Vector2, ol.source.Source); +ol.source.Vector2.prototype.getLineStringCollections = function() { + return this.lineStringCollections_ +}; +ol.source.Vector2.prototype.getPointCollections = function() { + return this.pointCollections_ +}; +goog.provide("ol.layer.Vector2"); +goog.require("ol.layer.Layer"); +goog.require("ol.source.Vector2"); +ol.layer.Vector2 = function(options) { + goog.base(this, options) +}; +goog.inherits(ol.layer.Vector2, ol.layer.Layer); +ol.layer.Vector2.prototype.getVectorSource = function() { + return(this.getSource()) +}; +goog.provide("ol.vec.Mat4"); +goog.require("goog.vec.Mat4"); +ol.vec.Mat4.makeBrightness = function(matrix, value) { + goog.vec.Mat4.makeTranslate(matrix, value, value, value); + return matrix +}; +ol.vec.Mat4.makeContrast = function(matrix, value) { + goog.vec.Mat4.makeScale(matrix, value, value, value); + var translateValue = -0.5 * value + 0.5; + goog.vec.Mat4.setColumnValues(matrix, 3, translateValue, translateValue, translateValue, 1); + return matrix +}; +ol.vec.Mat4.makeHue = function(matrix, value) { + var cosHue = Math.cos(value); + var sinHue = Math.sin(value); + var v00 = 0.213 + cosHue * 0.787 - sinHue * 0.213; + var v01 = 0.715 - cosHue * 0.715 - sinHue * 0.715; + var v02 = 0.072 - cosHue * 0.072 + sinHue * 0.928; + var v03 = 0; + var v10 = 0.213 - cosHue * 0.213 + sinHue * 0.143; + var v11 = 0.715 + cosHue * 0.285 + sinHue * 0.14; + var v12 = 0.072 - cosHue * 0.072 - sinHue * 0.283; + var v13 = 0; + var v20 = 0.213 - cosHue * 0.213 - sinHue * 0.787; + var v21 = 0.715 - cosHue * 0.715 + sinHue * 0.715; + var v22 = 0.072 + cosHue * 0.928 + sinHue * 0.072; + var v23 = 0; + var v30 = 0; + var v31 = 0; + var v32 = 0; + var v33 = 1; + goog.vec.Mat4.setFromValues(matrix, v00, v10, v20, v30, v01, v11, v21, v31, v02, v12, v22, v32, v03, v13, v23, v33); + return matrix +}; +ol.vec.Mat4.makeSaturation = function(matrix, value) { + var v00 = 0.213 + 0.787 * value; + var v01 = 0.715 - 0.715 * value; + var v02 = 0.072 - 0.072 * value; + var v03 = 0; + var v10 = 0.213 - 0.213 * value; + var v11 = 0.715 + 0.285 * value; + var v12 = 0.072 - 0.072 * value; + var v13 = 0; + var v20 = 0.213 - 0.213 * value; + var v21 = 0.715 - 0.715 * value; + var v22 = 0.072 + 0.928 * value; + var v23 = 0; + var v30 = 0; + var v31 = 0; + var v32 = 0; + var v33 = 1; + goog.vec.Mat4.setFromValues(matrix, v00, v10, v20, v30, v01, v11, v21, v31, v02, v12, v22, v32, v03, v13, v23, v33); + return matrix +}; +ol.vec.Mat4.multVec2 = function(mat, vec, resultVec) { + var x = vec[0], y = vec[1]; + resultVec[0] = x * mat[0] + y * mat[4] + mat[12]; + resultVec[1] = x * mat[1] + y * mat[5] + mat[13]; + return resultVec +}; +goog.provide("ol.renderer.webgl.Layer"); +goog.require("goog.vec.Mat4"); +goog.require("goog.webgl"); +goog.require("ol.FrameState"); +goog.require("ol.layer.Layer"); +goog.require("ol.renderer.Layer"); +goog.require("ol.vec.Mat4"); +ol.renderer.webgl.Layer = function(mapRenderer, layer) { + goog.base(this, mapRenderer, layer); + this.texture = null; + this.framebuffer = null; + this.framebufferDimension = undefined; + this.texCoordMatrix = goog.vec.Mat4.createNumber(); + this.projectionMatrix = goog.vec.Mat4.createNumberIdentity(); + this.colorMatrix_ = goog.vec.Mat4.createFloat32(); + this.brightness_ = undefined; + this.brightnessMatrix_ = goog.vec.Mat4.createFloat32(); + this.contrast_ = undefined; + this.contrastMatrix_ = goog.vec.Mat4.createFloat32(); + this.hue_ = undefined; + this.hueMatrix_ = goog.vec.Mat4.createFloat32(); + this.saturation_ = undefined; + this.saturationMatrix_ = goog.vec.Mat4.createFloat32() +}; +goog.inherits(ol.renderer.webgl.Layer, ol.renderer.Layer); +ol.renderer.webgl.Layer.prototype.bindFramebuffer = function(frameState, framebufferDimension) { + var mapRenderer = this.getWebGLMapRenderer(); + var gl = mapRenderer.getGL(); + if(!goog.isDef(this.framebufferDimension) || this.framebufferDimension != framebufferDimension) { + frameState.postRenderFunctions.push(goog.partial(function(gl, framebuffer, texture) { + if(!gl.isContextLost()) { + gl.deleteFramebuffer(framebuffer); + gl.deleteTexture(texture) + } + }, gl, this.framebuffer, this.texture)); + var texture = gl.createTexture(); + gl.bindTexture(goog.webgl.TEXTURE_2D, texture); + gl.texImage2D(goog.webgl.TEXTURE_2D, 0, goog.webgl.RGBA, framebufferDimension, framebufferDimension, 0, goog.webgl.RGBA, goog.webgl.UNSIGNED_BYTE, null); + gl.texParameteri(goog.webgl.TEXTURE_2D, goog.webgl.TEXTURE_MAG_FILTER, goog.webgl.LINEAR); + gl.texParameteri(goog.webgl.TEXTURE_2D, goog.webgl.TEXTURE_MIN_FILTER, goog.webgl.LINEAR); + var framebuffer = gl.createFramebuffer(); + gl.bindFramebuffer(goog.webgl.FRAMEBUFFER, framebuffer); + gl.framebufferTexture2D(goog.webgl.FRAMEBUFFER, goog.webgl.COLOR_ATTACHMENT0, goog.webgl.TEXTURE_2D, texture, 0); + this.texture = texture; + this.framebuffer = framebuffer; + this.framebufferDimension = framebufferDimension + }else { + gl.bindFramebuffer(goog.webgl.FRAMEBUFFER, this.framebuffer) + } +}; +ol.renderer.webgl.Layer.prototype.getColorMatrix = function(brightness, contrast, hue, saturation) { + var colorMatrixDirty = false; + if(brightness !== this.brightness_) { + ol.vec.Mat4.makeBrightness(this.brightnessMatrix_, brightness); + this.brightness_ = brightness; + colorMatrixDirty = true + } + if(contrast !== this.contrast_) { + ol.vec.Mat4.makeContrast(this.contrastMatrix_, contrast); + this.contrast_ = contrast; + colorMatrixDirty = true + } + if(hue !== this.hue_) { + ol.vec.Mat4.makeHue(this.hueMatrix_, hue); + this.hue_ = hue; + colorMatrixDirty = true + } + if(saturation !== this.saturation_) { + ol.vec.Mat4.makeSaturation(this.saturationMatrix_, saturation); + this.saturation_ = saturation; + colorMatrixDirty = true + } + if(colorMatrixDirty) { + this.updateColorMatrix_() + } + return this.colorMatrix_ +}; +ol.renderer.webgl.Layer.prototype.getWebGLMapRenderer = function() { + return(this.getMapRenderer()) +}; +ol.renderer.webgl.Layer.prototype.getTexCoordMatrix = function() { + return this.texCoordMatrix +}; +ol.renderer.webgl.Layer.prototype.getTexture = function() { + return this.texture +}; +ol.renderer.webgl.Layer.prototype.getProjectionMatrix = function() { + return this.projectionMatrix +}; +ol.renderer.webgl.Layer.prototype.handleWebGLContextLost = function() { + this.texture = null; + this.framebuffer = null; + this.framebufferDimension = undefined +}; +ol.renderer.webgl.Layer.prototype.updateColorMatrix_ = function() { + var colorMatrix = this.colorMatrix_; + goog.vec.Mat4.makeIdentity(colorMatrix); + goog.vec.Mat4.multMat(colorMatrix, this.contrastMatrix_, colorMatrix); + goog.vec.Mat4.multMat(colorMatrix, this.brightnessMatrix_, colorMatrix); + goog.vec.Mat4.multMat(colorMatrix, this.saturationMatrix_, colorMatrix); + goog.vec.Mat4.multMat(colorMatrix, this.hueMatrix_, colorMatrix) +}; +goog.provide("ol.renderer.webgl.ImageLayer"); +goog.require("goog.asserts"); +goog.require("goog.events"); +goog.require("goog.events.EventType"); +goog.require("goog.vec.Mat4"); +goog.require("goog.webgl"); +goog.require("ol.Coordinate"); +goog.require("ol.Extent"); +goog.require("ol.Image"); +goog.require("ol.ImageState"); +goog.require("ol.ViewHint"); +goog.require("ol.layer.Image"); +goog.require("ol.renderer.webgl.Layer"); +ol.renderer.webgl.ImageLayer = function(mapRenderer, imageLayer) { + goog.base(this, mapRenderer, imageLayer); + this.image_ = null +}; +goog.inherits(ol.renderer.webgl.ImageLayer, ol.renderer.webgl.Layer); +ol.renderer.webgl.ImageLayer.prototype.createTexture_ = function(image) { + var imageElement = image.getImageElement(this); + var gl = this.getWebGLMapRenderer().getGL(); + var texture = gl.createTexture(); + gl.bindTexture(goog.webgl.TEXTURE_2D, texture); + gl.texImage2D(goog.webgl.TEXTURE_2D, 0, goog.webgl.RGBA, goog.webgl.RGBA, goog.webgl.UNSIGNED_BYTE, imageElement); + gl.texParameteri(goog.webgl.TEXTURE_2D, goog.webgl.TEXTURE_WRAP_S, goog.webgl.CLAMP_TO_EDGE); + gl.texParameteri(goog.webgl.TEXTURE_2D, goog.webgl.TEXTURE_WRAP_T, goog.webgl.CLAMP_TO_EDGE); + gl.texParameteri(goog.webgl.TEXTURE_2D, goog.webgl.TEXTURE_MIN_FILTER, goog.webgl.LINEAR); + gl.texParameteri(goog.webgl.TEXTURE_2D, goog.webgl.TEXTURE_MAG_FILTER, goog.webgl.LINEAR); + return texture +}; +ol.renderer.webgl.ImageLayer.prototype.getImageLayer = function() { + return(this.getLayer()) +}; +ol.renderer.webgl.ImageLayer.prototype.renderFrame = function(frameState, layerState) { + var gl = this.getWebGLMapRenderer().getGL(); + var view2DState = frameState.view2DState; + var viewCenter = view2DState.center; + var viewResolution = view2DState.resolution; + var viewRotation = view2DState.rotation; + var image = this.image_; + var texture = this.texture; + var imageLayer = this.getImageLayer(); + var imageSource = imageLayer.getImageSource(); + var hints = frameState.viewHints; + if(!hints[ol.ViewHint.ANIMATING] && !hints[ol.ViewHint.INTERACTING]) { + var image_ = imageSource.getImage(frameState.extent, viewResolution, view2DState.projection); + if(!goog.isNull(image_)) { + var imageState = image_.getState(); + if(imageState == ol.ImageState.IDLE) { + goog.events.listenOnce(image_, goog.events.EventType.CHANGE, this.handleImageChange, false, this); + image_.load() + }else { + if(imageState == ol.ImageState.LOADED) { + image = image_; + texture = this.createTexture_(image_); + if(!goog.isNull(this.texture)) { + frameState.postRenderFunctions.push(goog.partial(function(gl, texture) { + if(!gl.isContextLost()) { + gl.deleteTexture(texture) + } + }, gl, this.texture)) + } + } + } + } + } + if(!goog.isNull(image)) { + goog.asserts.assert(!goog.isNull(texture)); + var canvas = this.getWebGLMapRenderer().getCanvas(); + this.updateProjectionMatrix_(canvas.width, canvas.height, viewCenter, viewResolution, viewRotation, image.getExtent()); + var texCoordMatrix = this.texCoordMatrix; + goog.vec.Mat4.makeIdentity(texCoordMatrix); + goog.vec.Mat4.scale(texCoordMatrix, 1, -1, 1); + goog.vec.Mat4.translate(texCoordMatrix, 0, -1, 0); + this.image_ = image; + this.texture = texture; + this.updateAttributions(frameState.attributions, image.getAttributions()); + this.updateLogos(frameState, imageSource) + } +}; +ol.renderer.webgl.ImageLayer.prototype.updateProjectionMatrix_ = function(canvasWidth, canvasHeight, viewCenter, viewResolution, viewRotation, imageExtent) { + var canvasExtentWidth = canvasWidth * viewResolution; + var canvasExtentHeight = canvasHeight * viewResolution; + var projectionMatrix = this.projectionMatrix; + goog.vec.Mat4.makeIdentity(projectionMatrix); + goog.vec.Mat4.scale(projectionMatrix, 2 / canvasExtentWidth, 2 / canvasExtentHeight, 1); + goog.vec.Mat4.rotateZ(projectionMatrix, -viewRotation); + goog.vec.Mat4.translate(projectionMatrix, imageExtent[0] - viewCenter[0], imageExtent[2] - viewCenter[1], 0); + goog.vec.Mat4.scale(projectionMatrix, (imageExtent[1] - imageExtent[0]) / 2, (imageExtent[3] - imageExtent[2]) / 2, 1); + goog.vec.Mat4.translate(projectionMatrix, 1, 1, 0) +}; +goog.provide("ol.webgl"); +goog.provide("ol.webgl.SUPPORTED"); +goog.provide("ol.webgl.WebGLContextEventType"); +goog.require("goog.dom"); +goog.require("goog.dom.TagName"); +ol.webgl.CONTEXT_IDS_ = ["webgl", "webgl-experimental", "webkit-3d", "moz-webgl"]; +ol.webgl.WebGLContextEventType = {LOST:"webglcontextlost", RESTORED:"webglcontextrestored"}; +ol.webgl.getContext = function(canvas, opt_attributes) { + var context, i, ii = ol.webgl.CONTEXT_IDS_.length; + for(i = 0;i < ii;++i) { + try { + context = canvas.getContext(ol.webgl.CONTEXT_IDS_[i], opt_attributes); + if(!goog.isNull(context)) { + return context + } + }catch(e) { + } + } + return null +}; +ol.webgl.SUPPORTED = function() { + if(!("WebGLRenderingContext" in goog.global)) { + return false + } + try { + var canvas = goog.dom.createElement(goog.dom.TagName.CANVAS); + return!goog.isNull(ol.webgl.getContext(canvas)) + }catch(e) { + return false + } +}(); +goog.provide("ol.webgl.shader"); +goog.require("goog.functions"); +goog.require("goog.webgl"); +goog.require("ol.webgl"); +ol.webgl.Shader = function(source) { + this.source_ = source +}; +ol.webgl.Shader.prototype.getType = goog.abstractMethod; +ol.webgl.Shader.prototype.getSource = function() { + return this.source_ +}; +ol.webgl.Shader.prototype.isAnimated = goog.functions.FALSE; +ol.webgl.shader.Fragment = function(source) { + goog.base(this, source) +}; +goog.inherits(ol.webgl.shader.Fragment, ol.webgl.Shader); +ol.webgl.shader.Fragment.prototype.getType = function() { + return goog.webgl.FRAGMENT_SHADER +}; +ol.webgl.shader.Vertex = function(source) { + goog.base(this, source) +}; +goog.inherits(ol.webgl.shader.Vertex, ol.webgl.Shader); +ol.webgl.shader.Vertex.prototype.getType = function() { + return goog.webgl.VERTEX_SHADER +}; +goog.provide("ol.renderer.webgl.tilelayer.shader"); +goog.require("ol.webgl.shader"); +ol.renderer.webgl.tilelayer.shader.Fragment = function() { + goog.base(this, ol.renderer.webgl.tilelayer.shader.Fragment.SOURCE) +}; +goog.inherits(ol.renderer.webgl.tilelayer.shader.Fragment, ol.webgl.shader.Fragment); +goog.addSingletonGetter(ol.renderer.webgl.tilelayer.shader.Fragment); +ol.renderer.webgl.tilelayer.shader.Fragment.DEBUG_SOURCE = "precision mediump float;\n//! NAMESPACE\x3dol.renderer.webgl.tilelayer.shader\n//! CLASS\x3dol.renderer.webgl.tilelayer.shader.\n\n\n//! COMMON\nvarying vec2 v_texCoord;\n\n\n//! FRAGMENT\nuniform sampler2D u_texture;\n\nvoid main(void) {\n gl_FragColor \x3d texture2D(u_texture, v_texCoord);\n}\n\n"; +ol.renderer.webgl.tilelayer.shader.Fragment.OPTIMIZED_SOURCE = "precision mediump float;varying vec2 a;uniform sampler2D c;void main(){gl_FragColor\x3dtexture2D(c,a);}"; +ol.renderer.webgl.tilelayer.shader.Fragment.SOURCE = goog.DEBUG ? ol.renderer.webgl.tilelayer.shader.Fragment.DEBUG_SOURCE : ol.renderer.webgl.tilelayer.shader.Fragment.OPTIMIZED_SOURCE; +ol.renderer.webgl.tilelayer.shader.Vertex = function() { + goog.base(this, ol.renderer.webgl.tilelayer.shader.Vertex.SOURCE) +}; +goog.inherits(ol.renderer.webgl.tilelayer.shader.Vertex, ol.webgl.shader.Vertex); +goog.addSingletonGetter(ol.renderer.webgl.tilelayer.shader.Vertex); +ol.renderer.webgl.tilelayer.shader.Vertex.DEBUG_SOURCE = "//! NAMESPACE\x3dol.renderer.webgl.tilelayer.shader\n//! CLASS\x3dol.renderer.webgl.tilelayer.shader.\n\n\n//! COMMON\nvarying vec2 v_texCoord;\n\n\n//! VERTEX\nattribute vec2 a_position;\nattribute vec2 a_texCoord;\nuniform vec4 u_tileOffset;\n\nvoid main(void) {\n gl_Position \x3d vec4(a_position * u_tileOffset.xy + u_tileOffset.zw, 0., 1.);\n v_texCoord \x3d a_texCoord;\n}\n\n\n"; +ol.renderer.webgl.tilelayer.shader.Vertex.OPTIMIZED_SOURCE = "varying vec2 a;attribute vec2 c,d;uniform vec4 b;void main(){gl_Position\x3dvec4(c*b.xy+b.zw,0,1);a\x3dd;}"; +ol.renderer.webgl.tilelayer.shader.Vertex.SOURCE = goog.DEBUG ? ol.renderer.webgl.tilelayer.shader.Vertex.DEBUG_SOURCE : ol.renderer.webgl.tilelayer.shader.Vertex.OPTIMIZED_SOURCE; +ol.renderer.webgl.tilelayer.shader.Locations = function(gl, program) { + this.u_tileOffset = gl.getUniformLocation(program, goog.DEBUG ? "u_tileOffset" : "b"); + this.u_texture = gl.getUniformLocation(program, goog.DEBUG ? "u_texture" : "c"); + this.a_position = gl.getAttribLocation(program, goog.DEBUG ? "a_position" : "c"); + this.a_texCoord = gl.getAttribLocation(program, goog.DEBUG ? "a_texCoord" : "d") +}; +goog.provide("ol.renderer.webgl.TileLayer"); +goog.require("goog.array"); +goog.require("goog.object"); +goog.require("goog.vec.Mat4"); +goog.require("goog.vec.Vec4"); +goog.require("goog.webgl"); +goog.require("ol.Tile"); +goog.require("ol.TileRange"); +goog.require("ol.TileState"); +goog.require("ol.extent"); +goog.require("ol.layer.Tile"); +goog.require("ol.math"); +goog.require("ol.renderer.webgl.Layer"); +goog.require("ol.renderer.webgl.tilelayer.shader"); +goog.require("ol.structs.Buffer"); +ol.renderer.webgl.TileLayer = function(mapRenderer, tileLayer) { + goog.base(this, mapRenderer, tileLayer); + this.fragmentShader_ = ol.renderer.webgl.tilelayer.shader.Fragment.getInstance(); + this.vertexShader_ = ol.renderer.webgl.tilelayer.shader.Vertex.getInstance(); + this.locations_ = null; + this.arrayBuffer_ = new ol.structs.Buffer([0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0]); + this.renderedTileRange_ = null; + this.renderedFramebufferExtent_ = null; + this.renderedRevision_ = -1 +}; +goog.inherits(ol.renderer.webgl.TileLayer, ol.renderer.webgl.Layer); +ol.renderer.webgl.TileLayer.prototype.disposeInternal = function() { + var mapRenderer = this.getWebGLMapRenderer(); + mapRenderer.deleteBuffer(this.arrayBuffer_); + goog.base(this, "disposeInternal") +}; +ol.renderer.webgl.TileLayer.prototype.getTileLayer = function() { + return(this.getLayer()) +}; +ol.renderer.webgl.TileLayer.prototype.handleWebGLContextLost = function() { + goog.base(this, "handleWebGLContextLost"); + this.locations_ = null +}; +ol.renderer.webgl.TileLayer.prototype.renderFrame = function(frameState, layerState) { + var mapRenderer = this.getWebGLMapRenderer(); + var gl = mapRenderer.getGL(); + var view2DState = frameState.view2DState; + var projection = view2DState.projection; + var tileLayer = this.getTileLayer(); + var tileSource = tileLayer.getTileSource(); + var tileGrid = tileSource.getTileGrid(); + if(goog.isNull(tileGrid)) { + tileGrid = ol.tilegrid.getForProjection(projection) + } + var z = tileGrid.getZForResolution(view2DState.resolution); + var tileResolution = tileGrid.getResolution(z); + var center = view2DState.center; + var extent; + if(tileResolution == view2DState.resolution) { + center = this.snapCenterToPixel(center, tileResolution, frameState.size); + extent = ol.extent.getForView2DAndSize(center, tileResolution, view2DState.rotation, frameState.size) + }else { + extent = frameState.extent + } + var tileRange = tileGrid.getTileRangeForExtentAndResolution(extent, tileResolution); + var framebufferExtent; + if(!goog.isNull(this.renderedTileRange_) && this.renderedTileRange_.equals(tileRange) && this.renderedRevision_ == tileSource.getRevision()) { + framebufferExtent = this.renderedFramebufferExtent_ + }else { + var tileRangeSize = tileRange.getSize(); + var tileSize = tileGrid.getTileSize(z); + var maxDimension = Math.max(tileRangeSize[0] * tileSize[0], tileRangeSize[1] * tileSize[1]); + var framebufferDimension = ol.math.roundUpToPowerOfTwo(maxDimension); + var framebufferExtentDimension = tileResolution * framebufferDimension; + var origin = tileGrid.getOrigin(z); + var minX = origin[0] + tileRange.minX * tileSize[0] * tileResolution; + var minY = origin[1] + tileRange.minY * tileSize[1] * tileResolution; + framebufferExtent = [minX, minX + framebufferExtentDimension, minY, minY + framebufferExtentDimension]; + this.bindFramebuffer(frameState, framebufferDimension); + gl.viewport(0, 0, framebufferDimension, framebufferDimension); + gl.clearColor(0, 0, 0, 0); + gl.clear(goog.webgl.COLOR_BUFFER_BIT); + gl.disable(goog.webgl.BLEND); + var program = mapRenderer.getProgram(this.fragmentShader_, this.vertexShader_); + gl.useProgram(program); + if(goog.isNull(this.locations_)) { + this.locations_ = new ol.renderer.webgl.tilelayer.shader.Locations(gl, program) + } + mapRenderer.bindBuffer(goog.webgl.ARRAY_BUFFER, this.arrayBuffer_); + gl.enableVertexAttribArray(this.locations_.a_position); + gl.vertexAttribPointer(this.locations_.a_position, 2, goog.webgl.FLOAT, false, 16, 0); + gl.enableVertexAttribArray(this.locations_.a_texCoord); + gl.vertexAttribPointer(this.locations_.a_texCoord, 2, goog.webgl.FLOAT, false, 16, 8); + gl.uniform1i(this.locations_.u_texture, 0); + var tilesToDrawByZ = {}; + tilesToDrawByZ[z] = {}; + var getTileIfLoaded = this.createGetTileIfLoadedFunction(function(tile) { + return!goog.isNull(tile) && tile.getState() == ol.TileState.LOADED && mapRenderer.isTileTextureLoaded(tile) + }, tileSource, projection); + var findLoadedTiles = goog.bind(tileSource.findLoadedTiles, tileSource, tilesToDrawByZ, getTileIfLoaded); + var allTilesLoaded = true; + var tmpExtent = ol.extent.createEmpty(); + var tmpTileRange = new ol.TileRange(0, 0, 0, 0); + var childTileRange, fullyLoaded, tile, tileState, x, y; + for(x = tileRange.minX;x <= tileRange.maxX;++x) { + for(y = tileRange.minY;y <= tileRange.maxY;++y) { + tile = tileSource.getTile(z, x, y, projection); + tileState = tile.getState(); + if(tileState == ol.TileState.LOADED) { + if(mapRenderer.isTileTextureLoaded(tile)) { + tilesToDrawByZ[z][tile.tileCoord.toString()] = tile; + continue + } + }else { + if(tileState == ol.TileState.ERROR || tileState == ol.TileState.EMPTY) { + continue + } + } + allTilesLoaded = false; + fullyLoaded = tileGrid.forEachTileCoordParentTileRange(tile.tileCoord, findLoadedTiles, null, tmpTileRange, tmpExtent); + if(!fullyLoaded) { + childTileRange = tileGrid.getTileCoordChildTileRange(tile.tileCoord, tmpTileRange, tmpExtent); + if(!goog.isNull(childTileRange)) { + findLoadedTiles(z + 1, childTileRange) + } + } + } + } + var zs = goog.array.map(goog.object.getKeys(tilesToDrawByZ), Number); + goog.array.sort(zs); + var u_tileOffset = goog.vec.Vec4.createFloat32(); + var i, ii, sx, sy, tileExtent, tileKey, tilesToDraw, tx, ty; + for(i = 0, ii = zs.length;i < ii;++i) { + tilesToDraw = tilesToDrawByZ[zs[i]]; + for(tileKey in tilesToDraw) { + tile = tilesToDraw[tileKey]; + tileExtent = tileGrid.getTileCoordExtent(tile.tileCoord, tmpExtent); + sx = 2 * (tileExtent[1] - tileExtent[0]) / framebufferExtentDimension; + sy = 2 * (tileExtent[3] - tileExtent[2]) / framebufferExtentDimension; + tx = 2 * (tileExtent[0] - framebufferExtent[0]) / framebufferExtentDimension - 1; + ty = 2 * (tileExtent[2] - framebufferExtent[2]) / framebufferExtentDimension - 1; + goog.vec.Vec4.setFromValues(u_tileOffset, sx, sy, tx, ty); + gl.uniform4fv(this.locations_.u_tileOffset, u_tileOffset); + mapRenderer.bindTileTexture(tile, goog.webgl.LINEAR, goog.webgl.LINEAR); + gl.drawArrays(goog.webgl.TRIANGLE_STRIP, 0, 4) + } + } + if(allTilesLoaded) { + this.renderedTileRange_ = tileRange; + this.renderedFramebufferExtent_ = framebufferExtent; + this.renderedRevision_ = tileSource.getRevision() + }else { + this.renderedTileRange_ = null; + this.renderedFramebufferExtent_ = null; + this.renderedRevision_ = -1; + frameState.animate = true + } + } + this.updateUsedTiles(frameState.usedTiles, tileSource, z, tileRange); + var tileTextureQueue = mapRenderer.getTileTextureQueue(); + this.manageTilePyramid(frameState, tileSource, tileGrid, projection, extent, z, tileLayer.getPreload(), function(tile) { + if(tile.getState() == ol.TileState.LOADED && !mapRenderer.isTileTextureLoaded(tile) && !tileTextureQueue.isKeyQueued(tile.getKey())) { + tileTextureQueue.enqueue([tile, tileGrid.getTileCoordCenter(tile.tileCoord), tileGrid.getResolution(tile.tileCoord.z)]) + } + }, this); + this.scheduleExpireCache(frameState, tileSource); + this.updateLogos(frameState, tileSource); + var texCoordMatrix = this.texCoordMatrix; + goog.vec.Mat4.makeIdentity(texCoordMatrix); + goog.vec.Mat4.translate(texCoordMatrix, (center[0] - framebufferExtent[0]) / (framebufferExtent[1] - framebufferExtent[0]), (center[1] - framebufferExtent[2]) / (framebufferExtent[3] - framebufferExtent[2]), 0); + goog.vec.Mat4.rotateZ(texCoordMatrix, view2DState.rotation); + goog.vec.Mat4.scale(texCoordMatrix, frameState.size[0] * view2DState.resolution / (framebufferExtent[1] - framebufferExtent[0]), frameState.size[1] * view2DState.resolution / (framebufferExtent[3] - framebufferExtent[2]), 1); + goog.vec.Mat4.translate(texCoordMatrix, -0.5, -0.5, 0) +}; +goog.provide("ol.renderer.webgl.vectorlayer2.shader.LineStringCollection"); +goog.require("ol.webgl.shader"); +ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionFragment = function() { + goog.base(this, ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionFragment.SOURCE) +}; +goog.inherits(ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionFragment, ol.webgl.shader.Fragment); +goog.addSingletonGetter(ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionFragment); +ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionFragment.DEBUG_SOURCE = "precision mediump float;\n//! NAMESPACE\x3dol.renderer.webgl.vectorlayer2.shader.LineStringCollection\n//! CLASS\x3dol.renderer.webgl.vectorlayer2.shader.LineStringCollection\n\n\n//! FRAGMENT\nuniform vec4 u_color;\n\nvoid main(void) {\n gl_FragColor \x3d u_color;\n}\n\n"; +ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionFragment.OPTIMIZED_SOURCE = "precision mediump float;uniform vec4 b;void main(){gl_FragColor\x3db;}"; +ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionFragment.SOURCE = goog.DEBUG ? ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionFragment.DEBUG_SOURCE : ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionFragment.OPTIMIZED_SOURCE; +ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionVertex = function() { + goog.base(this, ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionVertex.SOURCE) +}; +goog.inherits(ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionVertex, ol.webgl.shader.Vertex); +goog.addSingletonGetter(ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionVertex); +ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionVertex.DEBUG_SOURCE = "//! NAMESPACE\x3dol.renderer.webgl.vectorlayer2.shader.LineStringCollection\n//! CLASS\x3dol.renderer.webgl.vectorlayer2.shader.LineStringCollection\n\n\n//! VERTEX\nattribute vec2 a_position;\nuniform mat4 u_modelViewMatrix;\n\nvoid main(void) {\n gl_Position \x3d u_modelViewMatrix * vec4(a_position, 0., 1.);\n}\n\n\n"; +ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionVertex.OPTIMIZED_SOURCE = "attribute vec2 b;uniform mat4 a;void main(){gl_Position\x3da*vec4(b,0,1);}"; +ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionVertex.SOURCE = goog.DEBUG ? ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionVertex.DEBUG_SOURCE : ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionVertex.OPTIMIZED_SOURCE; +ol.renderer.webgl.vectorlayer2.shader.LineStringCollection.Locations = function(gl, program) { + this.u_modelViewMatrix = gl.getUniformLocation(program, goog.DEBUG ? "u_modelViewMatrix" : "a"); + this.u_color = gl.getUniformLocation(program, goog.DEBUG ? "u_color" : "b"); + this.a_position = gl.getAttribLocation(program, goog.DEBUG ? "a_position" : "b") +}; +goog.provide("ol.renderer.webgl.vectorlayer2.shader.PointCollection"); +goog.require("ol.webgl.shader"); +ol.renderer.webgl.vectorlayer2.shader.PointCollectionFragment = function() { + goog.base(this, ol.renderer.webgl.vectorlayer2.shader.PointCollectionFragment.SOURCE) +}; +goog.inherits(ol.renderer.webgl.vectorlayer2.shader.PointCollectionFragment, ol.webgl.shader.Fragment); +goog.addSingletonGetter(ol.renderer.webgl.vectorlayer2.shader.PointCollectionFragment); +ol.renderer.webgl.vectorlayer2.shader.PointCollectionFragment.DEBUG_SOURCE = "precision mediump float;\n//! NAMESPACE\x3dol.renderer.webgl.vectorlayer2.shader.PointCollection\n//! CLASS\x3dol.renderer.webgl.vectorlayer2.shader.PointCollection\n\n\n//! FRAGMENT\nuniform vec4 u_color;\n\nvoid main(void) {\n gl_FragColor \x3d u_color;\n}\n\n"; +ol.renderer.webgl.vectorlayer2.shader.PointCollectionFragment.OPTIMIZED_SOURCE = "precision mediump float;uniform vec4 c;void main(){gl_FragColor\x3dc;}"; +ol.renderer.webgl.vectorlayer2.shader.PointCollectionFragment.SOURCE = goog.DEBUG ? ol.renderer.webgl.vectorlayer2.shader.PointCollectionFragment.DEBUG_SOURCE : ol.renderer.webgl.vectorlayer2.shader.PointCollectionFragment.OPTIMIZED_SOURCE; +ol.renderer.webgl.vectorlayer2.shader.PointCollectionVertex = function() { + goog.base(this, ol.renderer.webgl.vectorlayer2.shader.PointCollectionVertex.SOURCE) +}; +goog.inherits(ol.renderer.webgl.vectorlayer2.shader.PointCollectionVertex, ol.webgl.shader.Vertex); +goog.addSingletonGetter(ol.renderer.webgl.vectorlayer2.shader.PointCollectionVertex); +ol.renderer.webgl.vectorlayer2.shader.PointCollectionVertex.DEBUG_SOURCE = "//! NAMESPACE\x3dol.renderer.webgl.vectorlayer2.shader.PointCollection\n//! CLASS\x3dol.renderer.webgl.vectorlayer2.shader.PointCollection\n\n\n//! VERTEX\nattribute vec2 a_position;\nuniform float u_pointSize;\nuniform mat4 u_modelViewMatrix;\n\nvoid main(void) {\n gl_Position \x3d u_modelViewMatrix * vec4(a_position, 0., 1.);\n gl_PointSize \x3d u_pointSize;\n}\n\n\n"; +ol.renderer.webgl.vectorlayer2.shader.PointCollectionVertex.OPTIMIZED_SOURCE = "attribute vec2 c;uniform float a;uniform mat4 b;void main(){gl_Position\x3db*vec4(c,0,1);gl_PointSize\x3da;}"; +ol.renderer.webgl.vectorlayer2.shader.PointCollectionVertex.SOURCE = goog.DEBUG ? ol.renderer.webgl.vectorlayer2.shader.PointCollectionVertex.DEBUG_SOURCE : ol.renderer.webgl.vectorlayer2.shader.PointCollectionVertex.OPTIMIZED_SOURCE; +ol.renderer.webgl.vectorlayer2.shader.PointCollection.Locations = function(gl, program) { + this.u_pointSize = gl.getUniformLocation(program, goog.DEBUG ? "u_pointSize" : "a"); + this.u_modelViewMatrix = gl.getUniformLocation(program, goog.DEBUG ? "u_modelViewMatrix" : "b"); + this.u_color = gl.getUniformLocation(program, goog.DEBUG ? "u_color" : "c"); + this.a_position = gl.getAttribLocation(program, goog.DEBUG ? "a_position" : "c") +}; +goog.provide("ol.renderer.webgl.VectorLayer2"); +goog.require("goog.vec.Mat4"); +goog.require("goog.webgl"); +goog.require("ol.math"); +goog.require("ol.renderer.webgl.Layer"); +goog.require("ol.renderer.webgl.vectorlayer2.shader.LineStringCollection"); +goog.require("ol.renderer.webgl.vectorlayer2.shader.PointCollection"); +ol.renderer.webgl.VectorLayer2 = function(mapRenderer, vectorLayer2) { + goog.base(this, mapRenderer, vectorLayer2); + goog.vec.Mat4.makeIdentity(this.projectionMatrix); + this.modelViewMatrix_ = goog.vec.Mat4.createNumberIdentity(); + this.lineStringCollectionLocations_ = null; + this.pointCollectionLocations_ = null +}; +goog.inherits(ol.renderer.webgl.VectorLayer2, ol.renderer.webgl.Layer); +ol.renderer.webgl.VectorLayer2.prototype.getVectorLayer = function() { + return(this.getLayer()) +}; +ol.renderer.webgl.VectorLayer2.prototype.handleWebGLContextLost = function() { + goog.base(this, "handleWebGLContextLost"); + this.pointCollectionLocations_ = null +}; +ol.renderer.webgl.VectorLayer2.prototype.renderFrame = function(frameState, layerState) { + var mapRenderer = this.getWebGLMapRenderer(); + var gl = mapRenderer.getGL(); + var view2DState = frameState.view2DState; + var vectorLayer = this.getVectorLayer(); + var vectorSource = vectorLayer.getVectorSource(); + var size = frameState.size; + var framebufferDimension = ol.math.roundUpToPowerOfTwo(Math.max(size[0], size[1])); + this.bindFramebuffer(frameState, framebufferDimension); + gl.viewport(0, 0, framebufferDimension, framebufferDimension); + gl.clearColor(0, 0, 0, 0); + gl.clear(goog.webgl.COLOR_BUFFER_BIT); + gl.enable(goog.webgl.BLEND); + goog.vec.Mat4.makeIdentity(this.modelViewMatrix_); + if(view2DState.rotation !== 0) { + goog.vec.Mat4.rotateZ(this.modelViewMatrix_, -view2DState.rotation) + } + goog.vec.Mat4.scale(this.modelViewMatrix_, 2 / (framebufferDimension * view2DState.resolution), 2 / (framebufferDimension * view2DState.resolution), 1); + goog.vec.Mat4.translate(this.modelViewMatrix_, -view2DState.center[0], -view2DState.center[1], 0); + var pointCollections = vectorSource.getPointCollections(); + if(pointCollections.length > 0) { + this.renderPointCollections(pointCollections) + } + var lineStringCollections = vectorSource.getLineStringCollections(); + if(lineStringCollections.length > 0) { + this.renderLineStringCollections(lineStringCollections) + } + goog.vec.Mat4.makeIdentity(this.texCoordMatrix); + goog.vec.Mat4.translate(this.texCoordMatrix, 0.5, 0.5, 0); + goog.vec.Mat4.scale(this.texCoordMatrix, size[0] / framebufferDimension, size[1] / framebufferDimension, 1); + goog.vec.Mat4.translate(this.texCoordMatrix, -0.5, -0.5, 0) +}; +ol.renderer.webgl.VectorLayer2.prototype.renderLineStringCollections = function(lineStringCollections) { + var mapRenderer = this.getWebGLMapRenderer(); + var gl = mapRenderer.getGL(); + var fragmentShader = ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionFragment.getInstance(); + var vertexShader = ol.renderer.webgl.vectorlayer2.shader.LineStringCollectionVertex.getInstance(); + var program = mapRenderer.getProgram(fragmentShader, vertexShader); + gl.useProgram(program); + if(goog.isNull(this.lineStringCollectionLocations_)) { + this.lineStringCollectionLocations_ = new ol.renderer.webgl.vectorlayer2.shader.LineStringCollection.Locations(gl, program) + } + gl.uniformMatrix4fv(this.lineStringCollectionLocations_.u_modelViewMatrix, false, this.modelViewMatrix_); + var buf, dim, i, indexBuffer, indices, lineStringCollection; + for(i = 0;i < lineStringCollections.length;++i) { + lineStringCollection = lineStringCollections[i]; + buf = lineStringCollection.buf; + dim = lineStringCollection.dim; + mapRenderer.bindBuffer(goog.webgl.ARRAY_BUFFER, buf); + indices = lineStringCollection.getIndices(); + indexBuffer = gl.createBuffer(); + gl.bindBuffer(goog.webgl.ELEMENT_ARRAY_BUFFER, indexBuffer); + gl.bufferData(goog.webgl.ELEMENT_ARRAY_BUFFER, indices, goog.webgl.DYNAMIC_DRAW); + gl.enableVertexAttribArray(this.lineStringCollectionLocations_.a_position); + gl.vertexAttribPointer(this.lineStringCollectionLocations_.a_position, 2, goog.webgl.FLOAT, false, 4 * dim, 0); + gl.uniform4fv(this.lineStringCollectionLocations_.u_color, [1, 1, 0, 0.75]); + gl.drawElements(goog.webgl.LINES, indices.length, goog.webgl.UNSIGNED_SHORT, 0); + gl.bindBuffer(goog.webgl.ELEMENT_ARRAY_BUFFER, null); + gl.deleteBuffer(indexBuffer) + } +}; +ol.renderer.webgl.VectorLayer2.prototype.renderPointCollections = function(pointCollections) { + var mapRenderer = this.getWebGLMapRenderer(); + var gl = mapRenderer.getGL(); + var fragmentShader = ol.renderer.webgl.vectorlayer2.shader.PointCollectionFragment.getInstance(); + var vertexShader = ol.renderer.webgl.vectorlayer2.shader.PointCollectionVertex.getInstance(); + var program = mapRenderer.getProgram(fragmentShader, vertexShader); + gl.useProgram(program); + if(goog.isNull(this.pointCollectionLocations_)) { + this.pointCollectionLocations_ = new ol.renderer.webgl.vectorlayer2.shader.PointCollection.Locations(gl, program) + } + gl.uniformMatrix4fv(this.pointCollectionLocations_.u_modelViewMatrix, false, this.modelViewMatrix_); + var buf, dim, i, pointCollection; + for(i = 0;i < pointCollections.length;++i) { + pointCollection = pointCollections[i]; + buf = pointCollection.buf; + dim = pointCollection.dim; + mapRenderer.bindBuffer(goog.webgl.ARRAY_BUFFER, buf); + gl.enableVertexAttribArray(this.pointCollectionLocations_.a_position); + gl.vertexAttribPointer(this.pointCollectionLocations_.a_position, 2, goog.webgl.FLOAT, false, 4 * dim, 0); + gl.uniform4fv(this.pointCollectionLocations_.u_color, [1, 0, 0, 0.75]); + gl.uniform1f(this.pointCollectionLocations_.u_pointSize, 3); + buf.forEachRange(function(start, stop) { + gl.drawArrays(goog.webgl.POINTS, start / dim, (stop - start) / dim) + }) + } +}; +goog.provide("ol.renderer.webgl.map.shader.Color"); +goog.require("ol.webgl.shader"); +ol.renderer.webgl.map.shader.ColorFragment = function() { + goog.base(this, ol.renderer.webgl.map.shader.ColorFragment.SOURCE) +}; +goog.inherits(ol.renderer.webgl.map.shader.ColorFragment, ol.webgl.shader.Fragment); +goog.addSingletonGetter(ol.renderer.webgl.map.shader.ColorFragment); +ol.renderer.webgl.map.shader.ColorFragment.DEBUG_SOURCE = "precision mediump float;\n//! NAMESPACE\x3dol.renderer.webgl.map.shader.Color\n//! CLASS\x3dol.renderer.webgl.map.shader.Color\n\n\n//! COMMON\nvarying vec2 v_texCoord;\n\n\n//! FRAGMENT\n// @see https://svn.webkit.org/repository/webkit/trunk/Source/WebCore/platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp\nuniform mat4 u_colorMatrix;\nuniform float u_opacity;\nuniform sampler2D u_texture;\n\nvoid main(void) {\n vec4 texColor \x3d texture2D(u_texture, v_texCoord);\n gl_FragColor.rgb \x3d (u_colorMatrix * vec4(texColor.rgb, 1.)).rgb;\n gl_FragColor.a \x3d texColor.a * u_opacity;\n}\n\n"; +ol.renderer.webgl.map.shader.ColorFragment.OPTIMIZED_SOURCE = "precision mediump float;varying vec2 a;uniform mat4 d;uniform float e;uniform sampler2D f;void main(){vec4 g\x3dtexture2D(f,a);gl_FragColor.rgb\x3d(d*vec4(g.rgb,1)).rgb;gl_FragColor.a\x3dg.a*e;}"; +ol.renderer.webgl.map.shader.ColorFragment.SOURCE = goog.DEBUG ? ol.renderer.webgl.map.shader.ColorFragment.DEBUG_SOURCE : ol.renderer.webgl.map.shader.ColorFragment.OPTIMIZED_SOURCE; +ol.renderer.webgl.map.shader.ColorVertex = function() { + goog.base(this, ol.renderer.webgl.map.shader.ColorVertex.SOURCE) +}; +goog.inherits(ol.renderer.webgl.map.shader.ColorVertex, ol.webgl.shader.Vertex); +goog.addSingletonGetter(ol.renderer.webgl.map.shader.ColorVertex); +ol.renderer.webgl.map.shader.ColorVertex.DEBUG_SOURCE = "//! NAMESPACE\x3dol.renderer.webgl.map.shader.Color\n//! CLASS\x3dol.renderer.webgl.map.shader.Color\n\n\n//! COMMON\nvarying vec2 v_texCoord;\n\n\n//! VERTEX\nattribute vec2 a_position;\nattribute vec2 a_texCoord;\n\nuniform mat4 u_texCoordMatrix;\nuniform mat4 u_projectionMatrix;\n\nvoid main(void) {\n gl_Position \x3d u_projectionMatrix * vec4(a_position, 0., 1.);\n v_texCoord \x3d (u_texCoordMatrix * vec4(a_texCoord, 0., 1.)).st;\n}\n\n\n"; +ol.renderer.webgl.map.shader.ColorVertex.OPTIMIZED_SOURCE = "varying vec2 a;attribute vec2 d,e;uniform mat4 b,c;void main(){gl_Position\x3dc*vec4(d,0,1);a\x3d(b*vec4(e,0,1)).st;}"; +ol.renderer.webgl.map.shader.ColorVertex.SOURCE = goog.DEBUG ? ol.renderer.webgl.map.shader.ColorVertex.DEBUG_SOURCE : ol.renderer.webgl.map.shader.ColorVertex.OPTIMIZED_SOURCE; +ol.renderer.webgl.map.shader.Color.Locations = function(gl, program) { + this.u_texCoordMatrix = gl.getUniformLocation(program, goog.DEBUG ? "u_texCoordMatrix" : "b"); + this.u_projectionMatrix = gl.getUniformLocation(program, goog.DEBUG ? "u_projectionMatrix" : "c"); + this.u_colorMatrix = gl.getUniformLocation(program, goog.DEBUG ? "u_colorMatrix" : "d"); + this.u_opacity = gl.getUniformLocation(program, goog.DEBUG ? "u_opacity" : "e"); + this.u_texture = gl.getUniformLocation(program, goog.DEBUG ? "u_texture" : "f"); + this.a_position = gl.getAttribLocation(program, goog.DEBUG ? "a_position" : "d"); + this.a_texCoord = gl.getAttribLocation(program, goog.DEBUG ? "a_texCoord" : "e") +}; +goog.provide("ol.renderer.webgl.map.shader.Default"); +goog.require("ol.webgl.shader"); +ol.renderer.webgl.map.shader.DefaultFragment = function() { + goog.base(this, ol.renderer.webgl.map.shader.DefaultFragment.SOURCE) +}; +goog.inherits(ol.renderer.webgl.map.shader.DefaultFragment, ol.webgl.shader.Fragment); +goog.addSingletonGetter(ol.renderer.webgl.map.shader.DefaultFragment); +ol.renderer.webgl.map.shader.DefaultFragment.DEBUG_SOURCE = "precision mediump float;\n//! NAMESPACE\x3dol.renderer.webgl.map.shader.Default\n//! CLASS\x3dol.renderer.webgl.map.shader.Default\n\n\n//! COMMON\nvarying vec2 v_texCoord;\n\n\n//! FRAGMENT\nuniform float u_opacity;\nuniform sampler2D u_texture;\n\nvoid main(void) {\n vec4 texColor \x3d texture2D(u_texture, v_texCoord);\n gl_FragColor.rgb \x3d texColor.rgb;\n gl_FragColor.a \x3d texColor.a * u_opacity;\n}\n\n"; +ol.renderer.webgl.map.shader.DefaultFragment.OPTIMIZED_SOURCE = "precision mediump float;varying vec2 a;uniform float d;uniform sampler2D e;void main(){vec4 f\x3dtexture2D(e,a);gl_FragColor.rgb\x3df.rgb;gl_FragColor.a\x3df.a*d;}"; +ol.renderer.webgl.map.shader.DefaultFragment.SOURCE = goog.DEBUG ? ol.renderer.webgl.map.shader.DefaultFragment.DEBUG_SOURCE : ol.renderer.webgl.map.shader.DefaultFragment.OPTIMIZED_SOURCE; +ol.renderer.webgl.map.shader.DefaultVertex = function() { + goog.base(this, ol.renderer.webgl.map.shader.DefaultVertex.SOURCE) +}; +goog.inherits(ol.renderer.webgl.map.shader.DefaultVertex, ol.webgl.shader.Vertex); +goog.addSingletonGetter(ol.renderer.webgl.map.shader.DefaultVertex); +ol.renderer.webgl.map.shader.DefaultVertex.DEBUG_SOURCE = "//! NAMESPACE\x3dol.renderer.webgl.map.shader.Default\n//! CLASS\x3dol.renderer.webgl.map.shader.Default\n\n\n//! COMMON\nvarying vec2 v_texCoord;\n\n\n//! VERTEX\nattribute vec2 a_position;\nattribute vec2 a_texCoord;\n\nuniform mat4 u_texCoordMatrix;\nuniform mat4 u_projectionMatrix;\n\nvoid main(void) {\n gl_Position \x3d u_projectionMatrix * vec4(a_position, 0., 1.);\n v_texCoord \x3d (u_texCoordMatrix * vec4(a_texCoord, 0., 1.)).st;\n}\n\n\n"; +ol.renderer.webgl.map.shader.DefaultVertex.OPTIMIZED_SOURCE = "varying vec2 a;attribute vec2 d,e;uniform mat4 b,c;void main(){gl_Position\x3dc*vec4(d,0,1);a\x3d(b*vec4(e,0,1)).st;}"; +ol.renderer.webgl.map.shader.DefaultVertex.SOURCE = goog.DEBUG ? ol.renderer.webgl.map.shader.DefaultVertex.DEBUG_SOURCE : ol.renderer.webgl.map.shader.DefaultVertex.OPTIMIZED_SOURCE; +ol.renderer.webgl.map.shader.Default.Locations = function(gl, program) { + this.u_texCoordMatrix = gl.getUniformLocation(program, goog.DEBUG ? "u_texCoordMatrix" : "b"); + this.u_projectionMatrix = gl.getUniformLocation(program, goog.DEBUG ? "u_projectionMatrix" : "c"); + this.u_opacity = gl.getUniformLocation(program, goog.DEBUG ? "u_opacity" : "d"); + this.u_texture = gl.getUniformLocation(program, goog.DEBUG ? "u_texture" : "e"); + this.a_position = gl.getAttribLocation(program, goog.DEBUG ? "a_position" : "d"); + this.a_texCoord = gl.getAttribLocation(program, goog.DEBUG ? "a_texCoord" : "e") +}; +goog.provide("ol.renderer.webgl.Map"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.require("goog.dom"); +goog.require("goog.dom.TagName"); +goog.require("goog.events"); +goog.require("goog.events.Event"); +goog.require("goog.log"); +goog.require("goog.log.Logger"); +goog.require("goog.object"); +goog.require("goog.style"); +goog.require("goog.webgl"); +goog.require("ol.FrameState"); +goog.require("ol.Size"); +goog.require("ol.Tile"); +goog.require("ol.css"); +goog.require("ol.layer.Image"); +goog.require("ol.layer.Tile"); +goog.require("ol.layer.Vector2"); +goog.require("ol.renderer.Map"); +goog.require("ol.renderer.webgl.ImageLayer"); +goog.require("ol.renderer.webgl.TileLayer"); +goog.require("ol.renderer.webgl.VectorLayer2"); +goog.require("ol.renderer.webgl.map.shader.Color"); +goog.require("ol.renderer.webgl.map.shader.Default"); +goog.require("ol.size"); +goog.require("ol.structs.Buffer"); +goog.require("ol.structs.IntegerSet"); +goog.require("ol.structs.LRUCache"); +goog.require("ol.structs.PriorityQueue"); +goog.require("ol.webgl"); +goog.require("ol.webgl.WebGLContextEventType"); +goog.require("ol.webgl.shader"); +ol.WEBGL_TEXTURE_CACHE_HIGH_WATER_MARK = 1024; +ol.renderer.webgl.BufferCacheEntry; +ol.renderer.webgl.TextureCacheEntry; +ol.renderer.webgl.Map = function(container, map) { + goog.base(this, container, map); + this.canvas_ = goog.dom.createElement(goog.dom.TagName.CANVAS); + this.canvas_.height = container.clientHeight; + this.canvas_.width = container.clientWidth; + this.canvas_.className = ol.css.CLASS_UNSELECTABLE; + goog.dom.insertChildAt(container, this.canvas_, 0); + this.renderedVisible_ = true; + this.canvasSize_ = [container.clientHeight, container.clientWidth]; + this.gl_ = ol.webgl.getContext(this.canvas_, {antialias:true, depth:false, preserveDrawingBuffer:false, stencil:false}); + goog.asserts.assert(!goog.isNull(this.gl_)); + goog.events.listen(this.canvas_, ol.webgl.WebGLContextEventType.LOST, this.handleWebGLContextLost, false, this); + goog.events.listen(this.canvas_, ol.webgl.WebGLContextEventType.RESTORED, this.handleWebGLContextRestored, false, this); + this.colorLocations_ = null; + this.defaultLocations_ = null; + this.arrayBuffer_ = new ol.structs.Buffer([-1, -1, 0, 0, 1, -1, 1, 0, -1, 1, 0, 1, 1, 1, 1, 1]); + this.bufferCache_ = {}; + this.shaderCache_ = {}; + this.programCache_ = {}; + this.textureCache_ = new ol.structs.LRUCache; + this.focus_ = null; + this.tileTextureQueue_ = new ol.structs.PriorityQueue(goog.bind(function(element) { + var tileCenter = (element[1]); + var tileResolution = (element[2]); + var deltaX = tileCenter[0] - this.focus_[0]; + var deltaY = tileCenter[1] - this.focus_[1]; + return 65536 * Math.log(tileResolution) + Math.sqrt(deltaX * deltaX + deltaY * deltaY) / tileResolution + }, this), function(element) { + return(element[0]).getKey() + }); + this.loadNextTileTexture_ = goog.bind(function(map, frameState) { + if(!this.tileTextureQueue_.isEmpty()) { + this.tileTextureQueue_.reprioritize(); + var tile = (this.tileTextureQueue_.dequeue()[0]); + this.bindTileTexture(tile, goog.webgl.LINEAR, goog.webgl.LINEAR) + } + }, this); + this.textureCacheFrameMarkerCount_ = 0; + this.initializeGL_() +}; +goog.inherits(ol.renderer.webgl.Map, ol.renderer.Map); +ol.renderer.webgl.Map.prototype.bindBuffer = function(target, buf) { + var gl = this.getGL(); + var arr = buf.getArray(); + var bufferKey = goog.getUid(buf); + if(bufferKey in this.bufferCache_) { + var bufferCacheEntry = this.bufferCache_[bufferKey]; + gl.bindBuffer(target, bufferCacheEntry.buffer); + bufferCacheEntry.dirtySet.forEachRange(function(start, stop) { + var slice = arr.slice(start, stop); + gl.bufferSubData(target, start, target == goog.webgl.ARRAY_BUFFER ? new Float32Array(slice) : new Uint16Array(slice)) + }); + bufferCacheEntry.dirtySet.clear() + }else { + var buffer = gl.createBuffer(); + gl.bindBuffer(target, buffer); + gl.bufferData(target, target == goog.webgl.ARRAY_BUFFER ? new Float32Array(arr) : new Uint16Array(arr), buf.getUsage()); + var dirtySet = new ol.structs.IntegerSet; + buf.addDirtySet(dirtySet); + this.bufferCache_[bufferKey] = {buf:buf, buffer:buffer, dirtySet:dirtySet} + } +}; +ol.renderer.webgl.Map.prototype.bindTileTexture = function(tile, magFilter, minFilter) { + var gl = this.getGL(); + var tileKey = tile.getKey(); + if(this.textureCache_.containsKey(tileKey)) { + var textureCacheEntry = this.textureCache_.get(tileKey); + gl.bindTexture(goog.webgl.TEXTURE_2D, textureCacheEntry.texture); + if(textureCacheEntry.magFilter != magFilter) { + gl.texParameteri(goog.webgl.TEXTURE_2D, goog.webgl.TEXTURE_MAG_FILTER, magFilter); + textureCacheEntry.magFilter = magFilter + } + if(textureCacheEntry.minFilter != minFilter) { + gl.texParameteri(goog.webgl.TEXTURE_2D, goog.webgl.TEXTURE_MAG_FILTER, minFilter); + textureCacheEntry.minFilter = minFilter + } + }else { + var texture = gl.createTexture(); + gl.bindTexture(goog.webgl.TEXTURE_2D, texture); + gl.texImage2D(goog.webgl.TEXTURE_2D, 0, goog.webgl.RGBA, goog.webgl.RGBA, goog.webgl.UNSIGNED_BYTE, tile.getImage()); + gl.texParameteri(goog.webgl.TEXTURE_2D, goog.webgl.TEXTURE_MAG_FILTER, magFilter); + gl.texParameteri(goog.webgl.TEXTURE_2D, goog.webgl.TEXTURE_MIN_FILTER, minFilter); + gl.texParameteri(goog.webgl.TEXTURE_2D, goog.webgl.TEXTURE_WRAP_S, goog.webgl.CLAMP_TO_EDGE); + gl.texParameteri(goog.webgl.TEXTURE_2D, goog.webgl.TEXTURE_WRAP_T, goog.webgl.CLAMP_TO_EDGE); + this.textureCache_.set(tileKey, {texture:texture, magFilter:magFilter, minFilter:minFilter}) + } +}; +ol.renderer.webgl.Map.prototype.createLayerRenderer = function(layer) { + if(layer instanceof ol.layer.Tile) { + return new ol.renderer.webgl.TileLayer(this, layer) + }else { + if(layer instanceof ol.layer.Image) { + return new ol.renderer.webgl.ImageLayer(this, layer) + }else { + if(layer instanceof ol.layer.Vector2) { + return new ol.renderer.webgl.VectorLayer2(this, layer) + }else { + goog.asserts.fail(); + return null + } + } + } +}; +ol.renderer.webgl.Map.prototype.deleteBuffer = function(buf) { + var gl = this.getGL(); + var bufferKey = goog.getUid(buf); + goog.asserts.assert(bufferKey in this.bufferCache_); + var bufferCacheEntry = this.bufferCache_[bufferKey]; + bufferCacheEntry.buf.removeDirtySet(bufferCacheEntry.dirtySet); + if(!gl.isContextLost()) { + gl.deleteBuffer(bufferCacheEntry.buffer) + } + delete this.bufferCache_[bufferKey] +}; +ol.renderer.webgl.Map.prototype.disposeInternal = function() { + var gl = this.getGL(); + goog.object.forEach(this.bufferCache_, function(bufferCacheEntry) { + bufferCacheEntry.buf.removeDirtySet(bufferCacheEntry.dirtySet) + }); + if(!gl.isContextLost()) { + goog.object.forEach(this.bufferCache_, function(bufferCacheEntry) { + gl.deleteBuffer(bufferCacheEntry.buffer) + }); + goog.object.forEach(this.programCache_, function(program) { + gl.deleteProgram(program) + }); + goog.object.forEach(this.shaderCache_, function(shader) { + gl.deleteShader(shader) + }); + this.textureCache_.forEach(function(textureCacheEntry) { + if(!goog.isNull(textureCacheEntry)) { + gl.deleteTexture(textureCacheEntry.texture) + } + }) + } + goog.base(this, "disposeInternal") +}; +ol.renderer.webgl.Map.prototype.expireCache_ = function(map, frameState) { + var gl = this.getGL(); + var textureCacheEntry; + while(this.textureCache_.getCount() - this.textureCacheFrameMarkerCount_ > ol.WEBGL_TEXTURE_CACHE_HIGH_WATER_MARK) { + textureCacheEntry = (this.textureCache_.peekLast()); + if(goog.isNull(textureCacheEntry)) { + if(+this.textureCache_.peekLastKey() == frameState.index) { + break + }else { + --this.textureCacheFrameMarkerCount_ + } + }else { + gl.deleteTexture(textureCacheEntry.texture) + } + this.textureCache_.pop() + } +}; +ol.renderer.webgl.Map.prototype.getCanvas = function() { + return this.canvas_ +}; +ol.renderer.webgl.Map.prototype.getGL = function() { + return this.gl_ +}; +ol.renderer.webgl.Map.prototype.getProgram = function(fragmentShaderObject, vertexShaderObject) { + var programKey = goog.getUid(fragmentShaderObject) + "/" + goog.getUid(vertexShaderObject); + if(programKey in this.programCache_) { + return this.programCache_[programKey] + }else { + var gl = this.getGL(); + var program = gl.createProgram(); + gl.attachShader(program, this.getShader(fragmentShaderObject)); + gl.attachShader(program, this.getShader(vertexShaderObject)); + gl.linkProgram(program); + if(goog.DEBUG) { + if(!gl.getProgramParameter(program, goog.webgl.LINK_STATUS) && !gl.isContextLost()) { + goog.log.error(this.logger_, gl.getProgramInfoLog(program)) + } + } + goog.asserts.assert(gl.getProgramParameter(program, goog.webgl.LINK_STATUS) || gl.isContextLost()); + this.programCache_[programKey] = program; + return program + } +}; +ol.renderer.webgl.Map.prototype.getShader = function(shaderObject) { + var shaderKey = goog.getUid(shaderObject); + if(shaderKey in this.shaderCache_) { + return this.shaderCache_[shaderKey] + }else { + var gl = this.getGL(); + var shader = gl.createShader(shaderObject.getType()); + gl.shaderSource(shader, shaderObject.getSource()); + gl.compileShader(shader); + if(goog.DEBUG) { + if(!gl.getShaderParameter(shader, goog.webgl.COMPILE_STATUS) && !gl.isContextLost()) { + goog.log.error(this.logger_, gl.getShaderInfoLog(shader)) + } + } + goog.asserts.assert(gl.getShaderParameter(shader, goog.webgl.COMPILE_STATUS) || gl.isContextLost()); + this.shaderCache_[shaderKey] = shader; + return shader + } +}; +ol.renderer.webgl.Map.prototype.getTileTextureQueue = function() { + return this.tileTextureQueue_ +}; +ol.renderer.webgl.Map.prototype.handleWebGLContextLost = function(event) { + event.preventDefault(); + this.colorLocations_ = null; + this.defaultLocations_ = null; + this.bufferCache_ = {}; + this.shaderCache_ = {}; + this.programCache_ = {}; + this.textureCache_.clear(); + this.textureCacheFrameMarkerCount_ = 0; + goog.object.forEach(this.getLayerRenderers(), function(layerRenderer) { + layerRenderer.handleWebGLContextLost() + }) +}; +ol.renderer.webgl.Map.prototype.handleWebGLContextRestored = function() { + this.initializeGL_(); + this.getMap().render() +}; +ol.renderer.webgl.Map.prototype.initializeGL_ = function() { + var gl = this.gl_; + gl.activeTexture(goog.webgl.TEXTURE0); + gl.blendFuncSeparate(goog.webgl.SRC_ALPHA, goog.webgl.ONE_MINUS_SRC_ALPHA, goog.webgl.ONE, goog.webgl.ONE_MINUS_SRC_ALPHA); + gl.disable(goog.webgl.CULL_FACE); + gl.disable(goog.webgl.DEPTH_TEST); + gl.disable(goog.webgl.SCISSOR_TEST) +}; +ol.renderer.webgl.Map.prototype.isTileTextureLoaded = function(tile) { + return this.textureCache_.containsKey(tile.getKey()) +}; +ol.renderer.webgl.Map.prototype.logger_ = goog.log.getLogger("ol.renderer.webgl.Map"); +ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) { + var gl = this.getGL(); + if(gl.isContextLost()) { + return false + } + if(goog.isNull(frameState)) { + if(this.renderedVisible_) { + goog.style.setElementShown(this.canvas_, false); + this.renderedVisible_ = false + } + return false + } + this.focus_ = frameState.focus; + this.textureCache_.set((-frameState.index).toString(), null); + ++this.textureCacheFrameMarkerCount_; + var layersArray = frameState.layersArray; + var i, ii, layer, layerRenderer, layerState; + for(i = 0, ii = layersArray.length;i < ii;++i) { + layer = layersArray[i]; + layerRenderer = this.getLayerRenderer(layer); + layerState = frameState.layerStates[goog.getUid(layer)]; + if(layerState.visible && layerState.ready) { + layerRenderer.renderFrame(frameState, layerState) + } + } + var size = frameState.size; + if(!ol.size.equals(this.canvasSize_, size)) { + this.canvas_.width = size[0]; + this.canvas_.height = size[1]; + this.canvasSize_ = size + } + gl.bindFramebuffer(goog.webgl.FRAMEBUFFER, null); + gl.clearColor(0, 0, 0, 0); + gl.clear(goog.webgl.COLOR_BUFFER_BIT); + gl.enable(goog.webgl.BLEND); + gl.viewport(0, 0, size[0], size[1]); + this.bindBuffer(goog.webgl.ARRAY_BUFFER, this.arrayBuffer_); + var currentProgram = null; + var locations; + for(i = 0, ii = layersArray.length;i < ii;++i) { + layer = layersArray[i]; + layerState = frameState.layerStates[goog.getUid(layer)]; + if(!layerState.visible || !layerState.ready) { + continue + } + var useColor = layerState.brightness || layerState.contrast != 1 || layerState.hue || layerState.saturation != 1; + var fragmentShader, vertexShader; + if(useColor) { + fragmentShader = ol.renderer.webgl.map.shader.ColorFragment.getInstance(); + vertexShader = ol.renderer.webgl.map.shader.ColorVertex.getInstance() + }else { + fragmentShader = ol.renderer.webgl.map.shader.DefaultFragment.getInstance(); + vertexShader = ol.renderer.webgl.map.shader.DefaultVertex.getInstance() + } + var program = this.getProgram(fragmentShader, vertexShader); + if(program != currentProgram) { + gl.useProgram(program); + currentProgram = program; + if(useColor) { + if(goog.isNull(this.colorLocations_)) { + locations = new ol.renderer.webgl.map.shader.Color.Locations(gl, program); + this.colorLocations_ = locations + }else { + locations = this.colorLocations_ + } + }else { + if(goog.isNull(this.defaultLocations_)) { + locations = new ol.renderer.webgl.map.shader.Default.Locations(gl, program); + this.defaultLocations_ = locations + }else { + locations = this.defaultLocations_ + } + } + gl.enableVertexAttribArray(locations.a_position); + gl.vertexAttribPointer(locations.a_position, 2, goog.webgl.FLOAT, false, 16, 0); + gl.enableVertexAttribArray(locations.a_texCoord); + gl.vertexAttribPointer(locations.a_texCoord, 2, goog.webgl.FLOAT, false, 16, 8); + gl.uniform1i(locations.u_texture, 0) + } + layerRenderer = this.getLayerRenderer(layer); + gl.uniformMatrix4fv(locations.u_texCoordMatrix, false, layerRenderer.getTexCoordMatrix()); + gl.uniformMatrix4fv(locations.u_projectionMatrix, false, layerRenderer.getProjectionMatrix()); + if(useColor) { + gl.uniformMatrix4fv(locations.u_colorMatrix, false, layerRenderer.getColorMatrix(layerState.brightness, layerState.contrast, layerState.hue, layerState.saturation)) + } + gl.uniform1f(locations.u_opacity, layerState.opacity); + gl.bindTexture(goog.webgl.TEXTURE_2D, layerRenderer.getTexture()); + gl.drawArrays(goog.webgl.TRIANGLE_STRIP, 0, 4) + } + if(!this.renderedVisible_) { + goog.style.setElementShown(this.canvas_, true); + this.renderedVisible_ = true + } + this.calculateMatrices2D(frameState); + if(this.textureCache_.getCount() - this.textureCacheFrameMarkerCount_ > ol.WEBGL_TEXTURE_CACHE_HIGH_WATER_MARK) { + frameState.postRenderFunctions.push(goog.bind(this.expireCache_, this)) + } + if(!this.tileTextureQueue_.isEmpty()) { + frameState.postRenderFunctions.push(this.loadNextTileTexture_); + frameState.animate = true + } + this.scheduleRemoveUnusedLayerRenderers(frameState) +}; +goog.provide("ol.renderer.webgl.SUPPORTED"); +goog.require("ol.webgl.SUPPORTED"); +ol.renderer.webgl.SUPPORTED = ol.webgl.SUPPORTED; +goog.provide("ol.Map"); +goog.provide("ol.MapProperty"); +goog.provide("ol.RendererHint"); +goog.provide("ol.RendererHints"); +goog.require("goog.Uri.QueryData"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.require("goog.async.AnimationDelay"); +goog.require("goog.async.Delay"); +goog.require("goog.debug.Console"); +goog.require("goog.dispose"); +goog.require("goog.dom"); +goog.require("goog.dom.TagName"); +goog.require("goog.dom.ViewportSizeMonitor"); +goog.require("goog.events"); +goog.require("goog.events.BrowserEvent"); +goog.require("goog.events.Event"); +goog.require("goog.events.EventType"); +goog.require("goog.events.KeyHandler"); +goog.require("goog.events.KeyHandler.EventType"); +goog.require("goog.events.MouseWheelHandler"); +goog.require("goog.events.MouseWheelHandler.EventType"); +goog.require("goog.log"); +goog.require("goog.log.Level"); +goog.require("goog.object"); +goog.require("goog.style"); +goog.require("goog.vec.Mat4"); +goog.require("ol.BrowserFeature"); +goog.require("ol.Collection"); +goog.require("ol.FrameState"); +goog.require("ol.IView"); +goog.require("ol.MapBrowserEvent"); +goog.require("ol.MapBrowserEvent.EventType"); +goog.require("ol.MapBrowserEventHandler"); +goog.require("ol.MapEvent"); +goog.require("ol.MapEventType"); +goog.require("ol.Object"); +goog.require("ol.ObjectEventType"); +goog.require("ol.Pixel"); +goog.require("ol.PostRenderFunction"); +goog.require("ol.PreRenderFunction"); +goog.require("ol.Size"); +goog.require("ol.Tile"); +goog.require("ol.TileQueue"); +goog.require("ol.View"); +goog.require("ol.View2D"); +goog.require("ol.ViewHint"); +goog.require("ol.control"); +goog.require("ol.extent"); +goog.require("ol.interaction"); +goog.require("ol.layer.Base"); +goog.require("ol.layer.Group"); +goog.require("ol.proj"); +goog.require("ol.proj.common"); +goog.require("ol.renderer.Map"); +goog.require("ol.renderer.canvas.Map"); +goog.require("ol.renderer.canvas.SUPPORTED"); +goog.require("ol.renderer.dom.Map"); +goog.require("ol.renderer.dom.SUPPORTED"); +goog.require("ol.renderer.webgl.Map"); +goog.require("ol.renderer.webgl.SUPPORTED"); +goog.require("ol.structs.PriorityQueue"); +goog.require("ol.vec.Mat4"); +ol.ENABLE_CANVAS = true; +ol.ENABLE_DOM = true; +ol.ENABLE_WEBGL = true; +ol.RendererHint = {CANVAS:"canvas", DOM:"dom", WEBGL:"webgl"}; +ol.DEFAULT_RENDERER_HINTS = [ol.RendererHint.WEBGL, ol.RendererHint.CANVAS, ol.RendererHint.DOM]; +ol.MapProperty = {LAYERGROUP:"layergroup", SIZE:"size", TARGET:"target", VIEW:"view"}; +ol.Map = function(options) { + goog.base(this); + var optionsInternal = ol.Map.createOptionsInternal(options); + this.animationDelay_ = new goog.async.AnimationDelay(this.renderFrame_, undefined, this); + this.registerDisposable(this.animationDelay_); + this.coordinateToPixelMatrix_ = goog.vec.Mat4.createNumber(); + this.pixelToCoordinateMatrix_ = goog.vec.Mat4.createNumber(); + this.frameIndex_ = 0; + this.frameState_ = null; + this.freezeRenderingCount_ = 0; + this.dirty_ = false; + this.viewPropertyListenerKey_ = null; + this.layerGroupPropertyListenerKey_ = null; + this.viewport_ = goog.dom.createDom(goog.dom.TagName.DIV, "ol-viewport"); + this.viewport_.style.position = "relative"; + this.viewport_.style.overflow = "hidden"; + this.viewport_.style.width = "100%"; + this.viewport_.style.height = "100%"; + this.viewport_.style.msTouchAction = "none"; + if(ol.BrowserFeature.HAS_TOUCH) { + this.viewport_.className = "ol-touch" + } + this.overlayContainer_ = goog.dom.createDom(goog.dom.TagName.DIV, "ol-overlaycontainer"); + goog.events.listen(this.overlayContainer_, [goog.events.EventType.CLICK, goog.events.EventType.DBLCLICK, ol.BrowserFeature.HAS_TOUCH ? goog.events.EventType.TOUCHSTART : goog.events.EventType.MOUSEDOWN], goog.events.Event.stopPropagation); + goog.dom.appendChild(this.viewport_, this.overlayContainer_); + var mapBrowserEventHandler = new ol.MapBrowserEventHandler(this); + goog.events.listen(mapBrowserEventHandler, goog.object.getValues(ol.MapBrowserEvent.EventType), this.handleMapBrowserEvent, false, this); + this.registerDisposable(mapBrowserEventHandler); + var keyHandler = new goog.events.KeyHandler(goog.global.document); + goog.events.listen(keyHandler, goog.events.KeyHandler.EventType.KEY, this.handleBrowserEvent, false, this); + this.registerDisposable(keyHandler); + var mouseWheelHandler = new goog.events.MouseWheelHandler(this.viewport_); + goog.events.listen(mouseWheelHandler, goog.events.MouseWheelHandler.EventType.MOUSEWHEEL, this.handleBrowserEvent, false, this); + this.registerDisposable(mouseWheelHandler); + this.controls_ = optionsInternal.controls; + this.interactions_ = optionsInternal.interactions; + this.overlays_ = optionsInternal.overlays; + this.renderer_ = new optionsInternal.rendererConstructor(this.viewport_, this); + this.registerDisposable(this.renderer_); + this.viewportSizeMonitor_ = new goog.dom.ViewportSizeMonitor; + goog.events.listen(this.viewportSizeMonitor_, goog.events.EventType.RESIZE, this.updateSize, false, this); + this.focus_ = null; + this.preRenderFunctions_ = []; + this.postRenderFunctions_ = []; + this.postRenderDelay_ = new goog.async.Delay(this.handlePostRender, 0, this); + this.tileQueue_ = new ol.TileQueue(goog.bind(this.getTilePriority, this), goog.bind(this.handleTileChange_, this)); + goog.events.listen(this, ol.Object.getChangeEventType(ol.MapProperty.LAYERGROUP), this.handleLayerGroupChanged_, false, this); + goog.events.listen(this, ol.Object.getChangeEventType(ol.MapProperty.VIEW), this.handleViewChanged_, false, this); + goog.events.listen(this, ol.Object.getChangeEventType(ol.MapProperty.SIZE), this.handleSizeChanged_, false, this); + goog.events.listen(this, ol.Object.getChangeEventType(ol.MapProperty.TARGET), this.handleTargetChanged_, false, this); + this.setValues(optionsInternal.values); + this.controls_.forEach(function(control) { + control.setMap(this) + }, this); + this.overlays_.forEach(function(overlay) { + overlay.setMap(this) + }, this) +}; +goog.inherits(ol.Map, ol.Object); +ol.Map.prototype.addControl = function(control) { + var controls = this.getControls(); + goog.asserts.assert(goog.isDef(controls)); + controls.push(control); + control.setMap(this) +}; +ol.Map.prototype.addLayer = function(layer) { + var layers = this.getLayerGroup().getLayers(); + goog.asserts.assert(goog.isDef(layers)); + layers.push(layer) +}; +ol.Map.prototype.addOverlay = function(overlay) { + var overlays = this.getOverlays(); + goog.asserts.assert(goog.isDef(overlays)); + overlays.push(overlay); + overlay.setMap(this) +}; +ol.Map.prototype.beforeRender = function(var_args) { + this.requestRenderFrame(); + Array.prototype.push.apply(this.preRenderFunctions_, arguments) +}; +ol.Map.prototype.removePreRenderFunction = function(preRenderFunction) { + return goog.array.remove(this.preRenderFunctions_, preRenderFunction) +}; +ol.Map.prototype.disposeInternal = function() { + goog.dom.removeNode(this.viewport_); + goog.dispose(this.postRenderDelay_); + goog.base(this, "disposeInternal") +}; +ol.Map.prototype.freezeRendering = function() { + ++this.freezeRenderingCount_ +}; +ol.Map.prototype.getRenderer = function() { + return this.renderer_ +}; +ol.Map.prototype.getTarget = function() { + return(this.get(ol.MapProperty.TARGET)) +}; +goog.exportProperty(ol.Map.prototype, "getTarget", ol.Map.prototype.getTarget); +ol.Map.prototype.getCoordinateFromPixel = function(pixel) { + var frameState = this.frameState_; + if(goog.isNull(frameState)) { + return null + }else { + var vec2 = pixel.slice(); + return ol.vec.Mat4.multVec2(frameState.pixelToCoordinateMatrix, vec2, vec2) + } +}; +ol.Map.prototype.getControls = function() { + return this.controls_ +}; +ol.Map.prototype.getOverlays = function() { + return this.overlays_ +}; +ol.Map.prototype.getFeatureInfo = function(options) { + var layers = goog.isDefAndNotNull(options.layers) ? options.layers : this.getLayerGroup().getLayersArray(); + this.getRenderer().getFeatureInfoForPixel(options.pixel, layers, options.success, options.error) +}; +ol.Map.prototype.getFeatures = function(options) { + var layers = goog.isDefAndNotNull(options.layers) ? options.layers : this.getLayerGroup().getLayersArray(); + this.getRenderer().getFeaturesForPixel(options.pixel, layers, options.success, options.error) +}; +ol.Map.prototype.getInteractions = function() { + return this.interactions_ +}; +ol.Map.prototype.getLayerGroup = function() { + return(this.get(ol.MapProperty.LAYERGROUP)) +}; +goog.exportProperty(ol.Map.prototype, "getLayerGroup", ol.Map.prototype.getLayerGroup); +ol.Map.prototype.getLayers = function() { + return this.getLayerGroup().getLayers() +}; +ol.Map.prototype.getPixelFromCoordinate = function(coordinate) { + var frameState = this.frameState_; + if(goog.isNull(frameState)) { + return null + }else { + var vec2 = coordinate.slice(0, 2); + return ol.vec.Mat4.multVec2(frameState.coordinateToPixelMatrix, vec2, vec2) + } +}; +ol.Map.prototype.getSize = function() { + return(this.get(ol.MapProperty.SIZE)) +}; +goog.exportProperty(ol.Map.prototype, "getSize", ol.Map.prototype.getSize); +ol.Map.prototype.getView = function() { + return(this.get(ol.MapProperty.VIEW)) +}; +goog.exportProperty(ol.Map.prototype, "getView", ol.Map.prototype.getView); +ol.Map.prototype.getViewport = function() { + return this.viewport_ +}; +ol.Map.prototype.getOverlayContainer = function() { + return this.overlayContainer_ +}; +ol.Map.prototype.getTilePriority = function(tile, tileSourceKey, tileCenter, tileResolution) { + var frameState = this.frameState_; + if(goog.isNull(frameState) || !(tileSourceKey in frameState.wantedTiles)) { + return ol.structs.PriorityQueue.DROP + } + var coordKey = tile.tileCoord.toString(); + if(!frameState.wantedTiles[tileSourceKey][coordKey]) { + return ol.structs.PriorityQueue.DROP + } + var deltaX = tileCenter[0] - frameState.focus[0]; + var deltaY = tileCenter[1] - frameState.focus[1]; + return 65536 * Math.log(tileResolution) + Math.sqrt(deltaX * deltaX + deltaY * deltaY) / tileResolution +}; +ol.Map.prototype.handleBrowserEvent = function(browserEvent, opt_type) { + var type = opt_type || browserEvent.type; + var mapBrowserEvent = new ol.MapBrowserEvent(type, this, browserEvent); + this.handleMapBrowserEvent(mapBrowserEvent) +}; +ol.Map.prototype.handleMapBrowserEvent = function(mapBrowserEvent) { + if(goog.isNull(this.frameState_)) { + return + } + if(mapBrowserEvent.type == goog.events.EventType.MOUSEOUT || mapBrowserEvent.type == goog.events.EventType.TOUCHEND) { + this.focus_ = null + }else { + this.focus_ = mapBrowserEvent.getCoordinate() + } + mapBrowserEvent.frameState = this.frameState_; + var interactions = this.getInteractions(); + var interactionsArray = (interactions.getArray()); + var i; + if(this.dispatchEvent(mapBrowserEvent) !== false) { + for(i = interactionsArray.length - 1;i >= 0;i--) { + var interaction = interactionsArray[i]; + var cont = interaction.handleMapBrowserEvent(mapBrowserEvent); + if(!cont) { + break + } + } + } +}; +ol.Map.prototype.handlePostRender = function() { + var frameState = this.frameState_; + var tileQueue = this.tileQueue_; + if(!tileQueue.isEmpty()) { + var maxTotalLoading = 16; + var maxNewLoads = maxTotalLoading; + if(!goog.isNull(frameState)) { + var hints = frameState.viewHints; + if(hints[ol.ViewHint.ANIMATING] || hints[ol.ViewHint.INTERACTING]) { + maxTotalLoading = 8; + maxNewLoads = 2 + } + } + var tileSourceCount = goog.object.getCount(frameState.wantedTiles); + maxTotalLoading *= tileSourceCount; + maxNewLoads *= tileSourceCount; + if(tileQueue.getTilesLoading() < maxTotalLoading) { + tileQueue.reprioritize(); + tileQueue.loadMoreTiles(maxTotalLoading, maxNewLoads) + } + } + var postRenderFunctions = this.postRenderFunctions_; + var i, ii; + for(i = 0, ii = postRenderFunctions.length;i < ii;++i) { + postRenderFunctions[i](this, frameState) + } + postRenderFunctions.length = 0 +}; +ol.Map.prototype.handleSizeChanged_ = function() { + this.render() +}; +ol.Map.prototype.handleTargetChanged_ = function() { + var target = this.getTarget(); + var targetElement = goog.isDef(target) ? goog.dom.getElement(target) : null; + if(goog.isNull(targetElement)) { + goog.dom.removeNode(this.viewport_) + }else { + goog.dom.appendChild(targetElement, this.viewport_) + } + this.updateSize() +}; +ol.Map.prototype.handleTileChange_ = function() { + this.requestRenderFrame() +}; +ol.Map.prototype.handleViewPropertyChanged_ = function() { + this.render() +}; +ol.Map.prototype.handleViewChanged_ = function() { + if(!goog.isNull(this.viewPropertyListenerKey_)) { + goog.events.unlistenByKey(this.viewPropertyListenerKey_); + this.viewPropertyListenerKey_ = null + } + var view = this.getView(); + if(goog.isDefAndNotNull(view)) { + this.viewPropertyListenerKey_ = goog.events.listen(view, ol.ObjectEventType.CHANGE, this.handleViewPropertyChanged_, false, this) + } + this.render() +}; +ol.Map.prototype.handleLayerGroupPropertyChanged_ = function(event) { + this.render() +}; +ol.Map.prototype.handleLayerGroupChanged_ = function() { + if(!goog.isNull(this.layerGroupPropertyListenerKey_)) { + goog.events.unlistenByKey(this.layerGroupPropertyListenerKey_); + this.layerGroupPropertyListenerKey_ = null + } + var layerGroup = this.getLayerGroup(); + if(goog.isDefAndNotNull(layerGroup)) { + this.layerGroupPropertyListenerKey_ = goog.events.listen(layerGroup, ol.ObjectEventType.CHANGE, this.handleLayerGroupPropertyChanged_, false, this) + } + this.render() +}; +ol.Map.prototype.isDef = function() { + var view = this.getView(); + return goog.isDef(view) && view.isDef() && goog.isDefAndNotNull(this.getSize()) +}; +ol.Map.prototype.render = function() { + if(this.animationDelay_.isActive()) { + }else { + if(this.freezeRenderingCount_ === 0) { + this.animationDelay_.fire() + }else { + this.dirty_ = true + } + } +}; +ol.Map.prototype.requestRenderFrame = function() { + if(this.freezeRenderingCount_ === 0) { + if(!this.animationDelay_.isActive()) { + this.animationDelay_.start() + } + }else { + this.dirty_ = true + } +}; +ol.Map.prototype.removeControl = function(control) { + var controls = this.getControls(); + goog.asserts.assert(goog.isDef(controls)); + if(goog.isDef(controls.remove(control))) { + control.setMap(null); + return control + } + return undefined +}; +ol.Map.prototype.removeLayer = function(layer) { + var layers = this.getLayerGroup().getLayers(); + goog.asserts.assert(goog.isDef(layers)); + return(layers.remove(layer)) +}; +ol.Map.prototype.removeOverlay = function(overlay) { + var overlays = this.getOverlays(); + goog.asserts.assert(goog.isDef(overlays)); + if(goog.isDef(overlays.remove(overlay))) { + overlay.setMap(null); + return overlay + } + return undefined +}; +ol.Map.prototype.renderFrame_ = function(time) { + var i, ii, view2DState; + if(this.freezeRenderingCount_ !== 0) { + return + } + var size = this.getSize(); + var view = this.getView(); + var view2D = goog.isDef(view) ? this.getView().getView2D() : undefined; + var frameState = null; + if(goog.isDef(size) && goog.isDef(view2D) && view2D.isDef()) { + var viewHints = view.getHints(); + var obj = this.getLayerGroup().getLayerStatesArray(); + var layersArray = obj.layers; + var layerStatesArray = obj.layerStates; + var layerStates = {}; + var layer; + for(i = 0, ii = layersArray.length;i < ii;++i) { + layer = layersArray[i]; + layerStates[goog.getUid(layer)] = layerStatesArray[i] + } + view2DState = view2D.getView2DState(); + frameState = {animate:false, attributions:{}, coordinateToPixelMatrix:this.coordinateToPixelMatrix_, extent:null, focus:goog.isNull(this.focus_) ? view2DState.center : this.focus_, index:this.frameIndex_++, layersArray:layersArray, layerStates:layerStates, logos:{}, pixelToCoordinateMatrix:this.pixelToCoordinateMatrix_, postRenderFunctions:[], size:size, tileQueue:this.tileQueue_, time:time, usedTiles:{}, view2DState:view2DState, viewHints:viewHints, wantedTiles:{}} + } + var preRenderFunctions = this.preRenderFunctions_; + var n = 0, preRenderFunction; + for(i = 0, ii = preRenderFunctions.length;i < ii;++i) { + preRenderFunction = preRenderFunctions[i]; + if(preRenderFunction(this, frameState)) { + preRenderFunctions[n++] = preRenderFunction + } + } + preRenderFunctions.length = n; + if(!goog.isNull(frameState)) { + frameState.extent = ol.extent.getForView2DAndSize(view2DState.center, view2DState.resolution, view2DState.rotation, frameState.size) + } + this.frameState_ = frameState; + this.renderer_.renderFrame(frameState); + this.dirty_ = false; + if(!goog.isNull(frameState)) { + if(frameState.animate) { + this.requestRenderFrame() + } + Array.prototype.push.apply(this.postRenderFunctions_, frameState.postRenderFunctions); + var idle = this.preRenderFunctions_.length == 0 && !frameState.animate && !frameState.viewHints[ol.ViewHint.ANIMATING] && !frameState.viewHints[ol.ViewHint.INTERACTING]; + if(idle) { + this.dispatchEvent(new ol.MapEvent(ol.MapEventType.MOVEEND, this)) + } + } + this.dispatchEvent(new ol.MapEvent(ol.MapEventType.POSTRENDER, this, frameState)); + if(!this.postRenderDelay_.isActive()) { + this.postRenderDelay_.start() + } +}; +ol.Map.prototype.setLayerGroup = function(layerGroup) { + this.set(ol.MapProperty.LAYERGROUP, layerGroup) +}; +goog.exportProperty(ol.Map.prototype, "setLayerGroup", ol.Map.prototype.setLayerGroup); +ol.Map.prototype.setSize = function(size) { + this.set(ol.MapProperty.SIZE, size) +}; +goog.exportProperty(ol.Map.prototype, "setSize", ol.Map.prototype.setSize); +ol.Map.prototype.setTarget = function(target) { + this.set(ol.MapProperty.TARGET, target) +}; +goog.exportProperty(ol.Map.prototype, "setTarget", ol.Map.prototype.setTarget); +ol.Map.prototype.setView = function(view) { + this.set(ol.MapProperty.VIEW, view) +}; +goog.exportProperty(ol.Map.prototype, "setView", ol.Map.prototype.setView); +ol.Map.prototype.unfreezeRendering = function() { + goog.asserts.assert(this.freezeRenderingCount_ > 0); + if(--this.freezeRenderingCount_ === 0 && this.dirty_) { + this.animationDelay_.fire() + } +}; +ol.Map.prototype.updateSize = function() { + var target = this.getTarget(); + var targetElement = goog.isDef(target) ? goog.dom.getElement(target) : null; + if(goog.isNull(targetElement)) { + this.setSize(undefined) + }else { + var size = goog.style.getSize(targetElement); + this.setSize([size.width, size.height]) + } +}; +ol.Map.prototype.withFrozenRendering = function(f, opt_obj) { + this.freezeRendering(); + try { + f.call(opt_obj) + }finally { + this.unfreezeRendering() + } +}; +ol.MapOptionsInternal; +ol.Map.createOptionsInternal = function(options) { + var values = {}; + var layerGroup = options.layers instanceof ol.layer.Group ? options.layers : new ol.layer.Group({layers:options.layers}); + values[ol.MapProperty.LAYERGROUP] = layerGroup; + values[ol.MapProperty.TARGET] = options.target; + values[ol.MapProperty.VIEW] = goog.isDef(options.view) ? options.view : new ol.View2D; + var rendererConstructor = ol.renderer.Map; + var rendererHints; + if(goog.isDef(options.renderers)) { + rendererHints = options.renderers + }else { + if(goog.isDef(options.renderer)) { + rendererHints = [options.renderer] + }else { + rendererHints = ol.DEFAULT_RENDERER_HINTS + } + } + var n = rendererHints.length; + var i, rendererHint; + for(i = 0;i < n;++i) { + rendererHint = rendererHints[i]; + if(rendererHint == ol.RendererHint.CANVAS) { + if(ol.ENABLE_CANVAS && ol.renderer.canvas.SUPPORTED) { + rendererConstructor = ol.renderer.canvas.Map; + break + } + }else { + if(rendererHint == ol.RendererHint.DOM) { + if(ol.ENABLE_DOM && ol.renderer.dom.SUPPORTED) { + rendererConstructor = ol.renderer.dom.Map; + break + } + }else { + if(rendererHint == ol.RendererHint.WEBGL) { + if(ol.ENABLE_WEBGL && ol.renderer.webgl.SUPPORTED) { + rendererConstructor = ol.renderer.webgl.Map; + break + } + } + } + } + } + var controls; + if(goog.isDef(options.controls)) { + if(goog.isArray(options.controls)) { + controls = new ol.Collection(goog.array.clone(options.controls)) + }else { + goog.asserts.assertInstanceof(options.controls, ol.Collection); + controls = options.controls + } + }else { + controls = ol.control.defaults() + } + var interactions = goog.isDef(options.interactions) ? options.interactions : ol.interaction.defaults(); + var overlays; + if(goog.isDef(options.overlays)) { + if(goog.isArray(options.overlays)) { + overlays = new ol.Collection(goog.array.clone(options.overlays)) + }else { + goog.asserts.assertInstanceof(options.overlays, ol.Collection); + overlays = options.overlays + } + }else { + overlays = new ol.Collection + } + return{controls:controls, interactions:interactions, overlays:overlays, rendererConstructor:rendererConstructor, values:values} +}; +ol.RendererHints.createFromQueryData = function(opt_queryData) { + var query = goog.global.location.search.substring(1), queryData = goog.isDef(opt_queryData) ? opt_queryData : new goog.Uri.QueryData(query); + if(queryData.containsKey("renderers")) { + return queryData.get("renderers").split(",") + }else { + if(queryData.containsKey("renderer")) { + return[queryData.get("renderer")] + }else { + return ol.DEFAULT_RENDERER_HINTS + } + } +}; +ol.proj.common.add(); +if(goog.DEBUG) { + (function() { + goog.debug.Console.autoInstall(); + var logger = goog.log.getLogger("ol"); + logger.setLevel(goog.log.Level.FINEST) + })() +} +;goog.provide("ol.Overlay"); +goog.provide("ol.OverlayPositioning"); +goog.provide("ol.OverlayProperty"); +goog.require("goog.asserts"); +goog.require("goog.dom"); +goog.require("goog.dom.TagName"); +goog.require("goog.events"); +goog.require("goog.style"); +goog.require("ol.Coordinate"); +goog.require("ol.Map"); +goog.require("ol.MapEventType"); +goog.require("ol.Object"); +ol.OverlayProperty = {ELEMENT:"element", MAP:"map", POSITION:"position", POSITIONING:"positioning"}; +ol.OverlayPositioning = {BOTTOM_LEFT:"bottom-left", BOTTOM_RIGHT:"bottom-right", TOP_LEFT:"top-left", TOP_RIGHT:"top-right"}; +ol.Overlay = function(options) { + goog.base(this); + this.element_ = goog.dom.createElement(goog.dom.TagName.DIV); + this.element_.style.position = "absolute"; + this.rendered_ = {bottom_:"", left_:"", right_:"", top_:"", visible:true}; + this.mapPostrenderListenerKey_ = null; + goog.events.listen(this, ol.Object.getChangeEventType(ol.OverlayProperty.ELEMENT), this.handleElementChanged, false, this); + goog.events.listen(this, ol.Object.getChangeEventType(ol.OverlayProperty.MAP), this.handleMapChanged, false, this); + goog.events.listen(this, ol.Object.getChangeEventType(ol.OverlayProperty.POSITION), this.handlePositionChanged, false, this); + goog.events.listen(this, ol.Object.getChangeEventType(ol.OverlayProperty.POSITIONING), this.handlePositioningChanged, false, this); + if(goog.isDef(options.element)) { + this.setElement(options.element) + } + if(goog.isDef(options.position)) { + this.setPosition(options.position) + } + if(goog.isDef(options.positioning)) { + this.setPositioning(options.positioning) + } +}; +goog.inherits(ol.Overlay, ol.Object); +ol.Overlay.prototype.getElement = function() { + return(this.get(ol.OverlayProperty.ELEMENT)) +}; +goog.exportProperty(ol.Overlay.prototype, "getElement", ol.Overlay.prototype.getElement); +ol.Overlay.prototype.getMap = function() { + return(this.get(ol.OverlayProperty.MAP)) +}; +goog.exportProperty(ol.Overlay.prototype, "getMap", ol.Overlay.prototype.getMap); +ol.Overlay.prototype.getPosition = function() { + return(this.get(ol.OverlayProperty.POSITION)) +}; +goog.exportProperty(ol.Overlay.prototype, "getPosition", ol.Overlay.prototype.getPosition); +ol.Overlay.prototype.getPositioning = function() { + return(this.get(ol.OverlayProperty.POSITIONING)) +}; +goog.exportProperty(ol.Overlay.prototype, "getPositioning", ol.Overlay.prototype.getPositioning); +ol.Overlay.prototype.handleElementChanged = function() { + goog.dom.removeChildren(this.element_); + var element = this.getElement(); + if(goog.isDefAndNotNull(element)) { + goog.dom.append((this.element_), element) + } +}; +ol.Overlay.prototype.handleMapChanged = function() { + if(!goog.isNull(this.mapPostrenderListenerKey_)) { + goog.dom.removeNode(this.element_); + goog.events.unlistenByKey(this.mapPostrenderListenerKey_); + this.mapPostrenderListenerKey_ = null + } + var map = this.getMap(); + if(goog.isDefAndNotNull(map)) { + this.mapPostrenderListenerKey_ = goog.events.listen(map, ol.MapEventType.POSTRENDER, this.handleMapPostrender, false, this); + this.updatePixelPosition_(); + goog.dom.append((map.getOverlayContainer()), this.element_) + } +}; +ol.Overlay.prototype.handleMapPostrender = function() { + this.updatePixelPosition_() +}; +ol.Overlay.prototype.handlePositionChanged = function() { + this.updatePixelPosition_() +}; +ol.Overlay.prototype.handlePositioningChanged = function() { + this.updatePixelPosition_() +}; +ol.Overlay.prototype.setElement = function(element) { + this.set(ol.OverlayProperty.ELEMENT, element) +}; +goog.exportProperty(ol.Overlay.prototype, "setElement", ol.Overlay.prototype.setElement); +ol.Overlay.prototype.setMap = function(map) { + this.set(ol.OverlayProperty.MAP, map) +}; +goog.exportProperty(ol.Overlay.prototype, "setMap", ol.Overlay.prototype.setMap); +ol.Overlay.prototype.setPosition = function(position) { + this.set(ol.OverlayProperty.POSITION, position) +}; +goog.exportProperty(ol.Overlay.prototype, "setPosition", ol.Overlay.prototype.setPosition); +ol.Overlay.prototype.setPositioning = function(positioning) { + this.set(ol.OverlayProperty.POSITIONING, positioning) +}; +ol.Overlay.prototype.updatePixelPosition_ = function() { + var map = this.getMap(); + var position = this.getPosition(); + if(!goog.isDef(map) || !map.isDef() || !goog.isDef(position)) { + if(this.rendered_.visible) { + goog.style.setElementShown(this.element_, false); + this.rendered_.visible = false + } + return + } + var pixel = map.getPixelFromCoordinate(position); + var mapSize = map.getSize(); + goog.asserts.assert(goog.isDef(mapSize)); + var style = this.element_.style; + var positioning = this.getPositioning(); + if(positioning == ol.OverlayPositioning.BOTTOM_RIGHT || positioning == ol.OverlayPositioning.TOP_RIGHT) { + if(this.rendered_.left_ !== "") { + this.rendered_.left_ = style.left = "" + } + var right = Math.round(mapSize[0] - pixel[0]) + "px"; + if(this.rendered_.right_ != right) { + this.rendered_.right_ = style.right = right + } + }else { + if(this.rendered_.right_ !== "") { + this.rendered_.right_ = style.right = "" + } + var left = Math.round(pixel[0]) + "px"; + if(this.rendered_.left_ != left) { + this.rendered_.left_ = style.left = left + } + } + if(positioning == ol.OverlayPositioning.TOP_LEFT || positioning == ol.OverlayPositioning.TOP_RIGHT) { + if(this.rendered_.bottom_ !== "") { + this.rendered_.bottom_ = style.bottom = "" + } + var top = Math.round(pixel[1]) + "px"; + if(this.rendered_.top_ != top) { + this.rendered_.top_ = style.top = top + } + }else { + if(this.rendered_.top_ !== "") { + this.rendered_.top_ = style.top = "" + } + var bottom = Math.round(mapSize[1] - pixel[1]) + "px"; + if(this.rendered_.bottom_ != bottom) { + this.rendered_.bottom_ = style.bottom = bottom + } + } + if(!this.rendered_.visible) { + goog.style.setElementShown(this.element_, true); + this.rendered_.visible = true + } +}; +goog.provide("ol.TileUrlFunction"); +goog.provide("ol.TileUrlFunctionType"); +goog.require("goog.array"); +goog.require("goog.math"); +goog.require("ol.TileCoord"); +goog.require("ol.extent"); +ol.TileUrlFunctionType; +ol.TileCoordTransformType; +ol.TileUrlFunction.createFromTemplate = function(template) { + return function(tileCoord, projection) { + if(goog.isNull(tileCoord)) { + return undefined + }else { + return template.replace("{z}", "" + tileCoord.z).replace("{x}", "" + tileCoord.x).replace("{y}", "" + tileCoord.y) + } + } +}; +ol.TileUrlFunction.createFromTemplates = function(templates) { + return ol.TileUrlFunction.createFromTileUrlFunctions(goog.array.map(templates, ol.TileUrlFunction.createFromTemplate)) +}; +ol.TileUrlFunction.createFromTileUrlFunctions = function(tileUrlFunctions) { + if(tileUrlFunctions.length === 1) { + return tileUrlFunctions[0] + } + return function(tileCoord, projection) { + if(goog.isNull(tileCoord)) { + return undefined + }else { + var index = goog.math.modulo(tileCoord.hash(), tileUrlFunctions.length); + return tileUrlFunctions[index].call(this, tileCoord, projection) + } + } +}; +ol.TileUrlFunction.createFromParamsFunction = function(baseUrl, params, paramsFunction) { + var tmpExtent = ol.extent.createEmpty(); + return function(tileCoord, projection) { + if(goog.isNull(tileCoord)) { + return undefined + }else { + var tileGrid = this.getTileGrid(); + if(goog.isNull(tileGrid)) { + tileGrid = ol.tilegrid.getForProjection(projection) + } + var size = tileGrid.getTileSize(tileCoord.z); + var extent = tileGrid.getTileCoordExtent(tileCoord, tmpExtent); + return paramsFunction.call(this, baseUrl, params, extent, size, projection) + } + } +}; +ol.TileUrlFunction.nullTileUrlFunction = function(tileCoord, projection) { + return undefined +}; +ol.TileUrlFunction.withTileCoordTransform = function(transformFn, tileUrlFunction) { + var tmpTileCoord = new ol.TileCoord(0, 0, 0); + return function(tileCoord, projection) { + if(goog.isNull(tileCoord)) { + return undefined + }else { + return tileUrlFunction.call(this, transformFn.call(this, tileCoord, projection, tmpTileCoord), projection) + } + } +}; +ol.TileUrlFunction.expandUrl = function(url) { + var urls = []; + var match = /\{(\d)-(\d)\}/.exec(url) || /\{([a-z])-([a-z])\}/.exec(url); + if(match) { + var startCharCode = match[1].charCodeAt(0); + var stopCharCode = match[2].charCodeAt(0); + var charCode; + for(charCode = startCharCode;charCode <= stopCharCode;++charCode) { + urls.push(url.replace(match[0], String.fromCharCode(charCode))) + } + }else { + urls.push(url) + } + return urls +}; +goog.provide("goog.userAgent.product"); +goog.require("goog.userAgent"); +goog.define("goog.userAgent.product.ASSUME_FIREFOX", false); +goog.define("goog.userAgent.product.ASSUME_CAMINO", false); +goog.define("goog.userAgent.product.ASSUME_IPHONE", false); +goog.define("goog.userAgent.product.ASSUME_IPAD", false); +goog.define("goog.userAgent.product.ASSUME_ANDROID", false); +goog.define("goog.userAgent.product.ASSUME_CHROME", false); +goog.define("goog.userAgent.product.ASSUME_SAFARI", false); +goog.userAgent.product.PRODUCT_KNOWN_ = goog.userAgent.ASSUME_IE || goog.userAgent.ASSUME_OPERA || goog.userAgent.product.ASSUME_FIREFOX || goog.userAgent.product.ASSUME_CAMINO || goog.userAgent.product.ASSUME_IPHONE || goog.userAgent.product.ASSUME_IPAD || goog.userAgent.product.ASSUME_ANDROID || goog.userAgent.product.ASSUME_CHROME || goog.userAgent.product.ASSUME_SAFARI; +goog.userAgent.product.init_ = function() { + goog.userAgent.product.detectedFirefox_ = false; + goog.userAgent.product.detectedCamino_ = false; + goog.userAgent.product.detectedIphone_ = false; + goog.userAgent.product.detectedIpad_ = false; + goog.userAgent.product.detectedAndroid_ = false; + goog.userAgent.product.detectedChrome_ = false; + goog.userAgent.product.detectedSafari_ = false; + var ua = goog.userAgent.getUserAgentString(); + if(!ua) { + return + } + if(ua.indexOf("Firefox") != -1) { + goog.userAgent.product.detectedFirefox_ = true + }else { + if(ua.indexOf("Camino") != -1) { + goog.userAgent.product.detectedCamino_ = true + }else { + if(ua.indexOf("iPhone") != -1 || ua.indexOf("iPod") != -1) { + goog.userAgent.product.detectedIphone_ = true + }else { + if(ua.indexOf("iPad") != -1) { + goog.userAgent.product.detectedIpad_ = true + }else { + if(ua.indexOf("Android") != -1) { + goog.userAgent.product.detectedAndroid_ = true + }else { + if(ua.indexOf("Chrome") != -1) { + goog.userAgent.product.detectedChrome_ = true + }else { + if(ua.indexOf("Safari") != -1) { + goog.userAgent.product.detectedSafari_ = true + } + } + } + } + } + } + } +}; +if(!goog.userAgent.product.PRODUCT_KNOWN_) { + goog.userAgent.product.init_() +} +goog.userAgent.product.OPERA = goog.userAgent.OPERA; +goog.userAgent.product.IE = goog.userAgent.IE; +goog.userAgent.product.FIREFOX = goog.userAgent.product.PRODUCT_KNOWN_ ? goog.userAgent.product.ASSUME_FIREFOX : goog.userAgent.product.detectedFirefox_; +goog.userAgent.product.CAMINO = goog.userAgent.product.PRODUCT_KNOWN_ ? goog.userAgent.product.ASSUME_CAMINO : goog.userAgent.product.detectedCamino_; +goog.userAgent.product.IPHONE = goog.userAgent.product.PRODUCT_KNOWN_ ? goog.userAgent.product.ASSUME_IPHONE : goog.userAgent.product.detectedIphone_; +goog.userAgent.product.IPAD = goog.userAgent.product.PRODUCT_KNOWN_ ? goog.userAgent.product.ASSUME_IPAD : goog.userAgent.product.detectedIpad_; +goog.userAgent.product.ANDROID = goog.userAgent.product.PRODUCT_KNOWN_ ? goog.userAgent.product.ASSUME_ANDROID : goog.userAgent.product.detectedAndroid_; +goog.userAgent.product.CHROME = goog.userAgent.product.PRODUCT_KNOWN_ ? goog.userAgent.product.ASSUME_CHROME : goog.userAgent.product.detectedChrome_; +goog.userAgent.product.SAFARI = goog.userAgent.product.PRODUCT_KNOWN_ ? goog.userAgent.product.ASSUME_SAFARI : goog.userAgent.product.detectedSafari_; +goog.provide("goog.dom.fullscreen"); +goog.provide("goog.dom.fullscreen.EventType"); +goog.require("goog.dom"); +goog.require("goog.userAgent"); +goog.require("goog.userAgent.product"); +goog.dom.fullscreen.EventType = {CHANGE:goog.userAgent.WEBKIT ? "webkitfullscreenchange" : "mozfullscreenchange"}; +goog.dom.fullscreen.isSupported = function(opt_domHelper) { + var doc = goog.dom.fullscreen.getDocument_(opt_domHelper); + var body = doc.body; + return!!body.webkitRequestFullScreen || !!body.mozRequestFullScreen && doc.mozFullScreenEnabled +}; +goog.dom.fullscreen.requestFullScreen = function(element) { + if(element.webkitRequestFullScreen) { + element.webkitRequestFullScreen() + }else { + if(element.mozRequestFullScreen) { + element.mozRequestFullScreen() + } + } +}; +goog.dom.fullscreen.requestFullScreenWithKeys = function(element) { + if(element.mozRequestFullScreenWithKeys) { + element.mozRequestFullScreenWithKeys() + }else { + if(element.webkitRequestFullScreen && element.ALLOW_KEYBOARD_INPUT && goog.userAgent.product.CHROME) { + element.webkitRequestFullScreen(element.ALLOW_KEYBOARD_INPUT) + }else { + goog.dom.fullscreen.requestFullScreen(element) + } + } +}; +goog.dom.fullscreen.exitFullScreen = function(opt_domHelper) { + var doc = goog.dom.fullscreen.getDocument_(opt_domHelper); + if(doc.webkitCancelFullScreen) { + doc.webkitCancelFullScreen() + }else { + if(doc.mozCancelFullScreen) { + doc.mozCancelFullScreen() + } + } +}; +goog.dom.fullscreen.isFullScreen = function(opt_domHelper) { + var doc = goog.dom.fullscreen.getDocument_(opt_domHelper); + return!!doc.webkitIsFullScreen || !!doc.mozFullScreen +}; +goog.dom.fullscreen.getDocument_ = function(opt_domHelper) { + return opt_domHelper ? opt_domHelper.getDocument() : goog.dom.getDomHelper().getDocument() +}; +goog.provide("ol.control.FullScreen"); +goog.require("goog.asserts"); +goog.require("goog.dom"); +goog.require("goog.dom.TagName"); +goog.require("goog.dom.classes"); +goog.require("goog.dom.fullscreen"); +goog.require("goog.dom.fullscreen.EventType"); +goog.require("goog.events"); +goog.require("goog.events.EventType"); +goog.require("ol.control.Control"); +goog.require("ol.css"); +ol.control.FullScreen = function(opt_options) { + var options = goog.isDef(opt_options) ? opt_options : {}; + this.cssClassName_ = goog.isDef(options.className) ? options.className : "ol-full-screen"; + var aElement = goog.dom.createDom(goog.dom.TagName.A, {"href":"#fullScreen", "class":this.cssClassName_ + "-" + goog.dom.fullscreen.isFullScreen()}); + goog.events.listen(aElement, [goog.events.EventType.CLICK, goog.events.EventType.TOUCHEND], this.handleClick_, false, this); + goog.events.listen(goog.global.document, goog.dom.fullscreen.EventType.CHANGE, this.handleFullScreenChange_, false, this); + var element = goog.dom.createDom(goog.dom.TagName.DIV, {"class":this.cssClassName_ + " " + ol.css.CLASS_UNSELECTABLE + " " + (!goog.dom.fullscreen.isSupported() ? ol.css.CLASS_UNSUPPORTED : "")}, aElement); + goog.base(this, {element:element, target:options.target}); + this.keys_ = goog.isDef(options.keys) ? options.keys : false +}; +goog.inherits(ol.control.FullScreen, ol.control.Control); +ol.control.FullScreen.prototype.handleClick_ = function(browserEvent) { + if(!goog.dom.fullscreen.isSupported()) { + return + } + browserEvent.preventDefault(); + var map = this.getMap(); + if(goog.isNull(map)) { + return + } + if(goog.dom.fullscreen.isFullScreen()) { + goog.dom.fullscreen.exitFullScreen() + }else { + var target = map.getTarget(); + goog.asserts.assert(goog.isDefAndNotNull(target)); + var element = goog.dom.getElement(target); + goog.asserts.assert(goog.isDefAndNotNull(element)); + if(this.keys_) { + goog.dom.fullscreen.requestFullScreenWithKeys(element) + }else { + goog.dom.fullscreen.requestFullScreen(element) + } + } +}; +ol.control.FullScreen.prototype.handleFullScreenChange_ = function() { + var opened = this.cssClassName_ + "-true"; + var closed = this.cssClassName_ + "-false"; + var anchor = goog.dom.getFirstElementChild(this.element); + if(goog.dom.fullscreen.isFullScreen()) { + goog.dom.classes.swap(anchor, closed, opened) + }else { + goog.dom.classes.swap(anchor, opened, closed) + } +}; +goog.provide("ol.control.MousePosition"); +goog.require("goog.array"); +goog.require("goog.dom"); +goog.require("goog.dom.TagName"); +goog.require("goog.events"); +goog.require("goog.events.EventType"); +goog.require("goog.style"); +goog.require("ol.CoordinateFormatType"); +goog.require("ol.Object"); +goog.require("ol.Pixel"); +goog.require("ol.Projection"); +goog.require("ol.TransformFunction"); +goog.require("ol.control.Control"); +goog.require("ol.proj"); +ol.control.MousePositionProperty = {PROJECTION:"projection", COORDINATE_FORMAT:"coordinateFormat"}; +ol.control.MousePosition = function(opt_options) { + var options = goog.isDef(opt_options) ? opt_options : {}; + var className = goog.isDef(options.className) ? options.className : "ol-mouse-position"; + var element = goog.dom.createDom(goog.dom.TagName.DIV, {"class":className}); + goog.base(this, {element:element, target:options.target}); + goog.events.listen(this, ol.Object.getChangeEventType(ol.control.MousePositionProperty.PROJECTION), this.handleProjectionChanged_, false, this); + if(goog.isDef(options.coordinateFormat)) { + this.setCoordinateFormat(options.coordinateFormat) + } + if(goog.isDef(options.projection)) { + this.setProjection(ol.proj.get(options.projection)) + } + this.undefinedHTML_ = goog.isDef(options.undefinedHTML) ? options.undefinedHTML : ""; + this.renderedHTML_ = element.innerHTML; + this.mapProjection_ = null; + this.transform_ = null; + this.lastMouseMovePixel_ = null +}; +goog.inherits(ol.control.MousePosition, ol.control.Control); +ol.control.MousePosition.prototype.handleMapPostrender = function(mapEvent) { + var frameState = mapEvent.frameState; + if(goog.isNull(frameState)) { + this.mapProjection_ = null + }else { + if(this.mapProjection_ != frameState.view2DState.projection) { + this.mapProjection_ = frameState.view2DState.projection; + this.transform_ = null + } + } + this.updateHTML_(this.lastMouseMovePixel_) +}; +ol.control.MousePosition.prototype.handleProjectionChanged_ = function() { + this.transform_ = null +}; +ol.control.MousePosition.prototype.getCoordinateFormat = function() { + return(this.get(ol.control.MousePositionProperty.COORDINATE_FORMAT)) +}; +goog.exportProperty(ol.control.MousePosition.prototype, "getCoordinateFormat", ol.control.MousePosition.prototype.getCoordinateFormat); +ol.control.MousePosition.prototype.getProjection = function() { + return(this.get(ol.control.MousePositionProperty.PROJECTION)) +}; +goog.exportProperty(ol.control.MousePosition.prototype, "getProjection", ol.control.MousePosition.prototype.getProjection); +ol.control.MousePosition.prototype.handleMouseMove = function(browserEvent) { + var map = this.getMap(); + var eventPosition = goog.style.getRelativePosition(browserEvent, map.getViewport()); + this.lastMouseMovePixel_ = [eventPosition.x, eventPosition.y]; + this.updateHTML_(this.lastMouseMovePixel_) +}; +ol.control.MousePosition.prototype.handleMouseOut = function(browserEvent) { + this.updateHTML_(null); + this.lastMouseMovePixel_ = null +}; +ol.control.MousePosition.prototype.setMap = function(map) { + goog.base(this, "setMap", map); + if(!goog.isNull(map)) { + var viewport = map.getViewport(); + this.listenerKeys.push(goog.events.listen(viewport, goog.events.EventType.MOUSEMOVE, this.handleMouseMove, false, this), goog.events.listen(viewport, goog.events.EventType.MOUSEOUT, this.handleMouseOut, false, this)) + } +}; +ol.control.MousePosition.prototype.setCoordinateFormat = function(format) { + this.set(ol.control.MousePositionProperty.COORDINATE_FORMAT, format) +}; +goog.exportProperty(ol.control.MousePosition.prototype, "setCoordinateFormat", ol.control.MousePosition.prototype.setCoordinateFormat); +ol.control.MousePosition.prototype.setProjection = function(projection) { + this.set(ol.control.MousePositionProperty.PROJECTION, projection) +}; +goog.exportProperty(ol.control.MousePosition.prototype, "setProjection", ol.control.MousePosition.prototype.setProjection); +ol.control.MousePosition.prototype.updateHTML_ = function(pixel) { + var html = this.undefinedHTML_; + if(!goog.isNull(pixel) && !goog.isNull(this.mapProjection_)) { + if(goog.isNull(this.transform_)) { + var projection = this.getProjection(); + if(goog.isDef(projection)) { + this.transform_ = ol.proj.getTransformFromProjections(this.mapProjection_, projection) + }else { + this.transform_ = ol.proj.identityTransform + } + } + var map = this.getMap(); + var coordinate = map.getCoordinateFromPixel(pixel); + if(!goog.isNull(coordinate)) { + this.transform_(coordinate, coordinate); + var coordinateFormat = this.getCoordinateFormat(); + if(goog.isDef(coordinateFormat)) { + html = coordinateFormat(coordinate) + }else { + html = coordinate.toString() + } + } + } + if(!goog.isDef(this.renderedHTML_) || html != this.renderedHTML_) { + this.element.innerHTML = html; + this.renderedHTML_ = html + } +}; +goog.provide("ol.control.ScaleLine"); +goog.provide("ol.control.ScaleLineProperty"); +goog.provide("ol.control.ScaleLineUnits"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.require("goog.dom"); +goog.require("goog.dom.TagName"); +goog.require("goog.events"); +goog.require("goog.math"); +goog.require("goog.style"); +goog.require("ol.Object"); +goog.require("ol.ProjectionUnits"); +goog.require("ol.TransformFunction"); +goog.require("ol.View2DState"); +goog.require("ol.control.Control"); +goog.require("ol.css"); +goog.require("ol.proj"); +goog.require("ol.sphere.NORMAL"); +ol.control.ScaleLineProperty = {UNITS:"units"}; +ol.control.ScaleLineUnits = {DEGREES:"degrees", IMPERIAL:"imperial", NAUTICAL:"nautical", METRIC:"metric", US:"us"}; +ol.control.ScaleLine = function(opt_options) { + var options = opt_options || {}; + var className = goog.isDef(options.className) ? options.className : "ol-scale-line"; + this.innerElement_ = goog.dom.createDom(goog.dom.TagName.DIV, {"class":className + "-inner"}); + this.element_ = goog.dom.createDom(goog.dom.TagName.DIV, {"class":className + " " + ol.css.CLASS_UNSELECTABLE}, this.innerElement_); + this.view2DState_ = null; + this.minWidth_ = goog.isDef(options.minWidth) ? options.minWidth : 64; + this.renderedVisible_ = false; + this.renderedWidth_ = undefined; + this.renderedHTML_ = ""; + this.toEPSG4326_ = null; + goog.base(this, {element:this.element_, target:options.target}); + goog.events.listen(this, ol.Object.getChangeEventType(ol.control.ScaleLineProperty.UNITS), this.handleUnitsChanged_, false, this); + this.setUnits(options.units || ol.control.ScaleLineUnits.METRIC) +}; +goog.inherits(ol.control.ScaleLine, ol.control.Control); +ol.control.ScaleLine.LEADING_DIGITS = [1, 2, 5]; +ol.control.ScaleLine.prototype.getUnits = function() { + return(this.get(ol.control.ScaleLineProperty.UNITS)) +}; +goog.exportProperty(ol.control.ScaleLine.prototype, "getUnits", ol.control.ScaleLine.prototype.getUnits); +ol.control.ScaleLine.prototype.handleMapPostrender = function(mapEvent) { + var frameState = mapEvent.frameState; + if(goog.isNull(frameState)) { + this.view2DState_ = null + }else { + this.view2DState_ = frameState.view2DState + } + this.updateElement_() +}; +ol.control.ScaleLine.prototype.handleUnitsChanged_ = function() { + this.updateElement_() +}; +ol.control.ScaleLine.prototype.setUnits = function(units) { + this.set(ol.control.ScaleLineProperty.UNITS, units) +}; +goog.exportProperty(ol.control.ScaleLine.prototype, "setUnits", ol.control.ScaleLine.prototype.setUnits); +ol.control.ScaleLine.prototype.updateElement_ = function() { + var view2DState = this.view2DState_; + if(goog.isNull(view2DState)) { + if(this.renderedVisible_) { + goog.style.setElementShown(this.element_, false); + this.renderedVisible_ = false + } + return + } + var center = view2DState.center; + var projection = view2DState.projection; + var pointResolution = projection.getPointResolution(view2DState.resolution, center); + var projectionUnits = projection.getUnits(); + var cosLatitude; + var units = this.getUnits(); + if(projectionUnits == ol.ProjectionUnits.DEGREES && (units == ol.control.ScaleLineUnits.METRIC || units == ol.control.ScaleLineUnits.IMPERIAL)) { + this.toEPSG4326_ = null; + cosLatitude = Math.cos(goog.math.toRadians(center[1])); + pointResolution *= Math.PI * cosLatitude * ol.sphere.NORMAL.radius / 180; + projectionUnits = ol.ProjectionUnits.METERS + }else { + if((projectionUnits == ol.ProjectionUnits.FEET || projectionUnits == ol.ProjectionUnits.METERS) && units == ol.control.ScaleLineUnits.DEGREES) { + if(goog.isNull(this.toEPSG4326_)) { + this.toEPSG4326_ = ol.proj.getTransformFromProjections(projection, ol.proj.get("EPSG:4326")) + } + cosLatitude = Math.cos(goog.math.toRadians(this.toEPSG4326_(center)[1])); + var radius = ol.sphere.NORMAL.radius; + if(projectionUnits == ol.ProjectionUnits.FEET) { + radius /= 0.3048 + } + pointResolution *= 180 / (Math.PI * cosLatitude * radius); + projectionUnits = ol.ProjectionUnits.DEGREES + }else { + this.toEPSG4326_ = null + } + } + goog.asserts.assert((units == ol.control.ScaleLineUnits.METRIC || units == ol.control.ScaleLineUnits.IMPERIAL) && projectionUnits == ol.ProjectionUnits.METERS || units == ol.control.ScaleLineUnits.DEGREES && projectionUnits == ol.ProjectionUnits.DEGREES); + var nominalCount = this.minWidth_ * pointResolution; + var suffix = ""; + if(units == ol.control.ScaleLineUnits.DEGREES) { + if(nominalCount < 1 / 60) { + suffix = "\u2033"; + pointResolution *= 3600 + }else { + if(nominalCount < 1) { + suffix = "\u2032"; + pointResolution *= 60 + }else { + suffix = "\u00b0" + } + } + }else { + if(units == ol.control.ScaleLineUnits.IMPERIAL) { + if(nominalCount < 0.9144) { + suffix = "in"; + pointResolution /= 0.0254 + }else { + if(nominalCount < 1609.344) { + suffix = "ft"; + pointResolution /= 0.3048 + }else { + suffix = "mi"; + pointResolution /= 1609.344 + } + } + }else { + if(units == ol.control.ScaleLineUnits.NAUTICAL) { + pointResolution /= 1852; + suffix = "nm" + }else { + if(units == ol.control.ScaleLineUnits.METRIC) { + if(nominalCount < 1) { + suffix = "mm"; + pointResolution *= 1E3 + }else { + if(nominalCount < 1E3) { + suffix = "m" + }else { + suffix = "km"; + pointResolution /= 1E3 + } + } + }else { + if(units == ol.control.ScaleLineUnits.US) { + if(nominalCount < 0.9144) { + suffix = "in"; + pointResolution *= 39.37 + }else { + if(nominalCount < 1609.344) { + suffix = "ft"; + pointResolution /= 0.30480061 + }else { + suffix = "mi"; + pointResolution /= 1609.3472 + } + } + }else { + goog.asserts.fail() + } + } + } + } + } + var i = 3 * Math.floor(Math.log(this.minWidth_ * pointResolution) / Math.log(10)); + var count, width; + while(true) { + count = ol.control.ScaleLine.LEADING_DIGITS[i % 3] * Math.pow(10, Math.floor(i / 3)); + width = Math.round(count / pointResolution); + if(width >= this.minWidth_) { + break + } + ++i + } + var html = count + suffix; + if(this.renderedHTML_ != html) { + this.innerElement_.innerHTML = html; + this.renderedHTML_ = html + } + if(this.renderedWidth_ != width) { + this.innerElement_.style.width = width + "px"; + this.renderedWidth_ = width + } + if(!this.renderedVisible_) { + goog.style.setElementShown(this.element_, true); + this.renderedVisible_ = true + } +}; +goog.provide("goog.events.EventHandler"); +goog.require("goog.Disposable"); +goog.require("goog.events"); +goog.require("goog.object"); +goog.events.EventHandler = function(opt_handler) { + goog.Disposable.call(this); + this.handler_ = opt_handler; + this.keys_ = {} +}; +goog.inherits(goog.events.EventHandler, goog.Disposable); +goog.events.EventHandler.typeArray_ = []; +goog.events.EventHandler.prototype.listen = function(src, type, opt_fn, opt_capture, opt_handler) { + if(!goog.isArray(type)) { + goog.events.EventHandler.typeArray_[0] = (type); + type = goog.events.EventHandler.typeArray_ + } + for(var i = 0;i < type.length;i++) { + var listenerObj = goog.events.listen(src, type[i], opt_fn || this, opt_capture || false, opt_handler || this.handler_ || this); + if(goog.DEBUG && !listenerObj) { + return this + } + var key = listenerObj.key; + this.keys_[key] = listenerObj + } + return this +}; +goog.events.EventHandler.prototype.listenOnce = function(src, type, opt_fn, opt_capture, opt_handler) { + if(goog.isArray(type)) { + for(var i = 0;i < type.length;i++) { + this.listenOnce(src, type[i], opt_fn, opt_capture, opt_handler) + } + }else { + var listenerObj = goog.events.listenOnce(src, type, opt_fn || this, opt_capture, opt_handler || this.handler_ || this); + var key = listenerObj.key; + this.keys_[key] = listenerObj + } + return this +}; +goog.events.EventHandler.prototype.listenWithWrapper = function(src, wrapper, listener, opt_capt, opt_handler) { + wrapper.listen(src, listener, opt_capt, opt_handler || this.handler_ || this, this); + return this +}; +goog.events.EventHandler.prototype.getListenerCount = function() { + var count = 0; + for(var key in this.keys_) { + if(Object.prototype.hasOwnProperty.call(this.keys_, key)) { + count++ + } + } + return count +}; +goog.events.EventHandler.prototype.unlisten = function(src, type, opt_fn, opt_capture, opt_handler) { + if(goog.isArray(type)) { + for(var i = 0;i < type.length;i++) { + this.unlisten(src, type[i], opt_fn, opt_capture, opt_handler) + } + }else { + var listener = goog.events.getListener(src, type, opt_fn || this, opt_capture, opt_handler || this.handler_ || this); + if(listener) { + goog.events.unlistenByKey(listener); + delete this.keys_[listener.key] + } + } + return this +}; +goog.events.EventHandler.prototype.unlistenWithWrapper = function(src, wrapper, listener, opt_capt, opt_handler) { + wrapper.unlisten(src, listener, opt_capt, opt_handler || this.handler_ || this, this); + return this +}; +goog.events.EventHandler.prototype.removeAll = function() { + goog.object.forEach(this.keys_, goog.events.unlistenByKey); + this.keys_ = {} +}; +goog.events.EventHandler.prototype.disposeInternal = function() { + goog.events.EventHandler.superClass_.disposeInternal.call(this); + this.removeAll() +}; +goog.events.EventHandler.prototype.handleEvent = function(e) { + throw Error("EventHandler.handleEvent not implemented"); +}; +goog.provide("goog.style.bidi"); +goog.require("goog.dom"); +goog.require("goog.style"); +goog.require("goog.userAgent"); +goog.style.bidi.getScrollLeft = function(element) { + var isRtl = goog.style.isRightToLeft(element); + if(isRtl && goog.userAgent.GECKO) { + return-element.scrollLeft + }else { + if(isRtl && !(goog.userAgent.IE && goog.userAgent.isVersionOrHigher("8"))) { + var overflowX = goog.style.getComputedOverflowX(element); + if(overflowX == "visible") { + return element.scrollLeft + }else { + return element.scrollWidth - element.clientWidth - element.scrollLeft + } + } + } + return element.scrollLeft +}; +goog.style.bidi.getOffsetStart = function(element) { + var offsetLeftForReal = element.offsetLeft; + var bestParent = element.offsetParent; + if(!bestParent && goog.style.getComputedPosition(element) == "fixed") { + bestParent = goog.dom.getOwnerDocument(element).documentElement + } + if(!bestParent) { + return offsetLeftForReal + } + if(goog.userAgent.GECKO) { + var borderWidths = goog.style.getBorderBox(bestParent); + offsetLeftForReal += borderWidths.left + }else { + if(goog.userAgent.isDocumentModeOrHigher(8)) { + var borderWidths = goog.style.getBorderBox(bestParent); + offsetLeftForReal -= borderWidths.left + } + } + if(goog.style.isRightToLeft(bestParent)) { + var elementRightOffset = offsetLeftForReal + element.offsetWidth; + return bestParent.clientWidth - elementRightOffset + } + return offsetLeftForReal +}; +goog.style.bidi.setScrollOffset = function(element, offsetStart) { + offsetStart = Math.max(offsetStart, 0); + if(!goog.style.isRightToLeft(element)) { + element.scrollLeft = offsetStart + }else { + if(goog.userAgent.GECKO) { + element.scrollLeft = -offsetStart + }else { + if(!(goog.userAgent.IE && goog.userAgent.isVersionOrHigher("8"))) { + element.scrollLeft = element.scrollWidth - offsetStart - element.clientWidth + }else { + element.scrollLeft = offsetStart + } + } + } +}; +goog.style.bidi.setPosition = function(elem, left, top, isRtl) { + if(!goog.isNull(top)) { + elem.style.top = top + "px" + } + if(isRtl) { + elem.style.right = left + "px"; + elem.style.left = "" + }else { + elem.style.left = left + "px"; + elem.style.right = "" + } +}; +goog.provide("goog.fx.DragEvent"); +goog.provide("goog.fx.Dragger"); +goog.provide("goog.fx.Dragger.EventType"); +goog.require("goog.dom"); +goog.require("goog.events"); +goog.require("goog.events.Event"); +goog.require("goog.events.EventHandler"); +goog.require("goog.events.EventTarget"); +goog.require("goog.events.EventType"); +goog.require("goog.math.Coordinate"); +goog.require("goog.math.Rect"); +goog.require("goog.style"); +goog.require("goog.style.bidi"); +goog.require("goog.userAgent"); +goog.fx.Dragger = function(target, opt_handle, opt_limits) { + goog.events.EventTarget.call(this); + this.target = target; + this.handle = opt_handle || target; + this.limits = opt_limits || new goog.math.Rect(NaN, NaN, NaN, NaN); + this.document_ = goog.dom.getOwnerDocument(target); + this.eventHandler_ = new goog.events.EventHandler(this); + this.registerDisposable(this.eventHandler_); + goog.events.listen(this.handle, [goog.events.EventType.TOUCHSTART, goog.events.EventType.MOUSEDOWN], this.startDrag, false, this) +}; +goog.inherits(goog.fx.Dragger, goog.events.EventTarget); +goog.fx.Dragger.HAS_SET_CAPTURE_ = goog.userAgent.IE || goog.userAgent.GECKO && goog.userAgent.isVersionOrHigher("1.9.3"); +goog.fx.Dragger.EventType = {EARLY_CANCEL:"earlycancel", START:"start", BEFOREDRAG:"beforedrag", DRAG:"drag", END:"end"}; +goog.fx.Dragger.prototype.target; +goog.fx.Dragger.prototype.handle; +goog.fx.Dragger.prototype.limits; +goog.fx.Dragger.prototype.rightToLeft_; +goog.fx.Dragger.prototype.clientX = 0; +goog.fx.Dragger.prototype.clientY = 0; +goog.fx.Dragger.prototype.screenX = 0; +goog.fx.Dragger.prototype.screenY = 0; +goog.fx.Dragger.prototype.startX = 0; +goog.fx.Dragger.prototype.startY = 0; +goog.fx.Dragger.prototype.deltaX = 0; +goog.fx.Dragger.prototype.deltaY = 0; +goog.fx.Dragger.prototype.pageScroll; +goog.fx.Dragger.prototype.enabled_ = true; +goog.fx.Dragger.prototype.dragging_ = false; +goog.fx.Dragger.prototype.hysteresisDistanceSquared_ = 0; +goog.fx.Dragger.prototype.mouseDownTime_ = 0; +goog.fx.Dragger.prototype.document_; +goog.fx.Dragger.prototype.scrollTarget_; +goog.fx.Dragger.prototype.ieDragStartCancellingOn_ = false; +goog.fx.Dragger.prototype.useRightPositioningForRtl_ = false; +goog.fx.Dragger.prototype.enableRightPositioningForRtl = function(useRightPositioningForRtl) { + this.useRightPositioningForRtl_ = useRightPositioningForRtl +}; +goog.fx.Dragger.prototype.getHandler = function() { + return this.eventHandler_ +}; +goog.fx.Dragger.prototype.setLimits = function(limits) { + this.limits = limits || new goog.math.Rect(NaN, NaN, NaN, NaN) +}; +goog.fx.Dragger.prototype.setHysteresis = function(distance) { + this.hysteresisDistanceSquared_ = Math.pow(distance, 2) +}; +goog.fx.Dragger.prototype.getHysteresis = function() { + return Math.sqrt(this.hysteresisDistanceSquared_) +}; +goog.fx.Dragger.prototype.setScrollTarget = function(scrollTarget) { + this.scrollTarget_ = scrollTarget +}; +goog.fx.Dragger.prototype.setCancelIeDragStart = function(cancelIeDragStart) { + this.ieDragStartCancellingOn_ = cancelIeDragStart +}; +goog.fx.Dragger.prototype.getEnabled = function() { + return this.enabled_ +}; +goog.fx.Dragger.prototype.setEnabled = function(enabled) { + this.enabled_ = enabled +}; +goog.fx.Dragger.prototype.disposeInternal = function() { + goog.fx.Dragger.superClass_.disposeInternal.call(this); + goog.events.unlisten(this.handle, [goog.events.EventType.TOUCHSTART, goog.events.EventType.MOUSEDOWN], this.startDrag, false, this); + this.cleanUpAfterDragging_(); + this.target = null; + this.handle = null +}; +goog.fx.Dragger.prototype.isRightToLeft_ = function() { + if(!goog.isDef(this.rightToLeft_)) { + this.rightToLeft_ = goog.style.isRightToLeft(this.target) + } + return this.rightToLeft_ +}; +goog.fx.Dragger.prototype.startDrag = function(e) { + var isMouseDown = e.type == goog.events.EventType.MOUSEDOWN; + if(this.enabled_ && !this.dragging_ && (!isMouseDown || e.isMouseActionButton())) { + this.maybeReinitTouchEvent_(e); + if(this.hysteresisDistanceSquared_ == 0) { + if(this.fireDragStart_(e)) { + this.dragging_ = true; + e.preventDefault() + }else { + return + } + }else { + e.preventDefault() + } + this.setupDragHandlers(); + this.clientX = this.startX = e.clientX; + this.clientY = this.startY = e.clientY; + this.screenX = e.screenX; + this.screenY = e.screenY; + this.deltaX = this.useRightPositioningForRtl_ ? goog.style.bidi.getOffsetStart(this.target) : this.target.offsetLeft; + this.deltaY = this.target.offsetTop; + this.pageScroll = goog.dom.getDomHelper(this.document_).getDocumentScroll(); + this.mouseDownTime_ = goog.now() + }else { + this.dispatchEvent(goog.fx.Dragger.EventType.EARLY_CANCEL) + } +}; +goog.fx.Dragger.prototype.setupDragHandlers = function() { + var doc = this.document_; + var docEl = doc.documentElement; + var useCapture = !goog.fx.Dragger.HAS_SET_CAPTURE_; + this.eventHandler_.listen(doc, [goog.events.EventType.TOUCHMOVE, goog.events.EventType.MOUSEMOVE], this.handleMove_, useCapture); + this.eventHandler_.listen(doc, [goog.events.EventType.TOUCHEND, goog.events.EventType.MOUSEUP], this.endDrag, useCapture); + if(goog.fx.Dragger.HAS_SET_CAPTURE_) { + docEl.setCapture(false); + this.eventHandler_.listen(docEl, goog.events.EventType.LOSECAPTURE, this.endDrag) + }else { + this.eventHandler_.listen(goog.dom.getWindow(doc), goog.events.EventType.BLUR, this.endDrag) + } + if(goog.userAgent.IE && this.ieDragStartCancellingOn_) { + this.eventHandler_.listen(doc, goog.events.EventType.DRAGSTART, goog.events.Event.preventDefault) + } + if(this.scrollTarget_) { + this.eventHandler_.listen(this.scrollTarget_, goog.events.EventType.SCROLL, this.onScroll_, useCapture) + } +}; +goog.fx.Dragger.prototype.fireDragStart_ = function(e) { + return this.dispatchEvent(new goog.fx.DragEvent(goog.fx.Dragger.EventType.START, this, e.clientX, e.clientY, e)) +}; +goog.fx.Dragger.prototype.cleanUpAfterDragging_ = function() { + this.eventHandler_.removeAll(); + if(goog.fx.Dragger.HAS_SET_CAPTURE_) { + this.document_.releaseCapture() + } +}; +goog.fx.Dragger.prototype.endDrag = function(e, opt_dragCanceled) { + this.cleanUpAfterDragging_(); + if(this.dragging_) { + this.maybeReinitTouchEvent_(e); + this.dragging_ = false; + var x = this.limitX(this.deltaX); + var y = this.limitY(this.deltaY); + var dragCanceled = opt_dragCanceled || e.type == goog.events.EventType.TOUCHCANCEL; + this.dispatchEvent(new goog.fx.DragEvent(goog.fx.Dragger.EventType.END, this, e.clientX, e.clientY, e, x, y, dragCanceled)) + }else { + this.dispatchEvent(goog.fx.Dragger.EventType.EARLY_CANCEL) + } +}; +goog.fx.Dragger.prototype.endDragCancel = function(e) { + this.endDrag(e, true) +}; +goog.fx.Dragger.prototype.maybeReinitTouchEvent_ = function(e) { + var type = e.type; + if(type == goog.events.EventType.TOUCHSTART || type == goog.events.EventType.TOUCHMOVE) { + e.init(e.getBrowserEvent().targetTouches[0], e.currentTarget) + }else { + if(type == goog.events.EventType.TOUCHEND || type == goog.events.EventType.TOUCHCANCEL) { + e.init(e.getBrowserEvent().changedTouches[0], e.currentTarget) + } + } +}; +goog.fx.Dragger.prototype.handleMove_ = function(e) { + if(this.enabled_) { + this.maybeReinitTouchEvent_(e); + var sign = this.useRightPositioningForRtl_ && this.isRightToLeft_() ? -1 : 1; + var dx = sign * (e.clientX - this.clientX); + var dy = e.clientY - this.clientY; + this.clientX = e.clientX; + this.clientY = e.clientY; + this.screenX = e.screenX; + this.screenY = e.screenY; + if(!this.dragging_) { + var diffX = this.startX - this.clientX; + var diffY = this.startY - this.clientY; + var distance = diffX * diffX + diffY * diffY; + if(distance > this.hysteresisDistanceSquared_) { + if(this.fireDragStart_(e)) { + this.dragging_ = true + }else { + if(!this.isDisposed()) { + this.endDrag(e) + } + return + } + } + } + var pos = this.calculatePosition_(dx, dy); + var x = pos.x; + var y = pos.y; + if(this.dragging_) { + var rv = this.dispatchEvent(new goog.fx.DragEvent(goog.fx.Dragger.EventType.BEFOREDRAG, this, e.clientX, e.clientY, e, x, y)); + if(rv) { + this.doDrag(e, x, y, false); + e.preventDefault() + } + } + } +}; +goog.fx.Dragger.prototype.calculatePosition_ = function(dx, dy) { + var pageScroll = goog.dom.getDomHelper(this.document_).getDocumentScroll(); + dx += pageScroll.x - this.pageScroll.x; + dy += pageScroll.y - this.pageScroll.y; + this.pageScroll = pageScroll; + this.deltaX += dx; + this.deltaY += dy; + var x = this.limitX(this.deltaX); + var y = this.limitY(this.deltaY); + return new goog.math.Coordinate(x, y) +}; +goog.fx.Dragger.prototype.onScroll_ = function(e) { + var pos = this.calculatePosition_(0, 0); + e.clientX = this.clientX; + e.clientY = this.clientY; + this.doDrag(e, pos.x, pos.y, true) +}; +goog.fx.Dragger.prototype.doDrag = function(e, x, y, dragFromScroll) { + this.defaultAction(x, y); + this.dispatchEvent(new goog.fx.DragEvent(goog.fx.Dragger.EventType.DRAG, this, e.clientX, e.clientY, e, x, y)) +}; +goog.fx.Dragger.prototype.limitX = function(x) { + var rect = this.limits; + var left = !isNaN(rect.left) ? rect.left : null; + var width = !isNaN(rect.width) ? rect.width : 0; + var maxX = left != null ? left + width : Infinity; + var minX = left != null ? left : -Infinity; + return Math.min(maxX, Math.max(minX, x)) +}; +goog.fx.Dragger.prototype.limitY = function(y) { + var rect = this.limits; + var top = !isNaN(rect.top) ? rect.top : null; + var height = !isNaN(rect.height) ? rect.height : 0; + var maxY = top != null ? top + height : Infinity; + var minY = top != null ? top : -Infinity; + return Math.min(maxY, Math.max(minY, y)) +}; +goog.fx.Dragger.prototype.defaultAction = function(x, y) { + if(this.useRightPositioningForRtl_ && this.isRightToLeft_()) { + this.target.style.right = x + "px" + }else { + this.target.style.left = x + "px" + } + this.target.style.top = y + "px" +}; +goog.fx.Dragger.prototype.isDragging = function() { + return this.dragging_ +}; +goog.fx.DragEvent = function(type, dragobj, clientX, clientY, browserEvent, opt_actX, opt_actY, opt_dragCanceled) { + goog.events.Event.call(this, type); + this.clientX = clientX; + this.clientY = clientY; + this.browserEvent = browserEvent; + this.left = goog.isDef(opt_actX) ? opt_actX : dragobj.deltaX; + this.top = goog.isDef(opt_actY) ? opt_actY : dragobj.deltaY; + this.dragger = dragobj; + this.dragCanceled = !!opt_dragCanceled +}; +goog.inherits(goog.fx.DragEvent, goog.events.Event); +goog.provide("ol.control.ZoomSlider"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.require("goog.dom"); +goog.require("goog.dom.TagName"); +goog.require("goog.events"); +goog.require("goog.events.EventType"); +goog.require("goog.fx.Dragger"); +goog.require("goog.fx.Dragger.EventType"); +goog.require("goog.math"); +goog.require("goog.math.Rect"); +goog.require("goog.style"); +goog.require("ol.animation"); +goog.require("ol.control.Control"); +goog.require("ol.css"); +goog.require("ol.easing"); +ol.control.ZOOMSLIDER_ANIMATION_DURATION = 200; +ol.control.ZoomSlider = function(opt_options) { + var options = goog.isDef(opt_options) ? opt_options : {}; + this.currentResolution_ = undefined; + this.direction_ = ol.control.ZoomSlider.direction.VERTICAL; + this.sliderInitialized_ = false; + this.draggerListenerKeys_ = null; + var className = goog.isDef(options.className) ? options.className : "ol-zoomslider"; + var sliderCssCls = className + " " + ol.css.CLASS_UNSELECTABLE; + var thumbCssCls = className + "-thumb" + " " + ol.css.CLASS_UNSELECTABLE; + var element = goog.dom.createDom(goog.dom.TagName.DIV, sliderCssCls, goog.dom.createDom(goog.dom.TagName.DIV, thumbCssCls)); + this.dragger_ = this.createDraggable_(element); + goog.events.listen(element, [goog.events.EventType.TOUCHEND, goog.events.EventType.CLICK], this.handleContainerClick_, false, this); + goog.base(this, {element:element}) +}; +goog.inherits(ol.control.ZoomSlider, ol.control.Control); +ol.control.ZoomSlider.direction = {VERTICAL:0, HORIZONTAL:1}; +ol.control.ZoomSlider.prototype.setMap = function(map) { + goog.base(this, "setMap", map); + if(!goog.isNull(map)) { + map.render() + } +}; +ol.control.ZoomSlider.prototype.initSlider_ = function() { + var container = this.element, thumb = goog.dom.getFirstElementChild(container), elemSize = goog.style.getContentBoxSize(container), thumbBounds = goog.style.getBounds(thumb), thumbMargins = goog.style.getMarginBox(thumb), thumbBorderBox = goog.style.getBorderBox(thumb), w = elemSize.width - thumbMargins.left - thumbMargins.right - thumbBorderBox.left - thumbBorderBox.right - thumbBounds.width, h = elemSize.height - thumbMargins.top - thumbMargins.bottom - thumbBorderBox.top - thumbBorderBox.bottom - + thumbBounds.height, limits; + if(elemSize.width > elemSize.height) { + this.direction_ = ol.control.ZoomSlider.direction.HORIZONTAL; + limits = new goog.math.Rect(0, 0, w, 0) + }else { + this.direction_ = ol.control.ZoomSlider.direction.VERTICAL; + limits = new goog.math.Rect(0, 0, 0, h) + } + this.dragger_.setLimits(limits); + this.sliderInitialized_ = true +}; +ol.control.ZoomSlider.prototype.handleMapPostrender = function(mapEvent) { + if(goog.isNull(mapEvent.frameState)) { + return + } + goog.asserts.assert(goog.isDefAndNotNull(mapEvent.frameState.view2DState)); + if(!this.sliderInitialized_) { + this.initSlider_() + } + var res = mapEvent.frameState.view2DState.resolution; + if(res !== this.currentResolution_) { + this.currentResolution_ = res; + this.positionThumbForResolution_(res) + } +}; +ol.control.ZoomSlider.prototype.handleContainerClick_ = function(browserEvent) { +}; +ol.control.ZoomSlider.prototype.positionThumbForResolution_ = function(res) { + var amount = this.amountForResolution_(res), dragger = this.dragger_, thumb = goog.dom.getFirstElementChild(this.element); + if(this.direction_ == ol.control.ZoomSlider.direction.HORIZONTAL) { + var left = dragger.limits.left + dragger.limits.width * amount; + goog.style.setPosition(thumb, left) + }else { + var top = dragger.limits.top + dragger.limits.height * amount; + goog.style.setPosition(thumb, dragger.limits.left, top) + } +}; +ol.control.ZoomSlider.prototype.amountDragged_ = function(e) { + var draggerLimits = this.dragger_.limits, amount = 0; + if(this.direction_ === ol.control.ZoomSlider.direction.HORIZONTAL) { + amount = (e.left - draggerLimits.left) / draggerLimits.width + }else { + amount = (e.top - draggerLimits.top) / draggerLimits.height + } + return amount +}; +ol.control.ZoomSlider.prototype.resolutionForAmount_ = function(amount) { + amount = (goog.math.clamp(amount, 0, 1) - 1) * -1; + var fn = this.getMap().getView().getView2D().getResolutionForValueFunction(); + return fn(amount) +}; +ol.control.ZoomSlider.prototype.amountForResolution_ = function(res) { + var fn = this.getMap().getView().getView2D().getValueForResolutionFunction(); + var value = fn(res); + return(value - 1) * -1 +}; +ol.control.ZoomSlider.prototype.handleSliderChange_ = function(e) { + var map = this.getMap(); + var view = map.getView().getView2D(); + var resolution; + if(e.type === goog.fx.Dragger.EventType.DRAG) { + var amountDragged = this.amountDragged_(e); + resolution = this.resolutionForAmount_(amountDragged); + if(resolution !== this.currentResolution_) { + this.currentResolution_ = resolution; + view.setResolution(resolution) + } + }else { + goog.asserts.assert(goog.isDef(this.currentResolution_)); + map.beforeRender(ol.animation.zoom({resolution:this.currentResolution_, duration:ol.control.ZOOMSLIDER_ANIMATION_DURATION, easing:ol.easing.easeOut})); + resolution = view.constrainResolution(this.currentResolution_); + view.setResolution(resolution) + } +}; +ol.control.ZoomSlider.prototype.createDraggable_ = function(elem) { + if(!goog.isNull(this.draggerListenerKeys_)) { + goog.array.forEach(this.draggerListenerKeys_, goog.events.unlistenByKey); + this.draggerListenerKeys_ = null + } + var dragger = new goog.fx.Dragger(elem.childNodes[0]); + this.draggerListenerKeys_ = [goog.events.listen(dragger, [goog.fx.Dragger.EventType.DRAG, goog.fx.Dragger.EventType.END], this.handleSliderChange_, undefined, this)]; + return dragger +}; +goog.provide("ol.control.ZoomToExtent"); +goog.require("goog.dom"); +goog.require("goog.dom.TagName"); +goog.require("goog.events"); +goog.require("goog.events.EventType"); +goog.require("ol.control.Control"); +goog.require("ol.css"); +ol.control.ZoomToExtent = function(opt_options) { + var options = goog.isDef(opt_options) ? opt_options : {}; + this.extent_ = goog.isDef(options.extent) ? options.extent : null; + var className = goog.isDef(options.className) ? options.className : "ol-zoom-extent"; + var element = goog.dom.createDom(goog.dom.TagName.DIV, {"class":className + " " + ol.css.CLASS_UNSELECTABLE}); + var button = goog.dom.createDom(goog.dom.TagName.A, {"href":"#zoomExtent"}); + goog.dom.appendChild(element, button); + goog.events.listen(element, [goog.events.EventType.TOUCHEND, goog.events.EventType.CLICK], this.handleZoomToExtent_, false, this); + goog.base(this, {element:element, target:options.target}) +}; +goog.inherits(ol.control.ZoomToExtent, ol.control.Control); +ol.control.ZoomToExtent.prototype.handleZoomToExtent_ = function(browserEvent) { + browserEvent.preventDefault(); + var map = this.getMap(); + var view = map.getView().getView2D(); + var extent = goog.isNull(this.extent_) ? view.getProjection().getExtent() : this.extent_; + view.fitExtent(extent, map.getSize()) +}; +goog.provide("ol.dom.Input"); +goog.provide("ol.dom.InputProperty"); +goog.require("goog.events"); +goog.require("goog.events.EventType"); +goog.require("ol.Object"); +ol.dom.InputProperty = {VALUE:"value", VALUE_AS_NUMBER:"valueAsNumber", CHECKED:"checked"}; +ol.dom.Input = function(target) { + goog.base(this); + this.target_ = target; + goog.events.listen(this.target_, goog.events.EventType.CHANGE, this.handleInputChanged_, false, this); + goog.events.listen(this, ol.Object.getChangeEventType(ol.dom.InputProperty.VALUE), this.handleValueChanged_, false, this); + goog.events.listen(this, ol.Object.getChangeEventType(ol.dom.InputProperty.VALUE_AS_NUMBER), this.handleValueAsNumberChanged_, false, this); + goog.events.listen(this, ol.Object.getChangeEventType(ol.dom.InputProperty.CHECKED), this.handleCheckedChanged_, false, this) +}; +goog.inherits(ol.dom.Input, ol.Object); +ol.dom.Input.prototype.getChecked = function() { + return(this.get(ol.dom.InputProperty.CHECKED)) +}; +goog.exportProperty(ol.dom.Input.prototype, "getChecked", ol.dom.Input.prototype.getChecked); +ol.dom.Input.prototype.getValue = function() { + return(this.get(ol.dom.InputProperty.VALUE)) +}; +goog.exportProperty(ol.dom.Input.prototype, "getValue", ol.dom.Input.prototype.getValue); +ol.dom.Input.prototype.getValueAsNumber = function() { + return(this.get(ol.dom.InputProperty.VALUE_AS_NUMBER)) +}; +goog.exportProperty(ol.dom.Input.prototype, "getValueAsNumber", ol.dom.Input.prototype.getValueAsNumber); +ol.dom.Input.prototype.setValue = function(value) { + this.set(ol.dom.InputProperty.VALUE, value) +}; +goog.exportProperty(ol.dom.Input.prototype, "setValue", ol.dom.Input.prototype.setValue); +ol.dom.Input.prototype.setValueAsNumber = function(value) { + this.set(ol.dom.InputProperty.VALUE_AS_NUMBER, value) +}; +goog.exportProperty(ol.dom.Input.prototype, "setValueAsNumber", ol.dom.Input.prototype.setValueAsNumber); +ol.dom.Input.prototype.setChecked = function(checked) { + this.set(ol.dom.InputProperty.CHECKED, checked) +}; +goog.exportProperty(ol.dom.Input.prototype, "setChecked", ol.dom.Input.prototype.setChecked); +ol.dom.Input.prototype.handleInputChanged_ = function() { + if(this.target_.type === "checkbox" || this.target_.type === "radio") { + this.setChecked(this.target_.checked) + }else { + this.setValue(this.target_.value); + this.setValueAsNumber(this.target_.valueAsNumber) + } +}; +ol.dom.Input.prototype.handleCheckedChanged_ = function() { + this.target_.checked = this.getChecked() ? "checked" : undefined +}; +ol.dom.Input.prototype.handleValueChanged_ = function() { + this.target_.value = this.getValue() +}; +ol.dom.Input.prototype.handleValueAsNumberChanged_ = function() { + this.target_.value = this.getValueAsNumber() +}; +goog.provide("ol.ellipsoid.BESSEL1841"); +goog.require("ol.Ellipsoid"); +ol.ellipsoid.BESSEL1841 = new ol.Ellipsoid(6377397.155, 1 / 299.15281285); +goog.provide("ol.ellipsoid.WGS84"); +goog.require("ol.Ellipsoid"); +ol.ellipsoid.WGS84 = new ol.Ellipsoid(6378137, 1 / 298.257223563); +goog.provide("ol.geom.GeometryCollection"); +goog.require("goog.asserts"); +goog.require("ol.geom.AbstractCollection"); +goog.require("ol.geom.Geometry"); +goog.require("ol.geom.GeometryType"); +ol.geom.GeometryCollection = function(geometries) { + goog.base(this); + this.components = geometries; + var dimension = 0; + for(var i = 0, ii = geometries.length;i < ii;++i) { + if(goog.isDef(dimension)) { + dimension = geometries[i].dimension + }else { + goog.asserts.assert(dimension == geometries[i].dimension) + } + } + this.dimension = dimension +}; +goog.inherits(ol.geom.GeometryCollection, ol.geom.AbstractCollection); +ol.geom.GeometryCollection.prototype.getType = function() { + return ol.geom.GeometryType.GEOMETRYCOLLECTION +}; +goog.provide("goog.math.Vec2"); +goog.require("goog.math"); +goog.require("goog.math.Coordinate"); +goog.math.Vec2 = function(x, y) { + this.x = x; + this.y = y +}; +goog.inherits(goog.math.Vec2, goog.math.Coordinate); +goog.math.Vec2.randomUnit = function() { + var angle = Math.random() * Math.PI * 2; + return new goog.math.Vec2(Math.cos(angle), Math.sin(angle)) +}; +goog.math.Vec2.random = function() { + var mag = Math.sqrt(Math.random()); + var angle = Math.random() * Math.PI * 2; + return new goog.math.Vec2(Math.cos(angle) * mag, Math.sin(angle) * mag) +}; +goog.math.Vec2.fromCoordinate = function(a) { + return new goog.math.Vec2(a.x, a.y) +}; +goog.math.Vec2.prototype.clone = function() { + return new goog.math.Vec2(this.x, this.y) +}; +goog.math.Vec2.prototype.magnitude = function() { + return Math.sqrt(this.x * this.x + this.y * this.y) +}; +goog.math.Vec2.prototype.squaredMagnitude = function() { + return this.x * this.x + this.y * this.y +}; +goog.math.Vec2.prototype.scale = (goog.math.Coordinate.prototype.scale); +goog.math.Vec2.prototype.invert = function() { + this.x = -this.x; + this.y = -this.y; + return this +}; +goog.math.Vec2.prototype.normalize = function() { + return this.scale(1 / this.magnitude()) +}; +goog.math.Vec2.prototype.add = function(b) { + this.x += b.x; + this.y += b.y; + return this +}; +goog.math.Vec2.prototype.subtract = function(b) { + this.x -= b.x; + this.y -= b.y; + return this +}; +goog.math.Vec2.prototype.rotate = function(angle) { + var cos = Math.cos(angle); + var sin = Math.sin(angle); + var newX = this.x * cos - this.y * sin; + var newY = this.y * cos + this.x * sin; + this.x = newX; + this.y = newY; + return this +}; +goog.math.Vec2.rotateAroundPoint = function(v, axisPoint, angle) { + var res = v.clone(); + return res.subtract(axisPoint).rotate(angle).add(axisPoint) +}; +goog.math.Vec2.prototype.equals = function(b) { + return this == b || !!b && this.x == b.x && this.y == b.y +}; +goog.math.Vec2.distance = goog.math.Coordinate.distance; +goog.math.Vec2.squaredDistance = goog.math.Coordinate.squaredDistance; +goog.math.Vec2.equals = goog.math.Coordinate.equals; +goog.math.Vec2.sum = function(a, b) { + return new goog.math.Vec2(a.x + b.x, a.y + b.y) +}; +goog.math.Vec2.difference = function(a, b) { + return new goog.math.Vec2(a.x - b.x, a.y - b.y) +}; +goog.math.Vec2.dot = function(a, b) { + return a.x * b.x + a.y * b.y +}; +goog.math.Vec2.lerp = function(a, b, x) { + return new goog.math.Vec2(goog.math.lerp(a.x, b.x, x), goog.math.lerp(a.y, b.y, x)) +}; +goog.provide("ol.interaction.DragRotateAndZoom"); +goog.require("goog.asserts"); +goog.require("goog.math.Vec2"); +goog.require("ol.interaction.ConditionType"); +goog.require("ol.interaction.Drag"); +goog.require("ol.interaction.Interaction"); +goog.require("ol.interaction.condition"); +ol.interaction.DRAGROTATEANDZOOM_ANIMATION_DURATION = 400; +ol.interaction.DragRotateAndZoom = function(opt_options) { + var options = goog.isDef(opt_options) ? opt_options : {}; + goog.base(this); + this.condition_ = goog.isDef(options.condition) ? options.condition : ol.interaction.condition.shiftKeyOnly; + this.lastAngle_ = undefined; + this.lastMagnitude_ = undefined; + this.lastScaleDelta_ = 0 +}; +goog.inherits(ol.interaction.DragRotateAndZoom, ol.interaction.Drag); +ol.interaction.DragRotateAndZoom.prototype.handleDrag = function(mapBrowserEvent) { + var browserEvent = mapBrowserEvent.browserEvent; + var map = mapBrowserEvent.map; + var size = map.getSize(); + var delta = new goog.math.Vec2(browserEvent.offsetX - size[0] / 2, size[1] / 2 - browserEvent.offsetY); + var theta = Math.atan2(delta.y, delta.x); + var magnitude = delta.magnitude(); + var view = map.getView().getView2D(); + var view2DState = view.getView2DState(); + map.requestRenderFrame(); + if(goog.isDef(this.lastAngle_)) { + var angleDelta = theta - this.lastAngle_; + ol.interaction.Interaction.rotateWithoutConstraints(map, view, view2DState.rotation - angleDelta) + } + this.lastAngle_ = theta; + if(goog.isDef(this.lastMagnitude_)) { + var resolution = this.lastMagnitude_ * (view2DState.resolution / magnitude); + ol.interaction.Interaction.zoomWithoutConstraints(map, view, resolution) + } + if(goog.isDef(this.lastMagnitude_)) { + this.lastScaleDelta_ = this.lastMagnitude_ / magnitude + } + this.lastMagnitude_ = magnitude +}; +ol.interaction.DragRotateAndZoom.prototype.handleDragEnd = function(mapBrowserEvent) { + var map = mapBrowserEvent.map; + var view = map.getView().getView2D(); + var view2DState = view.getView2DState(); + var direction = this.lastScaleDelta_ - 1; + map.withFrozenRendering(function() { + ol.interaction.Interaction.rotate(map, view, view2DState.rotation); + ol.interaction.Interaction.zoom(map, view, view2DState.resolution, undefined, ol.interaction.DRAGROTATEANDZOOM_ANIMATION_DURATION, direction) + }); + this.lastScaleDelta_ = 0; + return true +}; +ol.interaction.DragRotateAndZoom.prototype.handleDragStart = function(mapBrowserEvent) { + if(this.condition_(mapBrowserEvent)) { + this.lastAngle_ = undefined; + this.lastMagnitude_ = undefined; + return true + }else { + return false + } +}; +goog.provide("ol.interaction.Modify"); +goog.require("goog.array"); +goog.require("goog.events"); +goog.require("goog.object"); +goog.require("ol.Feature"); +goog.require("ol.MapBrowserEvent.EventType"); +goog.require("ol.ViewHint"); +goog.require("ol.coordinate"); +goog.require("ol.extent"); +goog.require("ol.geom.AbstractCollection"); +goog.require("ol.geom.LineString"); +goog.require("ol.geom.LinearRing"); +goog.require("ol.geom.Point"); +goog.require("ol.geom.Polygon"); +goog.require("ol.interaction.Drag"); +goog.require("ol.layer.Vector"); +goog.require("ol.layer.VectorLayerEventType"); +goog.require("ol.layer.VectorLayerRenderIntent"); +goog.require("ol.structs.RTree"); +ol.interaction.Modify = function(opt_options) { + goog.base(this); + var options = goog.isDef(opt_options) ? opt_options : {}; + this.layerFilter_ = goog.isDef(options.layerFilter) ? options.layerFilter : null; + this.layers_ = null; + this.modifiable_ = false; + this.pixelTolerance_ = goog.isDef(options.pixelTolerance) ? options.pixelTolerance : 20; + this.dragVertices_ = null; + this.interactingHint = 0 +}; +goog.inherits(ol.interaction.Modify, ol.interaction.Drag); +ol.interaction.Modify.prototype.addIndex = function(evt) { + var layer = evt.target; + var features = evt.features; + for(var i = 0, ii = features.length;i < ii;++i) { + var feature = features[i]; + var geometry = feature.getGeometry(); + if(geometry instanceof ol.geom.AbstractCollection) { + for(var j = 0, jj = geometry.components.length;j < jj;++j) { + this.addSegments_(layer, feature, geometry.components[j], [[geometry.components, j]]) + } + }else { + this.addSegments_(layer, feature, geometry) + } + } +}; +ol.interaction.Modify.prototype.addLayer = function(layer) { + var selectionData = layer.getSelectionData(); + var selectionLayer = selectionData.layer; + var editData = selectionLayer.getEditData(); + if(goog.isNull(editData.rTree)) { + editData.rTree = new ol.structs.RTree; + var vertexFeature = new ol.Feature; + vertexFeature.renderIntent = ol.layer.VectorLayerRenderIntent.HIDDEN; + vertexFeature.setGeometry(new ol.geom.Point([NaN, NaN])); + selectionLayer.addFeatures([vertexFeature]); + editData.vertexFeature = vertexFeature + } + this.addIndex(({target:selectionLayer, features:goog.object.getValues(selectionData.selectedFeaturesByFeatureUid)})); + goog.events.listen(selectionLayer, ol.layer.VectorLayerEventType.ADD, this.addIndex, false, this); + goog.events.listen(selectionLayer, ol.layer.VectorLayerEventType.REMOVE, this.removeIndex, false, this) +}; +ol.interaction.Modify.prototype.addSegments_ = function(selectionLayer, feature, geometry, opt_parent) { + var uid = goog.getUid(feature); + var rTree = selectionLayer.getEditData().rTree; + var vertex, segment, segmentData, coordinates; + if(geometry instanceof ol.geom.Point) { + vertex = geometry.getCoordinates(); + segmentData = [[vertex, vertex], feature, geometry, NaN]; + if(goog.isDef(opt_parent)) { + segmentData.push(opt_parent) + } + rTree.insert(geometry.getBounds(), segmentData, uid) + }else { + if(geometry instanceof ol.geom.LineString || geometry instanceof ol.geom.LinearRing) { + coordinates = geometry.getCoordinates(); + for(var i = 0, ii = coordinates.length - 1;i < ii;++i) { + segment = coordinates.slice(i, i + 2); + segmentData = [segment, feature, geometry, i]; + if(opt_parent) { + segmentData.push(opt_parent) + } + rTree.insert(ol.extent.boundingExtent(segment), segmentData, uid) + } + }else { + if(geometry instanceof ol.geom.Polygon) { + for(var j = 0, jj = geometry.rings.length;j < jj;++j) { + this.addSegments_(selectionLayer, feature, geometry.rings[j], [geometry.rings, j]) + } + } + } + } +}; +ol.interaction.Modify.prototype.handleDragStart = function(evt) { + this.dragVertices_ = []; + for(var i = 0, ii = this.layers_.length;i < ii;++i) { + var selectionData = this.layers_[i].getSelectionData(); + var selectionLayer = selectionData.layer; + if(!goog.isNull(selectionLayer)) { + var editData = selectionLayer.getEditData(); + var vertexFeature = editData.vertexFeature; + if(!goog.isNull(vertexFeature) && vertexFeature.renderIntent != ol.layer.VectorLayerRenderIntent.HIDDEN) { + var vertex = vertexFeature.getGeometry().getCoordinates(); + var vertexExtent = ol.extent.boundingExtent([vertex]); + var segments = editData.rTree.search(vertexExtent); + for(var j = 0, jj = segments.length;j < jj;++j) { + var segmentData = segments[j]; + var segment = segmentData[0]; + if(vertexFeature.renderIntent == ol.layer.VectorLayerRenderIntent.TEMPORARY) { + if(ol.coordinate.equals(segment[0], vertex)) { + this.dragVertices_.push([selectionLayer, segmentData, 0]) + }else { + this.dragVertices_.push([selectionLayer, segmentData, 1]) + } + }else { + this.insertVertex_(selectionLayer, segmentData, vertex) + } + } + } + } + } + return this.modifiable_ +}; +ol.interaction.Modify.prototype.handleDrag = function(evt) { + var vertex = evt.getCoordinate(); + for(var i = 0, ii = this.dragVertices_.length;i < ii;++i) { + var dragVertex = this.dragVertices_[i]; + var selectionLayer = dragVertex[0]; + var segmentData = dragVertex[1]; + var feature = segmentData[1]; + var geometry = segmentData[2]; + var index = dragVertex[2]; + geometry.set(segmentData[3] + index, 0, vertex[0]); + geometry.set(segmentData[3] + index, 1, vertex[1]); + feature.getGeometry().invalidateBounds(); + var editData = selectionLayer.getEditData(); + var vertexFeature = editData.vertexFeature; + var vertexGeometry = vertexFeature.getGeometry(); + var segment = segmentData[0]; + editData.rTree.remove(ol.extent.boundingExtent(segment), segmentData); + segment[index] = vertex; + vertexGeometry.set(0, vertex[0]); + vertexGeometry.set(1, vertex[1]); + editData.rTree.insert(ol.extent.boundingExtent(segment), segmentData, goog.getUid(feature)); + selectionLayer.updateFeatures([feature, vertexFeature]) + } +}; +ol.interaction.Modify.prototype.handleMapBrowserEvent = function(mapBrowserEvent) { + if(!mapBrowserEvent.map.getView().getHints()[ol.ViewHint.INTERACTING] && !this.getDragging() && mapBrowserEvent.type == ol.MapBrowserEvent.EventType.MOUSEMOVE) { + this.handleMouseMove_(mapBrowserEvent) + } + goog.base(this, "handleMapBrowserEvent", mapBrowserEvent); + return!this.modifiable_ +}; +ol.interaction.Modify.prototype.handleMouseMove_ = function(evt) { + var map = evt.map; + var layers = goog.array.filter(map.getLayerGroup().getLayers().getArray(), this.ignoreTemporaryLayersFilter_); + if(!goog.isNull(this.layerFilter_)) { + layers = goog.array.filter(layers, this.layerFilter_) + } + this.layers_ = layers; + var pixel = evt.getPixel(); + var pixelCoordinate = map.getCoordinateFromPixel(pixel); + var sortByDistance = function(a, b) { + return ol.coordinate.closestOnSegment(pixelCoordinate, a[0])[2] - ol.coordinate.closestOnSegment(pixelCoordinate, b[0])[2] + }; + var lowerLeft = map.getCoordinateFromPixel([pixel[0] - this.pixelTolerance_, pixel[1] + this.pixelTolerance_]); + var upperRight = map.getCoordinateFromPixel([pixel[0] + this.pixelTolerance_, pixel[1] - this.pixelTolerance_]); + var box = ol.extent.boundingExtent([lowerLeft, upperRight]); + var vertexFeature; + this.modifiable_ = false; + for(var i = layers.length - 1;i >= 0;--i) { + var layer = layers[i]; + var selectionLayer = layer.getSelectionData().layer; + if(!goog.isNull(selectionLayer)) { + if(goog.isNull(goog.events.getListener(selectionLayer, ol.layer.VectorLayerEventType.ADD, this.addIndex, false, this))) { + this.addLayer(layer) + } + var editData = selectionLayer.getEditData(); + vertexFeature = editData.vertexFeature; + var segments = editData.rTree.search(box); + var renderIntent = ol.layer.VectorLayerRenderIntent.HIDDEN; + if(segments.length > 0) { + segments.sort(sortByDistance); + var segment = segments[0][0]; + var geometry = vertexFeature.getGeometry(); + var vertex = (ol.coordinate.closestOnSegment(pixelCoordinate, segment)); + var coordPixel = map.getPixelFromCoordinate(vertex); + var pixel1 = map.getPixelFromCoordinate(segment[0]); + var pixel2 = map.getPixelFromCoordinate(segment[1]); + var squaredDist1 = ol.coordinate.squaredDistance(coordPixel, pixel1); + var squaredDist2 = ol.coordinate.squaredDistance(coordPixel, pixel2); + var dist = Math.sqrt(Math.min(squaredDist1, squaredDist2)); + renderIntent = ol.layer.VectorLayerRenderIntent.FUTURE; + if(dist <= 10) { + vertex = squaredDist1 > squaredDist2 ? segment[1] : segment[0]; + renderIntent = ol.layer.VectorLayerRenderIntent.TEMPORARY + } + geometry.set(0, vertex[0]); + geometry.set(1, vertex[1]); + selectionLayer.updateFeatures([vertexFeature]); + this.modifiable_ = true + } + if(vertexFeature.renderIntent != renderIntent) { + selectionLayer.setRenderIntent(renderIntent, [vertexFeature]) + } + } + } +}; +ol.interaction.Modify.prototype.ignoreTemporaryLayersFilter_ = function(layer) { + return!(layer instanceof ol.layer.Vector && layer.getTemporary()) +}; +ol.interaction.Modify.prototype.insertVertex_ = function(selectionLayer, segmentData, vertex) { + var segment = segmentData[0]; + var feature = segmentData[1]; + var geometry = segmentData[2]; + var index = segmentData[3]; + var coordinates = geometry.getCoordinates(); + coordinates.splice(index + 1, 0, vertex); + var oldGeometry = geometry; + geometry = new geometry.constructor(coordinates); + var parent; + if(segmentData.length > 4) { + parent = segmentData[4]; + parent[0][parent[1]] = geometry; + feature.getGeometry().invalidateBounds() + }else { + feature.setGeometry(geometry) + } + var rTree = selectionLayer.getEditData().rTree; + rTree.remove(ol.extent.boundingExtent(segment), segmentData); + var uid = goog.getUid(feature); + var allSegments = rTree.search(geometry.getBounds(), uid); + for(var i = 0, ii = allSegments.length;i < ii;++i) { + var allSegmentsData = allSegments[i]; + if(allSegmentsData[2] === oldGeometry) { + allSegmentsData[2] = geometry; + if(allSegmentsData[3] > index) { + ++allSegmentsData[3] + } + } + } + var newSegment = [segment[0], vertex]; + var newSegmentData = [newSegment, feature, geometry, index]; + if(goog.isDef(parent)) { + newSegmentData.push(parent) + } + rTree.insert(ol.extent.boundingExtent(newSegment), newSegmentData, uid); + this.dragVertices_.push([selectionLayer, newSegmentData, 1]); + newSegment = [vertex, segment[1]]; + newSegmentData = [newSegment, feature, geometry, index + 1]; + if(goog.isDef(parent)) { + newSegmentData.push(parent) + } + rTree.insert(ol.extent.boundingExtent(newSegment), newSegmentData, uid); + this.dragVertices_.push([selectionLayer, newSegmentData, 0]) +}; +ol.interaction.Modify.prototype.removeIndex = function(evt) { + var layer = evt.target; + var rTree = layer.getEditData().rTree; + var features = evt.features; + for(var i = 0, ii = features.length;i < ii;++i) { + var feature = features[i]; + var segments = rTree.search(feature.getGeometry().getBounds(), goog.getUid(feature)); + for(var j = segments.length - 1;j >= 0;--j) { + var segment = segments[j]; + rTree.remove(ol.extent.boundingExtent(segment[0]), segment) + } + } +}; +goog.provide("ol.interaction.Select"); +goog.require("goog.array"); +goog.require("goog.object"); +goog.require("ol.Feature"); +goog.require("ol.interaction.ConditionType"); +goog.require("ol.interaction.Interaction"); +goog.require("ol.interaction.condition"); +goog.require("ol.layer.Vector"); +goog.require("ol.layer.VectorLayerRenderIntent"); +goog.require("ol.source.Vector"); +ol.interaction.Select = function(opt_options) { + var options = goog.isDef(opt_options) ? opt_options : {}; + this.condition_ = goog.isDef(options.condition) ? options.condition : ol.interaction.condition.clickOnly; + this.layerFilter_ = goog.isDef(options.layerFilter) ? options.layerFilter : null; + goog.base(this) +}; +goog.inherits(ol.interaction.Select, ol.interaction.Interaction); +ol.interaction.Select.prototype.addToSelectionData = function(layer, feature) { + var selectionData = layer.getSelectionData(); + var selectedFeature = new ol.Feature(feature.getAttributes()); + selectedFeature.setGeometry(feature.getGeometry().clone()); + selectedFeature.setFeatureId(feature.getFeatureId()); + selectedFeature.setSymbolizers(feature.getSymbolizers()); + selectedFeature.renderIntent = ol.layer.VectorLayerRenderIntent.SELECTED; + selectionData.featuresBySelectedFeatureUid[goog.getUid(selectedFeature)] = feature; + selectionData.selectedFeaturesByFeatureUid[goog.getUid(feature)] = selectedFeature; + return selectedFeature +}; +ol.interaction.Select.prototype.handleMapBrowserEvent = function(mapBrowserEvent) { + if(this.condition_(mapBrowserEvent)) { + var map = mapBrowserEvent.map; + var layers = map.getLayerGroup().getLayersArray(); + if(!goog.isNull(this.layerFilter_)) { + layers = goog.array.filter(layers, this.layerFilter_) + } + var clear = !ol.interaction.condition.shiftKeyOnly(mapBrowserEvent); + var that = this; + var select = function(featuresByLayer) { + that.select(map, featuresByLayer, layers, clear) + }; + map.getFeatures({layers:layers, pixel:mapBrowserEvent.getPixel(), success:select}) + } + return true +}; +ol.interaction.Select.prototype.removeFromSelectionData = function(layer, feature) { + var selectionData = layer.getSelectionData(); + var featureUid = goog.getUid(feature); + var selectedFeatures = selectionData.selectedFeaturesByFeatureUid; + var selectedFeature = selectedFeatures[featureUid]; + delete selectedFeatures[featureUid]; + delete selectionData.featuresBySelectedFeatureUid[goog.getUid(selectedFeature)]; + return selectedFeature +}; +ol.interaction.Select.prototype.select = function(map, featuresByLayer, layers, clear) { + for(var i = 0, ii = featuresByLayer.length;i < ii;++i) { + var layer = layers[i]; + var selectionData = layer.getSelectionData(); + var selectionLayer = selectionData.layer; + if(goog.isNull(selectionLayer)) { + selectionLayer = new ol.layer.Vector({source:new ol.source.Vector({parser:null}), style:layer instanceof ol.layer.Vector ? layer.getStyle() : null}); + selectionLayer.setTemporary(true); + selectionData.layer = selectionLayer + } + if(goog.array.indexOf(map.getLayers().getArray(), selectionLayer) == -1) { + map.addLayer(selectionLayer) + } + var features = featuresByLayer[i]; + var numFeatures = features.length; + var selectedFeatures = []; + var featuresToAdd = []; + var unselectedFeatures = []; + var featuresToRemove = []; + var selectedFeaturesByFeatureUid = selectionData.selectedFeaturesByFeatureUid; + var featuresBySelectedFeatureUid = selectionData.featuresBySelectedFeatureUid; + var previouslySelected = {}; + goog.object.extend(previouslySelected, selectedFeaturesByFeatureUid); + var feature, featureId; + if(clear) { + for(var f in featuresBySelectedFeatureUid) { + feature = featuresBySelectedFeatureUid[f]; + unselectedFeatures.push(feature); + featuresToRemove.push(this.removeFromSelectionData(layer, feature)) + } + } + for(var j = 0;j < numFeatures;++j) { + feature = features[j]; + featureId = goog.getUid(feature); + var clone = selectedFeaturesByFeatureUid[featureId]; + if(clone) { + unselectedFeatures.push(feature); + featuresToRemove.push(this.removeFromSelectionData(layer, feature)) + }else { + if(!(featureId in previouslySelected)) { + selectedFeatures.push(feature); + featuresToAdd.push(this.addToSelectionData(layer, feature)) + } + } + } + if(goog.isFunction(layer.setRenderIntent)) { + layer.setRenderIntent(ol.layer.VectorLayerRenderIntent.HIDDEN, selectedFeatures); + layer.setRenderIntent(ol.layer.VectorLayerRenderIntent.DEFAULT, unselectedFeatures) + } + selectionLayer.removeFeatures(featuresToRemove); + selectionLayer.addFeatures(featuresToAdd); + if(goog.object.getCount(selectedFeaturesByFeatureUid) == 0) { + map.removeLayer(selectionLayer) + } + } +}; +goog.provide("ol.parser.AsyncObjectFeatureParser"); +goog.provide("ol.parser.AsyncStringFeatureParser"); +goog.provide("ol.parser.DomFeatureParser"); +goog.provide("ol.parser.ObjectFeatureParser"); +goog.provide("ol.parser.ReadFeaturesOptions"); +goog.provide("ol.parser.ReadFeaturesResult"); +goog.provide("ol.parser.StringFeatureParser"); +goog.require("ol.Feature"); +ol.parser.DomFeatureParser = function() { +}; +ol.parser.DomFeatureParser.prototype.readFeaturesFromNode = goog.abstractMethod; +ol.parser.ObjectFeatureParser = function() { +}; +ol.parser.ObjectFeatureParser.prototype.readFeaturesFromObject = goog.abstractMethod; +ol.parser.StringFeatureParser = function() { +}; +ol.parser.StringFeatureParser.prototype.readFeaturesFromString = goog.abstractMethod; +ol.parser.AsyncStringFeatureParser = function() { +}; +ol.parser.AsyncStringFeatureParser.prototype.readFeaturesFromStringAsync = goog.abstractMethod; +ol.parser.AsyncObjectFeatureParser = function() { +}; +ol.parser.AsyncObjectFeatureParser.prototype.readFeaturesFromObjectAsync = goog.abstractMethod; +ol.parser.ReadFeaturesCallback; +ol.parser.ReadFeaturesMetadata; +ol.parser.ReadFeaturesOptions; +ol.parser.ReadFeaturesResult; +goog.provide("goog.dom.xml"); +goog.require("goog.dom"); +goog.require("goog.dom.NodeType"); +goog.dom.xml.MAX_XML_SIZE_KB = 2 * 1024; +goog.dom.xml.MAX_ELEMENT_DEPTH = 256; +goog.dom.xml.createDocument = function(opt_rootTagName, opt_namespaceUri) { + if(opt_namespaceUri && !opt_rootTagName) { + throw Error("Can't create document with namespace and no root tag"); + } + if(document.implementation && document.implementation.createDocument) { + return document.implementation.createDocument(opt_namespaceUri || "", opt_rootTagName || "", null) + }else { + if(typeof ActiveXObject != "undefined") { + var doc = goog.dom.xml.createMsXmlDocument_(); + if(doc) { + if(opt_rootTagName) { + doc.appendChild(doc.createNode(goog.dom.NodeType.ELEMENT, opt_rootTagName, opt_namespaceUri || "")) + } + return doc + } + } + } + throw Error("Your browser does not support creating new documents"); +}; +goog.dom.xml.loadXml = function(xml) { + if(typeof DOMParser != "undefined") { + return(new DOMParser).parseFromString(xml, "application/xml") + }else { + if(typeof ActiveXObject != "undefined") { + var doc = goog.dom.xml.createMsXmlDocument_(); + doc.loadXML(xml); + return doc + } + } + throw Error("Your browser does not support loading xml documents"); +}; +goog.dom.xml.serialize = function(xml) { + if(typeof XMLSerializer != "undefined") { + return(new XMLSerializer).serializeToString(xml) + } + var text = xml.xml; + if(text) { + return text + } + throw Error("Your browser does not support serializing XML documents"); +}; +goog.dom.xml.selectSingleNode = function(node, path) { + if(typeof node.selectSingleNode != "undefined") { + var doc = goog.dom.getOwnerDocument(node); + if(typeof doc.setProperty != "undefined") { + doc.setProperty("SelectionLanguage", "XPath") + } + return node.selectSingleNode(path) + }else { + if(document.implementation.hasFeature("XPath", "3.0")) { + var doc = goog.dom.getOwnerDocument(node); + var resolver = doc.createNSResolver(doc.documentElement); + var result = doc.evaluate(path, node, resolver, XPathResult.FIRST_ORDERED_NODE_TYPE, null); + return result.singleNodeValue + } + } + return null +}; +goog.dom.xml.selectNodes = function(node, path) { + if(typeof node.selectNodes != "undefined") { + var doc = goog.dom.getOwnerDocument(node); + if(typeof doc.setProperty != "undefined") { + doc.setProperty("SelectionLanguage", "XPath") + } + return node.selectNodes(path) + }else { + if(document.implementation.hasFeature("XPath", "3.0")) { + var doc = goog.dom.getOwnerDocument(node); + var resolver = doc.createNSResolver(doc.documentElement); + var nodes = doc.evaluate(path, node, resolver, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); + var results = []; + var count = nodes.snapshotLength; + for(var i = 0;i < count;i++) { + results.push(nodes.snapshotItem(i)) + } + return results + }else { + return[] + } + } +}; +goog.dom.xml.setAttributes = function(element, attributes) { + for(var key in attributes) { + if(attributes.hasOwnProperty(key)) { + element.setAttribute(key, attributes[key]) + } + } +}; +goog.dom.xml.createMsXmlDocument_ = function() { + var doc = new ActiveXObject("MSXML2.DOMDocument"); + if(doc) { + doc.resolveExternals = false; + doc.validateOnParse = false; + try { + doc.setProperty("ProhibitDTD", true); + doc.setProperty("MaxXMLSize", goog.dom.xml.MAX_XML_SIZE_KB); + doc.setProperty("MaxElementDepth", goog.dom.xml.MAX_ELEMENT_DEPTH) + }catch(e) { + } + } + return doc +}; +goog.provide("ol.parser.Parser"); +ol.parser.Parser = function() { +}; +goog.provide("ol.parser.XML"); +goog.require("goog.dom.xml"); +goog.require("ol.parser.Parser"); +ol.parser.XML = function() { + if(goog.global.ActiveXObject) { + this.xmldom = new ActiveXObject("Microsoft.XMLDOM") + } + this.regExes = {trimSpace:/^\s*|\s*$/g, removeSpace:/\s*/g, splitSpace:/\s+/, trimComma:/\s*,\s*/g} +}; +goog.inherits(ol.parser.XML, ol.parser.Parser); +ol.parser.XML.prototype.readNode = function(node, obj) { + if(!obj) { + obj = {} + } + var group = this.readers[node.namespaceURI] || this.readers[this.defaultNamespaceURI]; + if(group) { + var local = node.localName || node.nodeName.split(":").pop(); + var reader = group[local] || group["*"]; + if(reader) { + reader.apply(this, [node, obj]) + } + } + return obj +}; +ol.parser.XML.prototype.readChildNodes = function(node, obj) { + if(!obj) { + obj = {} + } + var children = node.childNodes; + var child; + for(var i = 0, len = children.length;i < len;++i) { + child = children[i]; + if(child.nodeType == 1) { + this.readNode(child, obj) + } + } + return obj +}; +ol.parser.XML.prototype.getChildValue = function(node, def) { + var value = def || ""; + if(node) { + for(var child = node.firstChild;child;child = child.nextSibling) { + switch(child.nodeType) { + case 3: + ; + case 4: + value += child.nodeValue; + break; + default: + break + } + } + } + return value +}; +ol.parser.XML.prototype.getAttributeNodeNS = function(node, uri, name) { + var attributeNode = null; + if(node.getAttributeNodeNS) { + attributeNode = node.getAttributeNodeNS(uri, name) + }else { + var attributes = node.attributes; + var potentialNode, fullName; + for(var i = 0, len = attributes.length;i < len;++i) { + potentialNode = attributes[i]; + if(potentialNode.namespaceURI == uri) { + fullName = potentialNode.prefix ? potentialNode.prefix + ":" + name : name; + if(fullName == potentialNode.nodeName) { + attributeNode = potentialNode; + break + } + } + } + } + return attributeNode +}; +ol.parser.XML.prototype.getAttributeNS = function(node, uri, name) { + var attributeValue = ""; + if(node.getAttributeNS) { + attributeValue = node.getAttributeNS(uri, name) || "" + }else { + var attributeNode = this.getAttributeNodeNS(node, uri, name); + if(attributeNode) { + attributeValue = attributeNode.nodeValue + } + } + return attributeValue +}; +ol.parser.XML.prototype.createElementNS = function(name, opt_uri) { + var uri = opt_uri ? opt_uri : this.defaultNamespaceURI; + var element; + if(this.xmldom) { + element = this.xmldom.createNode(1, name, uri) + }else { + element = document.createElementNS(uri, name) + } + return element +}; +ol.parser.XML.prototype.writeNode = function(name, obj, opt_uri, opt_parent) { + var child = null; + if(goog.isDef(this.writers)) { + var uri = opt_uri ? opt_uri : this.defaultNamespaceURI; + child = this.writers[uri][name].apply(this, [obj]); + if(opt_parent && child) { + opt_parent.appendChild(child) + } + } + return child +}; +ol.parser.XML.prototype.createTextNode = function(text) { + var node; + if(this.xmldom) { + node = this.xmldom.createTextNode(text) + }else { + node = document.createTextNode(text) + } + return node +}; +ol.parser.XML.prototype.setAttributeNS = function(node, uri, name, value) { + if(node.setAttributeNS) { + node.setAttributeNS(uri, name, value) + }else { + if(this.xmldom) { + if(uri) { + var attribute = node.ownerDocument.createNode(2, name, uri); + attribute.nodeValue = value; + node.setAttributeNode(attribute) + }else { + node.setAttribute(name, value) + } + }else { + throw new Error("setAttributeNS not implemented"); + } + } +}; +ol.parser.XML.prototype.serialize = function(node) { + if(this.xmldom) { + return node.xml + }else { + if(node.nodeType == 1) { + var doc = document.implementation.createDocument("", "", null); + if(doc.importNode) { + doc.appendChild(doc.importNode(node, true)) + }else { + doc.appendChild(node) + } + return goog.dom.xml.serialize(doc) + }else { + return goog.dom.xml.serialize(node) + } + } +}; +ol.parser.XML.prototype.createDocumentFragment = function() { + var element; + if(this.xmldom) { + element = this.xmldom.createDocumentFragment() + }else { + element = document.createDocumentFragment() + } + return element +}; +goog.provide("ol.parser.GPX"); +goog.require("goog.dom.xml"); +goog.require("ol.Feature"); +goog.require("ol.geom.GeometryType"); +goog.require("ol.geom.LineString"); +goog.require("ol.geom.MultiLineString"); +goog.require("ol.geom.Point"); +goog.require("ol.geom.Polygon"); +goog.require("ol.parser.DomFeatureParser"); +goog.require("ol.parser.ObjectFeatureParser"); +goog.require("ol.parser.ReadFeaturesOptions"); +goog.require("ol.parser.StringFeatureParser"); +goog.require("ol.parser.XML"); +ol.parser.GPX = function(opt_options) { + var options = (goog.isDef(opt_options) ? opt_options : {}); + this.extractAttributes = goog.isDef(options.extractAttributes) ? options.extractAttributes : true; + this.extractWaypoints = goog.isDef(options.extractWaypoints) ? options.extractWaypoints : true; + this.extractTracks = goog.isDef(options.extractTracks) ? options.extractTracks : true; + this.extractRoutes = goog.isDef(options.extractRoutes) ? options.extractRoutes : true; + this.creator = goog.isDef(options.creator) ? options.creator : "OpenLayers"; + this.defaultDesc = goog.isDef(options.defaultDesc) ? options.defaultDesc : "No description available"; + this.defaultNamespaceURI = "http://www.topografix.com/GPX/1/1"; + this.schemaLocation = "http://www.topografix.com/GPX/1/1 " + "http://www.topografix.com/GPX/1/1/gpx.xsd"; + this.readers = {"http://www.topografix.com/GPX/1/1":{"gpx":function(node, obj) { + if(!goog.isDef(obj.features)) { + obj.features = [] + } + this.readChildNodes(node, obj) + }, "wpt":function(node, obj) { + if(this.extractWaypoints) { + var properties = {}; + var coordinates = [parseFloat(node.getAttribute("lon")), parseFloat(node.getAttribute("lat"))]; + this.readChildNodes(node, properties); + var feature = new ol.Feature(properties); + var sharedVertices; + if(this.readFeaturesOptions_) { + var callback = this.readFeaturesOptions_.callback; + if(callback) { + sharedVertices = callback(feature, ol.geom.GeometryType.POINT) + } + } + var geometry = new ol.geom.Point(coordinates, sharedVertices); + feature.setGeometry(geometry); + obj.features.push(feature) + } + }, "rte":function(node, obj) { + if(this.extractRoutes || obj.force) { + var type = ol.geom.GeometryType.LINESTRING; + var container = {properties:{}, geometry:{type:type, coordinates:[]}}; + this.readChildNodes(node, container); + var feature = new ol.Feature(container.properties); + var sharedVertices; + if(this.readFeaturesOptions_) { + var callback = this.readFeaturesOptions_.callback; + if(callback) { + sharedVertices = callback(feature, type) + } + } + var geometry = new ol.geom.LineString(container.geometry.coordinates, sharedVertices); + feature.setGeometry(geometry); + obj.features.push(feature) + } + }, "rtept":function(node, container) { + var coordinate = [parseFloat(node.getAttribute("lon")), parseFloat(node.getAttribute("lat"))]; + container.geometry.coordinates.push(coordinate) + }, "trk":function(node, obj) { + if(this.extractTracks) { + var readers = this.readers[this.defaultNamespaceURI]; + obj.force = true; + readers["rte"].apply(this, arguments) + } + }, "trkseg":function(node, container) { + this.readChildNodes(node, container) + }, "trkpt":function(node, container) { + var readers = this.readers[this.defaultNamespaceURI]; + readers["rtept"].apply(this, arguments) + }, "*":function(node, obj) { + if(this.extractAttributes === true) { + var len = node.childNodes.length; + if((len === 1 || len === 2) && (node.firstChild.nodeType === 3 || node.firstChild.nodeType === 4)) { + var readers = this.readers[this.defaultNamespaceURI]; + readers["_attribute"].apply(this, arguments) + } + } + }, "_attribute":function(node, obj) { + var local = node.localName || node.nodeName.split(":").pop(); + var value = this.getChildValue(node); + if(obj.properties) { + obj.properties[local] = value.replace(this.regExes.trimSpace, "") + }else { + obj[local] = value.replace(this.regExes.trimSpace, "") + } + }}}; + this.readers["http://www.topografix.com/GPX/1/0"] = this.readers[this.defaultNamespaceURI]; + this.writers = {"http://www.topografix.com/GPX/1/1":{"_feature":function(feature) { + var geom = feature.getGeometry(); + if(geom instanceof ol.geom.Point) { + return this.writeNode("wpt", feature) + }else { + if(geom instanceof ol.geom.LineString || geom instanceof ol.geom.MultiLineString || geom instanceof ol.geom.Polygon) { + return this.writeNode("trk", feature) + } + } + }, "wpt":function(feature) { + var node = this.createElementNS("wpt"); + var geom = feature.getGeometry(); + var coordinates = geom.getCoordinates(); + node.setAttribute("lon", coordinates[0]); + node.setAttribute("lat", coordinates[1]); + var attributes = feature.getAttributes(); + var name = attributes["name"] || goog.getUid(feature).toString(); + this.writeNode("name", name, undefined, node); + var desc = attributes["description"] || this.defaultDesc; + this.writeNode("desc", desc, undefined, node); + return node + }, "trk":function(feature) { + var attributes = feature.getAttributes(); + var node = this.createElementNS("trk"); + var name = attributes["name"] || goog.getUid(feature).toString(); + this.writeNode("name", name, undefined, node); + var desc = attributes["description"] || this.defaultDesc; + this.writeNode("desc", desc, undefined, node); + var geom = feature.getGeometry(); + var i, ii; + if(geom instanceof ol.geom.LineString) { + this.writeNode("trkseg", feature.getGeometry(), undefined, node) + }else { + if(geom instanceof ol.geom.MultiLineString) { + for(i = 0, ii = geom.components.length;i < ii;++i) { + this.writeNode("trkseg", geom.components[i], undefined, node) + } + }else { + if(geom instanceof ol.geom.Polygon) { + for(i = 0, ii = geom.rings.length;i < ii;++i) { + this.writeNode("trkseg", geom.rings[i], undefined, node) + } + } + } + } + return node + }, "trkseg":function(geometry) { + var node = this.createElementNS("trkseg"); + var coordinates = geometry.getCoordinates(); + for(var i = 0, ii = coordinates.length;i < ii;++i) { + this.writeNode("trkpt", coordinates[i], undefined, node) + } + return node + }, "trkpt":function(coord) { + var node = this.createElementNS("trkpt"); + node.setAttribute("lon", coord[0]); + node.setAttribute("lat", coord[1]); + return node + }, "metadata":function(metadata) { + var node = this.createElementNS("metadata"); + if(goog.isDef(metadata["name"])) { + this.writeNode("name", metadata["name"], undefined, node) + } + if(goog.isDef(metadata["desc"])) { + this.writeNode("desc", metadata["desc"], undefined, node) + } + if(goog.isDef(metadata["author"])) { + this.writeNode("author", metadata["author"], undefined, node) + } + return node + }, "name":function(name) { + var node = this.createElementNS("name"); + node.appendChild(this.createTextNode(name)); + return node + }, "desc":function(desc) { + var node = this.createElementNS("desc"); + node.appendChild(this.createTextNode(desc)); + return node + }, "author":function(author) { + var node = this.createElementNS("author"); + node.appendChild(this.createTextNode(author)); + return node + }}}; + goog.base(this) +}; +goog.inherits(ol.parser.GPX, ol.parser.XML); +ol.parser.GPX.prototype.read = function(data) { + if(goog.isString(data)) { + data = goog.dom.xml.loadXml(data) + } + if(data && data.nodeType == 9) { + data = data.documentElement + } + var obj = ({metadata:{projection:"EPSG:4326"}}); + this.readNode(data, obj); + return obj +}; +ol.parser.GPX.prototype.readFeaturesFromString = function(str, opt_options) { + this.readFeaturesOptions_ = opt_options; + return this.read(str) +}; +ol.parser.GPX.prototype.readFeaturesFromNode = function(node, opt_options) { + this.readFeaturesOptions_ = opt_options; + return this.read(node) +}; +ol.parser.GPX.prototype.readFeaturesFromObject = function(obj, opt_options) { + this.readFeaturesOptions_ = opt_options; + return this.read(obj) +}; +ol.parser.GPX.prototype.write = function(obj) { + var features = goog.isArray(obj.features) ? obj.features : [obj.features]; + var root = this.createElementNS("gpx"); + root.setAttribute("version", "1.1"); + root.setAttribute("creator", this.creator); + this.setAttributeNS(root, "http://www.w3.org/2001/XMLSchema-instance", "xsi:schemaLocation", this.schemaLocation); + if(goog.isDef(obj.metadata)) { + this.writeNode("metadata", obj.metadata, undefined, root) + } + for(var i = 0, ii = features.length;i < ii;i++) { + this.writeNode("_feature", features[i], undefined, root) + } + return this.serialize(root) +}; +goog.provide("ol.parser.GeoJSON"); +goog.require("goog.asserts"); +goog.require("goog.object"); +goog.require("ol.Feature"); +goog.require("ol.geom.Geometry"); +goog.require("ol.geom.GeometryCollection"); +goog.require("ol.geom.GeometryType"); +goog.require("ol.geom.LineString"); +goog.require("ol.geom.MultiLineString"); +goog.require("ol.geom.MultiPoint"); +goog.require("ol.geom.MultiPolygon"); +goog.require("ol.geom.Point"); +goog.require("ol.geom.Polygon"); +goog.require("ol.geom.SharedVertices"); +goog.require("ol.parser.Parser"); +goog.require("ol.parser.ReadFeaturesOptions"); +goog.require("ol.parser.ReadFeaturesResult"); +goog.require("ol.parser.StringFeatureParser"); +ol.parser.GeoJSON = function() { +}; +goog.inherits(ol.parser.GeoJSON, ol.parser.Parser); +goog.addSingletonGetter(ol.parser.GeoJSON); +ol.parser.GeoJSON.prototype.read = function(str) { + var json = (JSON.parse(str)); + return this.parse_(json) +}; +ol.parser.GeoJSON.read = function(str) { + return ol.parser.GeoJSON.getInstance().read(str) +}; +ol.parser.GeoJSON.prototype.readFeaturesFromString = function(str, opt_options) { + var json = (JSON.parse(str)); + return this.parseAsFeatureCollection_(json, opt_options) +}; +ol.parser.GeoJSON.prototype.readFeaturesFromObject = function(object, opt_options) { + return this.parseAsFeatureCollection_(object, opt_options) +}; +ol.parser.GeoJSON.prototype.parse_ = function(json, opt_options) { + var result; + if(json.type === "FeatureCollection") { + result = this.parseFeatureCollection_((json), opt_options) + }else { + if(json.type === "Feature") { + result = this.parseFeature_((json), opt_options) + }else { + if(json.type === "GeometryCollection") { + result = this.parseGeometryCollection_((json), opt_options) + }else { + var feature = this.parseFeature_(({type:"Feature", geometry:json}), opt_options); + result = feature.getGeometry() + } + } + } + return result +}; +ol.parser.GeoJSON.prototype.parseAsFeatureCollection_ = function(json, opt_options) { + var obj = this.parse_(json, opt_options); + var features = []; + var feature; + if(obj instanceof ol.Feature) { + features = [obj] + }else { + if(obj instanceof ol.geom.Geometry) { + feature = new ol.Feature; + feature.setGeometry(obj); + features = [feature] + }else { + if(goog.isArray(obj)) { + var item, geomArray; + for(var i = 0, ii = obj.length;i < ii;++i) { + item = obj[i]; + geomArray = geomArray || item instanceof ol.geom.Geometry; + if(!geomArray) { + goog.asserts.assert(item instanceof ol.Feature, "expected feature"); + features = obj; + break + }else { + feature = new ol.Feature; + feature.setGeometry(item); + features[i] = feature + } + } + } + } + } + var projection = "EPSG:4326"; + if(goog.isDefAndNotNull(json.crs)) { + var crs = json.crs; + if(crs.type === "name") { + projection = crs.properties.name + } + } + return{features:features, metadata:{projection:projection}} +}; +ol.parser.GeoJSON.prototype.parseFeature_ = function(json, opt_options) { + var geomJson = json.geometry, geometry = null, options = opt_options || {}; + var feature = new ol.Feature(json.properties); + if(goog.isDef(json.id)) { + feature.setFeatureId(json.id) + } + if(geomJson) { + var type = geomJson.type; + var callback = options.callback; + var sharedVertices; + if(callback) { + goog.asserts.assert(type in ol.parser.GeoJSON.GeometryType, "Bad geometry type: " + type); + sharedVertices = callback(feature, ol.parser.GeoJSON.GeometryType[type]) + } + switch(type) { + case "Point": + geometry = this.parsePoint_(geomJson, sharedVertices); + break; + case "LineString": + geometry = this.parseLineString_(geomJson, sharedVertices); + break; + case "Polygon": + geometry = this.parsePolygon_(geomJson, sharedVertices); + break; + case "MultiPoint": + geometry = this.parseMultiPoint_(geomJson, sharedVertices); + break; + case "MultiLineString": + geometry = this.parseMultiLineString_(geomJson, sharedVertices); + break; + case "MultiPolygon": + geometry = this.parseMultiPolygon_(geomJson, sharedVertices); + break; + default: + throw new Error("Bad geometry type: " + type); + } + feature.setGeometry(geometry) + } + return feature +}; +ol.parser.GeoJSON.prototype.parseFeatureCollection_ = function(json, opt_options) { + var features = json.features, len = features.length, result = new Array(len), i; + for(i = 0;i < len;++i) { + result[i] = this.parseFeature_((features[i]), opt_options) + } + return result +}; +ol.parser.GeoJSON.prototype.parseGeometryCollection_ = function(json, opt_options) { + var geometries = json.geometries, len = geometries.length, result = new Array(len), i; + for(i = 0;i < len;++i) { + result[i] = this.parse_((geometries[i]), opt_options) + } + return result +}; +ol.parser.GeoJSON.prototype.parseLineString_ = function(json, opt_vertices) { + return new ol.geom.LineString(json.coordinates, opt_vertices) +}; +ol.parser.GeoJSON.prototype.parseMultiLineString_ = function(json, opt_vertices) { + return new ol.geom.MultiLineString(json.coordinates, opt_vertices) +}; +ol.parser.GeoJSON.prototype.parseMultiPoint_ = function(json, opt_vertices) { + return new ol.geom.MultiPoint(json.coordinates, opt_vertices) +}; +ol.parser.GeoJSON.prototype.parseMultiPolygon_ = function(json, opt_vertices) { + return new ol.geom.MultiPolygon(json.coordinates, opt_vertices) +}; +ol.parser.GeoJSON.prototype.parsePoint_ = function(json, opt_vertices) { + return new ol.geom.Point(json.coordinates, opt_vertices) +}; +ol.parser.GeoJSON.prototype.parsePolygon_ = function(json, opt_vertices) { + return new ol.geom.Polygon(json.coordinates, opt_vertices) +}; +ol.parser.GeoJSON.prototype.encodeGeometry_ = function(geometry) { + var type = geometry.getType(); + return({type:goog.object.findKey(ol.parser.GeoJSON.GeometryType, function(value, key) { + return value === type + }), coordinates:geometry.getCoordinates()}) +}; +ol.parser.GeoJSON.prototype.encodeGeometryCollection_ = function(collection) { + var geometries = []; + for(var i = 0, ii = collection.components.length;i < ii;++i) { + geometries.push(this.encodeGeometry_(collection.components[i])) + } + return({type:"GeometryCollection", geometries:geometries}) +}; +ol.parser.GeoJSON.prototype.encodeFeatureCollection_ = function(collection) { + var features = []; + for(var i = 0, ii = collection.length;i < ii;++i) { + features.push(this.encodeFeature_(collection[i])) + } + return({type:"FeatureCollection", features:features}) +}; +ol.parser.GeoJSON.prototype.encodeFeature_ = function(feature) { + var geometry = feature.getGeometry(), attributes = feature.getAttributes(); + var properties = goog.object.filter(attributes, function(element, index, array) { + return!(element instanceof ol.geom.Geometry) + }); + return({type:"Feature", properties:properties, geometry:this.encodeGeometry_(geometry)}) +}; +ol.parser.GeoJSON.prototype.encode_ = function(obj) { + var result; + if(obj instanceof ol.geom.GeometryCollection) { + result = this.encodeGeometryCollection_(obj) + }else { + if(obj instanceof ol.geom.Geometry) { + result = this.encodeGeometry_(obj) + }else { + if(obj instanceof ol.Feature) { + result = this.encodeFeature_(obj) + }else { + if(goog.isArray(obj)) { + result = this.encodeFeatureCollection_(obj) + } + } + } + } + return JSON.stringify(result) +}; +ol.parser.GeoJSON.write = function(obj) { + return ol.parser.GeoJSON.getInstance().write(obj) +}; +ol.parser.GeoJSON.prototype.write = function(obj) { + return this.encode_(obj) +}; +ol.parser.GeoJSON.GeometryType = {"Point":ol.geom.GeometryType.POINT, "LineString":ol.geom.GeometryType.LINESTRING, "Polygon":ol.geom.GeometryType.POLYGON, "MultiPoint":ol.geom.GeometryType.MULTIPOINT, "MultiLineString":ol.geom.GeometryType.MULTILINESTRING, "MultiPolygon":ol.geom.GeometryType.MULTIPOLYGON, "GeometryCollection":ol.geom.GeometryType.GEOMETRYCOLLECTION}; +/* + Portions of this code are from MochiKit, received by + The Closure Authors under the MIT license. All other code is Copyright + 2005-2009 The Closure Authors. All Rights Reserved. +*/ +goog.provide("goog.async.Deferred"); +goog.provide("goog.async.Deferred.AlreadyCalledError"); +goog.provide("goog.async.Deferred.CanceledError"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.require("goog.debug.Error"); +goog.require("goog.functions"); +goog.async.Deferred = function(opt_onCancelFunction, opt_defaultScope) { + this.sequence_ = []; + this.onCancelFunction_ = opt_onCancelFunction; + this.defaultScope_ = opt_defaultScope || null; + if(goog.async.Deferred.LONG_STACK_TRACES) { + this.constructorStack_ = null; + if(Error.captureStackTrace) { + var target = {stack:""}; + Error.captureStackTrace(target, goog.async.Deferred); + if(typeof target.stack == "string") { + this.constructorStack_ = target.stack.replace(/^[^\n]*\n/, "") + } + } + } +}; +goog.async.Deferred.prototype.fired_ = false; +goog.async.Deferred.prototype.hadError_ = false; +goog.async.Deferred.prototype.result_; +goog.async.Deferred.prototype.blocked_ = false; +goog.async.Deferred.prototype.blocking_ = false; +goog.async.Deferred.prototype.silentlyCanceled_ = false; +goog.async.Deferred.prototype.unhandledExceptionTimeoutId_; +goog.async.Deferred.prototype.parent_; +goog.async.Deferred.prototype.branches_ = 0; +goog.define("goog.async.Deferred.STRICT_ERRORS", false); +goog.define("goog.async.Deferred.LONG_STACK_TRACES", goog.DEBUG); +goog.async.Deferred.prototype.cancel = function(opt_deepCancel) { + if(!this.hasFired()) { + if(this.parent_) { + var parent = this.parent_; + delete this.parent_; + if(opt_deepCancel) { + parent.cancel(opt_deepCancel) + }else { + parent.branchCancel_() + } + } + if(this.onCancelFunction_) { + this.onCancelFunction_.call(this.defaultScope_, this) + }else { + this.silentlyCanceled_ = true + } + if(!this.hasFired()) { + this.errback(new goog.async.Deferred.CanceledError(this)) + } + }else { + if(this.result_ instanceof goog.async.Deferred) { + this.result_.cancel() + } + } +}; +goog.async.Deferred.prototype.branchCancel_ = function() { + this.branches_--; + if(this.branches_ <= 0) { + this.cancel() + } +}; +goog.async.Deferred.prototype.continue_ = function(isSuccess, res) { + this.blocked_ = false; + this.updateResult_(isSuccess, res) +}; +goog.async.Deferred.prototype.updateResult_ = function(isSuccess, res) { + this.fired_ = true; + this.result_ = res; + this.hadError_ = !isSuccess; + this.fire_() +}; +goog.async.Deferred.prototype.check_ = function() { + if(this.hasFired()) { + if(!this.silentlyCanceled_) { + throw new goog.async.Deferred.AlreadyCalledError(this); + } + this.silentlyCanceled_ = false + } +}; +goog.async.Deferred.prototype.callback = function(opt_result) { + this.check_(); + this.assertNotDeferred_(opt_result); + this.updateResult_(true, opt_result) +}; +goog.async.Deferred.prototype.errback = function(opt_result) { + this.check_(); + this.assertNotDeferred_(opt_result); + this.makeStackTraceLong_(opt_result); + this.updateResult_(false, opt_result) +}; +goog.async.Deferred.prototype.makeStackTraceLong_ = function(error) { + if(!goog.async.Deferred.LONG_STACK_TRACES) { + return + } + if(this.constructorStack_ && goog.isObject(error) && error.stack && /^[^\n]+(\n [^\n]+)+/.test(error.stack)) { + error.stack = error.stack + "\nDEFERRED OPERATION:\n" + this.constructorStack_ + } +}; +goog.async.Deferred.prototype.assertNotDeferred_ = function(obj) { + goog.asserts.assert(!(obj instanceof goog.async.Deferred), "An execution sequence may not be initiated with a blocking Deferred.") +}; +goog.async.Deferred.prototype.addCallback = function(cb, opt_scope) { + return this.addCallbacks(cb, null, opt_scope) +}; +goog.async.Deferred.prototype.addErrback = function(eb, opt_scope) { + return this.addCallbacks(null, eb, opt_scope) +}; +goog.async.Deferred.prototype.addBoth = function(f, opt_scope) { + return this.addCallbacks(f, f, opt_scope) +}; +goog.async.Deferred.prototype.addCallbacks = function(cb, eb, opt_scope) { + goog.asserts.assert(!this.blocking_, "Blocking Deferreds can not be re-used"); + this.sequence_.push([cb, eb, opt_scope]); + if(this.hasFired()) { + this.fire_() + } + return this +}; +goog.async.Deferred.prototype.chainDeferred = function(otherDeferred) { + this.addCallbacks(otherDeferred.callback, otherDeferred.errback, otherDeferred); + return this +}; +goog.async.Deferred.prototype.awaitDeferred = function(otherDeferred) { + return this.addCallback(goog.bind(otherDeferred.branch, otherDeferred)) +}; +goog.async.Deferred.prototype.branch = function(opt_propagateCancel) { + var d = new goog.async.Deferred; + this.chainDeferred(d); + if(opt_propagateCancel) { + d.parent_ = this; + this.branches_++ + } + return d +}; +goog.async.Deferred.prototype.hasFired = function() { + return this.fired_ +}; +goog.async.Deferred.prototype.isError = function(res) { + return res instanceof Error +}; +goog.async.Deferred.prototype.hasErrback_ = function() { + return goog.array.some(this.sequence_, function(sequenceRow) { + return goog.isFunction(sequenceRow[1]) + }) +}; +goog.async.Deferred.prototype.fire_ = function() { + if(this.unhandledExceptionTimeoutId_ && this.hasFired() && this.hasErrback_()) { + goog.global.clearTimeout(this.unhandledExceptionTimeoutId_); + delete this.unhandledExceptionTimeoutId_ + } + if(this.parent_) { + this.parent_.branches_--; + delete this.parent_ + } + var res = this.result_; + var unhandledException = false; + var isNewlyBlocked = false; + while(this.sequence_.length && !this.blocked_) { + var sequenceEntry = this.sequence_.shift(); + var callback = sequenceEntry[0]; + var errback = sequenceEntry[1]; + var scope = sequenceEntry[2]; + var f = this.hadError_ ? errback : callback; + if(f) { + try { + var ret = f.call(scope || this.defaultScope_, res); + if(goog.isDef(ret)) { + this.hadError_ = this.hadError_ && (ret == res || this.isError(ret)); + this.result_ = res = ret + } + if(res instanceof goog.async.Deferred) { + isNewlyBlocked = true; + this.blocked_ = true + } + }catch(ex) { + res = ex; + this.hadError_ = true; + this.makeStackTraceLong_(res); + if(!this.hasErrback_()) { + unhandledException = true + } + } + } + } + this.result_ = res; + if(isNewlyBlocked) { + res.addCallbacks(goog.bind(this.continue_, this, true), goog.bind(this.continue_, this, false)); + res.blocking_ = true + }else { + if(goog.async.Deferred.STRICT_ERRORS && this.isError(res) && !(res instanceof goog.async.Deferred.CanceledError)) { + this.hadError_ = true; + unhandledException = true + } + } + if(unhandledException) { + this.unhandledExceptionTimeoutId_ = goog.global.setTimeout(goog.functions.fail(res), 0) + } +}; +goog.async.Deferred.succeed = function(opt_result) { + var d = new goog.async.Deferred; + d.callback(opt_result); + return d +}; +goog.async.Deferred.fail = function(res) { + var d = new goog.async.Deferred; + d.errback(res); + return d +}; +goog.async.Deferred.canceled = function() { + var d = new goog.async.Deferred; + d.cancel(); + return d +}; +goog.async.Deferred.when = function(value, callback, opt_scope) { + if(value instanceof goog.async.Deferred) { + return value.branch(true).addCallback(callback, opt_scope) + }else { + return goog.async.Deferred.succeed(value).addCallback(callback, opt_scope) + } +}; +goog.async.Deferred.AlreadyCalledError = function(deferred) { + goog.debug.Error.call(this); + this.deferred = deferred +}; +goog.inherits(goog.async.Deferred.AlreadyCalledError, goog.debug.Error); +goog.async.Deferred.AlreadyCalledError.prototype.message = "Deferred has already fired"; +goog.async.Deferred.AlreadyCalledError.prototype.name = "AlreadyCalledError"; +goog.async.Deferred.CanceledError = function(deferred) { + goog.debug.Error.call(this); + this.deferred = deferred +}; +goog.inherits(goog.async.Deferred.CanceledError, goog.debug.Error); +goog.async.Deferred.CanceledError.prototype.message = "Deferred was canceled"; +goog.async.Deferred.CanceledError.prototype.name = "CanceledError"; +goog.provide("goog.async.DeferredList"); +goog.require("goog.async.Deferred"); +goog.async.DeferredList = function(list, opt_fireOnOneCallback, opt_fireOnOneErrback, opt_consumeErrors, opt_canceler, opt_defaultScope) { + goog.base(this, opt_canceler, opt_defaultScope); + this.list_ = list; + this.deferredResults_ = []; + this.fireOnOneCallback_ = !!opt_fireOnOneCallback; + this.fireOnOneErrback_ = !!opt_fireOnOneErrback; + this.consumeErrors_ = !!opt_consumeErrors; + this.numFinished_ = 0; + for(var i = 0;i < list.length;i++) { + var d = list[i]; + d.addCallbacks(goog.bind(this.handleCallback_, this, i, true), goog.bind(this.handleCallback_, this, i, false)) + } + if(list.length == 0 && !this.fireOnOneCallback_) { + this.callback(this.deferredResults_) + } +}; +goog.inherits(goog.async.DeferredList, goog.async.Deferred); +goog.async.DeferredList.prototype.handleCallback_ = function(index, success, result) { + this.numFinished_++; + this.deferredResults_[index] = [success, result]; + if(!this.hasFired()) { + if(this.fireOnOneCallback_ && success) { + this.callback([index, result]) + }else { + if(this.fireOnOneErrback_ && !success) { + this.errback(result) + }else { + if(this.numFinished_ == this.list_.length) { + this.callback(this.deferredResults_) + } + } + } + } + if(this.consumeErrors_ && !success) { + result = null + } + return result +}; +goog.async.DeferredList.prototype.errback = function(res) { + goog.base(this, "errback", res); + for(var i = 0;i < this.list_.length;i++) { + this.list_[i].cancel() + } +}; +goog.async.DeferredList.gatherResults = function(list) { + return(new goog.async.DeferredList(list, false, true)).addCallback(function(results) { + var output = []; + for(var i = 0;i < results.length;i++) { + output[i] = results[i][1] + } + return output + }) +}; +goog.provide("goog.date.DateLike"); +goog.date.DateLike; +goog.provide("goog.i18n.DateTimeSymbols"); +goog.provide("goog.i18n.DateTimeSymbols_af"); +goog.provide("goog.i18n.DateTimeSymbols_am"); +goog.provide("goog.i18n.DateTimeSymbols_ar"); +goog.provide("goog.i18n.DateTimeSymbols_bg"); +goog.provide("goog.i18n.DateTimeSymbols_bn"); +goog.provide("goog.i18n.DateTimeSymbols_br"); +goog.provide("goog.i18n.DateTimeSymbols_ca"); +goog.provide("goog.i18n.DateTimeSymbols_chr"); +goog.provide("goog.i18n.DateTimeSymbols_cs"); +goog.provide("goog.i18n.DateTimeSymbols_cy"); +goog.provide("goog.i18n.DateTimeSymbols_da"); +goog.provide("goog.i18n.DateTimeSymbols_de"); +goog.provide("goog.i18n.DateTimeSymbols_de_AT"); +goog.provide("goog.i18n.DateTimeSymbols_de_CH"); +goog.provide("goog.i18n.DateTimeSymbols_el"); +goog.provide("goog.i18n.DateTimeSymbols_en"); +goog.provide("goog.i18n.DateTimeSymbols_en_AU"); +goog.provide("goog.i18n.DateTimeSymbols_en_GB"); +goog.provide("goog.i18n.DateTimeSymbols_en_IE"); +goog.provide("goog.i18n.DateTimeSymbols_en_IN"); +goog.provide("goog.i18n.DateTimeSymbols_en_ISO"); +goog.provide("goog.i18n.DateTimeSymbols_en_SG"); +goog.provide("goog.i18n.DateTimeSymbols_en_US"); +goog.provide("goog.i18n.DateTimeSymbols_en_ZA"); +goog.provide("goog.i18n.DateTimeSymbols_es"); +goog.provide("goog.i18n.DateTimeSymbols_es_419"); +goog.provide("goog.i18n.DateTimeSymbols_es_ES"); +goog.provide("goog.i18n.DateTimeSymbols_et"); +goog.provide("goog.i18n.DateTimeSymbols_eu"); +goog.provide("goog.i18n.DateTimeSymbols_fa"); +goog.provide("goog.i18n.DateTimeSymbols_fi"); +goog.provide("goog.i18n.DateTimeSymbols_fil"); +goog.provide("goog.i18n.DateTimeSymbols_fr"); +goog.provide("goog.i18n.DateTimeSymbols_fr_CA"); +goog.provide("goog.i18n.DateTimeSymbols_gl"); +goog.provide("goog.i18n.DateTimeSymbols_gsw"); +goog.provide("goog.i18n.DateTimeSymbols_gu"); +goog.provide("goog.i18n.DateTimeSymbols_haw"); +goog.provide("goog.i18n.DateTimeSymbols_he"); +goog.provide("goog.i18n.DateTimeSymbols_hi"); +goog.provide("goog.i18n.DateTimeSymbols_hr"); +goog.provide("goog.i18n.DateTimeSymbols_hu"); +goog.provide("goog.i18n.DateTimeSymbols_id"); +goog.provide("goog.i18n.DateTimeSymbols_in"); +goog.provide("goog.i18n.DateTimeSymbols_is"); +goog.provide("goog.i18n.DateTimeSymbols_it"); +goog.provide("goog.i18n.DateTimeSymbols_iw"); +goog.provide("goog.i18n.DateTimeSymbols_ja"); +goog.provide("goog.i18n.DateTimeSymbols_kn"); +goog.provide("goog.i18n.DateTimeSymbols_ko"); +goog.provide("goog.i18n.DateTimeSymbols_ln"); +goog.provide("goog.i18n.DateTimeSymbols_lt"); +goog.provide("goog.i18n.DateTimeSymbols_lv"); +goog.provide("goog.i18n.DateTimeSymbols_ml"); +goog.provide("goog.i18n.DateTimeSymbols_mr"); +goog.provide("goog.i18n.DateTimeSymbols_ms"); +goog.provide("goog.i18n.DateTimeSymbols_mt"); +goog.provide("goog.i18n.DateTimeSymbols_nb"); +goog.provide("goog.i18n.DateTimeSymbols_nl"); +goog.provide("goog.i18n.DateTimeSymbols_no"); +goog.provide("goog.i18n.DateTimeSymbols_or"); +goog.provide("goog.i18n.DateTimeSymbols_pl"); +goog.provide("goog.i18n.DateTimeSymbols_pt"); +goog.provide("goog.i18n.DateTimeSymbols_pt_BR"); +goog.provide("goog.i18n.DateTimeSymbols_pt_PT"); +goog.provide("goog.i18n.DateTimeSymbols_ro"); +goog.provide("goog.i18n.DateTimeSymbols_ru"); +goog.provide("goog.i18n.DateTimeSymbols_sk"); +goog.provide("goog.i18n.DateTimeSymbols_sl"); +goog.provide("goog.i18n.DateTimeSymbols_sq"); +goog.provide("goog.i18n.DateTimeSymbols_sr"); +goog.provide("goog.i18n.DateTimeSymbols_sv"); +goog.provide("goog.i18n.DateTimeSymbols_sw"); +goog.provide("goog.i18n.DateTimeSymbols_ta"); +goog.provide("goog.i18n.DateTimeSymbols_te"); +goog.provide("goog.i18n.DateTimeSymbols_th"); +goog.provide("goog.i18n.DateTimeSymbols_tl"); +goog.provide("goog.i18n.DateTimeSymbols_tr"); +goog.provide("goog.i18n.DateTimeSymbols_uk"); +goog.provide("goog.i18n.DateTimeSymbols_ur"); +goog.provide("goog.i18n.DateTimeSymbols_vi"); +goog.provide("goog.i18n.DateTimeSymbols_zh"); +goog.provide("goog.i18n.DateTimeSymbols_zh_CN"); +goog.provide("goog.i18n.DateTimeSymbols_zh_HK"); +goog.provide("goog.i18n.DateTimeSymbols_zh_TW"); +goog.provide("goog.i18n.DateTimeSymbols_zu"); +goog.i18n.DateTimeSymbols_en_ISO = {ERAS:["BC", "AD"], ERANAMES:["Before Christ", "Anno Domini"], NARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], STANDALONEMONTHS:["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", +"November", "December"], SHORTMONTHS:["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], STANDALONESHORTMONTHS:["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], WEEKDAYS:["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], STANDALONEWEEKDAYS:["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], SHORTWEEKDAYS:["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], STANDALONESHORTWEEKDAYS:["Sun", +"Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], NARROWWEEKDAYS:["S", "M", "T", "W", "T", "F", "S"], STANDALONENARROWWEEKDAYS:["S", "M", "T", "W", "T", "F", "S"], SHORTQUARTERS:["Q1", "Q2", "Q3", "Q4"], QUARTERS:["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"], AMPMS:["AM", "PM"], DATEFORMATS:["EEEE, y MMMM dd", "y MMMM d", "y MMM d", "yyyy-MM-dd"], TIMEFORMATS:["HH:mm:ss v", "HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} 'at' {0}", "{1} 'at' {0}", "{1}, {0}", "{1}, {0}"], AVAILABLEFORMATS:{"Md":"M/d", +"MMMMd":"MMMM d", "MMMd":"MMM d"}, FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:3}; +goog.i18n.DateTimeSymbols_af = {ERAS:["v.C.", "n.C."], ERANAMES:["voor Christus", "na Christus"], NARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["Januarie", "Februarie", "Maart", "April", "Mei", "Junie", "Julie", "Augustus", "September", "Oktober", "November", "Desember"], STANDALONEMONTHS:["Januarie", "Februarie", "Maart", "April", "Mei", "Junie", "Julie", "Augustus", "September", +"Oktober", "November", "Desember"], SHORTMONTHS:["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des"], STANDALONESHORTMONTHS:["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des"], WEEKDAYS:["Sondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrydag", "Saterdag"], STANDALONEWEEKDAYS:["Sondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrydag", "Saterdag"], SHORTWEEKDAYS:["So", "Ma", "Di", "Wo", "Do", "Vr", "Sa"], STANDALONESHORTWEEKDAYS:["So", +"Ma", "Di", "Wo", "Do", "Vr", "Sa"], NARROWWEEKDAYS:["S", "M", "D", "W", "D", "V", "S"], STANDALONENARROWWEEKDAYS:["S", "M", "D", "W", "D", "V", "S"], SHORTQUARTERS:["K1", "K2", "K3", "K4"], QUARTERS:["1ste kwartaal", "2de kwartaal", "3de kwartaal", "4de kwartaal"], AMPMS:["vm.", "nm."], DATEFORMATS:["EEEE dd MMMM y", "dd MMMM y", "dd MMM y", "y-MM-dd"], TIMEFORMATS:["h:mm:ss a zzzz", "h:mm:ss a z", "h:mm:ss a", "h:mm a"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:6, +WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_am = {ERAS:["\u12d3/\u12d3", "\u12d3/\u121d"], ERANAMES:["\u12d3\u1218\u1270 \u12d3\u1208\u121d", "\u12d3\u1218\u1270 \u121d\u1215\u1228\u1275"], NARROWMONTHS:["\u1303", "\u134c", "\u121b", "\u12a4", "\u121c", "\u1301", "\u1301", "\u12a6", "\u1234", "\u12a6", "\u1296", "\u12f2"], STANDALONENARROWMONTHS:["\u1303", "\u134c", "\u121b", "\u12a4", "\u121c", "\u1301", "\u1301", "\u12a6", "\u1234", "\u12a6", "\u1296", "\u12f2"], MONTHS:["\u1303\u1295\u12e9\u12c8\u122a", "\u134c\u1265\u1229\u12c8\u122a", +"\u121b\u122d\u127d", "\u12a4\u1355\u122a\u120d", "\u121c\u12ed", "\u1301\u1295", "\u1301\u120b\u12ed", "\u12a6\u1308\u1235\u1275", "\u1234\u1355\u1274\u121d\u1260\u122d", "\u12a6\u12ad\u1270\u12cd\u1260\u122d", "\u1296\u126c\u121d\u1260\u122d", "\u12f2\u1234\u121d\u1260\u122d"], STANDALONEMONTHS:["\u1303\u1295\u12e9\u12c8\u122a", "\u134c\u1265\u1229\u12c8\u122a", "\u121b\u122d\u127d", "\u12a4\u1355\u122a\u120d", "\u121c\u12ed", "\u1301\u1295", "\u1301\u120b\u12ed", "\u12a6\u1308\u1235\u1275", "\u1234\u1355\u1274\u121d\u1260\u122d", +"\u12a6\u12ad\u1276\u1260\u122d", "\u1296\u126c\u121d\u1260\u122d", "\u12f2\u1234\u121d\u1260\u122d"], SHORTMONTHS:["\u1303\u1295\u12e9", "\u134c\u1265\u1229", "\u121b\u122d\u127d", "\u12a4\u1355\u122a", "\u121c\u12ed", "\u1301\u1295", "\u1301\u120b\u12ed", "\u12a6\u1308\u1235", "\u1234\u1355\u1274", "\u12a6\u12ad\u1270", "\u1296\u126c\u121d", "\u12f2\u1234\u121d"], STANDALONESHORTMONTHS:["\u1303\u1295\u12e9", "\u134c\u1265\u1229", "\u121b\u122d\u127d", "\u12a4\u1355\u122a", "\u121c\u12ed", "\u1301\u1295", +"\u1301\u120b\u12ed", "\u12a6\u1308\u1235", "\u1234\u1355\u1274", "\u12a6\u12ad\u1276", "\u1296\u126c\u121d", "\u12f2\u1234\u121d"], WEEKDAYS:["\u12a5\u1211\u12f5", "\u1230\u129e", "\u121b\u12ad\u1230\u129e", "\u1228\u1261\u12d5", "\u1210\u1219\u1235", "\u12d3\u122d\u1265", "\u1245\u12f3\u121c"], STANDALONEWEEKDAYS:["\u12a5\u1211\u12f5", "\u1230\u129e", "\u121b\u12ad\u1230\u129e", "\u1228\u1261\u12d5", "\u1210\u1219\u1235", "\u12d3\u122d\u1265", "\u1245\u12f3\u121c"], SHORTWEEKDAYS:["\u12a5\u1211\u12f5", +"\u1230\u129e", "\u121b\u12ad\u1230", "\u1228\u1261\u12d5", "\u1210\u1219\u1235", "\u12d3\u122d\u1265", "\u1245\u12f3\u121c"], STANDALONESHORTWEEKDAYS:["\u12a5\u1211\u12f5", "\u1230\u129e", "\u121b\u12ad\u1230", "\u1228\u1261\u12d5", "\u1210\u1219\u1235", "\u12d3\u122d\u1265", "\u1245\u12f3\u121c"], NARROWWEEKDAYS:["\u12a5", "\u1230", "\u121b", "\u1228", "\u1210", "\u12d3", "\u1245"], STANDALONENARROWWEEKDAYS:["\u12a5", "\u1230", "\u121b", "\u1228", "\u1210", "\u12d3", "\u1245"], SHORTQUARTERS:["\u1229\u12651", +"\u1229\u12652", "\u1229\u12653", "\u1229\u12654"], QUARTERS:["1\u129b\u12cd \u1229\u1265", "\u1201\u1208\u1270\u129b\u12cd \u1229\u1265", "3\u129b\u12cd \u1229\u1265", "4\u129b\u12cd \u1229\u1265"], AMPMS:["\u1325\u12cb\u1275", "\u12a8\u1230\u12d3\u1275"], DATEFORMATS:["EEEE, d MMMM y", "d MMMM y", "d MMM y", "dd/MM/y"], TIMEFORMATS:["h:mm:ss a zzzz", "h:mm:ss a z", "h:mm:ss a", "h:mm a"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:6, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_ar = {ZERODIGIT:1632, ERAS:["\u0642.\u0645", "\u0645"], ERANAMES:["\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f", "\u0645\u064a\u0644\u0627\u062f\u064a"], NARROWMONTHS:["\u064a", "\u0641", "\u0645", "\u0623", "\u0648", "\u0646", "\u0644", "\u063a", "\u0633", "\u0643", "\u0628", "\u062f"], STANDALONENARROWMONTHS:["\u064a", "\u0641", "\u0645", "\u0623", "\u0648", "\u0646", "\u0644", "\u063a", "\u0633", "\u0643", "\u0628", "\u062f"], MONTHS:["\u064a\u0646\u0627\u064a\u0631", +"\u0641\u0628\u0631\u0627\u064a\u0631", "\u0645\u0627\u0631\u0633", "\u0623\u0628\u0631\u064a\u0644", "\u0645\u0627\u064a\u0648", "\u064a\u0648\u0646\u064a\u0648", "\u064a\u0648\u0644\u064a\u0648", "\u0623\u063a\u0633\u0637\u0633", "\u0633\u0628\u062a\u0645\u0628\u0631", "\u0623\u0643\u062a\u0648\u0628\u0631", "\u0646\u0648\u0641\u0645\u0628\u0631", "\u062f\u064a\u0633\u0645\u0628\u0631"], STANDALONEMONTHS:["\u064a\u0646\u0627\u064a\u0631", "\u0641\u0628\u0631\u0627\u064a\u0631", "\u0645\u0627\u0631\u0633", +"\u0623\u0628\u0631\u064a\u0644", "\u0645\u0627\u064a\u0648", "\u064a\u0648\u0646\u064a\u0648", "\u064a\u0648\u0644\u064a\u0648", "\u0623\u063a\u0633\u0637\u0633", "\u0633\u0628\u062a\u0645\u0628\u0631", "\u0623\u0643\u062a\u0648\u0628\u0631", "\u0646\u0648\u0641\u0645\u0628\u0631", "\u062f\u064a\u0633\u0645\u0628\u0631"], SHORTMONTHS:["\u064a\u0646\u0627\u064a\u0631", "\u0641\u0628\u0631\u0627\u064a\u0631", "\u0645\u0627\u0631\u0633", "\u0623\u0628\u0631\u064a\u0644", "\u0645\u0627\u064a\u0648", +"\u064a\u0648\u0646\u064a\u0648", "\u064a\u0648\u0644\u064a\u0648", "\u0623\u063a\u0633\u0637\u0633", "\u0633\u0628\u062a\u0645\u0628\u0631", "\u0623\u0643\u062a\u0648\u0628\u0631", "\u0646\u0648\u0641\u0645\u0628\u0631", "\u062f\u064a\u0633\u0645\u0628\u0631"], STANDALONESHORTMONTHS:["\u064a\u0646\u0627\u064a\u0631", "\u0641\u0628\u0631\u0627\u064a\u0631", "\u0645\u0627\u0631\u0633", "\u0623\u0628\u0631\u064a\u0644", "\u0645\u0627\u064a\u0648", "\u064a\u0648\u0646\u064a\u0648", "\u064a\u0648\u0644\u064a\u0648", +"\u0623\u063a\u0633\u0637\u0633", "\u0633\u0628\u062a\u0645\u0628\u0631", "\u0623\u0643\u062a\u0648\u0628\u0631", "\u0646\u0648\u0641\u0645\u0628\u0631", "\u062f\u064a\u0633\u0645\u0628\u0631"], WEEKDAYS:["\u0627\u0644\u0623\u062d\u062f", "\u0627\u0644\u0627\u062b\u0646\u064a\u0646", "\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621", "\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621", "\u0627\u0644\u062e\u0645\u064a\u0633", "\u0627\u0644\u062c\u0645\u0639\u0629", "\u0627\u0644\u0633\u0628\u062a"], +STANDALONEWEEKDAYS:["\u0627\u0644\u0623\u062d\u062f", "\u0627\u0644\u0627\u062b\u0646\u064a\u0646", "\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621", "\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621", "\u0627\u0644\u062e\u0645\u064a\u0633", "\u0627\u0644\u062c\u0645\u0639\u0629", "\u0627\u0644\u0633\u0628\u062a"], SHORTWEEKDAYS:["\u0627\u0644\u0623\u062d\u062f", "\u0627\u0644\u0627\u062b\u0646\u064a\u0646", "\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621", "\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621", +"\u0627\u0644\u062e\u0645\u064a\u0633", "\u0627\u0644\u062c\u0645\u0639\u0629", "\u0627\u0644\u0633\u0628\u062a"], STANDALONESHORTWEEKDAYS:["\u0627\u0644\u0623\u062d\u062f", "\u0627\u0644\u0627\u062b\u0646\u064a\u0646", "\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621", "\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621", "\u0627\u0644\u062e\u0645\u064a\u0633", "\u0627\u0644\u062c\u0645\u0639\u0629", "\u0627\u0644\u0633\u0628\u062a"], NARROWWEEKDAYS:["\u062d", "\u0646", "\u062b", "\u0631", "\u062e", +"\u062c", "\u0633"], STANDALONENARROWWEEKDAYS:["\u062d", "\u0646", "\u062b", "\u0631", "\u062e", "\u062c", "\u0633"], SHORTQUARTERS:["\u0627\u0644\u0631\u0628\u0639 \u0627\u0644\u0623\u0648\u0644", "\u0627\u0644\u0631\u0628\u0639 \u0627\u0644\u062b\u0627\u0646\u064a", "\u0627\u0644\u0631\u0628\u0639 \u0627\u0644\u062b\u0627\u0644\u062b", "\u0627\u0644\u0631\u0628\u0639 \u0627\u0644\u0631\u0627\u0628\u0639"], QUARTERS:["\u0627\u0644\u0631\u0628\u0639 \u0627\u0644\u0623\u0648\u0644", "\u0627\u0644\u0631\u0628\u0639 \u0627\u0644\u062b\u0627\u0646\u064a", +"\u0627\u0644\u0631\u0628\u0639 \u0627\u0644\u062b\u0627\u0644\u062b", "\u0627\u0644\u0631\u0628\u0639 \u0627\u0644\u0631\u0627\u0628\u0639"], AMPMS:["\u0635", "\u0645"], DATEFORMATS:["EEEE\u060c d MMMM\u060c y", "d MMMM\u060c y", "dd\u200f/MM\u200f/y", "d\u200f/M\u200f/y"], TIMEFORMATS:["h:mm:ss a zzzz", "h:mm:ss a z", "h:mm:ss a", "h:mm a"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:5, WEEKENDRANGE:[4, 5], FIRSTWEEKCUTOFFDAY:4}; +goog.i18n.DateTimeSymbols_bg = {ERAS:["\u043f\u0440. \u043d. \u0435.", "\u043e\u0442 \u043d. \u0435."], ERANAMES:["\u043f\u0440.\u0425\u0440.", "\u0441\u043b.\u0425\u0440."], NARROWMONTHS:["\u044f", "\u0444", "\u043c", "\u0430", "\u043c", "\u044e", "\u044e", "\u0430", "\u0441", "\u043e", "\u043d", "\u0434"], STANDALONENARROWMONTHS:["\u044f", "\u0444", "\u043c", "\u0430", "\u043c", "\u044e", "\u044e", "\u0430", "\u0441", "\u043e", "\u043d", "\u0434"], MONTHS:["\u044f\u043d\u0443\u0430\u0440\u0438", +"\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438", "\u043c\u0430\u0440\u0442", "\u0430\u043f\u0440\u0438\u043b", "\u043c\u0430\u0439", "\u044e\u043d\u0438", "\u044e\u043b\u0438", "\u0430\u0432\u0433\u0443\u0441\u0442", "\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438", "\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438", "\u043d\u043e\u0435\u043c\u0432\u0440\u0438", "\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438"], STANDALONEMONTHS:["\u044f\u043d\u0443\u0430\u0440\u0438", "\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438", +"\u043c\u0430\u0440\u0442", "\u0430\u043f\u0440\u0438\u043b", "\u043c\u0430\u0439", "\u044e\u043d\u0438", "\u044e\u043b\u0438", "\u0430\u0432\u0433\u0443\u0441\u0442", "\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438", "\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438", "\u043d\u043e\u0435\u043c\u0432\u0440\u0438", "\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438"], SHORTMONTHS:["\u044f\u043d.", "\u0444\u0435\u0432\u0440.", "\u043c\u0430\u0440\u0442", "\u0430\u043f\u0440.", "\u043c\u0430\u0439", +"\u044e\u043d\u0438", "\u044e\u043b\u0438", "\u0430\u0432\u0433.", "\u0441\u0435\u043f\u0442.", "\u043e\u043a\u0442.", "\u043d\u043e\u0435\u043c.", "\u0434\u0435\u043a."], STANDALONESHORTMONTHS:["\u044f\u043d.", "\u0444\u0435\u0432\u0440.", "\u043c\u0430\u0440\u0442", "\u0430\u043f\u0440.", "\u043c\u0430\u0439", "\u044e\u043d\u0438", "\u044e\u043b\u0438", "\u0430\u0432\u0433.", "\u0441\u0435\u043f\u0442.", "\u043e\u043a\u0442.", "\u043d\u043e\u0435\u043c.", "\u0434\u0435\u043a."], WEEKDAYS:["\u043d\u0435\u0434\u0435\u043b\u044f", +"\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a", "\u0432\u0442\u043e\u0440\u043d\u0438\u043a", "\u0441\u0440\u044f\u0434\u0430", "\u0447\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a", "\u043f\u0435\u0442\u044a\u043a", "\u0441\u044a\u0431\u043e\u0442\u0430"], STANDALONEWEEKDAYS:["\u043d\u0435\u0434\u0435\u043b\u044f", "\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a", "\u0432\u0442\u043e\u0440\u043d\u0438\u043a", "\u0441\u0440\u044f\u0434\u0430", "\u0447\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a", +"\u043f\u0435\u0442\u044a\u043a", "\u0441\u044a\u0431\u043e\u0442\u0430"], SHORTWEEKDAYS:["\u043d\u0434", "\u043f\u043d", "\u0432\u0442", "\u0441\u0440", "\u0447\u0442", "\u043f\u0442", "\u0441\u0431"], STANDALONESHORTWEEKDAYS:["\u043d\u0434", "\u043f\u043d", "\u0432\u0442", "\u0441\u0440", "\u0447\u0442", "\u043f\u0442", "\u0441\u0431"], NARROWWEEKDAYS:["\u043d", "\u043f", "\u0432", "\u0441", "\u0447", "\u043f", "\u0441"], STANDALONENARROWWEEKDAYS:["\u043d", "\u043f", "\u0432", "\u0441", "\u0447", +"\u043f", "\u0441"], SHORTQUARTERS:["I \u0442\u0440\u0438\u043c.", "II \u0442\u0440\u0438\u043c.", "III \u0442\u0440\u0438\u043c.", "IV \u0442\u0440\u0438\u043c."], QUARTERS:["1-\u0432\u043e \u0442\u0440\u0438\u043c\u0435\u0441\u0435\u0447\u0438\u0435", "2-\u0440\u043e \u0442\u0440\u0438\u043c\u0435\u0441\u0435\u0447\u0438\u0435", "3-\u0442\u043e \u0442\u0440\u0438\u043c\u0435\u0441\u0435\u0447\u0438\u0435", "4-\u0442\u043e \u0442\u0440\u0438\u043c\u0435\u0441\u0435\u0447\u0438\u0435"], AMPMS:["\u043f\u0440. \u043e\u0431.", +"\u0441\u043b. \u043e\u0431."], DATEFORMATS:["dd MMMM y, EEEE", "dd MMMM y", "dd.MM.y", "dd.MM.yy"], TIMEFORMATS:["HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1}, {0}", "{1}, {0}", "{1}, {0}", "{1}, {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:3}; +goog.i18n.DateTimeSymbols_bn = {ZERODIGIT:2534, ERAS:["\u0996\u09c3\u09b7\u09cd\u099f\u09aa\u09c2\u09b0\u09cd\u09ac", "\u0996\u09c3\u09b7\u09cd\u099f\u09be\u09ac\u09cd\u09a6"], ERANAMES:["\u0996\u09c3\u09b7\u09cd\u099f\u09aa\u09c2\u09b0\u09cd\u09ac", "\u0996\u09c3\u09b7\u09cd\u099f\u09be\u09ac\u09cd\u09a6"], NARROWMONTHS:["\u099c\u09be", "\u09ab\u09c7", "\u09ae\u09be", "\u098f", "\u09ae\u09c7", "\u099c\u09c1\u09a8", "\u099c\u09c1", "\u0986", "\u09b8\u09c7", "\u0985", "\u09a8", "\u09a1\u09bf"], STANDALONENARROWMONTHS:["\u099c\u09be", +"\u09ab\u09c7", "\u09ae\u09be", "\u098f", "\u09ae\u09c7", "\u099c\u09c1\u09a8", "\u099c\u09c1", "\u0986", "\u09b8\u09c7", "\u0985", "\u09a8", "\u09a1\u09bf"], MONTHS:["\u099c\u09be\u09a8\u09c1\u09af\u09bc\u09be\u09b0\u09c0", "\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09af\u09bc\u09be\u09b0\u09c0", "\u09ae\u09be\u09b0\u09cd\u099a", "\u098f\u09aa\u09cd\u09b0\u09bf\u09b2", "\u09ae\u09c7", "\u099c\u09c1\u09a8", "\u099c\u09c1\u09b2\u09be\u0987", "\u0986\u0997\u09b8\u09cd\u099f", "\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0", +"\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0", "\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0", "\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0"], STANDALONEMONTHS:["\u099c\u09be\u09a8\u09c1\u09af\u09bc\u09be\u09b0\u09c0", "\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09af\u09bc\u09be\u09b0\u09c0", "\u09ae\u09be\u09b0\u09cd\u099a", "\u098f\u09aa\u09cd\u09b0\u09bf\u09b2", "\u09ae\u09c7", "\u099c\u09c1\u09a8", "\u099c\u09c1\u09b2\u09be\u0987", "\u0986\u0997\u09b8\u09cd\u099f", "\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0", +"\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0", "\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0", "\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0"], SHORTMONTHS:["\u099c\u09be\u09a8\u09c1\u09af\u09bc\u09be\u09b0\u09c0", "\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09af\u09bc\u09be\u09b0\u09c0", "\u09ae\u09be\u09b0\u09cd\u099a", "\u098f\u09aa\u09cd\u09b0\u09bf\u09b2", "\u09ae\u09c7", "\u099c\u09c1\u09a8", "\u099c\u09c1\u09b2\u09be\u0987", "\u0986\u0997\u09b8\u09cd\u099f", "\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0", +"\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0", "\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0", "\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0"], STANDALONESHORTMONTHS:["\u099c\u09be\u09a8\u09c1\u09af\u09bc\u09be\u09b0\u09c0", "\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09af\u09bc\u09be\u09b0\u09c0", "\u09ae\u09be\u09b0\u09cd\u099a", "\u098f\u09aa\u09cd\u09b0\u09bf\u09b2", "\u09ae\u09c7", "\u099c\u09c1\u09a8", "\u099c\u09c1\u09b2\u09be\u0987", "\u0986\u0997\u09b8\u09cd\u099f", "\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0", +"\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0", "\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0", "\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0"], WEEKDAYS:["\u09b0\u09ac\u09bf\u09ac\u09be\u09b0", "\u09b8\u09cb\u09ae\u09ac\u09be\u09b0", "\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09b0", "\u09ac\u09c1\u09a7\u09ac\u09be\u09b0", "\u09ac\u09c3\u09b9\u09b7\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0", "\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0", "\u09b6\u09a8\u09bf\u09ac\u09be\u09b0"], STANDALONEWEEKDAYS:["\u09b0\u09ac\u09bf\u09ac\u09be\u09b0", +"\u09b8\u09cb\u09ae\u09ac\u09be\u09b0", "\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09b0", "\u09ac\u09c1\u09a7\u09ac\u09be\u09b0", "\u09ac\u09c3\u09b9\u09b7\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0", "\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0", "\u09b6\u09a8\u09bf\u09ac\u09be\u09b0"], SHORTWEEKDAYS:["\u09b0\u09ac\u09bf", "\u09b8\u09cb\u09ae", "\u09ae\u0999\u09cd\u0997\u09b2", "\u09ac\u09c1\u09a7", "\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf", "\u09b6\u09c1\u0995\u09cd\u09b0", "\u09b6\u09a8\u09bf"], +STANDALONESHORTWEEKDAYS:["\u09b0\u09ac\u09bf", "\u09b8\u09cb\u09ae", "\u09ae\u0999\u09cd\u0997\u09b2", "\u09ac\u09c1\u09a7", "\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf", "\u09b6\u09c1\u0995\u09cd\u09b0", "\u09b6\u09a8\u09bf"], NARROWWEEKDAYS:["\u09b0", "\u09b8\u09cb", "\u09ae", "\u09ac\u09c1", "\u09ac\u09c3", "\u09b6\u09c1", "\u09b6"], STANDALONENARROWWEEKDAYS:["\u09b0", "\u09b8\u09cb", "\u09ae", "\u09ac\u09c1", "\u09ac\u09c3", "\u09b6\u09c1", "\u09b6"], SHORTQUARTERS:["\u099a\u09a4\u09c1\u09b0\u09cd\u09a5\u09be\u0982\u09b6 \u09e7", +"\u099a\u09a4\u09c1\u09b0\u09cd\u09a5\u09be\u0982\u09b6 \u09e8", "\u099a\u09a4\u09c1\u09b0\u09cd\u09a5\u09be\u0982\u09b6 \u09e9", "\u099a\u09a4\u09c1\u09b0\u09cd\u09a5\u09be\u0982\u09b6 \u09ea"], QUARTERS:["\u09aa\u09cd\u09b0\u09a5\u09ae \u099a\u09a4\u09c1\u09b0\u09cd\u09a5\u09be\u0982\u09b6", "\u09a6\u09cd\u09ac\u09bf\u09a4\u09c0\u09af\u09bc \u099a\u09a4\u09c1\u09b0\u09cd\u09a5\u09be\u0982\u09b6", "\u09a4\u09c3\u09a4\u09c0\u09af\u09bc \u099a\u09a4\u09c1\u09b0\u09cd\u09a5\u09be\u0982\u09b6", "\u099a\u09a4\u09c1\u09b0\u09cd\u09a5 \u099a\u09a4\u09c1\u09b0\u09cd\u09a5\u09be\u0982\u09b6"], +AMPMS:["am", "pm"], DATEFORMATS:["EEEE, d MMMM, y", "d MMMM, y", "d MMM, y", "d/M/yy"], TIMEFORMATS:["h:mm:ss a zzzz", "h:mm:ss a z", "h:mm:ss a", "h:mm a"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:4, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:3}; +goog.i18n.DateTimeSymbols_br = {ERAS:["BCE", "CE"], ERANAMES:["BCE", "CE"], NARROWMONTHS:["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], STANDALONENARROWMONTHS:["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], MONTHS:["Genver", "C\u02bchwevrer", "Meurzh", "Ebrel", "Mae", "Mezheven", "Gouere", "Eost", "Gwengolo", "Here", "Du", "Kerzu"], STANDALONEMONTHS:["Genver", "C\u02bchwevrer", "Meurzh", "Ebrel", "Mae", "Mezheven", "Gouere", "Eost", "Gwengolo", "Here", "Du", "Kerzu"], +SHORTMONTHS:["Gen", "C\u02bchwe", "Meur", "Ebr", "Mae", "Mezh", "Goue", "Eost", "Gwen", "Here", "Du", "Ker"], STANDALONESHORTMONTHS:["Gen", "C\u02bchwe", "Meur", "Ebr", "Mae", "Mezh", "Goue", "Eost", "Gwen", "Here", "Du", "Ker"], WEEKDAYS:["Sul", "Lun", "Meurzh", "Merc\u02bcher", "Yaou", "Gwener", "Sadorn"], STANDALONEWEEKDAYS:["Sul", "Lun", "Meurzh", "Merc\u02bcher", "Yaou", "Gwener", "Sadorn"], SHORTWEEKDAYS:["sul", "lun", "meu.", "mer.", "yaou", "gwe.", "sad."], STANDALONESHORTWEEKDAYS:["sul", +"lun", "meu.", "mer.", "yaou", "gwe.", "sad."], NARROWWEEKDAYS:["su", "lu", "mz", "mc", "ya", "gw", "sa"], STANDALONENARROWWEEKDAYS:["su", "lu", "mz", "mc", "ya", "gw", "sa"], SHORTQUARTERS:["Q1", "Q2", "Q3", "Q4"], QUARTERS:["Q1", "Q2", "Q3", "Q4"], AMPMS:["AM", "PM"], DATEFORMATS:["y MMMM d, EEEE", "y MMMM d", "y MMM d", "y-MM-dd"], TIMEFORMATS:["HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], +FIRSTWEEKCUTOFFDAY:6}; +goog.i18n.DateTimeSymbols_ca = {ERAS:["aC", "dC"], ERANAMES:["abans de Crist", "despr\u00e9s de Crist"], NARROWMONTHS:["G", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["g", "f", "m", "a", "m", "j", "j", "a", "s", "o", "n", "d"], MONTHS:["de gener", "de febrer", "de mar\u00e7", "d\u2019abril", "de maig", "de juny", "de juliol", "d\u2019agost", "de setembre", "d\u2019octubre", "de novembre", "de desembre"], STANDALONEMONTHS:["gener", "febrer", "mar\u00e7", "abril", +"maig", "juny", "juliol", "agost", "setembre", "octubre", "novembre", "desembre"], SHORTMONTHS:["de gen.", "de febr.", "de mar\u00e7", "d\u2019abr.", "de maig", "de juny", "de jul.", "d\u2019ag.", "de set.", "d\u2019oct.", "de nov.", "de des."], STANDALONESHORTMONTHS:["gen.", "febr.", "mar\u00e7", "abr.", "maig", "juny", "jul.", "ag.", "set.", "oct.", "nov.", "des."], WEEKDAYS:["diumenge", "dilluns", "dimarts", "dimecres", "dijous", "divendres", "dissabte"], STANDALONEWEEKDAYS:["Diumenge", "Dilluns", +"Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte"], SHORTWEEKDAYS:["dg.", "dl.", "dt.", "dc.", "dj.", "dv.", "ds."], STANDALONESHORTWEEKDAYS:["dg", "dl", "dt", "dc", "dj", "dv", "ds"], NARROWWEEKDAYS:["dg", "dl", "dt", "dc", "dj", "dv", "ds"], STANDALONENARROWWEEKDAYS:["dg", "dl", "dt", "dc", "dj", "dv", "ds"], SHORTQUARTERS:["1T", "2T", "3T", "4T"], QUARTERS:["1r trimestre", "2n trimestre", "3r trimestre", "4t trimestre"], AMPMS:["a.m.", "p.m."], DATEFORMATS:["EEEE d MMMM 'de' y", "d MMMM 'de' y", +"dd/MM/y", "dd/MM/yy"], TIMEFORMATS:["H.mm.ss zzzz", "H.mm.ss z", "H.mm.ss", "H.mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:3}; +goog.i18n.DateTimeSymbols_chr = {ERAS:["\u13a4\u13d3\u13b7\u13b8", "\u13a4\u13b6\u13d0\u13c5"], ERANAMES:["\u13cf \u13e5\u13cc \u13be\u13d5\u13b2\u13cd\u13ac\u13be", "\u13a0\u13a9\u13c3\u13ae\u13b5\u13d3\u13cd\u13d7\u13f1 \u13a0\u13d5\u13d8\u13f1\u13cd\u13ac \u13f1\u13b0\u13e9 \u13e7\u13d3\u13c2\u13b8\u13a2\u13cd\u13d7"], NARROWMONTHS:["\u13a4", "\u13a7", "\u13a0", "\u13a7", "\u13a0", "\u13d5", "\u13ab", "\u13a6", "\u13da", "\u13da", "\u13c5", "\u13a4"], STANDALONENARROWMONTHS:["\u13a4", "\u13a7", +"\u13a0", "\u13a7", "\u13a0", "\u13d5", "\u13ab", "\u13a6", "\u13da", "\u13da", "\u13c5", "\u13a4"], MONTHS:["\u13a4\u13c3\u13b8\u13d4\u13c5", "\u13a7\u13a6\u13b5", "\u13a0\u13c5\u13f1", "\u13a7\u13ec\u13c2", "\u13a0\u13c2\u13cd\u13ac\u13d8", "\u13d5\u13ad\u13b7\u13f1", "\u13ab\u13f0\u13c9\u13c2", "\u13a6\u13b6\u13c2", "\u13da\u13b5\u13cd\u13d7", "\u13da\u13c2\u13c5\u13d7", "\u13c5\u13d3\u13d5\u13c6", "\u13a4\u13cd\u13a9\u13f1"], STANDALONEMONTHS:["\u13a4\u13c3\u13b8\u13d4\u13c5", "\u13a7\u13a6\u13b5", +"\u13a0\u13c5\u13f1", "\u13a7\u13ec\u13c2", "\u13a0\u13c2\u13cd\u13ac\u13d8", "\u13d5\u13ad\u13b7\u13f1", "\u13ab\u13f0\u13c9\u13c2", "\u13a6\u13b6\u13c2", "\u13da\u13b5\u13cd\u13d7", "\u13da\u13c2\u13c5\u13d7", "\u13c5\u13d3\u13d5\u13c6", "\u13a4\u13cd\u13a9\u13f1"], SHORTMONTHS:["\u13a4\u13c3", "\u13a7\u13a6", "\u13a0\u13c5", "\u13a7\u13ec", "\u13a0\u13c2", "\u13d5\u13ad", "\u13ab\u13f0", "\u13a6\u13b6", "\u13da\u13b5", "\u13da\u13c2", "\u13c5\u13d3", "\u13a4\u13cd"], STANDALONESHORTMONTHS:["\u13a4\u13c3", +"\u13a7\u13a6", "\u13a0\u13c5", "\u13a7\u13ec", "\u13a0\u13c2", "\u13d5\u13ad", "\u13ab\u13f0", "\u13a6\u13b6", "\u13da\u13b5", "\u13da\u13c2", "\u13c5\u13d3", "\u13a4\u13cd"], WEEKDAYS:["\u13a4\u13be\u13d9\u13d3\u13c6\u13cd\u13ac", "\u13a4\u13be\u13d9\u13d3\u13c9\u13c5\u13af", "\u13d4\u13b5\u13c1\u13a2\u13a6", "\u13e6\u13a2\u13c1\u13a2\u13a6", "\u13c5\u13a9\u13c1\u13a2\u13a6", "\u13e7\u13be\u13a9\u13b6\u13cd\u13d7", "\u13a4\u13be\u13d9\u13d3\u13c8\u13d5\u13be"], STANDALONEWEEKDAYS:["\u13a4\u13be\u13d9\u13d3\u13c6\u13cd\u13ac", +"\u13a4\u13be\u13d9\u13d3\u13c9\u13c5\u13af", "\u13d4\u13b5\u13c1\u13a2\u13a6", "\u13e6\u13a2\u13c1\u13a2\u13a6", "\u13c5\u13a9\u13c1\u13a2\u13a6", "\u13e7\u13be\u13a9\u13b6\u13cd\u13d7", "\u13a4\u13be\u13d9\u13d3\u13c8\u13d5\u13be"], SHORTWEEKDAYS:["\u13c6\u13cd\u13ac", "\u13c9\u13c5\u13af", "\u13d4\u13b5\u13c1", "\u13e6\u13a2\u13c1", "\u13c5\u13a9\u13c1", "\u13e7\u13be\u13a9", "\u13c8\u13d5\u13be"], STANDALONESHORTWEEKDAYS:["\u13c6\u13cd\u13ac", "\u13c9\u13c5\u13af", "\u13d4\u13b5\u13c1", "\u13e6\u13a2\u13c1", +"\u13c5\u13a9\u13c1", "\u13e7\u13be\u13a9", "\u13c8\u13d5\u13be"], NARROWWEEKDAYS:["\u13c6", "\u13c9", "\u13d4", "\u13e6", "\u13c5", "\u13e7", "\u13a4"], STANDALONENARROWWEEKDAYS:["\u13c6", "\u13c9", "\u13d4", "\u13e6", "\u13c5", "\u13e7", "\u13a4"], SHORTQUARTERS:["Q1", "Q2", "Q3", "Q4"], QUARTERS:["Q1", "Q2", "Q3", "Q4"], AMPMS:["\u13cc\u13be\u13b4", "\u13d2\u13af\u13f1\u13a2\u13d7\u13e2"], DATEFORMATS:["EEEE, MMMM d, y", "MMMM d, y", "MMM d, y", "M/d/yy"], TIMEFORMATS:["h:mm:ss a zzzz", "h:mm:ss a z", +"h:mm:ss a", "h:mm a"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:6}; +goog.i18n.DateTimeSymbols_cs = {ERAS:["p\u0159. n. l.", "n. l."], ERANAMES:["p\u0159. n. l.", "n. l."], NARROWMONTHS:["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], STANDALONENARROWMONTHS:["l", "\u00fa", "b", "d", "k", "\u010d", "\u010d", "s", "z", "\u0159", "l", "p"], MONTHS:["ledna", "\u00fanora", "b\u0159ezna", "dubna", "kv\u011btna", "\u010dervna", "\u010dervence", "srpna", "z\u00e1\u0159\u00ed", "\u0159\u00edjna", "listopadu", "prosince"], STANDALONEMONTHS:["leden", "\u00fanor", +"b\u0159ezen", "duben", "kv\u011bten", "\u010derven", "\u010dervenec", "srpen", "z\u00e1\u0159\u00ed", "\u0159\u00edjen", "listopad", "prosinec"], SHORTMONTHS:["led", "\u00fano", "b\u0159e", "dub", "kv\u011b", "\u010dvn", "\u010dvc", "srp", "z\u00e1\u0159", "\u0159\u00edj", "lis", "pro"], STANDALONESHORTMONTHS:["led", "\u00fano", "b\u0159e", "dub", "kv\u011b", "\u010dvn", "\u010dvc", "srp", "z\u00e1\u0159", "\u0159\u00edj", "lis", "pro"], WEEKDAYS:["ned\u011ble", "pond\u011bl\u00ed", "\u00fater\u00fd", +"st\u0159eda", "\u010dtvrtek", "p\u00e1tek", "sobota"], STANDALONEWEEKDAYS:["ned\u011ble", "pond\u011bl\u00ed", "\u00fater\u00fd", "st\u0159eda", "\u010dtvrtek", "p\u00e1tek", "sobota"], SHORTWEEKDAYS:["ne", "po", "\u00fat", "st", "\u010dt", "p\u00e1", "so"], STANDALONESHORTWEEKDAYS:["ne", "po", "\u00fat", "st", "\u010dt", "p\u00e1", "so"], NARROWWEEKDAYS:["N", "P", "\u00da", "S", "\u010c", "P", "S"], STANDALONENARROWWEEKDAYS:["N", "P", "\u00da", "S", "\u010c", "P", "S"], SHORTQUARTERS:["Q1", "Q2", +"Q3", "Q4"], QUARTERS:["1. \u010dtvrtlet\u00ed", "2. \u010dtvrtlet\u00ed", "3. \u010dtvrtlet\u00ed", "4. \u010dtvrtlet\u00ed"], AMPMS:["dop.", "odp."], DATEFORMATS:["EEEE, d. MMMM y", "d. MMMM y", "d. M. y", "dd.MM.yy"], TIMEFORMATS:["H:mm:ss zzzz", "H:mm:ss z", "H:mm:ss", "H:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:3}; +goog.i18n.DateTimeSymbols_cy = {ERAS:["CC", "OC"], ERANAMES:["Cyn Crist", "Oed Crist"], NARROWMONTHS:["I", "Ch", "M", "E", "M", "M", "G", "A", "M", "H", "T", "Rh"], STANDALONENARROWMONTHS:["I", "Ch", "M", "E", "M", "M", "G", "A", "M", "H", "T", "Rh"], MONTHS:["Ionawr", "Chwefror", "Mawrth", "Ebrill", "Mai", "Mehefin", "Gorffennaf", "Awst", "Medi", "Hydref", "Tachwedd", "Rhagfyr"], STANDALONEMONTHS:["Ionawr", "Chwefror", "Mawrth", "Ebrill", "Mai", "Mehefin", "Gorffennaf", "Awst", "Medi", "Hydref", +"Tachwedd", "Rhagfyr"], SHORTMONTHS:["Ion", "Chwef", "Mawrth", "Ebrill", "Mai", "Meh", "Gorff", "Awst", "Medi", "Hyd", "Tach", "Rhag"], STANDALONESHORTMONTHS:["Ion", "Chw", "Maw", "Ebr", "Mai", "Meh", "Gor", "Awst", "Medi", "Hyd", "Tach", "Rhag"], WEEKDAYS:["Dydd Sul", "Dydd Llun", "Dydd Mawrth", "Dydd Mercher", "Dydd Iau", "Dydd Gwener", "Dydd Sadwrn"], STANDALONEWEEKDAYS:["Dydd Sul", "Dydd Llun", "Dydd Mawrth", "Dydd Mercher", "Dydd Iau", "Dydd Gwener", "Dydd Sadwrn"], SHORTWEEKDAYS:["Sul", "Llun", +"Maw", "Mer", "Iau", "Gwen", "Sad"], STANDALONESHORTWEEKDAYS:["Sul", "Llun", "Maw", "Mer", "Iau", "Gwe", "Sad"], NARROWWEEKDAYS:["S", "Ll", "M", "M", "I", "G", "S"], STANDALONENARROWWEEKDAYS:["S", "Ll", "M", "M", "I", "G", "S"], SHORTQUARTERS:["Ch1", "Ch2", "Ch3", "Ch4"], QUARTERS:["Chwarter 1af", "2il chwarter", "3ydd chwarter", "4ydd chwarter"], AMPMS:["AM", "PM"], DATEFORMATS:["EEEE, d MMMM y", "d MMMM y", "d MMM y", "dd/MM/y"], TIMEFORMATS:["HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", "HH:mm"], +DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:3}; +goog.i18n.DateTimeSymbols_da = {ERAS:["f.Kr.", "e.Kr."], ERANAMES:["f.Kr.", "e.Kr."], NARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["januar", "februar", "marts", "april", "maj", "juni", "juli", "august", "september", "oktober", "november", "december"], STANDALONEMONTHS:["januar", "februar", "marts", "april", "maj", "juni", "juli", "august", "september", "oktober", "november", +"december"], SHORTMONTHS:["jan.", "feb.", "mar.", "apr.", "maj", "jun.", "jul.", "aug.", "sep.", "okt.", "nov.", "dec."], STANDALONESHORTMONTHS:["jan", "feb", "mar", "apr", "maj", "jun", "jul", "aug", "sep", "okt", "nov", "dec"], WEEKDAYS:["s\u00f8ndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "l\u00f8rdag"], STANDALONEWEEKDAYS:["s\u00f8ndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "l\u00f8rdag"], SHORTWEEKDAYS:["s\u00f8n.", "man.", "tir.", "ons.", "tor.", "fre.", "l\u00f8r."], +STANDALONESHORTWEEKDAYS:["s\u00f8n", "man", "tir", "ons", "tor", "fre", "l\u00f8r"], NARROWWEEKDAYS:["S", "M", "T", "O", "T", "F", "L"], STANDALONENARROWWEEKDAYS:["S", "M", "T", "O", "T", "F", "L"], SHORTQUARTERS:["K1", "K2", "K3", "K4"], QUARTERS:["1. kvartal", "2. kvartal", "3. kvartal", "4. kvartal"], AMPMS:["AM", "PM"], DATEFORMATS:["EEEE 'den' d. MMMM y", "d. MMM y", "dd/MM/y", "dd/MM/yy"], TIMEFORMATS:["HH.mm.ss zzzz", "HH.mm.ss z", "HH.mm.ss", "HH.mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", +"{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:3}; +goog.i18n.DateTimeSymbols_de = {ERAS:["v. Chr.", "n. Chr."], ERANAMES:["v. Chr.", "n. Chr."], NARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["Januar", "Februar", "M\u00e4rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"], STANDALONEMONTHS:["Januar", "Februar", "M\u00e4rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", +"November", "Dezember"], SHORTMONTHS:["Jan.", "Feb.", "M\u00e4r.", "Apr.", "Mai", "Juni", "Juli", "Aug.", "Sep.", "Okt.", "Nov.", "Dez."], STANDALONESHORTMONTHS:["Jan", "Feb", "M\u00e4r", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"], WEEKDAYS:["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"], STANDALONEWEEKDAYS:["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"], SHORTWEEKDAYS:["So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", +"Sa."], STANDALONESHORTWEEKDAYS:["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"], NARROWWEEKDAYS:["S", "M", "D", "M", "D", "F", "S"], STANDALONENARROWWEEKDAYS:["S", "M", "D", "M", "D", "F", "S"], SHORTQUARTERS:["Q1", "Q2", "Q3", "Q4"], QUARTERS:["1. Quartal", "2. Quartal", "3. Quartal", "4. Quartal"], AMPMS:["vorm.", "nachm."], DATEFORMATS:["EEEE, d. MMMM y", "d. MMMM y", "dd.MM.y", "dd.MM.yy"], TIMEFORMATS:["HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", +"{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:3}; +goog.i18n.DateTimeSymbols_de_AT = {ERAS:["v. Chr.", "n. Chr."], ERANAMES:["v. Chr.", "n. Chr."], NARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["J\u00e4nner", "Februar", "M\u00e4rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"], STANDALONEMONTHS:["Januar", "Februar", "M\u00e4rz", "April", "Mai", "Juni", "Juli", "August", "September", +"Oktober", "November", "Dezember"], SHORTMONTHS:["J\u00e4n", "Feb.", "M\u00e4r.", "Apr.", "Mai", "Juni", "Juli", "Aug.", "Sep.", "Okt.", "Nov.", "Dez."], STANDALONESHORTMONTHS:["J\u00e4n", "Feb", "M\u00e4r", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"], WEEKDAYS:["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"], STANDALONEWEEKDAYS:["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"], SHORTWEEKDAYS:["So.", "Mo.", "Di.", +"Mi.", "Do.", "Fr.", "Sa."], STANDALONESHORTWEEKDAYS:["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"], NARROWWEEKDAYS:["S", "M", "D", "M", "D", "F", "S"], STANDALONENARROWWEEKDAYS:["S", "M", "D", "M", "D", "F", "S"], SHORTQUARTERS:["Q1", "Q2", "Q3", "Q4"], QUARTERS:["1. Quartal", "2. Quartal", "3. Quartal", "4. Quartal"], AMPMS:["vorm.", "nachm."], DATEFORMATS:["EEEE, dd. MMMM y", "dd. MMMM y", "dd.MM.y", "dd.MM.yy"], TIMEFORMATS:["HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} {0}", +"{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:3}; +goog.i18n.DateTimeSymbols_de_CH = goog.i18n.DateTimeSymbols_de; +goog.i18n.DateTimeSymbols_el = {ERAS:["\u03c0.\u03a7.", "\u03bc.\u03a7."], ERANAMES:["\u03c0.\u03a7.", "\u03bc.\u03a7."], NARROWMONTHS:["\u0399", "\u03a6", "\u039c", "\u0391", "\u039c", "\u0399", "\u0399", "\u0391", "\u03a3", "\u039f", "\u039d", "\u0394"], STANDALONENARROWMONTHS:["\u0399", "\u03a6", "\u039c", "\u0391", "\u039c", "\u0399", "\u0399", "\u0391", "\u03a3", "\u039f", "\u039d", "\u0394"], MONTHS:["\u0399\u03b1\u03bd\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5", "\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5", +"\u039c\u03b1\u03c1\u03c4\u03af\u03bf\u03c5", "\u0391\u03c0\u03c1\u03b9\u03bb\u03af\u03bf\u03c5", "\u039c\u03b1\u0390\u03bf\u03c5", "\u0399\u03bf\u03c5\u03bd\u03af\u03bf\u03c5", "\u0399\u03bf\u03c5\u03bb\u03af\u03bf\u03c5", "\u0391\u03c5\u03b3\u03bf\u03cd\u03c3\u03c4\u03bf\u03c5", "\u03a3\u03b5\u03c0\u03c4\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5", "\u039f\u03ba\u03c4\u03c9\u03b2\u03c1\u03af\u03bf\u03c5", "\u039d\u03bf\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5", "\u0394\u03b5\u03ba\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5"], +STANDALONEMONTHS:["\u0399\u03b1\u03bd\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2", "\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2", "\u039c\u03ac\u03c1\u03c4\u03b9\u03bf\u03c2", "\u0391\u03c0\u03c1\u03af\u03bb\u03b9\u03bf\u03c2", "\u039c\u03ac\u03b9\u03bf\u03c2", "\u0399\u03bf\u03cd\u03bd\u03b9\u03bf\u03c2", "\u0399\u03bf\u03cd\u03bb\u03b9\u03bf\u03c2", "\u0391\u03cd\u03b3\u03bf\u03c5\u03c3\u03c4\u03bf\u03c2", "\u03a3\u03b5\u03c0\u03c4\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2", +"\u039f\u03ba\u03c4\u03ce\u03b2\u03c1\u03b9\u03bf\u03c2", "\u039d\u03bf\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2", "\u0394\u03b5\u03ba\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2"], SHORTMONTHS:["\u0399\u03b1\u03bd", "\u03a6\u03b5\u03b2", "\u039c\u03b1\u03c1", "\u0391\u03c0\u03c1", "\u039c\u03b1\u03ca", "\u0399\u03bf\u03c5\u03bd", "\u0399\u03bf\u03c5\u03bb", "\u0391\u03c5\u03b3", "\u03a3\u03b5\u03c0", "\u039f\u03ba\u03c4", "\u039d\u03bf\u03b5", "\u0394\u03b5\u03ba"], STANDALONESHORTMONTHS:["\u0399\u03b1\u03bd", +"\u03a6\u03b5\u03b2", "\u039c\u03ac\u03c1", "\u0391\u03c0\u03c1", "\u039c\u03ac\u03b9", "\u0399\u03bf\u03cd\u03bd", "\u0399\u03bf\u03cd\u03bb", "\u0391\u03cd\u03b3", "\u03a3\u03b5\u03c0", "\u039f\u03ba\u03c4", "\u039d\u03bf\u03ad", "\u0394\u03b5\u03ba"], WEEKDAYS:["\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae", "\u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1", "\u03a4\u03c1\u03af\u03c4\u03b7", "\u03a4\u03b5\u03c4\u03ac\u03c1\u03c4\u03b7", "\u03a0\u03ad\u03bc\u03c0\u03c4\u03b7", "\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae", +"\u03a3\u03ac\u03b2\u03b2\u03b1\u03c4\u03bf"], STANDALONEWEEKDAYS:["\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae", "\u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1", "\u03a4\u03c1\u03af\u03c4\u03b7", "\u03a4\u03b5\u03c4\u03ac\u03c1\u03c4\u03b7", "\u03a0\u03ad\u03bc\u03c0\u03c4\u03b7", "\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae", "\u03a3\u03ac\u03b2\u03b2\u03b1\u03c4\u03bf"], SHORTWEEKDAYS:["\u039a\u03c5\u03c1", "\u0394\u03b5\u03c5", "\u03a4\u03c1\u03af", "\u03a4\u03b5\u03c4", "\u03a0\u03ad\u03bc", +"\u03a0\u03b1\u03c1", "\u03a3\u03ac\u03b2"], STANDALONESHORTWEEKDAYS:["\u039a\u03c5\u03c1", "\u0394\u03b5\u03c5", "\u03a4\u03c1\u03af", "\u03a4\u03b5\u03c4", "\u03a0\u03ad\u03bc", "\u03a0\u03b1\u03c1", "\u03a3\u03ac\u03b2"], NARROWWEEKDAYS:["\u039a", "\u0394", "\u03a4", "\u03a4", "\u03a0", "\u03a0", "\u03a3"], STANDALONENARROWWEEKDAYS:["\u039a", "\u0394", "\u03a4", "\u03a4", "\u03a0", "\u03a0", "\u03a3"], SHORTQUARTERS:["\u03a41", "\u03a42", "\u03a43", "\u03a44"], QUARTERS:["1\u03bf \u03c4\u03c1\u03af\u03bc\u03b7\u03bd\u03bf", +"2\u03bf \u03c4\u03c1\u03af\u03bc\u03b7\u03bd\u03bf", "3\u03bf \u03c4\u03c1\u03af\u03bc\u03b7\u03bd\u03bf", "4\u03bf \u03c4\u03c1\u03af\u03bc\u03b7\u03bd\u03bf"], AMPMS:["\u03c0.\u03bc.", "\u03bc.\u03bc."], DATEFORMATS:["EEEE, d MMMM y", "d MMMM y", "d MMM y", "d/M/yy"], TIMEFORMATS:["h:mm:ss a zzzz", "h:mm:ss a z", "h:mm:ss a", "h:mm a"], DATETIMEFORMATS:["{1} - {0}", "{1} - {0}", "{1} - {0}", "{1} - {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:3}; +goog.i18n.DateTimeSymbols_en = {ERAS:["BC", "AD"], ERANAMES:["Before Christ", "Anno Domini"], NARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], STANDALONEMONTHS:["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", +"November", "December"], SHORTMONTHS:["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], STANDALONESHORTMONTHS:["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], WEEKDAYS:["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], STANDALONEWEEKDAYS:["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], SHORTWEEKDAYS:["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], STANDALONESHORTWEEKDAYS:["Sun", +"Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], NARROWWEEKDAYS:["S", "M", "T", "W", "T", "F", "S"], STANDALONENARROWWEEKDAYS:["S", "M", "T", "W", "T", "F", "S"], SHORTQUARTERS:["Q1", "Q2", "Q3", "Q4"], QUARTERS:["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"], AMPMS:["AM", "PM"], DATEFORMATS:["EEEE, MMMM d, y", "MMMM d, y", "MMM d, y", "M/d/yy"], TIMEFORMATS:["h:mm:ss a zzzz", "h:mm:ss a z", "h:mm:ss a", "h:mm a"], DATETIMEFORMATS:["{1} 'at' {0}", "{1} 'at' {0}", "{1}, {0}", "{1}, {0}"], FIRSTDAYOFWEEK:6, +WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_en_AU = {ERAS:["BC", "AD"], ERANAMES:["Before Christ", "Anno Domini"], NARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], STANDALONEMONTHS:["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", +"November", "December"], SHORTMONTHS:["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], STANDALONESHORTMONTHS:["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], WEEKDAYS:["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], STANDALONEWEEKDAYS:["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], SHORTWEEKDAYS:["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], STANDALONESHORTWEEKDAYS:["Sun", +"Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], NARROWWEEKDAYS:["S", "M", "T", "W", "T", "F", "S"], STANDALONENARROWWEEKDAYS:["S", "M", "T", "W", "T", "F", "S"], SHORTQUARTERS:["Q1", "Q2", "Q3", "Q4"], QUARTERS:["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"], AMPMS:["AM", "PM"], DATEFORMATS:["EEEE, d MMMM y", "d MMMM y", "dd/MM/y", "d/MM/yy"], TIMEFORMATS:["h:mm:ss a zzzz", "h:mm:ss a z", "h:mm:ss a", "h:mm a"], DATETIMEFORMATS:["{1} 'at' {0}", "{1} 'at' {0}", "{1}, {0}", "{1}, {0}"], FIRSTDAYOFWEEK:6, +WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_en_GB = {ERAS:["BC", "AD"], ERANAMES:["Before Christ", "Anno Domini"], NARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], STANDALONEMONTHS:["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", +"November", "December"], SHORTMONTHS:["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], STANDALONESHORTMONTHS:["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], WEEKDAYS:["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], STANDALONEWEEKDAYS:["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], SHORTWEEKDAYS:["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], STANDALONESHORTWEEKDAYS:["Sun", +"Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], NARROWWEEKDAYS:["S", "M", "T", "W", "T", "F", "S"], STANDALONENARROWWEEKDAYS:["S", "M", "T", "W", "T", "F", "S"], SHORTQUARTERS:["Q1", "Q2", "Q3", "Q4"], QUARTERS:["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"], AMPMS:["am", "pm"], DATEFORMATS:["EEEE, d MMMM y", "d MMMM y", "d MMM y", "dd/MM/y"], TIMEFORMATS:["HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, +6], FIRSTWEEKCUTOFFDAY:3}; +goog.i18n.DateTimeSymbols_en_IE = {ERAS:["BC", "AD"], ERANAMES:["Before Christ", "Anno Domini"], NARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], STANDALONEMONTHS:["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", +"November", "December"], SHORTMONTHS:["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], STANDALONESHORTMONTHS:["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], WEEKDAYS:["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], STANDALONEWEEKDAYS:["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], SHORTWEEKDAYS:["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], STANDALONESHORTWEEKDAYS:["Sun", +"Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], NARROWWEEKDAYS:["S", "M", "T", "W", "T", "F", "S"], STANDALONENARROWWEEKDAYS:["S", "M", "T", "W", "T", "F", "S"], SHORTQUARTERS:["Q1", "Q2", "Q3", "Q4"], QUARTERS:["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"], AMPMS:["a.m.", "p.m."], DATEFORMATS:["EEEE d MMMM y", "d MMMM y", "d MMM y", "dd/MM/y"], TIMEFORMATS:["h:mm:ss a zzzz", "h:mm:ss a z", "h:mm:ss a", "h:mm a"], DATETIMEFORMATS:["{1} 'at' {0}", "{1} 'at' {0}", "{1}, {0}", "{1}, {0}"], +FIRSTDAYOFWEEK:6, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:2}; +goog.i18n.DateTimeSymbols_en_IN = {ERAS:["BC", "AD"], ERANAMES:["Before Christ", "Anno Domini"], NARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], STANDALONEMONTHS:["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", +"November", "December"], SHORTMONTHS:["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], STANDALONESHORTMONTHS:["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], WEEKDAYS:["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], STANDALONEWEEKDAYS:["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], SHORTWEEKDAYS:["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], STANDALONESHORTWEEKDAYS:["Sun", +"Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], NARROWWEEKDAYS:["S", "M", "T", "W", "T", "F", "S"], STANDALONENARROWWEEKDAYS:["S", "M", "T", "W", "T", "F", "S"], SHORTQUARTERS:["Q1", "Q2", "Q3", "Q4"], QUARTERS:["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"], AMPMS:["AM", "PM"], DATEFORMATS:["EEEE d MMMM y", "d MMMM y", "dd-MMM-y", "dd/MM/yy"], TIMEFORMATS:["h:mm:ss a zzzz", "h:mm:ss a z", "h:mm:ss a", "h:mm a"], DATETIMEFORMATS:["{1} 'at' {0}", "{1} 'at' {0}", "{1}, {0}", "{1}, {0}"], FIRSTDAYOFWEEK:6, +WEEKENDRANGE:[6, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_en_SG = {ERAS:["BC", "AD"], ERANAMES:["Before Christ", "Anno Domini"], NARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], STANDALONEMONTHS:["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", +"November", "December"], SHORTMONTHS:["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], STANDALONESHORTMONTHS:["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], WEEKDAYS:["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], STANDALONEWEEKDAYS:["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], SHORTWEEKDAYS:["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], STANDALONESHORTWEEKDAYS:["Sun", +"Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], NARROWWEEKDAYS:["S", "M", "T", "W", "T", "F", "S"], STANDALONENARROWWEEKDAYS:["S", "M", "T", "W", "T", "F", "S"], SHORTQUARTERS:["Q1", "Q2", "Q3", "Q4"], QUARTERS:["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"], AMPMS:["AM", "PM"], DATEFORMATS:["EEEE, d MMMM, y", "d MMMM, y", "d MMM, y", "d/M/yy"], TIMEFORMATS:["h:mm:ss a zzzz", "h:mm:ss a z", "h:mm:ss a", "h:mm a"], DATETIMEFORMATS:["{1} 'at' {0}", "{1} 'at' {0}", "{1}, {0}", "{1}, {0}"], FIRSTDAYOFWEEK:6, +WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_en_US = goog.i18n.DateTimeSymbols_en; +goog.i18n.DateTimeSymbols_en_ZA = {ERAS:["BC", "AD"], ERANAMES:["Before Christ", "Anno Domini"], NARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], STANDALONEMONTHS:["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", +"November", "December"], SHORTMONTHS:["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], STANDALONESHORTMONTHS:["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], WEEKDAYS:["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], STANDALONEWEEKDAYS:["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], SHORTWEEKDAYS:["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], STANDALONESHORTWEEKDAYS:["Sun", +"Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], NARROWWEEKDAYS:["S", "M", "T", "W", "T", "F", "S"], STANDALONENARROWWEEKDAYS:["S", "M", "T", "W", "T", "F", "S"], SHORTQUARTERS:["Q1", "Q2", "Q3", "Q4"], QUARTERS:["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"], AMPMS:["AM", "PM"], DATEFORMATS:["EEEE dd MMMM y", "dd MMMM y", "dd MMM y", "y/MM/dd"], TIMEFORMATS:["h:mm:ss a zzzz", "h:mm:ss a z", "h:mm:ss a", "h:mm a"], DATETIMEFORMATS:["{1} 'at' {0}", "{1} 'at' {0}", "{1}, {0}", "{1}, {0}"], FIRSTDAYOFWEEK:6, +WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_es = {ERAS:["a.C.", "d.C."], ERANAMES:["antes de Cristo", "anno D\u00f3mini"], NARROWMONTHS:["E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"], STANDALONEMONTHS:["enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", +"octubre", "noviembre", "diciembre"], SHORTMONTHS:["ene", "feb", "mar", "abr", "may", "jun", "jul", "ago", "sep", "oct", "nov", "dic"], STANDALONESHORTMONTHS:["ene", "feb", "mar", "abr", "mayo", "jun", "jul", "ago", "sep", "oct", "nov", "dic"], WEEKDAYS:["domingo", "lunes", "martes", "mi\u00e9rcoles", "jueves", "viernes", "s\u00e1bado"], STANDALONEWEEKDAYS:["domingo", "lunes", "martes", "mi\u00e9rcoles", "jueves", "viernes", "s\u00e1bado"], SHORTWEEKDAYS:["dom", "lun", "mar", "mi\u00e9", "jue", "vie", +"s\u00e1b"], STANDALONESHORTWEEKDAYS:["dom", "lun", "mar", "mi\u00e9", "jue", "vie", "s\u00e1b"], NARROWWEEKDAYS:["D", "L", "M", "X", "J", "V", "S"], STANDALONENARROWWEEKDAYS:["D", "L", "M", "X", "J", "V", "S"], SHORTQUARTERS:["T1", "T2", "T3", "T4"], QUARTERS:["1er trimestre", "2\u00ba trimestre", "3er trimestre", "4\u00ba trimestre"], AMPMS:["a.m.", "p.m."], DATEFORMATS:["EEEE, d 'de' MMMM 'de' y", "d 'de' MMMM 'de' y", "dd/MM/y", "dd/MM/yy"], TIMEFORMATS:["HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", +"HH:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:3}; +goog.i18n.DateTimeSymbols_es_419 = {ERAS:["a.C.", "d.C."], ERANAMES:["antes de Cristo", "anno D\u00f3mini"], NARROWMONTHS:["E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["E", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"], STANDALONEMONTHS:["enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", +"octubre", "noviembre", "diciembre"], SHORTMONTHS:["ene", "feb", "mar", "abr", "may", "jun", "jul", "ago", "sep", "oct", "nov", "dic"], STANDALONESHORTMONTHS:["ene", "feb", "mar", "abr", "mayo", "jun", "jul", "ago", "sep", "oct", "nov", "dic"], WEEKDAYS:["domingo", "lunes", "martes", "mi\u00e9rcoles", "jueves", "viernes", "s\u00e1bado"], STANDALONEWEEKDAYS:["domingo", "lunes", "martes", "mi\u00e9rcoles", "jueves", "viernes", "s\u00e1bado"], SHORTWEEKDAYS:["dom", "lun", "mar", "mi\u00e9", "jue", "vie", +"s\u00e1b"], STANDALONESHORTWEEKDAYS:["dom", "lun", "mar", "mi\u00e9", "jue", "vie", "s\u00e1b"], NARROWWEEKDAYS:["D", "L", "M", "M", "J", "V", "S"], STANDALONENARROWWEEKDAYS:["D", "L", "M", "M", "J", "V", "S"], SHORTQUARTERS:["T1", "T2", "T3", "T4"], QUARTERS:["1er trimestre", "2\u00ba trimestre", "3er trimestre", "4\u00ba trimestre"], AMPMS:["a.m.", "p.m."], DATEFORMATS:["EEEE, d 'de' MMMM 'de' y", "d 'de' MMMM 'de' y", "dd/MM/y", "dd/MM/yy"], TIMEFORMATS:["HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", +"HH:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:3}; +goog.i18n.DateTimeSymbols_es_ES = goog.i18n.DateTimeSymbols_es; +goog.i18n.DateTimeSymbols_et = {ERAS:["e.m.a.", "m.a.j."], ERANAMES:["enne meie aega", "meie aja j\u00e4rgi"], NARROWMONTHS:["J", "V", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "V", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["jaanuar", "veebruar", "m\u00e4rts", "aprill", "mai", "juuni", "juuli", "august", "september", "oktoober", "november", "detsember"], STANDALONEMONTHS:["jaanuar", "veebruar", "m\u00e4rts", "aprill", "mai", "juuni", "juuli", +"august", "september", "oktoober", "november", "detsember"], SHORTMONTHS:["jaan", "veebr", "m\u00e4rts", "apr", "mai", "juuni", "juuli", "aug", "sept", "okt", "nov", "dets"], STANDALONESHORTMONTHS:["jaan", "veebr", "m\u00e4rts", "apr", "mai", "juuni", "juuli", "aug", "sept", "okt", "nov", "dets"], WEEKDAYS:["p\u00fchap\u00e4ev", "esmasp\u00e4ev", "teisip\u00e4ev", "kolmap\u00e4ev", "neljap\u00e4ev", "reede", "laup\u00e4ev"], STANDALONEWEEKDAYS:["p\u00fchap\u00e4ev", "esmasp\u00e4ev", "teisip\u00e4ev", +"kolmap\u00e4ev", "neljap\u00e4ev", "reede", "laup\u00e4ev"], SHORTWEEKDAYS:["P", "E", "T", "K", "N", "R", "L"], STANDALONESHORTWEEKDAYS:["P", "E", "T", "K", "N", "R", "L"], NARROWWEEKDAYS:["P", "E", "T", "K", "N", "R", "L"], STANDALONENARROWWEEKDAYS:["P", "E", "T", "K", "N", "R", "L"], SHORTQUARTERS:["K1", "K2", "K3", "K4"], QUARTERS:["1. kvartal", "2. kvartal", "3. kvartal", "4. kvartal"], AMPMS:["AM", "PM"], DATEFORMATS:["EEEE, d. MMMM y", "d. MMMM y", "dd.MM.y", "dd.MM.yy"], TIMEFORMATS:["H:mm.ss zzzz", +"H:mm.ss z", "H:mm.ss", "H:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:3}; +goog.i18n.DateTimeSymbols_eu = {ERAS:["K.a.", "K.o."], ERANAMES:["K.a.", "K.o."], NARROWMONTHS:["U", "O", "M", "A", "M", "E", "U", "A", "I", "U", "A", "A"], STANDALONENARROWMONTHS:["U", "O", "M", "A", "M", "E", "U", "A", "I", "U", "A", "A"], MONTHS:["urtarrila", "otsaila", "martxoa", "apirila", "maiatza", "ekaina", "uztaila", "abuztua", "iraila", "urria", "azaroa", "abendua"], STANDALONEMONTHS:["urtarrila", "otsaila", "martxoa", "apirila", "maiatza", "ekaina", "uztaila", "abuztua", "iraila", "urria", +"azaroa", "abendua"], SHORTMONTHS:["urt", "ots", "mar", "api", "mai", "eka", "uzt", "abu", "ira", "urr", "aza", "abe"], STANDALONESHORTMONTHS:["urt", "ots", "mar", "api", "mai", "eka", "uzt", "abu", "ira", "urr", "aza", "abe"], WEEKDAYS:["igandea", "astelehena", "asteartea", "asteazkena", "osteguna", "ostirala", "larunbata"], STANDALONEWEEKDAYS:["igandea", "astelehena", "asteartea", "asteazkena", "osteguna", "ostirala", "larunbata"], SHORTWEEKDAYS:["ig", "al", "as", "az", "og", "or", "lr"], STANDALONESHORTWEEKDAYS:["ig", +"al", "as", "az", "og", "or", "lr"], NARROWWEEKDAYS:["I", "M", "A", "A", "A", "O", "I"], STANDALONENARROWWEEKDAYS:["I", "M", "A", "L", "A", "O", "I"], SHORTQUARTERS:["1Hh", "2Hh", "3Hh", "4Hh"], QUARTERS:["1. hiruhilekoa", "2. hiruhilekoa", "3. hiruhilekoa", "4. hiruhilekoa"], AMPMS:["AM", "PM"], DATEFORMATS:["EEEE, y MMMM dd", "y MMMM d", "y MMM d", "y-MM-dd"], TIMEFORMATS:["HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, +WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:3}; +goog.i18n.DateTimeSymbols_fa = {ZERODIGIT:1776, ERAS:["\u0642.\u0645.", "\u0645."], ERANAMES:["\u0642\u0628\u0644 \u0627\u0632 \u0645\u06cc\u0644\u0627\u062f", "\u0645\u06cc\u0644\u0627\u062f\u06cc"], NARROWMONTHS:["\u0698", "\u0641", "\u0645", "\u0622", "\u0645", "\u0698", "\u0698", "\u0627", "\u0633", "\u0627", "\u0646", "\u062f"], STANDALONENARROWMONTHS:["\u0698", "\u0641", "\u0645", "\u0622", "\u0645", "\u0698", "\u0698", "\u0627", "\u0633", "\u0627", "\u0646", "\u062f"], MONTHS:["\u0698\u0627\u0646\u0648\u06cc\u0647\u0654", +"\u0641\u0648\u0631\u06cc\u0647\u0654", "\u0645\u0627\u0631\u0633", "\u0622\u0648\u0631\u06cc\u0644", "\u0645\u0647\u0654", "\u0698\u0648\u0626\u0646", "\u0698\u0648\u0626\u06cc\u0647\u0654", "\u0627\u0648\u062a", "\u0633\u067e\u062a\u0627\u0645\u0628\u0631", "\u0627\u06a9\u062a\u0628\u0631", "\u0646\u0648\u0627\u0645\u0628\u0631", "\u062f\u0633\u0627\u0645\u0628\u0631"], STANDALONEMONTHS:["\u0698\u0627\u0646\u0648\u06cc\u0647", "\u0641\u0648\u0631\u06cc\u0647", "\u0645\u0627\u0631\u0633", "\u0622\u0648\u0631\u06cc\u0644", +"\u0645\u0647", "\u0698\u0648\u0626\u0646", "\u0698\u0648\u0626\u06cc\u0647", "\u0627\u0648\u062a", "\u0633\u067e\u062a\u0627\u0645\u0628\u0631", "\u0627\u06a9\u062a\u0628\u0631", "\u0646\u0648\u0627\u0645\u0628\u0631", "\u062f\u0633\u0627\u0645\u0628\u0631"], SHORTMONTHS:["\u0698\u0627\u0646\u0648\u06cc\u0647\u0654", "\u0641\u0648\u0631\u06cc\u0647\u0654", "\u0645\u0627\u0631\u0633", "\u0622\u0648\u0631\u06cc\u0644", "\u0645\u0647\u0654", "\u0698\u0648\u0626\u0646", "\u0698\u0648\u0626\u06cc\u0647\u0654", +"\u0627\u0648\u062a", "\u0633\u067e\u062a\u0627\u0645\u0628\u0631", "\u0627\u06a9\u062a\u0628\u0631", "\u0646\u0648\u0627\u0645\u0628\u0631", "\u062f\u0633\u0627\u0645\u0628\u0631"], STANDALONESHORTMONTHS:["\u0698\u0627\u0646\u0648\u06cc\u0647", "\u0641\u0648\u0631\u06cc\u0647", "\u0645\u0627\u0631\u0633", "\u0622\u0648\u0631\u06cc\u0644", "\u0645\u0647", "\u0698\u0648\u0626\u0646", "\u0698\u0648\u0626\u06cc\u0647", "\u0627\u0648\u062a", "\u0633\u067e\u062a\u0627\u0645\u0628\u0631", "\u0627\u06a9\u062a\u0628\u0631", +"\u0646\u0648\u0627\u0645\u0628\u0631", "\u062f\u0633\u0627\u0645\u0628\u0631"], WEEKDAYS:["\u06cc\u06a9\u0634\u0646\u0628\u0647", "\u062f\u0648\u0634\u0646\u0628\u0647", "\u0633\u0647\u200c\u0634\u0646\u0628\u0647", "\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647", "\u067e\u0646\u062c\u0634\u0646\u0628\u0647", "\u062c\u0645\u0639\u0647", "\u0634\u0646\u0628\u0647"], STANDALONEWEEKDAYS:["\u06cc\u06a9\u0634\u0646\u0628\u0647", "\u062f\u0648\u0634\u0646\u0628\u0647", "\u0633\u0647\u200c\u0634\u0646\u0628\u0647", +"\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647", "\u067e\u0646\u062c\u0634\u0646\u0628\u0647", "\u062c\u0645\u0639\u0647", "\u0634\u0646\u0628\u0647"], SHORTWEEKDAYS:["\u06cc\u06a9\u0634\u0646\u0628\u0647", "\u062f\u0648\u0634\u0646\u0628\u0647", "\u0633\u0647\u200c\u0634\u0646\u0628\u0647", "\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647", "\u067e\u0646\u062c\u0634\u0646\u0628\u0647", "\u062c\u0645\u0639\u0647", "\u0634\u0646\u0628\u0647"], STANDALONESHORTWEEKDAYS:["\u06cc\u06a9\u0634\u0646\u0628\u0647", +"\u062f\u0648\u0634\u0646\u0628\u0647", "\u0633\u0647\u200c\u0634\u0646\u0628\u0647", "\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647", "\u067e\u0646\u062c\u0634\u0646\u0628\u0647", "\u062c\u0645\u0639\u0647", "\u0634\u0646\u0628\u0647"], NARROWWEEKDAYS:["\u06cc", "\u062f", "\u0633", "\u0686", "\u067e", "\u062c", "\u0634"], STANDALONENARROWWEEKDAYS:["\u06cc", "\u062f", "\u0633", "\u0686", "\u067e", "\u062c", "\u0634"], SHORTQUARTERS:["\u0633\u200c\u0645\u06f1", "\u0633\u200c\u0645\u06f2", "\u0633\u200c\u0645\u06f3", +"\u0633\u200c\u0645\u06f4"], QUARTERS:["\u0633\u0647\u200c\u0645\u0627\u0647\u0647\u0654 \u0627\u0648\u0644", "\u0633\u0647\u200c\u0645\u0627\u0647\u0647\u0654 \u062f\u0648\u0645", "\u0633\u0647\u200c\u0645\u0627\u0647\u0647\u0654 \u0633\u0648\u0645", "\u0633\u0647\u200c\u0645\u0627\u0647\u0647\u0654 \u0686\u0647\u0627\u0631\u0645"], AMPMS:["\u0642\u0628\u0644\u200c\u0627\u0632\u0638\u0647\u0631", "\u0628\u0639\u062f\u0627\u0632\u0638\u0647\u0631"], DATEFORMATS:["EEEE d MMMM y", "d MMMM y", "d MMM y", +"y/M/d"], TIMEFORMATS:["H:mm:ss (zzzz)", "H:mm:ss (z)", "H:mm:ss", "H:mm"], DATETIMEFORMATS:["{1}\u060c \u0633\u0627\u0639\u062a {0}", "{1}\u060c \u0633\u0627\u0639\u062a {0}", "{1}\u060c\u200f {0}", "{1}\u060c\u200f {0}"], FIRSTDAYOFWEEK:5, WEEKENDRANGE:[3, 4], FIRSTWEEKCUTOFFDAY:4}; +goog.i18n.DateTimeSymbols_fi = {ERAS:["eKr.", "jKr."], ERANAMES:["ennen Kristuksen syntym\u00e4\u00e4", "j\u00e4lkeen Kristuksen syntym\u00e4n"], NARROWMONTHS:["T", "H", "M", "H", "T", "K", "H", "E", "S", "L", "M", "J"], STANDALONENARROWMONTHS:["T", "H", "M", "H", "T", "K", "H", "E", "S", "L", "M", "J"], MONTHS:["tammikuuta", "helmikuuta", "maaliskuuta", "huhtikuuta", "toukokuuta", "kes\u00e4kuuta", "hein\u00e4kuuta", "elokuuta", "syyskuuta", "lokakuuta", "marraskuuta", "joulukuuta"], STANDALONEMONTHS:["tammikuu", +"helmikuu", "maaliskuu", "huhtikuu", "toukokuu", "kes\u00e4kuu", "hein\u00e4kuu", "elokuu", "syyskuu", "lokakuu", "marraskuu", "joulukuu"], SHORTMONTHS:["tammikuuta", "helmikuuta", "maaliskuuta", "huhtikuuta", "toukokuuta", "kes\u00e4kuuta", "hein\u00e4kuuta", "elokuuta", "syyskuuta", "lokakuuta", "marraskuuta", "joulukuuta"], STANDALONESHORTMONTHS:["tammi", "helmi", "maalis", "huhti", "touko", "kes\u00e4", "hein\u00e4", "elo", "syys", "loka", "marras", "joulu"], WEEKDAYS:["sunnuntaina", "maanantaina", +"tiistaina", "keskiviikkona", "torstaina", "perjantaina", "lauantaina"], STANDALONEWEEKDAYS:["sunnuntai", "maanantai", "tiistai", "keskiviikko", "torstai", "perjantai", "lauantai"], SHORTWEEKDAYS:["su", "ma", "ti", "ke", "to", "pe", "la"], STANDALONESHORTWEEKDAYS:["su", "ma", "ti", "ke", "to", "pe", "la"], NARROWWEEKDAYS:["S", "M", "T", "K", "T", "P", "L"], STANDALONENARROWWEEKDAYS:["S", "M", "T", "K", "T", "P", "L"], SHORTQUARTERS:["1. nelj.", "2. nelj.", "3. nelj.", "4. nelj."], QUARTERS:["1. nelj\u00e4nnes", +"2. nelj\u00e4nnes", "3. nelj\u00e4nnes", "4. nelj\u00e4nnes"], AMPMS:["ap.", "ip."], DATEFORMATS:["cccc d. MMMM y", "d. MMMM y", "d.M.y", "d.M.y"], TIMEFORMATS:["H.mm.ss zzzz", "H.mm.ss z", "H.mm.ss", "H.mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:3}; +goog.i18n.DateTimeSymbols_fil = {ERAS:["BC", "AD"], ERANAMES:["BC", "AD"], NARROWMONTHS:["E", "P", "M", "A", "M", "H", "H", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["E", "P", "M", "A", "M", "H", "H", "A", "S", "O", "N", "D"], MONTHS:["Enero", "Pebrero", "Marso", "Abril", "Mayo", "Hunyo", "Hulyo", "Agosto", "Setyembre", "Oktubre", "Nobyembre", "Disyembre"], STANDALONEMONTHS:["Enero", "Pebrero", "Marso", "Abril", "Mayo", "Hunyo", "Hulyo", "Agosto", "Setyembre", "Oktubre", "Nobyembre", "Disyembre"], +SHORTMONTHS:["Ene", "Peb", "Mar", "Abr", "May", "Hun", "Hul", "Ago", "Set", "Okt", "Nob", "Dis"], STANDALONESHORTMONTHS:["Ene", "Peb", "Mar", "Abr", "May", "Hun", "Hul", "Ago", "Set", "Okt", "Nob", "Dis"], WEEKDAYS:["Linggo", "Lunes", "Martes", "Miyerkules", "Huwebes", "Biyernes", "Sabado"], STANDALONEWEEKDAYS:["Linggo", "Lunes", "Martes", "Miyerkules", "Huwebes", "Biyernes", "Sabado"], SHORTWEEKDAYS:["Lin", "Lun", "Mar", "Mye", "Huw", "Bye", "Sab"], STANDALONESHORTWEEKDAYS:["Lin", "Lun", "Mar", +"Miy", "Huw", "Biy", "Sab"], NARROWWEEKDAYS:["L", "L", "M", "M", "H", "B", "S"], STANDALONENARROWWEEKDAYS:["L", "L", "M", "M", "H", "B", "S"], SHORTQUARTERS:["Q1", "Q2", "Q3", "Q4"], QUARTERS:["ika-1 sangkapat", "ika-2 sangkapat", "ika-3 quarter", "ika-4 na quarter"], AMPMS:["AM", "PM"], DATEFORMATS:["EEEE, MMMM dd y", "MMMM d, y", "MMM d, y", "M/d/yy"], TIMEFORMATS:["HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:6, +WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_fr = {ERAS:["av. J.-C.", "ap. J.-C."], ERANAMES:["avant J\u00e9sus-Christ", "apr\u00e8s J\u00e9sus-Christ"], NARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["janvier", "f\u00e9vrier", "mars", "avril", "mai", "juin", "juillet", "ao\u00fbt", "septembre", "octobre", "novembre", "d\u00e9cembre"], STANDALONEMONTHS:["janvier", "f\u00e9vrier", "mars", "avril", +"mai", "juin", "juillet", "ao\u00fbt", "septembre", "octobre", "novembre", "d\u00e9cembre"], SHORTMONTHS:["janv.", "f\u00e9vr.", "mars", "avr.", "mai", "juin", "juil.", "ao\u00fbt", "sept.", "oct.", "nov.", "d\u00e9c."], STANDALONESHORTMONTHS:["janv.", "f\u00e9vr.", "mars", "avr.", "mai", "juin", "juil.", "ao\u00fbt", "sept.", "oct.", "nov.", "d\u00e9c."], WEEKDAYS:["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"], STANDALONEWEEKDAYS:["dimanche", "lundi", "mardi", "mercredi", +"jeudi", "vendredi", "samedi"], SHORTWEEKDAYS:["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."], STANDALONESHORTWEEKDAYS:["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."], NARROWWEEKDAYS:["D", "L", "M", "M", "J", "V", "S"], STANDALONENARROWWEEKDAYS:["D", "L", "M", "M", "J", "V", "S"], SHORTQUARTERS:["T1", "T2", "T3", "T4"], QUARTERS:["1er trimestre", "2e trimestre", "3e trimestre", "4e trimestre"], AMPMS:["AM", "PM"], DATEFORMATS:["EEEE d MMMM y", "d MMMM y", "d MMM y", "dd/MM/y"], +TIMEFORMATS:["HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:3}; +goog.i18n.DateTimeSymbols_fr_CA = {ERAS:["av. J.-C.", "ap. J.-C."], ERANAMES:["avant J\u00e9sus-Christ", "apr\u00e8s J\u00e9sus-Christ"], NARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["janvier", "f\u00e9vrier", "mars", "avril", "mai", "juin", "juillet", "ao\u00fbt", "septembre", "octobre", "novembre", "d\u00e9cembre"], STANDALONEMONTHS:["janvier", "f\u00e9vrier", "mars", "avril", +"mai", "juin", "juillet", "ao\u00fbt", "septembre", "octobre", "novembre", "d\u00e9cembre"], SHORTMONTHS:["janv.", "f\u00e9vr.", "mars", "avr.", "mai", "juin", "juil.", "ao\u00fbt", "sept.", "oct.", "nov.", "d\u00e9c."], STANDALONESHORTMONTHS:["janv.", "f\u00e9vr.", "mars", "avr.", "mai", "juin", "juil.", "ao\u00fbt", "sept.", "oct.", "nov.", "d\u00e9c."], WEEKDAYS:["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"], STANDALONEWEEKDAYS:["dimanche", "lundi", "mardi", "mercredi", +"jeudi", "vendredi", "samedi"], SHORTWEEKDAYS:["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."], STANDALONESHORTWEEKDAYS:["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."], NARROWWEEKDAYS:["D", "L", "M", "M", "J", "V", "S"], STANDALONENARROWWEEKDAYS:["D", "L", "M", "M", "J", "V", "S"], SHORTQUARTERS:["T1", "T2", "T3", "T4"], QUARTERS:["1er trimestre", "2e trimestre", "3e trimestre", "4e trimestre"], AMPMS:["AM", "PM"], DATEFORMATS:["EEEE d MMMM y", "d MMMM y", "y-MM-dd", "yy-MM-dd"], +TIMEFORMATS:["HH 'h' mm 'min' ss 's' zzzz", "HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:6, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_gl = {ERAS:["a.C.", "d.C."], ERANAMES:["antes de Cristo", "despois de Cristo"], NARROWMONTHS:["X", "F", "M", "A", "M", "X", "X", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["X", "F", "M", "A", "M", "X", "X", "A", "S", "O", "N", "D"], MONTHS:["Xaneiro", "Febreiro", "Marzo", "Abril", "Maio", "Xu\u00f1o", "Xullo", "Agosto", "Setembro", "Outubro", "Novembro", "Decembro"], STANDALONEMONTHS:["Xaneiro", "Febreiro", "Marzo", "Abril", "Maio", "Xu\u00f1o", "Xullo", "Agosto", +"Setembro", "Outubro", "Novembro", "Decembro"], SHORTMONTHS:["Xan", "Feb", "Mar", "Abr", "Mai", "Xu\u00f1", "Xul", "Ago", "Set", "Out", "Nov", "Dec"], STANDALONESHORTMONTHS:["Xan", "Feb", "Mar", "Abr", "Mai", "Xu\u00f1", "Xul", "Ago", "Set", "Out", "Nov", "Dec"], WEEKDAYS:["Domingo", "Luns", "Martes", "M\u00e9rcores", "Xoves", "Venres", "S\u00e1bado"], STANDALONEWEEKDAYS:["Domingo", "Luns", "Martes", "M\u00e9rcores", "Xoves", "Venres", "S\u00e1bado"], SHORTWEEKDAYS:["Dom", "Lun", "Mar", "M\u00e9r", +"Xov", "Ven", "S\u00e1b"], STANDALONESHORTWEEKDAYS:["Dom", "Lun", "Mar", "M\u00e9r", "Xov", "Ven", "S\u00e1b"], NARROWWEEKDAYS:["D", "L", "M", "M", "X", "V", "S"], STANDALONENARROWWEEKDAYS:["D", "L", "M", "M", "X", "V", "S"], SHORTQUARTERS:["T1", "T2", "T3", "T4"], QUARTERS:["1o trimestre", "2o trimestre", "3o trimestre", "4o trimestre"], AMPMS:["a.m.", "p.m."], DATEFORMATS:["EEEE dd MMMM y", "dd MMMM y", "d MMM, y", "dd/MM/yy"], TIMEFORMATS:["HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} {0}", +"{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:3}; +goog.i18n.DateTimeSymbols_gsw = {ERAS:["v. Chr.", "n. Chr."], ERANAMES:["v. Chr.", "n. Chr."], NARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["Januar", "Februar", "M\u00e4rz", "April", "Mai", "Juni", "Juli", "Auguscht", "Sept\u00e4mber", "Oktoober", "Nov\u00e4mber", "Dez\u00e4mber"], STANDALONEMONTHS:["Januar", "Februar", "M\u00e4rz", "April", "Mai", "Juni", "Juli", "Auguscht", +"Sept\u00e4mber", "Oktoober", "Nov\u00e4mber", "Dez\u00e4mber"], SHORTMONTHS:["Jan", "Feb", "M\u00e4r", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"], STANDALONESHORTMONTHS:["Jan", "Feb", "M\u00e4r", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"], WEEKDAYS:["Sunntig", "M\u00e4\u00e4ntig", "Ziischtig", "Mittwuch", "Dunschtig", "Friitig", "Samschtig"], STANDALONEWEEKDAYS:["Sunntig", "M\u00e4\u00e4ntig", "Ziischtig", "Mittwuch", "Dunschtig", "Friitig", "Samschtig"], +SHORTWEEKDAYS:["Su.", "M\u00e4.", "Zi.", "Mi.", "Du.", "Fr.", "Sa."], STANDALONESHORTWEEKDAYS:["Su.", "M\u00e4.", "Zi.", "Mi.", "Du.", "Fr.", "Sa."], NARROWWEEKDAYS:["S", "M", "D", "M", "D", "F", "S"], STANDALONENARROWWEEKDAYS:["S", "M", "D", "M", "D", "F", "S"], SHORTQUARTERS:["Q1", "Q2", "Q3", "Q4"], QUARTERS:["1. Quartal", "2. Quartal", "3. Quartal", "4. Quartal"], AMPMS:["vorm.", "nam."], DATEFORMATS:["EEEE, d. MMMM y", "d. MMMM y", "dd.MM.y", "dd.MM.yy"], TIMEFORMATS:["HH:mm:ss zzzz", "HH:mm:ss z", +"HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:3}; +goog.i18n.DateTimeSymbols_gu = {ERAS:["\u0a88\u0ab2\u0ac1\u0aa8\u0abe \u0a9c\u0aa8\u0acd\u0aae \u0aaa\u0ab9\u0ac7\u0ab8\u0abe\u0a82", "\u0a87\u0ab8\u0ab5\u0ac0\u0ab8\u0aa8"], ERANAMES:["\u0a88\u0ab8\u0ab5\u0ac0\u0ab8\u0aa8 \u0aaa\u0ac2\u0ab0\u0acd\u0ab5\u0ac7", "\u0a87\u0ab8\u0ab5\u0ac0\u0ab8\u0aa8"], NARROWMONTHS:["\u0a9c\u0abe", "\u0aab\u0ac7", "\u0aae\u0abe", "\u0a8f", "\u0aae\u0ac7", "\u0a9c\u0ac2", "\u0a9c\u0ac1", "\u0a91", "\u0ab8", "\u0a91", "\u0aa8", "\u0aa1\u0abf"], STANDALONENARROWMONTHS:["\u0a9c\u0abe", +"\u0aab\u0ac7", "\u0aae\u0abe", "\u0a8f", "\u0aae\u0ac7", "\u0a9c\u0ac2", "\u0a9c\u0ac1", "\u0a91", "\u0ab8", "\u0a91", "\u0aa8", "\u0aa1\u0abf"], MONTHS:["\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1\u0a86\u0ab0\u0ac0", "\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1\u0a86\u0ab0\u0ac0", "\u0aae\u0abe\u0ab0\u0acd\u0a9a", "\u0a8f\u0aaa\u0acd\u0ab0\u0abf\u0ab2", "\u0aae\u0ac7", "\u0a9c\u0ac2\u0aa8", "\u0a9c\u0ac1\u0ab2\u0abe\u0a88", "\u0a91\u0a97\u0ab8\u0acd\u0a9f", "\u0ab8\u0aaa\u0acd\u0a9f\u0ac7\u0aae\u0acd\u0aac\u0ab0", +"\u0a91\u0a95\u0acd\u0a9f\u0acb\u0aac\u0ab0", "\u0aa8\u0ab5\u0ac7\u0aae\u0acd\u0aac\u0ab0", "\u0aa1\u0abf\u0ab8\u0ac7\u0aae\u0acd\u0aac\u0ab0"], STANDALONEMONTHS:["\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1\u0a86\u0ab0\u0ac0", "\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1\u0a86\u0ab0\u0ac0", "\u0aae\u0abe\u0ab0\u0acd\u0a9a", "\u0a8f\u0aaa\u0acd\u0ab0\u0abf\u0ab2", "\u0aae\u0ac7", "\u0a9c\u0ac2\u0aa8", "\u0a9c\u0ac1\u0ab2\u0abe\u0a88", "\u0a91\u0a97\u0ab8\u0acd\u0a9f", "\u0ab8\u0aaa\u0acd\u0a9f\u0ac7\u0aae\u0acd\u0aac\u0ab0", +"\u0a91\u0a95\u0acd\u0a9f\u0acb\u0aac\u0ab0", "\u0aa8\u0ab5\u0ac7\u0aae\u0acd\u0aac\u0ab0", "\u0aa1\u0abf\u0ab8\u0ac7\u0aae\u0acd\u0aac\u0ab0"], SHORTMONTHS:["\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1", "\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1", "\u0aae\u0abe\u0ab0\u0acd\u0a9a", "\u0a8f\u0aaa\u0acd\u0ab0\u0abf\u0ab2", "\u0aae\u0ac7", "\u0a9c\u0ac2\u0aa8", "\u0a9c\u0ac1\u0ab2\u0abe\u0a88", "\u0a91\u0a97\u0ab8\u0acd\u0a9f", "\u0ab8\u0aaa\u0acd\u0a9f\u0ac7", "\u0a91\u0a95\u0acd\u0a9f\u0acb", "\u0aa8\u0ab5\u0ac7", +"\u0aa1\u0abf\u0ab8\u0ac7"], STANDALONESHORTMONTHS:["\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1", "\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1", "\u0aae\u0abe\u0ab0\u0acd\u0a9a", "\u0a8f\u0aaa\u0acd\u0ab0\u0abf\u0ab2", "\u0aae\u0ac7", "\u0a9c\u0ac2\u0aa8", "\u0a9c\u0ac1\u0ab2\u0abe\u0a88", "\u0a91\u0a97", "\u0ab8\u0aaa\u0acd\u0a9f\u0ac7", "\u0a91\u0a95\u0acd\u0a9f\u0acb", "\u0aa8\u0ab5\u0ac7", "\u0aa1\u0abf\u0ab8\u0ac7"], WEEKDAYS:["\u0ab0\u0ab5\u0abf\u0ab5\u0abe\u0ab0", "\u0ab8\u0acb\u0aae\u0ab5\u0abe\u0ab0", +"\u0aae\u0a82\u0a97\u0ab3\u0ab5\u0abe\u0ab0", "\u0aac\u0ac1\u0aa7\u0ab5\u0abe\u0ab0", "\u0a97\u0ac1\u0ab0\u0ac1\u0ab5\u0abe\u0ab0", "\u0ab6\u0ac1\u0a95\u0acd\u0ab0\u0ab5\u0abe\u0ab0", "\u0ab6\u0aa8\u0abf\u0ab5\u0abe\u0ab0"], STANDALONEWEEKDAYS:["\u0ab0\u0ab5\u0abf\u0ab5\u0abe\u0ab0", "\u0ab8\u0acb\u0aae\u0ab5\u0abe\u0ab0", "\u0aae\u0a82\u0a97\u0ab3\u0ab5\u0abe\u0ab0", "\u0aac\u0ac1\u0aa7\u0ab5\u0abe\u0ab0", "\u0a97\u0ac1\u0ab0\u0ac1\u0ab5\u0abe\u0ab0", "\u0ab6\u0ac1\u0a95\u0acd\u0ab0\u0ab5\u0abe\u0ab0", +"\u0ab6\u0aa8\u0abf\u0ab5\u0abe\u0ab0"], SHORTWEEKDAYS:["\u0ab0\u0ab5\u0abf", "\u0ab8\u0acb\u0aae", "\u0aae\u0a82\u0a97\u0ab3", "\u0aac\u0ac1\u0aa7", "\u0a97\u0ac1\u0ab0\u0ac1", "\u0ab6\u0ac1\u0a95\u0acd\u0ab0", "\u0ab6\u0aa8\u0abf"], STANDALONESHORTWEEKDAYS:["\u0ab0\u0ab5\u0abf", "\u0ab8\u0acb\u0aae", "\u0aae\u0a82\u0a97\u0ab3", "\u0aac\u0ac1\u0aa7", "\u0a97\u0ac1\u0ab0\u0ac1", "\u0ab6\u0ac1\u0a95\u0acd\u0ab0", "\u0ab6\u0aa8\u0abf"], NARROWWEEKDAYS:["\u0ab0", "\u0ab8\u0acb", "\u0aae\u0a82", "\u0aac\u0ac1", +"\u0a97\u0ac1", "\u0ab6\u0ac1", "\u0ab6"], STANDALONENARROWWEEKDAYS:["\u0ab0", "\u0ab8\u0acb", "\u0aae\u0a82", "\u0aac\u0ac1", "\u0a97\u0ac1", "\u0ab6\u0ac1", "\u0ab6"], SHORTQUARTERS:["Q1", "Q2", "Q3", "Q4"], QUARTERS:["\u0aaa\u0ab9\u0ac7\u0ab2\u0acb \u0ab9\u0a82\u0aa4", "\u0aac\u0ac0\u0a9c\u0acb \u0ab9\u0a82\u0aa4", "\u0aa4\u0acd\u0ab0\u0ac0\u0a9c\u0acb \u0ab9\u0a82\u0aa4", "\u0a9a\u0acb\u0aa5\u0acb \u0ab9\u0a82\u0aa4"], AMPMS:["AM", "PM"], DATEFORMATS:["EEEE, d MMMM, y", "d MMMM, y", "d MMM, y", +"d-MM-yy"], TIMEFORMATS:["hh:mm:ss a zzzz", "hh:mm:ss a z", "hh:mm:ss a", "hh:mm a"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:6, WEEKENDRANGE:[6, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_haw = {ERAS:["BCE", "CE"], ERANAMES:["BCE", "CE"], NARROWMONTHS:["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], STANDALONENARROWMONTHS:["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], MONTHS:["Ianuali", "Pepeluali", "Malaki", "\u02bbApelila", "Mei", "Iune", "Iulai", "\u02bbAukake", "Kepakemapa", "\u02bbOkakopa", "Nowemapa", "Kekemapa"], STANDALONEMONTHS:["Ianuali", "Pepeluali", "Malaki", "\u02bbApelila", "Mei", "Iune", "Iulai", "\u02bbAukake", +"Kepakemapa", "\u02bbOkakopa", "Nowemapa", "Kekemapa"], SHORTMONTHS:["Ian.", "Pep.", "Mal.", "\u02bbAp.", "Mei", "Iun.", "Iul.", "\u02bbAu.", "Kep.", "\u02bbOk.", "Now.", "Kek."], STANDALONESHORTMONTHS:["Ian.", "Pep.", "Mal.", "\u02bbAp.", "Mei", "Iun.", "Iul.", "\u02bbAu.", "Kep.", "\u02bbOk.", "Now.", "Kek."], WEEKDAYS:["L\u0101pule", "Po\u02bbakahi", "Po\u02bbalua", "Po\u02bbakolu", "Po\u02bbah\u0101", "Po\u02bbalima", "Po\u02bbaono"], STANDALONEWEEKDAYS:["L\u0101pule", "Po\u02bbakahi", "Po\u02bbalua", +"Po\u02bbakolu", "Po\u02bbah\u0101", "Po\u02bbalima", "Po\u02bbaono"], SHORTWEEKDAYS:["LP", "P1", "P2", "P3", "P4", "P5", "P6"], STANDALONESHORTWEEKDAYS:["LP", "P1", "P2", "P3", "P4", "P5", "P6"], NARROWWEEKDAYS:["S", "M", "T", "W", "T", "F", "S"], STANDALONENARROWWEEKDAYS:["S", "M", "T", "W", "T", "F", "S"], SHORTQUARTERS:["Q1", "Q2", "Q3", "Q4"], QUARTERS:["Q1", "Q2", "Q3", "Q4"], AMPMS:["AM", "PM"], DATEFORMATS:["EEEE, d MMMM y", "d MMMM y", "d MMM y", "d/M/yy"], TIMEFORMATS:["h:mm:ss a zzzz", +"h:mm:ss a z", "h:mm:ss a", "h:mm a"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:6, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_he = {ERAS:["\u05dc\u05e4\u05e0\u05d4\u05f4\u05e1", "\u05dc\u05e1\u05d4\u05f4\u05e0"], ERANAMES:["\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e1\u05e4\u05d9\u05e8\u05d4", "\u05dc\u05e1\u05e4\u05d9\u05e8\u05d4"], NARROWMONTHS:["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], STANDALONENARROWMONTHS:["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], MONTHS:["\u05d9\u05e0\u05d5\u05d0\u05e8", "\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8", "\u05de\u05e8\u05e5", "\u05d0\u05e4\u05e8\u05d9\u05dc", +"\u05de\u05d0\u05d9", "\u05d9\u05d5\u05e0\u05d9", "\u05d9\u05d5\u05dc\u05d9", "\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8", "\u05e1\u05e4\u05d8\u05de\u05d1\u05e8", "\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8", "\u05e0\u05d5\u05d1\u05de\u05d1\u05e8", "\u05d3\u05e6\u05de\u05d1\u05e8"], STANDALONEMONTHS:["\u05d9\u05e0\u05d5\u05d0\u05e8", "\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8", "\u05de\u05e8\u05e5", "\u05d0\u05e4\u05e8\u05d9\u05dc", "\u05de\u05d0\u05d9", "\u05d9\u05d5\u05e0\u05d9", "\u05d9\u05d5\u05dc\u05d9", +"\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8", "\u05e1\u05e4\u05d8\u05de\u05d1\u05e8", "\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8", "\u05e0\u05d5\u05d1\u05de\u05d1\u05e8", "\u05d3\u05e6\u05de\u05d1\u05e8"], SHORTMONTHS:["\u05d9\u05e0\u05d5", "\u05e4\u05d1\u05e8", "\u05de\u05e8\u05e5", "\u05d0\u05e4\u05e8", "\u05de\u05d0\u05d9", "\u05d9\u05d5\u05e0", "\u05d9\u05d5\u05dc", "\u05d0\u05d5\u05d2", "\u05e1\u05e4\u05d8", "\u05d0\u05d5\u05e7", "\u05e0\u05d5\u05d1", "\u05d3\u05e6\u05de"], STANDALONESHORTMONTHS:["\u05d9\u05e0\u05d5\u05f3", +"\u05e4\u05d1\u05e8\u05f3", "\u05de\u05e8\u05e5", "\u05d0\u05e4\u05e8\u05f3", "\u05de\u05d0\u05d9", "\u05d9\u05d5\u05e0\u05f3", "\u05d9\u05d5\u05dc\u05f3", "\u05d0\u05d5\u05d2\u05f3", "\u05e1\u05e4\u05d8\u05f3", "\u05d0\u05d5\u05e7\u05f3", "\u05e0\u05d5\u05d1\u05f3", "\u05d3\u05e6\u05de\u05f3"], WEEKDAYS:["\u05d9\u05d5\u05dd \u05e8\u05d0\u05e9\u05d5\u05df", "\u05d9\u05d5\u05dd \u05e9\u05e0\u05d9", "\u05d9\u05d5\u05dd \u05e9\u05dc\u05d9\u05e9\u05d9", "\u05d9\u05d5\u05dd \u05e8\u05d1\u05d9\u05e2\u05d9", +"\u05d9\u05d5\u05dd \u05d7\u05de\u05d9\u05e9\u05d9", "\u05d9\u05d5\u05dd \u05e9\u05d9\u05e9\u05d9", "\u05d9\u05d5\u05dd \u05e9\u05d1\u05ea"], STANDALONEWEEKDAYS:["\u05d9\u05d5\u05dd \u05e8\u05d0\u05e9\u05d5\u05df", "\u05d9\u05d5\u05dd \u05e9\u05e0\u05d9", "\u05d9\u05d5\u05dd \u05e9\u05dc\u05d9\u05e9\u05d9", "\u05d9\u05d5\u05dd \u05e8\u05d1\u05d9\u05e2\u05d9", "\u05d9\u05d5\u05dd \u05d7\u05de\u05d9\u05e9\u05d9", "\u05d9\u05d5\u05dd \u05e9\u05d9\u05e9\u05d9", "\u05d9\u05d5\u05dd \u05e9\u05d1\u05ea"], +SHORTWEEKDAYS:["\u05d9\u05d5\u05dd \u05d0\u05f3", "\u05d9\u05d5\u05dd \u05d1\u05f3", "\u05d9\u05d5\u05dd \u05d2\u05f3", "\u05d9\u05d5\u05dd \u05d3\u05f3", "\u05d9\u05d5\u05dd \u05d4\u05f3", "\u05d9\u05d5\u05dd \u05d5\u05f3", "\u05e9\u05d1\u05ea"], STANDALONESHORTWEEKDAYS:["\u05d9\u05d5\u05dd \u05d0\u05f3", "\u05d9\u05d5\u05dd \u05d1\u05f3", "\u05d9\u05d5\u05dd \u05d2\u05f3", "\u05d9\u05d5\u05dd \u05d3\u05f3", "\u05d9\u05d5\u05dd \u05d4\u05f3", "\u05d9\u05d5\u05dd \u05d5\u05f3", "\u05e9\u05d1\u05ea"], +NARROWWEEKDAYS:["\u05d0'", "\u05d1'", "\u05d2'", "\u05d3'", "\u05d4'", "\u05d5\u05f3", "\u05e9\u05f3"], STANDALONENARROWWEEKDAYS:["\u05d0\u05f3", "\u05d1\u05f3", "\u05d2\u05f3", "\u05d3\u05f3", "\u05d4\u05f3", "\u05d5", "\u05e9"], SHORTQUARTERS:["\u05e8\u05d1\u05e2\u05d5\u05df 1", "\u05e8\u05d1\u05e2\u05d5\u05df 2", "\u05e8\u05d1\u05e2\u05d5\u05df 3", "\u05e8\u05d1\u05e2\u05d5\u05df 4"], QUARTERS:["\u05e8\u05d1\u05e2\u05d5\u05df 1", "\u05e8\u05d1\u05e2\u05d5\u05df 2", "\u05e8\u05d1\u05e2\u05d5\u05df 3", +"\u05e8\u05d1\u05e2\u05d5\u05df 4"], AMPMS:["\u05dc\u05e4\u05e0\u05d4\u05f4\u05e6", "\u05d0\u05d7\u05d4\u05f4\u05e6"], DATEFORMATS:["EEEE, d \u05d1MMMM y", "d \u05d1MMMM y", "d \u05d1MMM y", "dd/MM/yy"], TIMEFORMATS:["HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1}, {0}", "{1}, {0}"], FIRSTDAYOFWEEK:6, WEEKENDRANGE:[4, 5], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_hi = {ERAS:["\u0908\u0938\u093e\u092a\u0942\u0930\u094d\u0935", "\u0938\u0928"], ERANAMES:["\u0908\u0938\u093e\u092a\u0942\u0930\u094d\u0935", "\u0938\u0928"], NARROWMONTHS:["\u091c", "\u092b\u093c", "\u092e\u093e", "\u0905", "\u092e", "\u091c\u0942", "\u091c\u0941", "\u0905", "\u0938\u093f", "\u0905", "\u0928", "\u0926\u093f"], STANDALONENARROWMONTHS:["\u091c", "\u092b\u093c", "\u092e\u093e", "\u0905", "\u092e", "\u091c\u0942", "\u091c\u0941", "\u0905", "\u0938\u093f", +"\u0905", "\u0928", "\u0926\u093f"], MONTHS:["\u091c\u0928\u0935\u0930\u0940", "\u092b\u0930\u0935\u0930\u0940", "\u092e\u093e\u0930\u094d\u091a", "\u0905\u092a\u094d\u0930\u0948\u0932", "\u092e\u0908", "\u091c\u0942\u0928", "\u091c\u0941\u0932\u093e\u0908", "\u0905\u0917\u0938\u094d\u0924", "\u0938\u093f\u0924\u092e\u094d\u092c\u0930", "\u0905\u0915\u094d\u0924\u0942\u092c\u0930", "\u0928\u0935\u092e\u094d\u092c\u0930", "\u0926\u093f\u0938\u092e\u094d\u092c\u0930"], STANDALONEMONTHS:["\u091c\u0928\u0935\u0930\u0940", +"\u092b\u0930\u0935\u0930\u0940", "\u092e\u093e\u0930\u094d\u091a", "\u0905\u092a\u094d\u0930\u0948\u0932", "\u092e\u0908", "\u091c\u0942\u0928", "\u091c\u0941\u0932\u093e\u0908", "\u0905\u0917\u0938\u094d\u0924", "\u0938\u093f\u0924\u092e\u094d\u092c\u0930", "\u0905\u0915\u094d\u0924\u0942\u092c\u0930", "\u0928\u0935\u092e\u094d\u092c\u0930", "\u0926\u093f\u0938\u092e\u094d\u092c\u0930"], SHORTMONTHS:["\u091c\u0928\u0935\u0930\u0940", "\u092b\u0930\u0935\u0930\u0940", "\u092e\u093e\u0930\u094d\u091a", +"\u0905\u092a\u094d\u0930\u0948\u0932", "\u092e\u0908", "\u091c\u0942\u0928", "\u091c\u0941\u0932\u093e\u0908", "\u0905\u0917\u0938\u094d\u0924", "\u0938\u093f\u0924\u092e\u094d\u092c\u0930", "\u0905\u0915\u094d\u0924\u0942\u092c\u0930", "\u0928\u0935\u092e\u094d\u092c\u0930", "\u0926\u093f\u0938\u092e\u094d\u092c\u0930"], STANDALONESHORTMONTHS:["\u091c\u0928\u0935\u0930\u0940", "\u092b\u0930\u0935\u0930\u0940", "\u092e\u093e\u0930\u094d\u091a", "\u0905\u092a\u094d\u0930\u0948\u0932", "\u092e\u0908", +"\u091c\u0942\u0928", "\u091c\u0941\u0932\u093e\u0908", "\u0905\u0917\u0938\u094d\u0924", "\u0938\u093f\u0924\u092e\u094d\u092c\u0930", "\u0905\u0915\u094d\u0924\u0942\u092c\u0930", "\u0928\u0935\u092e\u094d\u092c\u0930", "\u0926\u093f\u0938\u092e\u094d\u092c\u0930"], WEEKDAYS:["\u0930\u0935\u093f\u0935\u093e\u0930", "\u0938\u094b\u092e\u0935\u093e\u0930", "\u092e\u0902\u0917\u0932\u0935\u093e\u0930", "\u092c\u0941\u0927\u0935\u093e\u0930", "\u092c\u0943\u0939\u0938\u094d\u092a\u0924\u093f\u0935\u093e\u0930", +"\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930", "\u0936\u0928\u093f\u0935\u093e\u0930"], STANDALONEWEEKDAYS:["\u0930\u0935\u093f\u0935\u093e\u0930", "\u0938\u094b\u092e\u0935\u093e\u0930", "\u092e\u0902\u0917\u0932\u0935\u093e\u0930", "\u092c\u0941\u0927\u0935\u093e\u0930", "\u092c\u0943\u0939\u0938\u094d\u092a\u0924\u093f\u0935\u093e\u0930", "\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930", "\u0936\u0928\u093f\u0935\u093e\u0930"], SHORTWEEKDAYS:["\u0930\u0935\u093f.", "\u0938\u094b\u092e.", +"\u092e\u0902\u0917\u0932.", "\u092c\u0941\u0927.", "\u092c\u0943\u0939.", "\u0936\u0941\u0915\u094d\u0930.", "\u0936\u0928\u093f."], STANDALONESHORTWEEKDAYS:["\u0930\u0935\u093f.", "\u0938\u094b\u092e.", "\u092e\u0902\u0917\u0932.", "\u092c\u0941\u0927.", "\u092c\u0943\u0939.", "\u0936\u0941\u0915\u094d\u0930.", "\u0936\u0928\u093f."], NARROWWEEKDAYS:["\u0930", "\u0938\u094b", "\u092e\u0902", "\u092c\u0941", "\u0917\u0941", "\u0936\u0941", "\u0936"], STANDALONENARROWWEEKDAYS:["\u0930", "\u0938\u094b", +"\u092e\u0902", "\u092c\u0941", "\u0917\u0941", "\u0936\u0941", "\u0936"], SHORTQUARTERS:["\u0924\u093f\u092e\u093e\u0939\u0940", "\u0926\u0942\u0938\u0930\u0940 \u0924\u093f\u092e\u093e\u0939\u0940", "\u0924\u0940\u0938\u0930\u0940 \u0924\u093f\u092e\u093e\u0939\u0940", "\u091a\u094c\u0925\u0940 \u0924\u093f\u092e\u093e\u0939\u0940"], QUARTERS:["\u0924\u093f\u092e\u093e\u0939\u0940", "\u0926\u0942\u0938\u0930\u0940 \u0924\u093f\u092e\u093e\u0939\u0940", "\u0924\u0940\u0938\u0930\u0940 \u0924\u093f\u092e\u093e\u0939\u0940", +"\u091a\u094c\u0925\u0940 \u0924\u093f\u092e\u093e\u0939\u0940"], AMPMS:["am", "pm"], DATEFORMATS:["EEEE, d MMMM y", "d MMMM y", "dd-MM-y", "d-M-yy"], TIMEFORMATS:["h:mm:ss a zzzz", "h:mm:ss a z", "h:mm:ss a", "h:mm a"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:6, WEEKENDRANGE:[6, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_hr = {ERAS:["p. n. e.", "A. D."], ERANAMES:["Prije Krista", "Poslije Krista"], NARROWMONTHS:["1.", "2.", "3.", "4.", "5.", "6.", "7.", "8.", "9.", "10.", "11.", "12."], STANDALONENARROWMONTHS:["1.", "2.", "3.", "4.", "5.", "6.", "7.", "8.", "9.", "10.", "11.", "12."], MONTHS:["sije\u010dnja", "velja\u010de", "o\u017eujka", "travnja", "svibnja", "lipnja", "srpnja", "kolovoza", "rujna", "listopada", "studenoga", "prosinca"], STANDALONEMONTHS:["sije\u010danj", "velja\u010da", +"o\u017eujak", "travanj", "svibanj", "lipanj", "srpanj", "kolovoz", "rujan", "listopad", "studeni", "prosinac"], SHORTMONTHS:["sij", "velj", "o\u017eu", "tra", "svi", "lip", "srp", "kol", "ruj", "lis", "stu", "pro"], STANDALONESHORTMONTHS:["sij", "velj", "o\u017eu", "tra", "svi", "lip", "srp", "kol", "ruj", "lis", "stu", "pro"], WEEKDAYS:["nedjelja", "ponedjeljak", "utorak", "srijeda", "\u010detvrtak", "petak", "subota"], STANDALONEWEEKDAYS:["nedjelja", "ponedjeljak", "utorak", "srijeda", "\u010detvrtak", +"petak", "subota"], SHORTWEEKDAYS:["ned", "pon", "uto", "sri", "\u010det", "pet", "sub"], STANDALONESHORTWEEKDAYS:["ned", "pon", "uto", "sri", "\u010det", "pet", "sub"], NARROWWEEKDAYS:["N", "P", "U", "S", "\u010c", "P", "S"], STANDALONENARROWWEEKDAYS:["n", "p", "u", "s", "\u010d", "p", "s"], SHORTQUARTERS:["1kv", "2kv", "3kv", "4kv"], QUARTERS:["1. kvartal", "2. kvartal", "3. kvartal", "4. kvartal"], AMPMS:["AM", "PM"], DATEFORMATS:["EEEE, d. MMMM y.", "d. MMMM y.", "d. M. y.", "d.M.y."], TIMEFORMATS:["HH:mm:ss zzzz", +"HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:6}; +goog.i18n.DateTimeSymbols_hu = {ERAS:["i. e.", "i. sz."], ERANAMES:["id\u0151sz\u00e1m\u00edt\u00e1sunk el\u0151tt", "id\u0151sz\u00e1m\u00edt\u00e1sunk szerint"], NARROWMONTHS:["J", "F", "M", "\u00c1", "M", "J", "J", "\u00c1", "Sz", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "\u00c1", "M", "J", "J", "A", "Sz", "O", "N", "D"], MONTHS:["janu\u00e1r", "febru\u00e1r", "m\u00e1rcius", "\u00e1prilis", "m\u00e1jus", "j\u00fanius", "j\u00falius", "augusztus", "szeptember", "okt\u00f3ber", "november", +"december"], STANDALONEMONTHS:["janu\u00e1r", "febru\u00e1r", "m\u00e1rcius", "\u00e1prilis", "m\u00e1jus", "j\u00fanius", "j\u00falius", "augusztus", "szeptember", "okt\u00f3ber", "november", "december"], SHORTMONTHS:["jan.", "febr.", "m\u00e1rc.", "\u00e1pr.", "m\u00e1j.", "j\u00fan.", "j\u00fal.", "aug.", "szept.", "okt.", "nov.", "dec."], STANDALONESHORTMONTHS:["jan.", "febr.", "m\u00e1rc.", "\u00e1pr.", "m\u00e1j.", "j\u00fan.", "j\u00fal.", "aug.", "szept.", "okt.", "nov.", "dec."], WEEKDAYS:["vas\u00e1rnap", +"h\u00e9tf\u0151", "kedd", "szerda", "cs\u00fct\u00f6rt\u00f6k", "p\u00e9ntek", "szombat"], STANDALONEWEEKDAYS:["vas\u00e1rnap", "h\u00e9tf\u0151", "kedd", "szerda", "cs\u00fct\u00f6rt\u00f6k", "p\u00e9ntek", "szombat"], SHORTWEEKDAYS:["V", "H", "K", "Sze", "Cs", "P", "Szo"], STANDALONESHORTWEEKDAYS:["V", "H", "K", "Sze", "Cs", "P", "Szo"], NARROWWEEKDAYS:["V", "H", "K", "Sz", "Cs", "P", "Sz"], STANDALONENARROWWEEKDAYS:["V", "H", "K", "Sz", "Cs", "P", "Sz"], SHORTQUARTERS:["N1", "N2", "N3", "N4"], +QUARTERS:["I. negyed\u00e9v", "II. negyed\u00e9v", "III. negyed\u00e9v", "IV. negyed\u00e9v"], AMPMS:["de.", "du."], DATEFORMATS:["y. MMMM d., EEEE", "y. MMMM d.", "y.MM.dd.", "y.MM.dd."], TIMEFORMATS:["H:mm:ss zzzz", "H:mm:ss z", "H:mm:ss", "H:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:6}; +goog.i18n.DateTimeSymbols_id = {ERAS:["SM", "M"], ERANAMES:["SM", "M"], NARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"], STANDALONEMONTHS:["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"], +SHORTMONTHS:["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Agt", "Sep", "Okt", "Nov", "Des"], STANDALONESHORTMONTHS:["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Agt", "Sep", "Okt", "Nov", "Des"], WEEKDAYS:["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"], STANDALONEWEEKDAYS:["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"], SHORTWEEKDAYS:["Min", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"], STANDALONESHORTWEEKDAYS:["Min", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"], +NARROWWEEKDAYS:["M", "S", "S", "R", "K", "J", "S"], STANDALONENARROWWEEKDAYS:["M", "S", "S", "R", "K", "J", "S"], SHORTQUARTERS:["K1", "K2", "K3", "K4"], QUARTERS:["Kuartal ke-1", "Kuartal ke-2", "Kuartal ke-3", "Kuartal ke-4"], AMPMS:["AM", "PM"], DATEFORMATS:["EEEE, dd MMMM y", "d MMMM y", "d MMM y", "dd/MM/yy"], TIMEFORMATS:["HH.mm.ss zzzz", "HH.mm.ss z", "HH.mm.ss", "HH.mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:6, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_in = {ERAS:["SM", "M"], ERANAMES:["SM", "M"], NARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"], STANDALONEMONTHS:["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"], +SHORTMONTHS:["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Agt", "Sep", "Okt", "Nov", "Des"], STANDALONESHORTMONTHS:["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Agt", "Sep", "Okt", "Nov", "Des"], WEEKDAYS:["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"], STANDALONEWEEKDAYS:["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"], SHORTWEEKDAYS:["Min", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"], STANDALONESHORTWEEKDAYS:["Min", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"], +NARROWWEEKDAYS:["M", "S", "S", "R", "K", "J", "S"], STANDALONENARROWWEEKDAYS:["M", "S", "S", "R", "K", "J", "S"], SHORTQUARTERS:["K1", "K2", "K3", "K4"], QUARTERS:["Kuartal ke-1", "Kuartal ke-2", "Kuartal ke-3", "Kuartal ke-4"], AMPMS:["AM", "PM"], DATEFORMATS:["EEEE, dd MMMM y", "d MMMM y", "d MMM y", "dd/MM/yy"], TIMEFORMATS:["HH.mm.ss zzzz", "HH.mm.ss z", "HH.mm.ss", "HH.mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:6, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_is = {ERAS:["f.Kr.", "e.Kr."], ERANAMES:["fyrir Krist", "eftir Krist"], NARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "\u00c1", "L", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "\u00c1", "S", "O", "N", "D"], MONTHS:["jan\u00faar", "febr\u00faar", "mars", "apr\u00edl", "ma\u00ed", "j\u00fan\u00ed", "j\u00fal\u00ed", "\u00e1g\u00fast", "september", "okt\u00f3ber", "n\u00f3vember", "desember"], STANDALONEMONTHS:["jan\u00faar", "febr\u00faar", +"mars", "apr\u00edl", "ma\u00ed", "j\u00fan\u00ed", "j\u00fal\u00ed", "\u00e1g\u00fast", "september", "okt\u00f3ber", "n\u00f3vember", "desember"], SHORTMONTHS:["jan", "feb", "mar", "apr", "ma\u00ed", "j\u00fan", "j\u00fal", "\u00e1g\u00fa", "sep", "okt", "n\u00f3v", "des"], STANDALONESHORTMONTHS:["jan", "feb", "mar", "apr", "ma\u00ed", "j\u00fan", "j\u00fal", "\u00e1g\u00fa", "sep", "okt", "n\u00f3v", "des"], WEEKDAYS:["sunnudagur", "m\u00e1nudagur", "\u00feri\u00f0judagur", "mi\u00f0vikudagur", +"fimmtudagur", "f\u00f6studagur", "laugardagur"], STANDALONEWEEKDAYS:["sunnudagur", "m\u00e1nudagur", "\u00feri\u00f0judagur", "mi\u00f0vikudagur", "fimmtudagur", "f\u00f6studagur", "laugardagur"], SHORTWEEKDAYS:["sun", "m\u00e1n", "\u00feri", "mi\u00f0", "fim", "f\u00f6s", "lau"], STANDALONESHORTWEEKDAYS:["sun", "m\u00e1n", "\u00feri", "mi\u00f0", "fim", "f\u00f6s", "lau"], NARROWWEEKDAYS:["S", "M", "\u00de", "M", "F", "F", "L"], STANDALONENARROWWEEKDAYS:["S", "M", "\u00fe", "M", "F", "F", "L"], +SHORTQUARTERS:["F1", "F2", "F3", "F4"], QUARTERS:["1. fj\u00f3r\u00f0ungur", "2. fj\u00f3r\u00f0ungur", "3. fj\u00f3r\u00f0ungur", "4. fj\u00f3r\u00f0ungur"], AMPMS:["f.h.", "e.h."], DATEFORMATS:["EEEE, d. MMMM y", "d. MMMM y", "d.M.y", "d.M.y"], TIMEFORMATS:["HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:3}; +goog.i18n.DateTimeSymbols_it = {ERAS:["aC", "dC"], ERANAMES:["a.C.", "d.C."], NARROWMONTHS:["G", "F", "M", "A", "M", "G", "L", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["G", "F", "M", "A", "M", "G", "L", "A", "S", "O", "N", "D"], MONTHS:["gennaio", "febbraio", "marzo", "aprile", "maggio", "giugno", "luglio", "agosto", "settembre", "ottobre", "novembre", "dicembre"], STANDALONEMONTHS:["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", +"Novembre", "Dicembre"], SHORTMONTHS:["gen", "feb", "mar", "apr", "mag", "giu", "lug", "ago", "set", "ott", "nov", "dic"], STANDALONESHORTMONTHS:["gen", "feb", "mar", "apr", "mag", "giu", "lug", "ago", "set", "ott", "nov", "dic"], WEEKDAYS:["domenica", "luned\u00ec", "marted\u00ec", "mercoled\u00ec", "gioved\u00ec", "venerd\u00ec", "sabato"], STANDALONEWEEKDAYS:["Domenica", "Luned\u00ec", "Marted\u00ec", "Mercoled\u00ec", "Gioved\u00ec", "Venerd\u00ec", "Sabato"], SHORTWEEKDAYS:["dom", "lun", "mar", +"mer", "gio", "ven", "sab"], STANDALONESHORTWEEKDAYS:["dom", "lun", "mar", "mer", "gio", "ven", "sab"], NARROWWEEKDAYS:["D", "L", "M", "M", "G", "V", "S"], STANDALONENARROWWEEKDAYS:["D", "L", "M", "M", "G", "V", "S"], SHORTQUARTERS:["T1", "T2", "T3", "T4"], QUARTERS:["1o trimestre", "2o trimestre", "3o trimestre", "4o trimestre"], AMPMS:["AM", "PM"], DATEFORMATS:["EEEE d MMMM y", "dd MMMM y", "dd/MMM/y", "dd/MM/yy"], TIMEFORMATS:["HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} {0}", +"{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:3}; +goog.i18n.DateTimeSymbols_iw = {ERAS:["\u05dc\u05e4\u05e0\u05d4\u05f4\u05e1", "\u05dc\u05e1\u05d4\u05f4\u05e0"], ERANAMES:["\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e1\u05e4\u05d9\u05e8\u05d4", "\u05dc\u05e1\u05e4\u05d9\u05e8\u05d4"], NARROWMONTHS:["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], STANDALONENARROWMONTHS:["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], MONTHS:["\u05d9\u05e0\u05d5\u05d0\u05e8", "\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8", "\u05de\u05e8\u05e5", "\u05d0\u05e4\u05e8\u05d9\u05dc", +"\u05de\u05d0\u05d9", "\u05d9\u05d5\u05e0\u05d9", "\u05d9\u05d5\u05dc\u05d9", "\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8", "\u05e1\u05e4\u05d8\u05de\u05d1\u05e8", "\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8", "\u05e0\u05d5\u05d1\u05de\u05d1\u05e8", "\u05d3\u05e6\u05de\u05d1\u05e8"], STANDALONEMONTHS:["\u05d9\u05e0\u05d5\u05d0\u05e8", "\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8", "\u05de\u05e8\u05e5", "\u05d0\u05e4\u05e8\u05d9\u05dc", "\u05de\u05d0\u05d9", "\u05d9\u05d5\u05e0\u05d9", "\u05d9\u05d5\u05dc\u05d9", +"\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8", "\u05e1\u05e4\u05d8\u05de\u05d1\u05e8", "\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8", "\u05e0\u05d5\u05d1\u05de\u05d1\u05e8", "\u05d3\u05e6\u05de\u05d1\u05e8"], SHORTMONTHS:["\u05d9\u05e0\u05d5", "\u05e4\u05d1\u05e8", "\u05de\u05e8\u05e5", "\u05d0\u05e4\u05e8", "\u05de\u05d0\u05d9", "\u05d9\u05d5\u05e0", "\u05d9\u05d5\u05dc", "\u05d0\u05d5\u05d2", "\u05e1\u05e4\u05d8", "\u05d0\u05d5\u05e7", "\u05e0\u05d5\u05d1", "\u05d3\u05e6\u05de"], STANDALONESHORTMONTHS:["\u05d9\u05e0\u05d5\u05f3", +"\u05e4\u05d1\u05e8\u05f3", "\u05de\u05e8\u05e5", "\u05d0\u05e4\u05e8\u05f3", "\u05de\u05d0\u05d9", "\u05d9\u05d5\u05e0\u05f3", "\u05d9\u05d5\u05dc\u05f3", "\u05d0\u05d5\u05d2\u05f3", "\u05e1\u05e4\u05d8\u05f3", "\u05d0\u05d5\u05e7\u05f3", "\u05e0\u05d5\u05d1\u05f3", "\u05d3\u05e6\u05de\u05f3"], WEEKDAYS:["\u05d9\u05d5\u05dd \u05e8\u05d0\u05e9\u05d5\u05df", "\u05d9\u05d5\u05dd \u05e9\u05e0\u05d9", "\u05d9\u05d5\u05dd \u05e9\u05dc\u05d9\u05e9\u05d9", "\u05d9\u05d5\u05dd \u05e8\u05d1\u05d9\u05e2\u05d9", +"\u05d9\u05d5\u05dd \u05d7\u05de\u05d9\u05e9\u05d9", "\u05d9\u05d5\u05dd \u05e9\u05d9\u05e9\u05d9", "\u05d9\u05d5\u05dd \u05e9\u05d1\u05ea"], STANDALONEWEEKDAYS:["\u05d9\u05d5\u05dd \u05e8\u05d0\u05e9\u05d5\u05df", "\u05d9\u05d5\u05dd \u05e9\u05e0\u05d9", "\u05d9\u05d5\u05dd \u05e9\u05dc\u05d9\u05e9\u05d9", "\u05d9\u05d5\u05dd \u05e8\u05d1\u05d9\u05e2\u05d9", "\u05d9\u05d5\u05dd \u05d7\u05de\u05d9\u05e9\u05d9", "\u05d9\u05d5\u05dd \u05e9\u05d9\u05e9\u05d9", "\u05d9\u05d5\u05dd \u05e9\u05d1\u05ea"], +SHORTWEEKDAYS:["\u05d9\u05d5\u05dd \u05d0\u05f3", "\u05d9\u05d5\u05dd \u05d1\u05f3", "\u05d9\u05d5\u05dd \u05d2\u05f3", "\u05d9\u05d5\u05dd \u05d3\u05f3", "\u05d9\u05d5\u05dd \u05d4\u05f3", "\u05d9\u05d5\u05dd \u05d5\u05f3", "\u05e9\u05d1\u05ea"], STANDALONESHORTWEEKDAYS:["\u05d9\u05d5\u05dd \u05d0\u05f3", "\u05d9\u05d5\u05dd \u05d1\u05f3", "\u05d9\u05d5\u05dd \u05d2\u05f3", "\u05d9\u05d5\u05dd \u05d3\u05f3", "\u05d9\u05d5\u05dd \u05d4\u05f3", "\u05d9\u05d5\u05dd \u05d5\u05f3", "\u05e9\u05d1\u05ea"], +NARROWWEEKDAYS:["\u05d0'", "\u05d1'", "\u05d2'", "\u05d3'", "\u05d4'", "\u05d5\u05f3", "\u05e9\u05f3"], STANDALONENARROWWEEKDAYS:["\u05d0\u05f3", "\u05d1\u05f3", "\u05d2\u05f3", "\u05d3\u05f3", "\u05d4\u05f3", "\u05d5", "\u05e9"], SHORTQUARTERS:["\u05e8\u05d1\u05e2\u05d5\u05df 1", "\u05e8\u05d1\u05e2\u05d5\u05df 2", "\u05e8\u05d1\u05e2\u05d5\u05df 3", "\u05e8\u05d1\u05e2\u05d5\u05df 4"], QUARTERS:["\u05e8\u05d1\u05e2\u05d5\u05df 1", "\u05e8\u05d1\u05e2\u05d5\u05df 2", "\u05e8\u05d1\u05e2\u05d5\u05df 3", +"\u05e8\u05d1\u05e2\u05d5\u05df 4"], AMPMS:["\u05dc\u05e4\u05e0\u05d4\u05f4\u05e6", "\u05d0\u05d7\u05d4\u05f4\u05e6"], DATEFORMATS:["EEEE, d \u05d1MMMM y", "d \u05d1MMMM y", "d \u05d1MMM y", "dd/MM/yy"], TIMEFORMATS:["HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1}, {0}", "{1}, {0}"], FIRSTDAYOFWEEK:6, WEEKENDRANGE:[4, 5], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_ja = {ERAS:["\u7d00\u5143\u524d", "\u897f\u66a6"], ERANAMES:["\u7d00\u5143\u524d", "\u897f\u66a6"], NARROWMONTHS:["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], STANDALONENARROWMONTHS:["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], MONTHS:["1\u6708", "2\u6708", "3\u6708", "4\u6708", "5\u6708", "6\u6708", "7\u6708", "8\u6708", "9\u6708", "10\u6708", "11\u6708", "12\u6708"], STANDALONEMONTHS:["1\u6708", "2\u6708", "3\u6708", "4\u6708", "5\u6708", +"6\u6708", "7\u6708", "8\u6708", "9\u6708", "10\u6708", "11\u6708", "12\u6708"], SHORTMONTHS:["1\u6708", "2\u6708", "3\u6708", "4\u6708", "5\u6708", "6\u6708", "7\u6708", "8\u6708", "9\u6708", "10\u6708", "11\u6708", "12\u6708"], STANDALONESHORTMONTHS:["1\u6708", "2\u6708", "3\u6708", "4\u6708", "5\u6708", "6\u6708", "7\u6708", "8\u6708", "9\u6708", "10\u6708", "11\u6708", "12\u6708"], WEEKDAYS:["\u65e5\u66dc\u65e5", "\u6708\u66dc\u65e5", "\u706b\u66dc\u65e5", "\u6c34\u66dc\u65e5", "\u6728\u66dc\u65e5", +"\u91d1\u66dc\u65e5", "\u571f\u66dc\u65e5"], STANDALONEWEEKDAYS:["\u65e5\u66dc\u65e5", "\u6708\u66dc\u65e5", "\u706b\u66dc\u65e5", "\u6c34\u66dc\u65e5", "\u6728\u66dc\u65e5", "\u91d1\u66dc\u65e5", "\u571f\u66dc\u65e5"], SHORTWEEKDAYS:["\u65e5", "\u6708", "\u706b", "\u6c34", "\u6728", "\u91d1", "\u571f"], STANDALONESHORTWEEKDAYS:["\u65e5", "\u6708", "\u706b", "\u6c34", "\u6728", "\u91d1", "\u571f"], NARROWWEEKDAYS:["\u65e5", "\u6708", "\u706b", "\u6c34", "\u6728", "\u91d1", "\u571f"], STANDALONENARROWWEEKDAYS:["\u65e5", +"\u6708", "\u706b", "\u6c34", "\u6728", "\u91d1", "\u571f"], SHORTQUARTERS:["1Q", "2Q", "3Q", "4Q"], QUARTERS:["\u7b2c1\u56db\u534a\u671f", "\u7b2c2\u56db\u534a\u671f", "\u7b2c3\u56db\u534a\u671f", "\u7b2c4\u56db\u534a\u671f"], AMPMS:["\u5348\u524d", "\u5348\u5f8c"], DATEFORMATS:["y\u5e74M\u6708d\u65e5EEEE", "y\u5e74M\u6708d\u65e5", "y/MM/dd", "y/MM/dd"], TIMEFORMATS:["H\u6642mm\u5206ss\u79d2 zzzz", "H:mm:ss z", "H:mm:ss", "H:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:6, +WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_kn = {ERAS:["\u0c95\u0ccd\u0cb0\u0cbf.\u0caa\u0cc2", "\u0c9c\u0cbe\u0cb9\u0cc0"], ERANAMES:["\u0c88\u0cb8\u0caa\u0cc2\u0cb5\u0cef.", "\u0c95\u0ccd\u0cb0\u0cbf\u0cb8\u0ccd\u0ca4 \u0cb6\u0c95"], NARROWMONTHS:["\u0c9c", "\u0cab\u0cc6", "\u0cae\u0cbe", "\u0c8f", "\u0cae\u0cc7", "\u0c9c\u0cc2", "\u0c9c\u0cc1", "\u0c86", "\u0cb8\u0cc6", "\u0c85", "\u0ca8", "\u0ca1\u0cbf"], STANDALONENARROWMONTHS:["\u0c9c", "\u0cab\u0cc6", "\u0cae\u0cbe", "\u0c8e", "\u0cae\u0cc7", "\u0c9c\u0cc2", +"\u0c9c\u0cc1", "\u0c86", "\u0cb8\u0cc6", "\u0c85", "\u0ca8", "\u0ca1\u0cbf"], MONTHS:["\u0c9c\u0ca8\u0cb5\u0cb0\u0cc0", "\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cc0", "\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd", "\u0c8e\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd", "\u0cae\u0cc6", "\u0c9c\u0cc2\u0ca8\u0ccd", "\u0c9c\u0cc1\u0cb2\u0cc8", "\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd", "\u0cb8\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd", "\u0c85\u0c95\u0ccd\u0c9f\u0ccb\u0cac\u0cb0\u0ccd", "\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd", +"\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd"], STANDALONEMONTHS:["\u0c9c\u0ca8\u0cb5\u0cb0\u0cc0", "\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cc0", "\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd", "\u0c8e\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd", "\u0cae\u0cc6", "\u0c9c\u0cc2\u0ca8\u0ccd", "\u0c9c\u0cc1\u0cb2\u0cc8", "\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd", "\u0cb8\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd", "\u0c85\u0c95\u0ccd\u0c9f\u0ccb\u0cac\u0cb0\u0ccd", "\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd", +"\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd"], SHORTMONTHS:["\u0c9c\u0ca8\u0cb5\u0cb0\u0cbf", "\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cc1\u0cb5\u0cb0\u0cbf", "\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd", "\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd\u200c\u200c", "\u0cae\u0cc7", "\u0c9c\u0cc2\u0ca8\u0ccd", "\u0c9c\u0cc1\u0cb2\u0cc8", "\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd", "\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd\u200c", "\u0c85\u0c95\u0ccd\u0c9f\u0ccb\u0cac\u0cb0\u0ccd", "\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd", +"\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd"], STANDALONESHORTMONTHS:["\u0c9c\u0ca8\u0cb5\u0cb0\u0cbf", "\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cc1\u0cb5\u0cb0\u0cbf", "\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd", "\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd\u200c\u200c", "\u0cae\u0cc7", "\u0c9c\u0cc2\u0ca8\u0ccd", "\u0c9c\u0cc1\u0cb2\u0cc8", "\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd", "\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd\u200c", "\u0c85\u0c95\u0ccd\u0c9f\u0ccb\u0cac\u0cb0\u0ccd", "\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd", +"\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd"], WEEKDAYS:["\u0cb0\u0cb5\u0cbf\u0cb5\u0cbe\u0cb0", "\u0cb8\u0ccb\u0cae\u0cb5\u0cbe\u0cb0", "\u0cae\u0c82\u0c97\u0cb3\u0cb5\u0cbe\u0cb0", "\u0cac\u0cc1\u0ca7\u0cb5\u0cbe\u0cb0", "\u0c97\u0cc1\u0cb0\u0cc1\u0cb5\u0cbe\u0cb0", "\u0cb6\u0cc1\u0c95\u0ccd\u0cb0\u0cb5\u0cbe\u0cb0", "\u0cb6\u0ca8\u0cbf\u0cb5\u0cbe\u0cb0"], STANDALONEWEEKDAYS:["\u0cb0\u0cb5\u0cbf\u0cb5\u0cbe\u0cb0", "\u0cb8\u0ccb\u0cae\u0cb5\u0cbe\u0cb0", "\u0cae\u0c82\u0c97\u0cb3\u0cb5\u0cbe\u0cb0", +"\u0cac\u0cc1\u0ca7\u0cb5\u0cbe\u0cb0", "\u0c97\u0cc1\u0cb0\u0cc1\u0cb5\u0cbe\u0cb0", "\u0cb6\u0cc1\u0c95\u0ccd\u0cb0\u0cb5\u0cbe\u0cb0", "\u0cb6\u0ca8\u0cbf\u0cb5\u0cbe\u0cb0"], SHORTWEEKDAYS:["\u0cb0.", "\u0cb8\u0ccb.", "\u0cae\u0c82.", "\u0cac\u0cc1.", "\u0c97\u0cc1.", "\u0cb6\u0cc1.", "\u0cb6\u0ca8\u0cbf."], STANDALONESHORTWEEKDAYS:["\u0cb0.", "\u0cb8\u0ccb.", "\u0cae\u0c82.", "\u0cac\u0cc1.", "\u0c97\u0cc1.", "\u0cb6\u0cc1.", "\u0cb6\u0ca8\u0cbf."], NARROWWEEKDAYS:["\u0cb0", "\u0cb8\u0ccb", +"\u0cae\u0c82", "\u0cac\u0cc1", "\u0c97\u0cc1", "\u0cb6\u0cc1", "\u0cb6"], STANDALONENARROWWEEKDAYS:["\u0cb0", "\u0cb8\u0ccb", "\u0cae\u0c82", "\u0cac\u0cc1", "\u0c97\u0cc1", "\u0cb6\u0cc1", "\u0cb6"], SHORTQUARTERS:["Q1", "Q2", "Q3", "Q4"], QUARTERS:["Q1", "Q2", "Q3", "Q4"], AMPMS:["AM", "PM"], DATEFORMATS:["EEEE d MMMM y", "d MMMM y", "d MMM y", "d-M-yy"], TIMEFORMATS:["hh:mm:ss a zzzz", "hh:mm:ss a z", "hh:mm:ss a", "hh:mm a"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:6, +WEEKENDRANGE:[6, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_ko = {ERAS:["\uae30\uc6d0\uc804", "\uc11c\uae30"], ERANAMES:["\uc11c\ub825\uae30\uc6d0\uc804", "\uc11c\ub825\uae30\uc6d0"], NARROWMONTHS:["1\uc6d4", "2\uc6d4", "3\uc6d4", "4\uc6d4", "5\uc6d4", "6\uc6d4", "7\uc6d4", "8\uc6d4", "9\uc6d4", "10\uc6d4", "11\uc6d4", "12\uc6d4"], STANDALONENARROWMONTHS:["1\uc6d4", "2\uc6d4", "3\uc6d4", "4\uc6d4", "5\uc6d4", "6\uc6d4", "7\uc6d4", "8\uc6d4", "9\uc6d4", "10\uc6d4", "11\uc6d4", "12\uc6d4"], MONTHS:["1\uc6d4", "2\uc6d4", "3\uc6d4", +"4\uc6d4", "5\uc6d4", "6\uc6d4", "7\uc6d4", "8\uc6d4", "9\uc6d4", "10\uc6d4", "11\uc6d4", "12\uc6d4"], STANDALONEMONTHS:["1\uc6d4", "2\uc6d4", "3\uc6d4", "4\uc6d4", "5\uc6d4", "6\uc6d4", "7\uc6d4", "8\uc6d4", "9\uc6d4", "10\uc6d4", "11\uc6d4", "12\uc6d4"], SHORTMONTHS:["1\uc6d4", "2\uc6d4", "3\uc6d4", "4\uc6d4", "5\uc6d4", "6\uc6d4", "7\uc6d4", "8\uc6d4", "9\uc6d4", "10\uc6d4", "11\uc6d4", "12\uc6d4"], STANDALONESHORTMONTHS:["1\uc6d4", "2\uc6d4", "3\uc6d4", "4\uc6d4", "5\uc6d4", "6\uc6d4", "7\uc6d4", +"8\uc6d4", "9\uc6d4", "10\uc6d4", "11\uc6d4", "12\uc6d4"], WEEKDAYS:["\uc77c\uc694\uc77c", "\uc6d4\uc694\uc77c", "\ud654\uc694\uc77c", "\uc218\uc694\uc77c", "\ubaa9\uc694\uc77c", "\uae08\uc694\uc77c", "\ud1a0\uc694\uc77c"], STANDALONEWEEKDAYS:["\uc77c\uc694\uc77c", "\uc6d4\uc694\uc77c", "\ud654\uc694\uc77c", "\uc218\uc694\uc77c", "\ubaa9\uc694\uc77c", "\uae08\uc694\uc77c", "\ud1a0\uc694\uc77c"], SHORTWEEKDAYS:["\uc77c", "\uc6d4", "\ud654", "\uc218", "\ubaa9", "\uae08", "\ud1a0"], STANDALONESHORTWEEKDAYS:["\uc77c", +"\uc6d4", "\ud654", "\uc218", "\ubaa9", "\uae08", "\ud1a0"], NARROWWEEKDAYS:["\uc77c", "\uc6d4", "\ud654", "\uc218", "\ubaa9", "\uae08", "\ud1a0"], STANDALONENARROWWEEKDAYS:["\uc77c", "\uc6d4", "\ud654", "\uc218", "\ubaa9", "\uae08", "\ud1a0"], SHORTQUARTERS:["1\ubd84\uae30", "2\ubd84\uae30", "3\ubd84\uae30", "4\ubd84\uae30"], QUARTERS:["\uc81c 1/4\ubd84\uae30", "\uc81c 2/4\ubd84\uae30", "\uc81c 3/4\ubd84\uae30", "\uc81c 4/4\ubd84\uae30"], AMPMS:["\uc624\uc804", "\uc624\ud6c4"], DATEFORMATS:["y\ub144 M\uc6d4 d\uc77c EEEE", +"y\ub144 M\uc6d4 d\uc77c", "y. M. d.", "yy. M. d."], TIMEFORMATS:["a h\uc2dc m\ubd84 s\ucd08 zzzz", "a h\uc2dc m\ubd84 s\ucd08 z", "a h:mm:ss", "a h:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:6, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_ln = {ERAS:["lib\u00f3so ya", "nsima ya Y"], ERANAMES:["Yambo ya Y\u00e9zu Kr\u00eds", "Nsima ya Y\u00e9zu Kr\u00eds"], NARROWMONTHS:["y", "f", "m", "a", "m", "y", "y", "a", "s", "\u0254", "n", "d"], STANDALONENARROWMONTHS:["y", "f", "m", "a", "m", "y", "y", "a", "s", "\u0254", "n", "d"], MONTHS:["s\u00e1nz\u00e1 ya yambo", "s\u00e1nz\u00e1 ya m\u00edbal\u00e9", "s\u00e1nz\u00e1 ya m\u00eds\u00e1to", "s\u00e1nz\u00e1 ya m\u00ednei", "s\u00e1nz\u00e1 ya m\u00edt\u00e1no", +"s\u00e1nz\u00e1 ya mot\u00f3b\u00e1", "s\u00e1nz\u00e1 ya nsambo", "s\u00e1nz\u00e1 ya mwambe", "s\u00e1nz\u00e1 ya libwa", "s\u00e1nz\u00e1 ya z\u00f3mi", "s\u00e1nz\u00e1 ya z\u00f3mi na m\u0254\u030ck\u0254\u0301", "s\u00e1nz\u00e1 ya z\u00f3mi na m\u00edbal\u00e9"], STANDALONEMONTHS:["s\u00e1nz\u00e1 ya yambo", "s\u00e1nz\u00e1 ya m\u00edbal\u00e9", "s\u00e1nz\u00e1 ya m\u00eds\u00e1to", "s\u00e1nz\u00e1 ya m\u00ednei", "s\u00e1nz\u00e1 ya m\u00edt\u00e1no", "s\u00e1nz\u00e1 ya mot\u00f3b\u00e1", +"s\u00e1nz\u00e1 ya nsambo", "s\u00e1nz\u00e1 ya mwambe", "s\u00e1nz\u00e1 ya libwa", "s\u00e1nz\u00e1 ya z\u00f3mi", "s\u00e1nz\u00e1 ya z\u00f3mi na m\u0254\u030ck\u0254\u0301", "s\u00e1nz\u00e1 ya z\u00f3mi na m\u00edbal\u00e9"], SHORTMONTHS:["yan", "fbl", "msi", "apl", "mai", "yun", "yul", "agt", "stb", "\u0254tb", "nvb", "dsb"], STANDALONESHORTMONTHS:["yan", "fbl", "msi", "apl", "mai", "yun", "yul", "agt", "stb", "\u0254tb", "nvb", "dsb"], WEEKDAYS:["eyenga", "mok\u0254l\u0254 mwa yambo", "mok\u0254l\u0254 mwa m\u00edbal\u00e9", +"mok\u0254l\u0254 mwa m\u00eds\u00e1to", "mok\u0254l\u0254 ya m\u00edn\u00e9i", "mok\u0254l\u0254 ya m\u00edt\u00e1no", "mp\u0254\u0301s\u0254"], STANDALONEWEEKDAYS:["eyenga", "mok\u0254l\u0254 mwa yambo", "mok\u0254l\u0254 mwa m\u00edbal\u00e9", "mok\u0254l\u0254 mwa m\u00eds\u00e1to", "mok\u0254l\u0254 ya m\u00edn\u00e9i", "mok\u0254l\u0254 ya m\u00edt\u00e1no", "mp\u0254\u0301s\u0254"], SHORTWEEKDAYS:["eye", "ybo", "mbl", "mst", "min", "mtn", "mps"], STANDALONESHORTWEEKDAYS:["eye", "ybo", "mbl", +"mst", "min", "mtn", "mps"], NARROWWEEKDAYS:["e", "y", "m", "m", "m", "m", "p"], STANDALONENARROWWEEKDAYS:["e", "y", "m", "m", "m", "m", "p"], SHORTQUARTERS:["SM1", "SM2", "SM3", "SM4"], QUARTERS:["s\u00e1nz\u00e1 m\u00eds\u00e1to ya yambo", "s\u00e1nz\u00e1 m\u00eds\u00e1to ya m\u00edbal\u00e9", "s\u00e1nz\u00e1 m\u00eds\u00e1to ya m\u00eds\u00e1to", "s\u00e1nz\u00e1 m\u00eds\u00e1to ya m\u00ednei"], AMPMS:["nt\u0254\u0301ng\u0254\u0301", "mp\u00f3kwa"], DATEFORMATS:["EEEE d MMMM y", "d MMMM y", +"d MMM y", "d/M/y"], TIMEFORMATS:["HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:6}; +goog.i18n.DateTimeSymbols_lt = {ERAS:["pr. Kr.", "po Kr."], ERANAMES:["prie\u0161 Krist\u0173", "po Kristaus"], NARROWMONTHS:["S", "V", "K", "B", "G", "B", "L", "R", "R", "S", "L", "G"], STANDALONENARROWMONTHS:["S", "V", "K", "B", "G", "B", "L", "R", "R", "S", "L", "G"], MONTHS:["sausis", "vasaris", "kovas", "balandis", "gegu\u017e\u0117", "bir\u017eelis", "liepa", "rugpj\u016btis", "rugs\u0117jis", "spalis", "lapkritis", "gruodis"], STANDALONEMONTHS:["sausis", "vasaris", "kovas", "balandis", "gegu\u017e\u0117", +"bir\u017eelis", "liepa", "rugpj\u016btis", "rugs\u0117jis", "spalis", "lapkritis", "gruodis"], SHORTMONTHS:["saus.", "vas.", "kov.", "bal.", "geg.", "bir\u017e.", "liep.", "rugp.", "rugs.", "spal.", "lapkr.", "gruod."], STANDALONESHORTMONTHS:["saus.", "vas.", "kov.", "bal.", "geg.", "bir\u017e.", "liep.", "rugp.", "rugs.", "spal.", "lapkr.", "gruod."], WEEKDAYS:["sekmadienis", "pirmadienis", "antradienis", "tre\u010diadienis", "ketvirtadienis", "penktadienis", "\u0161e\u0161tadienis"], STANDALONEWEEKDAYS:["sekmadienis", +"pirmadienis", "antradienis", "tre\u010diadienis", "ketvirtadienis", "penktadienis", "\u0161e\u0161tadienis"], SHORTWEEKDAYS:["sk", "pr", "an", "tr", "kt", "pn", "\u0161t"], STANDALONESHORTWEEKDAYS:["sk", "pr", "an", "tr", "kt", "pn", "\u0161t"], NARROWWEEKDAYS:["S", "P", "A", "T", "K", "P", "\u0160"], STANDALONENARROWWEEKDAYS:["S", "P", "A", "T", "K", "P", "\u0160"], SHORTQUARTERS:["I k.", "II k.", "III k.", "IV k."], QUARTERS:["I ketvirtis", "II ketvirtis", "III ketvirtis", "IV ketvirtis"], AMPMS:["prie\u0161piet", +"popiet"], DATEFORMATS:["y 'm'. MMMM d 'd'., EEEE", "y 'm'. MMMM d 'd'.", "y MMM d", "y-MM-dd"], TIMEFORMATS:["HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:3}; +goog.i18n.DateTimeSymbols_lv = {ERAS:["p.m.\u0113.", "m.\u0113."], ERANAMES:["pirms m\u016bsu \u0113ras", "m\u016bsu \u0113r\u0101"], NARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["janv\u0101ris", "febru\u0101ris", "marts", "apr\u012blis", "maijs", "j\u016bnijs", "j\u016blijs", "augusts", "septembris", "oktobris", "novembris", "decembris"], STANDALONEMONTHS:["Janv\u0101ris", "Febru\u0101ris", +"Marts", "Apr\u012blis", "Maijs", "J\u016bnijs", "J\u016blijs", "Augusts", "Septembris", "Oktobris", "Novembris", "Decembris"], SHORTMONTHS:["janv.", "febr.", "marts", "apr.", "maijs", "j\u016bn.", "j\u016bl.", "aug.", "sept.", "okt.", "nov.", "dec."], STANDALONESHORTMONTHS:["Janv.", "Febr.", "Marts", "Apr.", "Maijs", "J\u016bn.", "J\u016bl.", "Aug.", "Sept.", "Okt.", "Nov.", "Dec."], WEEKDAYS:["sv\u0113tdiena", "pirmdiena", "otrdiena", "tre\u0161diena", "ceturtdiena", "piektdiena", "sestdiena"], +STANDALONEWEEKDAYS:["Sv\u0113tdiena", "Pirmdiena", "Otrdiena", "Tre\u0161diena", "Ceturtdiena", "Piektdiena", "Sestdiena"], SHORTWEEKDAYS:["Sv", "Pr", "Ot", "Tr", "Ce", "Pk", "Se"], STANDALONESHORTWEEKDAYS:["Sv", "Pr", "Ot", "Tr", "Ce", "Pk", "Se"], NARROWWEEKDAYS:["S", "P", "O", "T", "C", "P", "S"], STANDALONENARROWWEEKDAYS:["S", "P", "O", "T", "C", "P", "S"], SHORTQUARTERS:["C1", "C2", "C3", "C4"], QUARTERS:["1. ceturksnis", "2. ceturksnis", "3. ceturksnis", "4. ceturksnis"], AMPMS:["priek\u0161pusdien\u0101", +"p\u0113cpusdien\u0101"], DATEFORMATS:["EEEE, y. 'gada' d. MMMM", "y. 'gada' d. MMMM", "y. 'gada' d. MMM", "dd.MM.yy"], TIMEFORMATS:["HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:6}; +goog.i18n.DateTimeSymbols_ml = {ERAS:["\u0d15\u0d4d\u0d30\u0d3f.\u0d2e\u0d42", "\u0d15\u0d4d\u0d30\u0d3f.\u0d2a\u0d3f."], ERANAMES:["\u0d15\u0d4d\u0d30\u0d3f\u0d38\u0d4d\u0d24\u0d41\u0d35\u0d3f\u0d28\u0d41\u0d4d \u0d2e\u0d41\u0d2e\u0d4d\u0d2a\u0d4d\u200c", "\u0d15\u0d4d\u0d30\u0d3f\u0d38\u0d4d\u0d24\u0d41\u0d35\u0d3f\u0d28\u0d4d \u0d2a\u0d3f\u0d7b\u0d2a\u0d4d"], NARROWMONTHS:["\u0d1c", "\u0d2b\u0d46", "\u0d2e\u0d3e", "\u0d0f", "\u0d2e\u0d47", "\u0d1c\u0d42", "\u0d1c\u0d42", "\u0d13", "\u0d38\u0d46", +"\u0d12", "\u0d28", "\u0d21\u0d3f"], STANDALONENARROWMONTHS:["\u0d1c", "\u0d2b\u0d46", "\u0d2e\u0d3e", "\u0d0f", "\u0d2e\u0d47", "\u0d1c\u0d42", "\u0d1c\u0d42", "\u0d13", "\u0d38\u0d46", "\u0d12", "\u0d28", "\u0d21\u0d3f"], MONTHS:["\u0d1c\u0d28\u0d41\u0d35\u0d30\u0d3f", "\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41\u0d35\u0d30\u0d3f", "\u0d2e\u0d3e\u0d7c\u0d1a\u0d4d\u0d1a\u0d4d", "\u0d0f\u0d2a\u0d4d\u0d30\u0d3f\u0d7d", "\u0d2e\u0d47\u0d2f\u0d4d", "\u0d1c\u0d42\u0d7a", "\u0d1c\u0d42\u0d32\u0d48", "\u0d06\u0d17\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4d", +"\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31\u0d02\u0d2c\u0d7c", "\u0d12\u0d15\u0d4d\u0d1f\u0d4b\u0d2c\u0d7c", "\u0d28\u0d35\u0d02\u0d2c\u0d7c", "\u0d21\u0d3f\u0d38\u0d02\u0d2c\u0d7c"], STANDALONEMONTHS:["\u0d1c\u0d28\u0d41\u0d35\u0d30\u0d3f", "\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41\u0d35\u0d30\u0d3f", "\u0d2e\u0d3e\u0d7c\u0d1a\u0d4d\u0d1a\u0d4d", "\u0d0f\u0d2a\u0d4d\u0d30\u0d3f\u0d7d", "\u0d2e\u0d47\u0d2f\u0d4d", "\u0d1c\u0d42\u0d7a", "\u0d1c\u0d42\u0d32\u0d48", "\u0d06\u0d17\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4d", +"\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31\u0d02\u0d2c\u0d7c", "\u0d12\u0d15\u0d4d\u0d1f\u0d4b\u0d2c\u0d7c", "\u0d28\u0d35\u0d02\u0d2c\u0d7c", "\u0d21\u0d3f\u0d38\u0d02\u0d2c\u0d7c"], SHORTMONTHS:["\u0d1c\u0d28\u0d41", "\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41", "\u0d2e\u0d3e\u0d7c", "\u0d0f\u0d2a\u0d4d\u0d30\u0d3f", "\u0d2e\u0d47\u0d2f\u0d4d", "\u0d1c\u0d42\u0d7a", "\u0d1c\u0d42\u0d32\u0d48", "\u0d13\u0d17", "\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31\u0d02", "\u0d12\u0d15\u0d4d\u0d1f\u0d4b", "\u0d28\u0d35\u0d02", +"\u0d21\u0d3f\u0d38\u0d02"], STANDALONESHORTMONTHS:["\u0d1c\u0d28\u0d41", "\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41", "\u0d2e\u0d3e\u0d7c", "\u0d0f\u0d2a\u0d4d\u0d30\u0d3f", "\u0d2e\u0d47\u0d2f\u0d4d", "\u0d1c\u0d42\u0d7a", "\u0d1c\u0d42\u0d32\u0d48", "\u0d13\u0d17", "\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31\u0d02", "\u0d12\u0d15\u0d4d\u0d1f\u0d4b", "\u0d28\u0d35\u0d02", "\u0d21\u0d3f\u0d38\u0d02"], WEEKDAYS:["\u0d1e\u0d3e\u0d2f\u0d31\u0d3e\u0d34\u0d4d\u0d1a", "\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d33\u0d3e\u0d34\u0d4d\u0d1a", +"\u0d1a\u0d4a\u0d35\u0d4d\u0d35\u0d3e\u0d34\u0d4d\u0d1a", "\u0d2c\u0d41\u0d27\u0d28\u0d3e\u0d34\u0d4d\u0d1a", "\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d3e\u0d34\u0d4d\u0d1a", "\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a", "\u0d36\u0d28\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a"], STANDALONEWEEKDAYS:["\u0d1e\u0d3e\u0d2f\u0d31\u0d3e\u0d34\u0d4d\u0d1a", "\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d33\u0d3e\u0d34\u0d4d\u0d1a", "\u0d1a\u0d4a\u0d35\u0d4d\u0d35\u0d3e\u0d34\u0d4d\u0d1a", "\u0d2c\u0d41\u0d27\u0d28\u0d3e\u0d34\u0d4d\u0d1a", +"\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d3e\u0d34\u0d4d\u0d1a", "\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a", "\u0d36\u0d28\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a"], SHORTWEEKDAYS:["\u0d1e\u0d3e\u0d2f\u0d7c", "\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d7e", "\u0d1a\u0d4a\u0d35\u0d4d\u0d35", "\u0d2c\u0d41\u0d27\u0d7b", "\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d02", "\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f", "\u0d36\u0d28\u0d3f"], STANDALONESHORTWEEKDAYS:["\u0d1e\u0d3e\u0d2f\u0d7c", "\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d7e", +"\u0d1a\u0d4a\u0d35\u0d4d\u0d35", "\u0d2c\u0d41\u0d27\u0d7b", "\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d02", "\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f", "\u0d36\u0d28\u0d3f"], NARROWWEEKDAYS:["\u0d1e\u0d3e", "\u0d24\u0d3f", "\u0d1a\u0d4a", "\u0d2c\u0d41", "\u0d35\u0d4d\u0d2f\u0d3e", "\u0d35\u0d46", "\u0d36"], STANDALONENARROWWEEKDAYS:["\u0d1e\u0d3e", "\u0d24\u0d3f", "\u0d1a\u0d4a", "\u0d2c\u0d41", "\u0d35\u0d4d\u0d2f\u0d3e", "\u0d35\u0d46", "\u0d36"], SHORTQUARTERS:["Q1", "Q2", "Q3", "Q4"], QUARTERS:["\u0d12\u0d28\u0d4d\u0d28\u0d3e\u0d02 \u0d2a\u0d3e\u0d26\u0d02", +"\u0d30\u0d23\u0d4d\u0d1f\u0d3e\u0d02 \u0d2a\u0d3e\u0d26\u0d02", "\u0d2e\u0d42\u0d28\u0d4d\u0d28\u0d3e\u0d02 \u0d2a\u0d3e\u0d26\u0d02", "\u0d28\u0d3e\u0d32\u0d3e\u0d02 \u0d2a\u0d3e\u0d26\u0d02"], AMPMS:["AM", "PM"], DATEFORMATS:["y, MMMM d, EEEE", "y, MMMM d", "y, MMM d", "dd/MM/yy"], TIMEFORMATS:["h:mm:ss a zzzz", "h:mm:ss a z", "h:mm:ss a", "h:mm a"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:6, WEEKENDRANGE:[6, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_mr = {ZERODIGIT:2406, ERAS:["\u0908\u0938\u093e\u092a\u0942\u0930\u094d\u0935", "\u0938\u0928"], ERANAMES:["\u0908\u0938\u0935\u0940\u0938\u0928\u092a\u0942\u0930\u094d\u0935", "\u0908\u0938\u0935\u0940\u0938\u0928"], NARROWMONTHS:["\u091c\u093e", "\u092b\u0947", "\u092e\u093e", "\u090f", "\u092e\u0947", "\u091c\u0942", "\u091c\u0941", "\u0911", "\u0938", "\u0911", "\u0928\u094b", "\u0921\u093f"], STANDALONENARROWMONTHS:["\u091c\u093e", "\u092b\u0947", "\u092e\u093e", "\u090f", +"\u092e\u0947", "\u091c\u0942", "\u091c\u0941", "\u0911", "\u0938", "\u0911", "\u0928\u094b", "\u0921\u093f"], MONTHS:["\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940", "\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940", "\u092e\u093e\u0930\u094d\u091a", "\u090f\u092a\u094d\u0930\u093f\u0932", "\u092e\u0947", "\u091c\u0942\u0928", "\u091c\u0941\u0932\u0948", "\u0911\u0917\u0938\u094d\u091f", "\u0938\u092a\u094d\u091f\u0947\u0902\u092c\u0930", "\u0911\u0915\u094d\u091f\u094b\u092c\u0930", +"\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930", "\u0921\u093f\u0938\u0947\u0902\u092c\u0930"], STANDALONEMONTHS:["\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940", "\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940", "\u092e\u093e\u0930\u094d\u091a", "\u090f\u092a\u094d\u0930\u093f\u0932", "\u092e\u0947", "\u091c\u0942\u0928", "\u091c\u0941\u0932\u0948", "\u0911\u0917\u0938\u094d\u091f", "\u0938\u092a\u094d\u091f\u0947\u0902\u092c\u0930", "\u0911\u0915\u094d\u091f\u094b\u092c\u0930", +"\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930", "\u0921\u093f\u0938\u0947\u0902\u092c\u0930"], SHORTMONTHS:["\u091c\u093e\u0928\u0947", "\u092b\u0947\u092c\u094d\u0930\u0941", "\u092e\u093e\u0930\u094d\u091a", "\u090f\u092a\u094d\u0930\u093f", "\u092e\u0947", "\u091c\u0942\u0928", "\u091c\u0941\u0932\u0948", "\u0911\u0917", "\u0938\u0947\u092a\u094d\u091f\u0947\u0902", "\u0911\u0915\u094d\u091f", "\u0928\u094b\u0935\u094d\u0939\u0947\u0902", "\u0921\u093f\u0938\u0947\u0902"], STANDALONESHORTMONTHS:["\u091c\u093e\u0928\u0947", +"\u092b\u0947\u092c\u094d\u0930\u0941", "\u092e\u093e\u0930\u094d\u091a", "\u090f\u092a\u094d\u0930\u093f", "\u092e\u0947", "\u091c\u0942\u0928", "\u091c\u0941\u0932\u0948", "\u0911\u0917", "\u0938\u0947\u092a\u094d\u091f\u0947\u0902", "\u0911\u0915\u094d\u091f", "\u0928\u094b\u0935\u094d\u0939\u0947\u0902", "\u0921\u093f\u0938\u0947\u0902"], WEEKDAYS:["\u0930\u0935\u093f\u0935\u093e\u0930", "\u0938\u094b\u092e\u0935\u093e\u0930", "\u092e\u0902\u0917\u0933\u0935\u093e\u0930", "\u092c\u0941\u0927\u0935\u093e\u0930", +"\u0917\u0941\u0930\u0941\u0935\u093e\u0930", "\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930", "\u0936\u0928\u093f\u0935\u093e\u0930"], STANDALONEWEEKDAYS:["\u0930\u0935\u093f\u0935\u093e\u0930", "\u0938\u094b\u092e\u0935\u093e\u0930", "\u092e\u0902\u0917\u0933\u0935\u093e\u0930", "\u092c\u0941\u0927\u0935\u093e\u0930", "\u0917\u0941\u0930\u0941\u0935\u093e\u0930", "\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930", "\u0936\u0928\u093f\u0935\u093e\u0930"], SHORTWEEKDAYS:["\u0930\u0935\u093f", +"\u0938\u094b\u092e", "\u092e\u0902\u0917\u0933", "\u092c\u0941\u0927", "\u0917\u0941\u0930\u0941", "\u0936\u0941\u0915\u094d\u0930", "\u0936\u0928\u093f"], STANDALONESHORTWEEKDAYS:["\u0930\u0935\u093f", "\u0938\u094b\u092e", "\u092e\u0902\u0917\u0933", "\u092c\u0941\u0927", "\u0917\u0941\u0930\u0941", "\u0936\u0941\u0915\u094d\u0930", "\u0936\u0928\u093f"], NARROWWEEKDAYS:["\u0930", "\u0938\u094b", "\u092e\u0902", "\u092c\u0941", "\u0917\u0941", "\u0936\u0941", "\u0936"], STANDALONENARROWWEEKDAYS:["\u0930", +"\u0938\u094b", "\u092e\u0902", "\u092c\u0941", "\u0917\u0941", "\u0936\u0941", "\u0936"], SHORTQUARTERS:["\u0924\u093f 1", "\u0924\u093f 2", "\u0924\u093f 3", "\u0924\u093f 4"], QUARTERS:["\u092a\u094d\u0930\u0925\u092e \u0924\u093f\u092e\u093e\u0939\u0940", "\u0926\u094d\u0935\u093f\u0924\u0940\u092f \u0924\u093f\u092e\u093e\u0939\u0940", "\u0924\u0943\u0924\u0940\u092f \u0924\u093f\u092e\u093e\u0939\u0940", "\u091a\u0924\u0941\u0930\u094d\u0925 \u0924\u093f\u092e\u093e\u0939\u0940"], AMPMS:["AM", +"PM"], DATEFORMATS:["EEEE d MMMM y", "d MMMM y", "d MMM y", "d-M-yy"], TIMEFORMATS:["h-mm-ss a zzzz", "h-mm-ss a z", "h-mm-ss a", "h-mm a"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:6, WEEKENDRANGE:[6, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_ms = {ERAS:["S.M.", "TM"], ERANAMES:["S.M.", "TM"], NARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "O", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "O", "S", "O", "N", "D"], MONTHS:["Januari", "Februari", "Mac", "April", "Mei", "Jun", "Julai", "Ogos", "September", "Oktober", "November", "Disember"], STANDALONEMONTHS:["Januari", "Februari", "Mac", "April", "Mei", "Jun", "Julai", "Ogos", "September", "Oktober", "November", "Disember"], +SHORTMONTHS:["Jan", "Feb", "Mac", "Apr", "Mei", "Jun", "Jul", "Ogos", "Sep", "Okt", "Nov", "Dis"], STANDALONESHORTMONTHS:["Jan", "Feb", "Mac", "Apr", "Mei", "Jun", "Jul", "Ogos", "Sep", "Okt", "Nov", "Dis"], WEEKDAYS:["Ahad", "Isnin", "Selasa", "Rabu", "Khamis", "Jumaat", "Sabtu"], STANDALONEWEEKDAYS:["Ahad", "Isnin", "Selasa", "Rabu", "Khamis", "Jumaat", "Sabtu"], SHORTWEEKDAYS:["Ahd", "Isn", "Sel", "Rab", "Kha", "Jum", "Sab"], STANDALONESHORTWEEKDAYS:["Ahd", "Isn", "Sel", "Rab", "Kha", "Jum", "Sab"], +NARROWWEEKDAYS:["A", "I", "S", "R", "K", "J", "S"], STANDALONENARROWWEEKDAYS:["A", "I", "S", "R", "K", "J", "S"], SHORTQUARTERS:["Suku 1", "Suku Ke-2", "Suku Ke-3", "Suku Ke-4"], QUARTERS:["Suku pertama", "Suku Ke-2", "Suku Ke-3", "Suku Ke-4"], AMPMS:["PG", "PTG"], DATEFORMATS:["EEEE, d MMMM y", "d MMMM y", "dd/MM/y", "d/MM/yy"], TIMEFORMATS:["h:mm:ss a zzzz", "h:mm:ss a z", "h:mm:ss a", "h:mm a"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], +FIRSTWEEKCUTOFFDAY:6}; +goog.i18n.DateTimeSymbols_mt = {ERAS:["QK", "WK"], ERANAMES:["Qabel Kristu", "Wara Kristu"], NARROWMONTHS:["J", "F", "M", "A", "M", "\u0120", "L", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "\u0120", "L", "A", "S", "O", "N", "D"], MONTHS:["Jannar", "Frar", "Marzu", "April", "Mejju", "\u0120unju", "Lulju", "Awwissu", "Settembru", "Ottubru", "Novembru", "Di\u010bembru"], STANDALONEMONTHS:["Jannar", "Frar", "Marzu", "April", "Mejju", "\u0120unju", "Lulju", "Awwissu", +"Settembru", "Ottubru", "Novembru", "Di\u010bembru"], SHORTMONTHS:["Jan", "Fra", "Mar", "Apr", "Mej", "\u0120un", "Lul", "Aww", "Set", "Ott", "Nov", "Di\u010b"], STANDALONESHORTMONTHS:["Jan", "Fra", "Mar", "Apr", "Mej", "\u0120un", "Lul", "Aww", "Set", "Ott", "Nov", "Di\u010b"], WEEKDAYS:["Il-\u0126add", "It-Tnejn", "It-Tlieta", "L-Erbg\u0127a", "Il-\u0126amis", "Il-\u0120img\u0127a", "Is-Sibt"], STANDALONEWEEKDAYS:["Il-\u0126add", "It-Tnejn", "It-Tlieta", "L-Erbg\u0127a", "Il-\u0126amis", "Il-\u0120img\u0127a", +"Is-Sibt"], SHORTWEEKDAYS:["\u0126ad", "Tne", "Tli", "Erb", "\u0126am", "\u0120im", "Sib"], STANDALONESHORTWEEKDAYS:["\u0126ad", "Tne", "Tli", "Erb", "\u0126am", "\u0120im", "Sib"], NARROWWEEKDAYS:["\u0126", "T", "T", "E", "\u0126", "\u0120", "S"], STANDALONENARROWWEEKDAYS:["\u0126", "T", "T", "E", "\u0126", "\u0120", "S"], SHORTQUARTERS:["K1", "K2", "K3", "K4"], QUARTERS:["K1", "K2", "K3", "K4"], AMPMS:["QN", "WN"], DATEFORMATS:["EEEE, d 'ta'\u2019 MMMM y", "d 'ta'\u2019 MMMM y", "dd MMM y", "dd/MM/y"], +TIMEFORMATS:["HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:6, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_nb = {ERAS:["f.Kr.", "e.Kr."], ERANAMES:["f.Kr.", "e.Kr."], NARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["januar", "februar", "mars", "april", "mai", "juni", "juli", "august", "september", "oktober", "november", "desember"], STANDALONEMONTHS:["januar", "februar", "mars", "april", "mai", "juni", "juli", "august", "september", "oktober", "november", "desember"], +SHORTMONTHS:["jan.", "feb.", "mars", "apr.", "mai", "juni", "juli", "aug.", "sep.", "okt.", "nov.", "des."], STANDALONESHORTMONTHS:["jan", "feb", "mar", "apr", "mai", "jun", "jul", "aug", "sep", "okt", "nov", "des"], WEEKDAYS:["s\u00f8ndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "l\u00f8rdag"], STANDALONEWEEKDAYS:["s\u00f8ndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "l\u00f8rdag"], SHORTWEEKDAYS:["s\u00f8n.", "man.", "tir.", "ons.", "tor.", "fre.", "l\u00f8r."], STANDALONESHORTWEEKDAYS:["s\u00f8.", +"ma.", "ti.", "on.", "to.", "fr.", "l\u00f8."], NARROWWEEKDAYS:["S", "M", "T", "O", "T", "F", "L"], STANDALONENARROWWEEKDAYS:["S", "M", "T", "O", "T", "F", "L"], SHORTQUARTERS:["K1", "K2", "K3", "K4"], QUARTERS:["1. kvartal", "2. kvartal", "3. kvartal", "4. kvartal"], AMPMS:["AM", "PM"], DATEFORMATS:["EEEE d. MMMM y", "d. MMMM y", "d. MMM y", "dd.MM.yy"], TIMEFORMATS:["'kl'. HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} {0}", "{1} 'kl.' {0}", "{1}, {0}", "{1}, {0}"], FIRSTDAYOFWEEK:0, +WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:3}; +goog.i18n.DateTimeSymbols_nl = {ERAS:["v.Chr.", "n.Chr."], ERANAMES:["Voor Christus", "na Christus"], NARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"], STANDALONEMONTHS:["januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", +"oktober", "november", "december"], SHORTMONTHS:["jan.", "feb.", "mrt.", "apr.", "mei", "jun.", "jul.", "aug.", "sep.", "okt.", "nov.", "dec."], STANDALONESHORTMONTHS:["jan", "feb", "mrt", "apr", "mei", "jun", "jul", "aug", "sep", "okt", "nov", "dec"], WEEKDAYS:["zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"], STANDALONEWEEKDAYS:["zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"], SHORTWEEKDAYS:["zo", "ma", "di", "wo", "do", "vr", "za"], +STANDALONESHORTWEEKDAYS:["zo", "ma", "di", "wo", "do", "vr", "za"], NARROWWEEKDAYS:["Z", "M", "D", "W", "D", "V", "Z"], STANDALONENARROWWEEKDAYS:["Z", "M", "D", "W", "D", "V", "Z"], SHORTQUARTERS:["K1", "K2", "K3", "K4"], QUARTERS:["1e kwartaal", "2e kwartaal", "3e kwartaal", "4e kwartaal"], AMPMS:["AM", "PM"], DATEFORMATS:["EEEE d MMMM y", "d MMMM y", "d MMM y", "dd-MM-yy"], TIMEFORMATS:["HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], +FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:3}; +goog.i18n.DateTimeSymbols_no = {ERAS:["f.Kr.", "e.Kr."], ERANAMES:["f.Kr.", "e.Kr."], NARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["januar", "februar", "mars", "april", "mai", "juni", "juli", "august", "september", "oktober", "november", "desember"], STANDALONEMONTHS:["januar", "februar", "mars", "april", "mai", "juni", "juli", "august", "september", "oktober", "november", "desember"], +SHORTMONTHS:["jan.", "feb.", "mars", "apr.", "mai", "juni", "juli", "aug.", "sep.", "okt.", "nov.", "des."], STANDALONESHORTMONTHS:["jan", "feb", "mar", "apr", "mai", "jun", "jul", "aug", "sep", "okt", "nov", "des"], WEEKDAYS:["s\u00f8ndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "l\u00f8rdag"], STANDALONEWEEKDAYS:["s\u00f8ndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "l\u00f8rdag"], SHORTWEEKDAYS:["s\u00f8n.", "man.", "tir.", "ons.", "tor.", "fre.", "l\u00f8r."], STANDALONESHORTWEEKDAYS:["s\u00f8.", +"ma.", "ti.", "on.", "to.", "fr.", "l\u00f8."], NARROWWEEKDAYS:["S", "M", "T", "O", "T", "F", "L"], STANDALONENARROWWEEKDAYS:["S", "M", "T", "O", "T", "F", "L"], SHORTQUARTERS:["K1", "K2", "K3", "K4"], QUARTERS:["1. kvartal", "2. kvartal", "3. kvartal", "4. kvartal"], AMPMS:["AM", "PM"], DATEFORMATS:["EEEE d. MMMM y", "d. MMMM y", "d. MMM y", "dd.MM.yy"], TIMEFORMATS:["'kl'. HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} {0}", "{1} 'kl.' {0}", "{1}, {0}", "{1}, {0}"], FIRSTDAYOFWEEK:0, +WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:3}; +goog.i18n.DateTimeSymbols_or = {ERAS:["BCE", "CE"], ERANAMES:["BCE", "CE"], NARROWMONTHS:["\u0b1c\u0b3e", "\u0b2b\u0b47", "\u0b2e\u0b3e", "\u0b05", "\u0b2e\u0b47", "\u0b1c\u0b41", "\u0b1c\u0b41", "\u0b05", "\u0b38\u0b47", "\u0b05", "\u0b28", "\u0b21\u0b3f"], STANDALONENARROWMONTHS:["\u0b1c\u0b3e", "\u0b2b\u0b47", "\u0b2e\u0b3e", "\u0b05", "\u0b2e\u0b47", "\u0b1c\u0b41", "\u0b1c\u0b41", "\u0b05", "\u0b38\u0b47", "\u0b05", "\u0b28", "\u0b21\u0b3f"], MONTHS:["\u0b1c\u0b3e\u0b28\u0b41\u0b06\u0b30\u0b40", +"\u0b2b\u0b47\u0b2c\u0b4d\u0b30\u0b41\u0b5f\u0b3e\u0b30\u0b40", "\u0b2e\u0b3e\u0b30\u0b4d\u0b1a\u0b4d\u0b1a", "\u0b05\u0b2a\u0b4d\u0b30\u0b47\u0b32", "\u0b2e\u0b47", "\u0b1c\u0b41\u0b28", "\u0b1c\u0b41\u0b32\u0b3e\u0b07", "\u0b05\u0b17\u0b37\u0b4d\u0b1f", "\u0b38\u0b47\u0b2a\u0b4d\u0b1f\u0b47\u0b2e\u0b4d\u0b2c\u0b30", "\u0b05\u0b15\u0b4d\u0b1f\u0b4b\u0b2c\u0b30", "\u0b28\u0b2d\u0b47\u0b2e\u0b4d\u0b2c\u0b30", "\u0b21\u0b3f\u0b38\u0b47\u0b2e\u0b4d\u0b2c\u0b30"], STANDALONEMONTHS:["\u0b1c\u0b3e\u0b28\u0b41\u0b06\u0b30\u0b40", +"\u0b2b\u0b47\u0b2c\u0b4d\u0b30\u0b41\u0b5f\u0b3e\u0b30\u0b40", "\u0b2e\u0b3e\u0b30\u0b4d\u0b1a\u0b4d\u0b1a", "\u0b05\u0b2a\u0b4d\u0b30\u0b47\u0b32", "\u0b2e\u0b47", "\u0b1c\u0b41\u0b28", "\u0b1c\u0b41\u0b32\u0b3e\u0b07", "\u0b05\u0b17\u0b37\u0b4d\u0b1f", "\u0b38\u0b47\u0b2a\u0b4d\u0b1f\u0b47\u0b2e\u0b4d\u0b2c\u0b30", "\u0b05\u0b15\u0b4d\u0b1f\u0b4b\u0b2c\u0b30", "\u0b28\u0b2d\u0b47\u0b2e\u0b4d\u0b2c\u0b30", "\u0b21\u0b3f\u0b38\u0b47\u0b2e\u0b4d\u0b2c\u0b30"], SHORTMONTHS:["\u0b1c\u0b3e\u0b28\u0b41\u0b06\u0b30\u0b40", +"\u0b2b\u0b47\u0b2c\u0b4d\u0b30\u0b41\u0b5f\u0b3e\u0b30\u0b40", "\u0b2e\u0b3e\u0b30\u0b4d\u0b1a\u0b4d\u0b1a", "\u0b05\u0b2a\u0b4d\u0b30\u0b47\u0b32", "\u0b2e\u0b47", "\u0b1c\u0b41\u0b28", "\u0b1c\u0b41\u0b32\u0b3e\u0b07", "\u0b05\u0b17\u0b37\u0b4d\u0b1f", "\u0b38\u0b47\u0b2a\u0b4d\u0b1f\u0b47\u0b2e\u0b4d\u0b2c\u0b30", "\u0b05\u0b15\u0b4d\u0b1f\u0b4b\u0b2c\u0b30", "\u0b28\u0b2d\u0b47\u0b2e\u0b4d\u0b2c\u0b30", "\u0b21\u0b3f\u0b38\u0b47\u0b2e\u0b4d\u0b2c\u0b30"], STANDALONESHORTMONTHS:["\u0b1c\u0b3e\u0b28\u0b41\u0b06\u0b30\u0b40", +"\u0b2b\u0b47\u0b2c\u0b4d\u0b30\u0b41\u0b5f\u0b3e\u0b30\u0b40", "\u0b2e\u0b3e\u0b30\u0b4d\u0b1a\u0b4d\u0b1a", "\u0b05\u0b2a\u0b4d\u0b30\u0b47\u0b32", "\u0b2e\u0b47", "\u0b1c\u0b41\u0b28", "\u0b1c\u0b41\u0b32\u0b3e\u0b07", "\u0b05\u0b17\u0b37\u0b4d\u0b1f", "\u0b38\u0b47\u0b2a\u0b4d\u0b1f\u0b47\u0b2e\u0b4d\u0b2c\u0b30", "\u0b05\u0b15\u0b4d\u0b1f\u0b4b\u0b2c\u0b30", "\u0b28\u0b2d\u0b47\u0b2e\u0b4d\u0b2c\u0b30", "\u0b21\u0b3f\u0b38\u0b47\u0b2e\u0b4d\u0b2c\u0b30"], WEEKDAYS:["\u0b30\u0b2c\u0b3f\u0b2c\u0b3e\u0b30", +"\u0b38\u0b4b\u0b2e\u0b2c\u0b3e\u0b30", "\u0b2e\u0b19\u0b4d\u0b17\u0b33\u0b2c\u0b3e\u0b30", "\u0b2c\u0b41\u0b27\u0b2c\u0b3e\u0b30", "\u0b17\u0b41\u0b30\u0b41\u0b2c\u0b3e\u0b30", "\u0b36\u0b41\u0b15\u0b4d\u0b30\u0b2c\u0b3e\u0b30", "\u0b36\u0b28\u0b3f\u0b2c\u0b3e\u0b30"], STANDALONEWEEKDAYS:["\u0b30\u0b2c\u0b3f\u0b2c\u0b3e\u0b30", "\u0b38\u0b4b\u0b2e\u0b2c\u0b3e\u0b30", "\u0b2e\u0b19\u0b4d\u0b17\u0b33\u0b2c\u0b3e\u0b30", "\u0b2c\u0b41\u0b27\u0b2c\u0b3e\u0b30", "\u0b17\u0b41\u0b30\u0b41\u0b2c\u0b3e\u0b30", +"\u0b36\u0b41\u0b15\u0b4d\u0b30\u0b2c\u0b3e\u0b30", "\u0b36\u0b28\u0b3f\u0b2c\u0b3e\u0b30"], SHORTWEEKDAYS:["\u0b30\u0b2c\u0b3f", "\u0b38\u0b4b\u0b2e", "\u0b2e\u0b19\u0b4d\u0b17\u0b33", "\u0b2c\u0b41\u0b27", "\u0b17\u0b41\u0b30\u0b41", "\u0b36\u0b41\u0b15\u0b4d\u0b30", "\u0b36\u0b28\u0b3f"], STANDALONESHORTWEEKDAYS:["\u0b30\u0b2c\u0b3f", "\u0b38\u0b4b\u0b2e", "\u0b2e\u0b19\u0b4d\u0b17\u0b33", "\u0b2c\u0b41\u0b27", "\u0b17\u0b41\u0b30\u0b41", "\u0b36\u0b41\u0b15\u0b4d\u0b30", "\u0b36\u0b28\u0b3f"], +NARROWWEEKDAYS:["\u0b30", "\u0b38\u0b4b", "\u0b2e", "\u0b2c\u0b41", "\u0b17\u0b41", "\u0b36\u0b41", "\u0b36"], STANDALONENARROWWEEKDAYS:["\u0b30", "\u0b38\u0b4b", "\u0b2e", "\u0b2c\u0b41", "\u0b17\u0b41", "\u0b36\u0b41", "\u0b36"], SHORTQUARTERS:["Q1", "Q2", "Q3", "Q4"], QUARTERS:["Q1", "Q2", "Q3", "Q4"], AMPMS:["am", "pm"], DATEFORMATS:["EEEE, d MMMM y", "d MMMM y", "d MMM y", "d-M-yy"], TIMEFORMATS:["h:mm:ss a zzzz", "h:mm:ss a z", "h:mm:ss a", "h:mm a"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", +"{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:6, WEEKENDRANGE:[6, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_pl = {ERAS:["p.n.e.", "n.e."], ERANAMES:["p.n.e.", "n.e."], NARROWMONTHS:["s", "l", "m", "k", "m", "c", "l", "s", "w", "p", "l", "g"], STANDALONENARROWMONTHS:["s", "l", "m", "k", "m", "c", "l", "s", "w", "p", "l", "g"], MONTHS:["stycznia", "lutego", "marca", "kwietnia", "maja", "czerwca", "lipca", "sierpnia", "wrze\u015bnia", "pa\u017adziernika", "listopada", "grudnia"], STANDALONEMONTHS:["stycze\u0144", "luty", "marzec", "kwiecie\u0144", "maj", "czerwiec", "lipiec", "sierpie\u0144", +"wrzesie\u0144", "pa\u017adziernik", "listopad", "grudzie\u0144"], SHORTMONTHS:["sty", "lut", "mar", "kwi", "maj", "cze", "lip", "sie", "wrz", "pa\u017a", "lis", "gru"], STANDALONESHORTMONTHS:["sty", "lut", "mar", "kwi", "maj", "cze", "lip", "sie", "wrz", "pa\u017a", "lis", "gru"], WEEKDAYS:["niedziela", "poniedzia\u0142ek", "wtorek", "\u015broda", "czwartek", "pi\u0105tek", "sobota"], STANDALONEWEEKDAYS:["niedziela", "poniedzia\u0142ek", "wtorek", "\u015broda", "czwartek", "pi\u0105tek", "sobota"], +SHORTWEEKDAYS:["niedz.", "pon.", "wt.", "\u015br.", "czw.", "pt.", "sob."], STANDALONESHORTWEEKDAYS:["niedz.", "pon.", "wt.", "\u015br.", "czw.", "pt.", "sob."], NARROWWEEKDAYS:["N", "P", "W", "\u015a", "C", "P", "S"], STANDALONENARROWWEEKDAYS:["N", "P", "W", "\u015a", "C", "P", "S"], SHORTQUARTERS:["K1", "K2", "K3", "K4"], QUARTERS:["I kwarta\u0142", "II kwarta\u0142", "III kwarta\u0142", "IV kwarta\u0142"], AMPMS:["AM", "PM"], DATEFORMATS:["EEEE, d MMMM y", "d MMMM y", "d MMM y", "dd.MM.y"], TIMEFORMATS:["HH:mm:ss zzzz", +"HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1}, {0}", "{1}, {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:3}; +goog.i18n.DateTimeSymbols_pt = {ERAS:["a.C.", "d.C."], ERANAMES:["Antes de Cristo", "Ano do Senhor"], NARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["janeiro", "fevereiro", "mar\u00e7o", "abril", "maio", "junho", "julho", "agosto", "setembro", "outubro", "novembro", "dezembro"], STANDALONEMONTHS:["janeiro", "fevereiro", "mar\u00e7o", "abril", "maio", "junho", "julho", "agosto", +"setembro", "outubro", "novembro", "dezembro"], SHORTMONTHS:["jan", "fev", "mar", "abr", "mai", "jun", "jul", "ago", "set", "out", "nov", "dez"], STANDALONESHORTMONTHS:["jan", "fev", "mar", "abr", "mai", "jun", "jul", "ago", "set", "out", "nov", "dez"], WEEKDAYS:["domingo", "segunda-feira", "ter\u00e7a-feira", "quarta-feira", "quinta-feira", "sexta-feira", "s\u00e1bado"], STANDALONEWEEKDAYS:["domingo", "segunda-feira", "ter\u00e7a-feira", "quarta-feira", "quinta-feira", "sexta-feira", "s\u00e1bado"], +SHORTWEEKDAYS:["dom", "seg", "ter", "qua", "qui", "sex", "s\u00e1b"], STANDALONESHORTWEEKDAYS:["dom", "seg", "ter", "qua", "qui", "sex", "s\u00e1b"], NARROWWEEKDAYS:["D", "S", "T", "Q", "Q", "S", "S"], STANDALONENARROWWEEKDAYS:["D", "S", "T", "Q", "Q", "S", "S"], SHORTQUARTERS:["T1", "T2", "T3", "T4"], QUARTERS:["1\u00ba trimestre", "2\u00ba trimestre", "3\u00ba trimestre", "4\u00ba trimestre"], AMPMS:["AM", "PM"], DATEFORMATS:["EEEE, d 'de' MMMM 'de' y", "d 'de' MMMM 'de' y", "dd/MM/y", "dd/MM/yy"], +TIMEFORMATS:["HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:6, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_pt_BR = goog.i18n.DateTimeSymbols_pt; +goog.i18n.DateTimeSymbols_pt_PT = {ERAS:["a.C.", "d.C."], ERANAMES:["Antes de Cristo", "Ano do Senhor"], NARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["Janeiro", "Fevereiro", "Mar\u00e7o", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"], STANDALONEMONTHS:["Janeiro", "Fevereiro", "Mar\u00e7o", "Abril", "Maio", "Junho", "Julho", "Agosto", +"Setembro", "Outubro", "Novembro", "Dezembro"], SHORTMONTHS:["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"], STANDALONESHORTMONTHS:["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"], WEEKDAYS:["Domingo", "Segunda-feira", "Ter\u00e7a-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "S\u00e1bado"], STANDALONEWEEKDAYS:["Domingo", "Segunda-feira", "Ter\u00e7a-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "S\u00e1bado"], +SHORTWEEKDAYS:["dom", "seg", "ter", "qua", "qui", "sex", "s\u00e1b"], STANDALONESHORTWEEKDAYS:["dom", "seg", "ter", "qua", "qui", "sex", "s\u00e1b"], NARROWWEEKDAYS:["D", "S", "T", "Q", "Q", "S", "S"], STANDALONENARROWWEEKDAYS:["D", "S", "T", "Q", "Q", "S", "S"], SHORTQUARTERS:["T1", "T2", "T3", "T4"], QUARTERS:["1.\u00ba trimestre", "2.\u00ba trimestre", "3.\u00ba trimestre", "4.\u00ba trimestre"], AMPMS:["AM", "PM"], DATEFORMATS:["EEEE, d 'de' MMMM 'de' y", "d 'de' MMMM 'de' y", "dd/MM/y", "dd/MM/yy"], +TIMEFORMATS:["HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} '\u00e0s' {0}", "{1} '\u00e0s' {0}", "{1}, {0}", "{1}, {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:3}; +goog.i18n.DateTimeSymbols_ro = {ERAS:["\u00ee.Hr.", "d.Hr."], ERANAMES:["\u00eenainte de Hristos", "dup\u0103 Hristos"], NARROWMONTHS:["I", "F", "M", "A", "M", "I", "I", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["I", "F", "M", "A", "M", "I", "I", "A", "S", "O", "N", "D"], MONTHS:["ianuarie", "februarie", "martie", "aprilie", "mai", "iunie", "iulie", "august", "septembrie", "octombrie", "noiembrie", "decembrie"], STANDALONEMONTHS:["ianuarie", "februarie", "martie", "aprilie", "mai", "iunie", +"iulie", "august", "septembrie", "octombrie", "noiembrie", "decembrie"], SHORTMONTHS:["ian.", "feb.", "mar.", "apr.", "mai", "iun.", "iul.", "aug.", "sept.", "oct.", "nov.", "dec."], STANDALONESHORTMONTHS:["ian.", "feb.", "mar.", "apr.", "mai", "iun.", "iul.", "aug.", "sept.", "oct.", "nov.", "dec."], WEEKDAYS:["duminic\u0103", "luni", "mar\u021bi", "miercuri", "joi", "vineri", "s\u00e2mb\u0103t\u0103"], STANDALONEWEEKDAYS:["duminic\u0103", "luni", "mar\u021bi", "miercuri", "joi", "vineri", "s\u00e2mb\u0103t\u0103"], +SHORTWEEKDAYS:["Du", "Lu", "Ma", "Mi", "Jo", "Vi", "S\u00e2"], STANDALONESHORTWEEKDAYS:["Du", "Lu", "Ma", "Mi", "Jo", "Vi", "S\u00e2"], NARROWWEEKDAYS:["D", "L", "M", "M", "J", "V", "S"], STANDALONENARROWWEEKDAYS:["D", "L", "M", "M", "J", "V", "S"], SHORTQUARTERS:["trim. I", "trim. II", "trim. III", "trim. IV"], QUARTERS:["trimestrul I", "trimestrul al II-lea", "trimestrul al III-lea", "trimestrul al IV-lea"], AMPMS:["AM", "PM"], DATEFORMATS:["EEEE, d MMMM y", "d MMMM y", "dd.MM.y", "dd.MM.y"], TIMEFORMATS:["HH:mm:ss zzzz", +"HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1}, {0}", "{1}, {0}", "{1}, {0}", "{1}, {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:6}; +goog.i18n.DateTimeSymbols_ru = {ERAS:["\u0434\u043e \u043d.\u044d.", "\u043d.\u044d."], ERANAMES:["\u0434\u043e \u043d.\u044d.", "\u043d.\u044d."], NARROWMONTHS:["\u042f", "\u0424", "\u041c", "\u0410", "\u041c", "\u0418", "\u0418", "\u0410", "\u0421", "\u041e", "\u041d", "\u0414"], STANDALONENARROWMONTHS:["\u042f", "\u0424", "\u041c", "\u0410", "\u041c", "\u0418", "\u0418", "\u0410", "\u0421", "\u041e", "\u041d", "\u0414"], MONTHS:["\u044f\u043d\u0432\u0430\u0440\u044f", "\u0444\u0435\u0432\u0440\u0430\u043b\u044f", +"\u043c\u0430\u0440\u0442\u0430", "\u0430\u043f\u0440\u0435\u043b\u044f", "\u043c\u0430\u044f", "\u0438\u044e\u043d\u044f", "\u0438\u044e\u043b\u044f", "\u0430\u0432\u0433\u0443\u0441\u0442\u0430", "\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f", "\u043e\u043a\u0442\u044f\u0431\u0440\u044f", "\u043d\u043e\u044f\u0431\u0440\u044f", "\u0434\u0435\u043a\u0430\u0431\u0440\u044f"], STANDALONEMONTHS:["\u042f\u043d\u0432\u0430\u0440\u044c", "\u0424\u0435\u0432\u0440\u0430\u043b\u044c", "\u041c\u0430\u0440\u0442", +"\u0410\u043f\u0440\u0435\u043b\u044c", "\u041c\u0430\u0439", "\u0418\u044e\u043d\u044c", "\u0418\u044e\u043b\u044c", "\u0410\u0432\u0433\u0443\u0441\u0442", "\u0421\u0435\u043d\u0442\u044f\u0431\u0440\u044c", "\u041e\u043a\u0442\u044f\u0431\u0440\u044c", "\u041d\u043e\u044f\u0431\u0440\u044c", "\u0414\u0435\u043a\u0430\u0431\u0440\u044c"], SHORTMONTHS:["\u044f\u043d\u0432.", "\u0444\u0435\u0432\u0440.", "\u043c\u0430\u0440\u0442\u0430", "\u0430\u043f\u0440.", "\u043c\u0430\u044f", "\u0438\u044e\u043d\u044f", +"\u0438\u044e\u043b\u044f", "\u0430\u0432\u0433.", "\u0441\u0435\u043d\u0442.", "\u043e\u043a\u0442.", "\u043d\u043e\u044f\u0431.", "\u0434\u0435\u043a."], STANDALONESHORTMONTHS:["\u042f\u043d\u0432.", "\u0424\u0435\u0432\u0440.", "\u041c\u0430\u0440\u0442", "\u0410\u043f\u0440.", "\u041c\u0430\u0439", "\u0418\u044e\u043d\u044c", "\u0418\u044e\u043b\u044c", "\u0410\u0432\u0433.", "\u0421\u0435\u043d\u0442.", "\u041e\u043a\u0442.", "\u041d\u043e\u044f\u0431.", "\u0414\u0435\u043a."], WEEKDAYS:["\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435", +"\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a", "\u0432\u0442\u043e\u0440\u043d\u0438\u043a", "\u0441\u0440\u0435\u0434\u0430", "\u0447\u0435\u0442\u0432\u0435\u0440\u0433", "\u043f\u044f\u0442\u043d\u0438\u0446\u0430", "\u0441\u0443\u0431\u0431\u043e\u0442\u0430"], STANDALONEWEEKDAYS:["\u0412\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435", "\u041f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a", "\u0412\u0442\u043e\u0440\u043d\u0438\u043a", "\u0421\u0440\u0435\u0434\u0430", +"\u0427\u0435\u0442\u0432\u0435\u0440\u0433", "\u041f\u044f\u0442\u043d\u0438\u0446\u0430", "\u0421\u0443\u0431\u0431\u043e\u0442\u0430"], SHORTWEEKDAYS:["\u0432\u0441", "\u043f\u043d", "\u0432\u0442", "\u0441\u0440", "\u0447\u0442", "\u043f\u0442", "\u0441\u0431"], STANDALONESHORTWEEKDAYS:["\u0412\u0441", "\u041f\u043d", "\u0412\u0442", "\u0421\u0440", "\u0427\u0442", "\u041f\u0442", "\u0421\u0431"], NARROWWEEKDAYS:["\u0432\u0441", "\u043f\u043d", "\u0432\u0442", "\u0441\u0440", "\u0447\u0442", +"\u043f\u0442", "\u0441\u0431"], STANDALONENARROWWEEKDAYS:["\u0412", "\u041f", "\u0412", "\u0421", "\u0427", "\u041f", "\u0421"], SHORTQUARTERS:["1-\u0439 \u043a\u0432.", "2-\u0439 \u043a\u0432.", "3-\u0439 \u043a\u0432.", "4-\u0439 \u043a\u0432."], QUARTERS:["1-\u0439 \u043a\u0432\u0430\u0440\u0442\u0430\u043b", "2-\u0439 \u043a\u0432\u0430\u0440\u0442\u0430\u043b", "3-\u0439 \u043a\u0432\u0430\u0440\u0442\u0430\u043b", "4-\u0439 \u043a\u0432\u0430\u0440\u0442\u0430\u043b"], AMPMS:["\u0434\u043e \u043f\u043e\u043b\u0443\u0434\u043d\u044f", +"\u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u043b\u0443\u0434\u043d\u044f"], DATEFORMATS:["EEEE, d MMMM y '\u0433'.", "d MMMM y '\u0433'.", "dd MMM y '\u0433'.", "dd.MM.yy"], TIMEFORMATS:["H:mm:ss zzzz", "H:mm:ss z", "H:mm:ss", "H:mm"], DATETIMEFORMATS:["{1}, {0}", "{1}, {0}", "{1}, {0}", "{1}, {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:6}; +goog.i18n.DateTimeSymbols_sk = {ERAS:["pred n.l.", "n.l."], ERANAMES:["pred n.l.", "n.l."], NARROWMONTHS:["j", "f", "m", "a", "m", "j", "j", "a", "s", "o", "n", "d"], STANDALONENARROWMONTHS:["j", "f", "m", "a", "m", "j", "j", "a", "s", "o", "n", "d"], MONTHS:["janu\u00e1ra", "febru\u00e1ra", "marca", "apr\u00edla", "m\u00e1ja", "j\u00fana", "j\u00fala", "augusta", "septembra", "okt\u00f3bra", "novembra", "decembra"], STANDALONEMONTHS:["janu\u00e1r", "febru\u00e1r", "marec", "apr\u00edl", "m\u00e1j", +"j\u00fan", "j\u00fal", "august", "september", "okt\u00f3ber", "november", "december"], SHORTMONTHS:["jan", "feb", "mar", "apr", "m\u00e1j", "j\u00fan", "j\u00fal", "aug", "sep", "okt", "nov", "dec"], STANDALONESHORTMONTHS:["jan", "feb", "mar", "apr", "m\u00e1j", "j\u00fan", "j\u00fal", "aug", "sep", "okt", "nov", "dec"], WEEKDAYS:["nede\u013ea", "pondelok", "utorok", "streda", "\u0161tvrtok", "piatok", "sobota"], STANDALONEWEEKDAYS:["nede\u013ea", "pondelok", "utorok", "streda", "\u0161tvrtok", +"piatok", "sobota"], SHORTWEEKDAYS:["ne", "po", "ut", "st", "\u0161t", "pi", "so"], STANDALONESHORTWEEKDAYS:["ne", "po", "ut", "st", "\u0161t", "pi", "so"], NARROWWEEKDAYS:["N", "P", "U", "S", "\u0160", "P", "S"], STANDALONENARROWWEEKDAYS:["N", "P", "U", "S", "\u0160", "P", "S"], SHORTQUARTERS:["Q1", "Q2", "Q3", "Q4"], QUARTERS:["1. \u0161tvr\u0165rok", "2. \u0161tvr\u0165rok", "3. \u0161tvr\u0165rok", "4. \u0161tvr\u0165rok"], AMPMS:["dopoludnia", "popoludn\u00ed"], DATEFORMATS:["EEEE, d. MMMM y", +"d. MMMM y", "d.M.y", "d.M.y"], TIMEFORMATS:["H:mm:ss zzzz", "H:mm:ss z", "H:mm:ss", "H:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:3}; +goog.i18n.DateTimeSymbols_sl = {ERAS:["pr. n. \u0161t.", "po Kr."], ERANAMES:["pred na\u0161im \u0161tetjem", "na\u0161e \u0161tetje"], NARROWMONTHS:["j", "f", "m", "a", "m", "j", "j", "a", "s", "o", "n", "d"], STANDALONENARROWMONTHS:["j", "f", "m", "a", "m", "j", "j", "a", "s", "o", "n", "d"], MONTHS:["januar", "februar", "marec", "april", "maj", "junij", "julij", "avgust", "september", "oktober", "november", "december"], STANDALONEMONTHS:["januar", "februar", "marec", "april", "maj", "junij", "julij", +"avgust", "september", "oktober", "november", "december"], SHORTMONTHS:["jan.", "feb.", "mar.", "apr.", "maj", "jun.", "jul.", "avg.", "sep.", "okt.", "nov.", "dec."], STANDALONESHORTMONTHS:["jan", "feb", "mar", "apr", "maj", "jun", "jul", "avg", "sep", "okt", "nov", "dec"], WEEKDAYS:["nedelja", "ponedeljek", "torek", "sreda", "\u010detrtek", "petek", "sobota"], STANDALONEWEEKDAYS:["nedelja", "ponedeljek", "torek", "sreda", "\u010detrtek", "petek", "sobota"], SHORTWEEKDAYS:["ned.", "pon.", "tor.", +"sre.", "\u010det.", "pet.", "sob."], STANDALONESHORTWEEKDAYS:["ned", "pon", "tor", "sre", "\u010det", "pet", "sob"], NARROWWEEKDAYS:["n", "p", "t", "s", "\u010d", "p", "s"], STANDALONENARROWWEEKDAYS:["n", "p", "t", "s", "\u010d", "p", "s"], SHORTQUARTERS:["Q1", "Q2", "Q3", "Q4"], QUARTERS:["1. \u010detrtletje", "2. \u010detrtletje", "3. \u010detrtletje", "4. \u010detrtletje"], AMPMS:["dop.", "pop."], DATEFORMATS:["EEEE, dd. MMMM y", "dd. MMMM y", "d. MMM y", "d. MM. yy"], TIMEFORMATS:["HH:mm:ss zzzz", +"HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:6}; +goog.i18n.DateTimeSymbols_sq = {ERAS:["p.e.r.", "n.e.r."], ERANAMES:["p.e.r.", "n.e.r."], NARROWMONTHS:["J", "S", "M", "P", "M", "Q", "K", "G", "S", "T", "N", "D"], STANDALONENARROWMONTHS:["J", "S", "M", "P", "M", "Q", "K", "G", "S", "T", "N", "D"], MONTHS:["janar", "shkurt", "mars", "prill", "maj", "qershor", "korrik", "gusht", "shtator", "tetor", "n\u00ebntor", "dhjetor"], STANDALONEMONTHS:["janar", "shkurt", "mars", "prill", "maj", "qershor", "korrik", "gusht", "shtator", "tetor", "n\u00ebntor", +"dhjetor"], SHORTMONTHS:["Jan", "Shk", "Mar", "Pri", "Maj", "Qer", "Kor", "Gsh", "Sht", "Tet", "N\u00ebn", "Dhj"], STANDALONESHORTMONTHS:["Jan", "Shk", "Mar", "Pri", "Maj", "Qer", "Kor", "Gsh", "Sht", "Tet", "N\u00ebn", "Dhj"], WEEKDAYS:["e diel", "e h\u00ebn\u00eb", "e mart\u00eb", "e m\u00ebrkur\u00eb", "e enjte", "e premte", "e shtun\u00eb"], STANDALONEWEEKDAYS:["e diel", "e h\u00ebn\u00eb", "e mart\u00eb", "e m\u00ebrkur\u00eb", "e enjte", "e premte", "e shtun\u00eb"], SHORTWEEKDAYS:["Die", "H\u00ebn", +"Mar", "M\u00ebr", "Enj", "Pre", "Sht"], STANDALONESHORTWEEKDAYS:["Die", "H\u00ebn", "Mar", "M\u00ebr", "Enj", "Pre", "Sht"], NARROWWEEKDAYS:["D", "H", "M", "M", "E", "P", "S"], STANDALONENARROWWEEKDAYS:["D", "H", "M", "M", "E", "P", "S"], SHORTQUARTERS:["Q1", "Q2", "Q3", "Q4"], QUARTERS:["Q1", "Q2", "Q3", "Q4"], AMPMS:["PD", "MD"], DATEFORMATS:["EEEE, dd MMMM y", "dd MMMM y", "y-MM-dd", "yy-MM-dd"], TIMEFORMATS:["h.mm.ss.a zzzz", "h.mm.ss.a z", "h.mm.ss.a", "h.mm.a"], DATETIMEFORMATS:["{1} {0}", +"{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:6}; +goog.i18n.DateTimeSymbols_sr = {ERAS:["\u043f. \u043d. \u0435.", "\u043d. \u0435."], ERANAMES:["\u041f\u0440\u0435 \u043d\u043e\u0432\u0435 \u0435\u0440\u0435", "\u041d\u043e\u0432\u0435 \u0435\u0440\u0435"], NARROWMONTHS:["\u0458", "\u0444", "\u043c", "\u0430", "\u043c", "\u0458", "\u0458", "\u0430", "\u0441", "\u043e", "\u043d", "\u0434"], STANDALONENARROWMONTHS:["\u0458", "\u0444", "\u043c", "\u0430", "\u043c", "\u0458", "\u0458", "\u0430", "\u0441", "\u043e", "\u043d", "\u0434"], MONTHS:["\u0458\u0430\u043d\u0443\u0430\u0440", +"\u0444\u0435\u0431\u0440\u0443\u0430\u0440", "\u043c\u0430\u0440\u0442", "\u0430\u043f\u0440\u0438\u043b", "\u043c\u0430\u0458", "\u0458\u0443\u043d", "\u0458\u0443\u043b", "\u0430\u0432\u0433\u0443\u0441\u0442", "\u0441\u0435\u043f\u0442\u0435\u043c\u0431\u0430\u0440", "\u043e\u043a\u0442\u043e\u0431\u0430\u0440", "\u043d\u043e\u0432\u0435\u043c\u0431\u0430\u0440", "\u0434\u0435\u0446\u0435\u043c\u0431\u0430\u0440"], STANDALONEMONTHS:["\u0458\u0430\u043d\u0443\u0430\u0440", "\u0444\u0435\u0431\u0440\u0443\u0430\u0440", +"\u043c\u0430\u0440\u0442", "\u0430\u043f\u0440\u0438\u043b", "\u043c\u0430\u0458", "\u0458\u0443\u043d", "\u0458\u0443\u043b", "\u0430\u0432\u0433\u0443\u0441\u0442", "\u0441\u0435\u043f\u0442\u0435\u043c\u0431\u0430\u0440", "\u043e\u043a\u0442\u043e\u0431\u0430\u0440", "\u043d\u043e\u0432\u0435\u043c\u0431\u0430\u0440", "\u0434\u0435\u0446\u0435\u043c\u0431\u0430\u0440"], SHORTMONTHS:["\u0458\u0430\u043d", "\u0444\u0435\u0431", "\u043c\u0430\u0440", "\u0430\u043f\u0440", "\u043c\u0430\u0458", "\u0458\u0443\u043d", +"\u0458\u0443\u043b", "\u0430\u0432\u0433", "\u0441\u0435\u043f", "\u043e\u043a\u0442", "\u043d\u043e\u0432", "\u0434\u0435\u0446"], STANDALONESHORTMONTHS:["\u0458\u0430\u043d", "\u0444\u0435\u0431", "\u043c\u0430\u0440", "\u0430\u043f\u0440", "\u043c\u0430\u0458", "\u0458\u0443\u043d", "\u0458\u0443\u043b", "\u0430\u0432\u0433", "\u0441\u0435\u043f", "\u043e\u043a\u0442", "\u043d\u043e\u0432", "\u0434\u0435\u0446"], WEEKDAYS:["\u043d\u0435\u0434\u0435\u0459\u0430", "\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u0430\u043a", +"\u0443\u0442\u043e\u0440\u0430\u043a", "\u0441\u0440\u0435\u0434\u0430", "\u0447\u0435\u0442\u0432\u0440\u0442\u0430\u043a", "\u043f\u0435\u0442\u0430\u043a", "\u0441\u0443\u0431\u043e\u0442\u0430"], STANDALONEWEEKDAYS:["\u043d\u0435\u0434\u0435\u0459\u0430", "\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u0430\u043a", "\u0443\u0442\u043e\u0440\u0430\u043a", "\u0441\u0440\u0435\u0434\u0430", "\u0447\u0435\u0442\u0432\u0440\u0442\u0430\u043a", "\u043f\u0435\u0442\u0430\u043a", "\u0441\u0443\u0431\u043e\u0442\u0430"], +SHORTWEEKDAYS:["\u043d\u0435\u0434", "\u043f\u043e\u043d", "\u0443\u0442\u043e", "\u0441\u0440\u0435", "\u0447\u0435\u0442", "\u043f\u0435\u0442", "\u0441\u0443\u0431"], STANDALONESHORTWEEKDAYS:["\u043d\u0435\u0434", "\u043f\u043e\u043d", "\u0443\u0442\u043e", "\u0441\u0440\u0435", "\u0447\u0435\u0442", "\u043f\u0435\u0442", "\u0441\u0443\u0431"], NARROWWEEKDAYS:["\u043d", "\u043f", "\u0443", "\u0441", "\u0447", "\u043f", "\u0441"], STANDALONENARROWWEEKDAYS:["\u043d", "\u043f", "\u0443", "\u0441", +"\u0447", "\u043f", "\u0441"], SHORTQUARTERS:["\u041a1", "\u041a2", "\u041a3", "\u041a4"], QUARTERS:["\u041f\u0440\u0432\u043e \u0442\u0440\u043e\u043c\u0435\u0441\u0435\u0447\u0458\u0435", "\u0414\u0440\u0443\u0433\u043e \u0442\u0440\u043e\u043c\u0435\u0441\u0435\u0447\u0458\u0435", "\u0422\u0440\u0435\u045b\u0435 \u0442\u0440\u043e\u043c\u0435\u0441\u0435\u0447\u0458\u0435", "\u0427\u0435\u0442\u0432\u0440\u0442\u043e \u0442\u0440\u043e\u043c\u0435\u0441\u0435\u0447\u0458\u0435"], AMPMS:["\u043f\u0440\u0435 \u043f\u043e\u0434\u043d\u0435", +"\u043f\u043e\u043f\u043e\u0434\u043d\u0435"], DATEFORMATS:["EEEE, dd. MMMM y.", "dd. MMMM y.", "dd.MM.y.", "d.M.yy."], TIMEFORMATS:["HH.mm.ss zzzz", "HH.mm.ss z", "HH.mm.ss", "HH.mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:6}; +goog.i18n.DateTimeSymbols_sv = {ERAS:["f.Kr.", "e.Kr."], ERANAMES:["f\u00f6re Kristus", "efter Kristus"], NARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["januari", "februari", "mars", "april", "maj", "juni", "juli", "augusti", "september", "oktober", "november", "december"], STANDALONEMONTHS:["Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", +"Oktober", "November", "December"], SHORTMONTHS:["jan", "feb", "mar", "apr", "maj", "jun", "jul", "aug", "sep", "okt", "nov", "dec"], STANDALONESHORTMONTHS:["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], WEEKDAYS:["s\u00f6ndag", "m\u00e5ndag", "tisdag", "onsdag", "torsdag", "fredag", "l\u00f6rdag"], STANDALONEWEEKDAYS:["S\u00f6ndag", "M\u00e5ndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "L\u00f6rdag"], SHORTWEEKDAYS:["s\u00f6n", "m\u00e5n", "tis", "ons", "tors", +"fre", "l\u00f6r"], STANDALONESHORTWEEKDAYS:["S\u00f6n", "M\u00e5n", "Tis", "Ons", "Tor", "Fre", "L\u00f6r"], NARROWWEEKDAYS:["S", "M", "T", "O", "T", "F", "L"], STANDALONENARROWWEEKDAYS:["S", "M", "T", "O", "T", "F", "L"], SHORTQUARTERS:["K1", "K2", "K3", "K4"], QUARTERS:["1:a kvartalet", "2:a kvartalet", "3:e kvartalet", "4:e kvartalet"], AMPMS:["fm", "em"], DATEFORMATS:["EEEE'en' 'den' d:'e' MMMM y", "d MMMM y", "d MMM y", "y-MM-dd"], TIMEFORMATS:["'kl'. HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", +"HH:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:3}; +goog.i18n.DateTimeSymbols_sw = {ERAS:["KK", "BK"], ERANAMES:["Kabla ya Kristo", "Baada ya Kristo"], NARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["Januari", "Februari", "Machi", "Aprili", "Mei", "Juni", "Julai", "Agosti", "Septemba", "Oktoba", "Novemba", "Desemba"], STANDALONEMONTHS:["Januari", "Februari", "Machi", "Aprili", "Mei", "Juni", "Julai", "Agosti", "Septemba", "Oktoba", +"Novemba", "Desemba"], SHORTMONTHS:["Jan", "Feb", "Mac", "Apr", "Mei", "Jun", "Jul", "Ago", "Sep", "Okt", "Nov", "Des"], STANDALONESHORTMONTHS:["Jan", "Feb", "Mac", "Apr", "Mei", "Jun", "Jul", "Ago", "Sep", "Okt", "Nov", "Des"], WEEKDAYS:["Jumapili", "Jumatatu", "Jumanne", "Jumatano", "Alhamisi", "Ijumaa", "Jumamosi"], STANDALONEWEEKDAYS:["Jumapili", "Jumatatu", "Jumanne", "Jumatano", "Alhamisi", "Ijumaa", "Jumamosi"], SHORTWEEKDAYS:["J2", "J3", "J4", "J5", "Alh", "Ij", "J1"], STANDALONESHORTWEEKDAYS:["J2", +"J3", "J4", "J5", "Alh", "Ij", "J1"], NARROWWEEKDAYS:["2", "3", "4", "5", "A", "I", "1"], STANDALONENARROWWEEKDAYS:["2", "3", "4", "5", "A", "I", "1"], SHORTQUARTERS:["Q1", "Q2", "Q3", "Q4"], QUARTERS:["Robo 1", "Robo 2", "Robo 3", "Robo 4"], AMPMS:["asubuhi", "alasiri"], DATEFORMATS:["EEEE, d MMMM y", "d MMMM y", "d MMM y", "dd/MM/y"], TIMEFORMATS:["h:mm:ss a zzzz", "h:mm:ss a z", "h:mm:ss a", "h:mm a"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, +6], FIRSTWEEKCUTOFFDAY:6}; +goog.i18n.DateTimeSymbols_ta = {ERAS:["\u0b95\u0bbf.\u0bae\u0bc1.", "\u0b95\u0bbf.\u0baa\u0bbf."], ERANAMES:["\u0b95\u0bbf\u0bb1\u0bbf\u0bb8\u0bcd\u0ba4\u0bc1\u0bb5\u0bc1\u0b95\u0bcd\u0b95\u0bc1 \u0bae\u0bc1\u0ba9\u0bcd", "\u0b85\u0ba9\u0bcb \u0b9f\u0bcb\u0bae\u0bbf\u0ba9\u0bbf"], NARROWMONTHS:["\u0b9c", "\u0baa\u0bbf", "\u0bae\u0bbe", "\u0b8f", "\u0bae\u0bc7", "\u0b9c\u0bc2", "\u0b9c\u0bc2", "\u0b86", "\u0b9a\u0bc6", "\u0b85", "\u0ba8", "\u0b9f\u0bbf"], STANDALONENARROWMONTHS:["\u0b9c", "\u0baa\u0bbf", +"\u0bae\u0bbe", "\u0b8f", "\u0bae\u0bc7", "\u0b9c\u0bc2", "\u0b9c\u0bc2", "\u0b86", "\u0b9a\u0bc6", "\u0b85", "\u0ba8", "\u0b9f\u0bbf"], MONTHS:["\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf", "\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf", "\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd", "\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd", "\u0bae\u0bc7", "\u0b9c\u0bc2\u0ba9\u0bcd", "\u0b9c\u0bc2\u0bb2\u0bc8", "\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd", "\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bae\u0bcd\u0baa\u0bb0\u0bcd", "\u0b85\u0b95\u0bcd\u0b9f\u0bcb\u0baa\u0bb0\u0bcd", +"\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd", "\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd"], STANDALONEMONTHS:["\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf", "\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf", "\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd", "\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd", "\u0bae\u0bc7", "\u0b9c\u0bc2\u0ba9\u0bcd", "\u0b9c\u0bc2\u0bb2\u0bc8", "\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bc1", "\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bae\u0bcd\u0baa\u0bb0\u0bcd", "\u0b85\u0b95\u0bcd\u0b9f\u0bcb\u0baa\u0bb0\u0bcd", +"\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd", "\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd"], SHORTMONTHS:["\u0b9c\u0ba9.", "\u0baa\u0bbf\u0baa\u0bcd.", "\u0bae\u0bbe\u0bb0\u0bcd.", "\u0b8f\u0baa\u0bcd.", "\u0bae\u0bc7", "\u0b9c\u0bc2\u0ba9\u0bcd", "\u0b9c\u0bc2\u0bb2\u0bc8", "\u0b86\u0b95.", "\u0b9a\u0bc6\u0baa\u0bcd.", "\u0b85\u0b95\u0bcd.", "\u0ba8\u0bb5.", "\u0b9f\u0bbf\u0b9a."], STANDALONESHORTMONTHS:["\u0b9c\u0ba9.", "\u0baa\u0bbf\u0baa\u0bcd.", "\u0bae\u0bbe\u0bb0\u0bcd.", "\u0b8f\u0baa\u0bcd.", +"\u0bae\u0bc7", "\u0b9c\u0bc2\u0ba9\u0bcd", "\u0b9c\u0bc2\u0bb2\u0bc8", "\u0b86\u0b95.", "\u0b9a\u0bc6\u0baa\u0bcd.", "\u0b85\u0b95\u0bcd.", "\u0ba8\u0bb5.", "\u0b9f\u0bbf\u0b9a."], WEEKDAYS:["\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bc1", "\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bcd", "\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd", "\u0baa\u0bc1\u0ba4\u0ba9\u0bcd", "\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0ba9\u0bcd", "\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf", "\u0b9a\u0ba9\u0bbf"], STANDALONEWEEKDAYS:["\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bc1", +"\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bcd", "\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd", "\u0baa\u0bc1\u0ba4\u0ba9\u0bcd", "\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0ba9\u0bcd", "\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf", "\u0b9a\u0ba9\u0bbf"], SHORTWEEKDAYS:["\u0b9e\u0bbe", "\u0ba4\u0bbf", "\u0b9a\u0bc6", "\u0baa\u0bc1", "\u0bb5\u0bbf", "\u0bb5\u0bc6", "\u0b9a"], STANDALONESHORTWEEKDAYS:["\u0b9e\u0bbe", "\u0ba4\u0bbf", "\u0b9a\u0bc6", "\u0baa\u0bc1", "\u0bb5\u0bbf", "\u0bb5\u0bc6", "\u0b9a"], NARROWWEEKDAYS:["\u0b9e\u0bbe", +"\u0ba4\u0bbf", "\u0b9a\u0bc6", "\u0baa\u0bc1", "\u0bb5\u0bbf", "\u0bb5\u0bc6", "\u0b9a"], STANDALONENARROWWEEKDAYS:["\u0b9e\u0bbe", "\u0ba4\u0bbf", "\u0b9a\u0bc6", "\u0baa\u0bc1", "\u0bb5\u0bbf", "\u0bb5\u0bc6", "\u0b9a"], SHORTQUARTERS:["\u0b95\u0bbe\u0bb2\u0bbe\u0ba3\u0bcd\u0b9f\u0bc11", "\u0b95\u0bbe\u0bb2\u0bbe\u0ba3\u0bcd\u0b9f\u0bc12", "\u0b95\u0bbe\u0bb2\u0bbe\u0ba3\u0bcd\u0b9f\u0bc13", "\u0b95\u0bbe\u0bb2\u0bbe\u0ba3\u0bcd\u0b9f\u0bc14"], QUARTERS:["\u0bae\u0bc1\u0ba4\u0bb2\u0bcd \u0b95\u0bbe\u0bb2\u0bbe\u0ba3\u0bcd\u0b9f\u0bc1", +"\u0b87\u0bb0\u0ba3\u0bcd\u0b9f\u0bbe\u0bae\u0bcd \u0b95\u0bbe\u0bb2\u0bbe\u0ba3\u0bcd\u0b9f\u0bc1", "\u0bae\u0bc2\u0ba9\u0bcd\u0bb1\u0bbe\u0bae\u0bcd \u0b95\u0bbe\u0bb2\u0bbe\u0ba3\u0bcd\u0b9f\u0bc1", "\u0ba8\u0bbe\u0ba9\u0bcd\u0b95\u0bbe\u0bae\u0bcd \u0b95\u0bbe\u0bb2\u0bbe\u0ba3\u0bcd\u0b9f\u0bc1"], AMPMS:["AM", "PM"], DATEFORMATS:["EEEE, d MMMM, y", "d MMMM, y", "d MMM, y", "d-M-yy"], TIMEFORMATS:["h:mm:ss a zzzz", "h:mm:ss a z", "h:mm:ss a", "h:mm a"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", +"{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:6, WEEKENDRANGE:[6, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_te = {ERAS:["\u0c15\u0c4d\u0c30\u0c40\u0c2a\u0c42", "\u0c15\u0c4d\u0c30\u0c40\u0c36"], ERANAMES:["\u0c08\u0c38\u0c3e\u0c2a\u0c42\u0c30\u0c4d\u0c35.", "\u0c38\u0c28\u0c4d."], NARROWMONTHS:["\u0c1c", "\u0c2b\u0c3f", "\u0c2e\u0c3e", "\u0c0f", "\u0c2e\u0c47", "\u0c1c\u0c42", "\u0c1c\u0c41", "\u0c06", "\u0c38\u0c46", "\u0c05", "\u0c28", "\u0c21\u0c3f"], STANDALONENARROWMONTHS:["\u0c1c", "\u0c2b\u0c3f", "\u0c2e\u0c3e", "\u0c0f", "\u0c2e\u0c47", "\u0c1c\u0c41", "\u0c1c\u0c41", +"\u0c06", "\u0c38\u0c46", "\u0c05", "\u0c28", "\u0c21\u0c3f"], MONTHS:["\u0c1c\u0c28\u0c35\u0c30\u0c3f", "\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f", "\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f", "\u0c0e\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d", "\u0c2e\u0c47", "\u0c1c\u0c42\u0c28\u0c4d", "\u0c1c\u0c42\u0c32\u0c48", "\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41", "\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d", "\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d", "\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d", +"\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d"], STANDALONEMONTHS:["\u0c1c\u0c28\u0c35\u0c30\u0c3f", "\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f", "\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f", "\u0c0e\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d", "\u0c2e\u0c47", "\u0c1c\u0c42\u0c28\u0c4d", "\u0c1c\u0c42\u0c32\u0c48", "\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41", "\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d", "\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d", "\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d", +"\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d"], SHORTMONTHS:["\u0c1c\u0c28", "\u0c2b\u0c3f\u0c2c\u0c4d\u0c30", "\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f", "\u0c0f\u0c2a\u0c4d\u0c30\u0c3f", "\u0c2e\u0c47", "\u0c1c\u0c42\u0c28\u0c4d", "\u0c1c\u0c42\u0c32\u0c48", "\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41", "\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d", "\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d", "\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d", "\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d"], +STANDALONESHORTMONTHS:["\u0c1c\u0c28", "\u0c2b\u0c3f\u0c2c\u0c4d\u0c30", "\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f", "\u0c0f\u0c2a\u0c4d\u0c30\u0c3f", "\u0c2e\u0c47", "\u0c1c\u0c42\u0c28\u0c4d", "\u0c1c\u0c42\u0c32\u0c48", "\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41", "\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02", "\u0c05\u0c15\u0c4d\u0c1f\u0c4b", "\u0c28\u0c35\u0c02", "\u0c21\u0c3f\u0c38\u0c46\u0c02"], WEEKDAYS:["\u0c06\u0c26\u0c3f\u0c35\u0c3e\u0c30\u0c02", "\u0c38\u0c4b\u0c2e\u0c35\u0c3e\u0c30\u0c02", "\u0c2e\u0c02\u0c17\u0c33\u0c35\u0c3e\u0c30\u0c02", +"\u0c2c\u0c41\u0c27\u0c35\u0c3e\u0c30\u0c02", "\u0c17\u0c41\u0c30\u0c41\u0c35\u0c3e\u0c30\u0c02", "\u0c36\u0c41\u0c15\u0c4d\u0c30\u0c35\u0c3e\u0c30\u0c02", "\u0c36\u0c28\u0c3f\u0c35\u0c3e\u0c30\u0c02"], STANDALONEWEEKDAYS:["\u0c06\u0c26\u0c3f\u0c35\u0c3e\u0c30\u0c02", "\u0c38\u0c4b\u0c2e\u0c35\u0c3e\u0c30\u0c02", "\u0c2e\u0c02\u0c17\u0c33\u0c35\u0c3e\u0c30\u0c02", "\u0c2c\u0c41\u0c27\u0c35\u0c3e\u0c30\u0c02", "\u0c17\u0c41\u0c30\u0c41\u0c35\u0c3e\u0c30\u0c02", "\u0c36\u0c41\u0c15\u0c4d\u0c30\u0c35\u0c3e\u0c30\u0c02", +"\u0c36\u0c28\u0c3f\u0c35\u0c3e\u0c30\u0c02"], SHORTWEEKDAYS:["\u0c06\u0c26\u0c3f", "\u0c38\u0c4b\u0c2e", "\u0c2e\u0c02\u0c17\u0c33", "\u0c2c\u0c41\u0c27", "\u0c17\u0c41\u0c30\u0c41", "\u0c36\u0c41\u0c15\u0c4d\u0c30", "\u0c36\u0c28\u0c3f"], STANDALONESHORTWEEKDAYS:["\u0c06\u0c26\u0c3f", "\u0c38\u0c4b\u0c2e", "\u0c2e\u0c02\u0c17\u0c33", "\u0c2c\u0c41\u0c27", "\u0c17\u0c41\u0c30\u0c41", "\u0c36\u0c41\u0c15\u0c4d\u0c30", "\u0c36\u0c28\u0c3f"], NARROWWEEKDAYS:["\u0c06", "\u0c38\u0c4b", "\u0c2e", "\u0c2c\u0c41", +"\u0c17\u0c41", "\u0c36\u0c41", "\u0c36"], STANDALONENARROWWEEKDAYS:["\u0c06", "\u0c38\u0c4b", "\u0c2e", "\u0c2c\u0c41", "\u0c17\u0c41", "\u0c36\u0c41", "\u0c36"], SHORTQUARTERS:["\u0c24\u0c4d\u0c30\u0c481", "\u0c24\u0c4d\u0c30\u0c482", "\u0c24\u0c4d\u0c30\u0c483", "\u0c24\u0c4d\u0c30\u0c484"], QUARTERS:["1\u0c35 \u0c24\u0c4d\u0c30\u0c48\u0c2e\u0c3e\u0c38\u0c02", "2\u0c35 \u0c24\u0c4d\u0c30\u0c48\u0c2e\u0c3e\u0c38\u0c02", "3\u0c35 \u0c24\u0c4d\u0c30\u0c48\u0c2e\u0c3e\u0c38\u0c02", "4\u0c35 \u0c24\u0c4d\u0c30\u0c48\u0c2e\u0c3e\u0c38\u0c02"], +AMPMS:["AM", "PM"], DATEFORMATS:["EEEE d MMMM y", "d MMMM y", "d MMM y", "dd-MM-yy"], TIMEFORMATS:["h:mm:ss a zzzz", "h:mm:ss a z", "h:mm:ss a", "h:mm a"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:6, WEEKENDRANGE:[6, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_th = {ERAS:["\u0e1b\u0e35\u0e01\u0e48\u0e2d\u0e19 \u0e04.\u0e28.", "\u0e04.\u0e28."], ERANAMES:["\u0e1b\u0e35\u0e01\u0e48\u0e2d\u0e19\u0e04\u0e23\u0e34\u0e2a\u0e15\u0e4c\u0e28\u0e31\u0e01\u0e23\u0e32\u0e0a", "\u0e04\u0e23\u0e34\u0e2a\u0e15\u0e4c\u0e28\u0e31\u0e01\u0e23\u0e32\u0e0a"], NARROWMONTHS:["\u0e21.\u0e04.", "\u0e01.\u0e1e.", "\u0e21\u0e35.\u0e04.", "\u0e40\u0e21.\u0e22.", "\u0e1e.\u0e04.", "\u0e21\u0e34.\u0e22", "\u0e01.\u0e04.", "\u0e2a.\u0e04.", "\u0e01.\u0e22.", +"\u0e15.\u0e04.", "\u0e1e.\u0e22.", "\u0e18.\u0e04."], STANDALONENARROWMONTHS:["\u0e21.\u0e04.", "\u0e01.\u0e1e.", "\u0e21\u0e35.\u0e04.", "\u0e40\u0e21.\u0e22.", "\u0e1e.\u0e04.", "\u0e21\u0e34.\u0e22.", "\u0e01.\u0e04.", "\u0e2a.\u0e04.", "\u0e01.\u0e22.", "\u0e15.\u0e04.", "\u0e1e.\u0e22.", "\u0e18.\u0e04."], MONTHS:["\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21", "\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c", "\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21", "\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19", +"\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21", "\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19", "\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21", "\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21", "\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19", "\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21", "\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19", "\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21"], STANDALONEMONTHS:["\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21", "\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c", +"\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21", "\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19", "\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21", "\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19", "\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21", "\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21", "\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19", "\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21", "\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19", "\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21"], SHORTMONTHS:["\u0e21.\u0e04.", "\u0e01.\u0e1e.", +"\u0e21\u0e35.\u0e04.", "\u0e40\u0e21.\u0e22.", "\u0e1e.\u0e04.", "\u0e21\u0e34.\u0e22.", "\u0e01.\u0e04.", "\u0e2a.\u0e04.", "\u0e01.\u0e22.", "\u0e15.\u0e04.", "\u0e1e.\u0e22.", "\u0e18.\u0e04."], STANDALONESHORTMONTHS:["\u0e21.\u0e04.", "\u0e01.\u0e1e.", "\u0e21\u0e35.\u0e04.", "\u0e40\u0e21.\u0e22.", "\u0e1e.\u0e04.", "\u0e21\u0e34.\u0e22.", "\u0e01.\u0e04.", "\u0e2a.\u0e04.", "\u0e01.\u0e22.", "\u0e15.\u0e04.", "\u0e1e.\u0e22.", "\u0e18.\u0e04."], WEEKDAYS:["\u0e27\u0e31\u0e19\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c", +"\u0e27\u0e31\u0e19\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c", "\u0e27\u0e31\u0e19\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23", "\u0e27\u0e31\u0e19\u0e1e\u0e38\u0e18", "\u0e27\u0e31\u0e19\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35", "\u0e27\u0e31\u0e19\u0e28\u0e38\u0e01\u0e23\u0e4c", "\u0e27\u0e31\u0e19\u0e40\u0e2a\u0e32\u0e23\u0e4c"], STANDALONEWEEKDAYS:["\u0e27\u0e31\u0e19\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c", "\u0e27\u0e31\u0e19\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c", "\u0e27\u0e31\u0e19\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23", +"\u0e27\u0e31\u0e19\u0e1e\u0e38\u0e18", "\u0e27\u0e31\u0e19\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35", "\u0e27\u0e31\u0e19\u0e28\u0e38\u0e01\u0e23\u0e4c", "\u0e27\u0e31\u0e19\u0e40\u0e2a\u0e32\u0e23\u0e4c"], SHORTWEEKDAYS:["\u0e2d\u0e32.", "\u0e08.", "\u0e2d.", "\u0e1e.", "\u0e1e\u0e24.", "\u0e28.", "\u0e2a."], STANDALONESHORTWEEKDAYS:["\u0e2d\u0e32.", "\u0e08.", "\u0e2d.", "\u0e1e.", "\u0e1e\u0e24.", "\u0e28.", "\u0e2a."], NARROWWEEKDAYS:["\u0e2d\u0e32.", "\u0e08.", "\u0e2d.", "\u0e1e.", +"\u0e1e\u0e24.", "\u0e28.", "\u0e2a."], STANDALONENARROWWEEKDAYS:["\u0e2d\u0e32.", "\u0e08.", "\u0e2d.", "\u0e1e.", "\u0e1e\u0e24.", "\u0e28.", "\u0e2a."], SHORTQUARTERS:["\u0e44\u0e15\u0e23\u0e21\u0e32\u0e2a 1", "\u0e44\u0e15\u0e23\u0e21\u0e32\u0e2a 2", "\u0e44\u0e15\u0e23\u0e21\u0e32\u0e2a 3", "\u0e44\u0e15\u0e23\u0e21\u0e32\u0e2a 4"], QUARTERS:["\u0e44\u0e15\u0e23\u0e21\u0e32\u0e2a 1", "\u0e44\u0e15\u0e23\u0e21\u0e32\u0e2a 2", "\u0e44\u0e15\u0e23\u0e21\u0e32\u0e2a 3", "\u0e44\u0e15\u0e23\u0e21\u0e32\u0e2a 4"], +AMPMS:["\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07", "\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"], DATEFORMATS:["EEEE\u0e17\u0e35\u0e48 d MMMM G y", "d MMMM y", "d MMM y", "d/M/yy"], TIMEFORMATS:["H \u0e19\u0e32\u0e2c\u0e34\u0e01\u0e32 mm \u0e19\u0e32\u0e17\u0e35 ss \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35 zzzz", "H \u0e19\u0e32\u0e2c\u0e34\u0e01\u0e32 mm \u0e19\u0e32\u0e17\u0e35 ss \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35 z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1}, {0}", +"{1}, {0}", "{1}, {0}", "{1}, {0}"], FIRSTDAYOFWEEK:6, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_tl = {ERAS:["BC", "AD"], ERANAMES:["BC", "AD"], NARROWMONTHS:["E", "P", "M", "A", "M", "H", "H", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["E", "P", "M", "A", "M", "H", "H", "A", "S", "O", "N", "D"], MONTHS:["Enero", "Pebrero", "Marso", "Abril", "Mayo", "Hunyo", "Hulyo", "Agosto", "Setyembre", "Oktubre", "Nobyembre", "Disyembre"], STANDALONEMONTHS:["Enero", "Pebrero", "Marso", "Abril", "Mayo", "Hunyo", "Hulyo", "Agosto", "Setyembre", "Oktubre", "Nobyembre", "Disyembre"], +SHORTMONTHS:["Ene", "Peb", "Mar", "Abr", "May", "Hun", "Hul", "Ago", "Set", "Okt", "Nob", "Dis"], STANDALONESHORTMONTHS:["Ene", "Peb", "Mar", "Abr", "May", "Hun", "Hul", "Ago", "Set", "Okt", "Nob", "Dis"], WEEKDAYS:["Linggo", "Lunes", "Martes", "Miyerkules", "Huwebes", "Biyernes", "Sabado"], STANDALONEWEEKDAYS:["Linggo", "Lunes", "Martes", "Miyerkules", "Huwebes", "Biyernes", "Sabado"], SHORTWEEKDAYS:["Lin", "Lun", "Mar", "Mye", "Huw", "Bye", "Sab"], STANDALONESHORTWEEKDAYS:["Lin", "Lun", "Mar", +"Miy", "Huw", "Biy", "Sab"], NARROWWEEKDAYS:["L", "L", "M", "M", "H", "B", "S"], STANDALONENARROWWEEKDAYS:["L", "L", "M", "M", "H", "B", "S"], SHORTQUARTERS:["Q1", "Q2", "Q3", "Q4"], QUARTERS:["ika-1 sangkapat", "ika-2 sangkapat", "ika-3 quarter", "ika-4 na quarter"], AMPMS:["AM", "PM"], DATEFORMATS:["EEEE, MMMM dd y", "MMMM d, y", "MMM d, y", "M/d/yy"], TIMEFORMATS:["HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:6, +WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_tr = {ERAS:["M\u00d6", "MS"], ERANAMES:["Milattan \u00d6nce", "Milattan Sonra"], NARROWMONTHS:["O", "\u015e", "M", "N", "M", "H", "T", "A", "E", "E", "K", "A"], STANDALONENARROWMONTHS:["O", "\u015e", "M", "N", "M", "H", "T", "A", "E", "E", "K", "A"], MONTHS:["Ocak", "\u015eubat", "Mart", "Nisan", "May\u0131s", "Haziran", "Temmuz", "A\u011fustos", "Eyl\u00fcl", "Ekim", "Kas\u0131m", "Aral\u0131k"], STANDALONEMONTHS:["Ocak", "\u015eubat", "Mart", "Nisan", "May\u0131s", "Haziran", +"Temmuz", "A\u011fustos", "Eyl\u00fcl", "Ekim", "Kas\u0131m", "Aral\u0131k"], SHORTMONTHS:["Oca", "\u015eub", "Mar", "Nis", "May", "Haz", "Tem", "A\u011fu", "Eyl", "Eki", "Kas", "Ara"], STANDALONESHORTMONTHS:["Oca", "\u015eub", "Mar", "Nis", "May", "Haz", "Tem", "A\u011fu", "Eyl", "Eki", "Kas", "Ara"], WEEKDAYS:["Pazar", "Pazartesi", "Sal\u0131", "\u00c7ar\u015famba", "Per\u015fembe", "Cuma", "Cumartesi"], STANDALONEWEEKDAYS:["Pazar", "Pazartesi", "Sal\u0131", "\u00c7ar\u015famba", "Per\u015fembe", +"Cuma", "Cumartesi"], SHORTWEEKDAYS:["Paz", "Pzt", "Sal", "\u00c7ar", "Per", "Cum", "Cmt"], STANDALONESHORTWEEKDAYS:["Paz", "Pzt", "Sal", "\u00c7ar", "Per", "Cum", "Cmt"], NARROWWEEKDAYS:["P", "P", "S", "\u00c7", "P", "C", "C"], STANDALONENARROWWEEKDAYS:["P", "P", "S", "\u00c7", "P", "C", "C"], SHORTQUARTERS:["\u00c71", "\u00c72", "\u00c73", "\u00c74"], QUARTERS:["1. \u00e7eyrek", "2. \u00e7eyrek", "3. \u00e7eyrek", "4. \u00e7eyrek"], AMPMS:["\u00d6\u00d6", "\u00d6S"], DATEFORMATS:["d MMMM y EEEE", +"d MMMM y", "d MMM y", "d MM y"], TIMEFORMATS:["HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:6}; +goog.i18n.DateTimeSymbols_uk = {ERAS:["\u0434\u043e \u043d.\u0435.", "\u043d.\u0435."], ERANAMES:["\u0434\u043e \u043d\u0430\u0448\u043e\u0457 \u0435\u0440\u0438", "\u043d\u0430\u0448\u043e\u0457 \u0435\u0440\u0438"], NARROWMONTHS:["\u0421", "\u041b", "\u0411", "\u041a", "\u0422", "\u0427", "\u041b", "\u0421", "\u0412", "\u0416", "\u041b", "\u0413"], STANDALONENARROWMONTHS:["\u0421", "\u041b", "\u0411", "\u041a", "\u0422", "\u0427", "\u041b", "\u0421", "\u0412", "\u0416", "\u041b", "\u0413"], MONTHS:["\u0441\u0456\u0447\u043d\u044f", +"\u043b\u044e\u0442\u043e\u0433\u043e", "\u0431\u0435\u0440\u0435\u0437\u043d\u044f", "\u043a\u0432\u0456\u0442\u043d\u044f", "\u0442\u0440\u0430\u0432\u043d\u044f", "\u0447\u0435\u0440\u0432\u043d\u044f", "\u043b\u0438\u043f\u043d\u044f", "\u0441\u0435\u0440\u043f\u043d\u044f", "\u0432\u0435\u0440\u0435\u0441\u043d\u044f", "\u0436\u043e\u0432\u0442\u043d\u044f", "\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434\u0430", "\u0433\u0440\u0443\u0434\u043d\u044f"], STANDALONEMONTHS:["\u0421\u0456\u0447\u0435\u043d\u044c", +"\u041b\u044e\u0442\u0438\u0439", "\u0411\u0435\u0440\u0435\u0437\u0435\u043d\u044c", "\u041a\u0432\u0456\u0442\u0435\u043d\u044c", "\u0422\u0440\u0430\u0432\u0435\u043d\u044c", "\u0427\u0435\u0440\u0432\u0435\u043d\u044c", "\u041b\u0438\u043f\u0435\u043d\u044c", "\u0421\u0435\u0440\u043f\u0435\u043d\u044c", "\u0412\u0435\u0440\u0435\u0441\u0435\u043d\u044c", "\u0416\u043e\u0432\u0442\u0435\u043d\u044c", "\u041b\u0438\u0441\u0442\u043e\u043f\u0430\u0434", "\u0413\u0440\u0443\u0434\u0435\u043d\u044c"], +SHORTMONTHS:["\u0441\u0456\u0447.", "\u043b\u044e\u0442.", "\u0431\u0435\u0440.", "\u043a\u0432\u0456\u0442.", "\u0442\u0440\u0430\u0432.", "\u0447\u0435\u0440\u0432.", "\u043b\u0438\u043f.", "\u0441\u0435\u0440\u043f.", "\u0432\u0435\u0440.", "\u0436\u043e\u0432\u0442.", "\u043b\u0438\u0441\u0442.", "\u0433\u0440\u0443\u0434."], STANDALONESHORTMONTHS:["\u0421\u0456\u0447", "\u041b\u044e\u0442", "\u0411\u0435\u0440", "\u041a\u0432\u0456", "\u0422\u0440\u0430", "\u0427\u0435\u0440", "\u041b\u0438\u043f", +"\u0421\u0435\u0440", "\u0412\u0435\u0440", "\u0416\u043e\u0432", "\u041b\u0438\u0441", "\u0413\u0440\u0443"], WEEKDAYS:["\u041d\u0435\u0434\u0456\u043b\u044f", "\u041f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a", "\u0412\u0456\u0432\u0442\u043e\u0440\u043e\u043a", "\u0421\u0435\u0440\u0435\u0434\u0430", "\u0427\u0435\u0442\u0432\u0435\u0440", "\u041f\u02bc\u044f\u0442\u043d\u0438\u0446\u044f", "\u0421\u0443\u0431\u043e\u0442\u0430"], STANDALONEWEEKDAYS:["\u041d\u0435\u0434\u0456\u043b\u044f", +"\u041f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a", "\u0412\u0456\u0432\u0442\u043e\u0440\u043e\u043a", "\u0421\u0435\u0440\u0435\u0434\u0430", "\u0427\u0435\u0442\u0432\u0435\u0440", "\u041f\u02bc\u044f\u0442\u043d\u0438\u0446\u044f", "\u0421\u0443\u0431\u043e\u0442\u0430"], SHORTWEEKDAYS:["\u041d\u0434", "\u041f\u043d", "\u0412\u0442", "\u0421\u0440", "\u0427\u0442", "\u041f\u0442", "\u0421\u0431"], STANDALONESHORTWEEKDAYS:["\u041d\u0434", "\u041f\u043d", "\u0412\u0442", "\u0421\u0440", "\u0427\u0442", +"\u041f\u0442", "\u0421\u0431"], NARROWWEEKDAYS:["\u041d", "\u041f", "\u0412", "\u0421", "\u0427", "\u041f", "\u0421"], STANDALONENARROWWEEKDAYS:["\u041d", "\u041f", "\u0412", "\u0421", "\u0427", "\u041f", "\u0421"], SHORTQUARTERS:["I \u043a\u0432.", "II \u043a\u0432.", "III \u043a\u0432.", "IV \u043a\u0432."], QUARTERS:["I \u043a\u0432\u0430\u0440\u0442\u0430\u043b", "II \u043a\u0432\u0430\u0440\u0442\u0430\u043b", "III \u043a\u0432\u0430\u0440\u0442\u0430\u043b", "IV \u043a\u0432\u0430\u0440\u0442\u0430\u043b"], +AMPMS:["\u0434\u043f", "\u043f\u043f"], DATEFORMATS:["EEEE, d MMMM y '\u0440'.", "d MMMM y '\u0440'.", "d MMM y", "dd.MM.yy"], TIMEFORMATS:["HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:6}; +goog.i18n.DateTimeSymbols_ur = {ERAS:["\u0642 \u0645", "\u0639\u06cc\u0633\u0648\u06cc \u0633\u0646"], ERANAMES:["\u0642\u0628\u0644 \u0645\u0633\u06cc\u062d", "\u0639\u06cc\u0633\u0648\u06cc \u0633\u0646"], NARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["\u062c\u0646\u0648\u0631\u06cc", "\u0641\u0631\u0648\u0631\u06cc", "\u0645\u0627\u0631\u0686", "\u0627\u067e\u0631\u06cc\u0644", +"\u0645\u0626", "\u062c\u0648\u0646", "\u062c\u0648\u0644\u0627\u0626", "\u0627\u06af\u0633\u062a", "\u0633\u062a\u0645\u0628\u0631", "\u0627\u06a9\u062a\u0648\u0628\u0631", "\u0646\u0648\u0645\u0628\u0631", "\u062f\u0633\u0645\u0628\u0631"], STANDALONEMONTHS:["\u062c\u0646\u0648\u0631\u06cc", "\u0641\u0631\u0648\u0631\u06cc", "\u0645\u0627\u0631\u0686", "\u0627\u067e\u0631\u06cc\u0644", "\u0645\u0626", "\u062c\u0648\u0646", "\u062c\u0648\u0644\u0627\u0626", "\u0627\u06af\u0633\u062a", "\u0633\u062a\u0645\u0628\u0631", +"\u0627\u06a9\u062a\u0648\u0628\u0631", "\u0646\u0648\u0645\u0628\u0631", "\u062f\u0633\u0645\u0628\u0631"], SHORTMONTHS:["\u062c\u0646\u0648\u0631\u06cc", "\u0641\u0631\u0648\u0631\u06cc", "\u0645\u0627\u0631\u0686", "\u0627\u067e\u0631\u06cc\u0644", "\u0645\u0626", "\u062c\u0648\u0646", "\u062c\u0648\u0644\u0627\u0626", "\u0627\u06af\u0633\u062a", "\u0633\u062a\u0645\u0628\u0631", "\u0627\u06a9\u062a\u0648\u0628\u0631", "\u0646\u0648\u0645\u0628\u0631", "\u062f\u0633\u0645\u0628\u0631"], STANDALONESHORTMONTHS:["\u062c\u0646\u0648\u0631\u06cc", +"\u0641\u0631\u0648\u0631\u06cc", "\u0645\u0627\u0631\u0686", "\u0627\u067e\u0631\u06cc\u0644", "\u0645\u0626", "\u062c\u0648\u0646", "\u062c\u0648\u0644\u0627\u0626", "\u0627\u06af\u0633\u062a", "\u0633\u062a\u0645\u0628\u0631", "\u0627\u06a9\u062a\u0648\u0628\u0631", "\u0646\u0648\u0645\u0628\u0631", "\u062f\u0633\u0645\u0628\u0631"], WEEKDAYS:["\u0627\u062a\u0648\u0627\u0631", "\u067e\u06cc\u0631", "\u0645\u0646\u06af\u0644", "\u0628\u062f\u0647", "\u062c\u0645\u0639\u0631\u0627\u062a", "\u062c\u0645\u0639\u06c1", +"\u06c1\u0641\u062a\u06c1"], STANDALONEWEEKDAYS:["\u0627\u062a\u0648\u0627\u0631", "\u067e\u06cc\u0631", "\u0645\u0646\u06af\u0644", "\u0628\u062f\u0647", "\u062c\u0645\u0639\u0631\u0627\u062a", "\u062c\u0645\u0639\u06c1", "\u06c1\u0641\u062a\u06c1"], SHORTWEEKDAYS:["\u0627\u062a\u0648\u0627\u0631", "\u067e\u06cc\u0631", "\u0645\u0646\u06af\u0644", "\u0628\u062f\u0647", "\u062c\u0645\u0639\u0631\u0627\u062a", "\u062c\u0645\u0639\u06c1", "\u06c1\u0641\u062a\u06c1"], STANDALONESHORTWEEKDAYS:["\u0627\u062a\u0648\u0627\u0631", +"\u067e\u06cc\u0631", "\u0645\u0646\u06af\u0644", "\u0628\u062f\u0647", "\u062c\u0645\u0639\u0631\u0627\u062a", "\u062c\u0645\u0639\u06c1", "\u06c1\u0641\u062a\u06c1"], NARROWWEEKDAYS:["S", "M", "T", "W", "T", "F", "S"], STANDALONENARROWWEEKDAYS:["S", "M", "T", "W", "T", "F", "S"], SHORTQUARTERS:["\u067e\u06c1\u0644\u06cc \u0633\u06c1 \u0645\u0627\u06c1\u06cc", "\u062f\u0648\u0633\u0631\u06cc \u0633\u06c1 \u0645\u0627\u06c1\u06cc", "\u062a\u06cc\u0633\u0631\u06cc \u0633\u06c1 \u0645\u0627\u06c1\u06cc", +"\u0686\u0648\u062a\u0647\u06cc \u0633\u06c1 \u0645\u0627\u06c1\u06cc"], QUARTERS:["\u067e\u06c1\u0644\u06cc \u0633\u06c1 \u0645\u0627\u06c1\u06cc", "\u062f\u0648\u0633\u0631\u06cc \u0633\u06c1 \u0645\u0627\u06c1\u06cc", "\u062a\u06cc\u0633\u0631\u06cc \u0633\u06c1 \u0645\u0627\u06c1\u06cc", "\u0686\u0648\u062a\u0647\u06cc \u0633\u06c1 \u0645\u0627\u06c1\u06cc"], AMPMS:["\u0642\u0628\u0644 \u062f\u0648\u067e\u06c1\u0631", "\u0628\u0639\u062f \u062f\u0648\u067e\u06c1\u0631"], DATEFORMATS:["EEEE\u060c d MMMM\u060c y", +"d MMMM\u060c y", "d MMM\u060c y", "d/M/yy"], TIMEFORMATS:["h:mm:ss a zzzz", "h:mm:ss a z", "h:mm:ss a", "h:mm a"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:6, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_vi = {ERAS:["tr. CN", "sau CN"], ERANAMES:["tr. CN", "sau CN"], NARROWMONTHS:["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], STANDALONENARROWMONTHS:["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], MONTHS:["th\u00e1ng m\u1ed9t", "th\u00e1ng hai", "th\u00e1ng ba", "th\u00e1ng t\u01b0", "th\u00e1ng n\u0103m", "th\u00e1ng s\u00e1u", "th\u00e1ng b\u1ea3y", "th\u00e1ng t\u00e1m", "th\u00e1ng ch\u00edn", "th\u00e1ng m\u01b0\u1eddi", "th\u00e1ng m\u01b0\u1eddi m\u1ed9t", +"th\u00e1ng m\u01b0\u1eddi hai"], STANDALONEMONTHS:["th\u00e1ng m\u1ed9t", "th\u00e1ng hai", "th\u00e1ng ba", "th\u00e1ng t\u01b0", "th\u00e1ng n\u0103m", "th\u00e1ng s\u00e1u", "th\u00e1ng b\u1ea3y", "th\u00e1ng t\u00e1m", "th\u00e1ng ch\u00edn", "th\u00e1ng m\u01b0\u1eddi", "th\u00e1ng m\u01b0\u1eddi m\u1ed9t", "th\u00e1ng m\u01b0\u1eddi hai"], SHORTMONTHS:["thg 1", "thg 2", "thg 3", "thg 4", "thg 5", "thg 6", "thg 7", "thg 8", "thg 9", "thg 10", "thg 11", "thg 12"], STANDALONESHORTMONTHS:["thg 1", +"thg 2", "thg 3", "thg 4", "thg 5", "thg 6", "thg 7", "thg 8", "thg 9", "thg 10", "thg 11", "thg 12"], WEEKDAYS:["Ch\u1ee7 nh\u1eadt", "Th\u1ee9 hai", "Th\u1ee9 ba", "Th\u1ee9 t\u01b0", "Th\u1ee9 n\u0103m", "Th\u1ee9 s\u00e1u", "Th\u1ee9 b\u1ea3y"], STANDALONEWEEKDAYS:["Ch\u1ee7 nh\u1eadt", "Th\u1ee9 hai", "Th\u1ee9 ba", "Th\u1ee9 t\u01b0", "Th\u1ee9 n\u0103m", "Th\u1ee9 s\u00e1u", "Th\u1ee9 b\u1ea3y"], SHORTWEEKDAYS:["CN", "Th 2", "Th 3", "Th 4", "Th 5", "Th 6", "Th 7"], STANDALONESHORTWEEKDAYS:["CN", +"Th 2", "Th 3", "Th 4", "Th 5", "Th 6", "Th 7"], NARROWWEEKDAYS:["CN", "T2", "T3", "T4", "T5", "T6", "T7"], STANDALONENARROWWEEKDAYS:["CN", "T2", "T3", "T4", "T5", "T6", "T7"], SHORTQUARTERS:["Q1", "Q2", "Q3", "Q4"], QUARTERS:["Qu\u00fd 1", "Qu\u00fd 2", "Qu\u00fd 3", "Qu\u00fd 4"], AMPMS:["SA", "CH"], DATEFORMATS:["EEEE, 'ng\u00e0y' dd MMMM 'n\u0103m' y", "'Ng\u00e0y' dd 'th\u00e1ng' M 'n\u0103m' y", "dd-MM-y", "dd/MM/y"], TIMEFORMATS:["HH:mm:ss zzzz", "HH:mm:ss z", "HH:mm:ss", "HH:mm"], DATETIMEFORMATS:["{0} {1}", +"{0} {1}", "{0} {1}", "{0} {1}"], FIRSTDAYOFWEEK:0, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:6}; +goog.i18n.DateTimeSymbols_zh = {ERAS:["\u516c\u5143\u524d", "\u516c\u5143"], ERANAMES:["\u516c\u5143\u524d", "\u516c\u5143"], NARROWMONTHS:["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], STANDALONENARROWMONTHS:["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], MONTHS:["\u4e00\u6708", "\u4e8c\u6708", "\u4e09\u6708", "\u56db\u6708", "\u4e94\u6708", "\u516d\u6708", "\u4e03\u6708", "\u516b\u6708", "\u4e5d\u6708", "\u5341\u6708", "\u5341\u4e00\u6708", "\u5341\u4e8c\u6708"], +STANDALONEMONTHS:["\u4e00\u6708", "\u4e8c\u6708", "\u4e09\u6708", "\u56db\u6708", "\u4e94\u6708", "\u516d\u6708", "\u4e03\u6708", "\u516b\u6708", "\u4e5d\u6708", "\u5341\u6708", "\u5341\u4e00\u6708", "\u5341\u4e8c\u6708"], SHORTMONTHS:["1\u6708", "2\u6708", "3\u6708", "4\u6708", "5\u6708", "6\u6708", "7\u6708", "8\u6708", "9\u6708", "10\u6708", "11\u6708", "12\u6708"], STANDALONESHORTMONTHS:["1\u6708", "2\u6708", "3\u6708", "4\u6708", "5\u6708", "6\u6708", "7\u6708", "8\u6708", "9\u6708", "10\u6708", +"11\u6708", "12\u6708"], WEEKDAYS:["\u661f\u671f\u65e5", "\u661f\u671f\u4e00", "\u661f\u671f\u4e8c", "\u661f\u671f\u4e09", "\u661f\u671f\u56db", "\u661f\u671f\u4e94", "\u661f\u671f\u516d"], STANDALONEWEEKDAYS:["\u661f\u671f\u65e5", "\u661f\u671f\u4e00", "\u661f\u671f\u4e8c", "\u661f\u671f\u4e09", "\u661f\u671f\u56db", "\u661f\u671f\u4e94", "\u661f\u671f\u516d"], SHORTWEEKDAYS:["\u5468\u65e5", "\u5468\u4e00", "\u5468\u4e8c", "\u5468\u4e09", "\u5468\u56db", "\u5468\u4e94", "\u5468\u516d"], STANDALONESHORTWEEKDAYS:["\u5468\u65e5", +"\u5468\u4e00", "\u5468\u4e8c", "\u5468\u4e09", "\u5468\u56db", "\u5468\u4e94", "\u5468\u516d"], NARROWWEEKDAYS:["\u65e5", "\u4e00", "\u4e8c", "\u4e09", "\u56db", "\u4e94", "\u516d"], STANDALONENARROWWEEKDAYS:["\u65e5", "\u4e00", "\u4e8c", "\u4e09", "\u56db", "\u4e94", "\u516d"], SHORTQUARTERS:["1\u5b63\u5ea6", "2\u5b63\u5ea6", "3\u5b63\u5ea6", "4\u5b63\u5ea6"], QUARTERS:["\u7b2c\u4e00\u5b63\u5ea6", "\u7b2c\u4e8c\u5b63\u5ea6", "\u7b2c\u4e09\u5b63\u5ea6", "\u7b2c\u56db\u5b63\u5ea6"], AMPMS:["\u4e0a\u5348", +"\u4e0b\u5348"], DATEFORMATS:["y\u5e74M\u6708d\u65e5EEEE", "y\u5e74M\u6708d\u65e5", "y\u5e74M\u6708d\u65e5", "yy-M-d"], TIMEFORMATS:["zzzzah:mm:ss", "zah:mm:ss", "ah:mm:ss", "ah:mm"], DATETIMEFORMATS:["{1}{0}", "{1}{0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:6, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_zh_CN = goog.i18n.DateTimeSymbols_zh; +goog.i18n.DateTimeSymbols_zh_HK = {ERAS:["\u897f\u5143\u524d", "\u897f\u5143"], ERANAMES:["\u516c\u5143\u524d", "\u516c\u5143"], NARROWMONTHS:["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], STANDALONENARROWMONTHS:["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], MONTHS:["1\u6708", "2\u6708", "3\u6708", "4\u6708", "5\u6708", "6\u6708", "7\u6708", "8\u6708", "9\u6708", "10\u6708", "11\u6708", "12\u6708"], STANDALONEMONTHS:["\u4e00\u6708", "\u4e8c\u6708", "\u4e09\u6708", +"\u56db\u6708", "\u4e94\u6708", "\u516d\u6708", "\u4e03\u6708", "\u516b\u6708", "\u4e5d\u6708", "\u5341\u6708", "\u5341\u4e00\u6708", "\u5341\u4e8c\u6708"], SHORTMONTHS:["1\u6708", "2\u6708", "3\u6708", "4\u6708", "5\u6708", "6\u6708", "7\u6708", "8\u6708", "9\u6708", "10\u6708", "11\u6708", "12\u6708"], STANDALONESHORTMONTHS:["1\u6708", "2\u6708", "3\u6708", "4\u6708", "5\u6708", "6\u6708", "7\u6708", "8\u6708", "9\u6708", "10\u6708", "11\u6708", "12\u6708"], WEEKDAYS:["\u661f\u671f\u65e5", "\u661f\u671f\u4e00", +"\u661f\u671f\u4e8c", "\u661f\u671f\u4e09", "\u661f\u671f\u56db", "\u661f\u671f\u4e94", "\u661f\u671f\u516d"], STANDALONEWEEKDAYS:["\u661f\u671f\u65e5", "\u661f\u671f\u4e00", "\u661f\u671f\u4e8c", "\u661f\u671f\u4e09", "\u661f\u671f\u56db", "\u661f\u671f\u4e94", "\u661f\u671f\u516d"], SHORTWEEKDAYS:["\u9031\u65e5", "\u9031\u4e00", "\u9031\u4e8c", "\u9031\u4e09", "\u9031\u56db", "\u9031\u4e94", "\u9031\u516d"], STANDALONESHORTWEEKDAYS:["\u5468\u65e5", "\u5468\u4e00", "\u5468\u4e8c", "\u5468\u4e09", +"\u5468\u56db", "\u5468\u4e94", "\u5468\u516d"], NARROWWEEKDAYS:["\u65e5", "\u4e00", "\u4e8c", "\u4e09", "\u56db", "\u4e94", "\u516d"], STANDALONENARROWWEEKDAYS:["\u65e5", "\u4e00", "\u4e8c", "\u4e09", "\u56db", "\u4e94", "\u516d"], SHORTQUARTERS:["1\u5b63", "2\u5b63", "3\u5b63", "4\u5b63"], QUARTERS:["\u7b2c1\u5b63", "\u7b2c2\u5b63", "\u7b2c3\u5b63", "\u7b2c4\u5b63"], AMPMS:["\u4e0a\u5348", "\u4e0b\u5348"], DATEFORMATS:["y\u5e74M\u6708d\u65e5EEEE", "y\u5e74M\u6708d\u65e5", "y\u5e74M\u6708d\u65e5", +"d/M/yy"], TIMEFORMATS:["ah:mm:ss [zzzz]", "ah:mm:ss [z]", "ahh:mm:ss", "ah:mm"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", "{1}{0}", "{1}{0}"], FIRSTDAYOFWEEK:6, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_zh_TW = {ERAS:["\u897f\u5143\u524d", "\u897f\u5143"], ERANAMES:["\u516c\u5143\u524d", "\u516c\u5143"], NARROWMONTHS:["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], STANDALONENARROWMONTHS:["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], MONTHS:["1\u6708", "2\u6708", "3\u6708", "4\u6708", "5\u6708", "6\u6708", "7\u6708", "8\u6708", "9\u6708", "10\u6708", "11\u6708", "12\u6708"], STANDALONEMONTHS:["\u4e00\u6708", "\u4e8c\u6708", "\u4e09\u6708", +"\u56db\u6708", "\u4e94\u6708", "\u516d\u6708", "\u4e03\u6708", "\u516b\u6708", "\u4e5d\u6708", "\u5341\u6708", "\u5341\u4e00\u6708", "\u5341\u4e8c\u6708"], SHORTMONTHS:["1\u6708", "2\u6708", "3\u6708", "4\u6708", "5\u6708", "6\u6708", "7\u6708", "8\u6708", "9\u6708", "10\u6708", "11\u6708", "12\u6708"], STANDALONESHORTMONTHS:["1\u6708", "2\u6708", "3\u6708", "4\u6708", "5\u6708", "6\u6708", "7\u6708", "8\u6708", "9\u6708", "10\u6708", "11\u6708", "12\u6708"], WEEKDAYS:["\u661f\u671f\u65e5", "\u661f\u671f\u4e00", +"\u661f\u671f\u4e8c", "\u661f\u671f\u4e09", "\u661f\u671f\u56db", "\u661f\u671f\u4e94", "\u661f\u671f\u516d"], STANDALONEWEEKDAYS:["\u661f\u671f\u65e5", "\u661f\u671f\u4e00", "\u661f\u671f\u4e8c", "\u661f\u671f\u4e09", "\u661f\u671f\u56db", "\u661f\u671f\u4e94", "\u661f\u671f\u516d"], SHORTWEEKDAYS:["\u9031\u65e5", "\u9031\u4e00", "\u9031\u4e8c", "\u9031\u4e09", "\u9031\u56db", "\u9031\u4e94", "\u9031\u516d"], STANDALONESHORTWEEKDAYS:["\u5468\u65e5", "\u5468\u4e00", "\u5468\u4e8c", "\u5468\u4e09", +"\u5468\u56db", "\u5468\u4e94", "\u5468\u516d"], NARROWWEEKDAYS:["\u65e5", "\u4e00", "\u4e8c", "\u4e09", "\u56db", "\u4e94", "\u516d"], STANDALONENARROWWEEKDAYS:["\u65e5", "\u4e00", "\u4e8c", "\u4e09", "\u56db", "\u4e94", "\u516d"], SHORTQUARTERS:["1\u5b63", "2\u5b63", "3\u5b63", "4\u5b63"], QUARTERS:["\u7b2c1\u5b63", "\u7b2c2\u5b63", "\u7b2c3\u5b63", "\u7b2c4\u5b63"], AMPMS:["\u4e0a\u5348", "\u4e0b\u5348"], DATEFORMATS:["y\u5e74M\u6708d\u65e5EEEE", "y\u5e74M\u6708d\u65e5", "y/M/d", "y/M/d"], TIMEFORMATS:["zzzzah\u6642mm\u5206ss\u79d2", +"zah\u6642mm\u5206ss\u79d2", "ah:mm:ss", "ah:mm"], DATETIMEFORMATS:["{1}{0}", "{1}{0}", "{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:6, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:5}; +goog.i18n.DateTimeSymbols_zu = {ERAS:["BC", "AD"], ERANAMES:["BC", "AD"], NARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], STANDALONENARROWMONTHS:["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], MONTHS:["Januwari", "Februwari", "Mashi", "Apreli", "Meyi", "Juni", "Julayi", "Agasti", "Septhemba", "Okthoba", "Novemba", "Disemba"], STANDALONEMONTHS:["uJanuwari", "uFebruwari", "uMashi", "u-Apreli", "uMeyi", "uJuni", "uJulayi", "uAgasti", "uSepthemba", "u-Okthoba", +"uNovemba", "uDisemba"], SHORTMONTHS:["Jan", "Feb", "Mas", "Apr", "Mey", "Jun", "Jul", "Aga", "Sep", "Okt", "Nov", "Dis"], STANDALONESHORTMONTHS:["Jan", "Feb", "Mas", "Apr", "Mey", "Jun", "Jul", "Aga", "Sep", "Okt", "Nov", "Dis"], WEEKDAYS:["Sonto", "Msombuluko", "Lwesibili", "Lwesithathu", "uLwesine", "Lwesihlanu", "Mgqibelo"], STANDALONEWEEKDAYS:["Sonto", "Msombuluko", "Lwesibili", "Lwesithathu", "uLwesine", "Lwesihlanu", "Mgqibelo"], SHORTWEEKDAYS:["Son", "Mso", "Bil", "Tha", "Sin", "Hla", "Mgq"], +STANDALONESHORTWEEKDAYS:["Son", "Mso", "Bil", "Tha", "Sin", "Hla", "Mgq"], NARROWWEEKDAYS:["S", "M", "B", "T", "S", "H", "M"], STANDALONENARROWWEEKDAYS:["S", "M", "B", "T", "S", "H", "M"], SHORTQUARTERS:["Q1", "Q2", "Q3", "Q4"], QUARTERS:["ikota yoku-1", "ikota yesi-2", "ikota yesi-3", "ikota yesi-4"], AMPMS:["Ekuseni", "Ntambama"], DATEFORMATS:["EEEE dd MMMM y", "d MMMM y", "d MMM y", "y-MM-dd"], TIMEFORMATS:["h:mm:ss a zzzz", "h:mm:ss a z", "h:mm:ss a", "h:mm a"], DATETIMEFORMATS:["{1} {0}", "{1} {0}", +"{1} {0}", "{1} {0}"], FIRSTDAYOFWEEK:6, WEEKENDRANGE:[5, 6], FIRSTWEEKCUTOFFDAY:5}; +if(goog.LOCALE == "af") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_af +}else { + if(goog.LOCALE == "am") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_am + }else { + if(goog.LOCALE == "ar") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ar + }else { + if(goog.LOCALE == "bg") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_bg + }else { + if(goog.LOCALE == "bn") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_bn + }else { + if(goog.LOCALE == "br") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_br + }else { + if(goog.LOCALE == "ca") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ca + }else { + if(goog.LOCALE == "chr") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_chr + }else { + if(goog.LOCALE == "cs") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_cs + }else { + if(goog.LOCALE == "cy") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_cy + }else { + if(goog.LOCALE == "da") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_da + }else { + if(goog.LOCALE == "de") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_de + }else { + if(goog.LOCALE == "de_AT" || goog.LOCALE == "de-AT") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_de_AT + }else { + if(goog.LOCALE == "de_CH" || goog.LOCALE == "de-CH") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_de + }else { + if(goog.LOCALE == "el") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_el + }else { + if(goog.LOCALE == "en") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en + }else { + if(goog.LOCALE == "en_AU" || goog.LOCALE == "en-AU") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_AU + }else { + if(goog.LOCALE == "en_GB" || goog.LOCALE == "en-GB") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_GB + }else { + if(goog.LOCALE == "en_IE" || goog.LOCALE == "en-IE") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_IE + }else { + if(goog.LOCALE == "en_IN" || goog.LOCALE == "en-IN") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_IN + }else { + if(goog.LOCALE == "en_SG" || goog.LOCALE == "en-SG") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_SG + }else { + if(goog.LOCALE == "en_US" || goog.LOCALE == "en-US") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en + }else { + if(goog.LOCALE == "en_ZA" || goog.LOCALE == "en-ZA") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_ZA + }else { + if(goog.LOCALE == "es") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_es + }else { + if(goog.LOCALE == "es_419" || goog.LOCALE == "es-419") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_es_419 + }else { + if(goog.LOCALE == "es_ES" || goog.LOCALE == "es-ES") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_es + }else { + if(goog.LOCALE == "et") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_et + }else { + if(goog.LOCALE == "eu") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_eu + }else { + if(goog.LOCALE == "fa") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fa + }else { + if(goog.LOCALE == "fi") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fi + }else { + if(goog.LOCALE == "fil") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fil + }else { + if(goog.LOCALE == "fr") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fr + }else { + if(goog.LOCALE == "fr_CA" || goog.LOCALE == "fr-CA") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fr_CA + }else { + if(goog.LOCALE == "gl") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_gl + }else { + if(goog.LOCALE == "gsw") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_gsw + }else { + if(goog.LOCALE == "gu") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_gu + }else { + if(goog.LOCALE == "haw") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_haw + }else { + if(goog.LOCALE == "he") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_he + }else { + if(goog.LOCALE == "hi") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_hi + }else { + if(goog.LOCALE == "hr") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_hr + }else { + if(goog.LOCALE == "hu") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_hu + }else { + if(goog.LOCALE == "id") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_id + }else { + if(goog.LOCALE == "in") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_in + }else { + if(goog.LOCALE == "is") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_is + }else { + if(goog.LOCALE == "it") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_it + }else { + if(goog.LOCALE == "iw") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_iw + }else { + if(goog.LOCALE == "ja") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ja + }else { + if(goog.LOCALE == "kn") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_kn + }else { + if(goog.LOCALE == "ko") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ko + }else { + if(goog.LOCALE == "ln") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ln + }else { + if(goog.LOCALE == "lt") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_lt + }else { + if(goog.LOCALE == "lv") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_lv + }else { + if(goog.LOCALE == "ml") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ml + }else { + if(goog.LOCALE == "mr") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_mr + }else { + if(goog.LOCALE == "ms") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ms + }else { + if(goog.LOCALE == "mt") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_mt + }else { + if(goog.LOCALE == "nb") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_nb + }else { + if(goog.LOCALE == "nl") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_nl + }else { + if(goog.LOCALE == "no") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_no + }else { + if(goog.LOCALE == "or") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_or + }else { + if(goog.LOCALE == "pl") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_pl + }else { + if(goog.LOCALE == "pt") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_pt + }else { + if(goog.LOCALE == "pt_BR" || goog.LOCALE == "pt-BR") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_pt + }else { + if(goog.LOCALE == "pt_PT" || goog.LOCALE == "pt-PT") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_pt_PT + }else { + if(goog.LOCALE == "ro") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ro + }else { + if(goog.LOCALE == "ru") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ru + }else { + if(goog.LOCALE == "sk") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_sk + }else { + if(goog.LOCALE == "sl") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_sl + }else { + if(goog.LOCALE == "sq") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_sq + }else { + if(goog.LOCALE == "sr") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_sr + }else { + if(goog.LOCALE == "sv") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_sv + }else { + if(goog.LOCALE == "sw") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_sw + }else { + if(goog.LOCALE == "ta") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ta + }else { + if(goog.LOCALE == "te") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_te + }else { + if(goog.LOCALE == "th") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_th + }else { + if(goog.LOCALE == "tl") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_tl + }else { + if(goog.LOCALE == "tr") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_tr + }else { + if(goog.LOCALE == "uk") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_uk + }else { + if(goog.LOCALE == "ur") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ur + }else { + if(goog.LOCALE == "vi") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_vi + }else { + if(goog.LOCALE == "zh") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_zh + }else { + if(goog.LOCALE == "zh_CN" || goog.LOCALE == "zh-CN") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_zh + }else { + if(goog.LOCALE == "zh_HK" || goog.LOCALE == "zh-HK") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_zh_HK + }else { + if(goog.LOCALE == "zh_TW" || goog.LOCALE == "zh-TW") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_zh_TW + }else { + if(goog.LOCALE == "zu") { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_zu + }else { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } +} +;goog.provide("goog.date"); +goog.provide("goog.date.Date"); +goog.provide("goog.date.DateTime"); +goog.provide("goog.date.Interval"); +goog.provide("goog.date.month"); +goog.provide("goog.date.weekDay"); +goog.require("goog.asserts"); +goog.require("goog.date.DateLike"); +goog.require("goog.i18n.DateTimeSymbols"); +goog.require("goog.string"); +goog.date.weekDay = {MON:0, TUE:1, WED:2, THU:3, FRI:4, SAT:5, SUN:6}; +goog.date.month = {JAN:0, FEB:1, MAR:2, APR:3, MAY:4, JUN:5, JUL:6, AUG:7, SEP:8, OCT:9, NOV:10, DEC:11}; +goog.date.formatMonthAndYear = function(monthName, yearNum) { + var MSG_MONTH_AND_YEAR = goog.getMsg("{$monthName} {$yearNum}", {"monthName":monthName, "yearNum":yearNum}); + return MSG_MONTH_AND_YEAR +}; +goog.date.splitDateStringRegex_ = new RegExp("^(\\d{4})(?:(?:-?(\\d{2})(?:-?(\\d{2}))?)|" + "(?:-?(\\d{3}))|(?:-?W(\\d{2})(?:-?([1-7]))?))?$"); +goog.date.splitTimeStringRegex_ = /^(\d{2})(?::?(\d{2})(?::?(\d{2})(\.\d+)?)?)?$/; +goog.date.splitTimezoneStringRegex_ = /Z|(?:([-+])(\d{2})(?::?(\d{2}))?)$/; +goog.date.splitDurationRegex_ = new RegExp("^(-)?P(?:(\\d+)Y)?(?:(\\d+)M)?(?:(\\d+)D)?" + "(T(?:(\\d+)H)?(?:(\\d+)M)?(?:(\\d+(?:\\.\\d+)?)S)?)?$"); +goog.date.isLeapYear = function(year) { + return year % 4 == 0 && (year % 100 != 0 || year % 400 == 0) +}; +goog.date.isLongIsoYear = function(year) { + var n = 5 * year + 12 - 4 * (Math.floor(year / 100) - Math.floor(year / 400)); + n += Math.floor((year - 100) / 400) - Math.floor((year - 102) / 400); + n += Math.floor((year - 200) / 400) - Math.floor((year - 199) / 400); + return n % 28 < 5 +}; +goog.date.getNumberOfDaysInMonth = function(year, month) { + switch(month) { + case goog.date.month.FEB: + return goog.date.isLeapYear(year) ? 29 : 28; + case goog.date.month.JUN: + ; + case goog.date.month.SEP: + ; + case goog.date.month.NOV: + ; + case goog.date.month.APR: + return 30 + } + return 31 +}; +goog.date.isSameDay = function(date, opt_now) { + var now = opt_now || new Date(goog.now()); + return date.getDate() == now.getDate() && goog.date.isSameMonth(date, now) +}; +goog.date.isSameMonth = function(date, opt_now) { + var now = opt_now || new Date(goog.now()); + return date.getMonth() == now.getMonth() && goog.date.isSameYear(date, now) +}; +goog.date.isSameYear = function(date, opt_now) { + var now = opt_now || new Date(goog.now()); + return date.getFullYear() == now.getFullYear() +}; +goog.date.getWeekNumber = function(year, month, date, opt_weekDay, opt_firstDayOfWeek) { + var d = new Date(year, month, date); + var cutoff = opt_weekDay || goog.date.weekDay.THU; + var firstday = opt_firstDayOfWeek || goog.date.weekDay.MON; + var ONE_DAY = 24 * 60 * 60 * 1E3; + var isoday = (d.getDay() + 6) % 7; + var daypos = (isoday - firstday + 7) % 7; + var cutoffpos = (cutoff - firstday + 7) % 7; + var cutoffSameWeek = d.valueOf() + (cutoffpos - daypos) * ONE_DAY; + var jan1 = (new Date((new Date(cutoffSameWeek)).getFullYear(), 0, 1)).valueOf(); + return Math.floor(Math.round((cutoffSameWeek - jan1) / ONE_DAY) / 7) + 1 +}; +goog.date.min = function(date1, date2) { + return date1 < date2 ? date1 : date2 +}; +goog.date.max = function(date1, date2) { + return date1 > date2 ? date1 : date2 +}; +goog.date.fromIsoString = function(formatted) { + var ret = new goog.date.DateTime(2E3); + return goog.date.setIso8601DateTime(ret, formatted) ? ret : null +}; +goog.date.setIso8601DateTime = function(dateTime, formatted) { + formatted = goog.string.trim(formatted); + var delim = formatted.indexOf("T") == -1 ? " " : "T"; + var parts = formatted.split(delim); + return goog.date.setIso8601DateOnly_(dateTime, parts[0]) && (parts.length < 2 || goog.date.setIso8601TimeOnly_(dateTime, parts[1])) +}; +goog.date.setIso8601DateOnly_ = function(d, formatted) { + var parts = formatted.match(goog.date.splitDateStringRegex_); + if(!parts) { + return false + } + var year = Number(parts[1]); + var month = Number(parts[2]); + var date = Number(parts[3]); + var dayOfYear = Number(parts[4]); + var week = Number(parts[5]); + var dayOfWeek = Number(parts[6]) || 1; + d.setFullYear(year); + if(dayOfYear) { + d.setDate(1); + d.setMonth(0); + var offset = dayOfYear - 1; + d.add(new goog.date.Interval(goog.date.Interval.DAYS, offset)) + }else { + if(week) { + goog.date.setDateFromIso8601Week_(d, week, dayOfWeek) + }else { + if(month) { + d.setDate(1); + d.setMonth(month - 1) + } + if(date) { + d.setDate(date) + } + } + } + return true +}; +goog.date.setDateFromIso8601Week_ = function(d, week, dayOfWeek) { + d.setMonth(0); + d.setDate(1); + var jsDay = d.getDay(); + var jan1WeekDay = jsDay || 7; + var THURSDAY = 4; + if(jan1WeekDay <= THURSDAY) { + var startDelta = 1 - jan1WeekDay + }else { + startDelta = 8 - jan1WeekDay + } + var absoluteDays = Number(dayOfWeek) + 7 * (Number(week) - 1); + var delta = startDelta + absoluteDays - 1; + var interval = new goog.date.Interval(goog.date.Interval.DAYS, delta); + d.add(interval) +}; +goog.date.setIso8601TimeOnly_ = function(d, formatted) { + var parts = formatted.match(goog.date.splitTimezoneStringRegex_); + var offset = 0; + if(parts) { + if(parts[0] != "Z") { + offset = parts[2] * 60 + Number(parts[3]); + offset *= parts[1] == "-" ? 1 : -1 + } + offset -= d.getTimezoneOffset(); + formatted = formatted.substr(0, formatted.length - parts[0].length) + } + parts = formatted.match(goog.date.splitTimeStringRegex_); + if(!parts) { + return false + } + d.setHours(Number(parts[1])); + d.setMinutes(Number(parts[2]) || 0); + d.setSeconds(Number(parts[3]) || 0); + d.setMilliseconds(parts[4] ? parts[4] * 1E3 : 0); + if(offset != 0) { + d.setTime(d.getTime() + offset * 6E4) + } + return true +}; +goog.date.Interval = function(opt_years, opt_months, opt_days, opt_hours, opt_minutes, opt_seconds) { + if(goog.isString(opt_years)) { + var type = opt_years; + var interval = (opt_months); + this.years = type == goog.date.Interval.YEARS ? interval : 0; + this.months = type == goog.date.Interval.MONTHS ? interval : 0; + this.days = type == goog.date.Interval.DAYS ? interval : 0; + this.hours = type == goog.date.Interval.HOURS ? interval : 0; + this.minutes = type == goog.date.Interval.MINUTES ? interval : 0; + this.seconds = type == goog.date.Interval.SECONDS ? interval : 0 + }else { + this.years = (opt_years) || 0; + this.months = opt_months || 0; + this.days = opt_days || 0; + this.hours = opt_hours || 0; + this.minutes = opt_minutes || 0; + this.seconds = opt_seconds || 0 + } +}; +goog.date.Interval.fromIsoString = function(duration) { + var parts = duration.match(goog.date.splitDurationRegex_); + if(!parts) { + return null + } + var timeEmpty = !(parts[6] || parts[7] || parts[8]); + var dateTimeEmpty = timeEmpty && !(parts[2] || parts[3] || parts[4]); + if(dateTimeEmpty || timeEmpty && parts[5]) { + return null + } + var negative = parts[1]; + var years = parseInt(parts[2], 10) || 0; + var months = parseInt(parts[3], 10) || 0; + var days = parseInt(parts[4], 10) || 0; + var hours = parseInt(parts[6], 10) || 0; + var minutes = parseInt(parts[7], 10) || 0; + var seconds = parseFloat(parts[8]) || 0; + return negative ? new goog.date.Interval(-years, -months, -days, -hours, -minutes, -seconds) : new goog.date.Interval(years, months, days, hours, minutes, seconds) +}; +goog.date.Interval.prototype.toIsoString = function(opt_verbose) { + var minField = Math.min(this.years, this.months, this.days, this.hours, this.minutes, this.seconds); + var maxField = Math.max(this.years, this.months, this.days, this.hours, this.minutes, this.seconds); + if(minField < 0 && maxField > 0) { + return null + } + if(!opt_verbose && minField == 0 && maxField == 0) { + return"PT0S" + } + var res = []; + if(minField < 0) { + res.push("-") + } + res.push("P"); + if(this.years || opt_verbose) { + res.push(Math.abs(this.years) + "Y") + } + if(this.months || opt_verbose) { + res.push(Math.abs(this.months) + "M") + } + if(this.days || opt_verbose) { + res.push(Math.abs(this.days) + "D") + } + if(this.hours || this.minutes || this.seconds || opt_verbose) { + res.push("T"); + if(this.hours || opt_verbose) { + res.push(Math.abs(this.hours) + "H") + } + if(this.minutes || opt_verbose) { + res.push(Math.abs(this.minutes) + "M") + } + if(this.seconds || opt_verbose) { + res.push(Math.abs(this.seconds) + "S") + } + } + return res.join("") +}; +goog.date.Interval.prototype.equals = function(other) { + return other.years == this.years && other.months == this.months && other.days == this.days && other.hours == this.hours && other.minutes == this.minutes && other.seconds == this.seconds +}; +goog.date.Interval.prototype.clone = function() { + return new goog.date.Interval(this.years, this.months, this.days, this.hours, this.minutes, this.seconds) +}; +goog.date.Interval.YEARS = "y"; +goog.date.Interval.MONTHS = "m"; +goog.date.Interval.DAYS = "d"; +goog.date.Interval.HOURS = "h"; +goog.date.Interval.MINUTES = "n"; +goog.date.Interval.SECONDS = "s"; +goog.date.Interval.prototype.isZero = function() { + return this.years == 0 && this.months == 0 && this.days == 0 && this.hours == 0 && this.minutes == 0 && this.seconds == 0 +}; +goog.date.Interval.prototype.getInverse = function() { + return this.times(-1) +}; +goog.date.Interval.prototype.times = function(n) { + return new goog.date.Interval(this.years * n, this.months * n, this.days * n, this.hours * n, this.minutes * n, this.seconds * n) +}; +goog.date.Interval.prototype.getTotalSeconds = function() { + goog.asserts.assert(this.years == 0 && this.months == 0); + return((this.days * 24 + this.hours) * 60 + this.minutes) * 60 + this.seconds +}; +goog.date.Interval.prototype.add = function(interval) { + this.years += interval.years; + this.months += interval.months; + this.days += interval.days; + this.hours += interval.hours; + this.minutes += interval.minutes; + this.seconds += interval.seconds +}; +goog.date.Date = function(opt_year, opt_month, opt_date) { + if(goog.isNumber(opt_year)) { + this.date_ = new Date(opt_year, opt_month || 0, opt_date || 1); + this.maybeFixDst_(opt_date || 1) + }else { + if(goog.isObject(opt_year)) { + this.date_ = new Date(opt_year.getFullYear(), opt_year.getMonth(), opt_year.getDate()); + this.maybeFixDst_(opt_year.getDate()) + }else { + this.date_ = new Date(goog.now()); + this.date_.setHours(0); + this.date_.setMinutes(0); + this.date_.setSeconds(0); + this.date_.setMilliseconds(0) + } + } +}; +goog.date.Date.prototype.firstDayOfWeek_ = goog.i18n.DateTimeSymbols.FIRSTDAYOFWEEK; +goog.date.Date.prototype.firstWeekCutOffDay_ = goog.i18n.DateTimeSymbols.FIRSTWEEKCUTOFFDAY; +goog.date.Date.prototype.clone = function() { + var date = new goog.date.Date(this.date_); + date.firstDayOfWeek_ = this.firstDayOfWeek_; + date.firstWeekCutOffDay_ = this.firstWeekCutOffDay_; + return date +}; +goog.date.Date.prototype.getFullYear = function() { + return this.date_.getFullYear() +}; +goog.date.Date.prototype.getYear = function() { + return this.getFullYear() +}; +goog.date.Date.prototype.getMonth = function() { + return(this.date_.getMonth()) +}; +goog.date.Date.prototype.getDate = function() { + return this.date_.getDate() +}; +goog.date.Date.prototype.getTime = function() { + return this.date_.getTime() +}; +goog.date.Date.prototype.getDay = function() { + return(this.date_.getDay()) +}; +goog.date.Date.prototype.getIsoWeekday = function() { + return(this.getDay() + 6) % 7 +}; +goog.date.Date.prototype.getWeekday = function() { + return(this.getIsoWeekday() - this.firstDayOfWeek_ + 7) % 7 +}; +goog.date.Date.prototype.getUTCFullYear = function() { + return this.date_.getUTCFullYear() +}; +goog.date.Date.prototype.getUTCMonth = function() { + return(this.date_.getUTCMonth()) +}; +goog.date.Date.prototype.getUTCDate = function() { + return this.date_.getUTCDate() +}; +goog.date.Date.prototype.getUTCDay = function() { + return(this.date_.getDay()) +}; +goog.date.Date.prototype.getUTCHours = function() { + return this.date_.getUTCHours() +}; +goog.date.Date.prototype.getUTCMinutes = function() { + return this.date_.getUTCMinutes() +}; +goog.date.Date.prototype.getUTCIsoWeekday = function() { + return(this.date_.getUTCDay() + 6) % 7 +}; +goog.date.Date.prototype.getUTCWeekday = function() { + return(this.getUTCIsoWeekday() - this.firstDayOfWeek_ + 7) % 7 +}; +goog.date.Date.prototype.getFirstDayOfWeek = function() { + return this.firstDayOfWeek_ +}; +goog.date.Date.prototype.getFirstWeekCutOffDay = function() { + return this.firstWeekCutOffDay_ +}; +goog.date.Date.prototype.getNumberOfDaysInMonth = function() { + return goog.date.getNumberOfDaysInMonth(this.getFullYear(), this.getMonth()) +}; +goog.date.Date.prototype.getWeekNumber = function() { + return goog.date.getWeekNumber(this.getFullYear(), this.getMonth(), this.getDate(), this.firstWeekCutOffDay_, this.firstDayOfWeek_) +}; +goog.date.Date.prototype.getDayOfYear = function() { + var dayOfYear = this.getDate(); + var year = this.getFullYear(); + for(var m = this.getMonth() - 1;m >= 0;m--) { + dayOfYear += goog.date.getNumberOfDaysInMonth(year, m) + } + return dayOfYear +}; +goog.date.Date.prototype.getTimezoneOffset = function() { + return this.date_.getTimezoneOffset() +}; +goog.date.Date.prototype.getTimezoneOffsetString = function() { + var tz; + var offset = this.getTimezoneOffset(); + if(offset == 0) { + tz = "Z" + }else { + var n = Math.abs(offset) / 60; + var h = Math.floor(n); + var m = (n - h) * 60; + tz = (offset > 0 ? "-" : "+") + goog.string.padNumber(h, 2) + ":" + goog.string.padNumber(m, 2) + } + return tz +}; +goog.date.Date.prototype.set = function(date) { + this.date_ = new Date(date.getFullYear(), date.getMonth(), date.getDate()) +}; +goog.date.Date.prototype.setFullYear = function(year) { + this.date_.setFullYear(year) +}; +goog.date.Date.prototype.setYear = function(year) { + this.setFullYear(year) +}; +goog.date.Date.prototype.setMonth = function(month) { + this.date_.setMonth(month) +}; +goog.date.Date.prototype.setDate = function(date) { + this.date_.setDate(date) +}; +goog.date.Date.prototype.setTime = function(ms) { + this.date_.setTime(ms) +}; +goog.date.Date.prototype.setUTCFullYear = function(year) { + this.date_.setUTCFullYear(year) +}; +goog.date.Date.prototype.setUTCMonth = function(month) { + this.date_.setUTCMonth(month) +}; +goog.date.Date.prototype.setUTCDate = function(date) { + this.date_.setUTCDate(date) +}; +goog.date.Date.prototype.setFirstDayOfWeek = function(day) { + this.firstDayOfWeek_ = day +}; +goog.date.Date.prototype.setFirstWeekCutOffDay = function(day) { + this.firstWeekCutOffDay_ = day +}; +goog.date.Date.prototype.add = function(interval) { + if(interval.years || interval.months) { + var month = this.getMonth() + interval.months + interval.years * 12; + var year = this.getYear() + Math.floor(month / 12); + month %= 12; + if(month < 0) { + month += 12 + } + var daysInTargetMonth = goog.date.getNumberOfDaysInMonth(year, month); + var date = Math.min(daysInTargetMonth, this.getDate()); + this.setDate(1); + this.setFullYear(year); + this.setMonth(month); + this.setDate(date) + } + if(interval.days) { + var noon = new Date(this.getYear(), this.getMonth(), this.getDate(), 12); + var result = new Date(noon.getTime() + interval.days * 864E5); + this.setDate(1); + this.setFullYear(result.getFullYear()); + this.setMonth(result.getMonth()); + this.setDate(result.getDate()); + this.maybeFixDst_(result.getDate()) + } +}; +goog.date.Date.prototype.toIsoString = function(opt_verbose, opt_tz) { + var str = [this.getFullYear(), goog.string.padNumber(this.getMonth() + 1, 2), goog.string.padNumber(this.getDate(), 2)]; + return str.join(opt_verbose ? "-" : "") + (opt_tz ? this.getTimezoneOffsetString() : "") +}; +goog.date.Date.prototype.toUTCIsoString = function(opt_verbose, opt_tz) { + var str = [this.getUTCFullYear(), goog.string.padNumber(this.getUTCMonth() + 1, 2), goog.string.padNumber(this.getUTCDate(), 2)]; + return str.join(opt_verbose ? "-" : "") + (opt_tz ? "Z" : "") +}; +goog.date.Date.prototype.equals = function(other) { + return!!(other && this.getYear() == other.getYear() && this.getMonth() == other.getMonth() && this.getDate() == other.getDate()) +}; +goog.date.Date.prototype.toString = function() { + return this.toIsoString() +}; +goog.date.Date.prototype.maybeFixDst_ = function(expected) { + if(this.getDate() != expected) { + var dir = this.getDate() < expected ? 1 : -1; + this.date_.setUTCHours(this.date_.getUTCHours() + dir) + } +}; +goog.date.Date.prototype.valueOf = function() { + return this.date_.valueOf() +}; +goog.date.Date.compare = function(date1, date2) { + return date1.getTime() - date2.getTime() +}; +goog.date.DateTime = function(opt_year, opt_month, opt_date, opt_hours, opt_minutes, opt_seconds, opt_milliseconds) { + if(goog.isNumber(opt_year)) { + this.date_ = new Date(opt_year, opt_month || 0, opt_date || 1, opt_hours || 0, opt_minutes || 0, opt_seconds || 0, opt_milliseconds || 0) + }else { + this.date_ = new Date(opt_year ? opt_year.getTime() : goog.now()) + } +}; +goog.inherits(goog.date.DateTime, goog.date.Date); +goog.date.DateTime.fromRfc822String = function(formatted) { + var date = new Date(formatted); + return!isNaN(date.getTime()) ? new goog.date.DateTime(date) : null +}; +goog.date.DateTime.prototype.getHours = function() { + return this.date_.getHours() +}; +goog.date.DateTime.prototype.getMinutes = function() { + return this.date_.getMinutes() +}; +goog.date.DateTime.prototype.getSeconds = function() { + return this.date_.getSeconds() +}; +goog.date.DateTime.prototype.getMilliseconds = function() { + return this.date_.getMilliseconds() +}; +goog.date.DateTime.prototype.getUTCDay = function() { + return(this.date_.getUTCDay()) +}; +goog.date.DateTime.prototype.getUTCHours = function() { + return this.date_.getUTCHours() +}; +goog.date.DateTime.prototype.getUTCMinutes = function() { + return this.date_.getUTCMinutes() +}; +goog.date.DateTime.prototype.getUTCSeconds = function() { + return this.date_.getUTCSeconds() +}; +goog.date.DateTime.prototype.getUTCMilliseconds = function() { + return this.date_.getUTCMilliseconds() +}; +goog.date.DateTime.prototype.setHours = function(hours) { + this.date_.setHours(hours) +}; +goog.date.DateTime.prototype.setMinutes = function(minutes) { + this.date_.setMinutes(minutes) +}; +goog.date.DateTime.prototype.setSeconds = function(seconds) { + this.date_.setSeconds(seconds) +}; +goog.date.DateTime.prototype.setMilliseconds = function(ms) { + this.date_.setMilliseconds(ms) +}; +goog.date.DateTime.prototype.setUTCHours = function(hours) { + this.date_.setUTCHours(hours) +}; +goog.date.DateTime.prototype.setUTCMinutes = function(minutes) { + this.date_.setUTCMinutes(minutes) +}; +goog.date.DateTime.prototype.setUTCSeconds = function(seconds) { + this.date_.setUTCSeconds(seconds) +}; +goog.date.DateTime.prototype.setUTCMilliseconds = function(ms) { + this.date_.setUTCMilliseconds(ms) +}; +goog.date.DateTime.prototype.isMidnight = function() { + return this.getHours() == 0 && this.getMinutes() == 0 && this.getSeconds() == 0 && this.getMilliseconds() == 0 +}; +goog.date.DateTime.prototype.add = function(interval) { + goog.date.Date.prototype.add.call(this, interval); + if(interval.hours) { + this.setHours(this.date_.getHours() + interval.hours) + } + if(interval.minutes) { + this.setMinutes(this.date_.getMinutes() + interval.minutes) + } + if(interval.seconds) { + this.setSeconds(this.date_.getSeconds() + interval.seconds) + } +}; +goog.date.DateTime.prototype.toIsoString = function(opt_verbose, opt_tz) { + var dateString = goog.date.Date.prototype.toIsoString.call(this, opt_verbose); + if(opt_verbose) { + return dateString + " " + goog.string.padNumber(this.getHours(), 2) + ":" + goog.string.padNumber(this.getMinutes(), 2) + ":" + goog.string.padNumber(this.getSeconds(), 2) + (opt_tz ? this.getTimezoneOffsetString() : "") + } + return dateString + "T" + goog.string.padNumber(this.getHours(), 2) + goog.string.padNumber(this.getMinutes(), 2) + goog.string.padNumber(this.getSeconds(), 2) + (opt_tz ? this.getTimezoneOffsetString() : "") +}; +goog.date.DateTime.prototype.toXmlDateTime = function(opt_timezone) { + return goog.date.Date.prototype.toIsoString.call(this, true) + "T" + goog.string.padNumber(this.getHours(), 2) + ":" + goog.string.padNumber(this.getMinutes(), 2) + ":" + goog.string.padNumber(this.getSeconds(), 2) + (opt_timezone ? this.getTimezoneOffsetString() : "") +}; +goog.date.DateTime.prototype.toUTCIsoString = function(opt_verbose, opt_tz) { + var dateStr = goog.date.Date.prototype.toUTCIsoString.call(this, opt_verbose); + if(opt_verbose) { + return dateStr + " " + goog.string.padNumber(this.getUTCHours(), 2) + ":" + goog.string.padNumber(this.getUTCMinutes(), 2) + ":" + goog.string.padNumber(this.getUTCSeconds(), 2) + (opt_tz ? "Z" : "") + } + return dateStr + "T" + goog.string.padNumber(this.getUTCHours(), 2) + goog.string.padNumber(this.getUTCMinutes(), 2) + goog.string.padNumber(this.getUTCSeconds(), 2) + (opt_tz ? "Z" : "") +}; +goog.date.DateTime.prototype.equals = function(other) { + return this.getTime() == other.getTime() +}; +goog.date.DateTime.prototype.toString = function() { + return this.toIsoString() +}; +goog.date.DateTime.prototype.toUsTimeString = function(opt_padHours, opt_showAmPm, opt_omitZeroMinutes) { + var hours = this.getHours(); + if(!goog.isDef(opt_showAmPm)) { + opt_showAmPm = true + } + var isPM = hours == 12; + if(hours > 12) { + hours -= 12; + isPM = true + } + if(hours == 0 && opt_showAmPm) { + hours = 12 + } + var label = opt_padHours ? goog.string.padNumber(hours, 2) : String(hours); + var minutes = this.getMinutes(); + if(!opt_omitZeroMinutes || minutes > 0) { + label += ":" + goog.string.padNumber(minutes, 2) + } + if(opt_showAmPm) { + var MSG_TIME_AM = goog.getMsg("am"); + var MSG_TIME_PM = goog.getMsg("pm"); + label += isPM ? MSG_TIME_PM : MSG_TIME_AM + } + return label +}; +goog.date.DateTime.prototype.toIsoTimeString = function(opt_showSeconds) { + var hours = this.getHours(); + var label = goog.string.padNumber(hours, 2) + ":" + goog.string.padNumber(this.getMinutes(), 2); + if(!goog.isDef(opt_showSeconds) || opt_showSeconds) { + label += ":" + goog.string.padNumber(this.getSeconds(), 2) + } + return label +}; +goog.date.DateTime.prototype.clone = function() { + var date = new goog.date.DateTime(this.date_); + date.setFirstDayOfWeek(this.getFirstDayOfWeek()); + date.setFirstWeekCutOffDay(this.getFirstWeekCutOffDay()); + return date +}; +goog.provide("ol.style.Icon"); +goog.require("goog.asserts"); +goog.require("ol.Feature"); +goog.require("ol.expr"); +goog.require("ol.expr.Expression"); +goog.require("ol.expr.Literal"); +goog.require("ol.geom.GeometryType"); +goog.require("ol.style.IconLiteral"); +goog.require("ol.style.Point"); +ol.style.Icon = function(options) { + goog.asserts.assert(options.url, "url must be set"); + this.url_ = options.url instanceof ol.expr.Expression ? options.url : new ol.expr.Literal(options.url); + this.width_ = !goog.isDef(options.width) ? null : options.width instanceof ol.expr.Expression ? options.width : new ol.expr.Literal(options.width); + this.height_ = !goog.isDef(options.height) ? null : options.height instanceof ol.expr.Expression ? options.height : new ol.expr.Literal(options.height); + this.opacity_ = !goog.isDef(options.opacity) ? new ol.expr.Literal(ol.style.IconDefaults.opacity) : options.opacity instanceof ol.expr.Expression ? options.opacity : new ol.expr.Literal(options.opacity); + this.rotation_ = !goog.isDef(options.rotation) ? new ol.expr.Literal(ol.style.IconDefaults.rotation) : options.rotation instanceof ol.expr.Expression ? options.rotation : new ol.expr.Literal(options.rotation); + this.xOffset_ = !goog.isDef(options.xOffset) ? new ol.expr.Literal(ol.style.IconDefaults.xOffset) : options.xOffset instanceof ol.expr.Expression ? options.xOffset : new ol.expr.Literal(options.xOffset); + this.yOffset_ = !goog.isDef(options.yOffset) ? new ol.expr.Literal(ol.style.IconDefaults.yOffset) : options.yOffset instanceof ol.expr.Expression ? options.yOffset : new ol.expr.Literal(options.yOffset) +}; +ol.style.Icon.prototype.createLiteral = function(featureOrType) { + var feature, type; + if(featureOrType instanceof ol.Feature) { + feature = featureOrType; + var geometry = feature.getGeometry(); + type = geometry ? geometry.getType() : null + }else { + type = featureOrType + } + var literal = null; + if(type === ol.geom.GeometryType.POINT || type === ol.geom.GeometryType.MULTIPOINT) { + var url = ol.expr.evaluateFeature(this.url_, feature); + goog.asserts.assertString(url, "url must be a string"); + goog.asserts.assert(url != "#", 'url must not be "#"'); + var width; + if(!goog.isNull(this.width_)) { + width = Number(ol.expr.evaluateFeature(this.width_, feature)); + goog.asserts.assert(!isNaN(width), "width must be a number") + } + var height; + if(!goog.isNull(this.height_)) { + height = Number(ol.expr.evaluateFeature(this.height_, feature)); + goog.asserts.assertNumber(height, "height must be a number") + } + var opacity = Number(ol.expr.evaluateFeature(this.opacity_, feature)); + goog.asserts.assert(!isNaN(opacity), "opacity must be a number"); + var rotation = Number(ol.expr.evaluateFeature(this.rotation_, feature)); + goog.asserts.assert(!isNaN(rotation), "rotation must be a number"); + var xOffset = Number(ol.expr.evaluateFeature(this.xOffset_, feature)); + goog.asserts.assert(!isNaN(xOffset), "xOffset must be a number"); + var yOffset = Number(ol.expr.evaluateFeature(this.yOffset_, feature)); + goog.asserts.assert(!isNaN(yOffset), "yOffset must be a number"); + literal = new ol.style.IconLiteral({url:url, width:width, height:height, opacity:opacity, rotation:rotation, xOffset:xOffset, yOffset:yOffset}) + } + return literal +}; +ol.style.Icon.prototype.getHeight = function() { + return this.height_ +}; +ol.style.Icon.prototype.getOpacity = function() { + return this.opacity_ +}; +ol.style.Icon.prototype.getRotation = function() { + return this.rotation_ +}; +ol.style.Icon.prototype.getUrl = function() { + return this.url_ +}; +ol.style.Icon.prototype.getWidth = function() { + return this.width_ +}; +ol.style.Icon.prototype.getXOffset = function() { + return this.xOffset_ +}; +ol.style.Icon.prototype.getYOffset = function() { + return this.yOffset_ +}; +ol.style.Icon.prototype.setHeight = function(height) { + goog.asserts.assertInstanceof(height, ol.expr.Expression); + this.height_ = height +}; +ol.style.Icon.prototype.setOpacity = function(opacity) { + goog.asserts.assertInstanceof(opacity, ol.expr.Expression); + this.opacity_ = opacity +}; +ol.style.Icon.prototype.setRotation = function(rotation) { + goog.asserts.assertInstanceof(rotation, ol.expr.Expression); + this.rotation_ = rotation +}; +ol.style.Icon.prototype.setUrl = function(url) { + goog.asserts.assertInstanceof(url, ol.expr.Expression); + this.url_ = url +}; +ol.style.Icon.prototype.setWidth = function(width) { + goog.asserts.assertInstanceof(width, ol.expr.Expression); + this.width_ = width +}; +ol.style.Icon.prototype.setXOffset = function(xOffset) { + goog.asserts.assertInstanceof(xOffset, ol.expr.Expression); + this.xOffset_ = xOffset +}; +ol.style.Icon.prototype.setYOffset = function(yOffset) { + goog.asserts.assertInstanceof(yOffset, ol.expr.Expression); + this.yOffset_ = yOffset +}; +ol.style.IconDefaults = {opacity:1, rotation:0, xOffset:0, yOffset:0}; +goog.provide("ol.parser.KML"); +goog.require("goog.array"); +goog.require("goog.async.Deferred"); +goog.require("goog.async.DeferredList"); +goog.require("goog.date"); +goog.require("goog.dispose"); +goog.require("goog.dom.xml"); +goog.require("goog.events"); +goog.require("goog.net.EventType"); +goog.require("goog.net.XhrIo"); +goog.require("goog.object"); +goog.require("goog.string"); +goog.require("ol.Feature"); +goog.require("ol.geom.AbstractCollection"); +goog.require("ol.geom.GeometryCollection"); +goog.require("ol.geom.GeometryType"); +goog.require("ol.geom.LineString"); +goog.require("ol.geom.MultiLineString"); +goog.require("ol.geom.MultiPoint"); +goog.require("ol.geom.MultiPolygon"); +goog.require("ol.geom.Point"); +goog.require("ol.geom.Polygon"); +goog.require("ol.geom.SharedVertices"); +goog.require("ol.parser.AsyncObjectFeatureParser"); +goog.require("ol.parser.AsyncStringFeatureParser"); +goog.require("ol.parser.DomFeatureParser"); +goog.require("ol.parser.ReadFeaturesOptions"); +goog.require("ol.parser.StringFeatureParser"); +goog.require("ol.parser.XML"); +goog.require("ol.style.Fill"); +goog.require("ol.style.Icon"); +goog.require("ol.style.Stroke"); +ol.parser.KML = function(opt_options) { + var options = (goog.isDef(opt_options) ? opt_options : {}); + this.extractAttributes = goog.isDef(options.extractAttributes) ? options.extractAttributes : true; + this.extractStyles = goog.isDef(options.extractStyles) ? options.extractStyles : false; + this.schemaLocation = "http://www.opengis.net/kml/2.2 " + "http://schemas.opengis.net/kml/2.2.0/ogckml22.xsd"; + this.dimension = goog.isDef(options.dimension) ? options.dimension : 3; + this.maxDepth = goog.isDef(options.maxDepth) ? options.maxDepth : 0; + this.trackAttributes = goog.isDef(options.trackAttributes) ? options.trackAttributes : null; + this.defaultNamespaceURI = "http://www.opengis.net/kml/2.2"; + this.readers = {"http://www.opengis.net/kml/2.2":{"kml":function(node, obj) { + if(!goog.isDef(obj.features)) { + obj.features = [] + } + if(!goog.isDef(obj.links)) { + obj.links = [] + } + this.readChildNodes(node, obj) + }, "Document":function(node, obj) { + this.readChildNodes(node, obj) + }, "*":function(node, obj) { + if(this.extractAttributes === true) { + var len = node.childNodes.length; + if((len === 1 || len === 2) && (node.firstChild.nodeType === 3 || node.firstChild.nodeType === 4)) { + var readers = this.readers[this.defaultNamespaceURI]; + readers["_attribute"].apply(this, arguments) + } + } + }, "NetworkLink":function(node, obj) { + var link = {}; + this.readChildNodes(node, link); + obj.links.push(link) + }, "Link":function(node, obj) { + this.readChildNodes(node, obj) + }, "_attribute":function(node, obj) { + var local = node.localName || node.nodeName.split(":").pop(); + var value = this.getChildValue(node); + if(obj.properties) { + obj.properties[local] = value.replace(this.regExes.trimSpace, "") + }else { + obj[local] = value.replace(this.regExes.trimSpace, "") + } + }, "Placemark":function(node, obj) { + var container = {properties:{}}; + var sharedVertices, callback; + var id = node.getAttribute("id"); + this.readChildNodes(node, container); + if(goog.isDef(container.track)) { + var track = container.track, j, jj; + delete container.track; + for(var i = 0, ii = track.whens.length;i < ii;++i) { + if(this.trackAttributes) { + for(j = 0, jj = this.trackAttributes.length;j < jj;++j) { + var name = this.trackAttributes[j]; + container.properties[name] = track.attributes[name][i] + } + } + container.properties["when"] = track.whens[i]; + if(goog.isDef(track.angles[i])) { + container.properties["heading"] = parseFloat(track.angles[i][0]); + container.properties["tilt"] = parseFloat(track.angles[i][1]); + container.properties["roll"] = parseFloat(track.angles[i][2]) + } + if(track.points[i].coordinates.length === 3) { + container.properties["altitude"] = track.points[i].coordinates[2] + } + var feature = new ol.Feature(container.properties); + if(!goog.isNull(id)) { + feature.setFeatureId(id) + } + var geom = track.points[i]; + if(geom) { + sharedVertices = undefined; + if(this.readFeaturesOptions_) { + callback = this.readFeaturesOptions_.callback; + if(callback) { + sharedVertices = callback(feature, geom.type) + } + } + var geometry = this.createGeometry_({geometry:geom}, sharedVertices); + if(goog.isDef(geometry)) { + feature.setGeometry(geometry) + } + } + obj.features.push(feature) + } + }else { + if(goog.isDef(container.geometry)) { + var styleUrl = container.properties["styleUrl"]; + if(goog.isDef(styleUrl)) { + if(!goog.string.startsWith(styleUrl, "#")) { + obj.links.push({href:styleUrl}) + } + } + feature = new ol.Feature(container.properties); + if(!goog.isNull(id)) { + feature.setFeatureId(id) + } + if(container.geometry) { + sharedVertices = undefined; + if(this.readFeaturesOptions_) { + callback = this.readFeaturesOptions_.callback; + if(callback) { + sharedVertices = callback(feature, container.geometry.type) + } + } + geometry = this.createGeometry_(container, sharedVertices); + if(goog.isDef(geometry)) { + feature.setGeometry(geometry) + } + } + var symbolizers = undefined; + if(goog.isDef(container.styles)) { + symbolizers = container.styles[0].symbolizers + } + this.applyStyle_(feature, obj["styles"], symbolizers); + obj.features.push(feature) + } + } + }, "MultiGeometry":function(node, container) { + var parts = []; + this.readChildNodes(node, parts); + var buckets = goog.array.bucket(parts, function(val) { + return val.type + }); + var obj = {}; + if(goog.object.getCount(buckets) === 1) { + var type = goog.object.getAnyKey(buckets); + switch(type) { + case ol.geom.GeometryType.POINT: + obj.geometry = {type:ol.geom.GeometryType.MULTIPOINT, parts:parts}; + break; + case ol.geom.GeometryType.LINESTRING: + obj.geometry = {type:ol.geom.GeometryType.MULTILINESTRING, parts:parts}; + break; + case ol.geom.GeometryType.POLYGON: + obj.geometry = {type:ol.geom.GeometryType.MULTIPOLYGON, parts:parts}; + break; + default: + break + } + }else { + obj.geometry = {type:ol.geom.GeometryType.GEOMETRYCOLLECTION, parts:parts} + } + if(goog.isArray(container)) { + container.push(obj.geometry) + }else { + container.geometry = obj.geometry + } + }, "Point":function(node, container) { + var coordinates = []; + this.readChildNodes(node, coordinates); + var point = {type:ol.geom.GeometryType.POINT, coordinates:coordinates[0][0]}; + if(goog.isArray(container)) { + container.push(point) + }else { + container.geometry = point + } + }, "Polygon":function(node, container) { + var coordinates = []; + this.readChildNodes(node, coordinates); + var polygon = {type:ol.geom.GeometryType.POLYGON, coordinates:coordinates}; + if(goog.isArray(container)) { + container.push(polygon) + }else { + container.geometry = polygon + } + }, "LineString":function(node, container) { + var coordinates = []; + this.readChildNodes(node, coordinates); + var linestring = {type:ol.geom.GeometryType.LINESTRING, coordinates:coordinates[0]}; + if(goog.isArray(container)) { + container.push(linestring) + }else { + container.geometry = linestring + } + }, "outerBoundaryIs":function(node, coordinates) { + this.readChildNodes(node, coordinates) + }, "LinearRing":function(node, coordinates) { + this.readChildNodes(node, coordinates) + }, "coordinates":function(node, coordinates) { + var coordstr = this.getChildValue(node); + var reg = this.regExes; + var coords = coordstr.replace(reg.trimSpace, "").split(reg.splitSpace); + var coordArray = []; + for(var i = 0, ii = coords.length;i < ii;i++) { + var array = coords[i].replace(reg.removeSpace, "").split(","); + var pair = []; + var jj = Math.min(array.length, this.dimension); + for(var j = 0;j < jj;j++) { + pair.push(parseFloat(array[j])) + } + coordArray.push(pair) + } + coordinates.push(coordArray) + }, "innerBoundaryIs":function(node, coordinates) { + this.readChildNodes(node, coordinates) + }, "Folder":function(node, obj) { + this.readChildNodes(node, obj) + }, "ExtendedData":function(node, container) { + this.readChildNodes(node, container.properties) + }, "SchemaData":function(node, attributes) { + this.readChildNodes(node, attributes) + }, "SimpleData":function(node, attributes) { + attributes[node.getAttribute("name")] = this.getChildValue(node) + }, "Data":function(node, attributes) { + var data = {}; + this.readChildNodes(node, data); + attributes[node.getAttribute("name")] = data["value"] + }, "when":function(node, container) { + var value = this.getChildValue(node); + var split1 = value.split("T"); + if(split1.length === 2) { + var split2 = split1[1].split("-"); + if(split2.length === 2) { + value += ":00" + } + } + container.whens.push(goog.date.fromIsoString(value).date_) + }, "_trackPointAttribute":function(node, container) { + var name = node.nodeName.split(":").pop(); + container.attributes[name].push(this.getChildValue(node)) + }, "Style":function(node, obj) { + if(this.extractStyles === true) { + if(!obj["styles"]) { + obj["styles"] = [] + } + var style = {"symbolizers":[], "ids":[]}; + var id = node.getAttribute("id"); + if(!goog.isNull(id)) { + style["id"] = id + } + this.readChildNodes(node, style); + obj["styles"].push(style) + } + }, "LineStyle":function(node, obj) { + var style = {}; + var options = {}; + this.readChildNodes(node, style); + if(style.color) { + options.color = style.color.color; + options.opacity = style.color.opacity + } + if(style.width) { + options.width = parseFloat(style.width) + } + obj["ids"].push(node.getAttribute("id")); + obj["symbolizers"].push(new ol.style.Stroke(options)) + }, "PolyStyle":function(node, obj) { + var style = {}; + var options = {}; + this.readChildNodes(node, style); + if(!(style.fill === "0" || style.fill === "false")) { + if(style.color) { + options.color = style.color.color; + options.opacity = style.color.opacity + }else { + options.color = "#ffffff"; + options.opacity = 1 + } + obj["symbolizers"].push(new ol.style.Fill(options)) + } + if(!(style.outline === "0" || style.outline === "false")) { + if(style.color) { + options.color = style.color.color; + options.opacity = style.color.opacity + }else { + options.color = "#ffffff"; + options.opacity = 1 + } + obj["symbolizers"].push(new ol.style.Stroke(options)) + } + obj["ids"].push(node.getAttribute("id")) + }, "fill":function(node, obj) { + obj.fill = this.getChildValue(node) + }, "outline":function(node, obj) { + obj.outline = this.getChildValue(node) + }, "scale":function(node, obj) { + obj.scale = parseFloat(this.getChildValue(node)) + }, "Icon":function(node, obj) { + obj.icon = {}; + this.readChildNodes(node, obj.icon) + }, "href":function(node, obj) { + obj.href = this.getChildValue(node) + }, "w":function(node, obj) { + obj.w = this.getChildValue(node) + }, "h":function(node, obj) { + obj.h = this.getChildValue(node) + }, "x":function(node, obj) { + obj.x = this.getChildValue(node) + }, "y":function(node, obj) { + obj.y = this.getChildValue(node) + }, "hotSpot":function(node, obj) { + obj.hotSpot = {x:parseFloat(node.getAttribute("x")), y:parseFloat(node.getAttribute("y")), xunits:node.getAttribute("xunits"), yunits:node.getAttribute("yunits")} + }, "IconStyle":function(node, obj) { + var style = {}; + var options = {}; + this.readChildNodes(node, style); + var scale = style.scale || 1; + var width = 32 * scale; + var height = 32 * scale; + var x, y; + if(goog.isDef(style.icon)) { + var href = style.icon.href; + if(goog.isDef(href)) { + var w = style.icon.w; + var h = style.icon.h; + var google = "http://maps.google.com/mapfiles/kml"; + if(goog.string.startsWith(href, google) && !goog.isDef(w) && !goog.isDef(h)) { + w = 64; + h = 64; + scale = scale / 2 + } + w = w || h; + h = h || w; + if(w) { + width = parseInt(w, 10) * scale + } + if(h) { + height = parseInt(h, 10) * scale + } + var matches = href.match(this.regExes.kmlIconPalette); + if(matches) { + var palette = matches[1]; + var file_extension = matches[2]; + x = style.icon.x; + y = style.icon.y; + var posX = x ? x / 32 : 0; + var posY = y ? 7 - y / 32 : 7; + var pos = posY * 8 + posX; + href = "http://maps.google.com/mapfiles/kml/pal" + palette + "/icon" + pos + file_extension + } + options.opacity = 1; + options.url = href + } + } + if(goog.isDef(style.hotSpot)) { + x = style.hotSpot.x; + y = style.hotSpot.y; + var xUnits = style.hotSpot.xunits, yUnits = style.hotSpot.yunits; + if(xUnits === "pixels") { + options.xOffset = -x * scale + }else { + if(xUnits === "insetPixels") { + options.xOffset = -width + x * scale + }else { + if(xUnits === "fraction") { + options.xOffset = -width * x + } + } + } + if(yUnits == "pixels") { + options.yOffset = -height + y * scale + 1 + }else { + if(yUnits == "insetPixels") { + options.yOffset = -(y * scale) + 1 + }else { + if(yUnits == "fraction") { + options.yOffset = -height * (1 - y) + 1 + } + } + } + } + options.width = width; + options.height = height; + obj["ids"].push(node.getAttribute("id")); + obj["symbolizers"].push(new ol.style.Icon(options)) + }, "color":function(node, obj) { + var kmlColor = this.getChildValue(node); + if(kmlColor) { + var matches = kmlColor.match(this.regExes.kmlColor); + if(matches) { + obj.color = {color:"#" + matches[4] + matches[3] + matches[2], opacity:parseInt(matches[1], 16) / 255} + } + } + }, "width":function(node, obj) { + obj.width = this.getChildValue(node) + }}, "http://www.google.com/kml/ext/2.2":{"Track":function(node, container) { + container.track = {whens:[], points:[], angles:[]}; + if(this.trackAttributes) { + var name; + container.track.attributes = {}; + for(var i = 0, ii = this.trackAttributes.length;i < ii;++i) { + name = this.trackAttributes[i]; + container.track.attributes[name] = []; + var readers = this.readers[this.defaultNamespaceURI]; + if(!(name in readers)) { + readers[name] = readers["_trackPointAttribute"] + } + } + } + this.readChildNodes(node, container.track); + if(container.track.whens.length !== container.track.points.length) { + throw new Error("gx:Track with unequal number of when (" + container.track.whens.length + ") and gx:coord (" + container.track.points.length + ") elements."); + } + var hasAngles = container.track.angles.length > 0; + if(hasAngles && container.track.whens.length !== container.track.angles.length) { + throw new Error("gx:Track with unequal number of when (" + container.track.whens.length + ") and gx:angles (" + container.track.angles.length + ") elements."); + } + }, "coord":function(node, container) { + var str = this.getChildValue(node); + var coords = str.replace(this.regExes.trimSpace, "").split(/\s+/); + for(var i = 0, ii = this.dimension;i < ii;++i) { + coords[i] = parseFloat(coords[i]) + } + var point = {type:ol.geom.GeometryType.POINT, coordinates:coords}; + container.points.push(point) + }, "angles":function(node, container) { + var str = this.getChildValue(node); + var parts = str.replace(this.regExes.trimSpace, "").split(/\s+/); + container.angles.push(parts) + }}}; + this.writers = {"http://www.opengis.net/kml/2.2":{"kml":function(options) { + var node = this.createElementNS("kml"); + this.writeNode("Document", options, null, node); + return node + }, "Document":function(options) { + var node = this.createElementNS("Document"); + for(var key in options) { + if(options.hasOwnProperty(key) && goog.isString(options[key])) { + var child = this.createElementNS(key); + child.appendChild(this.createTextNode(options[key])); + node.appendChild(child) + } + } + var i, ii; + if(goog.isDef(options.styles)) { + for(i = 0, ii = options.styles.length;i < ii;++i) { + this.writeNode("_style", options.styles[i], null, node) + } + } + for(i = 0, ii = options.features.length;i < ii;++i) { + this.writeNode("_feature", options.features[i], null, node) + } + return node + }, "_style":function(style) { + var node = this.createElementNS("Style"); + if(goog.isDef(style.id)) { + this.setAttributeNS(node, null, "id", style.id) + } + for(var i = 0, ii = style.symbolizers.length;i < ii;++i) { + this.writeNode("_symbolizer", {symbolizer:style.symbolizers[i], id:style.ids ? style.ids[i] : undefined}, null, node) + } + return node + }, "_symbolizer":function(obj) { + var symbolizer = obj.symbolizer; + if(symbolizer instanceof ol.style.Icon) { + return this.writeNode("IconStyle", obj) + }else { + if(symbolizer instanceof ol.style.Stroke) { + return this.writeNode("LineStyle", obj) + }else { + if(symbolizer instanceof ol.style.Fill) { + return this.writeNode("PolyStyle", obj) + } + } + } + }, "PolyStyle":function(obj) { + var node = this.createElementNS("PolyStyle"); + if(obj.id) { + this.setAttributeNS(node, null, "id", obj.id) + } + var literal = obj.symbolizer.createLiteral(ol.geom.GeometryType.POLYGON); + var color, opacity; + if(literal.fillOpacity !== 0) { + this.writeNode("fill", "1", null, node); + color = literal.fillColor; + opacity = literal.fillOpacity + }else { + this.writeNode("fill", "0", null, node) + } + if(literal.strokeOpacity) { + this.writeNode("outline", "1", null, node); + color = color || literal.strokeColor; + opacity = opacity || literal.strokeOpacity + }else { + this.writeNode("outline", "0", null, node) + } + if(color && opacity) { + this.writeNode("color", {color:color.substring(1), opacity:opacity}, null, node) + } + return node + }, "fill":function(fill) { + var node = this.createElementNS("fill"); + node.appendChild(this.createTextNode(fill)); + return node + }, "outline":function(outline) { + var node = this.createElementNS("outline"); + node.appendChild(this.createTextNode(outline)); + return node + }, "LineStyle":function(obj) { + var node = this.createElementNS("LineStyle"); + if(obj.id) { + this.setAttributeNS(node, null, "id", obj.id) + } + var literal = obj.symbolizer.createLiteral(ol.geom.GeometryType.LINESTRING); + this.writeNode("color", {color:literal.color.substring(1), opacity:literal.opacity}, null, node); + this.writeNode("width", literal.width, null, node); + return node + }, "color":function(colorObj) { + var color = colorObj.color; + var text = (colorObj.opacity * 255).toString(16) + color.substring(4, 6) + color.substring(2, 4) + color.substring(0, 2); + var node = this.createElementNS("color"); + node.appendChild(this.createTextNode(text)); + return node + }, "width":function(width) { + var node = this.createElementNS("width"); + node.appendChild(this.createTextNode(width)); + return node + }, "IconStyle":function(obj) { + var node = this.createElementNS("IconStyle"); + this.setAttributeNS(node, null, "id", obj.id); + this.writeNode("Icon", obj.symbolizer.createLiteral(ol.geom.GeometryType.POINT).url, null, node); + return node + }, "Icon":function(url) { + var node = this.createElementNS("Icon"); + this.writeNode("href", url, null, node); + return node + }, "href":function(url) { + var node = this.createElementNS("href"); + node.appendChild(this.createTextNode(url)); + return node + }, "_feature":function(feature) { + var node = this.createElementNS("Placemark"); + var fid = feature.getFeatureId(); + if(goog.isDef(fid)) { + node.setAttribute("id", fid) + } + this.writeNode("name", feature, null, node); + this.writeNode("description", feature, null, node); + if(goog.isDef(feature.get("styleUrl"))) { + this.writeNode("styleUrl", feature, null, node) + }else { + var symbolizers = feature.getSymbolizers(); + if(!goog.isNull(symbolizers)) { + this.writeNode("_style", {symbolizers:symbolizers}, null, node) + } + } + this.writeNode("_geometry", feature.getGeometry(), null, node); + return node + }, "name":function(feature) { + var name = feature.get("name"); + if(goog.isDef(name)) { + var node = this.createElementNS("name"); + node.appendChild(this.createTextNode(name)); + return node + } + }, "description":function(feature) { + var description = feature.get("description"); + if(goog.isDef(description)) { + var node = this.createElementNS("description"); + node.appendChild(this.createTextNode(description)); + return node + } + }, "styleUrl":function(feature) { + var styleUrl = feature.get("styleUrl"); + var node = this.createElementNS("styleUrl"); + node.appendChild(this.createTextNode(styleUrl)); + return node + }, "_geometry":function(geometry) { + if(geometry instanceof ol.geom.Point) { + return this.writeNode("Point", geometry) + }else { + if(geometry instanceof ol.geom.LineString) { + return this.writeNode("LineString", geometry) + }else { + if(geometry instanceof ol.geom.Polygon) { + return this.writeNode("Polygon", geometry) + }else { + if(geometry instanceof ol.geom.AbstractCollection) { + return this.writeNode("MultiGeometry", geometry) + } + } + } + } + }, "MultiGeometry":function(geometry) { + var node = this.createElementNS("MultiGeometry"); + for(var i = 0, ii = geometry.components.length;i < ii;++i) { + this.writeNode("_geometry", geometry.components[i], null, node) + } + return node + }, "Point":function(geometry) { + var node = this.createElementNS("Point"); + var coords = geometry.getCoordinates(); + this.writeNode("coordinates", [coords], null, node); + return node + }, "LineString":function(geometry) { + var node = this.createElementNS("LineString"); + this.writeNode("coordinates", geometry.getCoordinates(), null, node); + return node + }, "Polygon":function(geometry) { + var node = this.createElementNS("Polygon"); + var coordinates = geometry.getCoordinates(); + this.writeNode("outerBoundaryIs", coordinates[0], null, node); + for(var i = 1, ii = coordinates.length;i < ii;++i) { + this.writeNode("innerBoundaryIs", coordinates[i], null, node) + } + return node + }, "outerBoundaryIs":function(vertexArray) { + var node = this.createElementNS("outerBoundaryIs"); + this.writeNode("LinearRing", vertexArray, null, node); + return node + }, "innerBoundaryIs":function(vertexArray) { + var node = this.createElementNS("innerBoundaryIs"); + this.writeNode("LinearRing", vertexArray, null, node); + return node + }, "LinearRing":function(vertexArray) { + var node = this.createElementNS("LinearRing"); + this.writeNode("coordinates", vertexArray, null, node); + return node + }, "coordinates":function(vertexArray) { + var node = this.createElementNS("coordinates"); + var coordstr = ""; + for(var i = 0, ii = vertexArray.length;i < ii;++i) { + for(var j = 0, jj = vertexArray[i].length;j < jj;++j) { + coordstr += vertexArray[i][j]; + if(j < jj - 1) { + coordstr += "," + } + } + if(i < ii - 1) { + coordstr += " " + } + } + node.appendChild(this.createTextNode(coordstr)); + return node + }}}; + goog.base(this); + goog.object.extend(this.regExes, {kmlColor:/(\w{2})(\w{2})(\w{2})(\w{2})/, kmlIconPalette:/root:\/\/icons\/palette-(\d+)(\.\w+)/, straightBracket:/\$\[(.*?)\]/g}) +}; +goog.inherits(ol.parser.KML, ol.parser.XML); +ol.parser.KML.prototype.readFeaturesFromObjectAsync = function(obj, callback, opt_options) { + this.readFeaturesOptions_ = opt_options; + this.read(obj, callback) +}; +ol.parser.KML.prototype.readFeaturesFromStringAsync = function(str, callback, opt_options) { + this.readFeaturesOptions_ = opt_options; + this.read(str, callback) +}; +ol.parser.KML.prototype.readFeaturesFromString = function(str, opt_options) { + this.readFeaturesOptions_ = opt_options; + return(this.read(str)) +}; +ol.parser.KML.prototype.readFeaturesFromNode = function(node, opt_options) { + this.readFeaturesOptions_ = opt_options; + return(this.read(node)) +}; +ol.parser.KML.prototype.readFeaturesFromObject = function(obj, opt_options) { + this.readFeaturesOptions_ = opt_options; + return(this.read(obj)) +}; +ol.parser.KML.prototype.parseLinks = function(deferreds, obj, done) { + var unvisited; + if(this.depth_ < this.maxDepth) { + this.depth_++; + for(var i = 0, ii = obj.links.length;i < ii;++i) { + var link = obj.links[i]; + if(link.visited !== true) { + unvisited = true; + var deferred = new goog.async.Deferred; + var xhr = new goog.net.XhrIo; + var me = this; + goog.events.listen(xhr, goog.net.EventType.COMPLETE, function(e) { + if(e.target.isSuccess()) { + var data = e.target.getResponseXml() || e.target.getResponseText(); + if(goog.isString(data)) { + data = goog.dom.xml.loadXml(data) + } + goog.dispose(e.target); + if(data) { + if(data.nodeType == 9) { + data = data.documentElement + } + me.readNode(data, obj) + } + me.parseLinks(deferreds, obj, done); + this.callback(data) + } + }, false, deferred); + deferreds.push(deferred); + xhr.send(link.href); + link.visited = true + } + } + } + if(unvisited !== true && this.callbackCalled_ !== true) { + done.call(this) + } +}; +ol.parser.KML.prototype.read = function(data, opt_callback) { + if(goog.isString(data)) { + data = goog.dom.xml.loadXml(data) + } + if(data && data.nodeType == 9) { + data = data.documentElement + } + var obj = ({metadata:{projection:"EPSG:4326"}}); + this.readNode(data, obj); + if(goog.isDef(opt_callback)) { + var deferreds = []; + this.depth_ = 0; + this.callbackCalled_ = false; + this.parseLinks(deferreds, obj, function() { + this.callbackCalled_ = true; + goog.async.DeferredList.gatherResults(deferreds).addCallbacks(function(datas) { + for(var i = 0, ii = obj.features.length;i < ii;++i) { + var feature = obj.features[i]; + this.applyStyle_(feature, obj["styles"]) + } + opt_callback.call(null, obj) + }, function() { + throw new Error("KML: parsing of NetworkLinks failed"); + }, this) + }) + }else { + return obj + } +}; +ol.parser.KML.prototype.applyStyle_ = function(feature, styles, opt_symbolizers) { + var symbolizers = opt_symbolizers; + var i, ii; + if(feature.get("styleUrl") && feature.getSymbolizers() === null) { + var styleUrl = feature.get("styleUrl"); + styleUrl = styleUrl.substring(styleUrl.indexOf("#") + 1); + if(goog.isDef(styles)) { + for(i = 0, ii = styles.length;i < ii;++i) { + if(styles[i]["id"] === styleUrl) { + symbolizers = styles[i]["symbolizers"]; + break + } + } + } + } + if(goog.isDef(symbolizers)) { + feature.setSymbolizers(symbolizers) + } +}; +ol.parser.KML.prototype.createGeometry_ = function(container, opt_vertices) { + var geometry = null, coordinates, i, ii; + switch(container.geometry.type) { + case ol.geom.GeometryType.POINT: + geometry = new ol.geom.Point(container.geometry.coordinates, opt_vertices); + break; + case ol.geom.GeometryType.LINESTRING: + geometry = new ol.geom.LineString(container.geometry.coordinates, opt_vertices); + break; + case ol.geom.GeometryType.POLYGON: + geometry = new ol.geom.Polygon(container.geometry.coordinates, opt_vertices); + break; + case ol.geom.GeometryType.MULTIPOINT: + coordinates = []; + for(i = 0, ii = container.geometry.parts.length;i < ii;i++) { + coordinates.push(container.geometry.parts[i].coordinates) + } + geometry = new ol.geom.MultiPoint(coordinates, opt_vertices); + break; + case ol.geom.GeometryType.MULTILINESTRING: + coordinates = []; + for(i = 0, ii = container.geometry.parts.length;i < ii;i++) { + coordinates.push(container.geometry.parts[i].coordinates) + } + geometry = new ol.geom.MultiLineString(coordinates, opt_vertices); + break; + case ol.geom.GeometryType.MULTIPOLYGON: + coordinates = []; + for(i = 0, ii = container.geometry.parts.length;i < ii;i++) { + coordinates.push(container.geometry.parts[i].coordinates) + } + geometry = new ol.geom.MultiPolygon(coordinates, opt_vertices); + break; + case ol.geom.GeometryType.GEOMETRYCOLLECTION: + var geometries = []; + for(i = 0, ii = container.geometry.parts.length;i < ii;i++) { + geometries.push(this.createGeometry_({geometry:container.geometry.parts[i]}, opt_vertices)) + } + geometry = new ol.geom.GeometryCollection(geometries); + break; + default: + break + } + return geometry +}; +ol.parser.KML.prototype.write = function(obj) { + var root = this.writeNode("kml", obj); + this.setAttributeNS(root, "http://www.w3.org/2001/XMLSchema-instance", "xsi:schemaLocation", this.schemaLocation); + return this.serialize(root) +}; +goog.provide("ol.parser.TopoJSON"); +goog.require("ol.Coordinate"); +goog.require("ol.CoordinateArray"); +goog.require("ol.Feature"); +goog.require("ol.geom.GeometryType"); +goog.require("ol.geom.LineString"); +goog.require("ol.geom.MultiLineString"); +goog.require("ol.geom.MultiPoint"); +goog.require("ol.geom.MultiPolygon"); +goog.require("ol.geom.Point"); +goog.require("ol.geom.Polygon"); +goog.require("ol.parser.Parser"); +goog.require("ol.parser.ReadFeaturesOptions"); +goog.require("ol.parser.StringFeatureParser"); +ol.parser.TopoJSON = function() { + this.feature_ = new ol.Feature +}; +goog.inherits(ol.parser.TopoJSON, ol.parser.Parser); +goog.addSingletonGetter(ol.parser.TopoJSON); +ol.parser.TopoJSON.prototype.concatenateArcs_ = function(indices, arcs) { + var coordinates = []; + var index, arc; + for(var i = 0, ii = indices.length;i < ii;++i) { + index = indices[i]; + if(i > 0) { + coordinates.pop() + } + if(index >= 0) { + arc = arcs[index] + }else { + arc = arcs[~index].slice().reverse() + } + coordinates.push.apply(coordinates, arc) + } + return coordinates +}; +ol.parser.TopoJSON.prototype.read = function(str) { + var topology = (JSON.parse(str)); + return this.readFeaturesFromObject(topology).features +}; +ol.parser.TopoJSON.prototype.readFeaturesFromString = function(str, opt_options) { + var topology = (JSON.parse(str)); + if(topology.type !== "Topology") { + throw new Error('Not a "Topology" type object'); + } + return{features:this.readFeaturesFromTopology_(topology, opt_options), metadata:{projection:"EPSG:4326"}} +}; +ol.parser.TopoJSON.prototype.readFeaturesFromObject = function(topology, opt_options) { + if(topology.type !== "Topology") { + throw new Error('Not a "Topology" type object'); + } + return{features:this.readFeaturesFromTopology_(topology, opt_options), metadata:{projection:"EPSG:4326"}} +}; +ol.parser.TopoJSON.prototype.readFeatureFromGeometry_ = function(object, arcs, scale, translate, opt_options) { + var geometry; + var type = object.type; + if(type === "Point") { + geometry = this.readPoint_((object), scale, translate, opt_options) + }else { + if(type === "LineString") { + geometry = this.readLineString_((object), arcs, opt_options) + }else { + if(type === "Polygon") { + geometry = this.readPolygon_((object), arcs, opt_options) + }else { + if(type === "MultiPoint") { + geometry = this.readMultiPoint_((object), scale, translate, opt_options) + }else { + if(type === "MultiLineString") { + geometry = this.readMultiLineString_((object), arcs, opt_options) + }else { + if(type === "MultiPolygon") { + geometry = this.readMultiPolygon_((object), arcs, opt_options) + }else { + throw new Error("Unsupported geometry type: " + type); + } + } + } + } + } + } + var feature = new ol.Feature; + feature.setGeometry(geometry); + if(goog.isDef(object.id)) { + feature.setFeatureId(String(object.id)) + } + return feature +}; +ol.parser.TopoJSON.prototype.readFeaturesFromGeometryCollection_ = function(collection, arcs, scale, translate, opt_options) { + var geometries = collection.geometries; + var num = geometries.length; + var features = new Array(num); + for(var i = 0;i < num;++i) { + features[i] = this.readFeatureFromGeometry_(geometries[i], arcs, scale, translate, opt_options) + } + return features +}; +ol.parser.TopoJSON.prototype.readFeaturesFromTopology_ = function(topology, opt_options) { + var transform = topology.transform; + var scale = transform.scale; + var translate = transform.translate; + var arcs = topology.arcs; + this.transformArcs_(arcs, scale, translate); + var objects = topology.objects; + var features = []; + for(var key in objects) { + if(objects[key].type === "GeometryCollection") { + features.push.apply(features, this.readFeaturesFromGeometryCollection_((objects[key]), arcs, scale, translate, opt_options)) + }else { + features.push(this.readFeatureFromGeometry_((objects[key]), arcs, scale, translate, opt_options)) + } + } + return features +}; +ol.parser.TopoJSON.prototype.readLineString_ = function(object, arcs, opt_options) { + var coordinates = this.concatenateArcs_(object.arcs, arcs); + var callback = opt_options && opt_options.callback; + var sharedVertices; + if(callback) { + sharedVertices = callback(this.feature_, ol.geom.GeometryType.LINESTRING) + } + return new ol.geom.LineString(coordinates, sharedVertices) +}; +ol.parser.TopoJSON.prototype.readMultiLineString_ = function(object, arcs, opt_options) { + var array = object.arcs; + var num = array.length; + var coordinates = new Array(num); + for(var i = 0;i < num;++i) { + coordinates[i] = this.concatenateArcs_(array[i], arcs) + } + var callback = opt_options && opt_options.callback; + var sharedVertices; + if(callback) { + sharedVertices = callback(this.feature_, ol.geom.GeometryType.MULTILINESTRING) + } + return new ol.geom.MultiLineString(coordinates, sharedVertices) +}; +ol.parser.TopoJSON.prototype.readMultiPoint_ = function(object, scale, translate, opt_options) { + var coordinates = object.coordinates; + for(var i = 0, ii = coordinates.length;i < ii;++i) { + this.transformVertex_(coordinates[i], scale, translate) + } + var callback = opt_options && opt_options.callback; + var sharedVertices; + if(callback) { + sharedVertices = callback(this.feature_, ol.geom.GeometryType.MULTIPOINT) + } + return new ol.geom.MultiPoint(coordinates, sharedVertices) +}; +ol.parser.TopoJSON.prototype.readMultiPolygon_ = function(object, arcs, opt_options) { + var array = object.arcs; + var numPolys = array.length; + var coordinates = new Array(numPolys); + var polyArray, numRings, ringCoords, j; + for(var i = 0;i < numPolys;++i) { + polyArray = array[i]; + numRings = polyArray.length; + ringCoords = new Array(numRings); + for(j = 0;j < numRings;++j) { + ringCoords[j] = this.concatenateArcs_(polyArray[j], arcs) + } + coordinates[i] = ringCoords + } + var callback = opt_options && opt_options.callback; + var sharedVertices; + if(callback) { + sharedVertices = callback(this.feature_, ol.geom.GeometryType.MULTIPOLYGON) + } + return new ol.geom.MultiPolygon(coordinates, sharedVertices) +}; +ol.parser.TopoJSON.prototype.readPoint_ = function(object, scale, translate, opt_options) { + var coordinates = object.coordinates; + this.transformVertex_(coordinates, scale, translate); + var callback = opt_options && opt_options.callback; + var sharedVertices; + if(callback) { + sharedVertices = callback(this.feature_, ol.geom.GeometryType.POINT) + } + return new ol.geom.Point(coordinates, sharedVertices) +}; +ol.parser.TopoJSON.prototype.readPolygon_ = function(object, arcs, opt_options) { + var array = object.arcs; + var num = array.length; + var coordinates = new Array(num); + for(var i = 0;i < num;++i) { + coordinates[i] = this.concatenateArcs_(array[i], arcs) + } + var callback = opt_options && opt_options.callback; + var sharedVertices; + if(callback) { + sharedVertices = callback(this.feature_, ol.geom.GeometryType.POLYGON) + } + return new ol.geom.Polygon(coordinates, sharedVertices) +}; +ol.parser.TopoJSON.prototype.transformArcs_ = function(arcs, scale, translate) { + for(var i = 0, ii = arcs.length;i < ii;++i) { + this.transformArc_(arcs[i], scale, translate) + } +}; +ol.parser.TopoJSON.prototype.transformArc_ = function(arc, scale, translate) { + var x = 0; + var y = 0; + var vertex; + for(var i = 0, ii = arc.length;i < ii;++i) { + vertex = arc[i]; + x += vertex[0]; + y += vertex[1]; + vertex[0] = x; + vertex[1] = y; + this.transformVertex_(vertex, scale, translate) + } +}; +ol.parser.TopoJSON.prototype.transformVertex_ = function(vertex, scale, translate) { + vertex[0] = vertex[0] * scale[0] + translate[0]; + vertex[1] = vertex[1] * scale[1] + translate[1] +}; +ol.parser.TopoJSON.read = function(str) { + return ol.parser.TopoJSON.getInstance().read(str) +}; +goog.provide("ol.parser.WKT"); +goog.require("goog.array"); +goog.require("goog.string"); +goog.require("ol.geom.Geometry"); +goog.require("ol.geom.GeometryCollection"); +goog.require("ol.geom.LineString"); +goog.require("ol.geom.MultiLineString"); +goog.require("ol.geom.MultiPoint"); +goog.require("ol.geom.MultiPolygon"); +goog.require("ol.geom.Point"); +goog.require("ol.geom.Polygon"); +goog.require("ol.parser.Parser"); +ol.parser.WKT = function() { +}; +goog.inherits(ol.parser.WKT, ol.parser.Parser); +goog.addSingletonGetter(ol.parser.WKT); +ol.parser.WKT.regExes = {typeStr:/^\s*(\w+)\s*\(\s*(.*)\s*\)\s*$/, spaces:/\s+/, parenComma:/\)\s*,\s*\(/, doubleParenComma:/\)\s*\)\s*,\s*\(\s*\(/, trimParens:/^\s*\(?(.*?)\)?\s*$/, geomCollection:/,\s*([A-Za-z])/g, removeNewLine:/[\n\r]/g}; +ol.parser.WKT.prototype.parsePoint_ = function(str) { + var coords = goog.string.trim(str).split(ol.parser.WKT.regExes.spaces); + return new ol.geom.Point(goog.array.map(coords, parseFloat)) +}; +ol.parser.WKT.prototype.parseLineString_ = function(str) { + var points = goog.string.trim(str).split(","); + var coordinates = []; + for(var i = 0, ii = points.length;i < ii;++i) { + coordinates.push(this.parsePoint_.apply(this, [points[i]]).getCoordinates()) + } + return new ol.geom.LineString(coordinates) +}; +ol.parser.WKT.prototype.parseMultiPoint_ = function(str) { + var point; + var points = goog.string.trim(str).split(","); + var parts = []; + for(var i = 0, ii = points.length;i < ii;++i) { + point = points[i].replace(ol.parser.WKT.regExes.trimParens, "$1"); + parts.push(this.parsePoint_.apply(this, [point])) + } + return ol.geom.MultiPoint.fromParts(parts) +}; +ol.parser.WKT.prototype.parseMultiLineString_ = function(str) { + var line; + var lines = goog.string.trim(str).split(ol.parser.WKT.regExes.parenComma); + var parts = []; + for(var i = 0, ii = lines.length;i < ii;++i) { + line = lines[i].replace(ol.parser.WKT.regExes.trimParens, "$1"); + parts.push(this.parseLineString_.apply(this, [line])) + } + return ol.geom.MultiLineString.fromParts(parts) +}; +ol.parser.WKT.prototype.parsePolygon_ = function(str) { + var ring, linestring, linearring; + var rings = goog.string.trim(str).split(ol.parser.WKT.regExes.parenComma); + var coordinates = []; + for(var i = 0, ii = rings.length;i < ii;++i) { + ring = rings[i].replace(ol.parser.WKT.regExes.trimParens, "$1"); + linestring = this.parseLineString_.apply(this, [ring]).getCoordinates(); + coordinates.push(linestring) + } + return new ol.geom.Polygon(coordinates) +}; +ol.parser.WKT.prototype.parseMultiPolygon_ = function(str) { + var polygon; + var polygons = goog.string.trim(str).split(ol.parser.WKT.regExes.doubleParenComma); + var parts = []; + for(var i = 0, ii = polygons.length;i < ii;++i) { + polygon = polygons[i].replace(ol.parser.WKT.regExes.trimParens, "$1"); + parts.push(this.parsePolygon_.apply(this, [polygon])) + } + return ol.geom.MultiPolygon.fromParts(parts) +}; +ol.parser.WKT.prototype.parseGeometryCollection_ = function(str) { + str = str.replace(ol.parser.WKT.regExes.geomCollection, "|$1"); + var wktArray = goog.string.trim(str).split("|"); + var components = []; + for(var i = 0, ii = wktArray.length;i < ii;++i) { + components.push(this.parse_.apply(this, [wktArray[i]])) + } + return new ol.geom.GeometryCollection(components) +}; +ol.parser.WKT.prototype.encodePoint_ = function(geom) { + var coordinates = geom.getCoordinates(); + return coordinates[0] + " " + coordinates[1] +}; +ol.parser.WKT.prototype.encodeMultiPoint_ = function(geom) { + var array = []; + for(var i = 0, ii = geom.components.length;i < ii;++i) { + array.push("(" + this.encodePoint_.apply(this, [geom.components[i]]) + ")") + } + return array.join(",") +}; +ol.parser.WKT.prototype.encodeGeometryCollection_ = function(geom) { + var array = []; + for(var i = 0, ii = geom.components.length;i < ii;++i) { + array.push(this.encode_.apply(this, [geom.components[i]])) + } + return array.join(",") +}; +ol.parser.WKT.prototype.encodeLineString_ = function(geom) { + var coordinates = geom.getCoordinates(); + var array = []; + for(var i = 0, ii = coordinates.length;i < ii;++i) { + array.push(coordinates[i][0] + " " + coordinates[i][1]) + } + return array.join(",") +}; +ol.parser.WKT.prototype.encodeMultiLineString_ = function(geom) { + var array = []; + for(var i = 0, ii = geom.components.length;i < ii;++i) { + array.push("(" + this.encodeLineString_.apply(this, [geom.components[i]]) + ")") + } + return array.join(",") +}; +ol.parser.WKT.prototype.encodePolygon_ = function(geom) { + var array = []; + for(var i = 0, ii = geom.rings.length;i < ii;++i) { + array.push("(" + this.encodeLineString_.apply(this, [geom.rings[i]]) + ")") + } + return array.join(",") +}; +ol.parser.WKT.prototype.encodeMultiPolygon_ = function(geom) { + var array = []; + for(var i = 0, ii = geom.components.length;i < ii;++i) { + array.push("(" + this.encodePolygon_.apply(this, [geom.components[i]]) + ")") + } + return array.join(",") +}; +ol.parser.WKT.prototype.parse_ = function(wkt) { + wkt = wkt.replace(ol.parser.WKT.regExes.removeNewLine, " "); + var matches = ol.parser.WKT.regExes.typeStr.exec(wkt); + var geometry; + if(matches) { + var type = matches[1].toLowerCase(); + var str = matches[2]; + switch(type) { + case "point": + geometry = this.parsePoint_(str); + break; + case "multipoint": + geometry = this.parseMultiPoint_(str); + break; + case "linestring": + geometry = this.parseLineString_(str); + break; + case "multilinestring": + geometry = this.parseMultiLineString_(str); + break; + case "polygon": + geometry = this.parsePolygon_(str); + break; + case "multipolygon": + geometry = this.parseMultiPolygon_(str); + break; + case "geometrycollection": + geometry = this.parseGeometryCollection_(str); + break; + default: + throw new Error("Bad geometry type: " + type); + } + } + return geometry +}; +ol.parser.WKT.prototype.encode_ = function(geom) { + var type = geom.getType(); + var result = type.toUpperCase() + "("; + if(geom instanceof ol.geom.Point) { + result += this.encodePoint_(geom) + }else { + if(geom instanceof ol.geom.MultiPoint) { + result += this.encodeMultiPoint_(geom) + }else { + if(geom instanceof ol.geom.LineString) { + result += this.encodeLineString_(geom) + }else { + if(geom instanceof ol.geom.MultiLineString) { + result += this.encodeMultiLineString_(geom) + }else { + if(geom instanceof ol.geom.Polygon) { + result += this.encodePolygon_(geom) + }else { + if(geom instanceof ol.geom.MultiPolygon) { + result += this.encodeMultiPolygon_(geom) + }else { + if(geom instanceof ol.geom.GeometryCollection) { + result += this.encodeGeometryCollection_(geom) + }else { + throw new Error("Bad geometry type: " + type); + } + } + } + } + } + } + } + return result + ")" +}; +ol.parser.WKT.prototype.read = function(str) { + return this.parse_(str) +}; +ol.parser.WKT.prototype.write = function(geom) { + return this.encode_(geom) +}; +ol.parser.WKT.read = function(str) { + return ol.parser.WKT.getInstance().read(str) +}; +ol.parser.WKT.write = function(geom) { + return ol.parser.WKT.getInstance().write(geom) +}; +goog.provide("ol.parser.ogc.ExceptionReport"); +goog.require("goog.dom.xml"); +goog.require("ol.parser.XML"); +ol.parser.ogc.ExceptionReport = function() { + var exceptionReader = function(node, exceptionReport) { + var exception = {code:node.getAttribute("exceptionCode"), locator:node.getAttribute("locator"), texts:[]}; + exceptionReport.exceptions.push(exception); + this.readChildNodes(node, exception) + }; + var exceptionTextReader = function(node, exception) { + var text = this.getChildValue(node); + exception.texts.push(text) + }; + this.readers = {"http://www.opengis.net/ogc":{"ServiceExceptionReport":function(node, obj) { + obj["exceptionReport"] = {}; + obj["exceptionReport"]["exceptions"] = []; + this.readChildNodes(node, obj["exceptionReport"]) + }, "ServiceException":function(node, exceptionReport) { + var exception = {}; + exception["code"] = node.getAttribute("code"); + exception["locator"] = node.getAttribute("locator"); + exception["text"] = this.getChildValue(node); + exceptionReport["exceptions"].push(exception) + }}, "http://www.opengis.net/ows":{"ExceptionReport":function(node, obj) { + obj.success = false; + obj.exceptionReport = {version:node.getAttribute("version"), language:node.getAttribute("language"), exceptions:[]}; + this.readChildNodes(node, obj.exceptionReport) + }, "Exception":function(node, exceptionReport) { + exceptionReader.apply(this, arguments) + }, "ExceptionText":function(node, exception) { + exceptionTextReader.apply(this, arguments) + }}, "http://www.opengis.net/ows/1.1":{"ExceptionReport":function(node, obj) { + obj.exceptionReport = {version:node.getAttribute("version"), language:node.getAttribute("xml:lang"), exceptions:[]}; + this.readChildNodes(node, obj.exceptionReport) + }, "Exception":function(node, exceptionReport) { + exceptionReader.apply(this, arguments) + }, "ExceptionText":function(node, exception) { + exceptionTextReader.apply(this, arguments) + }}}; + goog.base(this) +}; +goog.inherits(ol.parser.ogc.ExceptionReport, ol.parser.XML); +ol.parser.ogc.ExceptionReport.prototype.read = function(data) { + if(goog.isString(data)) { + data = goog.dom.xml.loadXml(data) + } + var exceptionInfo = {}; + exceptionInfo["exceptionReport"] = null; + if(data) { + this.readChildNodes(data, exceptionInfo) + } + return exceptionInfo +}; +goog.provide("ol.parser.ogc.Filter_v1"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.require("goog.dom.xml"); +goog.require("goog.object"); +goog.require("goog.string"); +goog.require("ol.expr"); +goog.require("ol.expr.Call"); +goog.require("ol.expr.Comparison"); +goog.require("ol.expr.ComparisonOp"); +goog.require("ol.expr.Identifier"); +goog.require("ol.expr.Literal"); +goog.require("ol.expr.Logical"); +goog.require("ol.expr.LogicalOp"); +goog.require("ol.expr.Not"); +goog.require("ol.expr.functions"); +goog.require("ol.parser.XML"); +ol.parser.ogc.Filter_v1 = function() { + this.defaultNamespaceURI = "http://www.opengis.net/ogc"; + this.errorProperty = "filter"; + this.readers = {"http://www.opengis.net/ogc":{_expression:function(node) { + var expressions = []; + var obj, value, numValue, expr; + for(var child = node.firstChild;child;child = child.nextSibling) { + switch(child.nodeType) { + case 1: + obj = this.readNode(child); + if(obj.property) { + expressions.push(obj.property) + }else { + if(goog.isDef(obj.value)) { + expressions.push(obj.value) + } + } + break; + case 3: + ; + case 4: + value = goog.string.trim(child.nodeValue); + if(value) { + numValue = goog.string.toNumber(value); + if(!isNaN(numValue)) { + value = numValue + } + expressions.push(new ol.expr.Literal(value)) + } + break; + default: + break + } + } + var num = expressions.length; + if(num === 1) { + expr = expressions[0] + }else { + expr = new ol.expr.Call(new ol.expr.Identifier(ol.expr.functions.CONCAT), expressions) + } + return expr + }, "Filter":function(node, obj) { + var container = {filters:[]}; + this.readChildNodes(node, container); + if(goog.isDef(container.fids)) { + obj.filter = new ol.expr.Call(new ol.expr.Identifier(ol.expr.functions.FID), goog.object.getValues(container.fids)) + }else { + if(container.filters.length > 0) { + obj.filter = container.filters[0] + } + } + }, "FeatureId":function(node, obj) { + var fid = node.getAttribute("fid"); + if(fid) { + if(!goog.isDef(obj.fids)) { + obj.fids = {} + } + if(!obj.fids.hasOwnProperty(fid)) { + obj.fids[fid] = new ol.expr.Literal(fid) + } + } + }, "And":function(node, obj) { + var container = {filters:[]}; + this.readChildNodes(node, container); + var filter = this.aggregateLogical_(container.filters, ol.expr.LogicalOp.AND); + obj.filters.push(filter) + }, "Or":function(node, obj) { + var container = {filters:[]}; + this.readChildNodes(node, container); + var filter = this.aggregateLogical_(container.filters, ol.expr.LogicalOp.OR); + obj.filters.push(filter) + }, "Not":function(node, obj) { + var container = {filters:[]}; + this.readChildNodes(node, container); + obj.filters.push(new ol.expr.Not(container.filters[0])) + }, "PropertyIsNull":function(node, obj) { + var container = {}; + this.readChildNodes(node, container); + obj.filters.push(new ol.expr.Comparison(ol.expr.ComparisonOp.EQ, container.property, new ol.expr.Literal(null))) + }, "PropertyIsLessThan":function(node, obj) { + var container = {}; + this.readChildNodes(node, container); + obj.filters.push(new ol.expr.Comparison(ol.expr.ComparisonOp.LT, container.property, container.value)) + }, "PropertyIsGreaterThan":function(node, obj) { + var container = {}; + this.readChildNodes(node, container); + obj.filters.push(new ol.expr.Comparison(ol.expr.ComparisonOp.GT, container.property, container.value)) + }, "PropertyIsLessThanOrEqualTo":function(node, obj) { + var container = {}; + this.readChildNodes(node, container); + obj.filters.push(new ol.expr.Comparison(ol.expr.ComparisonOp.LTE, container.property, container.value)) + }, "PropertyIsGreaterThanOrEqualTo":function(node, obj) { + var container = {}; + this.readChildNodes(node, container); + obj.filters.push(new ol.expr.Comparison(ol.expr.ComparisonOp.GTE, container.property, container.value)) + }, "PropertyIsBetween":function(node, obj) { + var container = {}; + this.readChildNodes(node, container); + obj.filters.push(new ol.expr.Logical(ol.expr.LogicalOp.AND, new ol.expr.Comparison(ol.expr.ComparisonOp.GTE, container.property, container.lowerBoundary), new ol.expr.Comparison(ol.expr.ComparisonOp.LTE, container.property, container.upperBoundary))) + }, "Literal":function(node, obj) { + var nodeValue = this.getChildValue(node); + var value = goog.string.toNumber(nodeValue); + obj.value = new ol.expr.Literal(isNaN(value) ? nodeValue : value) + }, "PropertyName":function(node, obj) { + obj.property = new ol.expr.Identifier(this.getChildValue(node)) + }, "LowerBoundary":function(node, obj) { + var readers = this.readers[this.defaultNamespaceURI]; + obj.lowerBoundary = readers._expression.call(this, node) + }, "UpperBoundary":function(node, obj) { + var readers = this.readers[this.defaultNamespaceURI]; + obj.upperBoundary = readers._expression.call(this, node) + }, _spatial:function(node, obj, identifier) { + var args = [], container = {}; + this.readChildNodes(node, container); + if(goog.isDef(container.geometry)) { + args.push(new ol.expr.Literal(this.gml_.createGeometry(container))) + }else { + args = [new ol.expr.Literal(container.bounds[0]), new ol.expr.Literal(container.bounds[1]), new ol.expr.Literal(container.bounds[2]), new ol.expr.Literal(container.bounds[3])] + } + if(goog.isDef(container.distance)) { + args.push(container.distance) + } + if(goog.isDef(container.distanceUnits)) { + args.push(container.distanceUnits) + } + args.push(new ol.expr.Literal(container.projection)); + if(goog.isDef(container.property)) { + args.push(container.property) + } + obj.filters.push(new ol.expr.Call(new ol.expr.Identifier(identifier), args)) + }, "BBOX":function(node, obj) { + var readers = this.readers[this.defaultNamespaceURI]; + readers._spatial.call(this, node, obj, ol.expr.functions.EXTENT) + }, "Intersects":function(node, obj) { + var readers = this.readers[this.defaultNamespaceURI]; + readers._spatial.call(this, node, obj, ol.expr.functions.INTERSECTS) + }, "Within":function(node, obj) { + var readers = this.readers[this.defaultNamespaceURI]; + readers._spatial.call(this, node, obj, ol.expr.functions.WITHIN) + }, "Contains":function(node, obj) { + var readers = this.readers[this.defaultNamespaceURI]; + readers._spatial.call(this, node, obj, ol.expr.functions.CONTAINS) + }, "DWithin":function(node, obj) { + var readers = this.readers[this.defaultNamespaceURI]; + readers._spatial.call(this, node, obj, ol.expr.functions.DWITHIN) + }, "Distance":function(node, obj) { + var value = goog.string.toNumber(this.getChildValue(node)); + obj.distance = new ol.expr.Literal(value); + obj.distanceUnits = new ol.expr.Literal(node.getAttribute("units")) + }}}; + this.writers = {"http://www.opengis.net/ogc":{"Filter":function(filter) { + var node = this.createElementNS("ogc:Filter"); + this.writeNode(this.getFilterType_(filter), filter, null, node); + return node + }, "_featureIds":function(filter) { + var node = this.createDocumentFragment(); + var args = filter.getArgs(); + for(var i = 0, ii = args.length;i < ii;i++) { + goog.asserts.assert(args[i] instanceof ol.expr.Literal); + this.writeNode("FeatureId", args[i].getValue(), null, node) + } + return node + }, "FeatureId":function(fid) { + var node = this.createElementNS("ogc:FeatureId"); + node.setAttribute("fid", fid); + return node + }, "And":function(filter) { + var node = this.createElementNS("ogc:And"); + var subFilters = []; + this.getSubfiltersForLogical_(filter, subFilters); + for(var i = 0, ii = subFilters.length;i < ii;++i) { + var subFilter = subFilters[i]; + if(goog.isDefAndNotNull(subFilter)) { + this.writeNode(this.getFilterType_(subFilter), subFilter, null, node) + } + } + return node + }, "Or":function(filter) { + var node = this.createElementNS("ogc:Or"); + var subFilters = []; + this.getSubfiltersForLogical_(filter, subFilters); + for(var i = 0, ii = subFilters.length;i < ii;++i) { + var subFilter = subFilters[i]; + if(goog.isDefAndNotNull(subFilter)) { + this.writeNode(this.getFilterType_(subFilter), subFilter, null, node) + } + } + return node + }, "Not":function(filter) { + var node = this.createElementNS("ogc:Not"); + var childFilter = filter.getArgument(); + this.writeNode(this.getFilterType_(childFilter), childFilter, null, node); + return node + }, "PropertyIsLessThan":function(filter) { + var node = this.createElementNS("ogc:PropertyIsLessThan"); + this.writeNode("PropertyName", filter.getLeft(), null, node); + this.writeOgcExpression(filter.getRight(), node); + return node + }, "PropertyIsGreaterThan":function(filter) { + var node = this.createElementNS("ogc:PropertyIsGreaterThan"); + this.writeNode("PropertyName", filter.getLeft(), null, node); + this.writeOgcExpression(filter.getRight(), node); + return node + }, "PropertyIsLessThanOrEqualTo":function(filter) { + var node = this.createElementNS("ogc:PropertyIsLessThanOrEqualTo"); + this.writeNode("PropertyName", filter.getLeft(), null, node); + this.writeOgcExpression(filter.getRight(), node); + return node + }, "PropertyIsGreaterThanOrEqualTo":function(filter) { + var node = this.createElementNS("ogc:PropertyIsGreaterThanOrEqualTo"); + this.writeNode("PropertyName", filter.getLeft(), null, node); + this.writeOgcExpression(filter.getRight(), node); + return node + }, "PropertyIsBetween":function(filter) { + var node = this.createElementNS("ogc:PropertyIsBetween"); + var property = filter.getLeft().getLeft(); + this.writeNode("PropertyName", property, null, node); + var lower, upper; + var filters = new Array(2); + filters[0] = filter.getLeft(); + filters[1] = filter.getRight(); + for(var i = 0;i < 2;++i) { + var expr = filters[i].getRight(); + if(filters[i].getOperator() === ol.expr.ComparisonOp.GTE) { + lower = expr + }else { + if(filters[i].getOperator() === ol.expr.ComparisonOp.LTE) { + upper = expr + } + } + } + this.writeNode("LowerBoundary", lower, null, node); + this.writeNode("UpperBoundary", upper, null, node); + return node + }, "PropertyName":function(expr) { + goog.asserts.assert(expr instanceof ol.expr.Identifier); + var node = this.createElementNS("ogc:PropertyName"); + node.appendChild(this.createTextNode(expr.getName())); + return node + }, "Literal":function(expr) { + goog.asserts.assert(expr instanceof ol.expr.Literal); + var node = this.createElementNS("ogc:Literal"); + node.appendChild(this.createTextNode(expr.getValue())); + return node + }, "LowerBoundary":function(expr) { + var node = this.createElementNS("ogc:LowerBoundary"); + this.writeOgcExpression(expr, node); + return node + }, "UpperBoundary":function(expr) { + var node = this.createElementNS("ogc:UpperBoundary"); + this.writeOgcExpression(expr, node); + return node + }, "INTERSECTS":function(filter) { + return this.writeSpatial_(filter, "Intersects") + }, "WITHIN":function(filter) { + return this.writeSpatial_(filter, "Within") + }, "CONTAINS":function(filter) { + return this.writeSpatial_(filter, "Contains") + }, "DWITHIN":function(filter) { + var node = this.writeSpatial_(filter, "DWithin"); + this.writeNode("Distance", filter, null, node); + return node + }, "Distance":function(filter) { + var node = this.createElementNS("ogc:Distance"); + var args = filter.getArgs(); + goog.asserts.assert(args[2] instanceof ol.expr.Literal); + node.setAttribute("units", args[2].getValue()); + goog.asserts.assert(args[1] instanceof ol.expr.Literal); + node.appendChild(this.createTextNode(args[1].getValue())); + return node + }, "Function":function(filter) { + var node = this.createElementNS("ogc:Function"); + node.setAttribute("name", filter.getCallee().getName()); + var params = filter.getArgs(); + for(var i = 0, len = params.length;i < len;i++) { + this.writeOgcExpression(params[i], node) + } + return node + }, "PropertyIsNull":function(filter) { + var node = this.createElementNS("ogc:PropertyIsNull"); + this.writeNode("PropertyName", filter.getLeft(), null, node); + return node + }}}; + goog.base(this) +}; +goog.inherits(ol.parser.ogc.Filter_v1, ol.parser.XML); +ol.parser.ogc.Filter_v1.filterMap_ = {"\x26\x26":"And", "||":"Or", "!":"Not", "\x3d\x3d":"PropertyIsEqualTo", "!\x3d":"PropertyIsNotEqualTo", "\x3c":"PropertyIsLessThan", "\x3e":"PropertyIsGreaterThan", "\x3c\x3d":"PropertyIsLessThanOrEqualTo", "\x3e\x3d":"PropertyIsGreaterThanOrEqualTo", "..":"PropertyIsBetween", "like":"PropertyIsLike", "null":"PropertyIsNull", "extent":"BBOX", "dwithin":"DWITHIN", "within":"WITHIN", "contains":"CONTAINS", "intersects":"INTERSECTS", "fid":"_featureIds", "ieq":"PropertyIsEqualTo", +"ineq":"PropertyIsNotEqualTo"}; +ol.parser.ogc.Filter_v1.prototype.getFilterType_ = function(filter) { + var type; + if(filter instanceof ol.expr.Logical || filter instanceof ol.expr.Comparison) { + type = filter.getOperator(); + var left = filter.getLeft(); + var right = filter.getRight(); + var isNull = type === ol.expr.ComparisonOp.EQ && right instanceof ol.expr.Literal && right.getValue() === null; + if(isNull) { + type = "null" + } + var isBetween = type === ol.expr.LogicalOp.AND && left instanceof ol.expr.Comparison && right instanceof ol.expr.Comparison && left.getLeft() instanceof ol.expr.Identifier && right.getLeft() instanceof ol.expr.Identifier && left.getLeft().getName() === right.getLeft().getName() && (left.getOperator() === ol.expr.ComparisonOp.LTE || left.getOperator() === ol.expr.ComparisonOp.GTE) && (right.getOperator() === ol.expr.ComparisonOp.LTE || right.getOperator() === ol.expr.ComparisonOp.GTE); + if(isBetween) { + type = ".." + } + }else { + if(filter instanceof ol.expr.Call) { + var callee = filter.getCallee(); + goog.asserts.assert(callee instanceof ol.expr.Identifier); + type = callee.getName() + }else { + if(filter instanceof ol.expr.Not) { + type = "!" + } + } + } + var filterType = ol.parser.ogc.Filter_v1.filterMap_[type]; + if(!filterType) { + throw new Error("Filter writing not supported for rule type: " + type); + } + return filterType +}; +ol.parser.ogc.Filter_v1.prototype.read = function(data) { + if(goog.isString(data)) { + data = goog.dom.xml.loadXml(data) + } + if(data && data.nodeType == 9) { + data = data.documentElement + } + var obj = {}; + this.readNode(data, obj); + return obj.filter +}; +ol.parser.ogc.Filter_v1.prototype.write = function(filter) { + var root = this.writeNode("Filter", filter); + this.setAttributeNS(root, "http://www.w3.org/2001/XMLSchema-instance", "xsi:schemaLocation", this.schemaLocation); + return this.serialize(root) +}; +ol.parser.ogc.Filter_v1.prototype.writeOgcExpression = function(expr, node) { + if(expr instanceof ol.expr.Call) { + this.writeNode("Function", expr, null, node) + }else { + if(expr instanceof ol.expr.Literal) { + this.writeNode("Literal", expr, null, node) + }else { + if(expr instanceof ol.expr.Identifier) { + this.writeNode("PropertyName", expr, null, node) + } + } + } + return node +}; +ol.parser.ogc.Filter_v1.prototype.getSubfiltersForLogical_ = function(filter, subFilters) { + var operator = filter.getOperator(); + var filters = new Array(2); + filters[0] = filter.getLeft(); + filters[1] = filter.getRight(); + for(var i = 0;i < 2;++i) { + if(filters[i] instanceof ol.expr.Logical && filters[i].getOperator() === operator) { + this.getSubfiltersForLogical_(filters[i], subFilters) + }else { + subFilters.push(filters[i]) + } + } +}; +ol.parser.ogc.Filter_v1.prototype.aggregateLogical_ = function(filters, operator) { + var subFilters = []; + var newFilters = []; + if(filters.length > 2) { + while(filters.length) { + subFilters.push(filters.pop()); + if(subFilters.length === 2) { + newFilters.push(new ol.expr.Logical(operator, subFilters[0], subFilters[1])); + subFilters.length = 0 + } + } + if(subFilters.length === 1) { + newFilters.push(subFilters[0]) + } + return this.aggregateLogical_(newFilters, operator) + }else { + return new ol.expr.Logical(operator, filters[0], filters[1]) + } +}; +ol.parser.ogc.Filter_v1.prototype.setGmlParser = function(gml) { + this.gml_ = gml; + for(var uri in this.gml_.readers) { + for(var key in this.gml_.readers[uri]) { + if(!goog.isDef(this.readers[uri])) { + this.readers[uri] = {} + } + this.readers[uri][key] = goog.bind(this.gml_.readers[uri][key], this.gml_) + } + } + for(uri in this.gml_.writers) { + for(key in this.gml_.writers[uri]) { + if(!goog.isDef(this.writers[uri])) { + this.writers[uri] = {} + } + this.writers[uri][key] = goog.bind(this.gml_.writers[uri][key], this.gml_) + } + } +}; +goog.provide("ol.parser.ogc.GML"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.require("goog.dom.xml"); +goog.require("ol.Feature"); +goog.require("ol.geom.Geometry"); +goog.require("ol.geom.GeometryCollection"); +goog.require("ol.geom.GeometryType"); +goog.require("ol.geom.LineString"); +goog.require("ol.geom.LinearRing"); +goog.require("ol.geom.MultiLineString"); +goog.require("ol.geom.MultiPoint"); +goog.require("ol.geom.MultiPolygon"); +goog.require("ol.geom.Point"); +goog.require("ol.geom.Polygon"); +goog.require("ol.parser.StringFeatureParser"); +goog.require("ol.parser.XML"); +goog.require("ol.proj"); +ol.parser.ogc.GML = function(opt_options) { + var options = (goog.isDef(opt_options) ? opt_options : {}); + this.extractAttributes = goog.isDef(options.extractAttributes) ? options.extractAttributes : true; + this.surface = goog.isDef(options.surface) ? options.surface : false; + this.curve = goog.isDef(options.curve) ? options.curve : false; + this.multiCurve = goog.isDef(options.multiCurve) ? options.multiCurve : true; + this.multiSurface = goog.isDef(options.multiSurface) ? options.multiSurface : true; + this.readOptions = options.readOptions; + this.writeOptions = options.writeOptions; + this.srsName; + this.axisOrientation; + if(goog.isDef(options.schemaLocation)) { + this.schemaLocation = options.schemaLocation + } + if(goog.isDef(options.featureNS)) { + this.featureNS = options.featureNS + } + if(goog.isDef(options.featureType)) { + this.featureType = options.featureType + } + this.singleFeatureType = !goog.isDef(opt_options) || goog.isString(opt_options.featureType); + this.defaultNamespaceURI = "http://www.opengis.net/gml"; + this.readers = {"http://www.opengis.net/wfs":{"FeatureCollection":function(node, obj) { + this.readChildNodes(node, obj) + }}, "http://www.opengis.net/gml":{"_inherit":function(node, obj, container) { + var srsName; + if(!goog.isDef(this.srsName)) { + srsName = this.srsName = node.getAttribute("srsName") + } + if(!goog.isDef(this.axisOrientation)) { + if(goog.isDefAndNotNull(srsName)) { + this.axisOrientation = ol.proj.get(srsName).getAxisOrientation() + }else { + this.axisOrientation = "enu" + } + } + }, "name":function(node, obj) { + obj.name = this.getChildValue(node) + }, "featureMember":function(node, obj) { + this.readChildNodes(node, obj) + }, "featureMembers":function(node, obj) { + this.readChildNodes(node, obj) + }, "GeometryCollection":function(node, container) { + var parts = []; + this.readers[this.defaultNamespaceURI]["_inherit"].apply(this, [node, parts, container]); + this.readChildNodes(node, parts); + container.geometry = {type:ol.geom.GeometryType.GEOMETRYCOLLECTION, parts:parts} + }, "geometryMember":function(node, obj) { + this.readChildNodes(node, obj) + }, "MultiPoint":function(node, container) { + var parts = []; + this.readers[this.defaultNamespaceURI]["_inherit"].apply(this, [node, parts, container]); + this.readChildNodes(node, parts); + container.geometry = {type:ol.geom.GeometryType.MULTIPOINT, parts:parts} + }, "pointMember":function(node, obj) { + this.readChildNodes(node, obj) + }, "MultiLineString":function(node, container) { + var parts = []; + this.readers[this.defaultNamespaceURI]["_inherit"].apply(this, [node, parts, container]); + this.readChildNodes(node, parts); + container.geometry = {type:ol.geom.GeometryType.MULTILINESTRING, parts:parts} + }, "lineStringMember":function(node, obj) { + this.readChildNodes(node, obj) + }, "MultiPolygon":function(node, container) { + var parts = []; + this.readers[this.defaultNamespaceURI]["_inherit"].apply(this, [node, parts, container]); + this.readChildNodes(node, parts); + container.geometry = {type:ol.geom.GeometryType.MULTIPOLYGON, parts:parts} + }, "polygonMember":function(node, obj) { + this.readChildNodes(node, obj) + }, "Point":function(node, container) { + var coordinates = []; + this.readers[this.defaultNamespaceURI]["_inherit"].apply(this, [node, coordinates, container]); + this.readChildNodes(node, coordinates); + var point = {type:ol.geom.GeometryType.POINT, coordinates:coordinates[0][0]}; + if(goog.isArray(container)) { + container.push(point) + }else { + container.geometry = point + } + }, "LineString":function(node, container) { + var coordinates = []; + this.readers[this.defaultNamespaceURI]["_inherit"].apply(this, [node, coordinates, container]); + this.readChildNodes(node, coordinates); + var linestring = {type:ol.geom.GeometryType.LINESTRING, coordinates:coordinates[0]}; + if(goog.isArray(container)) { + container.push(linestring) + }else { + container.geometry = linestring + } + }, "Polygon":function(node, container) { + var obj = {outer:null, inner:[]}; + this.readers[this.defaultNamespaceURI]["_inherit"].apply(this, [node, obj, container]); + this.readChildNodes(node, obj); + obj.inner.unshift(obj.outer); + var polygon = {type:ol.geom.GeometryType.POLYGON, coordinates:obj.inner}; + if(goog.isArray(container)) { + container.push(polygon) + }else { + container.geometry = polygon + } + }, "LinearRing":function(node, container) { + var coordinates = []; + this.readers[this.defaultNamespaceURI]["_inherit"].apply(this, [node, coordinates, container]); + this.readChildNodes(node, coordinates); + if(goog.isArray(container)) { + container.push(coordinates) + }else { + container.geometry = {type:ol.geom.GeometryType.LINEARRING, coordinates:coordinates[0]} + } + }, "coordinates":function(node, coordinates) { + var str = this.getChildValue(node).replace(this.regExes.trimSpace, ""); + str = str.replace(this.regExes.trimComma, ","); + var coords; + var cs = node.getAttribute("cs") || ","; + var ts = node.getAttribute("ts") || this.regExes.splitSpace; + var pointList = str.split(ts); + var numPoints = pointList.length; + var points = new Array(numPoints); + for(var i = 0;i < numPoints;++i) { + coords = goog.array.map(pointList[i].split(cs), parseFloat); + if(this.axisOrientation.substr(0, 2) === "en") { + points[i] = coords + }else { + if(coords.length === 2) { + points[i] = coords.reverse() + }else { + if(coords.length === 3) { + points[i] = [coords[1], coords[0], coords[2]] + } + } + } + } + coordinates.push(points) + }, "coord":function(node, coordinates) { + var coord = {}; + if(coordinates.length === 0) { + coordinates.push([]) + } + this.readChildNodes(node, coord); + if(goog.isDef(coord.z)) { + coordinates.push([coord.x, coord.y, coord.z]) + }else { + coordinates[0].push([coord.x, coord.y]) + } + }, "X":function(node, coord) { + coord.x = parseFloat(this.getChildValue(node)) + }, "Y":function(node, coord) { + coord.y = parseFloat(this.getChildValue(node)) + }, "Z":function(node, coord) { + coord.z = parseFloat(this.getChildValue(node)) + }}}; + this.featureNSReaders_ = {"*":function(node, obj) { + var name; + var local = node.localName || node.nodeName.split(":").pop(); + if(obj.features) { + if(!this.singleFeatureType && goog.array.indexOf(this.featureType, local) !== -1) { + name = "_typeName" + }else { + if(local === this.featureType) { + name = "_typeName" + } + } + }else { + if(node.childNodes.length === 0 || node.childNodes.length === 1 && node.firstChild.nodeType === 3) { + if(this.extractAttributes) { + name = "_attribute" + } + }else { + name = "_geometry" + } + } + if(name) { + this.readers[this.featureNS][name].apply(this, [node, obj]) + } + }, "_typeName":function(node, obj) { + var container = {properties:{}}; + this.readChildNodes(node, container); + if(container.name) { + container.properties.name = container.name + } + var feature = new ol.Feature(container.properties); + var geom = container.geometry; + if(geom) { + var sharedVertices = undefined; + if(this.readFeaturesOptions_) { + var callback = this.readFeaturesOptions_.callback; + if(callback) { + sharedVertices = callback(feature, geom.type) + } + } + var geometry = this.createGeometry({geometry:geom}, sharedVertices); + if(goog.isDef(geometry)) { + feature.setGeometry(geometry) + } + } + var fid = node.getAttribute("fid") || this.getAttributeNS(node, this.defaultNamespaceURI, "id"); + if(!goog.isNull(fid)) { + feature.setFeatureId(fid) + } + obj.features.push(feature) + }, "_geometry":function(node, obj) { + if(!this.geometryName) { + this.geometryName = node.nodeName.split(":").pop() + } + this.readChildNodes(node, obj) + }, "_attribute":function(node, obj) { + var local = node.localName || node.nodeName.split(":").pop(); + var value = this.getChildValue(node); + obj.properties[local] = value + }}; + if(goog.isDef(this.featureNS)) { + this.readers[this.featureNS] = this.featureNSReaders_ + } + this.writers = {"http://www.opengis.net/gml":{"featureMember":function(obj) { + var node = this.createElementNS("gml:featureMember"); + this.writeNode("_typeName", obj, this.featureNS, node); + return node + }, "MultiPoint":function(geometry) { + var node = this.createElementNS("gml:MultiPoint"); + for(var i = 0, ii = geometry.components.length;i < ii;++i) { + this.writeNode("pointMember", geometry.components[i], null, node) + } + return node + }, "pointMember":function(geometry) { + var node = this.createElementNS("gml:pointMember"); + this.writeNode("Point", geometry, null, node); + return node + }, "MultiLineString":function(geometry) { + var node = this.createElementNS("gml:MultiLineString"); + for(var i = 0, ii = geometry.components.length;i < ii;++i) { + this.writeNode("lineStringMember", geometry.components[i], null, node) + } + return node + }, "lineStringMember":function(geometry) { + var node = this.createElementNS("gml:lineStringMember"); + this.writeNode("LineString", geometry, null, node); + return node + }, "MultiPolygon":function(geometry) { + var node = this.createElementNS("gml:MultiPolygon"); + for(var i = 0, ii = geometry.components.length;i < ii;++i) { + this.writeNode("polygonMember", geometry.components[i], null, node) + } + return node + }, "polygonMember":function(geometry) { + var node = this.createElementNS("gml:polygonMember"); + this.writeNode("Polygon", geometry, null, node); + return node + }, "GeometryCollection":function(geometry) { + var node = this.createElementNS("gml:GeometryCollection"); + for(var i = 0, ii = geometry.components.length;i < ii;++i) { + this.writeNode("geometryMember", geometry.components[i], null, node) + } + return node + }, "geometryMember":function(geometry) { + var node = this.createElementNS("gml:geometryMember"); + var child = this.writeNode("_geometry", geometry, this.featureNS); + node.appendChild(child.firstChild); + return node + }}, "http://www.opengis.net/wfs":{"FeatureCollection":function(features) { + var node = this.createElementNS("wfs:FeatureCollection", "http://www.opengis.net/wfs"); + for(var i = 0, ii = features.length;i < ii;++i) { + this.writeNode("featureMember", features[i], null, node) + } + return node + }}}; + this.featureNSWiters_ = {"_typeName":function(feature) { + var node = this.createElementNS("feature:" + this.featureType, this.featureNS); + var fid = feature.getFeatureId(); + if(goog.isDef(fid)) { + this.setAttributeNS(node, this.defaultNamespaceURI, "fid", fid) + } + if(feature.getGeometry() !== null) { + this.writeNode("_geometry", feature.getGeometry(), this.featureNS, node) + } + var attributes = feature.getAttributes(); + for(var name in attributes) { + var value = attributes[name]; + if(goog.isDefAndNotNull(value) && !(value instanceof ol.geom.Geometry)) { + this.writeNode("_attribute", {name:name, value:value}, this.featureNS, node) + } + } + return node + }, "_geometry":function(geometry) { + var node = this.createElementNS("feature:" + this.geometryName, this.featureNS); + var type = geometry.getType(), child; + if(type === ol.geom.GeometryType.POINT) { + child = this.writeNode("Point", geometry, null, node) + }else { + if(type === ol.geom.GeometryType.MULTIPOINT) { + child = this.writeNode("MultiPoint", geometry, null, node) + }else { + if(type === ol.geom.GeometryType.LINEARRING) { + child = this.writeNode("LinearRing", geometry.getCoordinates(), null, node) + }else { + if(type === ol.geom.GeometryType.LINESTRING) { + child = this.writeNode("LineString", geometry, null, node) + }else { + if(type === ol.geom.GeometryType.MULTILINESTRING) { + child = this.writeNode("MultiLineString", geometry, null, node) + }else { + if(type === ol.geom.GeometryType.POLYGON) { + child = this.writeNode("Polygon", geometry, null, node) + }else { + if(type === ol.geom.GeometryType.MULTIPOLYGON) { + child = this.writeNode("MultiPolygon", geometry, null, node) + }else { + if(type === ol.geom.GeometryType.GEOMETRYCOLLECTION) { + child = this.writeNode("GeometryCollection", geometry, null, node) + } + } + } + } + } + } + } + } + if(goog.isDefAndNotNull(this.srsName)) { + this.setAttributeNS(child, null, "srsName", this.srsName) + } + return node + }, "_attribute":function(obj) { + var node = this.createElementNS("feature:" + obj.name, this.featureNS); + node.appendChild(this.createTextNode(obj.value)); + return node + }}; + if(goog.isDef(this.featureNS)) { + this.writers[this.featureNS] = this.featureNSWiters_ + } + goog.base(this) +}; +goog.inherits(ol.parser.ogc.GML, ol.parser.XML); +ol.parser.ogc.GML.prototype.read = function(data, opt_options) { + var srsName; + if(goog.isDef(opt_options) && goog.isDef(opt_options.srsName)) { + srsName = opt_options.srsName + }else { + if(goog.isDef(this.readOptions) && goog.isDef(this.readOptions.srsName)) { + srsName = this.readOptions.srsName + } + } + if(goog.isDef(srsName)) { + this.srsName = goog.isString(srsName) ? srsName : srsName.getCode() + } + if(goog.isDef(opt_options) && goog.isDef(opt_options.axisOrientation)) { + this.axisOrientation = opt_options.axisOrientation + }else { + if(goog.isDef(this.readOptions) && goog.isDef(this.readOptions.axisOrientation)) { + this.axisOrientation = this.readOptions.axisOrientation + } + } + if(typeof data == "string") { + data = goog.dom.xml.loadXml(data) + } + if(data && data.nodeType == 9) { + data = data.documentElement + } + var obj = ({features:[], metadata:{}}); + this.readNode(data, obj, true); + obj.metadata.projection = this.srsName; + delete this.srsName; + delete this.axisOrientation; + return obj +}; +ol.parser.ogc.GML.prototype.readNode = function(node, obj, opt_first) { + if(opt_first === true && this.autoConfig === true) { + this.featureType = null; + delete this.readers[this.featureNS]; + delete this.writers[this.featureNS]; + this.featureNS = null + } + if(!this.featureNS && !(node.namespaceURI in this.readers) && node.parentNode.namespaceURI == this.defaultNamespaceURI && /^(.*:)?featureMembers?$/.test(node.parentNode.nodeName)) { + this.featureType = node.nodeName.split(":").pop(); + this.readers[node.namespaceURI] = this.featureNSReaders_; + this.writers[node.namespaceURI] = this.featureNSWiters_; + this.featureNS = node.namespaceURI; + this.autoConfig = true + } + return ol.parser.XML.prototype.readNode.apply(this, [node, obj]) +}; +ol.parser.ogc.GML.prototype.createGeometry = function(container, opt_vertices) { + var geometry = null, coordinates, i, ii; + switch(container.geometry.type) { + case ol.geom.GeometryType.POINT: + geometry = new ol.geom.Point(container.geometry.coordinates, opt_vertices); + break; + case ol.geom.GeometryType.LINEARRING: + geometry = new ol.geom.LinearRing(container.geometry.coordinates, opt_vertices); + break; + case ol.geom.GeometryType.LINESTRING: + geometry = new ol.geom.LineString(container.geometry.coordinates, opt_vertices); + break; + case ol.geom.GeometryType.POLYGON: + geometry = new ol.geom.Polygon(container.geometry.coordinates, opt_vertices); + break; + case ol.geom.GeometryType.MULTIPOINT: + coordinates = []; + for(i = 0, ii = container.geometry.parts.length;i < ii;i++) { + coordinates.push(container.geometry.parts[i].coordinates) + } + geometry = new ol.geom.MultiPoint(coordinates, opt_vertices); + break; + case ol.geom.GeometryType.MULTILINESTRING: + coordinates = []; + for(i = 0, ii = container.geometry.parts.length;i < ii;i++) { + coordinates.push(container.geometry.parts[i].coordinates) + } + geometry = new ol.geom.MultiLineString(coordinates, opt_vertices); + break; + case ol.geom.GeometryType.MULTIPOLYGON: + coordinates = []; + for(i = 0, ii = container.geometry.parts.length;i < ii;i++) { + coordinates.push(container.geometry.parts[i].coordinates) + } + geometry = new ol.geom.MultiPolygon(coordinates, opt_vertices); + break; + case ol.geom.GeometryType.GEOMETRYCOLLECTION: + var geometries = []; + for(i = 0, ii = container.geometry.parts.length;i < ii;i++) { + geometries.push(this.createGeometry({geometry:container.geometry.parts[i]}, opt_vertices)) + } + geometry = new ol.geom.GeometryCollection(geometries); + break; + default: + break + } + return geometry +}; +ol.parser.ogc.GML.prototype.readFeaturesFromString = function(str, opt_options) { + this.readFeaturesOptions_ = opt_options; + return this.read(str) +}; +ol.parser.ogc.GML.prototype.applyWriteOptions = function(obj, opt_options) { + var srsName; + if(goog.isDef(opt_options) && goog.isDef(opt_options.srsName)) { + srsName = opt_options.srsName + }else { + if(goog.isDef(this.writeOptions) && goog.isDef(this.writeOptions.srsName)) { + srsName = this.writeOptions.srsName + }else { + if(goog.isDef(obj.metadata)) { + srsName = obj.metadata.projection + } + } + } + goog.asserts.assert(goog.isDef(srsName), "srsName required for writing GML"); + this.srsName = goog.isString(srsName) ? srsName : srsName.getCode(); + if(goog.isDef(opt_options) && goog.isDef(opt_options.axisOrientation)) { + this.axisOrientation = opt_options.axisOrientation + }else { + if(goog.isDef(this.writeOptions) && goog.isDef(this.writeOptions.axisOrientation)) { + this.axisOrientation = this.writeOptions.axisOrientation + }else { + this.axisOrientation = ol.proj.get(this.srsName).getAxisOrientation() + } + } +}; +goog.provide("ol.parser.ogc.GML_v2"); +goog.require("goog.array"); +goog.require("goog.object"); +goog.require("ol.parser.ogc.GML"); +ol.parser.ogc.GML_v2 = function(opt_options) { + this.schemaLocation = "http://www.opengis.net/gml " + "http://schemas.opengis.net/gml/2.1.2/feature.xsd"; + goog.base(this, opt_options); + goog.object.extend(this.readers["http://www.opengis.net/gml"], {"outerBoundaryIs":function(node, container) { + var coordinates = []; + this.readChildNodes(node, coordinates); + container["outer"] = coordinates[0][0] + }, "innerBoundaryIs":function(node, container) { + var coordinates = []; + this.readChildNodes(node, coordinates); + container.inner.push(coordinates[0][0]) + }, "Box":function(node, container) { + var coordinates = []; + this.readers[this.defaultNamespaceURI]["_inherit"].apply(this, [node, coordinates, container]); + this.readChildNodes(node, coordinates); + container.projection = node.getAttribute("srsName"); + container.bounds = [coordinates[0][0][0], coordinates[0][1][0], coordinates[0][0][1], coordinates[0][1][1]] + }}); + goog.object.extend(this.writers["http://www.opengis.net/gml"], {"Point":function(geometry) { + var node = this.createElementNS("gml:Point"); + this.writeNode("coordinates", [geometry.getCoordinates()], null, node); + return node + }, "coordinates":function(coordinates) { + var numCoordinates = coordinates.length; + var parts = new Array(numCoordinates); + for(var i = 0;i < numCoordinates;++i) { + var coord = coordinates[i]; + var part = goog.array.concat(coord); + if(this.axisOrientation.substr(0, 2) !== "en") { + part[0] = coord[1]; + part[1] = coord[0] + } + parts[i] = part.join(",") + } + var value = parts.join(" "); + var node = this.createElementNS("gml:coordinates"); + this.setAttributeNS(node, null, "decimal", "."); + this.setAttributeNS(node, null, "cs", ","); + this.setAttributeNS(node, null, "ts", " "); + node.appendChild(this.createTextNode(value)); + return node + }, "LineString":function(geometry) { + var node = this.createElementNS("gml:LineString"); + this.writeNode("coordinates", geometry.getCoordinates(), null, node); + return node + }, "Polygon":function(geometry) { + var node = this.createElementNS("gml:Polygon"); + var coordinates = geometry.getCoordinates(); + this.writeNode("outerBoundaryIs", coordinates[0].reverse(), null, node); + for(var i = 1;i < coordinates.length;++i) { + this.writeNode("innerBoundaryIs", coordinates[i].reverse(), null, node) + } + return node + }, "outerBoundaryIs":function(ring) { + var node = this.createElementNS("gml:outerBoundaryIs"); + this.writeNode("LinearRing", ring, null, node); + return node + }, "innerBoundaryIs":function(ring) { + var node = this.createElementNS("gml:innerBoundaryIs"); + this.writeNode("LinearRing", ring, null, node); + return node + }, "LinearRing":function(ring) { + var node = this.createElementNS("gml:LinearRing"); + this.writeNode("coordinates", ring, null, node); + return node + }, "Box":function(extent) { + var node = this.createElementNS("gml:Box"); + this.writeNode("coordinates", [[extent[0], extent[1]], [extent[2], extent[3]]], null, node); + if(goog.isDefAndNotNull(this.srsName)) { + node.setAttribute("srsName", this.srsName) + } + return node + }}) +}; +goog.inherits(ol.parser.ogc.GML_v2, ol.parser.ogc.GML); +ol.parser.ogc.GML_v2.prototype.write = function(obj, opt_options) { + this.applyWriteOptions(obj, opt_options); + var root = this.writeNode("FeatureCollection", obj.features, "http://www.opengis.net/wfs"); + this.setAttributeNS(root, "http://www.w3.org/2001/XMLSchema-instance", "xsi:schemaLocation", this.schemaLocation); + var gml = this.serialize(root); + delete this.srsName; + delete this.axisOrientation; + return gml +}; +goog.provide("ol.parser.ogc.Filter_v1_0_0"); +goog.require("goog.asserts"); +goog.require("goog.object"); +goog.require("ol.expr"); +goog.require("ol.expr.Call"); +goog.require("ol.expr.Comparison"); +goog.require("ol.expr.ComparisonOp"); +goog.require("ol.expr.Identifier"); +goog.require("ol.expr.Literal"); +goog.require("ol.expr.functions"); +goog.require("ol.geom.Geometry"); +goog.require("ol.parser.ogc.Filter_v1"); +goog.require("ol.parser.ogc.GML_v2"); +ol.parser.ogc.Filter_v1_0_0 = function() { + goog.base(this); + this.version = "1.0.0"; + this.schemaLocation = "http://www.opengis.net/ogc " + "http://schemas.opengis.net/filter/1.0.0/filter.xsd"; + goog.object.extend(this.readers["http://www.opengis.net/ogc"], {"PropertyIsEqualTo":function(node, obj) { + var container = {}; + this.readChildNodes(node, container); + obj.filters.push(new ol.expr.Comparison(ol.expr.ComparisonOp.EQ, container.property, container.value)) + }, "PropertyIsNotEqualTo":function(node, obj) { + var container = {}; + this.readChildNodes(node, container); + obj.filters.push(new ol.expr.Comparison(ol.expr.ComparisonOp.NEQ, container.property, container.value)) + }, "PropertyIsLike":function(node, obj) { + var container = {}; + this.readChildNodes(node, container); + var args = []; + args.push(container.property, container.value, new ol.expr.Literal(node.getAttribute("wildCard")), new ol.expr.Literal(node.getAttribute("singleChar")), new ol.expr.Literal(node.getAttribute("escape"))); + obj.filters.push(new ol.expr.Call(new ol.expr.Identifier(ol.expr.functions.LIKE), args)) + }}); + goog.object.extend(this.writers["http://www.opengis.net/ogc"], {"PropertyIsEqualTo":function(filter) { + var node = this.createElementNS("ogc:PropertyIsEqualTo"); + var property = filter.getLeft(); + this.writeNode("PropertyName", property, null, node); + this.writeOgcExpression(filter.getRight(), node); + return node + }, "PropertyIsNotEqualTo":function(filter) { + var node = this.createElementNS("ogc:PropertyIsNotEqualTo"); + var property = filter.getLeft(); + this.writeNode("PropertyName", property, null, node); + this.writeOgcExpression(filter.getRight(), node); + return node + }, "PropertyIsLike":function(filter) { + var node = this.createElementNS("ogc:PropertyIsLike"); + var args = filter.getArgs(); + goog.asserts.assert(args[2] instanceof ol.expr.Literal); + node.setAttribute("wildCard", args[2].getValue()); + goog.asserts.assert(args[3] instanceof ol.expr.Literal); + node.setAttribute("singleChar", args[3].getValue()); + goog.asserts.assert(args[4] instanceof ol.expr.Literal); + node.setAttribute("escape", args[4].getValue()); + var property = args[0]; + if(goog.isDef(property)) { + this.writeNode("PropertyName", property, null, node) + } + this.writeNode("Literal", args[1], null, node); + return node + }, "BBOX":function(filter) { + var node = this.createElementNS("ogc:BBOX"); + var args = filter.getArgs(); + goog.asserts.assert(args[0] instanceof ol.expr.Literal); + goog.asserts.assert(args[1] instanceof ol.expr.Literal); + goog.asserts.assert(args[2] instanceof ol.expr.Literal); + goog.asserts.assert(args[3] instanceof ol.expr.Literal); + goog.asserts.assert(args[4] instanceof ol.expr.Literal); + var property = args[5], bbox = [args[0].getValue(), args[1].getValue(), args[2].getValue(), args[3].getValue()], projection = args[4].getValue(); + if(goog.isDefAndNotNull(property)) { + this.writeNode("PropertyName", property, null, node) + } + var box = this.writeNode("Box", bbox, "http://www.opengis.net/gml"); + if(goog.isDefAndNotNull(projection)) { + box.setAttribute("srsName", projection) + } + node.appendChild(box); + return node + }}); + this.setGmlParser(new ol.parser.ogc.GML_v2({featureNS:"http://foo"})) +}; +goog.inherits(ol.parser.ogc.Filter_v1_0_0, ol.parser.ogc.Filter_v1); +ol.parser.ogc.Filter_v1_0_0.prototype.writeSpatial_ = function(filter, name) { + var node = this.createElementNS("ogc:" + name); + var args = filter.getArgs(); + var property, geom = null, bbox, call, projection; + if(args[0] instanceof ol.expr.Literal && goog.isNumber(args[0].getValue())) { + goog.asserts.assert(args[1] instanceof ol.expr.Literal); + goog.asserts.assert(args[2] instanceof ol.expr.Literal); + goog.asserts.assert(args[3] instanceof ol.expr.Literal); + bbox = [args[0].getValue(), args[1].getValue(), args[2].getValue(), args[3].getValue()]; + projection = args[4]; + property = args[5] + }else { + if(args[0] instanceof ol.expr.Literal && args[0].getValue() instanceof ol.geom.Geometry) { + geom = args[0].getValue(); + if(name === "DWithin") { + projection = args[3]; + property = args[4] + }else { + projection = args[1]; + property = args[2] + } + }else { + if(args[0] instanceof ol.expr.Call) { + call = args[0]; + if(name === "DWithin") { + projection = args[3]; + property = args[4] + }else { + projection = args[1]; + property = args[2] + } + } + } + } + if(goog.isDefAndNotNull(property)) { + this.writeNode("PropertyName", property, null, node) + } + if(goog.isDef(call)) { + this.writeNode("Function", call, null, node) + }else { + var child; + if(geom !== null) { + child = this.writeNode("_geometry", geom, this.gml_.featureNS).firstChild + }else { + if(bbox.length === 4) { + child = this.writeNode("Box", bbox, "http://www.opengis.net/gml") + } + } + if(goog.isDef(child)) { + goog.asserts.assert(projection instanceof ol.expr.Literal); + if(goog.isDefAndNotNull(projection.getValue())) { + child.setAttribute("srsName", projection.getValue()) + } + node.appendChild(child) + } + } + return node +}; +goog.provide("ol.parser.ogc.GML_v3"); +goog.require("goog.array"); +goog.require("goog.functions"); +goog.require("goog.object"); +goog.require("ol.geom.GeometryType"); +goog.require("ol.parser.ogc.GML"); +ol.parser.ogc.GML_v3 = function(opt_options) { + this.schemaLocation = "http://www.opengis.net/gml " + "http://schemas.opengis.net/gml/3.1.1/profiles/gmlsfProfile/" + "1.0.0/gmlsf.xsd"; + goog.base(this, opt_options); + this.featureNSWiters_["_geometry"] = function(geometry) { + var node = this.createElementNS("feature:" + this.geometryName, this.featureNS); + var type = geometry.getType(), child; + if(type === ol.geom.GeometryType.POINT) { + child = this.writeNode("Point", geometry, null, node) + }else { + if(type === ol.geom.GeometryType.MULTIPOINT) { + child = this.writeNode("MultiPoint", geometry, null, node) + }else { + if(type === ol.geom.GeometryType.LINESTRING) { + if(this.curve === true) { + child = this.writeNode("Curve", geometry, null, node) + }else { + child = this.writeNode("LineString", geometry, null, node) + } + }else { + if(type === ol.geom.GeometryType.LINEARRING) { + child = this.writeNode("LinearRing", geometry.getCoordinates(), null, node) + }else { + if(type === ol.geom.GeometryType.MULTILINESTRING) { + if(this.multiCurve === false) { + child = this.writeNode("MultiLineString", geometry, null, node) + }else { + child = this.writeNode("MultiCurve", geometry, null, node) + } + }else { + if(type === ol.geom.GeometryType.POLYGON) { + if(this.surface === true) { + child = this.writeNode("Surface", geometry, null, node) + }else { + child = this.writeNode("Polygon", geometry, null, node) + } + }else { + if(type === ol.geom.GeometryType.MULTIPOLYGON) { + if(this.multiSurface === false) { + child = this.writeNode("MultiPolygon", geometry, null, node) + }else { + child = this.writeNode("MultiSurface", geometry, null, node) + } + }else { + if(type === ol.geom.GeometryType.GEOMETRYCOLLECTION) { + child = this.writeNode("MultiGeometry", geometry, null, node) + } + } + } + } + } + } + } + } + if(goog.isDefAndNotNull(this.srsName)) { + this.setAttributeNS(child, null, "srsName", this.srsName) + } + return node + }; + goog.object.extend(this.readers["http://www.opengis.net/gml"], {"_inherit":goog.functions.sequence(this.readers["http://www.opengis.net/gml"]["_inherit"], function(node, obj, container) { + var dim = parseInt(node.getAttribute("srsDimension"), 10) || container && container.srsDimension; + if(dim) { + obj.srsDimension = dim + } + }), "featureMembers":function(node, obj) { + this.readChildNodes(node, obj) + }, "Curve":function(node, container) { + var coordinates = []; + this.readers[this.defaultNamespaceURI]["_inherit"].apply(this, [node, coordinates, container]); + this.readChildNodes(node, coordinates); + var linestring = {type:ol.geom.GeometryType.LINESTRING, coordinates:coordinates[0]}; + if(goog.isArray(container)) { + container.push(linestring) + }else { + container.geometry = linestring + } + }, "segments":function(node, obj) { + this.readChildNodes(node, obj) + }, "LineStringSegment":function(node, container) { + var coordinates = []; + this.readChildNodes(node, coordinates); + container.push(coordinates[0]) + }, "pos":function(node, obj) { + var str = this.getChildValue(node).replace(this.regExes.trimSpace, ""); + var coords = goog.array.map(str.split(this.regExes.splitSpace), parseFloat); + if(this.axisOrientation.substr(0, 2) === "en") { + obj.push([coords]) + }else { + if(coords.length === 2) { + obj.push([coords.reverse()]) + }else { + if(coords.length === 3) { + obj.push([coords[1], coords[0], coords[2]]) + } + } + } + }, "posList":function(node, obj) { + var str = this.getChildValue(node).replace(this.regExes.trimSpace, ""); + var coords = str.split(this.regExes.splitSpace); + var dim = obj.srsDimension || parseInt(node.getAttribute("srsDimension") || node.getAttribute("dimension"), 10) || 2; + var x, y, z; + var numPoints = coords.length / dim; + var points = new Array(numPoints); + for(var i = 0, ii = coords.length;i < ii;i += dim) { + x = parseFloat(coords[i]); + y = parseFloat(coords[i + 1]); + var xy = this.axisOrientation.substr(0, 2) === "en"; + if(dim === 3) { + if(xy) { + points[i / dim] = [x, y, parseFloat(coords[i + 2])] + }else { + points[i / dim] = [y, x, parseFloat(coords[i + 2])] + } + }else { + if(dim === 2) { + if(xy) { + points[i / dim] = [x, y] + }else { + points[i / dim] = [y, x] + } + } + } + } + obj.push(points) + }, "Surface":function(node, obj) { + this.readChildNodes(node, obj) + }, "patches":function(node, obj) { + this.readChildNodes(node, obj) + }, "PolygonPatch":function(node, obj) { + this.readers[this.defaultNamespaceURI]["Polygon"].apply(this, [node, obj]) + }, "exterior":function(node, container) { + var coordinates = []; + this.readChildNodes(node, coordinates); + container.outer = coordinates[0][0] + }, "interior":function(node, container) { + var coordinates = []; + this.readChildNodes(node, coordinates); + container.inner.push(coordinates[0][0]) + }, "MultiCurve":function(node, container) { + var parts = []; + this.readers[this.defaultNamespaceURI]["_inherit"].apply(this, [node, parts, container]); + this.readChildNodes(node, parts); + container.geometry = {type:ol.geom.GeometryType.MULTILINESTRING, parts:parts} + }, "curveMember":function(node, obj) { + this.readChildNodes(node, obj) + }, "MultiSurface":function(node, container) { + var parts = []; + this.readers[this.defaultNamespaceURI]["_inherit"].apply(this, [node, parts, container]); + this.readChildNodes(node, parts); + container.geometry = {type:ol.geom.GeometryType.MULTIPOLYGON, parts:parts} + }, "surfaceMember":function(node, obj) { + this.readChildNodes(node, obj) + }, "surfaceMembers":function(node, obj) { + this.readChildNodes(node, obj) + }, "pointMembers":function(node, obj) { + this.readChildNodes(node, obj) + }, "lineStringMembers":function(node, obj) { + this.readChildNodes(node, obj) + }, "polygonMembers":function(node, obj) { + this.readChildNodes(node, obj) + }, "geometryMembers":function(node, obj) { + this.readChildNodes(node, obj) + }, "Envelope":function(node, container) { + var coordinates = []; + this.readers[this.defaultNamespaceURI]["_inherit"].apply(this, [node, coordinates, container]); + this.readChildNodes(node, coordinates); + container.projection = node.getAttribute("srsName"); + container.bounds = [coordinates[0][0][0][0], coordinates[1][0][0][0], coordinates[0][0][0][1], coordinates[1][0][0][1]] + }, "lowerCorner":function(node, envelope) { + var coordinates = []; + this.readers[this.defaultNamespaceURI]["pos"].apply(this, [node, coordinates]); + envelope.push(coordinates) + }, "upperCorner":function(node, envelope) { + var coordinates = []; + this.readers[this.defaultNamespaceURI]["pos"].apply(this, [node, coordinates]); + envelope.push(coordinates) + }}); + goog.object.extend(this.writers["http://www.opengis.net/gml"], {"featureMembers":function(features) { + var node = this.createElementNS("gml:featureMembers"); + for(var i = 0, ii = features.length;i < ii;++i) { + this.writeNode("_typeName", features[i], this.featureNS, node) + } + return node + }, "Point":function(geometry) { + var node = this.createElementNS("gml:Point"); + this.writeNode("pos", geometry.getCoordinates(), null, node); + return node + }, "pos":function(point) { + var pos; + if(this.axisOrientation.substr(0, 2) === "en") { + pos = point[0] + " " + point[1] + }else { + pos = point[1] + " " + point[0] + } + var node = this.createElementNS("gml:pos"); + node.appendChild(this.createTextNode(pos)); + return node + }, "LineString":function(geometry) { + var node = this.createElementNS("gml:LineString"); + this.writeNode("posList", geometry.getCoordinates(), null, node); + return node + }, "Curve":function(geometry) { + var node = this.createElementNS("gml:Curve"); + this.writeNode("segments", geometry, null, node); + return node + }, "segments":function(geometry) { + var node = this.createElementNS("gml:segments"); + this.writeNode("LineStringSegment", geometry, null, node); + return node + }, "LineStringSegment":function(geometry) { + var node = this.createElementNS("gml:LineStringSegment"); + this.writeNode("posList", geometry.getCoordinates(), null, node); + return node + }, "posList":function(points) { + var len = points.length; + var parts = new Array(len); + var point; + for(var i = 0;i < len;++i) { + point = points[i]; + if(this.axisOrientation.substr(0, 2) === "en") { + parts[i] = point[0] + " " + point[1] + }else { + parts[i] = point[1] + " " + point[0] + } + } + var node = this.createElementNS("gml:posList"); + node.appendChild(this.createTextNode(parts.join(" "))); + return node + }, "Surface":function(geometry) { + var node = this.createElementNS("gml:Surface"); + this.writeNode("patches", geometry, null, node); + return node + }, "patches":function(geometry) { + var node = this.createElementNS("gml:patches"); + this.writeNode("PolygonPatch", geometry, null, node); + return node + }, "PolygonPatch":function(geometry) { + var node = this.createElementNS("gml:PolygonPatch"); + node.setAttribute("interpolation", "planar"); + var coordinates = geometry.getCoordinates(); + this.writeNode("exterior", coordinates[0].reverse(), null, node); + for(var i = 1, len = coordinates.length;i < len;++i) { + this.writeNode("interior", coordinates[i].reverse(), null, node) + } + return node + }, "Polygon":function(geometry) { + var node = this.createElementNS("gml:Polygon"); + var coordinates = geometry.getCoordinates(); + this.writeNode("exterior", coordinates[0].reverse(), null, node); + for(var i = 1, len = coordinates.length;i < len;++i) { + this.writeNode("interior", coordinates[i].reverse(), null, node) + } + return node + }, "exterior":function(ring) { + var node = this.createElementNS("gml:exterior"); + this.writeNode("LinearRing", ring, null, node); + return node + }, "interior":function(ring) { + var node = this.createElementNS("gml:interior"); + this.writeNode("LinearRing", ring, null, node); + return node + }, "LinearRing":function(ring) { + var node = this.createElementNS("gml:LinearRing"); + this.writeNode("posList", ring, null, node); + return node + }, "MultiCurve":function(geometry) { + var node = this.createElementNS("gml:MultiCurve"); + for(var i = 0, len = geometry.components.length;i < len;++i) { + this.writeNode("curveMember", geometry.components[i], null, node) + } + return node + }, "curveMember":function(geometry) { + var node = this.createElementNS("gml:curveMember"); + if(this.curve) { + this.writeNode("Curve", geometry, null, node) + }else { + this.writeNode("LineString", geometry, null, node) + } + return node + }, "MultiSurface":function(geometry) { + var node = this.createElementNS("gml:MultiSurface"); + for(var i = 0, len = geometry.components.length;i < len;++i) { + this.writeNode("surfaceMember", geometry.components[i], null, node) + } + return node + }, "surfaceMember":function(polygon) { + var node = this.createElementNS("gml:surfaceMember"); + if(this.surface) { + this.writeNode("Surface", polygon, null, node) + }else { + this.writeNode("Polygon", polygon, null, node) + } + return node + }, "Envelope":function(bounds) { + var node = this.createElementNS("gml:Envelope"); + this.writeNode("lowerCorner", bounds, null, node); + this.writeNode("upperCorner", bounds, null, node); + if(goog.isDef(this.srsName)) { + node.setAttribute("srsName", this.srsName) + } + return node + }, "lowerCorner":function(bounds) { + var pos; + if(this.axisOrientation.substr(0, 2) === "en") { + pos = bounds[0] + " " + bounds[2] + }else { + pos = bounds[2] + " " + bounds[0] + } + var node = this.createElementNS("gml:lowerCorner"); + node.appendChild(this.createTextNode(pos)); + return node + }, "upperCorner":function(bounds) { + var pos; + if(this.axisOrientation.substr(0, 2) === "en") { + pos = bounds[1] + " " + bounds[3] + }else { + pos = bounds[3] + " " + bounds[1] + } + var node = this.createElementNS("gml:upperCorner"); + node.appendChild(this.createTextNode(pos)); + return node + }}) +}; +goog.inherits(ol.parser.ogc.GML_v3, ol.parser.ogc.GML); +ol.parser.ogc.GML_v3.prototype.write = function(obj, opt_options) { + this.applyWriteOptions(obj, opt_options); + var root = this.writeNode("featureMembers", obj.features); + this.setAttributeNS(root, "http://www.w3.org/2001/XMLSchema-instance", "xsi:schemaLocation", this.schemaLocation); + var gml = this.serialize(root); + delete this.srsName; + delete this.axisOrientation; + return gml +}; +goog.provide("ol.parser.ogc.Filter_v1_1_0"); +goog.require("goog.asserts"); +goog.require("goog.object"); +goog.require("ol.expr"); +goog.require("ol.expr.Call"); +goog.require("ol.expr.Comparison"); +goog.require("ol.expr.ComparisonOp"); +goog.require("ol.expr.Identifier"); +goog.require("ol.expr.Literal"); +goog.require("ol.expr.functions"); +goog.require("ol.geom.Geometry"); +goog.require("ol.parser.ogc.Filter_v1"); +goog.require("ol.parser.ogc.GML_v3"); +ol.parser.ogc.Filter_v1_1_0 = function() { + goog.base(this); + this.version = "1.1.0"; + this.schemaLocation = "http://www.opengis.net/ogc " + "http://schemas.opengis.net/filter/1.1.0/filter.xsd"; + goog.object.extend(this.readers["http://www.opengis.net/ogc"], {"PropertyIsEqualTo":function(node, obj) { + var matchCase = node.getAttribute("matchCase"); + var container = {}, filter; + this.readChildNodes(node, container); + if(matchCase === "false" || matchCase === "0") { + filter = new ol.expr.Call(new ol.expr.Identifier(ol.expr.functions.IEQ), [container.property, container.value]) + }else { + filter = new ol.expr.Comparison(ol.expr.ComparisonOp.EQ, container.property, container.value) + } + obj.filters.push(filter) + }, "PropertyIsNotEqualTo":function(node, obj) { + var matchCase = node.getAttribute("matchCase"); + var container = {}, filter; + this.readChildNodes(node, container); + if(matchCase === "false" || matchCase === "0") { + filter = new ol.expr.Call(new ol.expr.Identifier(ol.expr.functions.INEQ), [container.property, container.value]) + }else { + filter = new ol.expr.Comparison(ol.expr.ComparisonOp.NEQ, container.property, container.value) + } + obj.filters.push(filter) + }, "PropertyIsLike":function(node, obj) { + var container = {}; + this.readChildNodes(node, container); + var args = []; + args.push(container.property, container.value, new ol.expr.Literal(node.getAttribute("wildCard")), new ol.expr.Literal(node.getAttribute("singleChar")), new ol.expr.Literal(node.getAttribute("escapeChar")), new ol.expr.Literal(node.getAttribute("matchCase"))); + obj.filters.push(new ol.expr.Call(new ol.expr.Identifier(ol.expr.functions.LIKE), args)) + }}); + goog.object.extend(this.writers["http://www.opengis.net/ogc"], {"PropertyIsEqualTo":function(filter) { + var node = this.createElementNS("ogc:PropertyIsEqualTo"); + var property, value; + if(filter instanceof ol.expr.Call) { + var args = filter.getArgs(); + property = args[0]; + value = args[1]; + node.setAttribute("matchCase", false) + }else { + property = filter.getLeft(); + value = filter.getRight() + } + this.writeNode("PropertyName", property, null, node); + this.writeOgcExpression(value, node); + return node + }, "PropertyIsNotEqualTo":function(filter) { + var node = this.createElementNS("ogc:PropertyIsNotEqualTo"); + var property, value; + if(filter instanceof ol.expr.Call) { + var args = filter.getArgs(); + property = args[0]; + value = args[1]; + node.setAttribute("matchCase", false) + }else { + property = filter.getLeft(); + value = filter.getRight() + } + this.writeNode("PropertyName", property, null, node); + this.writeOgcExpression(value, node); + return node + }, "PropertyIsLike":function(filter) { + var node = this.createElementNS("ogc:PropertyIsLike"); + var args = filter.getArgs(); + goog.asserts.assert(args[2] instanceof ol.expr.Literal); + goog.asserts.assert(args[3] instanceof ol.expr.Literal); + goog.asserts.assert(args[4] instanceof ol.expr.Literal); + node.setAttribute("wildCard", args[2].getValue()); + node.setAttribute("singleChar", args[3].getValue()); + node.setAttribute("escapeChar", args[4].getValue()); + if(goog.isDefAndNotNull(args[5])) { + goog.asserts.assert(args[5] instanceof ol.expr.Literal); + node.setAttribute("matchCase", args[5].getValue()) + } + var property = args[0]; + if(goog.isDef(property)) { + this.writeNode("PropertyName", property, null, node) + } + this.writeNode("Literal", args[1], null, node); + return node + }, "BBOX":function(filter) { + var node = this.createElementNS("ogc:BBOX"); + var args = filter.getArgs(); + goog.asserts.assert(args[0] instanceof ol.expr.Literal); + goog.asserts.assert(args[1] instanceof ol.expr.Literal); + goog.asserts.assert(args[2] instanceof ol.expr.Literal); + goog.asserts.assert(args[3] instanceof ol.expr.Literal); + goog.asserts.assert(args[4] instanceof ol.expr.Literal); + var property = args[5], bbox = [args[0].getValue(), args[1].getValue(), args[2].getValue(), args[3].getValue()], projection = args[4].getValue(); + if(goog.isDefAndNotNull(property)) { + this.writeNode("PropertyName", property, null, node) + } + var box = this.writeNode("Envelope", bbox, "http://www.opengis.net/gml"); + if(goog.isDefAndNotNull(projection)) { + box.setAttribute("srsName", projection) + } + node.appendChild(box); + return node + }, "SortBy":function(sortProperties) { + var node = this.createElementNS("ogc:SortBy"); + for(var i = 0, l = sortProperties.length;i < l;i++) { + this.writeNode("SortProperty", sortProperties[i], null, node) + } + return node + }, "SortProperty":function(sortProperty) { + var node = this.createElementNS("ogc:SortProperty"); + this.writeNode("PropertyName", sortProperty["property"], null, node); + goog.asserts.assert(sortProperty["order"] instanceof ol.expr.Literal); + this.writeNode("SortOrder", sortProperty["order"].getValue() == "DESC" ? "DESC" : "ASC", null, node); + return node + }, "SortOrder":function(value) { + var node = this.createElementNS("ogc:SortOrder"); + node.appendChild(this.createTextNode(value)); + return node + }}); + this.setGmlParser(new ol.parser.ogc.GML_v3) +}; +goog.inherits(ol.parser.ogc.Filter_v1_1_0, ol.parser.ogc.Filter_v1); +ol.parser.ogc.Filter_v1_1_0.prototype.writeSpatial_ = function(filter, name) { + var node = this.createElementNS("ogc:" + name); + var args = filter.getArgs(); + var property, geom = null, bbox, call, projection; + if(args[0] instanceof ol.expr.Literal && goog.isNumber(args[0].getValue())) { + goog.asserts.assert(args[1] instanceof ol.expr.Literal); + goog.asserts.assert(args[2] instanceof ol.expr.Literal); + goog.asserts.assert(args[3] instanceof ol.expr.Literal); + bbox = [args[0].getValue(), args[1].getValue(), args[2].getValue(), args[3].getValue()]; + projection = args[4]; + property = args[5] + }else { + if(args[0] instanceof ol.expr.Literal && args[0].getValue() instanceof ol.geom.Geometry) { + geom = args[0].getValue(); + if(name === "DWithin") { + projection = args[3]; + property = args[4] + }else { + projection = args[1]; + property = args[2] + } + }else { + if(args[0] instanceof ol.expr.Call) { + call = args[0]; + if(name === "DWithin") { + projection = args[3]; + property = args[4] + }else { + projection = args[1]; + property = args[2] + } + } + } + } + if(goog.isDefAndNotNull(property)) { + this.writeNode("PropertyName", property, null, node) + } + if(goog.isDef(call)) { + this.writeNode("Function", call, null, node) + }else { + var child; + if(geom !== null) { + child = this.writeNode("_geometry", geom, this.gml_.featureNS).firstChild + }else { + if(bbox.length === 4) { + child = this.writeNode("Envelope", bbox, "http://www.opengis.net/gml") + } + } + if(goog.isDef(child)) { + goog.asserts.assert(projection instanceof ol.expr.Literal); + if(goog.isDefAndNotNull(projection.getValue())) { + child.setAttribute("srsName", projection.getValue()) + } + node.appendChild(child) + } + } + return node +}; +goog.provide("ol.parser.ogc.Versioned"); +goog.require("goog.dom.xml"); +goog.require("ol.parser.ogc.ExceptionReport"); +ol.parser.ogc.Versioned = function(opt_options) { + var options = goog.isDef(opt_options) ? opt_options : {}; + this.options = options; + this.defaultVersion = options.defaultVersion || null; + this.version = options.version; + this.profile = options.profile; + if(goog.isDef(options.allowFallback)) { + this.allowFallback = options.allowFallback + }else { + this.allowFallback = false + } + if(goog.isDef(options.stringifyOutput)) { + this.stringifyOutput = options.stringifyOutput + }else { + this.stringifyOutput = false + } +}; +ol.parser.ogc.Versioned.prototype.getVersion = function(root, opt_options) { + var version; + if(root) { + version = this.version; + if(!version) { + version = root.getAttribute("version"); + if(!version) { + version = this.defaultVersion + } + } + }else { + version = opt_options && opt_options.version || this.version || this.defaultVersion + } + return version +}; +ol.parser.ogc.Versioned.prototype.getParser = function(version) { + version = version || this.defaultVersion; + var profile = this.profile ? "_" + this.profile : ""; + if(!this.parser || this.parser.VERSION != version) { + var format = this.parsers["v" + version.replace(/\./g, "_") + profile]; + if(!format) { + if(profile !== "" && this.allowFallback) { + profile = ""; + format = this.parsers["v" + version.replace(/\./g, "_") + profile] + } + if(!format) { + throw"Can't find a parser for version " + version + profile; + } + } + this.parser = new format(this.options) + } + return this.parser +}; +ol.parser.ogc.Versioned.prototype.write = function(obj, opt_options) { + var version = this.getVersion(null, opt_options); + this.parser = this.getParser(version); + var root = this.parser.write(obj, opt_options); + if(this.stringifyOutput === false) { + return root + }else { + return goog.dom.xml.serialize(root) + } +}; +ol.parser.ogc.Versioned.prototype.read = function(data, opt_options) { + if(goog.isString(data)) { + data = goog.dom.xml.loadXml(data) + } + var root = data.documentElement; + var version = this.getVersion(root); + this.parser = this.getParser(version); + var obj = this.parser.read(data, opt_options); + var errorProperty = this.parser.errorProperty || null; + if(errorProperty !== null && obj[errorProperty] === undefined) { + var format = new ol.parser.ogc.ExceptionReport; + obj.error = format.read(data) + } + obj.version = version; + return obj +}; +goog.provide("ol.parser.ogc.Filter"); +goog.require("ol.parser.ogc.Filter_v1_0_0"); +goog.require("ol.parser.ogc.Filter_v1_1_0"); +goog.require("ol.parser.ogc.Versioned"); +ol.ENABLE_OGCFILTER_1_0_0 = true; +ol.ENABLE_OGCFILTER_1_1_0 = true; +ol.parser.ogc.Filter = function(opt_options) { + opt_options = opt_options || {}; + opt_options["defaultVersion"] = "1.0.0"; + this.parsers = {}; + if(ol.ENABLE_OGCFILTER_1_0_0) { + this.parsers["v1_0_0"] = ol.parser.ogc.Filter_v1_0_0 + } + if(ol.ENABLE_OGCFILTER_1_1_0) { + this.parsers["v1_1_0"] = ol.parser.ogc.Filter_v1_1_0 + } + goog.base(this, opt_options) +}; +goog.inherits(ol.parser.ogc.Filter, ol.parser.ogc.Versioned); +goog.provide("ol.parser.ogc.OWSCommon_v1"); +goog.require("ol.parser.XML"); +ol.parser.ogc.OWSCommon_v1 = function() { + this.readers = {"http://www.opengis.net/ows":{"ServiceIdentification":function(node, obj) { + obj["serviceIdentification"] = {}; + this.readChildNodes(node, obj["serviceIdentification"]) + }, "Title":function(node, obj) { + obj["title"] = this.getChildValue(node) + }, "Abstract":function(node, serviceIdentification) { + serviceIdentification["abstract"] = this.getChildValue(node) + }, "Keywords":function(node, serviceIdentification) { + serviceIdentification["keywords"] = {}; + this.readChildNodes(node, serviceIdentification["keywords"]) + }, "Keyword":function(node, keywords) { + keywords[this.getChildValue(node)] = true + }, "ServiceType":function(node, serviceIdentification) { + serviceIdentification["serviceType"] = {"codeSpace":node.getAttribute("codeSpace"), "value":this.getChildValue(node)} + }, "ServiceTypeVersion":function(node, serviceIdentification) { + serviceIdentification["serviceTypeVersion"] = this.getChildValue(node) + }, "Fees":function(node, serviceIdentification) { + serviceIdentification["fees"] = this.getChildValue(node) + }, "AccessConstraints":function(node, serviceIdentification) { + serviceIdentification["accessConstraints"] = this.getChildValue(node) + }, "ServiceProvider":function(node, obj) { + obj["serviceProvider"] = {}; + this.readChildNodes(node, obj["serviceProvider"]) + }, "ProviderName":function(node, serviceProvider) { + serviceProvider["providerName"] = this.getChildValue(node) + }, "ProviderSite":function(node, serviceProvider) { + serviceProvider["providerSite"] = this.getAttributeNS(node, "http://www.w3.org/1999/xlink", "href") + }, "ServiceContact":function(node, serviceProvider) { + serviceProvider["serviceContact"] = {}; + this.readChildNodes(node, serviceProvider["serviceContact"]) + }, "IndividualName":function(node, serviceContact) { + serviceContact["individualName"] = this.getChildValue(node) + }, "PositionName":function(node, serviceContact) { + serviceContact["positionName"] = this.getChildValue(node) + }, "ContactInfo":function(node, serviceContact) { + serviceContact["contactInfo"] = {}; + this.readChildNodes(node, serviceContact["contactInfo"]) + }, "Phone":function(node, contactInfo) { + contactInfo["phone"] = {}; + this.readChildNodes(node, contactInfo["phone"]) + }, "Voice":function(node, phone) { + phone["voice"] = this.getChildValue(node) + }, "Address":function(node, contactInfo) { + contactInfo["address"] = {}; + this.readChildNodes(node, contactInfo["address"]) + }, "DeliveryPoint":function(node, address) { + address["deliveryPoint"] = this.getChildValue(node) + }, "City":function(node, address) { + address["city"] = this.getChildValue(node) + }, "AdministrativeArea":function(node, address) { + address["administrativeArea"] = this.getChildValue(node) + }, "PostalCode":function(node, address) { + address["postalCode"] = this.getChildValue(node) + }, "Country":function(node, address) { + address["country"] = this.getChildValue(node) + }, "ElectronicMailAddress":function(node, address) { + address["electronicMailAddress"] = this.getChildValue(node) + }, "Role":function(node, serviceContact) { + serviceContact["role"] = this.getChildValue(node) + }, "OperationsMetadata":function(node, obj) { + obj["operationsMetadata"] = {}; + this.readChildNodes(node, obj["operationsMetadata"]) + }, "Operation":function(node, operationsMetadata) { + var name = node.getAttribute("name"); + operationsMetadata[name] = {}; + this.readChildNodes(node, operationsMetadata[name]) + }, "DCP":function(node, operation) { + operation["dcp"] = {}; + this.readChildNodes(node, operation["dcp"]) + }, "HTTP":function(node, dcp) { + dcp["http"] = {}; + this.readChildNodes(node, dcp["http"]) + }, "Get":function(node, http) { + if(!http["get"]) { + http["get"] = [] + } + var obj = {"url":this.getAttributeNS(node, "http://www.w3.org/1999/xlink", "href")}; + this.readChildNodes(node, obj); + http["get"].push(obj) + }, "Post":function(node, http) { + if(!http["post"]) { + http["post"] = [] + } + var obj = {"url":this.getAttributeNS(node, "http://www.w3.org/1999/xlink", "href")}; + this.readChildNodes(node, obj); + http["post"].push(obj) + }, "Parameter":function(node, operation) { + if(!operation["parameters"]) { + operation["parameters"] = {} + } + var name = node.getAttribute("name"); + operation["parameters"][name] = {}; + this.readChildNodes(node, operation["parameters"][name]) + }, "Constraint":function(node, obj) { + if(!obj["constraints"]) { + obj["constraints"] = {} + } + var name = node.getAttribute("name"); + obj["constraints"][name] = {}; + this.readChildNodes(node, obj["constraints"][name]) + }, "Value":function(node, allowedValues) { + allowedValues[this.getChildValue(node)] = true + }, "OutputFormat":function(node, obj) { + obj["formats"].push({"value":this.getChildValue(node)}); + this.readChildNodes(node, obj) + }, "WGS84BoundingBox":function(node, obj) { + var boundingBox = {}; + boundingBox["crs"] = node.getAttribute("crs"); + if(obj["BoundingBox"]) { + obj["BoundingBox"].push(boundingBox) + }else { + obj["projection"] = boundingBox["crs"]; + boundingBox = obj + } + this.readChildNodes(node, boundingBox) + }, "BoundingBox":function(node, obj) { + var readers = this.readers[node.namespaceURI]; + readers["WGS84BoundingBox"].apply(this, [node, obj]) + }, "LowerCorner":function(node, obj) { + var str = this.getChildValue(node).replace(this.regExes.trimSpace, ""); + str = str.replace(this.regExes.trimComma, ","); + var pointList = str.split(this.regExes.splitSpace); + obj["left"] = pointList[0]; + obj["bottom"] = pointList[1] + }, "UpperCorner":function(node, obj) { + var str = this.getChildValue(node).replace(this.regExes.trimSpace, ""); + str = str.replace(this.regExes.trimComma, ","); + var pointList = str.split(this.regExes.splitSpace); + obj["right"] = pointList[0]; + obj["top"] = pointList[1]; + obj["bounds"] = [parseFloat(obj["left"]), parseFloat(obj["right"]), parseFloat(obj["bottom"]), parseFloat(obj["top"])]; + delete obj["left"]; + delete obj["bottom"]; + delete obj["right"]; + delete obj["top"] + }, "Language":function(node, obj) { + obj["language"] = this.getChildValue(node) + }}}; + goog.base(this) +}; +goog.inherits(ol.parser.ogc.OWSCommon_v1, ol.parser.XML); +goog.provide("ol.parser.ogc.OWSCommon_v1_1_0"); +goog.require("goog.object"); +goog.require("ol.parser.ogc.OWSCommon_v1"); +ol.parser.ogc.OWSCommon_v1_1_0 = function() { + goog.base(this); + this.readers["http://www.opengis.net/ows/1.1"] = this.readers["http://www.opengis.net/ows"]; + goog.object.extend(this.readers["http://www.opengis.net/ows/1.1"], {"AllowedValues":function(node, parameter) { + parameter["allowedValues"] = {}; + this.readChildNodes(node, parameter["allowedValues"]) + }, "AnyValue":function(node, parameter) { + parameter["anyValue"] = true + }, "DataType":function(node, parameter) { + parameter["dataType"] = this.getChildValue(node) + }, "Range":function(node, allowedValues) { + allowedValues["range"] = {}; + this.readChildNodes(node, allowedValues["range"]) + }, "MinimumValue":function(node, range) { + range["minValue"] = this.getChildValue(node) + }, "MaximumValue":function(node, range) { + range["maxValue"] = this.getChildValue(node) + }, "Identifier":function(node, obj) { + obj["identifier"] = this.getChildValue(node) + }, "SupportedCRS":function(node, obj) { + obj["supportedCRS"] = this.getChildValue(node) + }}) +}; +goog.inherits(ol.parser.ogc.OWSCommon_v1_1_0, ol.parser.ogc.OWSCommon_v1); +goog.provide("ol.parser.ogc.WMSCapabilities_v1"); +goog.require("goog.dom.xml"); +goog.require("goog.object"); +goog.require("ol.parser.XML"); +ol.parser.ogc.WMSCapabilities_v1 = function() { + this.defaultNamespaceURI = "http://www.opengis.net/wms"; + this.errorProperty = "service"; + this.readers = {"http://www.opengis.net/wms":{"Service":function(node, obj) { + obj["service"] = {}; + this.readChildNodes(node, obj["service"]) + }, "Name":function(node, obj) { + obj["name"] = this.getChildValue(node) + }, "Title":function(node, obj) { + obj["title"] = this.getChildValue(node) + }, "Abstract":function(node, obj) { + obj["abstract"] = this.getChildValue(node) + }, "BoundingBox":function(node, obj) { + var bbox = {}; + bbox["bbox"] = [parseFloat(node.getAttribute("minx")), parseFloat(node.getAttribute("miny")), parseFloat(node.getAttribute("maxx")), parseFloat(node.getAttribute("maxy"))]; + var res = {x:parseFloat(node.getAttribute("resx")), y:parseFloat(node.getAttribute("resy"))}; + if(!(isNaN(res.x) && isNaN(res.y))) { + bbox["res"] = res + } + return bbox + }, "OnlineResource":function(node, obj) { + obj["href"] = this.getAttributeNS(node, "http://www.w3.org/1999/xlink", "href") + }, "ContactInformation":function(node, obj) { + obj["contactInformation"] = {}; + this.readChildNodes(node, obj["contactInformation"]) + }, "ContactPersonPrimary":function(node, obj) { + obj["personPrimary"] = {}; + this.readChildNodes(node, obj["personPrimary"]) + }, "ContactPerson":function(node, obj) { + obj["person"] = this.getChildValue(node) + }, "ContactOrganization":function(node, obj) { + obj["organization"] = this.getChildValue(node) + }, "ContactPosition":function(node, obj) { + obj["position"] = this.getChildValue(node) + }, "ContactAddress":function(node, obj) { + obj["contactAddress"] = {}; + this.readChildNodes(node, obj["contactAddress"]) + }, "AddressType":function(node, obj) { + obj["type"] = this.getChildValue(node) + }, "Address":function(node, obj) { + obj["address"] = this.getChildValue(node) + }, "City":function(node, obj) { + obj["city"] = this.getChildValue(node) + }, "StateOrProvince":function(node, obj) { + obj["stateOrProvince"] = this.getChildValue(node) + }, "PostCode":function(node, obj) { + obj["postcode"] = this.getChildValue(node) + }, "Country":function(node, obj) { + obj["country"] = this.getChildValue(node) + }, "ContactVoiceTelephone":function(node, obj) { + obj["phone"] = this.getChildValue(node) + }, "ContactFacsimileTelephone":function(node, obj) { + obj["fax"] = this.getChildValue(node) + }, "ContactElectronicMailAddress":function(node, obj) { + obj["email"] = this.getChildValue(node) + }, "Fees":function(node, obj) { + var fees = this.getChildValue(node); + if(fees && fees.toLowerCase() != "none") { + obj["fees"] = fees + } + }, "AccessConstraints":function(node, obj) { + var constraints = this.getChildValue(node); + if(constraints && constraints.toLowerCase() != "none") { + obj["accessConstraints"] = constraints + } + }, "Capability":function(node, obj) { + obj["capability"] = {}; + obj["capability"]["nestedLayers"] = []; + obj["capability"]["layers"] = []; + this.readChildNodes(node, obj["capability"]) + }, "Request":function(node, obj) { + obj["request"] = {}; + this.readChildNodes(node, obj["request"]) + }, "GetCapabilities":function(node, obj) { + obj["getcapabilities"] = {}; + obj["getcapabilities"]["formats"] = []; + this.readChildNodes(node, obj["getcapabilities"]) + }, "Format":function(node, obj) { + if(goog.isArray(obj["formats"])) { + obj["formats"].push(this.getChildValue(node)) + }else { + obj["format"] = this.getChildValue(node) + } + }, "DCPType":function(node, obj) { + this.readChildNodes(node, obj) + }, "HTTP":function(node, obj) { + this.readChildNodes(node, obj) + }, "Get":function(node, obj) { + obj["get"] = {}; + this.readChildNodes(node, obj["get"]) + }, "Post":function(node, obj) { + obj["post"] = {}; + this.readChildNodes(node, obj["post"]) + }, "GetMap":function(node, obj) { + obj["getmap"] = {}; + obj["getmap"]["formats"] = []; + this.readChildNodes(node, obj["getmap"]) + }, "GetFeatureInfo":function(node, obj) { + obj["getfeatureinfo"] = {}; + obj["getfeatureinfo"]["formats"] = []; + this.readChildNodes(node, obj["getfeatureinfo"]) + }, "Exception":function(node, obj) { + obj["exception"] = {}; + obj["exception"]["formats"] = []; + this.readChildNodes(node, obj["exception"]) + }, "Layer":function(node, obj) { + var parentLayer, capability; + if(obj["capability"]) { + capability = obj["capability"]; + parentLayer = obj + }else { + capability = obj + } + var attrNode = node.getAttributeNode("queryable"); + var queryable = attrNode && attrNode.specified ? node.getAttribute("queryable") : null; + attrNode = node.getAttributeNode("cascaded"); + var cascaded = attrNode && attrNode.specified ? node.getAttribute("cascaded") : null; + attrNode = node.getAttributeNode("opaque"); + var opaque = attrNode && attrNode.specified ? node.getAttribute("opaque") : null; + var noSubsets = node.getAttribute("noSubsets"); + var fixedWidth = node.getAttribute("fixedWidth"); + var fixedHeight = node.getAttribute("fixedHeight"); + var parent = parentLayer || {}; + var layer = {"nestedLayers":[], "styles":parentLayer ? [].concat(parentLayer["styles"]) : [], "srs":{}, "metadataURLs":[], "bbox":{}, "llbbox":parent["llbbox"], "dimensions":{}, "authorityURLs":{}, "identifiers":{}, "keywords":[], "queryable":queryable && queryable !== "" ? queryable === "1" || queryable === "true" : parent["queryable"] || false, "cascaded":cascaded !== null ? parseInt(cascaded, 10) : parent["cascaded"] || 0, "opaque":opaque ? opaque === "1" || opaque === "true" : parent["opaque"] || + false, "noSubsets":noSubsets !== null ? noSubsets === "1" || noSubsets === "true" : parent["noSubsets"] || false, "fixedWidth":fixedWidth !== null ? parseInt(fixedWidth, 10) : parent["fixedWidth"] || 0, "fixedHeight":fixedHeight !== null ? parseInt(fixedHeight, 10) : parent["fixedHeight"] || 0, "minScale":parent["minScale"], "maxScale":parent["maxScale"], "attribution":parent["attribution"]}; + if(parentLayer) { + goog.object.extend(layer["srs"], parent["srs"]); + goog.object.extend(layer["bbox"], parent["bbox"]); + goog.object.extend(layer["dimensions"], parent["dimensions"]); + goog.object.extend(layer["authorityURLs"], parent["authorityURLs"]) + } + obj["nestedLayers"].push(layer); + layer["capability"] = capability; + this.readChildNodes(node, layer); + delete layer["capability"]; + if(layer["name"]) { + var parts = layer["name"].split(":"), request = capability["request"], gfi = request["getfeatureinfo"]; + if(parts.length > 0) { + layer["prefix"] = parts[0] + } + capability["layers"].push(layer); + if(!goog.isDef(layer["formats"])) { + layer["formats"] = request["getmap"]["formats"] + } + if(!goog.isDef(layer["infoFormats"]) && gfi) { + layer["infoFormats"] = gfi["formats"] + } + } + }, "Attribution":function(node, obj) { + obj["attribution"] = {}; + this.readChildNodes(node, obj["attribution"]) + }, "LogoURL":function(node, obj) { + obj["logo"] = {"width":node.getAttribute("width"), "height":node.getAttribute("height")}; + this.readChildNodes(node, obj["logo"]) + }, "Style":function(node, obj) { + var style = {}; + obj["styles"].push(style); + this.readChildNodes(node, style) + }, "LegendURL":function(node, obj) { + var legend = {"width":node.getAttribute("width"), "height":node.getAttribute("height")}; + obj["legend"] = legend; + this.readChildNodes(node, legend) + }, "MetadataURL":function(node, obj) { + var metadataURL = {"type":node.getAttribute("type")}; + obj["metadataURLs"].push(metadataURL); + this.readChildNodes(node, metadataURL) + }, "DataURL":function(node, obj) { + obj["dataURL"] = {}; + this.readChildNodes(node, obj["dataURL"]) + }, "FeatureListURL":function(node, obj) { + obj["featureListURL"] = {}; + this.readChildNodes(node, obj["featureListURL"]) + }, "AuthorityURL":function(node, obj) { + var name = node.getAttribute("name"); + var authority = {}; + this.readChildNodes(node, authority); + obj["authorityURLs"][name] = authority["href"] + }, "Identifier":function(node, obj) { + var authority = node.getAttribute("authority"); + obj["identifiers"][authority] = this.getChildValue(node) + }, "KeywordList":function(node, obj) { + this.readChildNodes(node, obj) + }, "SRS":function(node, obj) { + obj["srs"][this.getChildValue(node)] = true + }}}; + goog.base(this) +}; +goog.inherits(ol.parser.ogc.WMSCapabilities_v1, ol.parser.XML); +ol.parser.ogc.WMSCapabilities_v1.prototype.read = function(data) { + if(goog.isString(data)) { + data = goog.dom.xml.loadXml(data) + } + if(data && data.nodeType == 9) { + data = data.documentElement + } + var obj = {}; + this.readNode(data, obj); + return obj +}; +goog.provide("ol.parser.ogc.WMSCapabilities_v1_1"); +goog.require("goog.object"); +goog.require("ol.parser.ogc.WMSCapabilities_v1"); +ol.parser.ogc.WMSCapabilities_v1_1 = function() { + goog.base(this); + var bboxreader = this.readers["http://www.opengis.net/wms"]["BoundingBox"]; + goog.object.extend(this.readers["http://www.opengis.net/wms"], {"WMT_MS_Capabilities":function(node, obj) { + this.readChildNodes(node, obj) + }, "Keyword":function(node, obj) { + if(obj["keywords"]) { + obj["keywords"].push({"value":this.getChildValue(node)}) + } + }, "DescribeLayer":function(node, obj) { + obj["describelayer"] = {"formats":[]}; + this.readChildNodes(node, obj["describelayer"]) + }, "GetLegendGraphic":function(node, obj) { + obj["getlegendgraphic"] = {"formats":[]}; + this.readChildNodes(node, obj["getlegendgraphic"]) + }, "GetStyles":function(node, obj) { + obj["getstyles"] = {"formats":[]}; + this.readChildNodes(node, obj["getstyles"]) + }, "PutStyles":function(node, obj) { + obj["putstyles"] = {"formats":[]}; + this.readChildNodes(node, obj["putstyles"]) + }, "UserDefinedSymbolization":function(node, obj) { + var userSymbols = {"supportSLD":parseInt(node.getAttribute("SupportSLD"), 10) == 1, "userLayer":parseInt(node.getAttribute("UserLayer"), 10) == 1, "userStyle":parseInt(node.getAttribute("UserStyle"), 10) == 1, "remoteWFS":parseInt(node.getAttribute("RemoteWFS"), 10) == 1}; + obj["userSymbols"] = userSymbols + }, "LatLonBoundingBox":function(node, obj) { + obj["llbbox"] = [parseFloat(node.getAttribute("minx")), parseFloat(node.getAttribute("miny")), parseFloat(node.getAttribute("maxx")), parseFloat(node.getAttribute("maxy"))] + }, "BoundingBox":function(node, obj) { + var bbox = bboxreader.apply(this, arguments); + bbox["srs"] = node.getAttribute("SRS"); + obj["bbox"][bbox["srs"]] = bbox + }, "ScaleHint":function(node, obj) { + var min = parseFloat(node.getAttribute("min")); + var max = parseFloat(node.getAttribute("max")); + var rad2 = Math.pow(2, 0.5); + var dpi = 25.4 / 0.28; + var ipm = 39.37; + if(min !== 0) { + obj["maxScale"] = parseFloat(min / rad2 * ipm * dpi) + } + if(max != Infinity) { + obj["minScale"] = parseFloat(max / rad2 * ipm * dpi) + } + }, "Dimension":function(node, obj) { + var name = node.getAttribute("name").toLowerCase(); + var dim = {"name":name, "units":node.getAttribute("units"), "unitsymbol":node.getAttribute("unitSymbol")}; + obj["dimensions"][dim.name] = dim + }, "Extent":function(node, obj) { + var name = node.getAttribute("name").toLowerCase(); + if(name in obj["dimensions"]) { + var extent = obj["dimensions"][name]; + extent["nearestVal"] = node.getAttribute("nearestValue") === "1"; + extent["multipleVal"] = node.getAttribute("multipleValues") === "1"; + extent["current"] = node.getAttribute("current") === "1"; + extent["default"] = node.getAttribute("default") || ""; + var values = this.getChildValue(node); + extent["values"] = values.split(",") + } + }}) +}; +goog.inherits(ol.parser.ogc.WMSCapabilities_v1_1, ol.parser.ogc.WMSCapabilities_v1); +goog.provide("ol.parser.ogc.WMSCapabilities_v1_1_0"); +goog.require("goog.object"); +goog.require("ol.parser.ogc.WMSCapabilities_v1_1"); +ol.parser.ogc.WMSCapabilities_v1_1_0 = function() { + goog.base(this); + this.version = "1.1.0"; + goog.object.extend(this.readers["http://www.opengis.net/wms"], {"SRS":function(node, obj) { + var srs = this.getChildValue(node); + var values = srs.split(/ +/); + for(var i = 0, ii = values.length;i < ii;i++) { + obj["srs"][values[i]] = true + } + }}) +}; +goog.inherits(ol.parser.ogc.WMSCapabilities_v1_1_0, ol.parser.ogc.WMSCapabilities_v1_1); +goog.provide("ol.parser.ogc.WMSCapabilities_v1_0_0"); +goog.require("goog.object"); +goog.require("goog.string"); +goog.require("ol.parser.ogc.WMSCapabilities_v1_1_0"); +ol.parser.ogc.WMSCapabilities_v1_0_0 = function() { + goog.base(this); + this.version = "1.0.0"; + goog.object.extend(this.readers["http://www.opengis.net/wms"], {"Format":function(node, obj) { + for(var i = 0, ii = node.childNodes.length;i < ii;i++) { + var child = node.childNodes[i]; + var local = child.localName || child.nodeName.split(":").pop(); + if(goog.isArray(obj["formats"])) { + obj["formats"].push(local) + }else { + obj["format"] = local + } + } + }, "Keywords":function(node, obj) { + if(!goog.isDef(obj["keywords"])) { + obj["keywords"] = [] + } + var keywords = this.getChildValue(node).split(/ +/); + for(var i = 0, ii = keywords.length;i < ii;++i) { + if(!goog.string.isEmpty(keywords[i])) { + obj["keywords"].push({"value":keywords[i]}) + } + } + }, "OnlineResource":function(node, obj) { + obj["href"] = this.getChildValue(node) + }, "Get":function(node, obj) { + obj["get"] = {"href":node.getAttribute("onlineResource")} + }, "Post":function(node, obj) { + obj["post"] = {"href":node.getAttribute("onlineResource")} + }, "Map":function(node, obj) { + var reader = this.readers[this.defaultNamespaceURI]["GetMap"]; + reader.apply(this, arguments) + }, "Capabilities":function(node, obj) { + var reader = this.readers[this.defaultNamespaceURI]["GetCapabilities"]; + reader.apply(this, arguments) + }, "FeatureInfo":function(node, obj) { + var reader = this.readers[this.defaultNamespaceURI]["GetFeatureInfo"]; + reader.apply(this, arguments) + }}) +}; +goog.inherits(ol.parser.ogc.WMSCapabilities_v1_0_0, ol.parser.ogc.WMSCapabilities_v1_1_0); +goog.provide("ol.parser.ogc.WMSCapabilities_v1_1_1"); +goog.require("goog.object"); +goog.require("ol.parser.ogc.WMSCapabilities_v1_1"); +ol.parser.ogc.WMSCapabilities_v1_1_1 = function() { + goog.base(this); + this.version = "1.1.1"; + goog.object.extend(this.readers["http://www.opengis.net/wms"], {"SRS":function(node, obj) { + obj["srs"][this.getChildValue(node)] = true + }}) +}; +goog.inherits(ol.parser.ogc.WMSCapabilities_v1_1_1, ol.parser.ogc.WMSCapabilities_v1_1); +goog.provide("ol.parser.ogc.WMSCapabilities_v1_1_1_WMSC"); +goog.require("goog.object"); +goog.require("ol.parser.ogc.WMSCapabilities_v1_1_1"); +ol.parser.ogc.WMSCapabilities_v1_1_1_WMSC = function() { + goog.base(this); + this.profile = "WMSC"; + goog.object.extend(this.readers["http://www.opengis.net/wms"], {"VendorSpecificCapabilities":function(node, obj) { + obj["vendorSpecific"] = {"tileSets":[]}; + this.readChildNodes(node, obj["vendorSpecific"]) + }, "TileSet":function(node, vendorSpecific) { + var tileset = {"srs":{}, "bbox":{}, "resolutions":[]}; + this.readChildNodes(node, tileset); + vendorSpecific.tileSets.push(tileset) + }, "Resolutions":function(node, tileset) { + var res = this.getChildValue(node).split(" "); + for(var i = 0, ii = res.length;i < ii;i++) { + if(res[i] !== "") { + tileset["resolutions"].push(parseFloat(res[i])) + } + } + }, "Width":function(node, tileset) { + tileset["width"] = parseInt(this.getChildValue(node), 10) + }, "Height":function(node, tileset) { + tileset["height"] = parseInt(this.getChildValue(node), 10) + }, "Layers":function(node, tileset) { + tileset["layers"] = this.getChildValue(node) + }, "Styles":function(node, tileset) { + tileset["styles"] = this.getChildValue(node) + }}) +}; +goog.inherits(ol.parser.ogc.WMSCapabilities_v1_1_1_WMSC, ol.parser.ogc.WMSCapabilities_v1_1_1); +goog.provide("ol.parser.ogc.WMSCapabilities_v1_3_0"); +goog.require("goog.object"); +goog.require("ol.parser.ogc.WMSCapabilities_v1"); +ol.parser.ogc.WMSCapabilities_v1_3_0 = function() { + goog.base(this); + var bboxreader = this.readers["http://www.opengis.net/wms"]["BoundingBox"]; + goog.object.extend(this.readers["http://www.opengis.net/wms"], {"WMS_Capabilities":function(node, obj) { + this.readChildNodes(node, obj) + }, "LayerLimit":function(node, obj) { + obj["layerLimit"] = parseInt(this.getChildValue(node), 10) + }, "MaxWidth":function(node, obj) { + obj["maxWidth"] = parseInt(this.getChildValue(node), 10) + }, "MaxHeight":function(node, obj) { + obj["maxHeight"] = parseInt(this.getChildValue(node), 10) + }, "BoundingBox":function(node, obj) { + var bbox = bboxreader.apply(this, arguments); + bbox["srs"] = node.getAttribute("CRS"); + obj["bbox"][bbox["srs"]] = bbox + }, "CRS":function(node, obj) { + this.readers["http://www.opengis.net/wms"]["SRS"].apply(this, arguments) + }, "EX_GeographicBoundingBox":function(node, obj) { + obj["llbbox"] = []; + this.readChildNodes(node, obj["llbbox"]) + }, "westBoundLongitude":function(node, obj) { + obj[0] = this.getChildValue(node) + }, "eastBoundLongitude":function(node, obj) { + obj[2] = this.getChildValue(node) + }, "southBoundLatitude":function(node, obj) { + obj[1] = this.getChildValue(node) + }, "northBoundLatitude":function(node, obj) { + obj[3] = this.getChildValue(node) + }, "MinScaleDenominator":function(node, obj) { + obj["maxScale"] = parseFloat(this.getChildValue(node)).toPrecision(16) + }, "MaxScaleDenominator":function(node, obj) { + obj["minScale"] = parseFloat(this.getChildValue(node)).toPrecision(16) + }, "Dimension":function(node, obj) { + var name = node.getAttribute("name").toLowerCase(); + var dim = {"name":name, "units":node.getAttribute("units"), "unitsymbol":node.getAttribute("unitSymbol"), "nearestVal":node.getAttribute("nearestValue") === "1", "multipleVal":node.getAttribute("multipleValues") === "1", "default":node.getAttribute("default") || "", "current":node.getAttribute("current") === "1", "values":this.getChildValue(node).split(",")}; + obj["dimensions"][dim["name"]] = dim + }, "Keyword":function(node, obj) { + var keyword = {"value":this.getChildValue(node), "vocabulary":node.getAttribute("vocabulary")}; + if(obj["keywords"]) { + obj["keywords"].push(keyword) + } + }}); + this.readers["sld"] = {"UserDefinedSymbolization":function(node, obj) { + var readers = this.readers["http://www.opengis.net/wms"]; + readers.UserDefinedSymbolization.apply(this, arguments); + var value = node.getAttribute("InlineFeature"); + obj["userSymbols"]["inlineFeature"] = parseInt(value, 10) == 1; + value = node.getAttribute("RemoteWCS"); + obj["userSymbols"]["remoteWCS"] = parseInt(value, 10) == 1 + }, "DescribeLayer":function(node, obj) { + var readers = this.readers["http://www.opengis.net/wms"]; + readers.DescribeLayer.apply(this, arguments) + }, "GetLegendGraphic":function(node, obj) { + var readers = this.readers["http://www.opengis.net/wms"]; + readers.GetLegendGraphic.apply(this, arguments) + }} +}; +goog.inherits(ol.parser.ogc.WMSCapabilities_v1_3_0, ol.parser.ogc.WMSCapabilities_v1); +goog.provide("ol.parser.ogc.WMSCapabilities"); +goog.require("ol.parser.ogc.Versioned"); +goog.require("ol.parser.ogc.WMSCapabilities_v1_0_0"); +goog.require("ol.parser.ogc.WMSCapabilities_v1_1_0"); +goog.require("ol.parser.ogc.WMSCapabilities_v1_1_1"); +goog.require("ol.parser.ogc.WMSCapabilities_v1_1_1_WMSC"); +goog.require("ol.parser.ogc.WMSCapabilities_v1_3_0"); +ol.ENABLE_WMSCAPS_1_0_0 = false; +ol.ENABLE_WMSCAPS_1_1_0 = true; +ol.ENABLE_WMSCAPS_1_1_1 = true; +ol.ENABLE_WMSCAPS_1_3_0 = true; +ol.ENABLE_WMSCAPS_1_1_1_WMSC = true; +ol.parser.ogc.WMSCapabilities = function(opt_options) { + opt_options = opt_options || {}; + opt_options["defaultVersion"] = "1.1.1"; + this.parsers = {}; + if(ol.ENABLE_WMSCAPS_1_0_0) { + this.parsers["v1_0_0"] = ol.parser.ogc.WMSCapabilities_v1_0_0 + } + if(ol.ENABLE_WMSCAPS_1_1_0) { + this.parsers["v1_1_0"] = ol.parser.ogc.WMSCapabilities_v1_1_0 + } + if(ol.ENABLE_WMSCAPS_1_1_1) { + this.parsers["v1_1_1"] = ol.parser.ogc.WMSCapabilities_v1_1_1 + } + if(ol.ENABLE_WMSCAPS_1_1_1_WMSC) { + this.parsers["v1_1_1_WMSC"] = ol.parser.ogc.WMSCapabilities_v1_1_1_WMSC + } + if(ol.ENABLE_WMSCAPS_1_3_0) { + this.parsers["v1_3_0"] = ol.parser.ogc.WMSCapabilities_v1_3_0 + } + goog.base(this, opt_options) +}; +goog.inherits(ol.parser.ogc.WMSCapabilities, ol.parser.ogc.Versioned); +goog.provide("ol.parser.ogc.WMTSCapabilities_v1_0_0"); +goog.require("goog.dom.xml"); +goog.require("ol.coordinate"); +goog.require("ol.parser.XML"); +goog.require("ol.parser.ogc.OWSCommon_v1_1_0"); +goog.require("ol.proj"); +ol.parser.ogc.WMTSCapabilities_v1_0_0 = function() { + this.defaultNamespaceURI = "http://www.opengis.net/wmts/1.0"; + this.errorProperty = "serviceIdentification"; + this.readers = {"http://www.opengis.net/wmts/1.0":{"Capabilities":function(node, obj) { + this.readChildNodes(node, obj) + }, "Contents":function(node, obj) { + obj["contents"] = {}; + obj["contents"]["layers"] = []; + obj["contents"]["tileMatrixSets"] = {}; + this.readChildNodes(node, obj["contents"]) + }, "Layer":function(node, obj) { + var layer = {"styles":[], "formats":[], "dimensions":[], "tileMatrixSetLinks":[]}; + layer["layers"] = []; + this.readChildNodes(node, layer); + obj["layers"].push(layer) + }, "Style":function(node, obj) { + var style = {}; + style["isDefault"] = node.getAttribute("isDefault") === "true"; + this.readChildNodes(node, style); + obj["styles"].push(style) + }, "Format":function(node, obj) { + obj["formats"].push(this.getChildValue(node)) + }, "TileMatrixSetLink":function(node, obj) { + var tileMatrixSetLink = {}; + this.readChildNodes(node, tileMatrixSetLink); + obj["tileMatrixSetLinks"].push(tileMatrixSetLink) + }, "TileMatrixSet":function(node, obj) { + if(obj["layers"]) { + var tileMatrixSet = {"matrixIds":[]}; + this.readChildNodes(node, tileMatrixSet); + obj["tileMatrixSets"][tileMatrixSet["identifier"]] = tileMatrixSet + }else { + obj["tileMatrixSet"] = this.getChildValue(node) + } + }, "TileMatrix":function(node, obj) { + var tileMatrix = {"supportedCRS":obj["supportedCRS"]}; + this.readChildNodes(node, tileMatrix); + obj["matrixIds"].push(tileMatrix) + }, "ScaleDenominator":function(node, obj) { + obj["scaleDenominator"] = parseFloat(this.getChildValue(node)) + }, "TopLeftCorner":function(node, obj) { + var topLeftCorner = this.getChildValue(node); + var coords = topLeftCorner.split(" "); + var axisOrientation = ol.proj.get(obj["supportedCRS"]).getAxisOrientation(); + obj["topLeftCorner"] = ol.coordinate.fromProjectedArray([parseFloat(coords[0]), parseFloat(coords[1])], axisOrientation) + }, "TileWidth":function(node, obj) { + obj["tileWidth"] = parseInt(this.getChildValue(node), 10) + }, "TileHeight":function(node, obj) { + obj["tileHeight"] = parseInt(this.getChildValue(node), 10) + }, "MatrixWidth":function(node, obj) { + obj["matrixWidth"] = parseInt(this.getChildValue(node), 10) + }, "MatrixHeight":function(node, obj) { + obj["matrixHeight"] = parseInt(this.getChildValue(node), 10) + }, "ResourceURL":function(node, obj) { + var resourceType = node.getAttribute("resourceType"); + var format = node.getAttribute("format"); + var template = node.getAttribute("template"); + if(!obj["resourceUrls"]) { + obj["resourceUrls"] = {} + } + if(!obj["resourceUrls"][resourceType]) { + obj["resourceUrls"][resourceType] = {} + } + if(!obj["resourceUrls"][resourceType][format]) { + obj["resourceUrls"][resourceType][format] = [] + } + obj["resourceUrls"][resourceType][format].push(template) + }, "WSDL":function(node, obj) { + obj["wsdl"] = {}; + obj["wsdl"]["href"] = this.getAttributeNS(node, "http://www.w3.org/1999/xlink", "href") + }, "ServiceMetadataURL":function(node, obj) { + obj["serviceMetadataUrl"] = {}; + obj["serviceMetadataUrl"]["href"] = this.getAttributeNS(node, "http://www.w3.org/1999/xlink", "href") + }, "LegendURL":function(node, obj) { + obj["legend"] = {}; + obj["legend"]["href"] = this.getAttributeNS(node, "http://www.w3.org/1999/xlink", "href"); + obj["legend"]["format"] = node.getAttribute("format") + }, "Dimension":function(node, obj) { + var dimension = {"values":[]}; + this.readChildNodes(node, dimension); + obj["dimensions"].push(dimension) + }, "Default":function(node, obj) { + obj["default"] = this.getChildValue(node) + }, "Value":function(node, obj) { + obj["values"].push(this.getChildValue(node)) + }}}; + var ows = new ol.parser.ogc.OWSCommon_v1_1_0; + this.readers["http://www.opengis.net/ows/1.1"] = ows.readers["http://www.opengis.net/ows/1.1"]; + goog.base(this) +}; +goog.inherits(ol.parser.ogc.WMTSCapabilities_v1_0_0, ol.parser.XML); +ol.parser.ogc.WMTSCapabilities_v1_0_0.prototype.read = function(data) { + if(goog.isString(data)) { + data = goog.dom.xml.loadXml(data) + } + if(data && data.nodeType == 9) { + data = data.documentElement + } + var obj = {}; + this.readNode(data, obj); + return obj +}; +goog.provide("ol.parser.ogc.WMTSCapabilities"); +goog.require("ol.parser.ogc.Versioned"); +goog.require("ol.parser.ogc.WMTSCapabilities_v1_0_0"); +ol.parser.ogc.WMTSCapabilities = function(opt_options) { + opt_options = opt_options || {}; + opt_options["defaultVersion"] = "1.0.0"; + this.parsers = {}; + this.parsers["v1_0_0"] = ol.parser.ogc.WMTSCapabilities_v1_0_0; + goog.base(this, opt_options) +}; +goog.inherits(ol.parser.ogc.WMTSCapabilities, ol.parser.ogc.Versioned); +goog.provide("ol.parser.polyline"); +ol.parser.polyline.encodeFlatCoordinates = function(flatPoints, opt_dimension) { + var dimension = opt_dimension || 2; + return ol.parser.polyline.encodeDeltas(flatPoints, dimension) +}; +ol.parser.polyline.decodeFlatCoordinates = function(encoded, opt_dimension) { + var dimension = opt_dimension || 2; + return ol.parser.polyline.decodeDeltas(encoded, dimension) +}; +ol.parser.polyline.encodeDeltas = function(numbers, dimension, opt_factor) { + var factor = opt_factor || 1E5; + var d; + var lastNumbers = new Array(dimension); + for(d = 0;d < dimension;++d) { + lastNumbers[d] = 0 + } + var numbersLength = numbers.length; + for(var i = 0;i < numbersLength;) { + for(d = 0;d < dimension;++d, ++i) { + var num = numbers[i]; + var delta = num - lastNumbers[d]; + lastNumbers[d] = num; + numbers[i] = delta + } + } + return ol.parser.polyline.encodeFloats(numbers, factor) +}; +ol.parser.polyline.decodeDeltas = function(encoded, dimension, opt_factor) { + var factor = opt_factor || 1E5; + var d; + var lastNumbers = new Array(dimension); + for(d = 0;d < dimension;++d) { + lastNumbers[d] = 0 + } + var numbers = ol.parser.polyline.decodeFloats(encoded, factor); + var numbersLength = numbers.length; + for(var i = 0;i < numbersLength;) { + for(d = 0;d < dimension;++d, ++i) { + lastNumbers[d] += numbers[i]; + numbers[i] = lastNumbers[d] + } + } + return numbers +}; +ol.parser.polyline.encodeFloats = function(numbers, opt_factor) { + var factor = opt_factor || 1E5; + var numbersLength = numbers.length; + for(var i = 0;i < numbersLength;++i) { + numbers[i] = Math.round(numbers[i] * factor) + } + return ol.parser.polyline.encodeSignedIntegers(numbers) +}; +ol.parser.polyline.decodeFloats = function(encoded, opt_factor) { + var factor = opt_factor || 1E5; + var numbers = ol.parser.polyline.decodeSignedIntegers(encoded); + var numbersLength = numbers.length; + for(var i = 0;i < numbersLength;++i) { + numbers[i] /= factor + } + return numbers +}; +ol.parser.polyline.encodeSignedIntegers = function(numbers) { + var numbersLength = numbers.length; + for(var i = 0;i < numbersLength;++i) { + var num = numbers[i]; + var signedNum = num << 1; + if(num < 0) { + signedNum = ~signedNum + } + numbers[i] = signedNum + } + return ol.parser.polyline.encodeUnsignedIntegers(numbers) +}; +ol.parser.polyline.decodeSignedIntegers = function(encoded) { + var numbers = ol.parser.polyline.decodeUnsignedIntegers(encoded); + var numbersLength = numbers.length; + for(var i = 0;i < numbersLength;++i) { + var num = numbers[i]; + numbers[i] = num & 1 ? ~(num >> 1) : num >> 1 + } + return numbers +}; +ol.parser.polyline.encodeUnsignedIntegers = function(numbers) { + var encoded = ""; + var numbersLength = numbers.length; + for(var i = 0;i < numbersLength;++i) { + encoded += ol.parser.polyline.encodeUnsignedInteger(numbers[i]) + } + return encoded +}; +ol.parser.polyline.decodeUnsignedIntegers = function(encoded) { + var numbers = []; + var current = 0; + var shift = 0; + var encodedLength = encoded.length; + for(var i = 0;i < encodedLength;++i) { + var b = encoded.charCodeAt(i) - 63; + current |= (b & 31) << shift; + if(b < 32) { + numbers.push(current); + current = 0; + shift = 0 + }else { + shift += 5 + } + } + return numbers +}; +ol.parser.polyline.encodeFloat = function(num, opt_factor) { + num = Math.round(num * (opt_factor || 1E5)); + return ol.parser.polyline.encodeSignedInteger(num) +}; +ol.parser.polyline.decodeFloat = function(encoded, opt_factor) { + var result = ol.parser.polyline.decodeSignedInteger(encoded); + return result / (opt_factor || 1E5) +}; +ol.parser.polyline.encodeSignedInteger = function(num) { + var signedNum = num << 1; + if(num < 0) { + signedNum = ~signedNum + } + return ol.parser.polyline.encodeUnsignedInteger(signedNum) +}; +ol.parser.polyline.decodeSignedInteger = function(encoded) { + var result = ol.parser.polyline.decodeUnsignedInteger(encoded); + return result & 1 ? ~(result >> 1) : result >> 1 +}; +ol.parser.polyline.encodeUnsignedInteger = function(num) { + var value, encoded = ""; + while(num >= 32) { + value = (32 | num & 31) + 63; + encoded += String.fromCharCode(value); + num >>= 5 + } + value = num + 63; + encoded += String.fromCharCode(value); + return encoded +}; +ol.parser.polyline.decodeUnsignedInteger = function(encoded) { + var result = 0; + var shift = 0; + var encodedLength = encoded.length; + for(var i = 0;i < encodedLength;++i) { + var b = encoded.charCodeAt(i) - 63; + result |= (b & 31) << shift; + if(b < 32) { + break + } + shift += 5 + } + return result +}; +goog.provide("ol.proj.CH"); +goog.provide("ol.proj.EPSG2056"); +goog.provide("ol.proj.EPSG21781"); +goog.require("goog.asserts"); +goog.require("goog.math"); +goog.require("ol.Projection"); +goog.require("ol.ProjectionUnits"); +goog.require("ol.ellipsoid.BESSEL1841"); +goog.require("ol.proj"); +goog.require("ol.proj.EPSG4326"); +ol.proj.CH = function(options) { + goog.base(this, {code:options.code, extent:options.extent, global:false, units:ol.ProjectionUnits.METERS}) +}; +goog.inherits(ol.proj.CH, ol.Projection); +ol.proj.CH.PHI0 = goog.math.toRadians((3600 * 46 + 60 * 57 + 8.66) / 3600); +ol.proj.CH.LAMBDA0 = goog.math.toRadians((3600 * 7 + 60 * 26 + 22.5) / 3600); +ol.proj.CH.ELLIPSOID = ol.ellipsoid.BESSEL1841; +ol.proj.CH.COS_PHI0 = Math.cos(ol.proj.CH.PHI0); +ol.proj.CH.SIN_PHI0 = Math.sin(ol.proj.CH.PHI0); +ol.proj.CH.R = ol.proj.CH.ELLIPSOID.a * Math.sqrt(1 - ol.proj.CH.ELLIPSOID.eSquared) / (1 - ol.proj.CH.ELLIPSOID.eSquared * ol.proj.CH.SIN_PHI0 * ol.proj.CH.SIN_PHI0); +ol.proj.CH.ALPHA = Math.sqrt(1 + ol.proj.CH.ELLIPSOID.eSquared * Math.pow(ol.proj.CH.COS_PHI0, 4) / (1 - ol.proj.CH.ELLIPSOID.eSquared)); +ol.proj.CH.SIN_B0 = ol.proj.CH.SIN_PHI0 / ol.proj.CH.ALPHA; +ol.proj.CH.B0 = Math.asin(ol.proj.CH.SIN_B0); +ol.proj.CH.COS_B0 = Math.cos(ol.proj.CH.B0); +ol.proj.CH.K = Math.log(Math.tan(Math.PI / 4 + ol.proj.CH.B0 / 2)) - ol.proj.CH.ALPHA * Math.log(Math.tan(Math.PI / 4 + ol.proj.CH.PHI0 / 2)) + ol.proj.CH.ALPHA * ol.proj.CH.ELLIPSOID.e * Math.log((1 + ol.proj.CH.ELLIPSOID.e * ol.proj.CH.SIN_PHI0) / (1 - ol.proj.CH.ELLIPSOID.e * ol.proj.CH.SIN_PHI0)) / 2; +ol.proj.CH.add = function() { + ol.proj.EPSG2056.add(); + ol.proj.EPSG21781.add(); + var epsg2056 = ol.proj.get("EPSG:2056"); + var epsg21781 = ol.proj.get("EPSG:21781"); + ol.proj.addTransform(epsg2056, epsg21781, goog.partial(ol.proj.CH.translate_, -2E6, -1E6)); + ol.proj.addTransform(epsg21781, epsg2056, goog.partial(ol.proj.CH.translate_, 2E6, 1E6)) +}; +ol.proj.CH.fromEPSG4326Approximate_ = function(offsetY, offsetX, input, opt_output, opt_dimension) { + var n = input.length; + var dimension = goog.isDef(opt_dimension) ? opt_dimension : 2; + var output; + if(goog.isDef(opt_output)) { + output = opt_output + }else { + if(dimension > 2) { + output = input.slice() + }else { + output = new Array(n) + } + } + goog.asserts.assert(dimension >= 2); + goog.asserts.assert(output.length % dimension === 0); + var auxLat, auxLon, i; + for(i = 0;i < n;i += dimension) { + auxLat = 36 * input[i + 1] / 100 - 16.902866; + auxLon = 36 * input[i] / 100 - 2.67825; + output[i] = offsetY + 72.37 + 211455.93 * auxLon - 10938.51 * auxLon * auxLat - 0.36 * auxLon * auxLat * auxLat - 44.54 * auxLon * auxLon * auxLon; + output[i + 1] = offsetX + 147.07 + 308807.95 * auxLat + 3745.25 * auxLon * auxLon + 76.63 * auxLat * auxLat - 194.56 * auxLon * auxLon * auxLat + 119.79 * auxLat * auxLat * auxLat + } + return output +}; +ol.proj.CH.fromEPSG4326Rigorous_ = function(offsetY, offsetX, input, opt_output, opt_dimension) { + var n = input.length; + var dimension = goog.isDef(opt_dimension) ? opt_dimension : 2; + var output; + if(goog.isDef(opt_output)) { + output = opt_output + }else { + if(dimension > 2) { + output = input.slice() + }else { + output = new Array(n) + } + } + goog.asserts.assert(dimension >= 2); + goog.asserts.assert(output.length % dimension === 0); + var b, bBar, eSinPhi, i, l, lambda, lBar, phi, s; + for(i = 0;i < n;i += dimension) { + lambda = goog.math.toRadians(input[i]); + phi = goog.math.toRadians(input[i + 1]); + eSinPhi = ol.proj.CH.ELLIPSOID.e * Math.sin(phi); + s = ol.proj.CH.ALPHA * Math.log(Math.tan(Math.PI / 4 + phi / 2)) - ol.proj.CH.ALPHA * ol.proj.CH.ELLIPSOID.e * Math.log((1 + eSinPhi) / (1 - eSinPhi)) / 2 + ol.proj.CH.K; + b = 2 * (Math.atan(Math.exp(s)) - Math.PI / 4); + l = ol.proj.CH.ALPHA * (lambda - ol.proj.CH.LAMBDA0); + lBar = Math.atan2(Math.sin(l), ol.proj.CH.SIN_B0 * Math.tan(b) + ol.proj.CH.COS_B0 * Math.cos(l)); + bBar = Math.asin(ol.proj.CH.COS_B0 * Math.sin(b) - ol.proj.CH.SIN_B0 * Math.cos(b) * Math.cos(l)); + output[i] = offsetY + ol.proj.CH.R * lBar; + output[i + 1] = offsetX + ol.proj.CH.R * Math.log((1 + Math.sin(bBar)) / (1 - Math.sin(bBar))) / 2 + } + return output +}; +ol.proj.CH.toEPSG4326Approximate_ = function(offsetY, offsetX, input, opt_output, opt_dimension) { + var n = input.length; + var dimension = goog.isDef(opt_dimension) ? opt_dimension : 2; + var output; + if(goog.isDef(opt_output)) { + output = opt_output + }else { + if(dimension > 2) { + output = input.slice() + }else { + output = new Array(n) + } + } + goog.asserts.assert(dimension >= 2); + goog.asserts.assert(output.length % dimension === 0); + var auxX, auxY, i; + for(i = 0;i < n;i += dimension) { + auxY = (input[i] - offsetY) / 1E6; + auxX = (input[i + 1] - offsetX) / 1E6; + output[i] = 100 * (2.6779094 + 4.728982 * auxY + 0.791484 * auxY * auxX + 0.1306 * auxY * auxX * auxX - 0.0436 * auxY * auxY * auxY) / 36; + output[i + 1] = 100 * (16.9023892 + 3.238272 * auxX - 0.270978 * auxY * auxY - 0.002528 * auxX * auxX - 0.0447 * auxY * auxY * auxX - 0.014 * auxX * auxX * auxX) / 36 + } + return output +}; +ol.proj.CH.toEPSG4326Rigorous_ = function(offsetY, offsetX, input, opt_output, opt_dimension) { + var n = input.length; + var dimension = goog.isDef(opt_dimension) ? opt_dimension : 2; + var output; + if(goog.isDef(opt_output)) { + output = opt_output + }else { + if(dimension > 2) { + output = input.slice() + }else { + output = new Array(n) + } + } + goog.asserts.assert(dimension >= 2); + goog.asserts.assert(output.length % dimension === 0); + var b, bBar, eSinPhi, i, iterations, l, lambda, lastPhi, lBar, phi, s, x, y; + for(i = 0;i < n;i += dimension) { + y = input[i] - offsetY; + x = input[i + 1] - offsetX; + lBar = y / ol.proj.CH.R; + bBar = 2 * (Math.atan(Math.exp(x / ol.proj.CH.R)) - Math.PI / 4); + b = Math.asin(ol.proj.CH.COS_B0 * Math.sin(bBar) + ol.proj.CH.SIN_B0 * Math.cos(bBar) * Math.cos(lBar)); + l = Math.atan2(Math.sin(lBar), ol.proj.CH.COS_B0 * Math.cos(lBar) - ol.proj.CH.SIN_B0 * Math.tan(bBar)); + lambda = ol.proj.CH.LAMBDA0 + l / ol.proj.CH.ALPHA; + lastPhi = phi = b; + for(iterations = 20;iterations > 0;--iterations) { + s = (Math.log(Math.tan(Math.PI / 4 + b / 2)) - ol.proj.CH.K) / ol.proj.CH.ALPHA + ol.proj.CH.ELLIPSOID.e * Math.log(Math.tan(Math.PI / 4 + Math.asin(ol.proj.CH.ELLIPSOID.e * Math.sin(phi)) / 2)); + phi = 2 * Math.atan(Math.exp(s)) - Math.PI / 2; + if(Math.abs(phi - lastPhi) < 1E-7) { + break + } + lastPhi = phi + } + goog.asserts.assert(iterations !== 0); + output[i] = goog.math.toDegrees(lambda); + output[i + 1] = goog.math.toDegrees(phi) + } + return output +}; +ol.proj.CH.translate_ = function(offsetY, offsetX, input, opt_output, opt_dimension) { + var n = input.length; + var dimension = goog.isDef(opt_dimension) ? opt_dimension : 2; + var output; + if(goog.isDef(opt_output)) { + output = opt_output + }else { + if(dimension > 2) { + output = input.slice() + }else { + output = new Array(n) + } + } + goog.asserts.assert(dimension >= 2); + goog.asserts.assert(output.length % dimension === 0); + var i; + for(i = 0;i < n;i += dimension) { + output[i] = input[i] + offsetY; + output[i + 1] = input[i + 1] + offsetX + } + return output +}; +ol.proj.CH.prototype.getPointResolution = function(resolution, point) { + return resolution +}; +ol.proj.EPSG2056 = function() { + goog.base(this, {code:"EPSG:2056", extent:ol.proj.EPSG2056.EXTENT}) +}; +goog.inherits(ol.proj.EPSG2056, ol.proj.CH); +ol.proj.EPSG2056.EXTENT = [2485869.5728, 2837076.5648, 1076443.1884, 1299941.7864]; +ol.proj.EPSG2056.add = function() { + ol.proj.addEquivalentProjections(ol.proj.EPSG4326.PROJECTIONS); + var epsg2056 = new ol.proj.EPSG2056; + ol.proj.addProjection(epsg2056); + ol.proj.addEquivalentTransforms(ol.proj.EPSG4326.PROJECTIONS, [epsg2056], goog.partial(ol.proj.CH.fromEPSG4326Rigorous_, 26E5, 12E5), goog.partial(ol.proj.CH.toEPSG4326Rigorous_, 26E5, 12E5)) +}; +ol.proj.EPSG21781 = function() { + goog.base(this, {code:"EPSG:21781", extent:ol.proj.EPSG21781.EXTENT}) +}; +goog.inherits(ol.proj.EPSG21781, ol.proj.CH); +ol.proj.EPSG21781.EXTENT = [485869.5728, 837076.5648, 76443.1884, 299941.7864]; +ol.proj.EPSG21781.add = function() { + ol.proj.addEquivalentProjections(ol.proj.EPSG4326.PROJECTIONS); + var epsg21781 = new ol.proj.EPSG21781; + ol.proj.addProjection(epsg21781); + ol.proj.addEquivalentTransforms(ol.proj.EPSG4326.PROJECTIONS, [epsg21781], goog.partial(ol.proj.CH.fromEPSG4326Rigorous_, 6E5, 2E5), goog.partial(ol.proj.CH.toEPSG4326Rigorous_, 6E5, 2E5)) +}; +goog.provide("goog.net.jsloader"); +goog.provide("goog.net.jsloader.Error"); +goog.provide("goog.net.jsloader.ErrorCode"); +goog.provide("goog.net.jsloader.Options"); +goog.require("goog.array"); +goog.require("goog.async.Deferred"); +goog.require("goog.debug.Error"); +goog.require("goog.dom"); +goog.require("goog.dom.TagName"); +goog.net.jsloader.GLOBAL_VERIFY_OBJS_ = "closure_verification"; +goog.net.jsloader.DEFAULT_TIMEOUT = 5E3; +goog.net.jsloader.Options; +goog.net.jsloader.scriptsToLoad_ = []; +goog.net.jsloader.loadMany = function(uris, opt_options) { + if(!uris.length) { + return + } + var isAnotherModuleLoading = goog.net.jsloader.scriptsToLoad_.length; + goog.array.extend(goog.net.jsloader.scriptsToLoad_, uris); + if(isAnotherModuleLoading) { + return + } + uris = goog.net.jsloader.scriptsToLoad_; + var popAndLoadNextScript = function() { + var uri = uris.shift(); + var deferred = goog.net.jsloader.load(uri, opt_options); + if(uris.length) { + deferred.addBoth(popAndLoadNextScript) + } + }; + popAndLoadNextScript() +}; +goog.net.jsloader.load = function(uri, opt_options) { + var options = opt_options || {}; + var doc = options.document || document; + var script = goog.dom.createElement(goog.dom.TagName.SCRIPT); + var request = {script_:script, timeout_:undefined}; + var deferred = new goog.async.Deferred(goog.net.jsloader.cancel_, request); + var timeout = null; + var timeoutDuration = goog.isDefAndNotNull(options.timeout) ? options.timeout : goog.net.jsloader.DEFAULT_TIMEOUT; + if(timeoutDuration > 0) { + timeout = window.setTimeout(function() { + goog.net.jsloader.cleanup_(script, true); + deferred.errback(new goog.net.jsloader.Error(goog.net.jsloader.ErrorCode.TIMEOUT, "Timeout reached for loading script " + uri)) + }, timeoutDuration); + request.timeout_ = timeout + } + script.onload = script.onreadystatechange = function() { + if(!script.readyState || script.readyState == "loaded" || script.readyState == "complete") { + var removeScriptNode = options.cleanupWhenDone || false; + goog.net.jsloader.cleanup_(script, removeScriptNode, timeout); + deferred.callback(null) + } + }; + script.onerror = function() { + goog.net.jsloader.cleanup_(script, true, timeout); + deferred.errback(new goog.net.jsloader.Error(goog.net.jsloader.ErrorCode.LOAD_ERROR, "Error while loading script " + uri)) + }; + goog.dom.setProperties(script, {"type":"text/javascript", "charset":"UTF-8", "src":uri}); + var scriptParent = goog.net.jsloader.getScriptParentElement_(doc); + scriptParent.appendChild(script); + return deferred +}; +goog.net.jsloader.loadAndVerify = function(uri, verificationObjName, options) { + if(!goog.global[goog.net.jsloader.GLOBAL_VERIFY_OBJS_]) { + goog.global[goog.net.jsloader.GLOBAL_VERIFY_OBJS_] = {} + } + var verifyObjs = goog.global[goog.net.jsloader.GLOBAL_VERIFY_OBJS_]; + if(goog.isDef(verifyObjs[verificationObjName])) { + return goog.async.Deferred.fail(new goog.net.jsloader.Error(goog.net.jsloader.ErrorCode.VERIFY_OBJECT_ALREADY_EXISTS, "Verification object " + verificationObjName + " already defined.")) + } + var sendDeferred = goog.net.jsloader.load(uri, options); + var deferred = new goog.async.Deferred(goog.bind(sendDeferred.cancel, sendDeferred)); + sendDeferred.addCallback(function() { + var result = verifyObjs[verificationObjName]; + if(goog.isDef(result)) { + deferred.callback(result); + delete verifyObjs[verificationObjName] + }else { + deferred.errback(new goog.net.jsloader.Error(goog.net.jsloader.ErrorCode.VERIFY_ERROR, "Script " + uri + " loaded, but verification object " + verificationObjName + " was not defined.")) + } + }); + sendDeferred.addErrback(function(error) { + if(goog.isDef(verifyObjs[verificationObjName])) { + delete verifyObjs[verificationObjName] + } + deferred.errback(error) + }); + return deferred +}; +goog.net.jsloader.getScriptParentElement_ = function(doc) { + var headElements = doc.getElementsByTagName(goog.dom.TagName.HEAD); + if(!headElements || goog.array.isEmpty(headElements)) { + return doc.documentElement + }else { + return headElements[0] + } +}; +goog.net.jsloader.cancel_ = function() { + var request = this; + if(request && request.script_) { + var scriptNode = request.script_; + if(scriptNode && scriptNode.tagName == "SCRIPT") { + goog.net.jsloader.cleanup_(scriptNode, true, request.timeout_) + } + } +}; +goog.net.jsloader.cleanup_ = function(scriptNode, removeScriptNode, opt_timeout) { + if(goog.isDefAndNotNull(opt_timeout)) { + goog.global.clearTimeout(opt_timeout) + } + scriptNode.onload = goog.nullFunction; + scriptNode.onerror = goog.nullFunction; + scriptNode.onreadystatechange = goog.nullFunction; + if(removeScriptNode) { + window.setTimeout(function() { + goog.dom.removeNode(scriptNode) + }, 0) + } +}; +goog.net.jsloader.ErrorCode = {LOAD_ERROR:0, TIMEOUT:1, VERIFY_ERROR:2, VERIFY_OBJECT_ALREADY_EXISTS:3}; +goog.net.jsloader.Error = function(code, opt_message) { + var msg = "Jsloader error (code #" + code + ")"; + if(opt_message) { + msg += ": " + opt_message + } + goog.base(this, msg); + this.code = code +}; +goog.inherits(goog.net.jsloader.Error, goog.debug.Error); +goog.provide("goog.net.Jsonp"); +goog.require("goog.Uri"); +goog.require("goog.net.jsloader"); +goog.net.Jsonp = function(uri, opt_callbackParamName) { + this.uri_ = new goog.Uri(uri); + this.callbackParamName_ = opt_callbackParamName ? opt_callbackParamName : "callback"; + this.timeout_ = 5E3 +}; +goog.net.Jsonp.CALLBACKS = "_callbacks_"; +goog.net.Jsonp.scriptCounter_ = 0; +goog.net.Jsonp.prototype.setRequestTimeout = function(timeout) { + this.timeout_ = timeout +}; +goog.net.Jsonp.prototype.getRequestTimeout = function() { + return this.timeout_ +}; +goog.net.Jsonp.prototype.send = function(opt_payload, opt_replyCallback, opt_errorCallback, opt_callbackParamValue) { + var payload = opt_payload || null; + var id = opt_callbackParamValue || "_" + (goog.net.Jsonp.scriptCounter_++).toString(36) + goog.now().toString(36); + if(!goog.global[goog.net.Jsonp.CALLBACKS]) { + goog.global[goog.net.Jsonp.CALLBACKS] = {} + } + var uri = this.uri_.clone(); + if(payload) { + goog.net.Jsonp.addPayloadToUri_(payload, uri) + } + if(opt_replyCallback) { + var reply = goog.net.Jsonp.newReplyHandler_(id, opt_replyCallback); + goog.global[goog.net.Jsonp.CALLBACKS][id] = reply; + uri.setParameterValues(this.callbackParamName_, goog.net.Jsonp.CALLBACKS + "." + id) + } + var deferred = goog.net.jsloader.load(uri.toString(), {timeout:this.timeout_, cleanupWhenDone:true}); + var error = goog.net.Jsonp.newErrorHandler_(id, payload, opt_errorCallback); + deferred.addErrback(error); + return{id_:id, deferred_:deferred} +}; +goog.net.Jsonp.prototype.cancel = function(request) { + if(request) { + if(request.deferred_) { + request.deferred_.cancel() + } + if(request.id_) { + goog.net.Jsonp.cleanup_(request.id_, false) + } + } +}; +goog.net.Jsonp.newErrorHandler_ = function(id, payload, opt_errorCallback) { + return function() { + goog.net.Jsonp.cleanup_(id, false); + if(opt_errorCallback) { + opt_errorCallback(payload) + } + } +}; +goog.net.Jsonp.newReplyHandler_ = function(id, replyCallback) { + return function(var_args) { + goog.net.Jsonp.cleanup_(id, true); + replyCallback.apply(undefined, arguments) + } +}; +goog.net.Jsonp.cleanup_ = function(id, deleteReplyHandler) { + if(goog.global[goog.net.Jsonp.CALLBACKS][id]) { + if(deleteReplyHandler) { + delete goog.global[goog.net.Jsonp.CALLBACKS][id] + }else { + goog.global[goog.net.Jsonp.CALLBACKS][id] = goog.nullFunction + } + } +}; +goog.net.Jsonp.addPayloadToUri_ = function(payload, uri) { + for(var name in payload) { + if(!payload.hasOwnProperty || payload.hasOwnProperty(name)) { + uri.setParameterValues(name, payload[name]) + } + } + return uri +}; +goog.provide("ol.source.TileImage"); +goog.require("goog.asserts"); +goog.require("ol.Attribution"); +goog.require("ol.Extent"); +goog.require("ol.ImageTile"); +goog.require("ol.Projection"); +goog.require("ol.Tile"); +goog.require("ol.TileCache"); +goog.require("ol.TileCoord"); +goog.require("ol.TileState"); +goog.require("ol.TileUrlFunction"); +goog.require("ol.TileUrlFunctionType"); +goog.require("ol.source.Tile"); +goog.require("ol.tilegrid.TileGrid"); +ol.source.TileImageOptions; +ol.source.TileImage = function(options) { + goog.base(this, {attributions:options.attributions, extent:options.extent, logo:options.logo, opaque:options.opaque, projection:options.projection, tileGrid:options.tileGrid}); + this.tileUrlFunction = goog.isDef(options.tileUrlFunction) ? options.tileUrlFunction : ol.TileUrlFunction.nullTileUrlFunction; + this.crossOrigin_ = goog.isDef(options.crossOrigin) ? options.crossOrigin : null; + this.tileCache_ = new ol.TileCache +}; +goog.inherits(ol.source.TileImage, ol.source.Tile); +ol.source.TileImage.prototype.canExpireCache = function() { + return this.tileCache_.canExpireCache() +}; +ol.source.TileImage.prototype.expireCache = function(usedTiles) { + this.tileCache_.expireCache(usedTiles) +}; +ol.source.TileImage.prototype.getTile = function(z, x, y, projection) { + var tileCoordKey = this.getKeyZXY(z, x, y); + if(this.tileCache_.containsKey(tileCoordKey)) { + return(this.tileCache_.get(tileCoordKey)) + }else { + goog.asserts.assert(projection); + var tileCoord = new ol.TileCoord(z, x, y); + var tileUrl = this.tileUrlFunction(tileCoord, projection); + var tile = new ol.ImageTile(tileCoord, goog.isDef(tileUrl) ? ol.TileState.IDLE : ol.TileState.EMPTY, goog.isDef(tileUrl) ? tileUrl : "", this.crossOrigin_); + this.tileCache_.set(tileCoordKey, tile); + return tile + } +}; +ol.source.TileImage.prototype.setTileUrlFunction = function(tileUrlFunction) { + this.tileCache_.clear(); + this.tileUrlFunction = tileUrlFunction; + this.dispatchChangeEvent() +}; +ol.source.TileImage.prototype.useTile = function(z, x, y) { + var tileCoordKey = this.getKeyZXY(z, x, y); + if(this.tileCache_.containsKey(tileCoordKey)) { + this.tileCache_.get(tileCoordKey) + } +}; +goog.provide("ol.tilegrid.XYZ"); +goog.require("goog.math"); +goog.require("ol.TileCoord"); +goog.require("ol.TileRange"); +goog.require("ol.proj"); +goog.require("ol.proj.EPSG3857"); +goog.require("ol.tilegrid.TileGrid"); +ol.tilegrid.XYZ = function(options) { + var resolutions = new Array(options.maxZoom + 1); + var z; + var size = 2 * ol.proj.EPSG3857.HALF_SIZE / ol.DEFAULT_TILE_SIZE; + for(z = 0;z <= options.maxZoom;++z) { + resolutions[z] = size / Math.pow(2, z) + } + goog.base(this, {minZoom:options.minZoom, origin:[-ol.proj.EPSG3857.HALF_SIZE, ol.proj.EPSG3857.HALF_SIZE], resolutions:resolutions, tileSize:[ol.DEFAULT_TILE_SIZE, ol.DEFAULT_TILE_SIZE]}) +}; +goog.inherits(ol.tilegrid.XYZ, ol.tilegrid.TileGrid); +ol.tilegrid.XYZ.prototype.createTileCoordTransform = function(opt_options) { + var options = goog.isDef(opt_options) ? opt_options : {}; + var minZ = this.minZoom; + var maxZ = this.maxZoom; + var wrapX = goog.isDef(options.wrapX) ? options.wrapX : true; + var tmpTileCoord = new ol.TileCoord(0, 0, 0); + var tileRangeByZ = null; + if(goog.isDef(options.extent)) { + tileRangeByZ = new Array(maxZ + 1); + var z; + for(z = 0;z <= maxZ;++z) { + if(z < minZ) { + tileRangeByZ[z] = null + }else { + tileRangeByZ[z] = this.getTileRangeForExtentAndZ(options.extent, z) + } + } + } + return function(tileCoord, projection, opt_tileCoord) { + var z = tileCoord.z; + if(z < minZ || maxZ < z) { + return null + } + var n = Math.pow(2, z); + var x = tileCoord.x; + if(wrapX) { + x = goog.math.modulo(x, n) + }else { + if(x < 0 || n <= x) { + return null + } + } + var y = tileCoord.y; + if(y < -n || -1 < y) { + return null + } + if(!goog.isNull(tileRangeByZ)) { + tmpTileCoord.z = z; + tmpTileCoord.x = x; + tmpTileCoord.y = y; + if(!tileRangeByZ[z].contains(tmpTileCoord)) { + return null + } + } + if(goog.isDef(opt_tileCoord)) { + opt_tileCoord.z = z; + opt_tileCoord.x = x; + opt_tileCoord.y = -y - 1; + return opt_tileCoord + }else { + return new ol.TileCoord(z, x, -y - 1) + } + } +}; +ol.tilegrid.XYZ.prototype.getTileCoordChildTileRange = function(tileCoord, opt_tileRange) { + if(tileCoord.z < this.maxZoom) { + return ol.TileRange.createOrUpdate(2 * tileCoord.x, 2 * (tileCoord.x + 1), 2 * tileCoord.y, 2 * (tileCoord.y + 1), opt_tileRange) + }else { + return null + } +}; +ol.tilegrid.XYZ.prototype.forEachTileCoordParentTileRange = function(tileCoord, callback, opt_obj, opt_tileRange) { + var tileRange = ol.TileRange.createOrUpdate(0, tileCoord.x, 0, tileCoord.y, opt_tileRange); + var z; + for(z = tileCoord.z - 1;z >= this.minZoom;--z) { + tileRange.minX = tileRange.maxX >>= 1; + tileRange.minY = tileRange.maxY >>= 1; + if(callback.call(opt_obj, z, tileRange)) { + return true + } + } + return false +}; +goog.provide("ol.source.BingMaps"); +goog.require("goog.Uri"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.require("goog.net.Jsonp"); +goog.require("ol.Attribution"); +goog.require("ol.TileRange"); +goog.require("ol.TileUrlFunction"); +goog.require("ol.extent"); +goog.require("ol.proj"); +goog.require("ol.source.TileImage"); +goog.require("ol.tilegrid.XYZ"); +ol.source.BingMaps = function(options) { + goog.base(this, {crossOrigin:"anonymous", opaque:true, projection:ol.proj.get("EPSG:3857")}); + this.culture_ = goog.isDef(options.culture) ? options.culture : "en-us"; + this.ready_ = false; + var uri = new goog.Uri("//dev.virtualearth.net/REST/v1/Imagery/Metadata/" + options.style); + var jsonp = new goog.net.Jsonp(uri, "jsonp"); + jsonp.send({"include":"ImageryProviders", "key":options.key}, goog.bind(this.handleImageryMetadataResponse, this)) +}; +goog.inherits(ol.source.BingMaps, ol.source.TileImage); +ol.source.BingMaps.prototype.handleImageryMetadataResponse = function(response) { + goog.asserts.assert(response.authenticationResultCode == "ValidCredentials"); + goog.asserts.assert(response.statusCode == 200); + goog.asserts.assert(response.statusDescription == "OK"); + var brandLogoUri = response.brandLogoUri; + goog.asserts.assert(response.resourceSets.length == 1); + var resourceSet = response.resourceSets[0]; + goog.asserts.assert(resourceSet.resources.length == 1); + var resource = resourceSet.resources[0]; + var tileGrid = new ol.tilegrid.XYZ({minZoom:resource.zoomMin, maxZoom:resource.zoomMax, tileSize:[resource.imageWidth, resource.imageHeight]}); + this.tileGrid = tileGrid; + var culture = this.culture_; + this.tileUrlFunction = ol.TileUrlFunction.withTileCoordTransform(tileGrid.createTileCoordTransform(), ol.TileUrlFunction.createFromTileUrlFunctions(goog.array.map(resource.imageUrlSubdomains, function(subdomain) { + var imageUrl = resource.imageUrl.replace("{subdomain}", subdomain).replace("{culture}", culture); + return function(tileCoord, projection) { + goog.asserts.assert(ol.proj.equivalent(projection, this.getProjection())); + if(goog.isNull(tileCoord)) { + return undefined + }else { + return imageUrl.replace("{quadkey}", tileCoord.quadKey()) + } + } + }))); + var transform = ol.proj.getTransformFromProjections(ol.proj.get("EPSG:4326"), this.getProjection()); + var attributions = goog.array.map(resource.imageryProviders, function(imageryProvider) { + var html = imageryProvider.attribution; + var tileRanges = {}; + goog.array.forEach(imageryProvider.coverageAreas, function(coverageArea) { + var minZ = coverageArea.zoomMin; + var maxZ = coverageArea.zoomMax; + var bbox = coverageArea.bbox; + var epsg4326Extent = [bbox[1], bbox[3], bbox[0], bbox[2]]; + var extent = ol.extent.transform(epsg4326Extent, transform); + var tileRange, z, zKey; + for(z = minZ;z <= maxZ;++z) { + zKey = z.toString(); + tileRange = tileGrid.getTileRangeForExtentAndZ(extent, z); + if(zKey in tileRanges) { + tileRanges[zKey].push(tileRange) + }else { + tileRanges[zKey] = [tileRange] + } + } + }); + return new ol.Attribution({html:html, tileRanges:tileRanges}) + }); + this.setAttributions(attributions); + this.setLogo(brandLogoUri); + this.ready_ = true; + this.dispatchLoadEvent() +}; +ol.source.BingMaps.prototype.isReady = function() { + return this.ready_ +}; +goog.provide("ol.source.FeatureInfoSource"); +ol.source.FeatureInfoSource = function() { +}; +ol.source.FeatureInfoSource.prototype.getFeatureInfoForPixel = goog.abstractMethod; +goog.provide("ol.source.ImageStatic"); +goog.require("ol.Image"); +goog.require("ol.ImageUrlFunctionType"); +goog.require("ol.extent"); +goog.require("ol.proj"); +goog.require("ol.source.Image"); +ol.source.ImageStatic = function(options) { + var imageFunction = ol.source.ImageStatic.createImageFunction(options.url); + var imageExtent = options.imageExtent; + var imageSize = options.imageSize; + var imageResolution = (imageExtent[3] - imageExtent[2]) / imageSize[1]; + var projection = ol.proj.get(options.projection); + goog.base(this, {attributions:options.attributions, crossOrigin:options.crossOrigin, extent:options.extent, projection:options.projection, imageUrlFunction:imageFunction, resolutions:[imageResolution]}); + this.image_ = this.createImage(imageExtent, imageResolution, imageSize, projection) +}; +goog.inherits(ol.source.ImageStatic, ol.source.Image); +ol.source.ImageStatic.prototype.getImage = function(extent, resolution, projection) { + if(ol.extent.intersects(extent, this.image_.getExtent())) { + return this.image_ + } + return null +}; +ol.source.ImageStatic.createImageFunction = function(url) { + return function(extent, size, projection) { + return url + } +}; +goog.provide("ol.source.WMSGetFeatureInfoMethod"); +goog.provide("ol.source.wms"); +goog.require("goog.net.XhrIo"); +goog.require("goog.object"); +goog.require("goog.uri.utils"); +ol.source.WMSGetFeatureInfoMethod = {IFRAME:"iframe", XHR_GET:"xhr_get"}; +ol.source.wms.getUrl = function(baseUrl, params, extent, size, projection) { + var baseParams = {"SERVICE":"WMS", "VERSION":"1.3.0", "REQUEST":"GetMap", "FORMAT":"image/png", "TRANSPARENT":true, "WIDTH":Math.round(size[0]), "HEIGHT":Math.round(size[1])}; + goog.object.extend(baseParams, params); + var stylesParam = "STYLES"; + baseParams[stylesParam] = params[stylesParam] || new String(""); + var wms13 = baseParams["VERSION"] > "1.3"; + baseParams[wms13 ? "CRS" : "SRS"] = projection.getCode(); + var axisOrientation = projection.getAxisOrientation(); + var bboxValues = wms13 && axisOrientation.substr(0, 2) == "ne" ? [extent[2], extent[0], extent[3], extent[1]] : [extent[0], extent[2], extent[1], extent[3]]; + baseParams["BBOX"] = bboxValues.join(","); + return goog.uri.utils.appendParamsFromMap(baseUrl, baseParams) +}; +ol.source.wms.getFeatureInfo = function(url, pixel, options, success, opt_error) { + url = url.replace("REQUEST\x3dGetMap", "REQUEST\x3dGetFeatureInfo").replace(ol.source.wms.regExes.layers, "LAYERS\x3d$1\x26QUERY_LAYERS\x3d$1"); + options = (goog.isDef(options) ? goog.object.clone(options) : {}); + var localOptions = ({method:ol.source.WMSGetFeatureInfoMethod.IFRAME, params:{}}); + goog.object.extend(localOptions, options); + var params = {"INFO_FORMAT":"text/html"}, version = parseFloat(url.match(ol.source.wms.regExes.version)[1]), x = Math.round(pixel[0]), y = Math.round(pixel[1]); + if(version >= 1.3) { + goog.object.extend(params, {"I":x, "J":y}) + }else { + goog.object.extend(params, {"X":x, "Y":y}) + } + goog.object.extend(params, localOptions.params); + url = goog.uri.utils.appendParamsFromMap(url, params); + if(localOptions.method == ol.source.WMSGetFeatureInfoMethod.IFRAME) { + goog.global.setTimeout(function() { + success('\x3ciframe seamless src\x3d"' + url + '"\x3e\x3c/iframe\x3e') + }, 0) + }else { + if(localOptions.method == ol.source.WMSGetFeatureInfoMethod.XHR_GET) { + goog.net.XhrIo.send(url, function(event) { + var xhr = event.target; + if(xhr.isSuccess()) { + success(xhr.getResponseText()) + }else { + if(goog.isDef(opt_error)) { + opt_error() + } + } + }) + } + } +}; +ol.source.wms.regExes = {layers:/LAYERS=([^&]+)/, version:/VERSION=([^&]+)/}; +goog.provide("ol.source.ImageWMS"); +goog.require("goog.asserts"); +goog.require("goog.object"); +goog.require("ol.Image"); +goog.require("ol.ImageUrlFunction"); +goog.require("ol.extent"); +goog.require("ol.source.FeatureInfoSource"); +goog.require("ol.source.Image"); +goog.require("ol.source.wms"); +ol.source.ImageWMS = function(options) { + this.params_ = options.params; + var imageUrlFunction = goog.isDef(options.url) ? ol.ImageUrlFunction.createFromParamsFunction(options.url, this.params_, ol.source.wms.getUrl) : ol.ImageUrlFunction.nullImageUrlFunction; + goog.base(this, {attributions:options.attributions, crossOrigin:options.crossOrigin, extent:options.extent, projection:options.projection, resolutions:options.resolutions, imageUrlFunction:imageUrlFunction}); + this.getFeatureInfoOptions_ = goog.isDef(options.getFeatureInfoOptions) ? options.getFeatureInfoOptions : {}; + this.image_ = null; + this.ratio_ = goog.isDef(options.ratio) ? options.ratio : 1.5 +}; +goog.inherits(ol.source.ImageWMS, ol.source.Image); +ol.source.ImageWMS.prototype.getParams = function() { + return this.params_ +}; +ol.source.ImageWMS.prototype.getImage = function(extent, resolution, projection) { + resolution = this.findNearestResolution(resolution); + var image = this.image_; + if(!goog.isNull(image) && image.getResolution() == resolution && ol.extent.containsExtent(image.getExtent(), extent)) { + return image + } + extent = extent.slice(); + ol.extent.scaleFromCenter(extent, this.ratio_); + var width = (extent[1] - extent[0]) / resolution; + var height = (extent[3] - extent[2]) / resolution; + var size = [width, height]; + this.image_ = this.createImage(extent, resolution, size, projection); + return this.image_ +}; +ol.source.ImageWMS.prototype.getFeatureInfoForPixel = function(pixel, map, success, opt_error) { + var view2D = map.getView().getView2D(), projection = view2D.getProjection(), size = map.getSize(), bottomLeft = map.getCoordinateFromPixel([0, size[1]]), topRight = map.getCoordinateFromPixel([size[0], 0]), extent = [bottomLeft[0], topRight[0], bottomLeft[1], topRight[1]], url = this.imageUrlFunction(extent, size, projection); + goog.asserts.assert(goog.isDef(url), "ol.source.ImageWMS#imageUrlFunction does not return a url"); + ol.source.wms.getFeatureInfo(url, pixel, this.getFeatureInfoOptions_, success, opt_error) +}; +ol.source.ImageWMS.prototype.updateParams = function(params) { + goog.object.extend(this.params_, params); + this.image_ = null; + this.dispatchChangeEvent() +}; +goog.provide("ol.source.XYZ"); +goog.require("ol.Attribution"); +goog.require("ol.TileUrlFunction"); +goog.require("ol.TileUrlFunctionType"); +goog.require("ol.proj"); +goog.require("ol.source.TileImage"); +goog.require("ol.tilegrid.XYZ"); +ol.source.XYZ = function(options) { + var projection = options.projection || ol.proj.get("EPSG:3857"); + var maxZoom = goog.isDef(options.maxZoom) ? options.maxZoom : 18; + var tileGrid = new ol.tilegrid.XYZ({maxZoom:maxZoom}); + goog.base(this, {attributions:options.attributions, crossOrigin:options.crossOrigin, extent:options.extent, logo:options.logo, projection:projection, tileGrid:tileGrid, tileUrlFunction:ol.TileUrlFunction.nullTileUrlFunction}); + this.tileCoordTransform_ = tileGrid.createTileCoordTransform({extent:options.extent}); + if(goog.isDef(options.tileUrlFunction)) { + this.setTileUrlFunction(options.tileUrlFunction) + }else { + if(goog.isDef(options.urls)) { + this.setUrls(options.urls) + }else { + if(goog.isDef(options.url)) { + this.setUrl(options.url) + } + } + } +}; +goog.inherits(ol.source.XYZ, ol.source.TileImage); +ol.source.XYZ.prototype.setTileUrlFunction = function(tileUrlFunction) { + goog.base(this, "setTileUrlFunction", ol.TileUrlFunction.withTileCoordTransform(this.tileCoordTransform_, tileUrlFunction)) +}; +ol.source.XYZ.prototype.setUrl = function(url) { + this.setTileUrlFunction(ol.TileUrlFunction.createFromTemplates(ol.TileUrlFunction.expandUrl(url))) +}; +ol.source.XYZ.prototype.setUrls = function(urls) { + this.setTileUrlFunction(ol.TileUrlFunction.createFromTemplates(urls)) +}; +goog.provide("ol.source.OSM"); +goog.require("ol.Attribution"); +goog.require("ol.source.XYZ"); +ol.source.OSM = function(opt_options) { + var options = goog.isDef(opt_options) ? opt_options : {}; + var attributions; + if(goog.isDef(options.attributions)) { + attributions = options.attributions + }else { + if(goog.isDef(options.attribution)) { + attributions = [options.attribution] + }else { + attributions = ol.source.OSM.ATTRIBUTIONS + } + } + var url = goog.isDef(options.url) ? options.url : "http://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png"; + goog.base(this, {attributions:attributions, crossOrigin:"anonymous", opaque:true, maxZoom:options.maxZoom, url:url}) +}; +goog.inherits(ol.source.OSM, ol.source.XYZ); +ol.source.OSM.DATA_ATTRIBUTION = new ol.Attribution({html:"Data \x26copy; " + '\x3ca href\x3d"http://www.openstreetmap.org/"\x3eOpenStreetMap\x3c/a\x3e ' + "contributors, " + '\x3ca href\x3d"http://www.openstreetmap.org/copyright"\x3eODbL\x3c/a\x3e'}); +ol.source.OSM.TILE_ATTRIBUTION = new ol.Attribution({html:"Tiles \x26copy; " + '\x3ca href\x3d"http://www.openstreetmap.org/"\x3eOpenStreetMap\x3c/a\x3e ' + "contributors, " + '\x3ca href\x3d"http://creativecommons.org/licenses/by-sa/2.0/"\x3eCC BY-SA\x3c/a\x3e'}); +ol.source.OSM.ATTRIBUTIONS = [ol.source.OSM.TILE_ATTRIBUTION, ol.source.OSM.DATA_ATTRIBUTION]; +goog.provide("ol.source.MapQuestOSM"); +goog.provide("ol.source.MapQuestOpenAerial"); +goog.require("ol.Attribution"); +goog.require("ol.source.OSM"); +goog.require("ol.source.XYZ"); +ol.source.MapQuestOSM = function() { + var attributions = [new ol.Attribution({html:"Tiles Courtesy of " + '\x3ca href\x3d"http://www.mapquest.com/" target\x3d"_blank"\x3eMapQuest\x3c/a\x3e'}), ol.source.OSM.DATA_ATTRIBUTION]; + goog.base(this, {attributions:attributions, crossOrigin:"anonymous", logo:"http://developer.mapquest.com/content/osm/mq_logo.png", opaque:true, maxZoom:28, url:"http://otile{1-4}.mqcdn.com/tiles/1.0.0/osm/{z}/{x}/{y}.jpg"}) +}; +goog.inherits(ol.source.MapQuestOSM, ol.source.XYZ); +ol.source.MapQuestOpenAerial = function() { + var attributions = [new ol.Attribution({html:"Tiles Courtesy of " + '\x3ca href\x3d"http://www.mapquest.com/" target\x3d"_blank"\x3eMapQuest\x3c/a\x3e'}), new ol.Attribution({html:"Portions Courtesy NASA/JPL-Caltech and " + "U.S. Depart. of Agriculture, Farm Service Agency"})]; + goog.base(this, {attributions:attributions, crossOrigin:"anonymous", logo:"http://developer.mapquest.com/content/osm/mq_logo.png", maxZoom:18, opaque:true, url:"http://oatile{1-4}.mqcdn.com/tiles/1.0.0/sat/{z}/{x}/{y}.jpg"}) +}; +goog.inherits(ol.source.MapQuestOpenAerial, ol.source.XYZ); +goog.provide("ol.source.Stamen"); +goog.require("goog.asserts"); +goog.require("ol.Attribution"); +goog.require("ol.source.OSM"); +goog.require("ol.source.XYZ"); +ol.source.StamenLayerConfig = {"terrain":{extension:"jpg", opaque:true}, "terrain-background":{extension:"jpg", opaque:true}, "terrain-labels":{extension:"png", opaque:false}, "terrain-lines":{extension:"png", opaque:false}, "toner-background":{extension:"png", opaque:true}, "toner":{extension:"png", opaque:true}, "toner-hybrid":{extension:"png", opaque:false}, "toner-labels":{extension:"png", opaque:false}, "toner-lines":{extension:"png", opaque:false}, "toner-lite":{extension:"png", opaque:true}, +"watercolor":{extension:"jpg", opaque:true}}; +ol.source.StamenProviderConfig = {"terrain":{minZoom:4, maxZoom:18}, "toner":{minZoom:0, maxZoom:20}, "watercolor":{minZoom:3, maxZoom:16}}; +ol.source.Stamen = function(options) { + var i = options.layer.indexOf("-"); + var provider = i == -1 ? options.layer : options.layer.slice(0, i); + goog.asserts.assert(provider in ol.source.StamenProviderConfig); + var providerConfig = ol.source.StamenProviderConfig[provider]; + goog.asserts.assert(options.layer in ol.source.StamenLayerConfig); + var layerConfig = ol.source.StamenLayerConfig[options.layer]; + var url = goog.isDef(options.url) ? options.url : "http://{a-d}.tile.stamen.com/" + options.layer + "/{z}/{x}/{y}." + layerConfig.extension; + goog.base(this, {attributions:ol.source.Stamen.ATTRIBUTIONS, crossOrigin:"anonymous", maxZoom:providerConfig.maxZoom, opaque:layerConfig.opaque, url:url}) +}; +goog.inherits(ol.source.Stamen, ol.source.XYZ); +ol.source.Stamen.ATTRIBUTIONS = [new ol.Attribution({html:'Map tiles by \x3ca href\x3d"http://stamen.com/"\x3eStamen Design\x3c/a\x3e, ' + 'under \x3ca href\x3d"http://creativecommons.org/licenses/by/3.0/"\x3eCC BY' + " 3.0\x3c/a\x3e."}), ol.source.OSM.DATA_ATTRIBUTION]; +goog.provide("ol.source.TileDebug"); +goog.require("goog.dom"); +goog.require("goog.dom.TagName"); +goog.require("ol.Size"); +goog.require("ol.Tile"); +goog.require("ol.TileCache"); +goog.require("ol.TileCoord"); +goog.require("ol.TileState"); +goog.require("ol.source.Tile"); +goog.require("ol.tilegrid.TileGrid"); +ol.DebugTile_ = function(tileCoord, tileGrid) { + goog.base(this, tileCoord, ol.TileState.LOADED); + this.tileCoord_ = tileCoord; + this.tileSize_ = tileGrid.getTileSize(tileCoord.z); + this.canvasByContext_ = {} +}; +goog.inherits(ol.DebugTile_, ol.Tile); +ol.DebugTile_.prototype.getImage = function(opt_context) { + var key = goog.isDef(opt_context) ? goog.getUid(opt_context) : -1; + if(key in this.canvasByContext_) { + return this.canvasByContext_[key] + }else { + var tileSize = this.tileSize_; + var canvas = (goog.dom.createElement(goog.dom.TagName.CANVAS)); + canvas.width = tileSize[0]; + canvas.height = tileSize[1]; + var context = canvas.getContext("2d"); + context.strokeStyle = "black"; + context.strokeRect(0.5, 0.5, tileSize[0] + 0.5, tileSize[1] + 0.5); + context.fillStyle = "black"; + context.textAlign = "center"; + context.textBaseline = "middle"; + context.font = "24px sans-serif"; + context.fillText(this.tileCoord_.toString(), tileSize[0] / 2, tileSize[1] / 2); + this.canvasByContext_[key] = canvas; + return canvas + } +}; +ol.source.TileDebug = function(options) { + goog.base(this, {extent:options.extent, opaque:false, projection:options.projection, tileGrid:options.tileGrid}); + this.tileCache_ = new ol.TileCache +}; +goog.inherits(ol.source.TileDebug, ol.source.Tile); +ol.source.TileDebug.prototype.canExpireCache = function() { + return this.tileCache_.canExpireCache() +}; +ol.source.TileDebug.prototype.expireCache = function(usedTiles) { + this.tileCache_.expireCache(usedTiles) +}; +ol.source.TileDebug.prototype.getTile = function(z, x, y) { + var tileCoordKey = this.getKeyZXY(z, x, y); + if(this.tileCache_.containsKey(tileCoordKey)) { + return(this.tileCache_.get(tileCoordKey)) + }else { + var tile = new ol.DebugTile_(new ol.TileCoord(z, x, y), this.tileGrid); + this.tileCache_.set(tileCoordKey, tile); + return tile + } +}; +goog.provide("ol.source.TileJSON"); +goog.provide("ol.tilejson"); +goog.require("goog.asserts"); +goog.require("goog.net.jsloader"); +goog.require("ol.Attribution"); +goog.require("ol.TileRange"); +goog.require("ol.TileUrlFunction"); +goog.require("ol.extent"); +goog.require("ol.proj"); +goog.require("ol.source.TileImage"); +goog.require("ol.tilegrid.XYZ"); +ol.tilejson.grids_ = []; +var grid = function(tileJSON) { + ol.tilejson.grids_.push(tileJSON) +}; +goog.exportSymbol("grid", grid); +ol.source.TileJSON = function(options) { + goog.base(this, {crossOrigin:options.crossOrigin, projection:ol.proj.get("EPSG:3857")}); + this.ready_ = false; + this.deferred_ = goog.net.jsloader.load(options.url, {cleanupWhenDone:true}); + this.deferred_.addCallback(this.handleTileJSONResponse, this) +}; +goog.inherits(ol.source.TileJSON, ol.source.TileImage); +ol.source.TileJSON.prototype.handleTileJSONResponse = function() { + var tileJSON = ol.tilejson.grids_.pop(); + var epsg4326Projection = ol.proj.get("EPSG:4326"); + var extent; + if(goog.isDef(tileJSON.bounds)) { + var bounds = tileJSON.bounds; + var epsg4326Extent = [bounds[0], bounds[2], bounds[1], bounds[3]]; + var transform = ol.proj.getTransformFromProjections(epsg4326Projection, this.getProjection()); + extent = ol.extent.transform(epsg4326Extent, transform); + this.setExtent(extent) + } + if(goog.isDef(tileJSON.scheme)) { + goog.asserts.assert(tileJSON.scheme == "xyz") + } + var minZoom = tileJSON.minzoom || 0; + var maxZoom = tileJSON.maxzoom || 22; + var tileGrid = new ol.tilegrid.XYZ({maxZoom:maxZoom, minZoom:minZoom}); + this.tileGrid = tileGrid; + this.tileUrlFunction = ol.TileUrlFunction.withTileCoordTransform(tileGrid.createTileCoordTransform({extent:extent}), ol.TileUrlFunction.createFromTemplates(tileJSON.tiles)); + if(goog.isDef(tileJSON.attribution)) { + var attributionExtent = goog.isDef(extent) ? extent : epsg4326Projection.getExtent(); + var tileRanges = {}; + var z, zKey; + for(z = minZoom;z <= maxZoom;++z) { + zKey = z.toString(); + tileRanges[zKey] = [tileGrid.getTileRangeForExtentAndZ(attributionExtent, z)] + } + this.setAttributions([new ol.Attribution({html:tileJSON.attribution, tileRanges:tileRanges})]) + } + this.ready_ = true; + this.dispatchLoadEvent() +}; +ol.source.TileJSON.prototype.isReady = function() { + return this.ready_ +}; +goog.provide("ol.source.TileWMS"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.require("goog.math"); +goog.require("goog.object"); +goog.require("ol.TileCoord"); +goog.require("ol.TileUrlFunction"); +goog.require("ol.extent"); +goog.require("ol.source.FeatureInfoSource"); +goog.require("ol.source.TileImage"); +goog.require("ol.source.wms"); +ol.source.TileWMS = function(options) { + var tileGrid; + if(goog.isDef(options.tileGrid)) { + tileGrid = options.tileGrid + } + var tileUrlFunction = ol.TileUrlFunction.nullTileUrlFunction; + var urls = options.urls; + if(!goog.isDef(urls) && goog.isDef(options.url)) { + urls = ol.TileUrlFunction.expandUrl(options.url) + } + this.params_ = options.params; + this.coordKeyPrefix_ = ""; + this.resetCoordKeyPrefix_(); + if(goog.isDef(urls)) { + var tileUrlFunctions = goog.array.map(urls, function(url) { + return ol.TileUrlFunction.createFromParamsFunction(url, this.params_, ol.source.wms.getUrl) + }, this); + tileUrlFunction = ol.TileUrlFunction.createFromTileUrlFunctions(tileUrlFunctions) + } + var transparent = goog.isDef(options.params["TRANSPARENT"]) ? options.params["TRANSPARENT"] : true; + var extent = options.extent; + var tileCoordTransform = function(tileCoord, projection) { + var tileGrid = this.getTileGrid(); + if(goog.isNull(tileGrid)) { + tileGrid = ol.tilegrid.getForProjection(projection) + } + if(tileGrid.getResolutions().length <= tileCoord.z) { + return null + } + var x = tileCoord.x; + var tileExtent = tileGrid.getTileCoordExtent(tileCoord); + var projectionExtent = projection.getExtent(); + extent = goog.isDef(extent) ? extent : projectionExtent; + if(!goog.isNull(extent) && projection.isGlobal() && extent[0] === projectionExtent[0] && extent[1] === projectionExtent[1]) { + var numCols = Math.ceil((extent[1] - extent[0]) / (tileExtent[1] - tileExtent[0])); + x = goog.math.modulo(x, numCols); + tileExtent = tileGrid.getTileCoordExtent(new ol.TileCoord(tileCoord.z, x, tileCoord.y)) + } + if(!goog.isNull(extent) && !ol.extent.intersects(tileExtent, extent)) { + return null + } + return new ol.TileCoord(tileCoord.z, x, tileCoord.y) + }; + goog.base(this, {attributions:options.attributions, crossOrigin:options.crossOrigin, extent:extent, tileGrid:options.tileGrid, opaque:!transparent, projection:options.projection, tileUrlFunction:ol.TileUrlFunction.withTileCoordTransform(tileCoordTransform, tileUrlFunction)}); + this.getFeatureInfoOptions_ = goog.isDef(options.getFeatureInfoOptions) ? options.getFeatureInfoOptions : {} +}; +goog.inherits(ol.source.TileWMS, ol.source.TileImage); +ol.source.TileWMS.prototype.getKeyZXY = function(z, x, y) { + return this.coordKeyPrefix_ + goog.base(this, "getKeyZXY", z, x, y) +}; +ol.source.TileWMS.prototype.getParams = function() { + return this.params_ +}; +ol.source.TileWMS.prototype.getFeatureInfoForPixel = function(pixel, map, success, opt_error) { + var coord = map.getCoordinateFromPixel(pixel), view2D = map.getView().getView2D(), projection = view2D.getProjection(), tileGrid = goog.isNull(this.tileGrid) ? ol.tilegrid.getForProjection(projection) : this.tileGrid, tileCoord = tileGrid.getTileCoordForCoordAndResolution(coord, view2D.getResolution()), tileExtent = tileGrid.getTileCoordExtent(tileCoord), offset = map.getPixelFromCoordinate(ol.extent.getTopLeft(tileExtent)), url = this.tileUrlFunction(tileCoord, projection); + goog.asserts.assert(goog.isDef(url), "ol.source.TileWMS#tileUrlFunction does not return a url"); + ol.source.wms.getFeatureInfo(url, [pixel[0] - offset[0], pixel[1] - offset[1]], this.getFeatureInfoOptions_, success, opt_error) +}; +ol.source.TileWMS.prototype.resetCoordKeyPrefix_ = function() { + var i = 0; + var res = []; + for(var key in this.params_) { + res[i++] = key + "-" + this.params_[key] + } + this.coordKeyPrefix_ = res.join("/") +}; +ol.source.TileWMS.prototype.updateParams = function(params) { + goog.object.extend(this.params_, params); + this.resetCoordKeyPrefix_(); + this.dispatchChangeEvent() +}; +goog.provide("ol.tilegrid.WMTS"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.require("ol.proj"); +goog.require("ol.tilegrid.TileGrid"); +ol.tilegrid.WMTS = function(options) { + goog.asserts.assert(options.resolutions.length == options.matrixIds.length); + this.matrixIds_ = options.matrixIds; + goog.base(this, {origin:options.origin, origins:options.origins, resolutions:options.resolutions, tileSize:options.tileSize, tileSizes:options.tileSizes}) +}; +goog.inherits(ol.tilegrid.WMTS, ol.tilegrid.TileGrid); +ol.tilegrid.WMTS.prototype.getMatrixId = function(z) { + goog.asserts.assert(0 <= z && z < this.matrixIds_.length); + return this.matrixIds_[z] +}; +ol.tilegrid.WMTS.prototype.getMatrixIds = function() { + return this.matrixIds_ +}; +ol.tilegrid.WMTS.createFromCapabilitiesMatrixSet = function(matrixSet) { + var resolutions = []; + var matrixIds = []; + var origins = []; + var tileSizes = []; + var supportedCRSPropName = "supportedCRS"; + var matrixIdsPropName = "matrixIds"; + var identifierPropName = "identifier"; + var scaleDenominatorPropName = "scaleDenominator"; + var topLeftCornerPropName = "topLeftCorner"; + var tileWidthPropName = "tileWidth"; + var tileHeightPropName = "tileHeight"; + var projection = ol.proj.get(matrixSet[supportedCRSPropName]); + var metersPerUnit = projection.getMetersPerUnit(); + goog.array.sort(matrixSet[matrixIdsPropName], function(a, b) { + return b[scaleDenominatorPropName] - a[scaleDenominatorPropName] + }); + goog.array.forEach(matrixSet[matrixIdsPropName], function(elt, index, array) { + matrixIds.push(elt[identifierPropName]); + origins.push(elt[topLeftCornerPropName]); + resolutions.push(elt[scaleDenominatorPropName] * 2.8E-4 / metersPerUnit); + tileSizes.push([elt[tileWidthPropName], elt[tileHeightPropName]]) + }); + return new ol.tilegrid.WMTS({origins:origins, resolutions:resolutions, matrixIds:matrixIds, tileSizes:tileSizes}) +}; +goog.provide("ol.source.WMTS"); +goog.provide("ol.source.WMTSRequestEncoding"); +goog.require("goog.array"); +goog.require("goog.asserts"); +goog.require("goog.math"); +goog.require("goog.object"); +goog.require("goog.uri.utils"); +goog.require("ol.TileCoord"); +goog.require("ol.TileUrlFunction"); +goog.require("ol.TileUrlFunctionType"); +goog.require("ol.extent"); +goog.require("ol.proj"); +goog.require("ol.source.TileImage"); +goog.require("ol.tilegrid.WMTS"); +ol.source.WMTSRequestEncoding = {KVP:"KVP", REST:"REST"}; +ol.source.WMTS = function(options) { + var version = goog.isDef(options.version) ? options.version : "1.0.0"; + var format = goog.isDef(options.format) ? options.format : "image/jpeg"; + this.dimensions_ = options.dimensions || {}; + this.coordKeyPrefix_ = ""; + this.resetCoordKeyPrefix_(); + var requestEncoding = goog.isDef(options.requestEncoding) ? options.requestEncoding : ol.source.WMTSRequestEncoding.KVP; + var tileGrid = options.tileGrid; + var context = {"Layer":options.layer, "style":options.style, "Style":options.style, "TileMatrixSet":options.matrixSet}; + if(requestEncoding == ol.source.WMTSRequestEncoding.KVP) { + goog.object.extend(context, {"Service":"WMTS", "Request":"GetTile", "Version":version, "Format":format}) + } + function createFromWMTSTemplate(template) { + template = requestEncoding == ol.source.WMTSRequestEncoding.KVP ? goog.uri.utils.appendParamsFromMap(template, context) : template.replace(/\{(\w+?)\}/g, function(m, p) { + return p in context ? context[p] : m + }); + return function(tileCoord, projection) { + if(goog.isNull(tileCoord)) { + return undefined + }else { + var localContext = {"TileMatrix":tileGrid.getMatrixId(tileCoord.z), "TileCol":tileCoord.x, "TileRow":tileCoord.y}; + goog.object.extend(localContext, this.dimensions_); + var url = template; + if(requestEncoding == ol.source.WMTSRequestEncoding.KVP) { + url = goog.uri.utils.appendParamsFromMap(url, localContext) + }else { + url = url.replace(/\{(\w+?)\}/g, function(m, p) { + return localContext[p] + }) + } + return url + } + } + } + var tileUrlFunction = ol.TileUrlFunction.nullTileUrlFunction; + var urls = options.urls; + if(!goog.isDef(urls) && goog.isDef(options.url)) { + urls = ol.TileUrlFunction.expandUrl(options.url) + } + if(goog.isDef(urls)) { + tileUrlFunction = ol.TileUrlFunction.createFromTileUrlFunctions(goog.array.map(urls, createFromWMTSTemplate)) + } + var tmpExtent = ol.extent.createEmpty(); + var tmpTileCoord = new ol.TileCoord(0, 0, 0); + tileUrlFunction = ol.TileUrlFunction.withTileCoordTransform(function(tileCoord, projection, opt_tileCoord) { + var tileGrid = this.getTileGrid(); + goog.asserts.assert(!goog.isNull(tileGrid)); + if(tileGrid.getResolutions().length <= tileCoord.z) { + return null + } + var x = tileCoord.x; + var y = -tileCoord.y - 1; + var tileExtent = tileGrid.getTileCoordExtent(tileCoord); + var projectionExtent = projection.getExtent(); + var extent = goog.isDef(options.extent) ? options.extent : projectionExtent; + if(!goog.isNull(extent) && projection.isGlobal() && extent[0] === projectionExtent[0] && extent[1] === projectionExtent[1]) { + var numCols = Math.ceil((extent[1] - extent[0]) / (tileExtent[1] - tileExtent[0])); + x = goog.math.modulo(x, numCols); + tmpTileCoord.z = tileCoord.z; + tmpTileCoord.x = x; + tmpTileCoord.y = tileCoord.y; + tileExtent = tileGrid.getTileCoordExtent(tmpTileCoord, tmpExtent) + } + if(!ol.extent.intersects(tileExtent, extent)) { + return null + } + return new ol.TileCoord(tileCoord.z, x, y) + }, tileUrlFunction); + goog.base(this, {attributions:options.attributions, crossOrigin:options.crossOrigin, extent:options.extent, projection:options.projection, tileGrid:tileGrid, tileUrlFunction:tileUrlFunction}) +}; +goog.inherits(ol.source.WMTS, ol.source.TileImage); +ol.source.WMTS.prototype.getDimensions = function() { + return this.dimensions_ +}; +ol.source.WMTS.prototype.getKeyZXY = function(z, x, y) { + return this.coordKeyPrefix_ + goog.base(this, "getKeyZXY", z, x, y) +}; +ol.source.WMTS.prototype.resetCoordKeyPrefix_ = function() { + var i = 0; + var res = []; + for(var key in this.dimensions_) { + res[i++] = key + "-" + this.dimensions_[key] + } + this.coordKeyPrefix_ = res.join("/") +}; +ol.source.WMTS.prototype.updateDimensions = function(dimensions) { + goog.object.extend(this.dimensions_, dimensions); + this.resetCoordKeyPrefix_(); + this.dispatchChangeEvent() +}; +ol.source.WMTS.optionsFromCapabilities = function(wmtsCap, layer) { + var layers = wmtsCap["contents"]["layers"]; + var l = goog.array.find(layers, function(elt, index, array) { + return elt["identifier"] == layer + }); + goog.asserts.assert(!goog.isNull(l)); + goog.asserts.assert(l["tileMatrixSetLinks"].length > 0); + var matrixSet = (l["tileMatrixSetLinks"][0]["tileMatrixSet"]); + var format = (l["formats"][0]); + var idx = goog.array.findIndex(l["styles"], function(elt, index, array) { + return elt["isDefault"] + }); + if(idx < 0) { + idx = 0 + } + var style = (l["styles"][idx]["identifier"]); + var dimensions = {}; + goog.array.forEach(l["dimensions"], function(elt, index, array) { + var key = elt["identifier"]; + var value = elt["default"]; + if(goog.isDef(value)) { + goog.asserts.assert(goog.array.indexOf(elt["values"], value) >= 0) + }else { + value = elt["values"][0] + } + goog.asserts.assert(goog.isDef(value)); + dimensions[key] = value + }); + var matrixSets = wmtsCap["contents"]["tileMatrixSets"]; + goog.asserts.assert(matrixSet in matrixSets); + var matrixSetObj = matrixSets[matrixSet]; + var tileGrid = ol.tilegrid.WMTS.createFromCapabilitiesMatrixSet(matrixSetObj); + var projection = ol.proj.get(matrixSetObj["supportedCRS"]); + var gets = wmtsCap["operationsMetadata"]["GetTile"]["dcp"]["http"]["get"]; + var encodings = goog.object.getKeys(gets[0]["constraints"]["GetEncoding"]["allowedValues"]); + goog.asserts.assert(encodings.length > 0); + var urls; + var requestEncoding; + switch(encodings[0]) { + case "REST": + ; + case "RESTful": + requestEncoding = ol.source.WMTSRequestEncoding.REST; + goog.asserts.assert(l["resourceUrls"].hasOwnProperty("tile")); + goog.asserts.assert(l["resourceUrls"]["tile"].hasOwnProperty(format)); + urls = (l["resourceUrls"]["tile"][format]); + break; + case "KVP": + requestEncoding = ol.source.WMTSRequestEncoding.KVP; + urls = []; + goog.array.forEach(gets, function(elt, index, array) { + if(elt["constraints"]["GetEncoding"]["allowedValues"].hasOwnProperty(ol.source.WMTSRequestEncoding.KVP)) { + urls.push((elt["url"])) + } + }); + goog.asserts.assert(urls.length > 0); + break; + default: + goog.asserts.fail() + } + return{urls:urls, layer:layer, matrixSet:matrixSet, format:format, projection:projection, requestEncoding:requestEncoding, tileGrid:tileGrid, style:style, dimensions:dimensions} +}; +goog.provide("ol.sphere.WGS84"); +goog.require("ol.Sphere"); +ol.sphere.WGS84 = new ol.Sphere(6378137); +goog.provide("ol.style.Text"); +goog.require("goog.asserts"); +goog.require("ol.Feature"); +goog.require("ol.expr"); +goog.require("ol.expr.Expression"); +goog.require("ol.expr.Literal"); +goog.require("ol.style.Symbolizer"); +goog.require("ol.style.TextLiteral"); +ol.style.Text = function(options) { + this.color_ = !goog.isDef(options.color) ? new ol.expr.Literal(ol.style.TextDefaults.color) : options.color instanceof ol.expr.Expression ? options.color : new ol.expr.Literal(options.color); + this.fontFamily_ = !goog.isDef(options.fontFamily) ? new ol.expr.Literal(ol.style.TextDefaults.fontFamily) : options.fontFamily instanceof ol.expr.Expression ? options.fontFamily : new ol.expr.Literal(options.fontFamily); + this.fontSize_ = !goog.isDef(options.fontSize) ? new ol.expr.Literal(ol.style.TextDefaults.fontSize) : options.fontSize instanceof ol.expr.Expression ? options.fontSize : new ol.expr.Literal(options.fontSize); + this.text_ = options.text instanceof ol.expr.Expression ? options.text : new ol.expr.Literal(options.text); + this.opacity_ = !goog.isDef(options.opacity) ? new ol.expr.Literal(ol.style.TextDefaults.opacity) : options.opacity instanceof ol.expr.Expression ? options.opacity : new ol.expr.Literal(options.opacity) +}; +goog.inherits(ol.style.Text, ol.style.Symbolizer); +ol.style.Text.prototype.createLiteral = function(featureOrType) { + var feature, type; + if(featureOrType instanceof ol.Feature) { + feature = featureOrType; + var geometry = feature.getGeometry(); + type = geometry ? geometry.getType() : null + }else { + type = featureOrType + } + var color = ol.expr.evaluateFeature(this.color_, feature); + goog.asserts.assertString(color, "color must be a string"); + var fontFamily = ol.expr.evaluateFeature(this.fontFamily_, feature); + goog.asserts.assertString(fontFamily, "fontFamily must be a string"); + var fontSize = Number(ol.expr.evaluateFeature(this.fontSize_, feature)); + goog.asserts.assert(!isNaN(fontSize), "fontSize must be a number"); + var text = ol.expr.evaluateFeature(this.text_, feature); + goog.asserts.assertString(text, "text must be a string"); + var opacity = Number(ol.expr.evaluateFeature(this.opacity_, feature)); + goog.asserts.assert(!isNaN(opacity), "opacity must be a number"); + return new ol.style.TextLiteral({color:color, fontFamily:fontFamily, fontSize:fontSize, text:text, opacity:opacity}) +}; +ol.style.Text.prototype.getColor = function() { + return this.color_ +}; +ol.style.Text.prototype.getFontFamily = function() { + return this.fontFamily_ +}; +ol.style.Text.prototype.getFontSize = function() { + return this.fontSize_ +}; +ol.style.Text.prototype.getOpacity = function() { + return this.opacity_ +}; +ol.style.Text.prototype.getText = function() { + return this.text_ +}; +ol.style.Text.prototype.setColor = function(color) { + goog.asserts.assertInstanceof(color, ol.expr.Expression); + this.color_ = color +}; +ol.style.Text.prototype.setFontFamily = function(fontFamily) { + goog.asserts.assertInstanceof(fontFamily, ol.expr.Expression); + this.fontFamily_ = fontFamily +}; +ol.style.Text.prototype.setFontSize = function(fontSize) { + goog.asserts.assertInstanceof(fontSize, ol.expr.Expression); + this.fontSize_ = fontSize +}; +ol.style.Text.prototype.setOpacity = function(opacity) { + goog.asserts.assertInstanceof(opacity, ol.expr.Expression); + this.opacity_ = opacity +}; +ol.style.Text.prototype.setText = function(text) { + goog.asserts.assertInstanceof(text, ol.expr.Expression); + this.text_ = text +}; +ol.style.TextDefaults = {color:"#000", fontFamily:"sans-serif", fontSize:10, opacity:1}; +goog.require("ol"); +goog.require("ol.Attribution"); +goog.require("ol.BrowserFeature"); +goog.require("ol.Collection"); +goog.require("ol.CollectionEvent"); +goog.require("ol.CollectionEventType"); +goog.require("ol.Color"); +goog.require("ol.Constraints"); +goog.require("ol.Coordinate"); +goog.require("ol.CoordinateArray"); +goog.require("ol.CoordinateFormatType"); +goog.require("ol.DeviceOrientation"); +goog.require("ol.DeviceOrientation.SUPPORTED"); +goog.require("ol.DeviceOrientationProperty"); +goog.require("ol.Ellipsoid"); +goog.require("ol.Extent"); +goog.require("ol.Feature"); +goog.require("ol.FrameState"); +goog.require("ol.Geolocation"); +goog.require("ol.Geolocation.SUPPORTED"); +goog.require("ol.GeolocationProperty"); +goog.require("ol.IView"); +goog.require("ol.IView2D"); +goog.require("ol.IView3D"); +goog.require("ol.Image"); +goog.require("ol.ImageState"); +goog.require("ol.ImageTile"); +goog.require("ol.ImageUrlFunction"); +goog.require("ol.ImageUrlFunctionType"); +goog.require("ol.Kinetic"); +goog.require("ol.Map"); +goog.require("ol.MapBrowserEvent"); +goog.require("ol.MapBrowserEvent.EventType"); +goog.require("ol.MapBrowserEventHandler"); +goog.require("ol.MapEvent"); +goog.require("ol.MapEventType"); +goog.require("ol.MapProperty"); +goog.require("ol.Object"); +goog.require("ol.ObjectEventType"); +goog.require("ol.Overlay"); +goog.require("ol.OverlayPositioning"); +goog.require("ol.OverlayProperty"); +goog.require("ol.Pixel"); +goog.require("ol.PostRenderFunction"); +goog.require("ol.PreRenderFunction"); +goog.require("ol.Projection"); +goog.require("ol.ProjectionLike"); +goog.require("ol.ProjectionUnits"); +goog.require("ol.RendererHint"); +goog.require("ol.RendererHints"); +goog.require("ol.ResolutionConstraint"); +goog.require("ol.ResolutionConstraintType"); +goog.require("ol.RotationConstraint"); +goog.require("ol.RotationConstraintType"); +goog.require("ol.Size"); +goog.require("ol.Sphere"); +goog.require("ol.Tile"); +goog.require("ol.TileCache"); +goog.require("ol.TileCoord"); +goog.require("ol.TilePriorityFunction"); +goog.require("ol.TileQueue"); +goog.require("ol.TileRange"); +goog.require("ol.TileState"); +goog.require("ol.TileUrlFunction"); +goog.require("ol.TileUrlFunctionType"); +goog.require("ol.TransformFunction"); +goog.require("ol.View"); +goog.require("ol.View2D"); +goog.require("ol.View2DProperty"); +goog.require("ol.View2DState"); +goog.require("ol.ViewHint"); +goog.require("ol.animation"); +goog.require("ol.array"); +goog.require("ol.canvas"); +goog.require("ol.canvas.SUPPORTED"); +goog.require("ol.control"); +goog.require("ol.control.Attribution"); +goog.require("ol.control.Control"); +goog.require("ol.control.DragBox"); +goog.require("ol.control.FullScreen"); +goog.require("ol.control.Logo"); +goog.require("ol.control.MousePosition"); +goog.require("ol.control.ScaleLine"); +goog.require("ol.control.ScaleLineProperty"); +goog.require("ol.control.ScaleLineUnits"); +goog.require("ol.control.Zoom"); +goog.require("ol.control.ZoomSlider"); +goog.require("ol.control.ZoomToExtent"); +goog.require("ol.coordinate"); +goog.require("ol.css"); +goog.require("ol.dom"); +goog.require("ol.dom.BrowserFeature"); +goog.require("ol.dom.Input"); +goog.require("ol.dom.InputProperty"); +goog.require("ol.easing"); +goog.require("ol.ellipsoid.BESSEL1841"); +goog.require("ol.ellipsoid.WGS84"); +goog.require("ol.expr"); +goog.require("ol.expr.Call"); +goog.require("ol.expr.Char"); +goog.require("ol.expr.Comparison"); +goog.require("ol.expr.ComparisonOp"); +goog.require("ol.expr.Expression"); +goog.require("ol.expr.Identifier"); +goog.require("ol.expr.Lexer"); +goog.require("ol.expr.Literal"); +goog.require("ol.expr.Logical"); +goog.require("ol.expr.LogicalOp"); +goog.require("ol.expr.Math"); +goog.require("ol.expr.MathOp"); +goog.require("ol.expr.Member"); +goog.require("ol.expr.Not"); +goog.require("ol.expr.Parser"); +goog.require("ol.expr.Token"); +goog.require("ol.expr.TokenType"); +goog.require("ol.expr.UnexpectedToken"); +goog.require("ol.expr.functions"); +goog.require("ol.extent"); +goog.require("ol.geom"); +goog.require("ol.geom.AbstractCollection"); +goog.require("ol.geom.Geometry"); +goog.require("ol.geom.GeometryCollection"); +goog.require("ol.geom.GeometryType"); +goog.require("ol.geom.LineString"); +goog.require("ol.geom.LinearRing"); +goog.require("ol.geom.MultiLineString"); +goog.require("ol.geom.MultiPoint"); +goog.require("ol.geom.MultiPolygon"); +goog.require("ol.geom.Point"); +goog.require("ol.geom.Polygon"); +goog.require("ol.geom.SharedVertices"); +goog.require("ol.geom2"); +goog.require("ol.geom2.LineString"); +goog.require("ol.geom2.LineStringCollection"); +goog.require("ol.geom2.Point"); +goog.require("ol.geom2.PointCollection"); +goog.require("ol.interaction"); +goog.require("ol.interaction.ConditionType"); +goog.require("ol.interaction.DoubleClickZoom"); +goog.require("ol.interaction.Drag"); +goog.require("ol.interaction.DragPan"); +goog.require("ol.interaction.DragRotate"); +goog.require("ol.interaction.DragRotateAndZoom"); +goog.require("ol.interaction.DragZoom"); +goog.require("ol.interaction.Interaction"); +goog.require("ol.interaction.KeyboardPan"); +goog.require("ol.interaction.KeyboardZoom"); +goog.require("ol.interaction.Modify"); +goog.require("ol.interaction.MouseWheelZoom"); +goog.require("ol.interaction.Select"); +goog.require("ol.interaction.Touch"); +goog.require("ol.interaction.TouchPan"); +goog.require("ol.interaction.TouchRotate"); +goog.require("ol.interaction.TouchZoom"); +goog.require("ol.interaction.condition"); +goog.require("ol.layer.Base"); +goog.require("ol.layer.Group"); +goog.require("ol.layer.Image"); +goog.require("ol.layer.Layer"); +goog.require("ol.layer.LayerProperty"); +goog.require("ol.layer.LayerState"); +goog.require("ol.layer.Tile"); +goog.require("ol.layer.Vector"); +goog.require("ol.layer.Vector2"); +goog.require("ol.layer.VectorLayerEventType"); +goog.require("ol.layer.VectorLayerRenderIntent"); +goog.require("ol.math"); +goog.require("ol.parser.AsyncObjectFeatureParser"); +goog.require("ol.parser.AsyncStringFeatureParser"); +goog.require("ol.parser.DomFeatureParser"); +goog.require("ol.parser.GPX"); +goog.require("ol.parser.GeoJSON"); +goog.require("ol.parser.KML"); +goog.require("ol.parser.ObjectFeatureParser"); +goog.require("ol.parser.Parser"); +goog.require("ol.parser.ReadFeaturesOptions"); +goog.require("ol.parser.ReadFeaturesResult"); +goog.require("ol.parser.StringFeatureParser"); +goog.require("ol.parser.TopoJSON"); +goog.require("ol.parser.WKT"); +goog.require("ol.parser.XML"); +goog.require("ol.parser.ogc.ExceptionReport"); +goog.require("ol.parser.ogc.Filter"); +goog.require("ol.parser.ogc.Filter_v1"); +goog.require("ol.parser.ogc.Filter_v1_0_0"); +goog.require("ol.parser.ogc.Filter_v1_1_0"); +goog.require("ol.parser.ogc.GML"); +goog.require("ol.parser.ogc.GML_v2"); +goog.require("ol.parser.ogc.GML_v3"); +goog.require("ol.parser.ogc.OWSCommon_v1"); +goog.require("ol.parser.ogc.OWSCommon_v1_1_0"); +goog.require("ol.parser.ogc.Versioned"); +goog.require("ol.parser.ogc.WMSCapabilities"); +goog.require("ol.parser.ogc.WMSCapabilities_v1"); +goog.require("ol.parser.ogc.WMSCapabilities_v1_0_0"); +goog.require("ol.parser.ogc.WMSCapabilities_v1_1"); +goog.require("ol.parser.ogc.WMSCapabilities_v1_1_0"); +goog.require("ol.parser.ogc.WMSCapabilities_v1_1_1"); +goog.require("ol.parser.ogc.WMSCapabilities_v1_1_1_WMSC"); +goog.require("ol.parser.ogc.WMSCapabilities_v1_3_0"); +goog.require("ol.parser.ogc.WMTSCapabilities"); +goog.require("ol.parser.ogc.WMTSCapabilities_v1_0_0"); +goog.require("ol.parser.polyline"); +goog.require("ol.proj"); +goog.require("ol.proj.CH"); +goog.require("ol.proj.EPSG2056"); +goog.require("ol.proj.EPSG21781"); +goog.require("ol.proj.EPSG3857"); +goog.require("ol.proj.EPSG4326"); +goog.require("ol.proj.common"); +goog.require("ol.renderer.Layer"); +goog.require("ol.renderer.Map"); +goog.require("ol.renderer.canvas.ImageLayer"); +goog.require("ol.renderer.canvas.Layer"); +goog.require("ol.renderer.canvas.Map"); +goog.require("ol.renderer.canvas.SUPPORTED"); +goog.require("ol.renderer.canvas.TileLayer"); +goog.require("ol.renderer.canvas.VectorLayer"); +goog.require("ol.renderer.canvas.VectorRenderer"); +goog.require("ol.renderer.dom.ImageLayer"); +goog.require("ol.renderer.dom.Layer"); +goog.require("ol.renderer.dom.Map"); +goog.require("ol.renderer.dom.SUPPORTED"); +goog.require("ol.renderer.dom.TileLayer"); +goog.require("ol.renderer.webgl.ImageLayer"); +goog.require("ol.renderer.webgl.Layer"); +goog.require("ol.renderer.webgl.Map"); +goog.require("ol.renderer.webgl.SUPPORTED"); +goog.require("ol.renderer.webgl.TileLayer"); +goog.require("ol.renderer.webgl.VectorLayer2"); +goog.require("ol.renderer.webgl.map.shader.Color"); +goog.require("ol.renderer.webgl.map.shader.Default"); +goog.require("ol.renderer.webgl.tilelayer.shader"); +goog.require("ol.renderer.webgl.vectorlayer2.shader.LineStringCollection"); +goog.require("ol.renderer.webgl.vectorlayer2.shader.PointCollection"); +goog.require("ol.size"); +goog.require("ol.source.BingMaps"); +goog.require("ol.source.FeatureInfoSource"); +goog.require("ol.source.Image"); +goog.require("ol.source.ImageStatic"); +goog.require("ol.source.ImageWMS"); +goog.require("ol.source.MapQuestOSM"); +goog.require("ol.source.MapQuestOpenAerial"); +goog.require("ol.source.OSM"); +goog.require("ol.source.Source"); +goog.require("ol.source.Stamen"); +goog.require("ol.source.Tile"); +goog.require("ol.source.TileDebug"); +goog.require("ol.source.TileImage"); +goog.require("ol.source.TileJSON"); +goog.require("ol.source.TileOptions"); +goog.require("ol.source.TileWMS"); +goog.require("ol.source.Vector"); +goog.require("ol.source.Vector2"); +goog.require("ol.source.WMSGetFeatureInfoMethod"); +goog.require("ol.source.WMTS"); +goog.require("ol.source.WMTSRequestEncoding"); +goog.require("ol.source.XYZ"); +goog.require("ol.source.wms"); +goog.require("ol.sphere.NORMAL"); +goog.require("ol.sphere.WGS84"); +goog.require("ol.structs.Buffer"); +goog.require("ol.structs.IntegerSet"); +goog.require("ol.structs.LRUCache"); +goog.require("ol.structs.PriorityQueue"); +goog.require("ol.structs.RTree"); +goog.require("ol.style"); +goog.require("ol.style.Fill"); +goog.require("ol.style.Icon"); +goog.require("ol.style.IconLiteral"); +goog.require("ol.style.LineLiteral"); +goog.require("ol.style.Literal"); +goog.require("ol.style.Point"); +goog.require("ol.style.PointLiteral"); +goog.require("ol.style.PolygonLiteral"); +goog.require("ol.style.Rule"); +goog.require("ol.style.Shape"); +goog.require("ol.style.ShapeLiteral"); +goog.require("ol.style.ShapeType"); +goog.require("ol.style.Stroke"); +goog.require("ol.style.StrokeDefaults"); +goog.require("ol.style.Style"); +goog.require("ol.style.Symbolizer"); +goog.require("ol.style.Text"); +goog.require("ol.style.TextLiteral"); +goog.require("ol.tilegrid.TileGrid"); +goog.require("ol.tilegrid.WMTS"); +goog.require("ol.tilegrid.XYZ"); +goog.require("ol.tilejson"); +goog.require("ol.vec.Mat4"); +goog.require("ol.webgl"); +goog.require("ol.webgl.SUPPORTED"); +goog.require("ol.webgl.WebGLContextEventType"); +goog.require("ol.webgl.shader"); +goog.provide("ol.AttributionOptions"); +goog.provide("ol.DeviceOrientationOptions"); +goog.provide("ol.GeolocationOptions"); +goog.provide("ol.GetFeatureInfoOptions"); +goog.provide("ol.GetFeaturesOptions"); +goog.provide("ol.MapOptions"); +goog.provide("ol.OverlayOptions"); +goog.provide("ol.Proj4jsProjectionOptions"); +goog.provide("ol.ProjectionOptions"); +goog.provide("ol.View2DOptions"); +goog.provide("ol.animation.BounceOptions"); +goog.provide("ol.animation.PanOptions"); +goog.provide("ol.animation.RotateOptions"); +goog.provide("ol.animation.ZoomOptions"); +goog.provide("ol.control.AttributionOptions"); +goog.provide("ol.control.ControlOptions"); +goog.provide("ol.control.DefaultsOptions"); +goog.provide("ol.control.FullScreenOptions"); +goog.provide("ol.control.LogoOptions"); +goog.provide("ol.control.MousePositionOptions"); +goog.provide("ol.control.ScaleLineOptions"); +goog.provide("ol.control.ZoomOptions"); +goog.provide("ol.control.ZoomSliderOptions"); +goog.provide("ol.control.ZoomToExtentOptions"); +goog.provide("ol.interaction.DefaultsOptions"); +goog.provide("ol.interaction.DoubleClickZoomOptions"); +goog.provide("ol.interaction.DragPanOptions"); +goog.provide("ol.interaction.DragRotateAndZoomOptions"); +goog.provide("ol.interaction.DragRotateOptions"); +goog.provide("ol.interaction.DragZoomOptions"); +goog.provide("ol.interaction.KeyboardPanOptions"); +goog.provide("ol.interaction.KeyboardZoomOptions"); +goog.provide("ol.interaction.ModifyOptions"); +goog.provide("ol.interaction.SelectOptions"); +goog.provide("ol.interaction.TouchPanOptions"); +goog.provide("ol.interaction.TouchRotateOptions"); +goog.provide("ol.layer.BaseOptions"); +goog.provide("ol.layer.GroupOptions"); +goog.provide("ol.layer.LayerOptions"); +goog.provide("ol.layer.TileOptions"); +goog.provide("ol.layer.VectorLayerOptions"); +goog.provide("ol.parser.GMLOptions"); +goog.provide("ol.parser.GMLReadOptions"); +goog.provide("ol.parser.GMLWriteOptions"); +goog.provide("ol.parser.GPXOptions"); +goog.provide("ol.parser.GPXWriteOptions"); +goog.provide("ol.parser.KMLOptions"); +goog.provide("ol.source.BingMapsOptions"); +goog.provide("ol.source.ImageStaticOptions"); +goog.provide("ol.source.ImageWMSOptions"); +goog.provide("ol.source.OSMOptions"); +goog.provide("ol.source.SourceOptions"); +goog.provide("ol.source.StamenOptions"); +goog.provide("ol.source.TileDebugOptions"); +goog.provide("ol.source.TileJSONOptions"); +goog.provide("ol.source.TileWMSOptions"); +goog.provide("ol.source.Vector2Options"); +goog.provide("ol.source.VectorOptions"); +goog.provide("ol.source.WMSGetFeatureInfoOptions"); +goog.provide("ol.source.WMTSOptions"); +goog.provide("ol.source.XYZOptions"); +goog.provide("ol.style.FillOptions"); +goog.provide("ol.style.IconOptions"); +goog.provide("ol.style.RuleOptions"); +goog.provide("ol.style.ShapeOptions"); +goog.provide("ol.style.StrokeOptions"); +goog.provide("ol.style.StyleOptions"); +goog.provide("ol.style.TextOptions"); +goog.provide("ol.tilegrid.TileGridOptions"); +goog.provide("ol.tilegrid.WMTSOptions"); +goog.provide("ol.tilegrid.XYZOptions"); +ol.AttributionOptions; +ol.DeviceOrientationOptions; +ol.GeolocationOptions; +ol.GetFeatureInfoOptions; +ol.GetFeaturesOptions; +ol.MapOptions; +ol.OverlayOptions; +ol.Proj4jsProjectionOptions; +ol.ProjectionOptions; +ol.View2DOptions; +ol.animation.BounceOptions; +ol.animation.PanOptions; +ol.animation.RotateOptions; +ol.animation.ZoomOptions; +ol.control.AttributionOptions; +ol.control.ControlOptions; +ol.control.DefaultsOptions; +ol.control.FullScreenOptions; +ol.control.LogoOptions; +ol.control.MousePositionOptions; +ol.control.ScaleLineOptions; +ol.control.ZoomOptions; +ol.control.ZoomSliderOptions; +ol.control.ZoomToExtentOptions; +ol.interaction.DefaultsOptions; +ol.interaction.DoubleClickZoomOptions; +ol.interaction.DragPanOptions; +ol.interaction.DragRotateAndZoomOptions; +ol.interaction.DragRotateOptions; +ol.interaction.DragZoomOptions; +ol.interaction.KeyboardPanOptions; +ol.interaction.KeyboardZoomOptions; +ol.interaction.ModifyOptions; +ol.interaction.SelectOptions; +ol.interaction.TouchPanOptions; +ol.interaction.TouchRotateOptions; +ol.layer.BaseOptions; +ol.layer.GroupOptions; +ol.layer.LayerOptions; +ol.layer.TileOptions; +ol.layer.VectorLayerOptions; +ol.parser.GMLOptions; +ol.parser.GMLReadOptions; +ol.parser.GMLWriteOptions; +ol.parser.GPXOptions; +ol.parser.GPXWriteOptions; +ol.parser.KMLOptions; +ol.source.BingMapsOptions; +ol.source.ImageStaticOptions; +ol.source.ImageWMSOptions; +ol.source.OSMOptions; +ol.source.SourceOptions; +ol.source.StamenOptions; +ol.source.TileDebugOptions; +ol.source.TileJSONOptions; +ol.source.TileWMSOptions; +ol.source.Vector2Options; +ol.source.VectorOptions; +ol.source.WMSGetFeatureInfoOptions; +ol.source.WMTSOptions; +ol.source.XYZOptions; +ol.style.FillOptions; +ol.style.IconOptions; +ol.style.RuleOptions; +ol.style.ShapeOptions; +ol.style.StrokeOptions; +ol.style.StyleOptions; +ol.style.TextOptions; +ol.tilegrid.TileGridOptions; +ol.tilegrid.WMTSOptions; +ol.tilegrid.XYZOptions; + diff --git a/edit/build/ol.css b/edit/build/ol.css new file mode 100644 index 0000000000..45c2cb8e4f --- /dev/null +++ b/edit/build/ol.css @@ -0,0 +1 @@ +.ol-attribution{position:absolute;text-align:right;color:#eee;bottom:0;right:0;background:rgba(0,60,136,0.3);font-family:'Lucida Grande',Verdana,Geneva,Lucida,Arial,Helvetica,sans-serif;padding:6px}.ol-attribution a{color:white;text-decoration:none}.ol-attribution ul{margin:0;padding:0;font-size:10px;line-height:12px}.ol-attribution li{display:inline;list-style:none;line-height:inherit}.ol-attribution li:not(:last-child):after{content:"\002003"}.ol-dragbox{position:absolute;border:2px solid red}.ol-full-screen{background:rgba(255,255,255,0.4);border-radius:4px;padding:2px;position:absolute;right:8px;top:8px}@media print{.ol-full-screen{display:none}}.ol-full-screen a{background:rgba(0,60,136,0.5);color:white;display:block;font-family:'Lucida Grande',Verdana,Geneva,Lucida,Arial,Helvetica,sans-serif;font-size:18px;font-weight:bold;height:22px;line-height:19px;margin:1px;padding:0;text-align:center;text-decoration:none;width:22px}a.ol-full-screen-false:after{content:"\002194"}a.ol-full-screen-true:after{content:"\0000d7"}.ol-full-screen div{border-radius:2px}.ol-full-screen div a{border-radius:2px}.ol-full-screen a:hover{background:rgba(0,60,136,0.7)}.ol-logo{bottom:0;left:0;padding:2px;position:absolute}.ol-logo ul{margin:0}.ol-logo ul li{display:inline;list-style:none}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:rgba(0,60,136,0.3);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid #eee;border-top:none;color:#eee;font-size:10px;font-family:'Lucida Grande',Verdana,Geneva,Lucida,Arial,Helvetica,sans-serif;text-align:center;margin:1px;padding:0 2px}.ol-unsupported{display:none}.ol-viewport .ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.ol-zoom{position:absolute;top:8px;left:8px;background:rgba(255,255,255,0.4);border-radius:4px;padding:2px}@media print{.ol-zoom{display:none}}.ol-zoom a{display:block;margin:1px;padding:0;color:white;font-size:18px;font-family:'Lucida Grande',Verdana,Geneva,Lucida,Arial,Helvetica,sans-serif;font-weight:bold;text-decoration:none;text-align:center;height:22px;width:22px;line-height:19px;background:rgba(0,60,136,0.5)}.ol-touch .ol-zoom a{font-size:20px;height:30px;width:30px;line-height:26px}.ol-zoom a:hover{background:rgba(0,60,136,0.7)}.ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom-in:before{content:"+"}.ol-zoom-out{border-radius:0 0 2px 2px}.ol-zoom-out:before{content:"\002212"}.ol-zoomslider{position:absolute;top:67px;left:8px;background:rgba(255,255,255,0.4);border-radius:4px;width:28px;height:200px;outline:none;overflow:hidden;padding:0;margin:0}.ol-zoomslider-thumb{position:absolute;display:block;padding:0;margin:2px;background:rgba(0,60,136,0.5);border-radius:2px;outline:none;overflow:hidden;height:20px;width:24px}.ol-zoom-extent{position:absolute;background:rgba(255,255,255,0.4);border-radius:4px;left:8px;padding:2px;top:65px}@media print{.ol-zoom-extent{display:none}}.ol-zoom-extent a{display:block;margin:1px;padding:0;color:white;font-size:16px;font-family:'Lucida Grande',Verdana,Geneva,Lucida,Arial,Helvetica,sans-serif;font-weight:bold;text-decoration:none;text-align:center;height:22px;width:22px;background-color:rgba(0,60,136,0.5);border-radius:2px}.ol-touch .ol-zoom-extent a{font-size:20px;height:30px;width:30px;line-height:26px}.ol-zoom-extent a:hover{background-color:rgba(0,60,136,0.7)}.ol-zoom-extent a:after{content:"E"} \ No newline at end of file diff --git a/edit/build/ol.js b/edit/build/ol.js new file mode 100644 index 0000000000..3131572353 --- /dev/null +++ b/edit/build/ol.js @@ -0,0 +1,514 @@ +(function(){function k(a){return function(){return this[a]}}function aa(a){return function(){return a}}var m,ba=ba||{},p=this;function da(){}function fa(a){a.ia=function(){return a.ce?a.ce:a.ce=new a}} +function ga(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null"; +else if("function"==b&&"undefined"==typeof a.call)return"object";return b}function t(a){return void 0!==a}function ha(a){return null===a}function ia(a){return"array"==ga(a)}function ja(a){var b=ga(a);return"array"==b||"object"==b&&"number"==typeof a.length}function v(a){return"string"==typeof a}function ka(a){return"number"==typeof a}function la(a){return"function"==ga(a)}function ma(a){var b=typeof a;return"object"==b&&null!=a||"function"==b}function x(a){return a[na]||(a[na]=++oa)} +var na="closure_uid_"+(1E9*Math.random()>>>0),oa=0;function pa(a,b,c){return a.call.apply(a.bind,arguments)}function qa(a,b,c){if(!a)throw Error();if(2/g,Ca=/\"/g,ya=/[&<>\"]/; +function Da(a){a=t(void 0)?a.toFixed(void 0):String(a);var b=a.indexOf(".");-1==b&&(b=a.length);b=Math.max(0,2-b);return Array(b+1).join("0")+a};var Ea=Array.prototype,Ga=Ea.indexOf?function(a,b,c){return Ea.indexOf.call(a,b,c)}:function(a,b,c){c=null==c?0:0>c?Math.max(0,a.length+c):c;if(v(a))return v(b)&&1==b.length?a.indexOf(b,c):-1;for(;cc?null:v(a)?a.charAt(c):a[c]}function Oa(a,b,c){for(var d=a.length,e=v(a)?a.split(""):a,f=0;f=arguments.length?Ea.slice.call(a,b):Ea.slice.call(a,b,c)}function Va(a,b){Ea.sort.call(a,b||Wa)}function Wa(a,b){return a>b?1:a>=1;return b.join("")}Ya.prototype.toString=function(){return[this.z,this.x,this.y].join("/")};function ab(a,b,c,d){this.a=a;this.d=b;this.c=c;this.b=d}function bb(a,b,c,d,e){return t(e)?(e.a=a,e.d=b,e.c=c,e.b=d,e):new ab(a,b,c,d)}ab.prototype.contains=function(a){return this.a<=a.x&&a.x<=this.d&&this.c<=a.y&&a.y<=this.b};function cb(a){this.b=a.html;this.a=t(a.tileRanges)?a.tileRanges:null};function db(){0!=eb&&(this.ih=Error().stack,fb[x(this)]=this)}var eb=0,fb={};db.prototype.ec=!1;db.prototype.uc=function(){if(!this.ec&&(this.ec=!0,this.v(),0!=eb)){var a=x(this);delete fb[a]}};function gb(a,b){var c=ra(hb,b);a.R||(a.R=[]);a.R.push(y(c,void 0))}db.prototype.v=function(){if(this.R)for(;this.R.length;)this.R.shift()()};function hb(a){a&&"function"==typeof a.uc&&a.uc()};function ib(a,b){this.type=a;this.c=this.target=b}m=ib.prototype;m.uc=function(){};m.jb=!1;m.cf=!1;m.re=!0;m.sb=function(){this.jb=!0};m.U=function(){this.cf=!0;this.re=!1};function jb(a){a.sb()}function kb(a){a.U()};var lb,mb,nb,ob,pb,qb,rb;function sb(){return p.navigator?p.navigator.userAgent:null}function tb(){return p.navigator}ob=nb=mb=lb=!1;var ub;if(ub=sb()){var vb=tb();lb=0==ub.lastIndexOf("Opera",0);mb=!lb&&(-1!=ub.indexOf("MSIE")||-1!=ub.indexOf("Trident"));nb=!lb&&-1!=ub.indexOf("WebKit");ob=!lb&&!nb&&!mb&&"Gecko"==vb.product}var wb=lb,G=mb,xb=ob,yb=nb,zb,Ab=tb();zb=Ab&&Ab.platform||"";pb=-1!=zb.indexOf("Mac");qb=-1!=zb.indexOf("Win");rb=-1!=zb.indexOf("Linux"); +var Bb=!!tb()&&-1!=(tb().appVersion||"").indexOf("X11");function Cb(){var a=p.document;return a?a.documentMode:void 0}var Db;a:{var Eb="",Gb;if(wb&&p.opera)var Hb=p.opera.version,Eb="function"==typeof Hb?Hb():Hb;else if(xb?Gb=/rv\:([^\);]+)(\)|;)/:G?Gb=/\b(?:MSIE|rv)\s+([^\);]+)(\)|;)/:yb&&(Gb=/WebKit\/(\S+)/),Gb)var Ib=Gb.exec(sb()),Eb=Ib?Ib[1]:"";if(G){var Kb=Cb();if(Kb>parseFloat(Eb)){Db=String(Kb);break a}}Db=Eb}var Lb={}; +function Mb(a){var b;if(!(b=Lb[a])){b=0;for(var c=ua(String(Db)).split("."),d=ua(String(a)).split("."),e=Math.max(c.length,d.length),f=0;0==b&&f(0==r[1].length?0:parseInt(r[1],10))?1:0)||((0==q[2].length)< +(0==r[2].length)?-1:(0==q[2].length)>(0==r[2].length)?1:0)||(q[2]r[2]?1:0)}while(0==b)}b=Lb[a]=0<=b}return b}var Nb=p.document,Ob=Nb&&G?Cb()||("CSS1Compat"==Nb.compatMode?parseInt(Db,10):5):void 0;var Pb=!G||G&&9<=Ob,Qb=!G||G&&9<=Ob,Rb=G&&!Mb("9");!yb||Mb("528");xb&&Mb("1.9b")||G&&Mb("8")||wb&&Mb("9.5")||yb&&Mb("528");xb&&!Mb("8")||G&&Mb("9");function Sb(a){Sb[" "](a);return a}Sb[" "]=da;function Tb(a,b){a&&Ub(this,a,b)}F(Tb,ib);var Vb=[1,4,2];m=Tb.prototype;m.target=null;m.bf=null;m.Td=0;m.Ud=0;m.clientX=0;m.clientY=0;m.rd=0;m.sd=0;m.af=0;m.Ua=0;m.pd=0;m.Vb=!1;m.wa=!1;m.Va=!1;m.qd=!1;m.Jb=!1;m.da=null; +function Ub(a,b,c){var d=a.type=b.type;ib.call(a,d);a.target=b.target||b.srcElement;a.c=c;if(c=b.relatedTarget){if(xb){var e;a:{try{Sb(c.nodeName);e=!0;break a}catch(f){}e=!1}e||(c=null)}}else"mouseover"==d?c=b.fromElement:"mouseout"==d&&(c=b.toElement);a.bf=c;a.Td=yb||void 0!==b.offsetX?b.offsetX:b.layerX;a.Ud=yb||void 0!==b.offsetY?b.offsetY:b.layerY;a.clientX=void 0!==b.clientX?b.clientX:b.pageX;a.clientY=void 0!==b.clientY?b.clientY:b.pageY;a.rd=b.screenX||0;a.sd=b.screenY||0;a.af=b.button;a.Ua= +b.keyCode||0;a.pd=b.charCode||("keypress"==d?b.keyCode:0);a.Vb=b.ctrlKey;a.wa=b.altKey;a.Va=b.shiftKey;a.qd=b.metaKey;a.Jb=pb?b.metaKey:b.ctrlKey;a.a=b.state;a.da=b;b.defaultPrevented&&a.U();delete a.jb}function Wb(a){return(Pb?0==a.da.button:"click"==a.type?!0:!!(a.da.button&Vb[0]))&&!(yb&&pb&&a.Vb)}m.sb=function(){Tb.B.sb.call(this);this.da.stopPropagation?this.da.stopPropagation():this.da.cancelBubble=!0}; +m.U=function(){Tb.B.U.call(this);var a=this.da;if(a.preventDefault)a.preventDefault();else if(a.returnValue=!1,Rb)try{if(a.ctrlKey||112<=a.keyCode&&123>=a.keyCode)a.keyCode=-1}catch(b){}};m.Pe=k("da");var Xb="closure_listenable_"+(1E6*Math.random()|0);function Yb(a){return!(!a||!a[Xb])}var dc=0;function ec(a,b,c,d,e,f){this.Oa=a;this.a=b;this.src=c;this.type=d;this.capture=!!e;this.ub=f;this.key=++dc;this.ab=this.Cb=!1}function fc(a){a.ab=!0;a.Oa=null;a.a=null;a.src=null;a.ub=null};function gc(a,b){for(var c in a)b.call(void 0,a[c],c,a)}function hc(a,b){var c={},d;for(d in a)b.call(void 0,a[d],d,a)&&(c[d]=a[d]);return c}function ic(a){var b=0,c;for(c in a)b++;return b}function jc(a){for(var b in a)return b}function kc(a){var b=[],c=0,d;for(d in a)b[c++]=a[d];return b}function lc(a){var b=[],c=0,d;for(d in a)b[c++]=d;return b}function mc(a){var b=nc,c;for(c in b)if(a.call(void 0,b[c],c,b))return c}function oc(a){for(var b in a)return!1;return!0} +function pc(a){var b={},c;for(c in a)b[c]=a[c];return b}var qc="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function H(a,b){for(var c,d,e=1;ee.keyCode||void 0!=e.returnValue)return!0;a:{var h=!1;if(0==e.keyCode)try{e.keyCode=-1;break a}catch(l){h=!0}if(h||void 0==e.returnValue)e.returnValue=!0}}h=new Tb;Ub(h,e,this);e=!0;try{if(c){for(var n=[],q=h.c;q;q=q.parentNode)n.push(q);f=d[!0];for(var r=n.length- +1;!h.jb&&0<=r;r--)h.c=n[r],e&=Jc(f,n[r],h);if(g)for(f=d[!1],r=0;!h.jb&&r>>0);function yc(a){return la(a)?a:a[Mc]||(a[Mc]=function(b){return a.handleEvent(b)})};function Nc(a){this.src=a;this.a={};this.b=0}Nc.prototype.add=function(a,b,c,d,e){var f=this.a[a];f||(f=this.a[a]=[],this.b++);var g=Ic(f,b,d,e);-1c*b?c+b:c}function bd(a){return a*Math.PI/180};function cd(a){L.call(this);a=t(a)?a:{};this.a=null;J(this,Vc("tracking"),this.i,!1,this);this.b(t(a.tracking)?a.tracking:!1)}F(cd,L);cd.prototype.v=function(){this.b(!1);cd.B.v.call(this)};var hd="DeviceOrientationEvent"in window; +cd.prototype.k=function(a){a=a.da;if(null!=a.alpha){var b=bd(a.alpha);this.set("alpha",b);"boolean"==typeof a.absolute&&a.absolute?this.set("heading",b):null!=a.webkitCompassHeading&&(null!=a.webkitCompassAccuracy&&-1!=a.webkitCompassAccuracy)&&this.set("heading",bd(a.webkitCompassHeading))}null!=a.beta&&this.set("beta",bd(a.beta));null!=a.gamma&&this.set("gamma",bd(a.gamma))};cd.prototype.d=function(){return this.get("alpha")};cd.prototype.getAlpha=cd.prototype.d;cd.prototype.e=function(){return this.get("beta")}; +cd.prototype.getBeta=cd.prototype.e;cd.prototype.f=function(){return this.get("gamma")};cd.prototype.getGamma=cd.prototype.f;cd.prototype.g=function(){return this.get("heading")};cd.prototype.getHeading=cd.prototype.g;cd.prototype.c=function(){return this.get("tracking")};cd.prototype.getTracking=cd.prototype.c;cd.prototype.i=function(){if(hd){var a=this.c();a&&null===this.a?this.a=J(window,"deviceorientation",this.k,!1,this):a||null===this.a||(Fc(this.a),this.a=null)}}; +cd.prototype.b=function(a){this.set("tracking",a)};cd.prototype.setTracking=cd.prototype.b;function id(a,b){a[0]+=b[0];a[1]+=b[1]}function jd(a,b){var c=ad(a+180,360)-180,d=Math.abs(Math.round(3600*c));return Math.floor(d/3600)+"\u00b0 "+Math.floor(d/60%60)+"\u2032 "+Math.floor(d%60)+"\u2033 "+b.charAt(0>c?1:0)}function kd(a,b){var c=Math.cos(b),d=Math.sin(b),e=a[1]*c+a[0]*d;a[0]=a[0]*c-a[1]*d;a[1]=e}function ld(a,b){var c=a[0]-b[0],d=a[1]-b[1];return c*c+d*d} +function md(a,b){var c=a[0],d=a[1],e=b[0],f=b[1],g=e[0],e=e[1],h=f[0],l=f[1],n=h-g,q=l-e,f=0==n&&0==q?0:(n*(c-g)+q*(d-e))/(n*n+q*q||0);0>=f||(1<=f?(g=h,e=l):(g+=f*n,e+=f*q));c=g-c;d=e-d;return[g,e,c*c+d*d,f]}function nd(a,b){if(t(a)){var c=b||0;return a[0].toFixed(c)+", "+a[1].toFixed(c)}return""}function od(a,b){var c=b.charAt(0);return"n"===c||"s"===c?[a[1],a[0]]:a};function pd(a){var b=qd(),c=a.length,d;for(d=0;de[1]&&(e[1]=f[0]);f[1]e[3]&&(e[3]=f[1])}return b}function rd(a,b,c){var d=Math.min.apply(null,a);a=Math.max.apply(null,a);var e=Math.min.apply(null,b);b=Math.max.apply(null,b);return sd(d,a,e,b,c)}function td(a,b){return a[0]<=b[0]&&b[0]<=a[1]&&a[2]<=b[1]&&b[1]<=a[3]}function ud(a,b){return a[0]<=b[0]&&b[1]<=a[1]&&a[2]<=b[2]&&b[3]<=a[3]} +function qd(){return[Infinity,-Infinity,Infinity,-Infinity]}function sd(a,b,c,d,e){return t(e)?(e[0]=a,e[1]=b,e[2]=c,e[3]=d,e):[a,b,c,d]}function vd(a,b){return a[0]==b[0]&&a[1]==b[1]&&a[2]==b[2]&&a[3]==b[3]}function wd(a,b){b[0]a[1]&&(a[1]=b[1]);b[2]a[3]&&(a[3]=b[3])}function xd(a){return[a[0],a[2]]}function yd(a){return[(a[0]+a[1])/2,(a[2]+a[3])/2]} +function zd(a,b,c,d){var e=b*d[0]/2;d=b*d[1]/2;b=Math.cos(c);c=Math.sin(c);e=[-e,-e,e,e];d=[-d,d,-d,d];var f,g,h;for(f=0;4>f;++f)g=e[f],h=d[f],e[f]=a[0]+g*b-h*c,d[f]=a[1]+g*c+h*b;return rd(e,d,void 0)}function Ad(a){return[a[0],a[3]]}function Bd(a,b){return a[0]<=b[1]&&a[1]>=b[0]&&a[2]<=b[3]&&a[3]>=b[2]}function Cd(a,b,c){a=[a[0],a[2],a[0],a[3],a[1],a[2],a[1],a[3]];b(a,a,2);return rd([a[0],a[2],a[4],a[6]],[a[1],a[3],a[5],a[7]],c)};function Dd(a){a=a?a:{};this.coordinates=[];this.b=[];this.c=[];this.va=a.dimension||2;this.a=a.offset||null}Dd.prototype.add=function(a){for(var b=this.coordinates.length,c=this.a,d=this.va,e=a.length,f,g,h=0;h2*this.r&&re(this),!0):!1};function re(a){if(a.r!=a.a.length){for(var b=0,c=0;bc?a[1]="?":c==b.length-1&&(a[1]=void 0)}return a.join("")} +function xe(a,b,c){if(ia(b))for(var d=0;db)throw Error("Bad port number "+b);a.Pc=b}else a.Pc=null}function De(a,b,c){Be(a);b instanceof Ee?(a.a=b,Ke(a.a,a.qb)):(c||(b=Fe(b,Le)),a.a=new Ee(b,0,a.qb))}function Me(a,b,c){Be(a);ia(c)||(c=[String(c)]);Ne(a.a,b,c)}function Be(a){if(a.Jf)throw Error("Tried to modify a read-only Uri");} +function Fe(a,b){return v(a)?encodeURI(a).replace(b,Oe):null}function Oe(a){a=a.charCodeAt(0);return"%"+(a>>4&15).toString(16)+(a&15).toString(16)}var Ge=/[#\/\?@]/g,Ie=/[\#\?:]/g,He=/[\#\?]/g,Le=/[\#\?@]/g,Je=/#/g;function Ee(a,b,c){this.a=a||null;this.b=!!c} +function Pe(a){if(!a.V&&(a.V=new qe,a.r=0,a.a))for(var b=a.a.split("\x26"),c=0;c=a||96<=a&&106>=a||65<=a&&90>=a||yb&&0==a)return!0;switch(a){case 32:case 63:case 107:case 109:case 110:case 111:case 186:case 59:case 189:case 187:case 61:case 188:case 190:case 191:case 192:case 222:case 219:case 220:case 221:return!0;default:return!1}}function Vf(a){switch(a){case 61:return 187;case 59:return 186;case 224:return 91;case 0:return 224;default:return a}};function Wf(a,b){Oc.call(this);a&&(this.Kc&&Xf(this),this.Wb=a,this.Jc=J(this.Wb,"keypress",this,b),this.td=J(this.Wb,"keydown",this.a,b,this),this.Kc=J(this.Wb,"keyup",this.b,b,this))}F(Wf,Oc);m=Wf.prototype;m.Wb=null;m.Jc=null;m.td=null;m.Kc=null;m.pa=-1;m.gb=-1;m.ad=!1; +var Yf={3:13,12:144,63232:38,63233:40,63234:37,63235:39,63236:112,63237:113,63238:114,63239:115,63240:116,63241:117,63242:118,63243:119,63244:120,63245:121,63246:122,63247:123,63248:44,63272:46,63273:36,63275:35,63276:33,63277:34,63289:144,63302:45},Zf={Up:38,Down:40,Left:37,Right:39,Enter:13,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,"U+007F":46,Home:36,End:35,PageUp:33,PageDown:34,Insert:45},$f=G||yb&&Mb("525"),ag=pb&&xb; +Wf.prototype.a=function(a){yb&&(17==this.pa&&!a.Vb||18==this.pa&&!a.wa||pb&&91==this.pa&&!a.qd)&&(this.gb=this.pa=-1);-1==this.pa&&(a.Vb&&17!=a.Ua?this.pa=17:a.wa&&18!=a.Ua?this.pa=18:a.qd&&91!=a.Ua&&(this.pa=91));$f&&!Tf(a.Ua,this.pa,a.Va,a.Vb,a.wa)?this.handleEvent(a):(this.gb=xb?Vf(a.Ua):a.Ua,ag&&(this.ad=a.wa))};Wf.prototype.b=function(a){this.gb=this.pa=-1;this.ad=a.wa}; +Wf.prototype.handleEvent=function(a){var b=a.da,c,d,e=b.altKey;G&&"keypress"==a.type?(c=this.gb,d=13!=c&&27!=c?b.keyCode:0):yb&&"keypress"==a.type?(c=this.gb,d=0<=b.charCode&&63232>b.charCode&&Uf(c)?b.charCode:0):wb?(c=this.gb,d=Uf(c)?b.keyCode:0):(c=b.keyCode||this.gb,d=b.charCode||0,ag&&(e=this.ad),pb&&(63==d&&224==c)&&(c=191));var f=c,g=b.keyIdentifier;c?63232<=c&&c in Yf?f=Yf[c]:25==c&&a.Va&&(f=9):g&&g in Zf&&(f=Zf[g]);a=f==this.pa;this.pa=f;b=new bg(f,d,a,b);b.wa=e;K(this,b)}; +function Xf(a){a.Jc&&(Fc(a.Jc),Fc(a.td),Fc(a.Kc),a.Jc=null,a.td=null,a.Kc=null);a.Wb=null;a.pa=-1;a.gb=-1}Wf.prototype.v=function(){Wf.B.v.call(this);Xf(this)};function bg(a,b,c,d){d&&Ub(this,d,void 0);this.type="key";this.Ua=a;this.pd=b;this.b=c}F(bg,Tb);function cg(a,b,c,d){this.top=a;this.right=b;this.bottom=c;this.left=d}m=cg.prototype;m.ca=function(){return new cg(this.top,this.right,this.bottom,this.left)};m.contains=function(a){return this&&a?a instanceof cg?a.left>=this.left&&a.right<=this.right&&a.top>=this.top&&a.bottom<=this.bottom:a.x>=this.left&&a.x<=this.right&&a.y>=this.top&&a.y<=this.bottom:!1}; +m.ceil=function(){this.top=Math.ceil(this.top);this.right=Math.ceil(this.right);this.bottom=Math.ceil(this.bottom);this.left=Math.ceil(this.left);return this};m.floor=function(){this.top=Math.floor(this.top);this.right=Math.floor(this.right);this.bottom=Math.floor(this.bottom);this.left=Math.floor(this.left);return this};m.round=function(){this.top=Math.round(this.top);this.right=Math.round(this.right);this.bottom=Math.round(this.bottom);this.left=Math.round(this.left);return this}; +m.scale=function(a,b){var c=ka(b)?b:a;this.left*=a;this.right*=a;this.top*=c;this.bottom*=c;return this};function dg(a,b,c,d){this.left=a;this.top=b;this.width=c;this.height=d}m=dg.prototype;m.ca=function(){return new dg(this.left,this.top,this.width,this.height)};m.contains=function(a){return a instanceof dg?this.left<=a.left&&this.left+this.width>=a.left+a.width&&this.top<=a.top&&this.top+this.height>=a.top+a.height:a.x>=this.left&&a.x<=this.left+this.width&&a.y>=this.top&&a.y<=this.top+this.height}; +m.ceil=function(){this.left=Math.ceil(this.left);this.top=Math.ceil(this.top);this.width=Math.ceil(this.width);this.height=Math.ceil(this.height);return this};m.floor=function(){this.left=Math.floor(this.left);this.top=Math.floor(this.top);this.width=Math.floor(this.width);this.height=Math.floor(this.height);return this};m.round=function(){this.left=Math.round(this.left);this.top=Math.round(this.top);this.width=Math.round(this.width);this.height=Math.round(this.height);return this}; +m.scale=function(a,b){var c=ka(b)?b:a;this.left*=a;this.width*=a;this.top*=c;this.height*=c;return this};function eg(a,b){var c=Cf(a);return c.defaultView&&c.defaultView.getComputedStyle&&(c=c.defaultView.getComputedStyle(a,null))?c[b]||c.getPropertyValue(b)||"":""}function fg(a,b){return eg(a,b)||(a.currentStyle?a.currentStyle[b]:null)||a.style&&a.style[b]}function gg(a,b,c){var d,e=xb&&(pb||Bb)&&Mb("1.9");b instanceof yf?(d=b.x,b=b.y):(d=b,b=c);a.style.left=hg(d,e);a.style.top=hg(b,e)} +function ig(a){var b;try{b=a.getBoundingClientRect()}catch(c){return{left:0,top:0,right:0,bottom:0}}G&&(a=a.ownerDocument,b.left-=a.documentElement.clientLeft+a.body.clientLeft,b.top-=a.documentElement.clientTop+a.body.clientTop);return b} +function jg(a){if(G&&!(G&&8<=Ob))return a.offsetParent;var b=Cf(a),c=fg(a,"position"),d="fixed"==c||"absolute"==c;for(a=a.parentNode;a&&a!=b;a=a.parentNode)if(c=fg(a,"position"),d=d&&"static"==c&&a!=b.documentElement&&a!=b.body,!d&&(a.scrollWidth>a.clientWidth||a.scrollHeight>a.clientHeight||"fixed"==c||"absolute"==c||"relative"==c))return a;return null} +function kg(a){var b,c=Cf(a),d=fg(a,"position"),e=xb&&c.getBoxObjectFor&&!a.getBoundingClientRect&&"absolute"==d&&(b=c.getBoxObjectFor(a))&&(0>b.screenX||0>b.screenY),f=new yf(0,0),g;b=c?Cf(c):document;g=!G||G&&9<=Ob||Qf(Af(b))?b.documentElement:b.body;if(a==g)return f;if(a.getBoundingClientRect)b=ig(a),a=Rf(Af(c)),f.x=b.left+a.x,f.y=b.top+a.y;else if(c.getBoxObjectFor&&!e)b=c.getBoxObjectFor(a),a=c.getBoxObjectFor(g),f.x=b.screenX-a.screenX,f.y=b.screenY-a.screenY;else{b=a;do{f.x+=b.offsetLeft;f.y+= +b.offsetTop;b!=a&&(f.x+=b.clientLeft||0,f.y+=b.clientTop||0);if(yb&&"fixed"==fg(b,"position")){f.x+=c.body.scrollLeft;f.y+=c.body.scrollTop;break}b=b.offsetParent}while(b&&b!=a);if(wb||yb&&"absolute"==d)f.y-=c.body.offsetTop;for(b=a;(b=jg(b))&&b!=c.body&&b!=g;)f.x-=b.scrollLeft,wb&&"TR"==b.tagName||(f.y-=b.scrollTop)}return f}function lg(a,b){var c=mg(a),d=mg(b);return new yf(c.x-d.x,c.y-d.y)} +function mg(a){if(1==a.nodeType){var b;if(a.getBoundingClientRect)b=ig(a),b=new yf(b.left,b.top);else{b=Rf(Af(a));var c=kg(a);b=new yf(c.x-b.x,c.y-b.y)}if(xb&&!Mb(12)){var d;G?d="-ms-transform":yb?d="-webkit-transform":wb?d="-o-transform":xb&&(d="-moz-transform");var e;d&&(e=fg(a,d));e||(e=fg(a,"transform"));a=e?(a=e.match(ng))?new yf(parseFloat(a[1]),parseFloat(a[2])):new yf(0,0):new yf(0,0);a=new yf(b.x+a.x,b.y+a.y)}else a=b;return a}d=la(a.Pe);e=a;a.targetTouches?e=a.targetTouches[0]:d&&a.da.targetTouches&& +(e=a.da.targetTouches[0]);return new yf(e.clientX,e.clientY)}function hg(a,b){"number"==typeof a&&(a=(b?Math.round(a):a)+"px");return a}function og(a){var b=pg;if("none"!=fg(a,"display"))return b(a);var c=a.style,d=c.display,e=c.visibility,f=c.position;c.visibility="hidden";c.position="absolute";c.display="inline";a=b(a);c.display=d;c.position=f;c.visibility=e;return a} +function pg(a){var b=a.offsetWidth,c=a.offsetHeight,d=yb&&!b&&!c;return t(b)&&!d||!a.getBoundingClientRect?new zf(b,c):(a=ig(a),new zf(a.right-a.left,a.bottom-a.top))}function qg(a,b){var c=a.style;"opacity"in c?c.opacity=b:"MozOpacity"in c?c.MozOpacity=b:"filter"in c&&(c.filter=""===b?"":"alpha(opacity\x3d"+100*b+")")}function rg(a,b){a.style.display=b?"":"none"}function sg(a){return"rtl"==fg(a,"direction")} +function tg(a,b){var c=Qf(Af(Cf(a)));if(!G||c&&Mb("8")){var d=a.style;xb?d.MozBoxSizing="border-box":yb?d.WebkitBoxSizing="border-box":d.boxSizing="border-box";d.width=Math.max(b.width,0)+"px";d.height=Math.max(b.height,0)+"px"}else if(d=a.style,c){var c=ug(a,"padding"),e=vg(a);d.pixelWidth=b.width-e.left-c.left-c.right-e.right;d.pixelHeight=b.height-e.top-c.top-c.bottom-e.bottom}else d.pixelWidth=b.width,d.pixelHeight=b.height} +function wg(a,b,c,d){if(/^\d+px?$/.test(b))return parseInt(b,10);var e=a.style[c],f=a.runtimeStyle[c];a.runtimeStyle[c]=a.currentStyle[c];a.style[c]=b;b=a.style[d];a.style[c]=e;a.runtimeStyle[c]=f;return b}function xg(a,b){var c=a.currentStyle?a.currentStyle[b]:null;return c?wg(a,c,"left","pixelLeft"):0} +function ug(a,b){if(G){var c=xg(a,b+"Left"),d=xg(a,b+"Right"),e=xg(a,b+"Top"),f=xg(a,b+"Bottom");return new cg(e,d,f,c)}c=eg(a,b+"Left");d=eg(a,b+"Right");e=eg(a,b+"Top");f=eg(a,b+"Bottom");return new cg(parseFloat(e),parseFloat(d),parseFloat(f),parseFloat(c))}var yg={thin:2,medium:4,thick:6};function zg(a,b){if("none"==(a.currentStyle?a.currentStyle[b+"Style"]:null))return 0;var c=a.currentStyle?a.currentStyle[b+"Width"]:null;return c in yg?yg[c]:wg(a,c,"left","pixelLeft")} +function vg(a){if(G){var b=zg(a,"borderLeft"),c=zg(a,"borderRight"),d=zg(a,"borderTop");a=zg(a,"borderBottom");return new cg(d,c,a,b)}b=eg(a,"borderLeftWidth");c=eg(a,"borderRightWidth");d=eg(a,"borderTopWidth");a=eg(a,"borderBottomWidth");return new cg(parseFloat(d),parseFloat(c),parseFloat(a),parseFloat(b))}var ng=/matrix\([0-9\.\-]+, [0-9\.\-]+, [0-9\.\-]+, [0-9\.\-]+, ([0-9\.\-]+)p?x?, ([0-9\.\-]+)p?x?\)/;function Ag(a,b){Oc.call(this);this.a=a;var c=ma(this.a)&&1==this.a.nodeType?this.a:this.a?this.a.body:null;this.e=!!c&&sg(c);this.b=J(this.a,xb?"DOMMouseScroll":"mousewheel",this,b)}F(Ag,Oc); +Ag.prototype.handleEvent=function(a){var b=0,c=0,d=0;a=a.da;if("mousewheel"==a.type){c=1;if(G||yb&&(qb||Mb("532.0")))c=40;d=Bg(-a.wheelDelta,c);t(a.wheelDeltaX)?(b=Bg(-a.wheelDeltaX,c),c=Bg(-a.wheelDeltaY,c)):c=d}else d=a.detail,100d&&(d=-3),t(a.axis)&&a.axis===a.HORIZONTAL_AXIS?b=d:c=d;ka(this.c)&&(b=$c(b,-this.c,this.c));ka(this.d)&&(c=$c(c,-this.d,this.d));this.e&&(b=-b);b=new Cg(d,a,b,c);K(this,b)};function Bg(a,b){return yb&&(pb||rb)&&0!=a%b?a:a/b} +Ag.prototype.v=function(){Ag.B.v.call(this);Fc(this.b);this.b=null};function Cg(a,b,c,d){b&&Ub(this,b,void 0);this.type="mousewheel";this.b=a;this.na=c;this.la=d}F(Cg,Tb);function Dg(a){this.length=a.length||a;for(var b=0;b>1;){var l=2*b+1,n=2*b+2,l=nb;){var g=c-1>>1;if(a[g]>f)d[c]=d[g],a[c]=a[g],c=g;else break}d[c]=e;a[c]=f}function Fh(a){var b=a.f,c=a.a,d=a.b,e=0,f=c.length,g,h,l;for(h=0;h>1)-1;0<=b;b--)Ch(a,b)};function Gh(a,b){Ah.call(this,function(b){return a.apply(null,b)},function(a){return a[0].c()});this.R=b;this.d=0}F(Gh,Ah);Gh.prototype.g=function(){--this.d;this.R()};function S(a){L.call(this);a=pc(a);a.brightness=t(a.brightness)?a.brightness:0;a.contrast=t(a.contrast)?a.contrast:1;a.hue=t(a.hue)?a.hue:0;a.opacity=t(a.opacity)?a.opacity:1;a.saturation=t(a.saturation)?a.saturation:1;a.visible=t(a.visible)?a.visible:!0;this.dc(a);J(this,[Vc("brightness"),Vc("contrast"),Vc("hue"),Vc("opacity"),Vc("saturation"),"load"],this.Gc,!1,this);J(this,Vc("visible"),this.ae,!1,this)}F(S,L);function Hh(a){K(a,"change")}S.prototype.d=function(){return this.get("brightness")}; +S.prototype.getBrightness=S.prototype.d;S.prototype.e=function(){return this.get("contrast")};S.prototype.getContrast=S.prototype.e;S.prototype.f=function(){return this.get("hue")};S.prototype.getHue=S.prototype.f;function Ih(a){var b=a.d(),c=a.e(),d=a.f(),e=a.i(),f=a.Ba(),g=a.g();a=a.b();return{brightness:t(b)?$c(b,-1,1):0,contrast:t(c)?Math.max(c,0):1,hue:t(d)?d:0,opacity:t(e)?$c(e,0,1):1,Qc:f,saturation:t(g)?Math.max(g,0):1,visible:t(a)?!!a:!0}}S.prototype.i=function(){return this.get("opacity")}; +S.prototype.getOpacity=S.prototype.i;S.prototype.g=function(){return this.get("saturation")};S.prototype.getSaturation=S.prototype.g;S.prototype.b=function(){return this.get("visible")};S.prototype.getVisible=S.prototype.b;S.prototype.Gc=function(){this.b()&&this.Ba()&&Hh(this)};S.prototype.ae=function(){this.Ba()&&Hh(this)};S.prototype.t=function(a){this.set("brightness",a)};S.prototype.setBrightness=S.prototype.t;S.prototype.G=function(a){this.set("contrast",a)};S.prototype.setContrast=S.prototype.G; +S.prototype.H=function(a){this.set("hue",a)};S.prototype.setHue=S.prototype.H;S.prototype.s=function(a){this.set("opacity",a)};S.prototype.setOpacity=S.prototype.s;S.prototype.Q=function(a){this.set("saturation",a)};S.prototype.setSaturation=S.prototype.Q;S.prototype.W=function(a){this.set("visible",a)};S.prototype.setVisible=S.prototype.W;function Jh(a){Oc.call(this);this.q=ke(a.projection);this.g=t(a.extent)?a.extent:t(a.projection)?this.q.ba():null;this.d=t(a.attributions)?a.attributions:null;this.f=a.logo;this.b=0}F(Jh,Oc);function Kh(a){++a.b;K(a,"change")}Jh.prototype.ba=k("g");Jh.prototype.fa=k("q");Jh.prototype.Ba=Ue;function Lh(a){var b=pc(a);delete b.source;S.call(this,b);this.Mb={gd:{},layer:null,Rc:{}};this.c=a.source;J(this.c,"change",this.vf,!1,this);this.c.Ba()||Cc(this.c,"load",this.wf,!1,this)}F(Lh,S);m=Lh.prototype;m.Sb=function(a){a=t(a)?a:[];a.push(this);return a};m.ld=function(a){a=t(a)?a:{layers:[],qa:[]};a.layers.push(this);a.qa.push(Ih(this));return a};m.ja=k("c");m.vf=function(){Hh(this)};m.wf=function(){K(this,"load")};m.Ba=function(){return this.ja().Ba()};function Mh(a,b,c){ib.call(this,a);this.map=b;this.b=t(c)?c:null}F(Mh,ib);function Nh(a,b,c,d){Mh.call(this,a,b,d);this.a=c;this.g=this.f=null}F(Nh,Mh);Nh.prototype.d=function(){null===this.f&&(this.f=Oh(this.map,this.e()));return this.f};Nh.prototype.e=function(){if(null===this.g){var a=lg(this.a,this.map.b);this.g=[a.x,a.y]}return this.g};Nh.prototype.U=function(){Nh.B.U.call(this);this.a.U()};Nh.prototype.sb=function(){Nh.B.sb.call(this);this.a.sb()}; +function Ph(a){Oc.call(this);this.a=a;this.c=!1;this.b=this.g=this.d=this.e=this.f=null;a=this.a.b;this.e=[J(a,["click","dblclick"],this.Kd,!1,this),J(a,"mousedown",this.nf,!1,this),J(a,"mousemove",this.zd,!1,this),J(a,"mouseout",this.zd,!1,this),J(a,"contextmenu",this.zd,!1,this)];this.g=[J(a,["touchstart","MSPointerDown"],this.Bf,!1,this),J(p.document,["touchmove","MSPointerMove"],this.Af,!1,this),J(p.document,["touchend","MSPointerUp"],this.zf,!1,this)]}F(Ph,Oc);m=Ph.prototype; +m.Kd=function(a){if(!this.c){var b=a.type;K(this,0===this.f||"dblclick"==b?new Nh(Qh,this.a,a):new Nh(Rh,this.a,a))}};m.of=function(a){this.b&&(this.b=null,Ha(this.d,Fc),this.d=null,this.c&&K(this,new Nh(Sh,this.a,a)))};m.nf=function(a){K(this,new Nh(Th,this.a,a));this.b||(this.b=a,this.c=!1,this.d=[J(p.document,"mousemove",this.Qf,!1,this),J(p.document,"mouseup",this.of,!1,this)],a.U())}; +m.Qf=function(a){var b;this.c||(this.c=!0,b=new Nh(Uh,this.a,this.b),K(this,b));b=new Nh(Vh,this.a,a);K(this,b)};m.zd=function(a){K(this,new Nh(a.type,this.a,a))};m.Bf=function(a){a.U();this.b=a;this.c=!1;K(this,new Nh(Wh,this.a,a))};m.Af=function(a){this.b&&(this.c=!0,K(this,new Nh(Xh,this.a,a)))};m.zf=function(a){K(this,new Nh(Yh,this.a,a));this.c||(a=sa(),this.f=!this.f||250c)for(c=1;cf?1:0.5,d=Math.floor(Math.log(b/d)/Math.log(a)+f),e=Math.max(d+e,0),t(c)&&(e=Math.min(e,c)),b/Math.pow(a,e)}};function ei(){return function(a,b){if(t(a))return 0.1>=Math.abs(a+b)?0:a+b}};function fi(a){var b=ei();this.resolution=a;this.rotation=b};function T(a){$h.call(this);a=a||{};var b={};b.center=t(a.center)?a.center:null;b.projection=je(a.projection);var c,d,e;if(t(a.resolutions))c=a.resolutions,d=c[0],e=c[c.length-1],c=ci(c);else{d=a.maxResolution;t(d)||(d=a.projection,e=je(d).ba(),d=(null===e?360*Ld.degrees/Ld[d.Ab]:Math.max(e[1]-e[0],e[3]-e[2]))/256);c=a.maxZoom;t(c)||(c=28);var f=a.zoomFactor;t(f)||(f=2);e=d/Math.pow(f,c);c=di(f,d,c)}this.b=d;this.f=e;this.g=new fi(c);t(a.resolution)?b.resolution=a.resolution:t(a.zoom)&&(b.resolution= +this.Ha(this.b,a.zoom));b.rotation=t(a.rotation)?a.rotation:0;this.dc(b)}F(T,$h);function gi(a,b,c){var d,e=a.a();t(e)&&(d=[e[0]-c[0],e[1]-c[1]],kd(d,b-a.d()),id(d,c));return d}function hi(a,b,c){var d,e=a.a();a=a.C();t(e)&&t(a)&&(d=[c[0]-b*(c[0]-e[0])/a,c[1]-b*(c[1]-e[1])/a]);return d}T.prototype.Ha=function(a,b,c){return this.g.resolution(a,b||0,c||0)};T.prototype.qc=function(a,b){return this.g.rotation(a,b||0)};T.prototype.a=function(){return this.get("center")};T.prototype.getCenter=T.prototype.a; +T.prototype.i=function(a){var b=this.a(),c=this.C();return[b[0]-c*a[0]/2,b[0]+c*a[0]/2,b[1]-c*a[1]/2,b[1]+c*a[1]/2]};T.prototype.fa=function(){return this.get("projection")};T.prototype.getProjection=T.prototype.fa;T.prototype.C=function(){return this.get("resolution")};T.prototype.getResolution=T.prototype.C;function ii(a){var b=a.b,c=Math.log(b/a.f)/Math.log(2);return function(a){return b/Math.pow(2,a*c)}}T.prototype.d=function(){return this.get("rotation")};T.prototype.getRotation=T.prototype.d; +function ji(a){var b=a.b,c=Math.log(b/a.f)/Math.log(2);return function(a){return Math.log(b/a)/Math.log(2)/c}}m=T.prototype;m.O=function(){return this};function ki(a){var b=a.a(),c=a.fa(),d=a.C();a=a.d();return{center:b.slice(),projection:t(c)?c:null,resolution:d,rotation:t(a)?a:0}}m.$e=function(){var a,b=this.C();if(t(b)){var c,d=0;do{c=this.Ha(this.b,d);if(c==b){a=d;break}++d}while(c>this.f)}return a}; +m.jd=function(a,b){this.Ea(yd(a));var c=Math.max((a[1]-a[0])/b[0],(a[3]-a[2])/b[1]),c=this.Ha(c,0,0);this.kb(c)};m.ac=function(){return null!=this.a()&&t(this.C())};m.Ea=function(a){this.set("center",a)};T.prototype.setCenter=T.prototype.Ea;T.prototype.k=function(a){this.set("projection",a)};T.prototype.setProjection=T.prototype.k;T.prototype.kb=function(a){this.set("resolution",a)};T.prototype.setResolution=T.prototype.kb;T.prototype.e=function(a){this.set("rotation",a)}; +T.prototype.setRotation=T.prototype.e;T.prototype.o=function(a){a=this.Ha(this.b,a,0);this.kb(a)};function li(a){L.call(this);this.element=t(a.element)?a.element:null;this.o=a.target;this.a=null;this.e=[]}F(li,L);li.prototype.v=function(){Of(this.element);li.B.v.call(this)};li.prototype.W=k("a");li.prototype.d=da;li.prototype.setMap=function(a){null===this.a||Of(this.element);0!=this.e.length&&(Ha(this.e,Fc),this.e.length=0);this.a=a;null!==this.a&&((t(this.o)?this.o:a.G).appendChild(this.element),this.d!==da&&this.e.push(J(a,"postrender",this.d,!1,this)))};function mi(a){a=t(a)?a:{};this.g=Jf("UL");var b=Gf("DIV",{"class":(t(a.className)?a.className:"ol-attribution")+" ol-unselectable"},this.g);li.call(this,{element:b,target:a.target});this.f=!0;this.c={};this.b={}}F(mi,li); +mi.prototype.d=function(a){a=a.b;if(null===a)this.f&&(rg(this.element,!1),this.f=!1);else{var b,c,d,e,f,g,h,l,n,q=a.Lc,r=pc(a.attributions),w={};b=0;for(c=q.length;b=z.a&&g.a[u][s].c<=z.b&&g.a[u][s].b>= +z.c){s=!0;break a}s=!1}s?(h in w&&delete w[h],r[h]=g):w[h]=g}b=[r,w];a=b[0];b=b[1];for(var A in this.c)A in a?(this.b[A]||(rg(this.c[A],!0),this.b[A]=!0),delete a[A]):A in b?(this.b[A]&&(rg(this.c[A],!1),delete this.b[A]),delete b[A]):(Of(this.c[A]),delete this.c[A],delete this.b[A]);for(A in a)c=Jf("LI"),c.innerHTML=a[A].b,this.g.appendChild(c),this.c[A]=c,this.b[A]=!0;for(A in b)c=Jf("LI"),c.innerHTML=b[A].b,rg(c,!1),this.g.appendChild(c),this.c[A]=c;A=!oc(this.b);this.f!=A&&(rg(this.element,A), +this.f=A)}};function ni(a){a=t(a)?a:{};this.c=Jf("UL");var b=Gf("DIV",{"class":(t(a.className)?a.className:"ol-logo")+" ol-unselectable"},this.c);li.call(this,{element:b,target:a.target});this.b=!0;this.f={}}F(ni,li); +ni.prototype.d=function(a){a=a.b;if(null===a)this.b&&(rg(this.element,!1),this.b=!1);else{var b;a=a.de;var c=this.f;for(b in c)b in a||(Of(c[b]),delete c[b]);var d,e;for(b in a)b in c||(d=new Image,d.src=b,e=Jf("LI"),e.appendChild(d),this.c.appendChild(e),c[b]=e);b=!oc(a);this.b!=b&&(rg(this.element,b),this.b=b)}};function oi(a){return 1-Math.pow(1-a,3)};function pi(a){return 3*a*a-2*a*a*a}function qi(a){return a}function ri(a){return 0.5>a?pi(2*a):1-pi(2*(a-0.5))};function si(a){var b=a.resolution,c=t(a.start)?a.start:sa(),d=t(a.duration)?a.duration:1E3,e=t(a.easing)?a.easing:ri;return function(a,g){if(g.timeb;)d-=3;if(0<=d){var b=a.a[c+2]-a.a[d+2],e=a.a[c]-a.a[d],c=a.a[c+1]-a.a[d+1];a.c=Math.atan2(c,e);a.b=Math.sqrt(e*e+c*c)/b;return a.b>a.d}return!1}function Ai(a,b){var c=a.e,d=a.b,e=a.d,f=Math.log(a.d/a.b)/a.e;return ti({source:b,duration:f,easing:function(a){return d*(Math.exp(c*a*f)-1)/(e-d)}})};function Bi(){}function Ci(a,b,c,d,e){if(null!=c){var f=b.d(),g=b.a();t(f)&&(t(g)&&t(e))&&(a.Ga(ui({rotation:f,duration:e,easing:oi})),t(d)&&a.Ga(ti({source:g,duration:e,easing:oi})));if(null!=d){var h=gi(b,c,d);Di(a,function(){b.Ea(h);b.e(c)})}else b.e(c)}}function Ei(a,b,c,d,e){var f=b.C();c=b.Ha(f,c,0);Fi(a,b,c,d,e)} +function Fi(a,b,c,d,e){if(null!=c){var f=b.C(),g=b.a();t(f)&&(t(g)&&t(e))&&(a.Ga(vi({resolution:f,duration:e,easing:oi})),t(d)&&a.Ga(ti({source:g,duration:e,easing:oi})));if(null!=d){var h=hi(b,c,d);Di(a,function(){b.Ea(h);b.kb(c)})}else b.kb(c)}};function Gi(a){a=t(a)?a:{};this.a=t(a.delta)?a.delta:1}F(Gi,Bi);Gi.prototype.Xa=function(a){var b=!1,c=a.a;if(a.type==Qh&&(yh||Wb(a.a))){var b=a.map,d=a.d(),c=c.Va?-this.a:this.a,e=b.a().O();Ei(b,e,c,d,250);a.U();b=!0}return!b};function Hi(a){a=a.a;return a.wa&&!a.Jb&&a.Va}function Ii(a){return"click"==a.a.type}function Ji(a){a=a.a;return!a.wa&&!a.Jb&&!a.Va}function Ki(a){a=a.a;return!a.wa&&!a.Jb&&a.Va}function Li(a){a=a.a.target.tagName;return"INPUT"!==a&&"SELECT"!==a&&"TEXTAREA"!==a};function Mi(){this.c=!1;this.e=1;this.o=this.k=this.R=this.g=0;this.kc=this.q=null}F(Mi,Bi);m=Mi.prototype;m.Yb=da;m.Zb=da;m.Gb=Te;m.$d=da; +m.Xa=function(a){var b=a.map;if(!b.ac())return!0;var c=!1,b=b.a(),d=a.a;a.type==Th&&this.$d(a);if(this.c)a.type==Vh?(this.na=d.clientX-this.g,this.la=d.clientY-this.R,this.Yb(a)):a.type==Sh&&(this.na=d.clientX-this.g,this.la=d.clientY-this.R,this.Zb(a),ai(b,-this.e),this.c=!1);else if(a.type==Uh){var e=ki(b.O());this.g=d.clientX;this.R=d.clientY;this.la=this.na=0;this.q=e.center;this.kc=a.d();this.Gb(a)&&(ai(b,this.e),this.c=!0,a.U(),c=!0)}return!c};function Ni(a){Mi.call(this);a=t(a)?a:{};this.d=t(a.condition)?a.condition:Ji;this.a=a.kinetic;this.b=null}F(Ni,Mi);Ni.prototype.Yb=function(a){this.a&&this.a.a.push(a.a.clientX,a.a.clientY,sa());a=a.map;var b=a.a(),c=ki(b),d=[-c.resolution*this.na,c.resolution*this.la];kd(d,c.rotation);id(d,this.q);Oi(a);b.Ea(d)}; +Ni.prototype.Zb=function(a){a=a.map;var b=a.a().O();if(this.a&&zi(this.a)){var c=ki(b),d=(this.a.d-this.a.b)/this.a.e,e=this.a.c;this.b=Ai(this.a,c.center);a.Ga(this.b);c=Pi(a,c.center);d=Oh(a,[c[0]-d*Math.cos(e),c[1]-d*Math.sin(e)]);b.Ea(d)}Oi(a)};Ni.prototype.Gb=function(a){var b=a.a;if(Wb(b)&&this.d(a)){if(this.a){var c=this.a;c.a.length=0;c.c=0;c.b=0;this.a.a.push(b.clientX,b.clientY,sa())}Oi(a.map);return!0}return!1}; +Ni.prototype.$d=function(a){var b=a.map,c=b.a();null!==this.b&&Qa(b.g,this.b)&&(Oi(b),c.Ea(a.b.D.center),this.b=null)};function Qi(a){a=t(a)?a:{};Mi.call(this);this.b=t(a.condition)?a.condition:Hi;this.a=void 0}F(Qi,Mi);Qi.prototype.Yb=function(a){var b=a.map,c=b.c();a=a.e();c=Math.atan2(c[1]/2-a[1],a[0]-c[0]/2);if(t(this.a)){a=c-this.a;var d=b.a().O(),e=ki(d);Oi(b);Ci(b,d,e.rotation-a)}this.a=c};Qi.prototype.Zb=function(a){a=a.map;var b=a.a().O(),c=ki(b).rotation,c=b.qc(c,0);Ci(a,b,c,void 0,250)};Qi.prototype.Gb=function(a){return Wb(a.a)&&this.b(a)?(Oi(a.map),this.a=void 0,!0):!1};function Ri(a){var b=Gf("DIV","ol-dragbox");this.b=null;this.c=a.kc;li.call(this,{element:b})}F(Ri,li);Ri.prototype.setMap=function(a){Ri.B.setMap.call(this,a);null!==a&&(this.b=Pi(a,this.c),gg(this.element,this.b[0],this.b[1]),tg(this.element,new zf(0,0)),this.e.push(J(a,Vh,this.f,!1,this)))};Ri.prototype.f=function(a){var b=this.a;a=a.d();b=Pi(b,a);gg(this.element,Math.min(b[0],this.b[0]),Math.min(b[1],this.b[1]));tg(this.element,new zf(Math.abs(b[0]-this.b[0]),Math.abs(b[1]-this.b[1])))};function Si(a){Mi.call(this);a=t(a)?a:{};this.b=t(a.condition)?a.condition:Ki;this.a=null}F(Si,Mi);Si.prototype.Zb=function(a){this.a.setMap(null);this.a=null;if(64<=this.na*this.na+this.la*this.la){var b=a.map,c=pd([this.kc,a.d()]);Di(b,function(){var a=b.a(),e=b.c();a.jd(c,e);a.e(0)})}};Si.prototype.Gb=function(a){return Wb(a.a)&&this.b(a)?(this.a=new Ri({kc:this.kc}),this.a.setMap(a.map),!0):!1};function Ti(a){a=t(a)?a:{};this.a=t(a.condition)?a.condition:Ze(Ji,Li);this.b=t(a.delta)?a.delta:128}F(Ti,Bi);Ti.prototype.Xa=function(a){var b=!1;if("key"==a.type){var c=a.a.Ua;if(this.a(a)&&(40==c||37==c||39==c||38==c)){var b=a.map,d=b.a(),e=ki(d),f=e.resolution*this.b,g=0,h=0;40==c?h=-f:37==c?g=-f:39==c?g=f:h=f;c=[g,h];kd(c,e.rotation);e=d.a();t(e)&&(t(100)&&b.Ga(ti({source:e,duration:100,easing:qi})),d.Ea([e[0]+c[0],e[1]+c[1]]));a.U();b=!0}}return!b};function Ui(a){a=t(a)?a:{};this.b=t(a.condition)?a.condition:Ze(Ji,Li);this.a=t(a.delta)?a.delta:1}F(Ui,Bi);Ui.prototype.Xa=function(a){var b=!1;if("key"==a.type){var c=a.a.pd;if(this.b(a)&&(43==c||45==c)){b=a.map;c=43==c?this.a:-this.a;Oi(b);var d=b.a().O();Ei(b,d,c,void 0,100);a.U();b=!0}}return!b};function Vi(){this.a=0;this.c=null;this.d=this.b=void 0}F(Vi,Bi);Vi.prototype.Xa=function(a){var b=!1;if("mousewheel"==a.type){var b=a.map,c=a.a;this.c=a.d();this.a+=c.la/3;t(this.b)||(this.b=sa());c=Math.max(80-(sa()-this.b),0);p.clearTimeout(this.d);this.d=p.setTimeout(y(this.e,this,b),c);a.U();b=!0}return!b};Vi.prototype.e=function(a){var b=$c(this.a,-1,1),c=a.a().O();Oi(a);Ei(a,c,-b,this.c,250);this.a=0;this.c=null;this.d=this.b=void 0};function Wi(){this.c=!1;this.i={};this.targetTouches=[]}F(Wi,Bi);function Xi(a){for(var b=a.length,c=0,d=0,e=0;ethis.q&&(this.a=!0));this.d=c;a=a.map;c=mg(a.b);d=Xi(this.targetTouches);d[0]-=c.x;d[1]-=c.y;this.b=Oh(a,d);this.a&&(c=a.a().O(),d=ki(c),Oi(a),Ci(a,c,d.rotation+b,this.b))}; +Zi.prototype.e=function(a){if(2>this.targetTouches.length){a=a.map;var b=a.a().O(),c=ki(b);if(this.a){var c=c.rotation,d=this.b,c=b.qc(c,0);Ci(a,b,c,d,250)}return!1}return!0};Zi.prototype.g=function(a){return 2<=this.targetTouches.length?(a=a.map,this.b=null,this.d=void 0,this.a=!1,this.R=0,Oi(a),!0):!1};function $i(){Wi.call(this);this.b=null;this.a=void 0;this.d=1}F($i,Wi);$i.prototype.f=function(a){var b=1,c=this.targetTouches[0],d=this.targetTouches[1],e=c.clientX-d.clientX,c=c.clientY-d.clientY,e=Math.sqrt(e*e+c*c);t(this.a)&&(b=this.a/e);this.a=e;1!=b&&(this.d=b);a=a.map;var e=a.a().O(),c=ki(e),d=mg(a.b),f=Xi(this.targetTouches);f[0]-=d.x;f[1]-=d.y;this.b=Oh(a,f);Oi(a);Fi(a,e,c.resolution*b,this.b)}; +$i.prototype.e=function(a){if(2>this.targetTouches.length){a=a.map;var b=a.a().O(),c=ki(b).resolution,d=this.b,c=b.Ha(c,0,this.d-1);Fi(a,b,c,d,400);return!1}return!0};$i.prototype.g=function(a){return 2<=this.targetTouches.length?(a=a.map,this.b=null,this.a=void 0,this.d=1,Oi(a),!0):!1};function aj(a){a=t(a)?a:{};var b=new M,c=new yi;(t(a.altShiftDragRotate)?a.altShiftDragRotate:1)&&b.push(new Qi);(t(a.doubleClickZoom)?a.doubleClickZoom:1)&&b.push(new Gi({delta:a.zoomDelta}));(t(a.touchPan)?a.touchPan:1)&&b.push(new Yi({kinetic:c}));(t(a.touchRotate)?a.touchRotate:1)&&b.push(new Zi);(t(a.touchZoom)?a.touchZoom:1)&&b.push(new $i);(t(a.dragPan)?a.dragPan:1)&&b.push(new Ni({kinetic:c}));if(t(a.keyboard)?a.keyboard:1)b.push(new Ti),b.push(new Ui({delta:a.zoomDelta}));(t(a.mouseWheelZoom)? +a.mouseWheelZoom:1)&&b.push(new Vi);(t(a.shiftDragZoom)?a.shiftDragZoom:1)&&b.push(new Si);return b};function bj(a){var b=t(a)?a:{};a=pc(b);delete a.layers;b=b.layers;S.call(this,a);this.a=null;J(this,Vc("layers"),this.kf,!1,this);t(b)?ia(b)&&(b=new M(Sa(b))):b=new M;this.c(b)}F(bj,S);m=bj.prototype;m.Gc=function(){this.b()&&Hh(this)};m.ae=function(){Hh(this)}; +m.kf=function(){null!==this.a&&(Ha(kc(this.a),Fc),this.a=null);var a=this.Ya();if(null!=a){this.a={add:J(a,"add",this.jf,!1,this),remove:J(a,"remove",this.lf,!1,this)};var a=a.a,b,c,d;b=0;for(c=a.length;b=this.minZoom;){if(b.call(c,a,pj(this,e,a,d)))return!0;--a}return!1};m.Ve=k("minZoom"); +m.Ib=function(a){return null===this.d?this.f[a]:this.d};m.C=function(a){return this.a[a]};m.Ub=k("a");m.Dc=function(a,b,c){return a.za.d&&(a.d=d.d),d.ca.b&&(a.b=d.b)):a[b][c]=d:(a[b]={},a[b][c]=d)}function ak(a,b,c){return function(d,e,f){d=b.Fb(d,e,f,c);return a(d)?d:null}}function bk(a,b,c){return[b*(Math.round(a[0]/b)+c[0]%2/2),b*(Math.round(a[1]/b)+c[1]%2/2)]} +function ck(a,b,c,d,e,f,g,h,l){var n=x(b).toString();n in a.Ob||(a.Ob[n]={});var q=a.Ob[n];a=a.jg;var r=c.minZoom,w,s,B,z,u,A;for(A=f;A>=r;--A)for(s=pj(c,e,A),B=c.C(A),z=s.a;z<=s.d;++z)for(u=s.c;u<=s.b;++u)f-A<=g?(w=b.Fb(A,z,u,d),0==w.a&&(q[w.K.toString()]=!0,w.c()in a.c||Dh(a,[w,n,sj(c,w.K),B])),t(h)&&h.call(l,w)):b.we(A,z,u)};function dk(a,b){db.call(this);this.f=b;this.d={}}F(dk,db); +function ek(a){var b=a.D,c=a.Md;rh(c);vh(c,a.size[0]/2,a.size[1]/2);wh(c,1/b.resolution,-1/b.resolution);xh(c,-b.rotation);vh(c,-b.center[0],-b.center[1]);a=a.ne;var b=c[0],d=c[1],e=c[2],f=c[3],g=c[4],h=c[5],l=c[6],n=c[7],q=c[8],r=c[9],w=c[10],s=c[11],B=c[12],z=c[13],u=c[14],c=c[15],A=b*h-d*g,E=b*l-e*g,D=b*n-f*g,R=d*l-e*h,O=d*n-f*h,Z=e*n-f*l,I=q*z-r*B,Q=q*u-w*B,va=q*c-s*B,wa=r*u-w*z,ca=r*c-s*z,ea=w*c-s*u,$=A*ea-E*ca+D*wa+R*va-O*Q+Z*I;0!=$&&($=1/$,a[0]=(h*ea-l*ca+n*wa)*$,a[1]=(-d*ea+e*ca-f*wa)*$,a[2]= +(z*Z-u*O+c*R)*$,a[3]=(-r*Z+w*O-s*R)*$,a[4]=(-g*ea+l*va-n*Q)*$,a[5]=(b*ea-e*va+f*Q)*$,a[6]=(-B*Z+u*D-c*E)*$,a[7]=(q*Z-w*D+s*E)*$,a[8]=(g*ca-h*va+n*I)*$,a[9]=(-b*ca+d*va-f*I)*$,a[10]=(B*O-z*D+c*A)*$,a[11]=(-q*O+r*D-s*A)*$,a[12]=(-g*wa+h*Q-l*I)*$,a[13]=(b*wa-d*Q+e*I)*$,a[14]=(-B*R+z*E-u*A)*$,a[15]=(q*R-r*E+w*A)*$)}m=dk.prototype;m.rc=function(a){return new wj(this,a)};m.v=function(){gc(this.d,function(a){hb(a)});dk.B.v.call(this)};m.Bc=Ve; +m.Ta=function(a,b,c,d){function e(a,d){g[Ga(b,d)]=a;--f;f||c(g)}for(var f=b.length,g=Array(f),h,l=0;ld;else if("\x3c"===b)d=a=d;else if("\x3c\x3d"===b)d=a<=d;else throw Error("Unsupported comparison operator: "+this.b);return d};function uk(a){this.b=a} +F(uk,pk);uk.prototype.a=function(a){if(null==a)throw Error("Attempt to evaluate identifier with no scope");return a[this.b]};function U(a){this.bb=a}F(U,pk);U.prototype.a=k("bb");var vk={vg:"\x26\x26",hh:"||"};function wk(a,b,c){this.b=a;this.Na=b;this.Qa=c}F(wk,pk);var xk=function(){var a={},b;for(b in vk)a[vk[b]]=!0;return function(b){return!!a[b]}}(); +wk.prototype.a=function(a,b,c){var d;d=this.Qa.a(a,b,c);a=this.Na.a(a,b,c);if("\x26\x26"===this.b)d=a&&d;else if("||"===this.b)d=a||d;else throw Error("Unsupported logical operator: "+this.b);return d};var yk={ug:"+",nh:"-",bh:"*",Dg:"/",Yg:"%"};function zk(a,b,c){this.b=a;this.Na=b;this.Qa=c}F(zk,pk);var Ak=function(){var a={},b;for(b in yk)a[yk[b]]=!0;return function(b){return!!a[b]}}(); +zk.prototype.a=function(a,b,c){var d;d=this.Qa.a(a,b,c);a=this.Na.a(a,b,c);b=this.b;if("+"===b)d=a+d;else if("-"===b)d=Number(a)-Number(d);else if("*"===b)d=Number(a)*Number(d);else if("/"===b)d=Number(a)/Number(d);else if("%"===b)d=Number(a)%Number(d);else throw Error("Unsupported math operator: "+this.b);return d};function Bk(a,b){this.b=a;this.c=b}F(Bk,pk);Bk.prototype.a=function(a,b,c){a=this.b.a(a,b,c);if(!ma(a))throw Error("Expected member expression to evaluate to an object but got "+a);return this.c.a(a)}; +function Ck(a){this.b=a}F(Ck,pk);Ck.prototype.a=function(a,b,c){return!this.b.a(a,b,c)};function Dk(a){this.b=a;this.c=a.length;this.d=this.a=0}function Ek(a,b){if(!a.match(b))throw new Fk({type:"Unknown",value:a.b[a.a],index:a.a});a.a=a.d}function Gk(a,b){a.a+=b}function Hk(a){return 48<=a&&57>=a}function Ik(a){return 36===a||95===a||65<=a&&90>=a||97<=a&&122>=a}function Jk(a){return a.b.charCodeAt(a.a+0)}Dk.prototype.match=function(a){var b=Kk(this);return"Punctuator"===b.type&&b.value===a}; +function Lk(a){var b;for(b=NaN;a.a=a.c)a={type:"\x3cend\x3e",value:null,index:a.a};else if(40===b||41===b)a=Mk(a,b);else if(39===b||34===b){var c=a.a;Gk(a,1);for(var d="",e;a.a=c)Gk(a,1);else break;a=a.b.slice(b,a.a);a={type:1===a.length?"Identifier":"break"===a||"case"===a||"catch"===a||"continue"===a||"debugger"===a||"default"===a||"delete"===a||"do"===a||"else"===a||"finally"===a||"for"===a||"function"===a||"if"===a||"in"===a||"instanceof"===a||"new"===a||"return"===a||"switch"===a||"this"===a||"throw"===a||"try"===a||"typeof"===a||"var"=== +a||"void"===a||"while"===a||"with"===a?"Keyword":"null"===a?"Null":"true"===a||"false"===a?"Boolean":"Identifier",value:a,index:b}}else a=46===b?Hk(a.b.charCodeAt(a.a+1))?Nk(a,b):Mk(a,b):Hk(b)?Nk(a,b):Mk(a,b);return a}function Kk(a){var b=a.a,c=Lk(a);a.d=a.a;a.a=b;return c} +function Nk(a,b){var c="",d=a.a;if(46!==b){if(48===b){var e=a.b.charCodeAt(a.a+1);if(88===e||120===e){Gk(a,2);c=Jk(a);d="";for(e=a.a-2;a.a=c||65<=c&&70>=c);)d+=String.fromCharCode(c),Gk(a,1),c=Jk(a);if(0===d.length||Ik(c))throw new Fk({type:"Unknown",value:String.fromCharCode(c),index:a.a});return{type:"Numeric",value:parseInt("0x"+d,16),index:e}}if(48<=e&&55>=e){Gk(a,1);d="0"+String.fromCharCode(e);e=a.a-1;for(Gk(a,1);a.a=c))break;d+=String.fromCharCode(c); +Gk(a,1)}c=Jk(a);if(Ik(c)||Hk(c))throw new Fk({type:"Unknown",value:String.fromCharCode(c),index:a.a});return{type:"Numeric",value:parseInt(d,8),index:e}}if(Hk(e))throw new Fk({type:"Unknown",value:String.fromCharCode(e),index:a.a});}for(;Hk(b);)c+=String.fromCharCode(b),Gk(a,1),b=Jk(a)}if(46===b)for(c+=String.fromCharCode(b),Gk(a,1),b=Jk(a);Hk(b);)c+=String.fromCharCode(b),Gk(a,1),b=Jk(a);if(69===b||101===b){c+="E";Gk(a,1);b=Jk(a);if(43===b||45===b)c+=String.fromCharCode(b),Gk(a,1),b=Jk(a);if(!Hk(b))throw new Fk({type:"Unknown", +value:String.fromCharCode(b),index:a.a});for(;Hk(b);)c+=String.fromCharCode(b),Gk(a,1),b=Jk(a)}if(Ik(b))throw new Fk({type:"Unknown",value:String.fromCharCode(b),index:a.a});return{type:"Numeric",value:parseFloat(c),index:d}} +function Mk(a,b){var c=a.a;if(46===b||40===b||41===b||44===b||43===b||45===b||42===b||47===b||37===b||126===b)return Gk(a,1),{type:"Punctuator",value:String.fromCharCode(b),index:c};var d=a.b.charCodeAt(a.a+1);if(61===d){if(33===b||61===b)return Gk(a,2),61===Jk(a)?(Gk(a,1),{type:"Punctuator",value:String.fromCharCode(b)+"\x3d\x3d",index:c}):{type:"Punctuator",value:String.fromCharCode(b)+"\x3d",index:c};if(62===b||60===b)return Gk(a,2),{type:"Punctuator",value:String.fromCharCode(b)+"\x3d",index:c}}if(b=== +d&&(124===b||38===b))return Gk(a,2),d=String.fromCharCode(b),{type:"Punctuator",value:d+d,index:c};if(62===b||60===b||33===b||38===b||124===b)return Gk(a,1),{type:"Punctuator",value:String.fromCharCode(b),index:c};throw new Fk({type:"Unknown",value:String.fromCharCode(b),index:a.a});}function Fk(a,b){ta.call(this,t(b)?b:"Unexpected token "+a.value+" at index "+a.index);this.a=a}F(Fk,ta);Fk.prototype.name="UnexpectedToken";function Ok(){}function Pk(a){var b=0;if("Punctuator"!==a.type)return b;switch(a.value){case "||":b=1;break;case "\x26\x26":b=2;break;case "\x3d\x3d":case "!\x3d":case "\x3d\x3d\x3d":case "!\x3d\x3d":b=3;break;case "\x3e":case "\x3c":case "\x3e\x3d":case "\x3c\x3d":b=4;break;case "+":case "-":b=5;break;case "*":case "/":case "%":b=6}return b} +function Qk(a,b,c){if(tk(a))a=new sk(a,b,c);else if(xk(a))a=new wk(a,b,c);else if(Ak(a))a=new zk(a,b,c);else throw Error("Unsupported binary operator: "+a);return a}function Rk(a){return new U(a)}function Sk(a){var b=new Dk(a);a=Tk(new Ok,b);b=Kk(b);if("\x3cend\x3e"!==b.type)throw new Fk(b);return a} +function Tk(a,b){var c=Uk(a,b),d=Kk(b),e=Pk(d);if(0===e)return c;b.a=b.d;for(var f=Uk(a,b),g=[c,d,f],e=Pk(Kk(b));0b.extent[1]?l.extent[1]:b.extent[1])-(l.extent[0]b.extent[3]?l.extent[3]:b.extent[3])-(l.extent[2]e||Math.abs(l-n)g[h].extent[0]?h=q:r.extent[1]g[l].extent[2]?l=q:r.extent[3]Math.abs(g[n].extent[3]-g[l].extent[2])?c>h?(q=g.splice(c,1)[0],r=g.splice(h,1)[0]):(r=g.splice(h,1)[0],q=g.splice(c,1)[0]):n>l?(q=g.splice(n,1)[0],r=g.splice(l,1)[0]):(r=g.splice(l,1)[0],q=g.splice(n,1)[0]);for(g=[{extent:q.extent.concat(),l:[q]},{extent:r.extent.concat(),l:[r]}];0u.extent[1]?n.extent[1]:u.extent[1],n.extent[2]u.extent[3]?n.extent[3]:u.extent[3]],A=Math.abs(zl(A[1]-A[0],A[3]-A[2],n.l.length+2)-r),u=[l.extent[0] +u.extent[1]?l.extent[1]:u.extent[1],l.extent[2]u.extent[3]?l.extent[3]:u.extent[3]],u=Math.abs(zl(u[1]-u[0],u[3]-u[2],l.l.length+2)-w),E=Math.abs(u-A);if(!B||!s||Ef.length&&(d.l.push(e[0]),f.push(d),b=e[1])}}else wd(d.extent,b.extent),b={extent:d.extent.concat()}}while(0< +f.length)}}xl.prototype.remove=function(a,b){arguments[0]={extent:a};switch(arguments.length){case 1:arguments[1]=!1;case 2:arguments[2]=this.b;default:arguments.length=3}if(!1===arguments[1]){var c=0,d=[];do c=d.length,d=d.concat(this.d.apply(this,arguments));while(c!=d.length);return d}return this.d.apply(this,arguments)}; +xl.prototype.d=function(a,b,c){var d=[],e=[],f=[];if(!a||!Bd(a.extent,c.extent))return f;a=a.extent.concat();var g;e.push(c.l.length);d.push(c);do{c=d.pop();var h=e.pop()-1;if(t(b))for(;0<=h;){var l=c.l[h];if(Bd(a,l.extent))if(b&&t(l.yb)&&l.yb===b||!b&&(t(l.yb)||ud(a,l.extent))){t(l.l)?(f=Cl(l,!0,[],l),c.l.splice(h,1)):f=c.l.splice(h,1);yl(c);b=void 0;c.l.length=c.l.length?(g=Cl(c,!0,g,c),c.l.length=0,d.push(c),e.push(1)):0this.d&&!(b=this.a.bb,c=b.K.z.toString(),c in a&&a[c].contains(b.K));)this.pop()};function km(){this.bounds=this.n=this.b=null}F(km,Ed);km.prototype.ea=function(){if(null===this.bounds){var a,b=a=Infinity,c,d=c=-Infinity,e=this.n,f=e.length,g,h;for(h=0;hf&&(f=e),lh&&(h=l);this.c=[c,f,g,h]}return this.c};m.N=aa("linestring");m.vc=function(a){for(var b=this.p(),c=Infinity,d=0,e=1,f=b.length;e=a&&(this.c[2*a]=b,this.c[2*a+1]=b);this.b.set(this.d,0,a,b)};function om(a,b){km.call(this);var c=b;t(c)||(c=a[0].length,c=new Dd({dimension:c}));this.b=c;var d=a.length;this.n=Array(d);for(var e=0;ea!=h>a&&b<(g-e)*(a-f)/(h-f)+e)&&(d=!d);return d};function rm(a,b){this.b=null;var c=b;t(c)||(c=a[0][0].length,c=new Dd({dimension:c}));this.e=null;this.b=c;var d=a.length;this.a=Array(d);for(var e,f=0;f=c&&l[1]<=c||h[1]<=c&&l[1]>=c)h=(c-h[1])/(l[1]-h[1])*(l[0]-h[0])+h[0],d.push(h);d.sort();for(g=d.length-1;1<=g;--g)e=Math.abs(d[g]-d[g-1]),e>f&&(h=(d[g]+d[g-1])/2,a.mb([h,c])&&(f=e,b=h));a.e=[b,c]}a=a.e;return[[a[0], +a[1],0]]}throw Error("Label rendering not implemented for geometry type: "+c);}function wm(a,b){var c=a.url,d=xm[c],e=!1;if(!t(d))e=!0,d=Jf("IMG"),Cc(d,"error",y(ym,null,b),!1,wm),Cc(d,"load",y(zm,null,b),!1,wm),d.setAttribute("src",c);else if(null!==d){var c=a.width,f=a.height;t(c)&&t(f)?(d.width=c,d.height=f):t(c)?(d.height*=c/d.width,d.width=c):t(f)&&(d.width*=f/d.height,d.height=f)}return e?null:d}var xm={};function ym(a,b){if(t(b)){var c=b.target.getAttribute("src");xm[c]=null;zm(a,b)}} +function zm(a,b){if(t(b)){var c=b.target.getAttribute("src");xm[c]=b.target}t(a)&&a()};function Am(a,b){wj.call(this,a,b);this.i=Jf("CANVAS");this.ma=this.i.getContext("2d");this.G=Hg();this.Ra=Jf("CANVAS");this.lb=Hg();this.c=new jm(Bm);J(b,["add","change","remove","intentchange"],this.ff,!1,this);this.d=null;this.ta="point multipoint linestring multilinestring polygon multipolygon".split(" ");this.H=null;this.o=this.q=!1;this.f=null;this.W=new ab(NaN,NaN,NaN,NaN);this.t=y(function(){this.q=!0;Oi(a.f)},this)}F(Am,em);m=Am.prototype;m.ha=k("i");m.md=k("G"); +m.Ta=function(a,b){this.wd(a,function(a,d){b((0,d.kg)(a),d)})}; +m.wd=function(a,b,c){var d=this.a.f,e=[],f=this.b;a=Oh(d,a);var g=tj(this.f,a,0).toString();if(im(this.c,g)){var h=this.c.get(g),g=h[1],l=h[2],h=h[3],n=l[0]/2,l=l[1]/2,l=pd([[a[0]-n,a[1]-l],[a[0]+n,a[1]+l]]),d=cm(f,l,d.a().O().fa());if(null===d){t(c)&&p.setTimeout(function(){c()},0);return}var q,r,w,s;for(s in d)if(l=d[s],n=l.u(),q=n.N(),"point"===q||"multipoint"===q)for(r=x(l),q=g[r],r=h[r],w=q[0]/2,q=q[1]/2,q=pd([[a[0]-w-r[0],a[1]-q+r[1]],[a[0]+w-r[0],a[1]+q+r[1]]]),n=n.p(),ia(n[0])||(n=[n]),r= +n.length-1;0<=r;--r){if(td(q,n[r])){e.push(l);break}}else la(n.mb)?n.mb(a)&&e.push(l):la(n.vc)&&2*n.vc(a)<=g[x(l)][0]&&e.push(l)}p.setTimeout(function(){b(e,f)},0)};m.ff=function(a){var b=a.extent;a=this.c;if(t(b))for(var b=pj(this.f,b,0),c=a.T(),d;c--;)d=a.a.bc,b.contains(Za(d))?a.pop():a.get(d);else a.clear();this.t()}; +m.Pa=function(a){var b=a.D,c=b.resolution,d=b.projection,e=a.extent,f=this.b,g=this.f,h=[512,512],l=!a.L[0]&&!a.L[1];if(l){var n=0.14929107086948487,q=d.Tb();q&&(n/=q);var r=Math.max(c,n);r!==this.Q&&(g=new mj({origin:[0,0],projection:d,resolutions:[r],tileSize:h}),this.c.clear(),this.f=g)}if(null!==g){var w=g.C(0);l&&qj(g,e,w,this.W);var s=this.G,B=this.W,z,u=g,A=u.Ib(0),E=u.C(0),D=u.Aa(0);z=sd(A[0]+B.a*D[0]*E,A[0]+(B.d+1)*D[0]*E,A[1]+B.c*D[1]*E,A[1]+(B.b+1)*D[1]*E,void 0);var R=Ad(z);rh(s);vh(s, +a.size[0]/2,a.size[1]/2);wh(s,w/c,w/c);xh(s,b.rotation);vh(s,(R[0]-b.center[0])/w,(b.center[1]-R[1])/w);if(this.q||this.Q!==w||!vd(this.H,z)){null===this.d&&(this.d=Jf("CANVAS"),this.d.width=h[0],this.d.height=h[1]);var O=this.Ra,Z=h[0]*(B.d-B.a+1),I=h[1]*(B.b-B.c+1),Q=this.lb,va=Z/2,wa=I/2;rh(Q);vh(Q,va,wa);wh(Q,1/w,-1/w);vh(Q,-(R[0]+va*w),-(R[1]-wa*w));O.width=Z;O.height=I;var ca=new um(O,Q,this.t),ea=this.i;ea.width=Z;ea.height=I;var $=this.ma,Pa={},Fa={},Fb={},Ig=15*w,af,Zb,uc,Lg,Mg,rn=this.ta, +Br=rn.length,xj=!1,sn=!1,Ng,Kc,$b,yj,Og,Pg,tn,Qg,Rg;Lg=B.a;a:for(;Lg<=B.d;++Lg)for(Mg=B.c;Mg<=B.b;++Mg)if(Zb=new Ya(0,Lg,Mg),uc=Zb.toString(),im(this.c,uc))Fa[uc]=Zb;else if(l){$b=oj(g,Zb);$b[0]-=Ig;$b[1]+=Ig;$b[2]-=Ig;$b[3]+=Ig;Rg=!1;for(Ng=0;Ngthis.c.d;)this.c.pop();this.o=!1};var Bm=128;function Cm(a,b){dk.call(this,0,b);this.b=Jf("CANVAS");this.b.height=a.clientHeight;this.b.width=a.clientWidth;this.b.className="ol-unselectable";Nf(a,this.b);this.c=!0;this.e=[a.clientHeight,a.clientWidth];this.g=this.b.getContext("2d")}F(Cm,dk);Cm.prototype.rc=function(a){return a instanceof nk?new fm(this,a):a instanceof ok?new gm(this,a):a instanceof $l?new Am(this,a):null};Cm.prototype.Bc=k("b"); +Cm.prototype.Nc=function(a){if(null===a)this.c&&(rg(this.b,!1),this.c=!1);else{var b=a.size;if(this.e[0]!=b[0]||this.e[1]!=b[1])this.b.width=b[0],this.b.height=b[1],this.e=b;var c=this.g;c.setTransform(1,0,0,1,0,0);c.clearRect(0,0,b[0],b[1]);ek(a);var b=a.qa,d=a.Lc,e,f,g,h,l;e=0;for(f=d.length;ec;++c)d[c]=b[c].toFixed(6);c=d.join(",")}else c=b.join(",");c="matrix3d("+c+")";d=a.style;d.WebkitTransform=c;d.MozTransform=c;d.a=c;d.transform=c};function Fm(a,b,c){wj.call(this,a,b);this.target=c}F(Fm,wj);function Gm(a,b){var c=Jf("DIV");c.style.position="absolute";Fm.call(this,a,b,c);this.c=null;this.d=Kg()}F(Gm,Fm); +Gm.prototype.Pa=function(a){var b=a.D,c=b.center,d=b.resolution,e=b.rotation,f=this.c,g=this.b.ja(),h=a.L;h[0]||h[1]||(b=g.ha(a.extent,d,b.projection),null!==b&&(h=b.a,0==h?(Cc(b,"change",this.k,!1,this),lj(b)):2==h&&(f=b)));if(null!==f){var h=f.ba(),l=f.C(),b=Hg();rh(b);vh(b,a.size[0]/2,a.size[1]/2);xh(b,e);wh(b,l/d,l/d);vh(b,(h[0]-c[0])/l,(c[1]-h[3])/l);f!=this.c&&(c=kj(f,this),c.style.maxWidth="none",c.style.position="absolute",Lf(this.target),this.target.appendChild(c),this.c=f);th(b,this.d)|| +(Em(this.target,b),qh(this.d,b));Xj(a.attributions,f.e);Yj(a,g)}};function Hm(a,b){var c=Jf("DIV");c.style.position="absolute";Fm.call(this,a,b,c);this.d=!0;this.i=1;this.f=0;this.c={}}F(Hm,Fm); +Hm.prototype.Pa=function(a,b){if(b.visible){var c=a.D,d=c.projection,e=this.b,f=e.ja(),g=f.tileGrid;null===g&&(g=uj(d));var h=bi(g.a,c.resolution,0),l=g.C(h),n=c.center,q;l==c.resolution?(n=bk(n,l,a.size),q=zd(n,l,c.rotation,a.size)):q=a.extent;var l=qj(g,q,l),r={};r[h]={};var w=y(f.hd,f,r,ak(function(a){return null!==a&&2==a.a},f,d)),s=qd(),B=new ab(0,0,0,0),z,u,A,E;for(A=l.a;A<=l.d;++A)for(E=l.c;E<=l.b;++E)z=f.Fb(h,A,E,d),u=z.a,2==u?r[h][z.K.toString()]=z:3!=u&&4!=u&&(u=g.zc(z.K,w,null,B,s),u|| +(z=g.Dc(z.K,B,s),null===z||w(h+1,z)));var D;if(this.f!=f.b){for(D in this.c)s=this.c[+D],Of(s.target);this.c={};this.f=f.b}A=La(lc(r),Number);Va(A);var w={},R;E=0;for(z=A.length;ED&&Nf(this.target,s.target)}else a.L[0]||a.L[1]||Mm(s,q,B);else Of(s.target),delete this.c[D];b.opacity!=this.i&&(qg(this.target,b.opacity),this.i=b.opacity);b.visible&&!this.d&&(rg(this.target,!0),this.d=!0);Zj(a.lc,f,h,l);ck(a,f,g,d,q,h,e.a());Wj(a,f);Yj(a,f)}else this.d&&(rg(this.target,!1),this.d=!1)}; +function Im(a,b){this.target=Jf("DIV");this.target.style.position="absolute";this.d=a;this.c=b;this.f=Ad(oj(a,b));this.g=a.C(b.z);this.b={};this.a=null;this.e=Kg()}function Jm(a,b){var c=b.K,d=c.toString();if(!(d in a.b)){var e=a.d.Aa(c.z),f=b.ha(a),g=f.style;g.maxWidth="none";g.position="absolute";g.left=(c.x-a.c.x)*e[0]+"px";g.top=(a.c.y-c.y)*e[1]+"px";null===a.a&&(a.a=document.createDocumentFragment());a.a.appendChild(f);a.b[d]=b}} +function Km(a){null!==a.a&&(a.target.appendChild(a.a),a.a=null)}Im.prototype.C=k("g");function Mm(a,b,c){var d=pj(a.d,b,a.c.z,c);b=[];for(var e in a.b)c=a.b[e],d.contains(c.K)||b.push(c);var f,d=0;for(f=b.length;dc)break;if(bb&&(-1==e||hc?(e="\u2032",b*=60):e="\u00b0":"imperial"==f?0.9144>c?(e="in", +b/=0.0254):1609.344>c?(e="ft",b/=0.3048):(e="mi",b/=1609.344):"nautical"==f?(b/=1852,e="nm"):"metric"==f?1>c?(e="mm",b*=1E3):1E3>c?e="m":(e="km",b/=1E3):"us"==f&&(0.9144>c?(e="in",b*=39.37):1609.344>c?(e="ft",b/=0.30480061):(e="mi",b/=1609.3472));for(var f=3*Math.floor(Math.log(a.i*b)/Math.log(10)),g,h;;){g=No[f%3]*Math.pow(10,Math.floor(f/3));h=Math.round(g/b);if(h>=a.i)break;++f}g=g+e;a.s!=g&&(a.f.innerHTML=g,a.s=g);a.G!=h&&(a.f.style.width=h+"px",a.G=h);a.c||(rg(a.g,!0),a.c=!0)}};function Po(a){db.call(this);this.b=a;this.a={}}F(Po,db);var Qo=[];Po.prototype.Wa=function(a,b,c,d,e){ia(b)||(Qo[0]=b,b=Qo);for(var f=0;fthis.be)if(K(this,new Wo("start",this,a.clientX,a.clientY,a)))this.tb=!0;else{this.ec||this.wc(a);return}}c=Zo(this,b,c);b=c.x;c=c.y;this.tb&&K(this,new Wo("beforedrag",this,a.clientX,a.clientY,a,b,c))&&($o(this,a,b,c),a.U())}}; +function Zo(a,b,c){var d=Rf(Af(a.c));b+=d.x-a.e.x;c+=d.y-a.e.y;a.e=d;a.na+=b;a.la+=c;b=Xo(a,a.na);a=Yo(a,a.la);return new yf(b,a)}m.Wf=function(a){var b=Zo(this,0,0);a.clientX=this.clientX;a.clientY=this.clientY;$o(this,a,b.x,b.y)};function $o(a,b,c,d){a.Fd&&Uo(a)?a.target.style.right=c+"px":a.target.style.left=c+"px";a.target.style.top=d+"px";K(a,new Wo("drag",a,b.clientX,b.clientY,b,c,d))} +function Xo(a,b){var c=a.b,d=isNaN(c.left)?null:c.left,c=isNaN(c.width)?0:c.width;return Math.min(null!=d?d+c:Infinity,Math.max(null!=d?d:-Infinity,b))}function Yo(a,b){var c=a.b,d=isNaN(c.top)?null:c.top,c=isNaN(c.height)?0:c.height;return Math.min(null!=d?d+c:Infinity,Math.max(null!=d?d:-Infinity,b))}function Wo(a,b,c,d,e,f,g,h){ib.call(this,a);this.clientX=c;this.clientY=d;this.d=e;this.left=t(f)?f:b.na;this.top=t(g)?g:b.la;this.b=b;this.a=!!h}F(Wo,ib);function ap(a){a=t(a)?a:{};this.b=void 0;this.c=bp;this.i=!1;this.f=null;a=t(a.className)?a.className:"ol-zoomslider";a=Gf("DIV",a+" ol-unselectable",Gf("DIV",a+"-thumb ol-unselectable"));null!==this.f&&(Ha(this.f,Fc),this.f=null);var b=new So(a.childNodes[0]);this.f=[J(b,["drag","end"],this.s,void 0,this)];this.g=b;J(a,["touchend","click"],this.k,!1,this);li.call(this,{element:a})}F(ap,li);var bp=0;ap.prototype.setMap=function(a){ap.B.setMap.call(this,a);null===a||Vj(a)}; +ap.prototype.d=function(a){if(null!==a.b){if(!this.i){var b=this.element,c=Pf(b);var d=Cf(b),e=G&&b.currentStyle;e&&Qf(Af(d))&&"auto"!=e.width&&"auto"!=e.height&&!e.boxSizing?(d=wg(b,e.width,"width","pixelWidth"),b=wg(b,e.height,"height","pixelHeight"),b=new zf(d,b)):(e=new zf(b.offsetWidth,b.offsetHeight),d=ug(b,"padding"),b=vg(b),b=new zf(e.width-b.left-d.left-d.right-b.right,e.height-b.top-d.top-d.bottom-b.bottom));var e=kg(c),d=og(c),e=new dg(e.x,e.y,d.width,d.height),d=ug(c,"margin"),f=vg(c), +c=b.width-d.left-d.right-f.left-f.right-e.width,e=b.height-d.top-d.bottom-f.top-f.bottom-e.height;b.width>b.height?(this.c=1,c=new dg(0,0,c,0)):(this.c=bp,c=new dg(0,0,0,e));this.g.b=c||new dg(NaN,NaN,NaN,NaN);this.i=!0}a=a.b.D.resolution;a!==this.b&&(this.b=a,a=-1*(ji(this.a.a().O())(a)-1),c=this.g,b=Pf(this.element),1==this.c?gg(b,c.b.left+c.b.width*a):gg(b,c.b.left,c.b.top+c.b.height*a))}};ap.prototype.k=function(){}; +ap.prototype.s=function(a){var b=this.a,c=b.a().O();if("drag"===a.type){var b=this.g.b,d=0,d=1===this.c?(a.left-b.left)/b.width:(a.top-b.top)/b.height;a=-1*($c(d,0,1)-1);a=ii(this.a.a().O())(a);a!==this.b&&(this.b=a,c.kb(a))}else b.Ga(vi({resolution:this.b,duration:200,easing:oi})),a=c.Ha(this.b),c.kb(a)};function cp(a){a=t(a)?a:{};this.b=t(a.extent)?a.extent:null;var b=Gf("DIV",{"class":(t(a.className)?a.className:"ol-zoom-extent")+" ol-unselectable"}),c=Gf("A",{href:"#zoomExtent"});b.appendChild(c);J(b,["touchend","click"],this.c,!1,this);li.call(this,{element:b,target:a.target})}F(cp,li);cp.prototype.c=function(a){a.U();a=this.a;var b=a.a().O(),c=null===this.b?b.fa().ba():this.b;b.jd(c,a.c())};function dp(a){L.call(this);this.a=a;J(this.a,"change",this.k,!1,this);J(this,Vc("value"),this.s,!1,this);J(this,Vc("valueAsNumber"),this.o,!1,this);J(this,Vc("checked"),this.i,!1,this)}F(dp,L);dp.prototype.b=function(){return this.get("checked")};dp.prototype.getChecked=dp.prototype.b;dp.prototype.d=function(){return this.get("value")};dp.prototype.getValue=dp.prototype.d;dp.prototype.c=function(){return this.get("valueAsNumber")};dp.prototype.getValueAsNumber=dp.prototype.c; +dp.prototype.f=function(a){this.set("value",a)};dp.prototype.setValue=dp.prototype.f;dp.prototype.g=function(a){this.set("valueAsNumber",a)};dp.prototype.setValueAsNumber=dp.prototype.g;dp.prototype.e=function(a){this.set("checked",a)};dp.prototype.setChecked=dp.prototype.e;dp.prototype.k=function(){"checkbox"===this.a.type||"radio"===this.a.type?this.e(this.a.checked):(this.f(this.a.value),this.g(this.a.valueAsNumber))};dp.prototype.i=function(){this.a.checked=this.b()?"checked":void 0}; +dp.prototype.s=function(){this.a.value=this.d()};dp.prototype.o=function(){this.a.value=this.c()};function ep(a,b){this.x=a;this.y=b}F(ep,yf);ep.prototype.ca=function(){return new ep(this.x,this.y)};ep.prototype.scale=yf.prototype.scale;ep.prototype.add=function(a){this.x+=a.x;this.y+=a.y;return this};function fp(a){a=t(a)?a:{};Mi.call(this);this.f=t(a.condition)?a.condition:Ki;this.a=this.b=void 0;this.d=0}F(fp,Mi);fp.prototype.Yb=function(a){var b=a.a;a=a.map;var c=a.c(),c=new ep(b.Td-c[0]/2,c[1]/2-b.Ud),b=Math.atan2(c.y,c.x),c=Math.sqrt(c.x*c.x+c.y*c.y),d=a.a().O(),e=ki(d);Oi(a);t(this.b)&&Ci(a,d,e.rotation-(b-this.b));this.b=b;t(this.a)&&Fi(a,d,this.a*(e.resolution/c));t(this.a)&&(this.d=this.a/c);this.a=c}; +fp.prototype.Zb=function(a){var b=a.map,c=b.a().O(),d=ki(c),e=this.d-1;Di(b,function(){var a=d.rotation,a=c.qc(a,0);Ci(b,c,a,void 0,void 0);a=d.resolution;a=c.Ha(a,0,e);Fi(b,c,a,void 0,400)});this.d=0;return!0};fp.prototype.Gb=function(a){return this.f(a)?(this.a=this.b=void 0,!0):!1};function gp(a){Mi.call(this);a=t(a)?a:{};this.i=t(a.layerFilter)?a.layerFilter:null;this.f=null;this.b=!1;this.d=t(a.pixelTolerance)?a.pixelTolerance:20;this.a=null;this.e=0}F(gp,Mi);m=gp.prototype;m.$c=function(a){var b=a.target;a=a.features;for(var c=0,d=a.length;cB&&++O[3])}u=[q[0],l];E=[u,r,s,B];t(z)&&E.push(z);Al(A,pd(u),E,w);this.a.push([n,E,1]);u=[l,q[1]];E=[u,r,s,B+1];t(z)&&E.push(z);Al(A,pd(u),E,w);this.a.push([n,E,0])}}}}return this.b}; +m.Yb=function(a){a=a.d();for(var b=0,c=this.a.length;b=u&&(s=B>z?q[1]:q[0],r="temporary");w.set(0,s[0]);w.set(1,s[1]);dm(n,[l]);a.b=!0}l.Da!=r&&n.Sc(r,[l])}}}m.Hf=function(a){return!(a instanceof $l&&a.o)};m.$f=function(a){var b=a.target.nb.Za;a=a.features;for(var c=0,d=a.length;c=b.cd&&b.cancel())}this.k?this.k.call(this.g,this):this.Bd=!0;this.ob||this.Db(new Bp(this))}};m.Ld=function(a,b){this.bd=!1;Cp(this,a,b)};function Cp(a,b,c){a.ob=!0;a.b=c;a.Xb=!b;Dp(a)}function Ep(a){if(a.ob){if(!a.Bd)throw new Fp(a);a.Bd=!1}} +m.aa=function(a){Ep(this);Cp(this,!0,a)};m.Db=function(a){Ep(this);Cp(this,!1,a)};function Gp(a,b,c){return Hp(a,b,null,c)}function Hp(a,b,c,d){a.c.push([b,c,d]);a.ob&&Dp(a);return a}function Ip(a){return Ma(a.c,function(a){return la(a[1])})} +function Dp(a){a.f&&(a.ob&&Ip(a))&&(p.clearTimeout(a.f),delete a.f);a.a&&(a.a.cd--,delete a.a);for(var b=a.b,c=!1,d=!1;a.c.length&&!a.bd;){var e=a.c.shift(),f=e[0],g=e[1],e=e[2];if(f=a.Xb?g:f)try{var h=f.call(e||a.g,b);t(h)&&(a.Xb=a.Xb&&(h==b||h instanceof Error),a.b=b=h);b instanceof Ap&&(d=!0,a.bd=!0)}catch(l){b=l,a.Xb=!0,Ip(a)||(c=!0)}}a.b=b;d&&(Hp(b,y(a.Ld,a,!0),y(a.Ld,a,!1)),b.Je=!0);c&&(a.f=p.setTimeout(We(b),0))}function Fp(a){ta.call(this);this.a=a}F(Fp,ta);Fp.prototype.message="Deferred has already fired"; +Fp.prototype.name="AlreadyCalledError";function Bp(a){ta.call(this);this.a=a}F(Bp,ta);Bp.prototype.message="Deferred was canceled";Bp.prototype.name="CanceledError";function Jp(a,b,c,d,e,f){Ap.call(this,e,f);this.e=a;this.d=[];this.R=!!b;this.s=!!c;this.o=!!d;for(b=this.q=0;b=d?1-d:8-d)+(Number(h)+7*(Number(c)-1))-1))):(e&&(b.a.setDate(1),b.a.setMonth(e-1)),f&&b.a.setDate(f));c=!0}else c=!1;c&&!(c=2>a.length)&&(a=a[1], +c=a.match(Op),h=0,c&&("Z"!=c[0]&&(h=60*c[2]+Number(c[3]),h*="-"==c[1]?1:-1),h-=b.a.getTimezoneOffset(),a=a.substr(0,a.length-c[0].length)),(c=a.match(Np))?(b.a.setHours(Number(c[1])),b.a.setMinutes(Number(c[2])||0),b.a.setSeconds(Number(c[3])||0),b.a.setMilliseconds(c[4]?1E3*c[4]:0),0!=h&&b.a.setTime(b.getTime()+6E4*h),c=!0):c=!1);return c?b:null} +function Rp(a,b,c,d,e,f){v(a)?(this.f=a==Tp?b:0,this.d=a==Up?b:0,this.a=a==Sp?b:0,this.b=a==Vp?b:0,this.c=a==Wp?b:0,this.e=a==Xp?b:0):(this.f=a||0,this.d=b||0,this.a=c||0,this.b=d||0,this.c=e||0,this.e=f||0)}Rp.prototype.ca=function(){return new Rp(this.f,this.d,this.a,this.b,this.c,this.e)};var Tp="y",Up="m",Sp="d",Vp="h",Wp="n",Xp="s";Rp.prototype.add=function(a){this.f+=a.f;this.d+=a.d;this.a+=a.a;this.b+=a.b;this.c+=a.c;this.e+=a.e}; +function Yp(a,b,c){ka(a)?(this.a=new Date(a,b||0,c||1),Zp(this,c||1)):ma(a)?(this.a=new Date(a.getFullYear(),a.getMonth(),a.getDate()),Zp(this,a.getDate())):(this.a=new Date(sa()),this.a.setHours(0),this.a.setMinutes(0),this.a.setSeconds(0),this.a.setMilliseconds(0))}m=Yp.prototype;m.xc=Lp.ye;m.yc=Lp.ze;m.ca=function(){var a=new Yp(this.a);a.xc=this.xc;a.yc=this.yc;return a};m.getFullYear=function(){return this.a.getFullYear()};m.getMonth=function(){return this.a.getMonth()};m.getDate=function(){return this.a.getDate()}; +m.getTime=function(){return this.a.getTime()};function $p(a){a=a.a.getTimezoneOffset();if(0==a)a="Z";else{var b=Math.abs(a)/60,c=Math.floor(b),b=60*(b-c);a=(0b&&(b+=12);var d;a:{switch(b){case 1:d=0!=c%4||0==c%100&&0!=c%400?28:29;break a;case 5:case 8:case 10:case 3:d=30;break a}d=31}d=Math.min(d,this.getDate());this.a.setDate(1);this.a.setFullYear(c);this.a.setMonth(b);this.a.setDate(d)}a.a&&(a=new Date((new Date(this.getFullYear(),this.getMonth(),this.getDate(),12)).getTime()+864E5*a.a),this.a.setDate(1),this.a.setFullYear(a.getFullYear()), +this.a.setMonth(a.getMonth()),this.a.setDate(a.getDate()),Zp(this,a.getDate()))};m.Ec=function(a,b){return[this.getFullYear(),Da(this.getMonth()+1),Da(this.getDate())].join(a?"-":"")+(b?$p(this):"")};m.toString=function(){return this.Ec()};function Zp(a,b){a.getDate()!=b&&a.a.setUTCHours(a.a.getUTCHours()+(a.getDate()this.a.d};m.Rb=function(a){this.a.Rb(a)}; +m.Fb=function(a,b,c,d){var e=this.fb(a,b,c);if(im(this.a,e))return this.a.get(e);a=new Ya(a,b,c);d=this.tileUrlFunction(a,d);d=new jr(a,t(d)?0:4,t(d)?d:"",this.k);this.a.set(e,d);return d};m.jc=function(a){this.a.clear();this.tileUrlFunction=a;Kh(this)};m.we=function(a,b,c){a=this.fb(a,b,c);im(this.a,a)&&this.a.get(a)};function lr(a){var b=Array(a.maxZoom+1),c,d=2*fj/256;for(c=0;c<=a.maxZoom;++c)b[c]=d/Math.pow(2,c);mj.call(this,{minZoom:a.minZoom,origin:[-fj,fj],resolutions:b,tileSize:[256,256]})}F(lr,mj); +function mr(a,b){var c=t(b)?b:{},d=a.minZoom,e=a.maxZoom,f=t(c.rg)?c.rg:!0,g=new Ya(0,0,0),h=null;if(t(c.extent)){var h=Array(e+1),l;for(l=0;l<=e;++l)h[l]=ls||l<=s)return null;a=a.y;return a<-l||-1=this.minZoom;--a)if(d.a=d.d>>=1,d.c=d.b>>=1,b.call(c,a,d))return!0;return!1};function nr(a){kr.call(this,{crossOrigin:"anonymous",opaque:!0,projection:ke("EPSG:3857")});this.e=t(a.culture)?a.culture:"en-us";this.c=!1;var b=new ze("//dev.virtualearth.net/REST/v1/Imagery/Metadata/"+a.style),b=new Yq(b,"jsonp"),c={include:"ImageryProviders",key:a.key};a=y(this.i,this);var d=c||null,c="_"+(Zq++).toString(36)+sa().toString(36);p._callbacks_||(p._callbacks_={});var e=b.b.ca();if(d)for(var f in d)d.hasOwnProperty&&!d.hasOwnProperty(f)||Me(e,f,d[f]);a&&(p._callbacks_[c]=br(c,a),Me(e, +b.a,"_callbacks_."+c));f=Rq(e.toString(),{timeout:b.zb,Jd:!0});Hp(f,null,ar(c),void 0)}F(nr,kr); +nr.prototype.i=function(a){var b=a.brandLogoUri,c=a.resourceSets[0].resources[0],d=new lr({minZoom:c.zoomMin,maxZoom:c.zoomMax,tileSize:[c.imageWidth,c.imageHeight]});this.tileGrid=d;var e=this.e;this.tileUrlFunction=hr(mr(d),er(La(c.imageUrlSubdomains,function(a){var b=c.imageUrl.replace("{subdomain}",a).replace("{culture}",e);return function(a){return null===a?void 0:b.replace("{quadkey}",$a(a))}})));var f=Od(ke("EPSG:4326"),this.fa());this.d=La(c.imageryProviders,function(a){var b=a.attribution, +c={};Ha(a.coverageAreas,function(a){var b=a.zoomMin,e=a.zoomMax;a=a.bbox;a=Cd([a[1],a[3],a[0],a[2]],f);var g,h;for(g=b;g<=e;++g)h=g.toString(),b=pj(d,a,g),h in c?c[h].push(b):c[h]=[b]});return new cb({html:b,tileRanges:c})});this.f=b;this.c=!0;++this.b;K(this,"load")};nr.prototype.Ba=k("c");function or(a){var b=pr(a.url),c=a.imageExtent,d=a.imageSize,e=(c[3]-c[2])/d[1],f=ke(a.projection);lk.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,extent:a.extent,projection:a.projection,Hb:b,resolutions:[e]});this.a=mk(this,c,e,d,f)}F(or,lk);or.prototype.ha=function(a){return Bd(a,this.a.ba())?this.a:null};function pr(a){return function(){return a}};function jk(a,b,c,d,e){d={SERVICE:"WMS",VERSION:"1.3.0",REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0,WIDTH:Math.round(d[0]),HEIGHT:Math.round(d[1])};H(d,b);d.STYLES=b.STYLES||new String("");b="1.3"this.a.d};Tr.prototype.Rb=function(a){this.a.Rb(a)};Tr.prototype.Fb=function(a,b,c){var d=this.fb(a,b,c);if(im(this.a,d))return this.a.get(d);a=new Sr(new Ya(a,b,c),this.tileGrid);this.a.set(d,a);return a};var Ur=[];C("grid",function(a){Ur.push(a)});function Vr(a){kr.call(this,{crossOrigin:a.crossOrigin,projection:ke("EPSG:3857")});this.c=!1;this.dd=Rq(a.url,{Jd:!0});Gp(this.dd,this.e,this)}F(Vr,kr); +Vr.prototype.e=function(){var a=Ur.pop(),b=ke("EPSG:4326"),c;if(t(a.bounds)){var d=a.bounds,d=[d[0],d[2],d[1],d[3]],e=Od(b,this.fa());this.g=c=Cd(d,e)}var f=a.minzoom||0,d=a.maxzoom||22;this.tileGrid=e=new lr({maxZoom:d,minZoom:f});this.tileUrlFunction=hr(mr(e,{extent:c}),dr(a.tiles));if(t(a.attribution)){b=t(c)?c:b.ba();c={};for(var g;f<=d;++f)g=f.toString(),c[g]=[pj(e,b,f)];this.d=[new cb({html:a.attribution,tileRanges:c})]}this.c=!0;++this.b;K(this,"load")};Vr.prototype.Ba=k("c");function Wr(a){var b=gr,c=a.urls;!t(c)&&t(a.url)&&(c=ir(a.url));this.c=a.params;this.e="";Xr(this);t(c)&&(b=La(c,function(a){return fr(a,this.c)},this),b=er(b));var d=a.extent;kr.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,extent:d,tileGrid:a.tileGrid,opaque:!(t(a.params.TRANSPARENT)?a.params.TRANSPARENT:1),projection:a.projection,tileUrlFunction:hr(function(a,b){var c=this.tileGrid;null===c&&(c=uj(b));if(c.Ub().length<=a.z)return null;var h=a.x,l=oj(c,a),n=b.ba();d=t(d)?d:n; +null!==d&&(b.nd&&d[0]===n[0]&&d[1]===n[1])&&(l=Math.ceil((d[1]-d[0])/(l[1]-l[0])),h=ad(h,l),l=oj(c,new Ya(a.z,h,a.y)));return null===d||Bd(l,d)?new Ya(a.z,h,a.y):null},b)});this.i=t(a.kd)?a.kd:{}}F(Wr,kr);Wr.prototype.fb=function(a,b,c){return this.e+Wr.B.fb.call(this,a,b,c)};Wr.prototype.o=k("c"); +Wr.prototype.Ta=function(a,b,c,d){var e=Oh(b,a),f=b.a().O(),g=f.fa(),h=null===this.tileGrid?uj(g):this.tileGrid,f=f.C(),e=rj(h,e[0],e[1],f,!1,void 0),h=oj(h,e);b=Pi(b,Ad(h));g=this.tileUrlFunction(e,g);qr(g,[a[0]-b[0],a[1]-b[1]],this.i,c,d)};function Xr(a){var b=0,c=[],d;for(d in a.c)c[b++]=d+"-"+a.c[d];a.e=c.join("/")}Wr.prototype.s=function(a){H(this.c,a);Xr(this);Kh(this)};function Yr(a){this.c=a.matrixIds;mj.call(this,{origin:a.origin,origins:a.origins,resolutions:a.resolutions,tileSize:a.tileSize,tileSizes:a.tileSizes})}F(Yr,mj);Yr.prototype.g=k("c"); +function Zr(a){var b=[],c=[],d=[],e=[],f=ke(a.supportedCRS).Tb();Va(a.matrixIds,function(a,b){return b.scaleDenominator-a.scaleDenominator});Ha(a.matrixIds,function(a){c.push(a.identifier);d.push(a.topLeftCorner);b.push(2.8E-4*a.scaleDenominator/f);e.push([a.tileWidth,a.tileHeight])});return new Yr({origins:d,resolutions:b,matrixIds:c,tileSizes:e})};var $r="KVP"; +function as(a){function b(a){a=e==$r?we(ye([a],g)):a.replace(/\{(\w+?)\}/g,function(a,b){return b in g?g[b]:a});return function(b){if(null!==b){var c={TileMatrix:f.c[b.z],TileCol:b.x,TileRow:b.y};H(c,this.c);b=a;return b=e==$r?we(ye([b],c)):b.replace(/\{(\w+?)\}/g,function(a,b){return c[b]})}}}var c=t(a.version)?a.version:"1.0.0",d=t(a.format)?a.format:"image/jpeg";this.c=a.dimensions||{};this.e="";bs(this);var e=t(a.requestEncoding)?a.requestEncoding:$r,f=a.tileGrid,g={Layer:a.layer,style:a.style, +Style:a.style,TileMatrixSet:a.matrixSet};e==$r&&H(g,{Service:"WMTS",Request:"GetTile",Version:c,Format:d});c=gr;d=a.urls;!t(d)&&t(a.url)&&(d=ir(a.url));t(d)&&(c=er(La(d,b)));var h=qd(),l=new Ya(0,0,0),c=hr(function(b,c){var d=this.tileGrid;if(d.Ub().length<=b.z)return null;var e=b.x,f=-b.y-1,g=oj(d,b),z=c.ba(),u=t(a.extent)?a.extent:z;null!==u&&(c.nd&&u[0]===z[0]&&u[1]===z[1])&&(g=Math.ceil((u[1]-u[0])/(g[1]-g[0])),e=ad(e,g),l.z=b.z,l.x=e,l.y=b.y,g=oj(d,l,h));return Bd(g,u)?new Ya(b.z,e,f):null}, +c);kr.call(this,{attributions:a.attributions,crossOrigin:a.crossOrigin,extent:a.extent,projection:a.projection,tileGrid:f,tileUrlFunction:c})}F(as,kr);as.prototype.i=k("c");as.prototype.fb=function(a,b,c){return this.e+as.B.fb.call(this,a,b,c)};function bs(a){var b=0,c=[],d;for(d in a.c)c[b++]=d+"-"+a.c[d];a.e=c.join("/")}as.prototype.o=function(a){H(this.c,a);bs(this);Kh(this)};function cs(a){this.c=t(a.color)?a.color instanceof pk?a.color:new U(a.color):new U(ds);this.a=t(a.fontFamily)?a.fontFamily instanceof pk?a.fontFamily:new U(a.fontFamily):new U(es);this.b=t(a.fontSize)?a.fontSize instanceof pk?a.fontSize:new U(a.fontSize):new U(fs);this.e=a.text instanceof pk?a.text:new U(a.text);this.d=t(a.opacity)?a.opacity instanceof pk?a.opacity:new U(a.opacity):new U(gs)}F(cs,Fl); +cs.prototype.eb=function(a){var b;a instanceof N&&(b=a,b.u());a=Wk(this.c,b);var c=Wk(this.a,b),d=Number(Wk(this.b,b)),e=Wk(this.e,b);b=Number(Wk(this.d,b));return new Yl({color:a,fontFamily:c,fontSize:d,text:e,opacity:b})};var ds="#000",es="sans-serif",fs=10,gs=1;function hs(a){null!=a&&(a.html=a.html,a.tileRanges=a.tileRanges);cb.call(this,a)}F(hs,cb);C("ol.Attribution",hs);C("ol.Collection",M);M.prototype.clear=M.prototype.clear;M.prototype.extend=M.prototype.Of;M.prototype.forEach=M.prototype.forEach;M.prototype.getArray=M.prototype.Pf;M.prototype.getAt=M.prototype.Ne;M.prototype.getLength=M.prototype.Cc;M.prototype.insertAt=M.prototype.Ic;M.prototype.pop=M.prototype.pop;M.prototype.push=M.prototype.push;M.prototype.remove=M.prototype.remove; +M.prototype.removeAt=M.prototype.Ad;M.prototype.setAt=M.prototype.fg;Yc.prototype.getElement=Yc.prototype.b;function is(a){null!=a&&(a.tracking=a.tracking);cd.call(this,a)}F(is,cd);C("ol.DeviceOrientation",is);C("ol.DeviceOrientation.SUPPORTED",hd);C("ol.Feature",N);N.prototype.getAttributes=N.prototype.pb;N.prototype.getFeatureId=N.prototype.Se;N.prototype.getGeometry=N.prototype.u;N.prototype.set=N.prototype.set;N.prototype.setGeometry=N.prototype.ra; +function js(a){null!=a&&(a.projection=a.projection,a.tracking=a.tracking,a.trackingOptions=a.trackingOptions);P.call(this,a)}F(js,P);C("ol.Geolocation",js);C("ol.Geolocation.SUPPORTED",ne);function ks(a){null!=a&&(a.controls=a.controls,a.interactions=a.interactions,a.layers=a.layers,a.overlays=a.overlays,a.renderer=a.renderer,a.renderers=a.renderers,a.target=a.target,a.view=a.view);V.call(this,a)}F(ks,V);C("ol.Map",ks);V.prototype.addControl=V.prototype.Ge;V.prototype.addLayer=V.prototype.he; +V.prototype.addOverlay=V.prototype.He;V.prototype.beforeRender=V.prototype.Ga;V.prototype.getControls=V.prototype.Re;V.prototype.getFeatureInfo=V.prototype.Te;V.prototype.getFeatures=V.prototype.Sd;V.prototype.getInteractions=V.prototype.Ue;V.prototype.getLayers=V.prototype.lb;V.prototype.getOverlays=V.prototype.We;V.prototype.getRenderer=V.prototype.Xe;V.prototype.removeControl=V.prototype.Zf;V.prototype.removeLayer=V.prototype.qe;V.prototype.removeOverlay=V.prototype.ag;V.prototype.updateSize=V.prototype.ma; +Nh.prototype.getCoordinate=Nh.prototype.d;Nh.prototype.getPixel=Nh.prototype.e;Nh.prototype.preventDefault=Nh.prototype.U;Nh.prototype.stopPropagation=Nh.prototype.sb;C("ol.Object",L);L.prototype.bindTo=L.prototype.Ie;L.prototype.get=L.prototype.get;L.prototype.notify=L.prototype.ge;L.prototype.on=L.prototype.Vf;L.prototype.once=L.prototype.Xf;L.prototype.set=L.prototype.set;L.prototype.setValues=L.prototype.dc;L.prototype.un=L.prototype.lg;L.prototype.unByKey=L.prototype.mg;L.prototype.unbind=L.prototype.Dd; +L.prototype.unbindAll=L.prototype.ng;function ls(a){null!=a&&(a.element=a.element,a.position=a.position,a.positioning=a.positioning);Ao.call(this,a)}F(ls,Ao);C("ol.Overlay",ls);C("ol.OverlayPositioning",zo);zo.BOTTOM_LEFT="bottom-left";zo.BOTTOM_RIGHT="bottom-right";zo.TOP_LEFT="top-left";zo.TOP_RIGHT="top-right";function ms(a){null!=a&&(a.axisOrientation=a.axisOrientation,a.code=a.code,a.extent=a.extent,a.global=a.global,a.units=a.units);Md.call(this,a)}F(ms,Md);C("ol.Projection",ms); +Md.prototype.getAxisOrientation=Md.prototype.Oe;Md.prototype.getCode=Md.prototype.Qe;Md.prototype.getExtent=Md.prototype.ba;Md.prototype.getMetersPerUnit=Md.prototype.Tb;Md.prototype.getPointResolution=Md.prototype.b;Md.prototype.getUnits=Md.prototype.Sf;Md.prototype.isGlobal=Md.prototype.If;C("ol.ProjectionUnits",Kd);Kd.DEGREES="degrees";Kd.FEET="ft";Kd.METERS="m";C("ol.RendererHint",wo);wo.CANVAS="canvas";wo.DOM="dom";wo.WEBGL="webgl";C("ol.RendererHints",vo);vo.createFromQueryData=vo.Ke; +function ns(a){null!=a&&(a.center=a.center,a.maxResolution=a.maxResolution,a.maxZoom=a.maxZoom,a.projection=a.projection,a.resolution=a.resolution,a.resolutions=a.resolutions,a.rotation=a.rotation,a.zoom=a.zoom,a.zoomFactor=a.zoomFactor);T.call(this,a)}F(ns,T);C("ol.View2D",ns);T.prototype.calculateExtent=T.prototype.i;T.prototype.constrainResolution=T.prototype.Ha;T.prototype.constrainRotation=T.prototype.qc;T.prototype.fitExtent=T.prototype.jd;T.prototype.getView2D=T.prototype.O; +T.prototype.getZoom=T.prototype.$e;T.prototype.setZoom=T.prototype.o;C("ol.animation.bounce",function(a){null!=a&&(a.duration=a.duration,a.easing=a.easing,a.resolution=a.resolution,a.start=a.start);return si(a)});C("ol.animation.pan",function(a){null!=a&&(a.duration=a.duration,a.easing=a.easing,a.source=a.source,a.start=a.start);return ti(a)});C("ol.animation.rotate",function(a){null!=a&&(a.duration=a.duration,a.easing=a.easing,a.rotation=a.rotation,a.start=a.start);return ui(a)}); +C("ol.animation.zoom",function(a){null!=a&&(a.duration=a.duration,a.easing=a.easing,a.resolution=a.resolution,a.start=a.start);return vi(a)});C("ol.canvas.SUPPORTED",Dm);function os(a){null!=a&&(a.className=a.className,a.target=a.target);mi.call(this,a)}F(os,mi);C("ol.control.Attribution",os);mi.prototype.setMap=mi.prototype.setMap;function ps(a){null!=a&&(a.element=a.element,a.target=a.target);li.call(this,a)}F(ps,li);C("ol.control.Control",ps);li.prototype.getMap=li.prototype.W; +li.prototype.setMap=li.prototype.setMap;function qs(a){null!=a&&(a.className=a.className,a.keys=a.keys,a.target=a.target);Io.call(this,a)}F(qs,Io);C("ol.control.FullScreen",qs);function rs(a){null!=a&&(a.className=a.className,a.target=a.target);ni.call(this,a)}F(rs,ni);C("ol.control.Logo",rs);ni.prototype.setMap=ni.prototype.setMap; +function ss(a){null!=a&&(a.className=a.className,a.coordinateFormat=a.coordinateFormat,a.projection=a.projection,a.target=a.target,a.undefinedHTML=a.undefinedHTML);Jo.call(this,a)}F(ss,Jo);C("ol.control.MousePosition",ss);Jo.prototype.setMap=Jo.prototype.setMap;function ts(a){null!=a&&(a.className=a.className,a.minWidth=a.minWidth,a.target=a.target,a.units=a.units);Mo.call(this,a)}F(ts,Mo);C("ol.control.ScaleLine",ts);Mo.prototype.setMap=Mo.prototype.setMap;C("ol.control.ScaleLineUnits",Lo); +Lo.DEGREES="degrees";Lo.IMPERIAL="imperial";Lo.METRIC="metric";Lo.NAUTICAL="nautical";Lo.US="us";function us(a){null!=a&&(a.className=a.className,a.delta=a.delta,a.target=a.target);wi.call(this,a)}F(us,wi);C("ol.control.Zoom",us);wi.prototype.setMap=wi.prototype.setMap;function vs(a){null!=a&&(a.className=a.className,a.maxResolution=a.maxResolution,a.minResolution=a.minResolution);ap.call(this,a)}F(vs,ap);C("ol.control.ZoomSlider",vs); +function ws(a){null!=a&&(a.className=a.className,a.extent=a.extent,a.target=a.target);cp.call(this,a)}F(ws,cp);C("ol.control.ZoomToExtent",ws); +C("ol.control.defaults",function(a){if(null!=a){a.attribution=a.attribution;var b=a.attributionOptions;null!=a.attributionOptions&&(b.className=a.attributionOptions.className,b.target=a.attributionOptions.target);a.attributionOptions=b;a.logo=a.logo;b=a.logoOptions;null!=a.logoOptions&&(b.className=a.logoOptions.className,b.target=a.logoOptions.target);a.logoOptions=b;a.zoom=a.zoom;b=a.zoomOptions;null!=a.zoomOptions&&(b.className=a.zoomOptions.className,b.delta=a.zoomOptions.delta,b.target=a.zoomOptions.target); +a.zoomOptions=b}return xi(a)});C("ol.coordinate.createStringXY",function(a){return function(b){return nd(b,a)}});C("ol.coordinate.fromProjectedArray",od);C("ol.coordinate.toStringHDMS",function(a){return t(a)?jd(a[1],"NS")+" "+jd(a[0],"EW"):""});C("ol.coordinate.toStringXY",nd);C("ol.dom.Input",dp);C("ol.easing.bounce",function(a){a<1/2.75?a*=7.5625*a:a<2/2.75?(a-=1.5/2.75,a=7.5625*a*a+0.75):a<2.5/2.75?(a-=2.25/2.75,a=7.5625*a*a+0.9375):(a-=2.625/2.75,a=7.5625*a*a+0.984375);return a}); +C("ol.easing.easeIn",function(a){return a*a*a});C("ol.easing.easeOut",oi);C("ol.easing.elastic",function(a){return Math.pow(2,-10*a)*Math.sin((a-0.075)*2*Math.PI/0.3)+1});C("ol.easing.inAndOut",pi);C("ol.easing.linear",qi);C("ol.easing.upAndDown",ri);C("ol.expr.parse",function(a){return Sk(a)});C("ol.expr.register",function(a,b){Xk[a]=b});C("ol.extent.boundingExtent",pd);C("ol.extent.containsCoordinate",td);C("ol.extent.containsExtent",ud);C("ol.extent.equals",vd);C("ol.extent.extend",wd); +C("ol.extent.getBottomLeft",xd);C("ol.extent.getBottomRight",function(a){return[a[1],a[2]]});C("ol.extent.getCenter",yd);C("ol.extent.getHeight",function(a){return a[3]-a[2]});C("ol.extent.getSize",function(a){return[a[1]-a[0],a[3]-a[2]]});C("ol.extent.getTopLeft",Ad);C("ol.extent.getTopRight",function(a){return[a[1],a[3]]});C("ol.extent.getWidth",function(a){return a[1]-a[0]});C("ol.extent.intersects",Bd);C("ol.extent.isEmpty",function(a){return a[1]f&&(f=0);var f=c.styles[f].identifier,g={};Ha(c.dimensions,function(a){var b=a.identifier,c=a["default"];t(c)||(c=a.values[0]);g[b]=c});var h=a.contents.tileMatrixSets[d],l=Zr(h),h=ke(h.supportedCRS),n=a.operationsMetadata.GetTile.dcp.http.get,q,r;switch(lc(n[0].constraints.GetEncoding.allowedValues)[0]){case "REST":case "RESTful":r= +"REST";q=c.resourceUrls.tile[e];break;case "KVP":r=$r,q=[],Ha(n,function(a){a.constraints.GetEncoding.allowedValues.hasOwnProperty($r)&&q.push(a.url)})}return{urls:q,layer:b,matrixSet:d,format:e,projection:h,requestEncoding:r,tileGrid:l,style:f,dimensions:g}});as.prototype.getDimensions=as.prototype.i;as.prototype.updateDimensions=as.prototype.o; +function Ns(a){null!=a&&(a.attributions=a.attributions,a.crossOrigin=a.crossOrigin,a.extent=a.extent,a.logo=a.logo,a.maxZoom=a.maxZoom,a.minZoom=a.minZoom,a.projection=a.projection,a.tileUrlFunction=a.tileUrlFunction,a.url=a.url,a.urls=a.urls);ur.call(this,a)}F(Ns,ur);C("ol.source.XYZ",Ns);ur.prototype.setUrl=ur.prototype.c;function Os(a){null!=a&&(a.color=a.color,a.opacity=a.opacity);Gl.call(this,a)}F(Os,Gl);C("ol.style.Fill",Os); +function Ps(a){null!=a&&(a.height=a.height,a.opacity=a.opacity,a.rotation=a.rotation,a.url=a.url,a.width=a.width,a.xOffset=a.xOffset,a.yOffset=a.yOffset);aq.call(this,a)}F(Ps,aq);C("ol.style.Icon",Ps);function Qs(a){null!=a&&(a.filter=a.filter,a.symbolizers=a.symbolizers);Jl.call(this,a)}F(Qs,Jl);C("ol.style.Rule",Qs);function Rs(a){null!=a&&(a.fill=a.fill,a.size=a.size,a.stroke=a.stroke,a.type=a.type);Sl.call(this,a)}F(Rs,Sl);C("ol.style.Shape",Rs);C("ol.style.ShapeType",Ll);Ll.CIRCLE="circle"; +function Ss(a){null!=a&&(a.color=a.color,a.opacity=a.opacity,a.width=a.width);Ol.call(this,a)}F(Ss,Ol);C("ol.style.Stroke",Ss);function Ts(a){null!=a&&(a.rules=a.rules,a.symbolizers=a.symbolizers);Vl.call(this,a)}F(Ts,Vl);C("ol.style.Style",Ts);function Us(a){null!=a&&(a.color=a.color,a.fontFamily=a.fontFamily,a.fontSize=a.fontSize,a.opacity=a.opacity,a.text=a.text);cs.call(this,a)}F(Us,cs);C("ol.style.Text",Us); +function Vs(a){null!=a&&(a.minZoom=a.minZoom,a.origin=a.origin,a.origins=a.origins,a.resolutions=a.resolutions,a.tileSize=a.tileSize,a.tileSizes=a.tileSizes);mj.call(this,a)}F(Vs,mj);C("ol.tilegrid.TileGrid",Vs);mj.prototype.getMinZoom=mj.prototype.Ve;mj.prototype.getOrigin=mj.prototype.Ib;mj.prototype.getResolutions=mj.prototype.Ub;mj.prototype.getTileSize=mj.prototype.Aa; +function Ws(a){null!=a&&(a.matrixIds=a.matrixIds,a.origin=a.origin,a.origins=a.origins,a.resolutions=a.resolutions,a.tileSize=a.tileSize,a.tileSizes=a.tileSizes);Yr.call(this,a)}F(Ws,Yr);C("ol.tilegrid.WMTS",Ws);Yr.prototype.getMatrixIds=Yr.prototype.g;function Xs(a){null!=a&&(a.maxZoom=a.maxZoom);lr.call(this,a)}F(Xs,lr);C("ol.tilegrid.XYZ",Xs);C("ol.webgl.SUPPORTED",mn);})(); diff --git a/edit/closure-library/closure/goog/a11y/aria/announcer.js b/edit/closure-library/closure/goog/a11y/aria/announcer.js new file mode 100644 index 0000000000..0ffaf33f33 --- /dev/null +++ b/edit/closure-library/closure/goog/a11y/aria/announcer.js @@ -0,0 +1,108 @@ +// Copyright 2007 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +/** + * @fileoverview Announcer that allows messages to be spoken by assistive + * technologies. + */ + +goog.provide('goog.a11y.aria.Announcer'); + +goog.require('goog.Disposable'); +goog.require('goog.a11y.aria'); +goog.require('goog.a11y.aria.LivePriority'); +goog.require('goog.a11y.aria.State'); +goog.require('goog.dom'); +goog.require('goog.object'); + + + +/** + * Class that allows messages to be spoken by assistive technologies that the + * user may have active. + * + * @param {goog.dom.DomHelper=} opt_domHelper DOM helper. + * @constructor + * @extends {goog.Disposable} + */ +goog.a11y.aria.Announcer = function(opt_domHelper) { + goog.base(this); + + /** + * @type {goog.dom.DomHelper} + * @private + */ + this.domHelper_ = opt_domHelper || goog.dom.getDomHelper(); + + /** + * Map of priority to live region elements to use for communicating updates. + * Elements are created on demand. + * @type {Object.} + * @private + */ + this.liveRegions_ = {}; +}; +goog.inherits(goog.a11y.aria.Announcer, goog.Disposable); + + +/** @override */ +goog.a11y.aria.Announcer.prototype.disposeInternal = function() { + goog.object.forEach( + this.liveRegions_, this.domHelper_.removeNode, this.domHelper_); + this.liveRegions_ = null; + this.domHelper_ = null; + goog.base(this, 'disposeInternal'); +}; + + +/** + * Announce a message to be read by any assistive technologies the user may + * have active. + * @param {string} message The message to announce to screen readers. + * @param {goog.a11y.aria.LivePriority=} opt_priority The priority of the + * message. Defaults to POLITE. + */ +goog.a11y.aria.Announcer.prototype.say = function(message, opt_priority) { + goog.dom.setTextContent(this.getLiveRegion_( + opt_priority || goog.a11y.aria.LivePriority.POLITE), message); +}; + + +/** + * Returns an aria-live region that can be used to communicate announcements. + * @param {!goog.a11y.aria.LivePriority} priority The required priority. + * @return {Element} A live region of the requested priority. + * @private + */ +goog.a11y.aria.Announcer.prototype.getLiveRegion_ = function(priority) { + if (this.liveRegions_[priority]) { + return this.liveRegions_[priority]; + } + var liveRegion; + liveRegion = this.domHelper_.createElement('div'); + // Note that IE has a habit of declaring things that aren't display:none as + // invisible to third-party tools like JAWs, so we can't just use height:0. + liveRegion.style.position = 'absolute'; + liveRegion.style.top = '-1000px'; + liveRegion.style.height = '1px'; + liveRegion.style.overflow = 'hidden'; + goog.a11y.aria.setState(liveRegion, goog.a11y.aria.State.LIVE, + priority); + goog.a11y.aria.setState(liveRegion, goog.a11y.aria.State.ATOMIC, + 'true'); + this.domHelper_.getDocument().body.appendChild(liveRegion); + this.liveRegions_[priority] = liveRegion; + return liveRegion; +}; diff --git a/edit/closure-library/closure/goog/a11y/aria/aria.js b/edit/closure-library/closure/goog/a11y/aria/aria.js new file mode 100644 index 0000000000..abc261f6bf --- /dev/null +++ b/edit/closure-library/closure/goog/a11y/aria/aria.js @@ -0,0 +1,362 @@ +// Copyright 2007 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +/** + * @fileoverview Utilities for adding, removing and setting ARIA roles and + * states as defined by W3C ARIA standard: http://www.w3.org/TR/wai-aria/ + * All modern browsers have some form of ARIA support, so no browser checks are + * performed when adding ARIA to components. + * + */ + +goog.provide('goog.a11y.aria'); + +goog.require('goog.a11y.aria.Role'); +goog.require('goog.a11y.aria.State'); +goog.require('goog.a11y.aria.datatables'); +goog.require('goog.array'); +goog.require('goog.asserts'); +goog.require('goog.dom'); +goog.require('goog.dom.TagName'); +goog.require('goog.object'); +goog.require('goog.string'); + + +/** + * ARIA states/properties prefix. + * @private + */ +goog.a11y.aria.ARIA_PREFIX_ = 'aria-'; + + +/** + * ARIA role attribute. + * @private + */ +goog.a11y.aria.ROLE_ATTRIBUTE_ = 'role'; + + +/** + * A list of tag names for which we don't need to set ARIA role and states + * because they have well supported semantics for screen readers or because + * they don't contain content to be made accessible. + * @private + */ +goog.a11y.aria.TAGS_WITH_ASSUMED_ROLES_ = [ + goog.dom.TagName.A, + goog.dom.TagName.AREA, + goog.dom.TagName.BUTTON, + goog.dom.TagName.HEAD, + goog.dom.TagName.INPUT, + goog.dom.TagName.LINK, + goog.dom.TagName.MENU, + goog.dom.TagName.META, + goog.dom.TagName.OPTGROUP, + goog.dom.TagName.OPTION, + goog.dom.TagName.PROGRESS, + goog.dom.TagName.STYLE, + goog.dom.TagName.SELECT, + goog.dom.TagName.SOURCE, + goog.dom.TagName.TEXTAREA, + goog.dom.TagName.TITLE, + goog.dom.TagName.TRACK +]; + + +/** + * Sets the role of an element. If the roleName is + * empty string or null, the role for the element is removed. + * We encourage clients to call the goog.a11y.aria.removeRole + * method instead of setting null and empty string values. + * Special handling for this case is added to ensure + * backword compatibility with existing code. + * + * @param {!Element} element DOM node to set role of. + * @param {!goog.a11y.aria.Role|string} roleName role name(s). + */ +goog.a11y.aria.setRole = function(element, roleName) { + if (!roleName) { + // Setting the ARIA role to empty string is not allowed + // by the ARIA standard. + goog.a11y.aria.removeRole(element); + } else { + if (goog.asserts.ENABLE_ASSERTS) { + goog.asserts.assert(goog.object.containsValue( + goog.a11y.aria.Role, roleName), 'No such ARIA role ' + roleName); + } + element.setAttribute(goog.a11y.aria.ROLE_ATTRIBUTE_, roleName); + } +}; + + +/** + * Gets role of an element. + * @param {!Element} element DOM element to get role of. + * @return {?goog.a11y.aria.Role} ARIA Role name. + */ +goog.a11y.aria.getRole = function(element) { + var role = element.getAttribute(goog.a11y.aria.ROLE_ATTRIBUTE_); + return /** @type {goog.a11y.aria.Role} */ (role) || null; +}; + + +/** + * Removes role of an element. + * @param {!Element} element DOM element to remove the role from. + */ +goog.a11y.aria.removeRole = function(element) { + element.removeAttribute(goog.a11y.aria.ROLE_ATTRIBUTE_); +}; + + +/** + * Sets the state or property of an element. + * @param {!Element} element DOM node where we set state. + * @param {!(goog.a11y.aria.State|string)} stateName State attribute being set. + * Automatically adds prefix 'aria-' to the state name if the attribute is + * not an extra attribute. + * @param {string|boolean|number|!goog.array.ArrayLike.} value Value + * for the state attribute. + */ +goog.a11y.aria.setState = function(element, stateName, value) { + if (goog.isArrayLike(value)) { + var array = /** @type {!goog.array.ArrayLike.} */ (value); + value = array.join(' '); + } + var attrStateName = goog.a11y.aria.getAriaAttributeName_(stateName); + if (value === '' || value == undefined) { + var defaultValueMap = goog.a11y.aria.datatables.getDefaultValuesMap(); + // Work around for browsers that don't properly support ARIA. + // According to the ARIA W3C standard, user agents should allow + // setting empty value which results in setting the default value + // for the ARIA state if such exists. The exact text from the ARIA W3C + // standard (http://www.w3.org/TR/wai-aria/states_and_properties): + // "When a value is indicated as the default, the user agent + // MUST follow the behavior prescribed by this value when the state or + // property is empty or undefined." + // The defaultValueMap contains the default values for the ARIA states + // and has as a key the goog.a11y.aria.State constant for the state. + if (stateName in defaultValueMap) { + element.setAttribute(attrStateName, defaultValueMap[stateName]); + } else { + element.removeAttribute(attrStateName); + } + } else { + element.setAttribute(attrStateName, value); + } +}; + + +/** + * Remove the state or property for the element. + * @param {!Element} element DOM node where we set state. + * @param {!goog.a11y.aria.State} stateName State name. + */ +goog.a11y.aria.removeState = function(element, stateName) { + element.removeAttribute(goog.a11y.aria.getAriaAttributeName_(stateName)); +}; + + +/** + * Gets value of specified state or property. + * @param {!Element} element DOM node to get state from. + * @param {!goog.a11y.aria.State|string} stateName State name. + * @return {string} Value of the state attribute. + */ +goog.a11y.aria.getState = function(element, stateName) { + // TODO(user): return properly typed value result -- + // boolean, number, string, null. We should be able to chain + // getState(...) and setState(...) methods. + + var attr = + /** @type {string|number|boolean} */ (element.getAttribute( + goog.a11y.aria.getAriaAttributeName_(stateName))); + var isNullOrUndefined = attr == null || attr == undefined; + return isNullOrUndefined ? '' : String(attr); +}; + + +/** + * Returns the activedescendant element for the input element by + * using the activedescendant ARIA property of the given element. + * @param {!Element} element DOM node to get activedescendant + * element for. + * @return {?Element} DOM node of the activedescendant, if found. + */ +goog.a11y.aria.getActiveDescendant = function(element) { + var id = goog.a11y.aria.getState( + element, goog.a11y.aria.State.ACTIVEDESCENDANT); + return goog.dom.getOwnerDocument(element).getElementById(id); +}; + + +/** + * Sets the activedescendant ARIA property value for an element. + * If the activeElement is not null, it should have an id set. + * @param {!Element} element DOM node to set activedescendant ARIA property to. + * @param {?Element} activeElement DOM node being set as activedescendant. + */ +goog.a11y.aria.setActiveDescendant = function(element, activeElement) { + var id = ''; + if (activeElement) { + id = activeElement.id; + goog.asserts.assert(id, 'The active element should have an id.'); + } + + goog.a11y.aria.setState(element, goog.a11y.aria.State.ACTIVEDESCENDANT, id); +}; + + +/** + * Gets the label of the given element. + * @param {!Element} element DOM node to get label from. + * @return {string} label The label. + */ +goog.a11y.aria.getLabel = function(element) { + return goog.a11y.aria.getState(element, goog.a11y.aria.State.LABEL); +}; + + +/** + * Sets the label of the given element. + * @param {!Element} element DOM node to set label to. + * @param {string} label The label to set. + */ +goog.a11y.aria.setLabel = function(element, label) { + goog.a11y.aria.setState(element, goog.a11y.aria.State.LABEL, label); +}; + + +/** + * Asserts that the element has a role set if it's not an HTML element whose + * semantics is well supported by most screen readers. + * Only to be used internally by the ARIA library in goog.a11y.aria.*. + * @param {!Element} element The element to assert an ARIA role set. + * @param {!goog.array.ArrayLike.} allowedRoles The child roles of + * the roles. + */ +goog.a11y.aria.assertRoleIsSetInternalUtil = function(element, allowedRoles) { + if (goog.array.contains(goog.a11y.aria.TAGS_WITH_ASSUMED_ROLES_, + element.tagName)) { + return; + } + var elementRole = /** @type {string}*/ (goog.a11y.aria.getRole(element)); + goog.asserts.assert(elementRole != null, + 'The element ARIA role cannot be null.'); + + goog.asserts.assert(goog.array.contains(allowedRoles, elementRole), + 'Non existing or incorrect role set for element.' + + 'The role set is "' + elementRole + + '". The role should be any of "' + allowedRoles + + '". Check the ARIA specification for more details ' + + 'http://www.w3.org/TR/wai-aria/roles.'); +}; + + +/** + * Gets the boolean value of an ARIA state/property. + * Only to be used internally by the ARIA library in goog.a11y.aria.*. + * @param {!Element} element The element to get the ARIA state for. + * @param {!goog.a11y.aria.State|string} stateName the ARIA state name. + * @return {?boolean} Boolean value for the ARIA state value or null if + * the state value is not 'true' or 'false'. + */ +goog.a11y.aria.getBooleanStateInternalUtil = function(element, stateName) { + var stringValue = goog.a11y.aria.getState(element, stateName); + if (stringValue == 'true') { + return true; + } + if (stringValue == 'false') { + return false; + } + return null; +}; + + +/** + * Gets the number value of an ARIA state/property. + * Only to be used internally by the ARIA library in goog.a11y.aria.*. + * @param {!Element} element The element to get the ARIA state for. + * @param {!goog.a11y.aria.State|string} stateName the ARIA state name. + * @return {?number} Number value for the ARIA state value or null if + * the state value is not a number. + */ +goog.a11y.aria.getNumberStateInternalUtil = function(element, stateName) { + var stringValue = goog.a11y.aria.getState(element, stateName); + if (goog.string.isNumeric(stringValue)) { + return goog.string.toNumber(stringValue); + } + return null; +}; + + +/** + * Gets array of strings value of the specified state or + * property for the element. + * Only to be used internally by the ARIA library in goog.a11y.aria.*. + * @param {!Element} element DOM node to get state from. + * @param {!goog.a11y.aria.State} stateName State name. + * @return {!goog.array.ArrayLike.} string Array + * value of the state attribute. + */ +goog.a11y.aria.getStringArrayStateInternalUtil = function(element, stateName) { + var attrValue = element.getAttribute( + goog.a11y.aria.getAriaAttributeName_(stateName)); + return goog.a11y.aria.splitStringOnWhitespace_(attrValue); +}; + + +/** + * Gets the string value of an ARIA state/property. + * Only to be used internally by the ARIA library in goog.a11y.aria.*. + * @param {!Element} element The element to get the ARIA state for. + * @param {!goog.a11y.aria.State|string} stateName the ARIA state name. + * @return {?string} String value for the ARIA state value or null if + * the state value is empty string. + */ +goog.a11y.aria.getStringStateInternalUtil = function(element, stateName) { + var stringValue = goog.a11y.aria.getState(element, stateName); + return stringValue || null; +}; + + +/** + * Splits the input stringValue on whitespace. + * @param {string} stringValue The value of the string to split. + * @return {!goog.array.ArrayLike.} string Array + * value as result of the split. + * @private + */ +goog.a11y.aria.splitStringOnWhitespace_ = function(stringValue) { + return stringValue ? stringValue.split(/\s+/) : []; +}; + + +/** + * Adds the 'aria-' prefix to ariaName. + * @param {string} ariaName ARIA state/property name. + * @private + * @return {string} The ARIA attribute name with added 'aria-' prefix. + * @throws {Error} If no such attribute exists. + */ +goog.a11y.aria.getAriaAttributeName_ = function(ariaName) { + if (goog.asserts.ENABLE_ASSERTS) { + goog.asserts.assert(ariaName, 'ARIA attribute cannot be empty.'); + goog.asserts.assert(goog.object.containsValue( + goog.a11y.aria.State, ariaName), + 'No such ARIA attribute ' + ariaName); + } + return goog.a11y.aria.ARIA_PREFIX_ + ariaName; +}; diff --git a/edit/closure-library/closure/goog/a11y/aria/attributes.js b/edit/closure-library/closure/goog/a11y/aria/attributes.js new file mode 100644 index 0000000000..f4e0a3d074 --- /dev/null +++ b/edit/closure-library/closure/goog/a11y/aria/attributes.js @@ -0,0 +1,389 @@ +// Copyright 2013 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +/** + * @fileoverview The file contains generated enumerations for ARIA states + * and properties as defined by W3C ARIA standard: + * http://www.w3.org/TR/wai-aria/. + * + * This is auto-generated code. Do not manually edit! For more details + * about how to edit it via the generator check go/closure-ariagen. + */ + +goog.provide('goog.a11y.aria.AutoCompleteValues'); +goog.provide('goog.a11y.aria.CheckedValues'); +goog.provide('goog.a11y.aria.DropEffectValues'); +goog.provide('goog.a11y.aria.ExpandedValues'); +goog.provide('goog.a11y.aria.GrabbedValues'); +goog.provide('goog.a11y.aria.InvalidValues'); +goog.provide('goog.a11y.aria.LivePriority'); +goog.provide('goog.a11y.aria.OrientationValues'); +goog.provide('goog.a11y.aria.PressedValues'); +goog.provide('goog.a11y.aria.RelevantValues'); +goog.provide('goog.a11y.aria.SelectedValues'); +goog.provide('goog.a11y.aria.SortValues'); +goog.provide('goog.a11y.aria.State'); + + +/** + * ARIA states and properties. + * @enum {string} + */ +goog.a11y.aria.State = { + // ARIA property for setting the currently active descendant of an element, + // for example the selected item in a list box. Value: ID of an element. + ACTIVEDESCENDANT: 'activedescendant', + + // ARIA property that, if true, indicates that all of a changed region should + // be presented, instead of only parts. Value: one of {true, false}. + ATOMIC: 'atomic', + + // ARIA property to specify that input completion is provided. Value: + // one of {'inline', 'list', 'both', 'none'}. + AUTOCOMPLETE: 'autocomplete', + + // ARIA state to indicate that an element and its subtree are being updated. + // Value: one of {true, false}. + BUSY: 'busy', + + // ARIA state for a checked item. Value: one of {'true', 'false', 'mixed', + // undefined}. + CHECKED: 'checked', + + // ARIA property that identifies the element or elements whose contents or + // presence are controlled by this element. + // Value: space-separated IDs of other elements. + CONTROLS: 'controls', + + // ARIA property that identifies the element or elements that describe + // this element. Value: space-separated IDs of other elements. + DESCRIBEDBY: 'describedby', + + // ARIA state for a disabled item. Value: one of {true, false}. + DISABLED: 'disabled', + + // ARIA property that indicates what functions can be performed when a + // dragged object is released on the drop target. Value: one of + // {'copy', 'move', 'link', 'execute', 'popup', 'none'}. + DROPEFFECT: 'dropeffect', + + // ARIA state for setting whether the element like a tree node is expanded. + // Value: one of {true, false, undefined}. + EXPANDED: 'expanded', + + // ARIA property that identifies the next element (or elements) in the + // recommended reading order of content. Value: space-separated ids of + // elements to flow to. + FLOWTO: 'flowto', + + // ARIA state that indicates an element's "grabbed" state in drag-and-drop. + // Value: one of {true, false, undefined}. + GRABBED: 'grabbed', + + // ARIA property indicating whether the element has a popup. + // Value: one of {true, false}. + HASPOPUP: 'haspopup', + + // ARIA state indicating that the element is not visible or perceivable + // to any user. Value: one of {true, false}. + HIDDEN: 'hidden', + + // ARIA state indicating that the entered value does not conform. Value: + // one of {false, true, 'grammar', 'spelling'} + INVALID: 'invalid', + + // ARIA property that provides a label to override any other text, value, or + // contents used to describe this element. Value: string. + LABEL: 'label', + + // ARIA property for setting the element which labels another element. + // Value: space-separated IDs of elements. + LABELLEDBY: 'labelledby', + + // ARIA property for setting the level of an element in the hierarchy. + // Value: integer. + LEVEL: 'level', + + // ARIA property indicating that an element will be updated, and + // describes the types of updates the user agents, assistive technologies, + // and user can expect from the live region. Value: one of {'off', 'polite', + // 'assertive'}. + LIVE: 'live', + + // ARIA property indicating whether a text box can accept multiline input. + // Value: one of {true, false}. + MULTILINE: 'multiline', + + // ARIA property indicating if the user may select more than one item. + // Value: one of {true, false}. + MULTISELECTABLE: 'multiselectable', + + // ARIA property indicating if the element is horizontal or vertical. + // Value: one of {'vertical', 'horizontal'}. + ORIENTATION: 'orientation', + + // ARIA property creating a visual, functional, or contextual parent/child + // relationship when the DOM hierarchy can't be used to represent it. + // Value: Space-separated IDs of elements. + OWNS: 'owns', + + // ARIA property that defines an element's number of position in a list. + // Value: integer. + POSINSET: 'posinset', + + // ARIA state for a pressed item. + // Value: one of {true, false, undefined, 'mixed'}. + PRESSED: 'pressed', + + // ARIA property indicating that an element is not editable. + // Value: one of {true, false}. + READONLY: 'readonly', + + // ARIA property indicating that change notifications within this subtree + // of a live region should be announced. Value: one of {'additions', + // 'removals', 'text', 'all', 'additions text'}. + RELEVANT: 'relevant', + + // ARIA property indicating that user input is required on this element + // before a form may be submitted. Value: one of {true, false}. + REQUIRED: 'required', + + // ARIA state for setting the currently selected item in the list. + // Value: one of {true, false, undefined}. + SELECTED: 'selected', + + // ARIA property defining the number of items in a list. Value: integer. + SETSIZE: 'setsize', + + // ARIA property indicating if items are sorted. Value: one of {'ascending', + // 'descending', 'none', 'other'}. + SORT: 'sort', + + // ARIA property for slider maximum value. Value: number. + VALUEMAX: 'valuemax', + + // ARIA property for slider minimum value. Value: number. + VALUEMIN: 'valuemin', + + // ARIA property for slider active value. Value: number. + VALUENOW: 'valuenow', + + // ARIA property for slider active value represented as text. + // Value: string. + VALUETEXT: 'valuetext' +}; + + +/** + * ARIA state values for AutoCompleteValues. + * @enum {string} + */ +goog.a11y.aria.AutoCompleteValues = { + // The system provides text after the caret as a suggestion + // for how to complete the field. + INLINE: 'inline', + // A list of choices appears from which the user can choose, + // but the edit box retains focus. + LIST: 'list', + // A list of choices appears and the currently selected suggestion + // also appears inline. + BOTH: 'both', + // No input completion suggestions are provided. + NONE: 'none' +}; + + +/** + * ARIA state values for DropEffectValues. + * @enum {string} + */ +goog.a11y.aria.DropEffectValues = { + // A duplicate of the source object will be dropped into the target. + COPY: 'copy', + // The source object will be removed from its current location + // and dropped into the target. + MOVE: 'move', + // A reference or shortcut to the dragged object + // will be created in the target object. + LINK: 'link', + // A function supported by the drop target is + // executed, using the drag source as an input. + EXECUTE: 'execute', + // There is a popup menu or dialog that allows the user to choose + // one of the drag operations (copy, move, link, execute) and any other + // drag functionality, such as cancel. + POPUP: 'popup', + // No operation can be performed; effectively + // cancels the drag operation if an attempt is made to drop on this object. + NONE: 'none' +}; + + +/** + * ARIA state values for LivePriority. + * @enum {string} + */ +goog.a11y.aria.LivePriority = { + // Updates to the region will not be presented to the user + // unless the assitive technology is currently focused on that region. + OFF: 'off', + // (Background change) Assistive technologies SHOULD announce + // updates at the next graceful opportunity, such as at the end of + // speaking the current sentence or when the user pauses typing. + POLITE: 'polite', + // This information has the highest priority and assistive + // technologies SHOULD notify the user immediately. + // Because an interruption may disorient users or cause them to not complete + // their current task, authors SHOULD NOT use the assertive value unless the + // interruption is imperative. + ASSERTIVE: 'assertive' +}; + + +/** + * ARIA state values for OrientationValues. + * @enum {string} + */ +goog.a11y.aria.OrientationValues = { + // The element is oriented vertically. + VERTICAL: 'vertical', + // The element is oriented horizontally. + HORIZONTAL: 'horizontal' +}; + + +/** + * ARIA state values for RelevantValues. + * @enum {string} + */ +goog.a11y.aria.RelevantValues = { + // Element nodes are added to the DOM within the live region. + ADDITIONS: 'additions', + // Text or element nodes within the live region are removed from the DOM. + REMOVALS: 'removals', + // Text is added to any DOM descendant nodes of the live region. + TEXT: 'text', + // Equivalent to the combination of all values, "additions removals text". + ALL: 'all' +}; + + +/** + * ARIA state values for SortValues. + * @enum {string} + */ +goog.a11y.aria.SortValues = { + // Items are sorted in ascending order by this column. + ASCENDING: 'ascending', + // Items are sorted in descending order by this column. + DESCENDING: 'descending', + // There is no defined sort applied to the column. + NONE: 'none', + // A sort algorithm other than ascending or descending has been applied. + OTHER: 'other' +}; + + +/** + * ARIA state values for CheckedValues. + * @enum {string} + */ +goog.a11y.aria.CheckedValues = { + // The selectable element is checked. + TRUE: 'true', + // The selectable element is not checked. + FALSE: 'false', + // Indicates a mixed mode value for a tri-state + // checkbox or menuitemcheckbox. + MIXED: 'mixed', + // The element does not support being checked. + UNDEFINED: 'undefined' +}; + + +/** + * ARIA state values for ExpandedValues. + * @enum {string} + */ +goog.a11y.aria.ExpandedValues = { + // The element, or another grouping element it controls, is expanded. + TRUE: 'true', + // The element, or another grouping element it controls, is collapsed. + FALSE: 'false', + // The element, or another grouping element + // it controls, is neither expandable nor collapsible; all its + // child elements are shown or there are no child elements. + UNDEFINED: 'undefined' +}; + + +/** + * ARIA state values for GrabbedValues. + * @enum {string} + */ +goog.a11y.aria.GrabbedValues = { + // Indicates that the element has been "grabbed" for dragging. + TRUE: 'true', + // Indicates that the element supports being dragged. + FALSE: 'false', + // Indicates that the element does not support being dragged. + UNDEFINED: 'undefined' +}; + + +/** + * ARIA state values for InvalidValues. + * @enum {string} + */ +goog.a11y.aria.InvalidValues = { + // There are no detected errors in the value. + FALSE: 'false', + // The value entered by the user has failed validation. + TRUE: 'true', + // A grammatical error was detected. + GRAMMAR: 'grammar', + // A spelling error was detected. + SPELLING: 'spelling' +}; + + +/** + * ARIA state values for PressedValues. + * @enum {string} + */ +goog.a11y.aria.PressedValues = { + // The element is pressed. + TRUE: 'true', + // The element supports being pressed but is not currently pressed. + FALSE: 'false', + // Indicates a mixed mode value for a tri-state toggle button. + MIXED: 'mixed', + // The element does not support being pressed. + UNDEFINED: 'undefined' +}; + + +/** + * ARIA state values for SelectedValues. + * @enum {string} + */ +goog.a11y.aria.SelectedValues = { + // The selectable element is selected. + TRUE: 'true', + // The selectable element is not selected. + FALSE: 'false', + // The element is not selectable. + UNDEFINED: 'undefined' +}; diff --git a/edit/closure-library/closure/goog/a11y/aria/datatables.js b/edit/closure-library/closure/goog/a11y/aria/datatables.js new file mode 100644 index 0000000000..c97df20856 --- /dev/null +++ b/edit/closure-library/closure/goog/a11y/aria/datatables.js @@ -0,0 +1,68 @@ +// Copyright 2013 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + + +/** + * @fileoverview The file contains data tables generated from the ARIA + * standard schema http://www.w3.org/TR/wai-aria/. + * + * This is auto-generated code. Do not manually edit! + */ + +goog.provide('goog.a11y.aria.datatables'); + +goog.require('goog.a11y.aria.State'); +goog.require('goog.object'); + + +/** + * A map that contains mapping between an ARIA state and the default value + * for it. Note that not all ARIA states have default values. + * + * @type {Object.} + */ +goog.a11y.aria.DefaultStateValueMap_; + + +/** + * A method that creates a map that contains mapping between an ARIA state and + * the default value for it. Note that not all ARIA states have default values. + * + * @return {Object.} + * The names for each of the notification methods. + */ +goog.a11y.aria.datatables.getDefaultValuesMap = function() { + if (!goog.a11y.aria.DefaultStateValueMap_) { + goog.a11y.aria.DefaultStateValueMap_ = goog.object.create( + goog.a11y.aria.State.ATOMIC, false, + goog.a11y.aria.State.AUTOCOMPLETE, 'none', + goog.a11y.aria.State.DROPEFFECT, 'none', + goog.a11y.aria.State.HASPOPUP, false, + goog.a11y.aria.State.LIVE, 'off', + goog.a11y.aria.State.MULTILINE, false, + goog.a11y.aria.State.MULTISELECTABLE, false, + goog.a11y.aria.State.ORIENTATION, 'vertical', + goog.a11y.aria.State.READONLY, false, + goog.a11y.aria.State.RELEVANT, 'additions text', + goog.a11y.aria.State.REQUIRED, false, + goog.a11y.aria.State.SORT, 'none', + goog.a11y.aria.State.BUSY, false, + goog.a11y.aria.State.DISABLED, false, + goog.a11y.aria.State.HIDDEN, false, + goog.a11y.aria.State.INVALID, 'false'); + } + + return goog.a11y.aria.DefaultStateValueMap_; +}; diff --git a/edit/closure-library/closure/goog/a11y/aria/roles.js b/edit/closure-library/closure/goog/a11y/aria/roles.js new file mode 100644 index 0000000000..a282cc2d86 --- /dev/null +++ b/edit/closure-library/closure/goog/a11y/aria/roles.js @@ -0,0 +1,216 @@ +// Copyright 2013 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +/** + * @fileoverview The file contains generated enumerations for ARIA roles + * as defined by W3C ARIA standard: http://www.w3.org/TR/wai-aria/. + * + * This is auto-generated code. Do not manually edit! For more details + * about how to edit it via the generator check go/closure-ariagen. + */ + +goog.provide('goog.a11y.aria.Role'); + + +/** + * ARIA role values. + * @enum {string} + */ +goog.a11y.aria.Role = { + // ARIA role for an alert element that doesn't need to be explicitly closed. + ALERT: 'alert', + + // ARIA role for an alert dialog element that takes focus and must be closed. + ALERTDIALOG: 'alertdialog', + + // ARIA role for an application that implements its own keyboard navigation. + APPLICATION: 'application', + + // ARIA role for an article. + ARTICLE: 'article', + + // ARIA role for a banner containing mostly site content, not page content. + BANNER: 'banner', + + // ARIA role for a button element. + BUTTON: 'button', + + // ARIA role for a checkbox button element; use with the CHECKED state. + CHECKBOX: 'checkbox', + + // ARIA role for a column header of a table or grid. + COLUMNHEADER: 'columnheader', + + // ARIA role for a combo box element. + COMBOBOX: 'combobox', + + // ARIA role for a supporting section of the document. + COMPLEMENTARY: 'complementary', + + // ARIA role for a large perceivable region that contains information + // about the parent document. + CONTENTINFO: 'contentinfo', + + // ARIA role for a definition of a term or concept. + DEFINITION: 'definition', + + // ARIA role for a dialog, some descendant must take initial focus. + DIALOG: 'dialog', + + // ARIA role for a directory, like a table of contents. + DIRECTORY: 'directory', + + // ARIA role for a part of a page that's a document, not a web application. + DOCUMENT: 'document', + + // ARIA role for a landmark region logically considered one form. + FORM: 'form', + + // ARIA role for an interactive control of tabular data. + GRID: 'grid', + + // ARIA role for a cell in a grid. + GRIDCELL: 'gridcell', + + // ARIA role for a group of related elements like tree item siblings. + GROUP: 'group', + + // ARIA role for a heading element. + HEADING: 'heading', + + // ARIA role for a container of elements that together comprise one image. + IMG: 'img', + + // ARIA role for a link. + LINK: 'link', + + // ARIA role for a list of non-interactive list items. + LIST: 'list', + + // ARIA role for a listbox. + LISTBOX: 'listbox', + + // ARIA role for a list item. + LISTITEM: 'listitem', + + // ARIA role for a live region where new information is added. + LOG: 'log', + + // ARIA landmark role for the main content in a document. Use only once. + MAIN: 'main', + + // ARIA role for a live region of non-essential information that changes. + MARQUEE: 'marquee', + + // ARIA role for a mathematical expression. + MATH: 'math', + + // ARIA role for a popup menu. + MENU: 'menu', + + // ARIA role for a menubar element containing menu elements. + MENUBAR: 'menubar', + + // ARIA role for menu item elements. + MENU_ITEM: 'menuitem', + + // ARIA role for a checkbox box element inside a menu. + MENU_ITEM_CHECKBOX: 'menuitemcheckbox', + + // ARIA role for a radio button element inside a menu. + MENU_ITEM_RADIO: 'menuitemradio', + + // ARIA landmark role for a collection of navigation links. + NAVIGATION: 'navigation', + + // ARIA role for a section ancillary to the main content. + NOTE: 'note', + + // ARIA role for option items that are children of combobox, listbox, menu, + // radiogroup, or tree elements. + OPTION: 'option', + + // ARIA role for ignorable cosmetic elements with no semantic significance. + PRESENTATION: 'presentation', + + // ARIA role for a progress bar element. + PROGRESSBAR: 'progressbar', + + // ARIA role for a radio button element. + RADIO: 'radio', + + // ARIA role for a group of connected radio button elements. + RADIOGROUP: 'radiogroup', + + // ARIA role for an important region of the page. + REGION: 'region', + + // ARIA role for a row of cells in a grid. + ROW: 'row', + + // ARIA role for a group of one or more rows in a grid. + ROWGROUP: 'rowgroup', + + // ARIA role for a row header of a table or grid. + ROWHEADER: 'rowheader', + + // ARIA role for a scrollbar element. + SCROLLBAR: 'scrollbar', + + // ARIA landmark role for a part of the page providing search functionality. + SEARCH: 'search', + + // ARIA role for a menu separator. + SEPARATOR: 'separator', + + // ARIA role for a slider. + SLIDER: 'slider', + + // ARIA role for a spin button. + SPINBUTTON: 'spinbutton', + + // ARIA role for a live region with advisory info less severe than an alert. + STATUS: 'status', + + // ARIA role for a tab button. + TAB: 'tab', + + // ARIA role for a tab bar (i.e. a list of tab buttons). + TAB_LIST: 'tablist', + + // ARIA role for a tab page (i.e. the element holding tab contents). + TAB_PANEL: 'tabpanel', + + // ARIA role for a textbox element. + TEXTBOX: 'textbox', + + // ARIA role for an element displaying elapsed time or time remaining. + TIMER: 'timer', + + // ARIA role for a toolbar element. + TOOLBAR: 'toolbar', + + // ARIA role for a tooltip element. + TOOLTIP: 'tooltip', + + // ARIA role for a tree. + TREE: 'tree', + + // ARIA role for a grid whose rows can be expanded and collapsed like a tree. + TREEGRID: 'treegrid', + + // ARIA role for a tree item that sometimes may be expanded or collapsed. + TREEITEM: 'treeitem' +}; diff --git a/master/closure-library/closure/goog/array/array.js b/edit/closure-library/closure/goog/array/array.js similarity index 91% rename from master/closure-library/closure/goog/array/array.js rename to edit/closure-library/closure/goog/array/array.js index 9faac38bc9..0ec1491ebb 100644 --- a/master/closure-library/closure/goog/array/array.js +++ b/edit/closure-library/closure/goog/array/array.js @@ -35,8 +35,11 @@ goog.require('goog.asserts'); * If your javascript can be loaded by a third party site and you are wary about * relying on the prototype functions, specify * "--define goog.NATIVE_ARRAY_PROTOTYPES=false" to the JSCompiler. + * + * Setting goog.TRUSTED_SITE to false will automatically set + * NATIVE_ARRAY_PROTOTYPES to false. */ -goog.NATIVE_ARRAY_PROTOTYPES = true; +goog.define('goog.NATIVE_ARRAY_PROTOTYPES', goog.TRUSTED_SITE); /** @@ -155,20 +158,15 @@ goog.array.lastIndexOf = goog.NATIVE_ARRAY_PROTOTYPES && /** - * Calls a function for each element in an array. - * + * Calls a function for each element in an array. Skips holes in the array. * See {@link http://tinyurl.com/developer-mozilla-org-array-foreach} * - * @param {Array.|goog.array.ArrayLike} arr Array or array - * like object over which to iterate. + * @param {Array.|goog.array.ArrayLike} arr Array or array like object over + * which to iterate. * @param {?function(this: S, T, number, ?): ?} f The function to call for every - * element. - * This function takes 3 arguments (the element, the index and the array). - * The return value is ignored. The function is called only for indexes of - * the array which have assigned values; it is not called for indexes which - * have been deleted or which have never been assigned values. - * @param {S=} opt_obj The object to be used as the value of 'this' - * within f. + * element. This function takes 3 arguments (the element, the index and the + * array). The return value is ignored. + * @param {S=} opt_obj The object to be used as the value of 'this' within f. * @template T,S */ goog.array.forEach = goog.NATIVE_ARRAY_PROTOTYPES && @@ -448,6 +446,29 @@ goog.array.every = goog.NATIVE_ARRAY_PROTOTYPES && }; +/** + * Counts the array elements that fulfill the predicate, i.e. for which the + * callback function returns true. Skips holes in the array. + * + * @param {!(Array.|goog.array.ArrayLike)} arr Array or array like object + * over which to iterate. + * @param {function(this: S, T, number, ?): boolean} f The function to call for + * every element. Takes 3 arguments (the element, the index and the array). + * @param {S=} opt_obj The object to be used as the value of 'this' within f. + * @return {number} The number of the matching elements. + * @template T,S + */ +goog.array.count = function(arr, f, opt_obj) { + var count = 0; + goog.array.forEach(arr, function(element, index, arr) { + if (f.call(opt_obj, element, index, arr)) { + ++count; + } + }, opt_obj); + return count; +}; + + /** * Search an array for the first element that satisfies a given condition and * return that element. @@ -780,9 +801,8 @@ goog.array.extend = function(arr1, var_args) { (isArrayLike = goog.isArrayLike(arr2)) && // The getter for callee throws an exception in strict mode // according to section 10.6 in ES5 so check for presence instead. - arr2.hasOwnProperty('callee')) { + Object.prototype.hasOwnProperty.call(arr2, 'callee')) { arr1.push.apply(arr1, arr2); - } else if (isArrayLike) { // Otherwise loop over arr2 to prevent copying the object. var len1 = arr1.length; @@ -1238,22 +1258,23 @@ goog.array.binaryRemove = function(array, value, opt_compareFn) { /** * Splits an array into disjoint buckets according to a splitting function. * @param {Array.} array The array. - * @param {function(T,number,Array.):?} sorter Function to call for every - * element. This - * takes 3 arguments (the element, the index and the array) and must - * return a valid object key (a string, number, etc), or undefined, if - * that object should not be placed in a bucket. + * @param {function(this:S, T,number,Array.):?} sorter Function to call for + * every element. This takes 3 arguments (the element, the index and the + * array) and must return a valid object key (a string, number, etc), or + * undefined, if that object should not be placed in a bucket. + * @param {S=} opt_obj The object to be used as the value of 'this' within + * sorter. * @return {!Object} An object, with keys being all of the unique return values * of sorter, and values being arrays containing the items for * which the splitter returned that key. - * @template T + * @template T,S */ -goog.array.bucket = function(array, sorter) { +goog.array.bucket = function(array, sorter, opt_obj) { var buckets = {}; for (var i = 0; i < array.length; i++) { var value = array[i]; - var key = sorter(value, i, array); + var key = sorter.call(opt_obj, value, i, array); if (goog.isDef(key)) { // Push the value to the right bucket, creating it if necessary. var bucket = buckets[key] || (buckets[key] = []); @@ -1276,7 +1297,7 @@ goog.array.bucket = function(array, sorter) { * key for the element in the new object. If the function returns the same * key for more than one element, the value for that key is * implementation-defined. - * @param {S=} opt_obj The object to be used as the value of 'this' + * @param {S=} opt_obj The object to be used as the value of 'this' * within keyFunc. * @return {!Object.} The new object. * @template T,S @@ -1290,6 +1311,54 @@ goog.array.toObject = function(arr, keyFunc, opt_obj) { }; +/** + * Creates a range of numbers in an arithmetic progression. + * + * Range takes 1, 2, or 3 arguments: + *
+ * range(5) is the same as range(0, 5, 1) and produces [0, 1, 2, 3, 4]
+ * range(2, 5) is the same as range(2, 5, 1) and produces [2, 3, 4]
+ * range(-2, -5, -1) produces [-2, -3, -4]
+ * range(-2, -5, 1) produces [], since stepping by 1 wouldn't ever reach -5.
+ * 
+ * + * @param {number} startOrEnd The starting value of the range if an end argument + * is provided. Otherwise, the start value is 0, and this is the end value. + * @param {number=} opt_end The optional end value of the range. + * @param {number=} opt_step The step size between range values. Defaults to 1 + * if opt_step is undefined or 0. + * @return {!Array.} An array of numbers for the requested range. May be + * an empty array if adding the step would not converge toward the end + * value. + */ +goog.array.range = function(startOrEnd, opt_end, opt_step) { + var array = []; + var start = 0; + var end = startOrEnd; + var step = opt_step || 1; + if (opt_end !== undefined) { + start = startOrEnd; + end = opt_end; + } + + if (step * (end - start) < 0) { + // Sign mismatch: start + step will never reach the end value. + return []; + } + + if (step > 0) { + for (var i = start; i < end; i += step) { + array.push(i); + } + } else { + for (var i = start; i > end; i += step) { + array.push(i); + } + } + return array; +}; + + /** * Returns an array consisting of the given value repeated N times. * @@ -1356,6 +1425,28 @@ goog.array.rotate = function(array, n) { }; +/** + * Moves one item of an array to a new position keeping the order of the rest + * of the items. Example use case: keeping a list of JavaScript objects + * synchronized with the corresponding list of DOM elements after one of the + * elements has been dragged to a new position. + * @param {!(Array|Arguments|{length:number})} arr The array to modify. + * @param {number} fromIndex Index of the item to move between 0 and + * {@code arr.length - 1}. + * @param {number} toIndex Target index between 0 and {@code arr.length - 1}. + */ +goog.array.moveItem = function(arr, fromIndex, toIndex) { + goog.asserts.assert(fromIndex >= 0 && fromIndex < arr.length); + goog.asserts.assert(toIndex >= 0 && toIndex < arr.length); + // Remove 1 item at fromIndex. + var removedItems = goog.array.ARRAY_PROTOTYPE_.splice.call(arr, fromIndex, 1); + // Insert the removed item at toIndex. + goog.array.ARRAY_PROTOTYPE_.splice.call(arr, toIndex, 0, removedItems[0]); + // We don't use goog.array.insertAt and goog.array.removeAt, because they're + // significantly slower than splice. +}; + + /** * Creates a new array for which the element at position i is an array of the * ith element of the provided arrays. The returned array will only be as long diff --git a/master/closure-library/closure/goog/asserts/asserts.js b/edit/closure-library/closure/goog/asserts/asserts.js similarity index 95% rename from master/closure-library/closure/goog/asserts/asserts.js rename to edit/closure-library/closure/goog/asserts/asserts.js index 2ec57626ea..4494526dce 100644 --- a/master/closure-library/closure/goog/asserts/asserts.js +++ b/edit/closure-library/closure/goog/asserts/asserts.js @@ -43,7 +43,7 @@ goog.require('goog.string'); /** * @define {boolean} Whether to strip out asserts or to leave them in. */ -goog.asserts.ENABLE_ASSERTS = goog.DEBUG; +goog.define('goog.asserts.ENABLE_ASSERTS', goog.DEBUG); @@ -265,18 +265,29 @@ goog.asserts.assertBoolean = function(value, opt_message, var_args) { * The compiler may tighten the type returned by this function. * * @param {*} value The value to check. - * @param {!Function} type A user-defined constructor. + * @param {function(new: T, ...)} type A user-defined constructor. * @param {string=} opt_message Error message in case of failure. * @param {...*} var_args The items to substitute into the failure message. * @throws {goog.asserts.AssertionError} When the value is not an instance of * type. - * @return {!Object} + * @return {!T} + * @template T */ goog.asserts.assertInstanceof = function(value, type, opt_message, var_args) { if (goog.asserts.ENABLE_ASSERTS && !(value instanceof type)) { goog.asserts.doAssertFailure_('instanceof check failed.', null, opt_message, Array.prototype.slice.call(arguments, 3)); } - return /** @type {!Object} */(value); + return value; }; + +/** + * Checks that no enumerable keys are present in Object.prototype. Such keys + * would break most code that use {@code for (var ... in ...)} loops. + */ +goog.asserts.assertObjectPrototypeIsIntact = function() { + for (var key in Object.prototype) { + goog.asserts.fail(key + ' should not be enumerable in Object.prototype.'); + } +}; diff --git a/master/closure-library/closure/goog/async/animationdelay.js b/edit/closure-library/closure/goog/async/animationdelay.js similarity index 97% rename from master/closure-library/closure/goog/async/animationdelay.js rename to edit/closure-library/closure/goog/async/animationdelay.js index 5ee7773b94..e617eb0daf 100644 --- a/master/closure-library/closure/goog/async/animationdelay.js +++ b/edit/closure-library/closure/goog/async/animationdelay.js @@ -20,7 +20,8 @@ goog.provide('goog.async.AnimationDelay'); -goog.require('goog.async.Delay'); +goog.require('goog.Disposable'); +goog.require('goog.events'); goog.require('goog.functions'); @@ -30,6 +31,8 @@ goog.require('goog.functions'); // make sense. Subclassing seems like the wrong approach for a variety of // reasons. Maybe there should be a common interface? + + /** * A delayed callback that pegs to the next animation frame * instead of a user configurable timeout. By design, this should have @@ -86,7 +89,7 @@ goog.inherits(goog.async.AnimationDelay, goog.Disposable); /** * Identifier of the active delay timeout, or event listener, * or null when inactive. - * @type {?number} + * @type {goog.events.Key|number|null} * @private */ goog.async.AnimationDelay.prototype.id_ = null; @@ -173,7 +176,7 @@ goog.async.AnimationDelay.prototype.stop = function() { } else if (raf && cancelRaf) { cancelRaf.call(this.win_, /** @type {number} */ (this.id_)); } else { - this.win_.clearTimeout(this.id_); + this.win_.clearTimeout(/** @type {number} */ (this.id_)); } } this.id_ = null; @@ -265,4 +268,3 @@ goog.async.AnimationDelay.prototype.getCancelRaf_ = function() { win.msCancelRequestAnimationFrame || null; }; - diff --git a/master/closure-library/closure/goog/async/conditionaldelay.js b/edit/closure-library/closure/goog/async/conditionaldelay.js similarity index 100% rename from master/closure-library/closure/goog/async/conditionaldelay.js rename to edit/closure-library/closure/goog/async/conditionaldelay.js diff --git a/master/closure-library/closure/goog/async/delay.js b/edit/closure-library/closure/goog/async/delay.js similarity index 100% rename from master/closure-library/closure/goog/async/delay.js rename to edit/closure-library/closure/goog/async/delay.js diff --git a/edit/closure-library/closure/goog/async/nexttick.js b/edit/closure-library/closure/goog/async/nexttick.js new file mode 100644 index 0000000000..5f8b895e69 --- /dev/null +++ b/edit/closure-library/closure/goog/async/nexttick.js @@ -0,0 +1,174 @@ +// Copyright 2013 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview Provides a function to schedule running a function as soon + * as possible after the current JS execution stops and yields to the event + * loop. + * + */ + +goog.provide('goog.async.nextTick'); + +goog.require('goog.debug.entryPointRegistry'); +goog.require('goog.functions'); + + +/** + * Fires the provided callbacks as soon as possible after the current JS + * execution context. setTimeout(…, 0) always takes at least 5ms for legacy + * reasons. + * @param {function()} callback Callback function to fire as soon as possible. + * @param {Object=} opt_context Object in whose scope to call the listener. + */ +goog.async.nextTick = function(callback, opt_context) { + var cb = callback; + if (opt_context) { + cb = goog.bind(callback, opt_context); + } + cb = goog.async.nextTick.wrapCallback_(cb); + // Introduced and currently only supported by IE10. + if (goog.isFunction(goog.global.setImmediate)) { + goog.global.setImmediate(cb); + return; + } + // Look for and cache the custom fallback version of setImmediate. + if (!goog.async.nextTick.setImmediate_) { + goog.async.nextTick.setImmediate_ = + goog.async.nextTick.getSetImmediateEmulator_(); + } + goog.async.nextTick.setImmediate_(cb); +}; + + +/** + * Cache for the setImmediate implementation. + * @type {function(function())} + * @private + */ +goog.async.nextTick.setImmediate_; + + +/** + * Determines the best possible implementation to run a function as soon as + * the JS event loop is idle. + * @return {function(function())} The "setImmediate" implementation. + * @private + */ +goog.async.nextTick.getSetImmediateEmulator_ = function() { + // Create a private message channel and use it to postMessage empty messages + // to ourselves. + var Channel = goog.global['MessageChannel']; + // If MessageChannel is not available and we are in a browser, implement + // an iframe based polyfill in browsers that have postMessage and + // document.addEventListener. The latter excludes IE8 because it has a + // synchronous postMessage implementation. + if (typeof Channel === 'undefined' && typeof window !== 'undefined' && + window.postMessage && window.addEventListener) { + /** @constructor */ + Channel = function() { + // Make an empty, invisible iframe. + var iframe = document.createElement('iframe'); + iframe.style.display = 'none'; + iframe.src = ''; + document.body.appendChild(iframe); + var win = iframe.contentWindow; + var doc = win.document; + doc.open(); + doc.write(''); + doc.close(); + var message = 'callImmediate' + Math.random(); + var origin = win.location.protocol + '//' + win.location.host; + var onmessage = goog.bind(function(e) { + // Validate origin and message to make sure that this message was + // intended for us. + if (e.origin != origin && e.data != message) { + return; + } + this['port1'].onmessage(); + }, this); + win.addEventListener('message', onmessage, false); + this['port1'] = {}; + this['port2'] = { + postMessage: function() { + win.postMessage(message, origin); + } + }; + }; + } + if (typeof Channel !== 'undefined') { + var channel = new Channel(); + // Use a fifo linked list to call callbacks in the right order. + var head = {}; + var tail = head; + channel['port1'].onmessage = function() { + head = head.next; + var cb = head.cb; + head.cb = null; + cb(); + }; + return function(cb) { + tail.next = { + cb: cb + }; + tail = tail.next; + channel['port2'].postMessage(0); + }; + } + // Implementation for IE6-8: Script elements fire an asynchronous + // onreadystatechange event when inserted into the DOM. + if (typeof document !== 'undefined' && 'onreadystatechange' in + document.createElement('script')) { + return function(cb) { + var script = document.createElement('script'); + script.onreadystatechange = function() { + // Clean up and call the callback. + script.onreadystatechange = null; + script.parentNode.removeChild(script); + script = null; + cb(); + cb = null; + }; + document.documentElement.appendChild(script); + }; + } + // Fall back to setTimeout with 0. In browsers this creates a delay of 5ms + // or more. + return function(cb) { + goog.global.setTimeout(cb, 0); + }; +}; + + +/** + * Helper function that is overrided to protect callbacks with entry point + * monitor if the application monitors entry points. + * @param {function()} callback Callback function to fire as soon as possible. + * @return {function()} The wrapped callback. + * @private + */ +goog.async.nextTick.wrapCallback_ = goog.functions.identity; + + +// Register the callback function as an entry point, so that it can be +// monitored for exception handling, etc. This has to be done in this file +// since it requires special code to handle all browsers. +goog.debug.entryPointRegistry.register( + /** + * @param {function(!Function): !Function} transformer The transforming + * function. + */ + function(transformer) { + goog.async.nextTick.wrapCallback_ = transformer; + }); diff --git a/master/closure-library/closure/goog/async/throttle.js b/edit/closure-library/closure/goog/async/throttle.js similarity index 100% rename from master/closure-library/closure/goog/async/throttle.js rename to edit/closure-library/closure/goog/async/throttle.js diff --git a/master/closure-library/closure/goog/base.js b/edit/closure-library/closure/goog/base.js similarity index 79% rename from master/closure-library/closure/goog/base.js rename to edit/closure-library/closure/goog/base.js index a73c7c1732..bd82e88de5 100644 --- a/master/closure-library/closure/goog/base.js +++ b/edit/closure-library/closure/goog/base.js @@ -19,6 +19,8 @@ * global CLOSURE_NO_DEPS is set to true. This allows projects to * include their own deps file(s) from different locations. * + * + * @provideGoog */ @@ -30,23 +32,100 @@ var COMPILED = false; /** - * Base namespace for the Closure library. Checks to see goog is - * already defined in the current scope before assigning to prevent - * clobbering if base.js is loaded more than once. + * Base namespace for the Closure library. Checks to see goog is already + * defined in the current scope before assigning to prevent clobbering if + * base.js is loaded more than once. * * @const */ -var goog = goog || {}; // Identifies this file as the Closure base. +var goog = goog || {}; /** - * @define {boolean} + * Reference to the global context. In most cases this will be 'window'. */ -goog.NODE_JS = false; +goog.global = this; -// eval() is used so that "global" does not need to be an extern. -goog.global = goog.NODE_JS ? eval('global') : this; +/** + * A hook for overriding the define values in uncompiled mode. + * + * In uncompiled mode, {@code CLOSURE_DEFINES} may be defined before loading + * base.js. If a key is defined in {@code CLOSURE_DEFINES}, {@code goog.define} + * will use the value instead of the default value. This allows flags to be + * overwritten without compilation (this is normally accomplished with the + * compiler's "define" flag). + * + * Example: + *
+ *   var CLOSURE_DEFINES = {'goog.DEBUG', false};
+ * 
+ * + * @type {Object.|undefined} + */ +goog.global.CLOSURE_DEFINES; + + +/** + * Builds an object structure for the provided namespace path, ensuring that + * names that already exist are not overwritten. For example: + * "a.b.c" -> a = {};a.b={};a.b.c={}; + * Used by goog.provide and goog.exportSymbol. + * @param {string} name name of the object that this file defines. + * @param {*=} opt_object the object to expose at the end of the path. + * @param {Object=} opt_objectToExportTo The object to add the path to; default + * is |goog.global|. + * @private + */ +goog.exportPath_ = function(name, opt_object, opt_objectToExportTo) { + var parts = name.split('.'); + var cur = opt_objectToExportTo || goog.global; + + // Internet Explorer exhibits strange behavior when throwing errors from + // methods externed in this manner. See the testExportSymbolExceptions in + // base_test.html for an example. + if (!(parts[0] in cur) && cur.execScript) { + cur.execScript('var ' + parts[0]); + } + + // Certain browsers cannot parse code in the form for((a in b); c;); + // This pattern is produced by the JSCompiler when it collapses the + // statement above into the conditional loop below. To prevent this from + // happening, use a for-loop and reserve the init logic as below. + + // Parentheses added to eliminate strict JS warning in Firefox. + for (var part; parts.length && (part = parts.shift());) { + if (!parts.length && opt_object !== undefined) { + // last part and we have an object; use it + cur[part] = opt_object; + } else if (cur[part]) { + cur = cur[part]; + } else { + cur = cur[part] = {}; + } + } +}; + + +/** + * Defines a named value. In uncompiled mode, the value is retreived from + * CLOSURE_DEFINES if the object is defined and has the property specified, + * and otherwise used the defined defaultValue. When compiled, the default + * can be overridden using compiler command-line options. + * + * @param {string} name The distinguished name to provide. + * @param {string|number|boolean} defaultValue + */ +goog.define = function(name, defaultValue) { + var value = defaultValue; + if (!COMPILED) { + if (goog.global.CLOSURE_DEFINES && Object.prototype.hasOwnProperty.call( + goog.global.CLOSURE_DEFINES, name)) { + value = goog.global.CLOSURE_DEFINES[name]; + } + } + goog.exportPath_(name, value); +}; /** @@ -79,7 +158,21 @@ goog.DEBUG = true; * this rule: the Hebrew language. For legacy reasons the old code (iw) should * be used instead of the new code (he), see http://wiki/Main/IIISynonyms. */ -goog.LOCALE = 'en'; // default to en +goog.define('goog.LOCALE', 'en'); // default to en + + +/** + * @define {boolean} Whether this code is running on trusted sites. + * + * On untrusted sites, several native functions can be defined or overridden by + * external libraries like Prototype, Datejs, and JQuery and setting this flag + * to false forces closure to use its own implementations when possible. + * + * If your JavaScript can be loaded by a third party site and you are wary about + * relying on non-standard implementations, specify + * "--define goog.TRUSTED_SITE=false" to the JSCompiler. + */ +goog.define('goog.TRUSTED_SITE', true); /** @@ -119,6 +212,11 @@ goog.provide = function(name) { /** * Marks that the current file should only be used for testing, and never for * live code in production. + * + * In the case of unit tests, the message may optionally be an exact namespace + * for the test (e.g. 'goog.stringTest'). The linter will then ignore the extra + * provide (if not explicitly defined in the code). + * * @param {string=} opt_message Optional message to add to the error that's * raised when used in production code. */ @@ -146,8 +244,8 @@ if (!COMPILED) { /** * Namespaces implicitly defined by goog.provide. For example, - * goog.provide('goog.events.Event') implicitly declares - * that 'goog' and 'goog.events' must be namespaces. + * goog.provide('goog.events.Event') implicitly declares that 'goog' and + * 'goog.events' must be namespaces. * * @type {Object} * @private @@ -156,91 +254,6 @@ if (!COMPILED) { } -/** - * Used in the context of Node JS to determine whether the argument is an - * existing variable in the global namespace, or if it should be added as a - * property of goog.global in order to create it. - * - * @param {string} goog The namespace to test. This is deliberately named "goog" - * rather than "nameSpace" or something more appropriate because the goal is - * to avoid introducing any new variables into the scope of the function - * that would alter the behavior of eval(). - * - * Because it is known that "goog" is an existing global variable, shadowing - * it with a local variable here does not introduce a new variable in the - * scope of this function. Further, it is known that when the local variable - * goog is the value 'goog', this function should always return true, which - * it does. - * - * Ideally, this function would not declare any arguments and would simply - * reference arguments[0], but that yields a WRONG_ARGUMENT_COUNT warning - * at the call sites of goog.isExistingGlobalVariable_() from the Closure - * Compiler when type-checking is enabled. - * @return {boolean} - * @private - */ -goog.isExistingGlobalVariable_ = function(goog) { - // Note that if the variable is declared globally with "var" but is undefined, - // then this function will return a false negative. - // Similarly, if goog is 'arguments', 'parseInt', or any other member that is - // in scope, it will return a false positive. - return String(eval('typeof ' + goog)) !== 'undefined'; -}; - - -/** - * Builds an object structure for the provided namespace path, - * ensuring that names that already exist are not overwritten. For - * example: - * "a.b.c" -> a = {};a.b={};a.b.c={}; - * Used by goog.provide and goog.exportSymbol. - * @param {string} name name of the object that this file defines. - * @param {*=} opt_object the object to expose at the end of the path. - * @param {Object=} opt_objectToExportTo The object to add the path to; default - * is |goog.global|. - * @private - */ -goog.exportPath_ = function(name, opt_object, opt_objectToExportTo) { - var parts = name.split('.'); - var cur = opt_objectToExportTo || goog.global; - - // Internet Explorer exhibits strange behavior when throwing errors from - // methods externed in this manner. See the testExportSymbolExceptions in - // base_test.html for an example. - if (!(parts[0] in cur) && cur.execScript) { - cur.execScript('var ' + parts[0]); - } - - if (goog.NODE_JS && cur === goog.global) { - // If parts[0] is already a variable global scope such as "goog", then do - // not access it from goog.global because then there will be a global - // variable "goog" as well as a "global.goog", and they will be different - // objects, causing all sorts of problems. - if (goog.isExistingGlobalVariable_(parts[0])) { - cur = eval(parts[0]); - parts.shift(); - } - } - - // Certain browsers cannot parse code in the form for((a in b); c;); - // This pattern is produced by the JSCompiler when it collapses the - // statement above into the conditional loop below. To prevent this from - // happening, use a for-loop and reserve the init logic as below. - - // Parentheses added to eliminate strict JS warning in Firefox. - for (var part; parts.length && (part = parts.shift());) { - if (!parts.length && goog.isDef(opt_object)) { - // last part and we have an object; use it - cur[part] = opt_object; - } else if (cur[part]) { - cur = cur[part]; - } else { - cur = cur[part] = {}; - } - } -}; - - /** * Returns an object based on its fully qualified external name. If you are * using a compilation pass that renames property names beware that using this @@ -254,18 +267,6 @@ goog.exportPath_ = function(name, opt_object, opt_objectToExportTo) { goog.getObjectByName = function(name, opt_obj) { var parts = name.split('.'); var cur = opt_obj || goog.global; - - if (goog.NODE_JS && cur === goog.global) { - // If parts[0] is already a variable global scope such as "goog", then do - // not access it from goog.global because then there will be a global - // variable "goog" as well as a "global.goog", and they will be different - // objects, causing all sorts of problems. - if (goog.isExistingGlobalVariable_(parts[0])) { - cur = eval(parts[0]); - parts.shift(); - } - } - for (var part; part = parts.shift(); ) { if (goog.isDefAndNotNull(cur[part])) { cur = cur[part]; @@ -302,7 +303,7 @@ goog.globalize = function(obj, opt_global) { * this file requires. */ goog.addDependency = function(relPath, provides, requires) { - if (!COMPILED) { + if (goog.DEPENDENCIES_ENABLED) { var provide, require; var path = relPath.replace(/\\/g, '/'); var deps = goog.dependencies_; @@ -325,14 +326,14 @@ goog.addDependency = function(relPath, provides, requires) { -// NOTE(nnaze): The debug DOM loader was included in base.js as an orignal -// way to do "debug-mode" development. The dependency system can sometimes -// be confusing, as can the debug DOM loader's asyncronous nature. +// NOTE(nnaze): The debug DOM loader was included in base.js as an original way +// to do "debug-mode" development. The dependency system can sometimes be +// confusing, as can the debug DOM loader's asynchronous nature. // -// With the DOM loader, a call to goog.require() is not blocking -- the -// script will not load until some point after the current script. If a -// namespace is needed at runtime, it needs to be defined in a previous -// script, or loaded via require() with its registered dependencies. +// With the DOM loader, a call to goog.require() is not blocking -- the script +// will not load until some point after the current script. If a namespace is +// needed at runtime, it needs to be defined in a previous script, or loaded via +// require() with its registered dependencies. // User-defined namespaces may need their own deps file. See http://go/js_deps, // http://go/genjsdeps, or, externally, DepsWriter. // http://code.google.com/closure/library/docs/depswriter.html @@ -353,26 +354,25 @@ goog.addDependency = function(relPath, provides, requires) { * provided (and depend on the fact that some outside tool correctly ordered * the script). */ -goog.ENABLE_DEBUG_LOADER = true; +goog.define('goog.ENABLE_DEBUG_LOADER', true); /** - * Implements a system for the dynamic resolution of dependencies - * that works in parallel with the BUILD system. Note that all calls - * to goog.require will be stripped by the JSCompiler when the - * --closure_pass option is used. + * Implements a system for the dynamic resolution of dependencies that works in + * parallel with the BUILD system. Note that all calls to goog.require will be + * stripped by the JSCompiler when the --closure_pass option is used. * @see goog.provide - * @param {string} name Namespace to include (as was given in goog.provide()) - * in the form "goog.package.part". + * @param {string} name Namespace to include (as was given in goog.provide()) in + * the form "goog.package.part". */ goog.require = function(name) { - // if the object already exists we do not need do do anything - // TODO(arv): If we start to support require based on file name this has - // to change - // TODO(arv): If we allow goog.foo.* this has to change + // If the object already exists we do not need do do anything. + // TODO(arv): If we start to support require based on file name this has to + // change. + // TODO(arv): If we allow goog.foo.* this has to change. // TODO(arv): If we implement dynamic load after page load we should probably - // not remove this code for the compiled output + // not remove this code for the compiled output. if (!COMPILED) { if (goog.isProvided_(name)) { return; @@ -400,7 +400,7 @@ goog.require = function(name) { /** - * Path for included scripts + * Path for included scripts. * @type {string} */ goog.basePath = ''; @@ -414,8 +414,7 @@ goog.global.CLOSURE_BASE_PATH; /** - * Whether to write out Closure's deps file. By default, - * the deps are written. + * Whether to write out Closure's deps file. By default, the deps are written. * @type {boolean|undefined} */ goog.global.CLOSURE_NO_DEPS; @@ -456,19 +455,16 @@ goog.identityFunction = function(opt_returnValue, var_args) { /** * When defining a class Foo with an abstract method bar(), you can do: - * * Foo.prototype.bar = goog.abstractMethod * - * Now if a subclass of Foo fails to override bar(), an error - * will be thrown when bar() is invoked. + * Now if a subclass of Foo fails to override bar(), an error will be thrown + * when bar() is invoked. * - * Note: This does not take the name of the function to override as - * an argument because that would make it more difficult to obfuscate - * our JavaScript code. + * Note: This does not take the name of the function to override as an argument + * because that would make it more difficult to obfuscate our JavaScript code. * * @type {!Function} - * @throws {Error} when invoked to indicate the method should be - * overridden. + * @throws {Error} when invoked to indicate the method should be overridden. */ goog.abstractMethod = function() { throw Error('unimplemented abstract method'); @@ -476,8 +472,8 @@ goog.abstractMethod = function() { /** - * Adds a {@code getInstance} static method that always return the same instance - * object. + * Adds a {@code getInstance} static method that always returns the same + * instance object. * @param {!Function} ctor The constructor for the class to add the static * method to. */ @@ -505,10 +501,17 @@ goog.addSingletonGetter = function(ctor) { goog.instantiatedSingletons_ = []; -if (!COMPILED && goog.ENABLE_DEBUG_LOADER) { +/** + * True if goog.dependencies_ is available. + * @const {boolean} + */ +goog.DEPENDENCIES_ENABLED = !COMPILED && goog.ENABLE_DEBUG_LOADER; + + +if (goog.DEPENDENCIES_ENABLED) { /** - * Object used to keep track of urls that have already been added. This - * record allows the prevention of circular dependencies. + * Object used to keep track of urls that have already been added. This record + * allows the prevention of circular dependencies. * @type {Object} * @private */ @@ -517,7 +520,7 @@ if (!COMPILED && goog.ENABLE_DEBUG_LOADER) { /** * This object is used to keep track of dependencies and other data that is - * used for loading scripts + * used for loading scripts. * @private * @type {Object} */ @@ -525,10 +528,9 @@ if (!COMPILED && goog.ENABLE_DEBUG_LOADER) { pathToNames: {}, // 1 to many nameToPath: {}, // 1 to 1 requires: {}, // 1 to many - // used when resolving dependencies to prevent us from - // visiting the file twice + // Used when resolving dependencies to prevent us from visiting file twice. visited: {}, - written: {} // used to keep track of script files we have written + written: {} // Used to keep track of script files we have written. }; @@ -545,7 +547,7 @@ if (!COMPILED && goog.ENABLE_DEBUG_LOADER) { /** - * Tries to detect the base path of the base.js script that bootstraps Closure + * Tries to detect the base path of base.js script that bootstraps Closure. * @private */ goog.findBasePath_ = function() { @@ -597,6 +599,23 @@ if (!COMPILED && goog.ENABLE_DEBUG_LOADER) { goog.writeScriptTag_ = function(src) { if (goog.inHtmlDocument_()) { var doc = goog.global.document; + + // If the user tries to require a new symbol after document load, + // something has gone terribly wrong. Doing a document.write would + // wipe out the page. + if (doc.readyState == 'complete') { + // Certain test frameworks load base.js multiple times, which tries + // to write deps.js each time. If that happens, just fail silently. + // These frameworks wipe the page between each load of base.js, so this + // is OK. + var isDeps = /\bdeps.js$/.test(src); + if (isDeps) { + return false; + } else { + throw Error('Cannot write "' + src + '" after document load'); + } + } + doc.write( ''); assertEquals('SCRIPT', script.tagName); - if (goog.userAgent.IE && !goog.userAgent.isDocumentMode(9)) { + if (goog.userAgent.IE && !goog.userAgent.isDocumentModeOrHigher(9)) { // Removing an Element from a DOM tree in IE sets its parentNode to a new // DocumentFragment. Bizarre! assertEquals(goog.dom.NodeType.DOCUMENT_FRAGMENT, @@ -1328,6 +1331,8 @@ function testGetDocumentScrollOfFixedViewport() { // iOS and perhaps other environments don't actually support scrolling. // Instead, you view the document's fixed layout through a screen viewport. // We need getDocumentScroll to handle this case though. + // In case of IE10 though, we do want to use scrollLeft/scrollTop + // because the rest of the positioning is done off the scrolled away origin. var fakeDocumentScrollElement = {scrollLeft: 0, scrollTop: 0}; var fakeDocument = { defaultView: {pageXOffset: 100, pageYOffset: 100}, @@ -1336,8 +1341,13 @@ function testGetDocumentScrollOfFixedViewport() { }; var dh = goog.dom.getDomHelper(document); dh.setDocument(fakeDocument); - assertEquals(100, dh.getDocumentScroll().x); - assertEquals(100, dh.getDocumentScroll().y); + if (goog.userAgent.IE && goog.userAgent.isVersionOrHigher(10)) { + assertEquals(0, dh.getDocumentScroll().x); + assertEquals(0, dh.getDocumentScroll().y); + } else { + assertEquals(100, dh.getDocumentScroll().x); + assertEquals(100, dh.getDocumentScroll().y); + } } function testActiveElementIE() { @@ -1375,8 +1385,34 @@ function testParentElement() { var detachedEl = goog.dom.createDom('div'); var detachedHasNoParent = goog.dom.getParentElement(detachedEl); assertNull(detachedHasNoParent); + + if (goog.userAgent.IE && !goog.userAgent.isVersionOrHigher('9')) { + // svg is not supported in IE8 and below. + return; + } + + var svg = $('testSvg'); + assertNotNull(svg); + var rect = $('testRect'); + assertNotNull(rect); + var g = $('testG'); + assertNotNull(g); + + if (goog.userAgent.IE && goog.userAgent.isVersionOrHigher('9')) { + // test to make sure IE9 is returning undefined for .parentElement + assertUndefined(g.parentElement); + assertUndefined(rect.parentElement); + assertUndefined(svg.parentElement); + } + var shouldBeG = goog.dom.getParentElement(rect); + assertEquals(g, shouldBeG); + var shouldBeSvg = goog.dom.getParentElement(g); + assertEquals(svg, shouldBeSvg); + var shouldBeBody = goog.dom.getParentElement(svg); + assertEquals(bodyEl, shouldBeBody); } + /** * @return {boolean} Returns true if the userAgent is IE8 or higher. */ diff --git a/master/closure-library/closure/goog/dom/fontsizemonitor.js b/edit/closure-library/closure/goog/dom/fontsizemonitor.js similarity index 98% rename from master/closure-library/closure/goog/dom/fontsizemonitor.js rename to edit/closure-library/closure/goog/dom/fontsizemonitor.js index e505257f1c..8bf4f67569 100644 --- a/master/closure-library/closure/goog/dom/fontsizemonitor.js +++ b/edit/closure-library/closure/goog/dom/fontsizemonitor.js @@ -132,7 +132,8 @@ goog.dom.FontSizeMonitor.prototype.disposeInternal = function() { this.resizeTarget_ = null; // Firefox 2 crashes if the iframe is removed during the unload phase. - if (!goog.userAgent.GECKO || goog.userAgent.isVersion('1.9')) { + if (!goog.userAgent.GECKO || + goog.userAgent.isVersionOrHigher('1.9')) { goog.dom.removeNode(this.sizeElement_); } delete this.sizeElement_; diff --git a/master/closure-library/closure/goog/dom/forms.js b/edit/closure-library/closure/goog/dom/forms.js similarity index 97% rename from master/closure-library/closure/goog/dom/forms.js rename to edit/closure-library/closure/goog/dom/forms.js index 57ba4cbe2c..8e6e214413 100644 --- a/master/closure-library/closure/goog/dom/forms.js +++ b/edit/closure-library/closure/goog/dom/forms.js @@ -266,18 +266,19 @@ goog.dom.$F = goog.dom.forms.getValue; goog.dom.forms.getValueByName = function(form, name) { var els = form.elements[name]; - if (els.type) { - return goog.dom.forms.getValue(els); - } else { - for (var i = 0; i < els.length; i++) { - var val = goog.dom.forms.getValue(els[i]); - if (val) { - return val; + if (els) { + if (els.type) { + return goog.dom.forms.getValue(els); + } else { + for (var i = 0; i < els.length; i++) { + var val = goog.dom.forms.getValue(els[i]); + if (val) { + return val; + } } } - - return null; } + return null; }; diff --git a/master/closure-library/closure/goog/dom/fullscreen.js b/edit/closure-library/closure/goog/dom/fullscreen.js similarity index 100% rename from master/closure-library/closure/goog/dom/fullscreen.js rename to edit/closure-library/closure/goog/dom/fullscreen.js diff --git a/master/closure-library/closure/goog/dom/iframe.js b/edit/closure-library/closure/goog/dom/iframe.js similarity index 76% rename from master/closure-library/closure/goog/dom/iframe.js rename to edit/closure-library/closure/goog/dom/iframe.js index 71b3df4fa2..c23e795c31 100644 --- a/master/closure-library/closure/goog/dom/iframe.js +++ b/edit/closure-library/closure/goog/dom/iframe.js @@ -22,6 +22,7 @@ goog.provide('goog.dom.iframe'); goog.require('goog.dom'); +goog.require('goog.userAgent'); /** @@ -35,6 +36,39 @@ goog.require('goog.dom'); goog.dom.iframe.BLANK_SOURCE = 'javascript:""'; +/** + * Safe source for a new blank iframe that may not cause a new load of the + * iframe. This is different from {@code goog.dom.iframe.BLANK_SOURCE} in that + * it will allow an iframe to be loaded synchronously in more browsers, notably + * Gecko, following the javascript protocol spec. + * + * NOTE: This should not be used to replace the source of an existing iframe. + * The new src value will be ignored, per the spec. + * + * Due to cross-browser differences, the load is not guaranteed to be + * synchronous. If code depends on the load of the iframe, + * then {@code goog.net.IframeLoadMonitor} or a similar technique should be + * used. + * + * According to + * http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#javascript-protocol + * the 'javascript:""' URL should trigger a new load of the iframe, which may be + * asynchronous. A void src, such as 'javascript:undefined', does not change + * the browsing context document's, and thus should not trigger another load. + * + * Intentionally not about:blank, which also triggers a load. + * + * NOTE: 'javascript:' URL handling spec compliance varies per browser. IE + * throws an error with 'javascript:undefined'. Webkit browsers will reload the + * iframe when setting this source on an existing iframe. + * + * @type {string} + */ +goog.dom.iframe.BLANK_SOURCE_NEW_FRAME = goog.userAgent.IE ? + 'javascript:""' : + 'javascript:undefined'; + + /** * Styles to help ensure an undecorated iframe. * @type {string} diff --git a/master/closure-library/closure/goog/dom/iter.js b/edit/closure-library/closure/goog/dom/iter.js similarity index 100% rename from master/closure-library/closure/goog/dom/iter.js rename to edit/closure-library/closure/goog/dom/iter.js diff --git a/master/closure-library/closure/goog/dom/multirange.js b/edit/closure-library/closure/goog/dom/multirange.js similarity index 98% rename from master/closure-library/closure/goog/dom/multirange.js rename to edit/closure-library/closure/goog/dom/multirange.js index 4e2526960d..0fb6f2064f 100644 --- a/master/closure-library/closure/goog/dom/multirange.js +++ b/edit/closure-library/closure/goog/dom/multirange.js @@ -23,7 +23,6 @@ goog.provide('goog.dom.MultiRange'); goog.provide('goog.dom.MultiRangeIterator'); goog.require('goog.array'); -goog.require('goog.debug.Logger'); goog.require('goog.dom.AbstractMultiRange'); goog.require('goog.dom.AbstractRange'); goog.require('goog.dom.RangeIterator'); @@ -31,6 +30,7 @@ goog.require('goog.dom.RangeType'); goog.require('goog.dom.SavedRange'); goog.require('goog.dom.TextRange'); goog.require('goog.iter.StopIteration'); +goog.require('goog.log'); @@ -118,11 +118,11 @@ goog.dom.MultiRange.createFromTextRanges = function(textRanges) { /** * Logging object. - * @type {goog.debug.Logger} + * @type {goog.log.Logger} * @private */ goog.dom.MultiRange.prototype.logger_ = - goog.debug.Logger.getLogger('goog.dom.MultiRange'); + goog.log.getLogger('goog.dom.MultiRange'); // Method implementations @@ -159,7 +159,7 @@ goog.dom.MultiRange.prototype.getType = function() { goog.dom.MultiRange.prototype.getBrowserRangeObject = function() { // NOTE(robbyw): This method does not make sense for multi-ranges. if (this.browserRanges_.length > 1) { - this.logger_.warning( + goog.log.warning(this.logger_, 'getBrowserRangeObject called on MultiRange with more than 1 range'); } return this.browserRanges_[0]; diff --git a/master/closure-library/closure/goog/dom/nodeiterator.js b/edit/closure-library/closure/goog/dom/nodeiterator.js similarity index 100% rename from master/closure-library/closure/goog/dom/nodeiterator.js rename to edit/closure-library/closure/goog/dom/nodeiterator.js diff --git a/master/closure-library/closure/goog/dom/nodeoffset.js b/edit/closure-library/closure/goog/dom/nodeoffset.js similarity index 100% rename from master/closure-library/closure/goog/dom/nodeoffset.js rename to edit/closure-library/closure/goog/dom/nodeoffset.js diff --git a/master/closure-library/closure/goog/dom/pattern/abstractpattern.js b/edit/closure-library/closure/goog/dom/pattern/abstractpattern.js similarity index 100% rename from master/closure-library/closure/goog/dom/pattern/abstractpattern.js rename to edit/closure-library/closure/goog/dom/pattern/abstractpattern.js diff --git a/master/closure-library/closure/goog/dom/pattern/allchildren.js b/edit/closure-library/closure/goog/dom/pattern/allchildren.js similarity index 100% rename from master/closure-library/closure/goog/dom/pattern/allchildren.js rename to edit/closure-library/closure/goog/dom/pattern/allchildren.js diff --git a/master/closure-library/closure/goog/dom/pattern/callback/callback.js b/edit/closure-library/closure/goog/dom/pattern/callback/callback.js similarity index 100% rename from master/closure-library/closure/goog/dom/pattern/callback/callback.js rename to edit/closure-library/closure/goog/dom/pattern/callback/callback.js diff --git a/master/closure-library/closure/goog/dom/pattern/callback/counter.js b/edit/closure-library/closure/goog/dom/pattern/callback/counter.js similarity index 100% rename from master/closure-library/closure/goog/dom/pattern/callback/counter.js rename to edit/closure-library/closure/goog/dom/pattern/callback/counter.js diff --git a/master/closure-library/closure/goog/dom/pattern/callback/test.js b/edit/closure-library/closure/goog/dom/pattern/callback/test.js similarity index 100% rename from master/closure-library/closure/goog/dom/pattern/callback/test.js rename to edit/closure-library/closure/goog/dom/pattern/callback/test.js diff --git a/master/closure-library/closure/goog/dom/pattern/childmatches.js b/edit/closure-library/closure/goog/dom/pattern/childmatches.js similarity index 100% rename from master/closure-library/closure/goog/dom/pattern/childmatches.js rename to edit/closure-library/closure/goog/dom/pattern/childmatches.js diff --git a/master/closure-library/closure/goog/dom/pattern/endtag.js b/edit/closure-library/closure/goog/dom/pattern/endtag.js similarity index 100% rename from master/closure-library/closure/goog/dom/pattern/endtag.js rename to edit/closure-library/closure/goog/dom/pattern/endtag.js diff --git a/master/closure-library/closure/goog/dom/pattern/fulltag.js b/edit/closure-library/closure/goog/dom/pattern/fulltag.js similarity index 100% rename from master/closure-library/closure/goog/dom/pattern/fulltag.js rename to edit/closure-library/closure/goog/dom/pattern/fulltag.js diff --git a/master/closure-library/closure/goog/dom/pattern/matcher.js b/edit/closure-library/closure/goog/dom/pattern/matcher.js similarity index 100% rename from master/closure-library/closure/goog/dom/pattern/matcher.js rename to edit/closure-library/closure/goog/dom/pattern/matcher.js diff --git a/master/closure-library/closure/goog/dom/pattern/nodetype.js b/edit/closure-library/closure/goog/dom/pattern/nodetype.js similarity index 100% rename from master/closure-library/closure/goog/dom/pattern/nodetype.js rename to edit/closure-library/closure/goog/dom/pattern/nodetype.js diff --git a/master/closure-library/closure/goog/dom/pattern/pattern.js b/edit/closure-library/closure/goog/dom/pattern/pattern.js similarity index 100% rename from master/closure-library/closure/goog/dom/pattern/pattern.js rename to edit/closure-library/closure/goog/dom/pattern/pattern.js diff --git a/master/closure-library/closure/goog/dom/pattern/repeat.js b/edit/closure-library/closure/goog/dom/pattern/repeat.js similarity index 100% rename from master/closure-library/closure/goog/dom/pattern/repeat.js rename to edit/closure-library/closure/goog/dom/pattern/repeat.js diff --git a/master/closure-library/closure/goog/dom/pattern/sequence.js b/edit/closure-library/closure/goog/dom/pattern/sequence.js similarity index 100% rename from master/closure-library/closure/goog/dom/pattern/sequence.js rename to edit/closure-library/closure/goog/dom/pattern/sequence.js diff --git a/master/closure-library/closure/goog/dom/pattern/starttag.js b/edit/closure-library/closure/goog/dom/pattern/starttag.js similarity index 100% rename from master/closure-library/closure/goog/dom/pattern/starttag.js rename to edit/closure-library/closure/goog/dom/pattern/starttag.js diff --git a/master/closure-library/closure/goog/dom/pattern/tag.js b/edit/closure-library/closure/goog/dom/pattern/tag.js similarity index 100% rename from master/closure-library/closure/goog/dom/pattern/tag.js rename to edit/closure-library/closure/goog/dom/pattern/tag.js diff --git a/master/closure-library/closure/goog/dom/pattern/text.js b/edit/closure-library/closure/goog/dom/pattern/text.js similarity index 100% rename from master/closure-library/closure/goog/dom/pattern/text.js rename to edit/closure-library/closure/goog/dom/pattern/text.js diff --git a/master/closure-library/closure/goog/dom/range.js b/edit/closure-library/closure/goog/dom/range.js similarity index 91% rename from master/closure-library/closure/goog/dom/range.js rename to edit/closure-library/closure/goog/dom/range.js index 4df2a20874..3df70816ed 100644 --- a/master/closure-library/closure/goog/dom/range.js +++ b/edit/closure-library/closure/goog/dom/range.js @@ -127,16 +127,16 @@ goog.dom.Range.createCaret = function(node, offset) { /** * Create a new range wrapper that selects the area between the given nodes, * accounting for the given offsets. - * @param {Node} startNode The node to start with. - * @param {number} startOffset The offset within the node to start. - * @param {Node} endNode The node to end with. - * @param {number} endOffset The offset within the node to end. + * @param {Node} anchorNode The node to anchor on. + * @param {number} anchorOffset The offset within the node to anchor on. + * @param {Node} focusNode The node to focus on. + * @param {number} focusOffset The offset within the node to focus on. * @return {goog.dom.AbstractRange} A range wrapper object. */ -goog.dom.Range.createFromNodes = function(startNode, startOffset, endNode, - endOffset) { - return goog.dom.TextRange.createFromNodes(startNode, startOffset, endNode, - endOffset); +goog.dom.Range.createFromNodes = function(anchorNode, anchorOffset, focusNode, + focusOffset) { + return goog.dom.TextRange.createFromNodes(anchorNode, anchorOffset, focusNode, + focusOffset); }; @@ -186,10 +186,10 @@ goog.dom.Range.hasSelection = function(opt_win) { /** * Returns whether the focus position occurs before the anchor position. - * @param {Node} anchorNode The node to start with. - * @param {number} anchorOffset The offset within the node to start. - * @param {Node} focusNode The node to end with. - * @param {number} focusOffset The offset within the node to end. + * @param {Node} anchorNode The node to anchor on. + * @param {number} anchorOffset The offset within the node to anchor on. + * @param {Node} focusNode The node to focus on. + * @param {number} focusOffset The offset within the node to focus on. * @return {boolean} Whether the focus position occurs before the anchor * position. */ diff --git a/master/closure-library/closure/goog/dom/rangeendpoint.js b/edit/closure-library/closure/goog/dom/rangeendpoint.js similarity index 100% rename from master/closure-library/closure/goog/dom/rangeendpoint.js rename to edit/closure-library/closure/goog/dom/rangeendpoint.js diff --git a/master/closure-library/closure/goog/dom/savedcaretrange.js b/edit/closure-library/closure/goog/dom/savedcaretrange.js similarity index 86% rename from master/closure-library/closure/goog/dom/savedcaretrange.js rename to edit/closure-library/closure/goog/dom/savedcaretrange.js index 31d313461f..ed3aecfbfa 100644 --- a/master/closure-library/closure/goog/dom/savedcaretrange.js +++ b/edit/closure-library/closure/goog/dom/savedcaretrange.js @@ -58,6 +58,12 @@ goog.dom.SavedCaretRange = function(range) { */ this.endCaretId_ = goog.string.createUniqueString(); + /** + * Whether the range is reversed (anchor at the end). + * @private {boolean} + */ + this.reversed_ = range.isReversed(); + /** * A DOM helper for storing the current document context. * @type {goog.dom.DomHelper} @@ -80,6 +86,7 @@ goog.dom.SavedCaretRange.prototype.toAbstractRange = function() { var startCaret = this.getCaret(true); var endCaret = this.getCaret(false); if (startCaret && endCaret) { + /** @suppress {missingRequire} circular dependency */ range = goog.dom.Range.createFromNodes(startCaret, 0, endCaret, 0); } return range; @@ -132,19 +139,24 @@ goog.dom.SavedCaretRange.prototype.setRestorationDocument = function(doc) { */ goog.dom.SavedCaretRange.prototype.restoreInternal = function() { var range = null; - var startCaret = this.getCaret(true); - var endCaret = this.getCaret(false); - if (startCaret && endCaret) { - var startNode = startCaret.parentNode; - var startOffset = goog.array.indexOf(startNode.childNodes, startCaret); - var endNode = endCaret.parentNode; - var endOffset = goog.array.indexOf(endNode.childNodes, endCaret); - if (endNode == startNode) { + var anchorCaret = this.getCaret(!this.reversed_); + var focusCaret = this.getCaret(this.reversed_); + if (anchorCaret && focusCaret) { + var anchorNode = anchorCaret.parentNode; + var anchorOffset = goog.array.indexOf(anchorNode.childNodes, anchorCaret); + var focusNode = focusCaret.parentNode; + var focusOffset = goog.array.indexOf(focusNode.childNodes, focusCaret); + if (focusNode == anchorNode) { // Compensate for the start caret being removed. - endOffset -= 1; + if (this.reversed_) { + anchorOffset--; + } else { + focusOffset--; + } } - range = goog.dom.Range.createFromNodes(startNode, startOffset, - endNode, endOffset); + /** @suppress {missingRequire} circular dependency */ + range = goog.dom.Range.createFromNodes(anchorNode, anchorOffset, + focusNode, focusOffset); range = this.removeCarets(range); range.select(); } else { diff --git a/master/closure-library/closure/goog/dom/savedrange.js b/edit/closure-library/closure/goog/dom/savedrange.js similarity index 92% rename from master/closure-library/closure/goog/dom/savedrange.js rename to edit/closure-library/closure/goog/dom/savedrange.js index 4f356d3cf1..5a7e951347 100644 --- a/master/closure-library/closure/goog/dom/savedrange.js +++ b/edit/closure-library/closure/goog/dom/savedrange.js @@ -22,7 +22,7 @@ goog.provide('goog.dom.SavedRange'); goog.require('goog.Disposable'); -goog.require('goog.debug.Logger'); +goog.require('goog.log'); @@ -39,11 +39,11 @@ goog.inherits(goog.dom.SavedRange, goog.Disposable); /** * Logging object. - * @type {goog.debug.Logger} + * @type {goog.log.Logger} * @private */ goog.dom.SavedRange.logger_ = - goog.debug.Logger.getLogger('goog.dom.SavedRange'); + goog.log.getLogger('goog.dom.SavedRange'); /** @@ -55,7 +55,7 @@ goog.dom.SavedRange.logger_ = */ goog.dom.SavedRange.prototype.restore = function(opt_stayAlive) { if (this.isDisposed()) { - goog.dom.SavedRange.logger_.severe( + goog.log.error(goog.dom.SavedRange.logger_, 'Disposed SavedRange objects cannot be restored.'); } diff --git a/master/closure-library/closure/goog/dom/selection.js b/edit/closure-library/closure/goog/dom/selection.js similarity index 100% rename from master/closure-library/closure/goog/dom/selection.js rename to edit/closure-library/closure/goog/dom/selection.js diff --git a/master/closure-library/closure/goog/dom/tagiterator.js b/edit/closure-library/closure/goog/dom/tagiterator.js similarity index 100% rename from master/closure-library/closure/goog/dom/tagiterator.js rename to edit/closure-library/closure/goog/dom/tagiterator.js diff --git a/master/closure-library/closure/goog/dom/tagname.js b/edit/closure-library/closure/goog/dom/tagname.js similarity index 100% rename from master/closure-library/closure/goog/dom/tagname.js rename to edit/closure-library/closure/goog/dom/tagname.js diff --git a/master/closure-library/closure/goog/dom/textrange.js b/edit/closure-library/closure/goog/dom/textrange.js similarity index 95% rename from master/closure-library/closure/goog/dom/textrange.js rename to edit/closure-library/closure/goog/dom/textrange.js index 1be6b5770d..73b82ac1ab 100644 --- a/master/closure-library/closure/goog/dom/textrange.js +++ b/edit/closure-library/closure/goog/dom/textrange.js @@ -113,14 +113,14 @@ goog.dom.TextRange.createFromNodes = function(anchorNode, anchorOffset, range.isReversed_ = goog.dom.Range.isReversed(anchorNode, anchorOffset, focusNode, focusOffset); - // Avoid selecting BRs directly - if (anchorNode.tagName == 'BR') { + // Avoid selecting terminal elements directly + if (goog.dom.isElement(anchorNode) && !goog.dom.canHaveChildren(anchorNode)) { var parent = anchorNode.parentNode; anchorOffset = goog.array.indexOf(parent.childNodes, anchorNode); anchorNode = parent; } - if (focusNode.tagName == 'BR') { + if (goog.dom.isElement(focusNode) && !goog.dom.canHaveChildren(focusNode)) { var parent = focusNode.parentNode; focusOffset = goog.array.indexOf(parent.childNodes, focusNode); focusNode = parent; @@ -301,6 +301,14 @@ goog.dom.TextRange.prototype.getStartOffset = function() { }; +/** @override */ +goog.dom.TextRange.prototype.getStartPosition = function() { + return this.isReversed() ? + this.getBrowserRangeWrapper_().getEndPosition() : + this.getBrowserRangeWrapper_().getStartPosition(); +}; + + /** @override */ goog.dom.TextRange.prototype.getEndNode = function() { return this.endNode_ || @@ -315,6 +323,14 @@ goog.dom.TextRange.prototype.getEndOffset = function() { }; +/** @override */ +goog.dom.TextRange.prototype.getEndPosition = function() { + return this.isReversed() ? + this.getBrowserRangeWrapper_().getStartPosition() : + this.getBrowserRangeWrapper_().getEndPosition(); +}; + + /** * Moves a TextRange to the provided nodes and offsets. * @param {Node} startNode The node to start with. @@ -365,7 +381,7 @@ goog.dom.TextRange.prototype.containsRange = function(otherRange, * @return {boolean} Whether the given node is in the given document. */ goog.dom.TextRange.isAttachedNode = function(node) { - if (goog.userAgent.IE && !goog.userAgent.isDocumentMode(9)) { + if (goog.userAgent.IE && !goog.userAgent.isDocumentModeOrHigher(9)) { var returnValue = false; /** @preserveTry */ try { @@ -391,7 +407,7 @@ goog.dom.TextRange.prototype.isRangeInDocument = function() { goog.dom.TextRange.isAttachedNode(this.startNode_)) && (!this.endNode_ || goog.dom.TextRange.isAttachedNode(this.endNode_)) && - (!(goog.userAgent.IE && !goog.userAgent.isDocumentMode(9)) || + (!(goog.userAgent.IE && !goog.userAgent.isDocumentModeOrHigher(9)) || this.getBrowserRangeWrapper_().isRangeInDocument()); }; diff --git a/master/closure-library/closure/goog/dom/textrangeiterator.js b/edit/closure-library/closure/goog/dom/textrangeiterator.js similarity index 100% rename from master/closure-library/closure/goog/dom/textrangeiterator.js rename to edit/closure-library/closure/goog/dom/textrangeiterator.js diff --git a/edit/closure-library/closure/goog/dom/vendor.js b/edit/closure-library/closure/goog/dom/vendor.js new file mode 100644 index 0000000000..8787f66615 --- /dev/null +++ b/edit/closure-library/closure/goog/dom/vendor.js @@ -0,0 +1,62 @@ +// Copyright 2012 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview Vendor prefix getters. + */ + +goog.provide('goog.dom.vendor'); + +goog.require('goog.userAgent'); + + +/** + * Returns the JS vendor prefix used in CSS properties. Different vendors + * use different methods of changing the case of the property names. + * + * @return {?string} The JS vendor prefix or null if there is none. + */ +goog.dom.vendor.getVendorJsPrefix = function() { + if (goog.userAgent.WEBKIT) { + return 'Webkit'; + } else if (goog.userAgent.GECKO) { + return 'Moz'; + } else if (goog.userAgent.IE) { + return 'ms'; + } else if (goog.userAgent.OPERA) { + return 'O'; + } + + return null; +}; + + +/** + * Returns the vendor prefix used in CSS properties. + * + * @return {?string} The vendor prefix or null if there is none. + */ +goog.dom.vendor.getVendorPrefix = function() { + if (goog.userAgent.WEBKIT) { + return '-webkit'; + } else if (goog.userAgent.GECKO) { + return '-moz'; + } else if (goog.userAgent.IE) { + return '-ms'; + } else if (goog.userAgent.OPERA) { + return '-o'; + } + + return null; +}; diff --git a/master/closure-library/closure/goog/dom/viewportsizemonitor.js b/edit/closure-library/closure/goog/dom/viewportsizemonitor.js similarity index 78% rename from master/closure-library/closure/goog/dom/viewportsizemonitor.js rename to edit/closure-library/closure/goog/dom/viewportsizemonitor.js index 8bc2423b39..692687000c 100644 --- a/master/closure-library/closure/goog/dom/viewportsizemonitor.js +++ b/edit/closure-library/closure/goog/dom/viewportsizemonitor.js @@ -26,7 +26,6 @@ goog.require('goog.events'); goog.require('goog.events.EventTarget'); goog.require('goog.events.EventType'); goog.require('goog.math.Size'); -goog.require('goog.userAgent'); @@ -51,8 +50,7 @@ goog.require('goog.userAgent'); * }); * * - * Manually verified on IE6, IE7, FF2, Opera 9, and WebKit. {@code getSize} - * doesn't always return the correct viewport height on Safari 2.0.4. + * Manually verified on IE6, IE7, FF2, Opera 11, Safari 4 and Chrome. * * @param {Window=} opt_window The window to monitor; defaults to the window in * which this code is executing. @@ -71,12 +69,6 @@ goog.dom.ViewportSizeMonitor = function(opt_window) { // Set the initial size. this.size_ = goog.dom.getViewportSize(this.window_); - - if (this.isPollingRequired_()) { - this.windowSizePollInterval_ = window.setInterval( - goog.bind(this.checkForSizeChange_, this), - goog.dom.ViewportSizeMonitor.WINDOW_SIZE_POLL_RATE); - } }; goog.inherits(goog.dom.ViewportSizeMonitor, goog.events.EventTarget); @@ -122,18 +114,10 @@ goog.dom.ViewportSizeMonitor.removeInstanceForWindow = function(opt_window) { goog.dom.ViewportSizeMonitor.windowInstanceMap_ = {}; -/** - * Rate in milliseconds at which to poll the window size on browsers that - * need polling. - * @type {number} - */ -goog.dom.ViewportSizeMonitor.WINDOW_SIZE_POLL_RATE = 500; - - /** * Event listener key for window the window resize handler, as returned by * {@link goog.events.listen}. - * @type {?number} + * @type {goog.events.Key} * @private */ goog.dom.ViewportSizeMonitor.prototype.listenerKey_ = null; @@ -155,27 +139,6 @@ goog.dom.ViewportSizeMonitor.prototype.window_ = null; goog.dom.ViewportSizeMonitor.prototype.size_ = null; -/** - * Identifier for the interval used for polling the window size on Windows - * Safari. - * @type {?number} - * @private - */ -goog.dom.ViewportSizeMonitor.prototype.windowSizePollInterval_ = null; - - -/** - * Checks if polling is required for this user agent. Opera only requires - * polling when the page is loaded within an IFRAME. - * @return {boolean} Whether polling is required. - * @private - */ -goog.dom.ViewportSizeMonitor.prototype.isPollingRequired_ = function() { - return goog.userAgent.WEBKIT && goog.userAgent.WINDOWS || - goog.userAgent.OPERA && this.window_.self != this.window_.top; -}; - - /** * Returns the most recently recorded size of the viewport, in pixels. May * return null if no window resize event has been handled yet. @@ -196,11 +159,6 @@ goog.dom.ViewportSizeMonitor.prototype.disposeInternal = function() { this.listenerKey_ = null; } - if (this.windowSizePollInterval_) { - window.clearInterval(this.windowSizePollInterval_); - this.windowSizePollInterval_ = null; - } - this.window_ = null; this.size_ = null; }; @@ -214,17 +172,6 @@ goog.dom.ViewportSizeMonitor.prototype.disposeInternal = function() { * @private */ goog.dom.ViewportSizeMonitor.prototype.handleResize_ = function(event) { - this.checkForSizeChange_(); -}; - - -/** - * Measures the dimensions of the viewport and dispatches a - * {@link goog.events.EventType.RESIZE} event if the current dimensions are - * different from the previous ones. - * @private - */ -goog.dom.ViewportSizeMonitor.prototype.checkForSizeChange_ = function() { var size = goog.dom.getViewportSize(this.window_); if (!goog.math.Size.equals(size, this.size_)) { this.size_ = size; diff --git a/master/closure-library/closure/goog/dom/xml.js b/edit/closure-library/closure/goog/dom/xml.js similarity index 100% rename from master/closure-library/closure/goog/dom/xml.js rename to edit/closure-library/closure/goog/dom/xml.js diff --git a/master/closure-library/closure/goog/editor/browserfeature.js b/edit/closure-library/closure/goog/editor/browserfeature.js similarity index 87% rename from master/closure-library/closure/goog/editor/browserfeature.js rename to edit/closure-library/closure/goog/editor/browserfeature.js index 678dd04df1..4f50e46d38 100644 --- a/master/closure-library/closure/goog/editor/browserfeature.js +++ b/edit/closure-library/closure/goog/editor/browserfeature.js @@ -32,13 +32,13 @@ goog.require('goog.userAgent.product.isVersion'); */ goog.editor.BrowserFeature = { // Whether this browser uses the IE TextRange object. - HAS_IE_RANGES: goog.userAgent.IE && !goog.userAgent.isDocumentMode(9), + HAS_IE_RANGES: goog.userAgent.IE && !goog.userAgent.isDocumentModeOrHigher(9), // Whether this browser uses the W3C standard Range object. // Assumes IE higher versions will be compliance with W3C standard. HAS_W3C_RANGES: goog.userAgent.GECKO || goog.userAgent.WEBKIT || goog.userAgent.OPERA || - (goog.userAgent.IE && goog.userAgent.isDocumentMode(9)), + (goog.userAgent.IE && goog.userAgent.isDocumentModeOrHigher(9)), // Has the contentEditable attribute, which makes nodes editable. // @@ -57,7 +57,7 @@ goog.editor.BrowserFeature = { HAS_CONTENT_EDITABLE: goog.userAgent.IE || goog.userAgent.WEBKIT || goog.userAgent.OPERA || (goog.editor.defines.USE_CONTENTEDITABLE_IN_FIREFOX_3 && - goog.userAgent.GECKO && goog.userAgent.isVersion('1.9')), + goog.userAgent.GECKO && goog.userAgent.isVersionOrHigher('1.9')), // Whether to use mutation event types to detect changes // in the field contents. @@ -69,7 +69,7 @@ goog.editor.BrowserFeature = { // we have no other choice in that case but to use this event. HAS_DOM_SUBTREE_MODIFIED_EVENT: goog.userAgent.WEBKIT || (goog.editor.defines.USE_CONTENTEDITABLE_IN_FIREFOX_3 && - goog.userAgent.GECKO && goog.userAgent.isVersion('1.9')), + goog.userAgent.GECKO && goog.userAgent.isVersionOrHigher('1.9')), // Whether nodes can be copied from one document to another HAS_DOCUMENT_INDEPENDENT_NODES: goog.userAgent.GECKO, @@ -94,7 +94,8 @@ goog.editor.BrowserFeature = { // Whether this browser's "FormatBlock" command may create multiple // blockquotes. CREATES_MULTIPLE_BLOCKQUOTES: - (goog.userAgent.WEBKIT && !goog.userAgent.isVersion('534.16')) || + (goog.userAgent.WEBKIT && + !goog.userAgent.isVersionOrHigher('534.16')) || goog.userAgent.OPERA, // Whether this browser's "FormatBlock" command will wrap blockquotes @@ -116,7 +117,9 @@ goog.editor.BrowserFeature = { // Whether keyboard events only reliably fire on the document. // On Gecko without contentEditable, keyboard events only fire reliably on the // document element. With contentEditable, the field itself is focusable, - // which means that it will fire key events. + // which means that it will fire key events. This does not apply if + // application is using ContentEditableField or otherwise overriding Field + // not to use an iframe. USE_DOCUMENT_FOR_KEY_EVENTS: goog.userAgent.GECKO && !goog.editor.defines.USE_CONTENTEDITABLE_IN_FIREFOX_3, @@ -138,21 +141,22 @@ goog.editor.BrowserFeature = { // Whether this browser unescapes urls when you extract it from the href tag. UNESCAPES_URLS_WITHOUT_ASKING: goog.userAgent.IE && - !goog.userAgent.isVersion('7.0'), + !goog.userAgent.isVersionOrHigher('7.0'), // Whether this browser supports execCommand("styleWithCSS") to toggle between // inserting html tags or inline styling for things like bold, italic, etc. HAS_STYLE_WITH_CSS: - goog.userAgent.GECKO && goog.userAgent.isVersion('1.8') || + goog.userAgent.GECKO && goog.userAgent.isVersionOrHigher('1.8') || goog.userAgent.WEBKIT || goog.userAgent.OPERA, // Whether clicking on an editable link will take you to that site. - FOLLOWS_EDITABLE_LINKS: goog.userAgent.WEBKIT, + FOLLOWS_EDITABLE_LINKS: goog.userAgent.WEBKIT || + goog.userAgent.IE && goog.userAgent.isVersionOrHigher('9'), // Whether this browser has document.activeElement available. HAS_ACTIVE_ELEMENT: goog.userAgent.IE || goog.userAgent.OPERA || - goog.userAgent.GECKO && goog.userAgent.isVersion('1.9'), + goog.userAgent.GECKO && goog.userAgent.isVersionOrHigher('1.9'), // Whether this browser supports the setCapture method on DOM elements. HAS_SET_CAPTURE: goog.userAgent.IE, @@ -160,7 +164,7 @@ goog.editor.BrowserFeature = { // Whether this browser can't set background color when the selection // is collapsed. EATS_EMPTY_BACKGROUND_COLOR: goog.userAgent.GECKO || - goog.userAgent.WEBKIT && !goog.userAgent.isVersion('527'), + goog.userAgent.WEBKIT && !goog.userAgent.isVersionOrHigher('527'), // Whether this browser supports the "focusin" or "DOMFocusIn" event // consistently. @@ -197,26 +201,26 @@ goog.editor.BrowserFeature = { // Whether to use keydown for key listening (uses keypress otherwise). Taken // from goog.events.KeyHandler. USES_KEYDOWN: goog.userAgent.IE || - goog.userAgent.WEBKIT && goog.userAgent.isVersion('525'), + goog.userAgent.WEBKIT && goog.userAgent.isVersionOrHigher('525'), // Whether this browser converts spaces to non-breaking spaces when calling // execCommand's RemoveFormat. // See: https://bugs.webkit.org/show_bug.cgi?id=14062 ADDS_NBSPS_IN_REMOVE_FORMAT: - goog.userAgent.WEBKIT && !goog.userAgent.isVersion('531'), + goog.userAgent.WEBKIT && !goog.userAgent.isVersionOrHigher('531'), // Whether the browser will get stuck inside a link. That is, if your cursor // is after a link and you type, does your text go inside the link tag. // Bug: http://bugs.webkit.org/show_bug.cgi?id=17697 GETS_STUCK_IN_LINKS: - goog.userAgent.WEBKIT && !goog.userAgent.isVersion('528'), + goog.userAgent.WEBKIT && !goog.userAgent.isVersionOrHigher('528'), // Whether the browser corrupts empty text nodes in Node#normalize, // removing them from the Document instead of merging them. NORMALIZE_CORRUPTS_EMPTY_TEXT_NODES: goog.userAgent.GECKO && - goog.userAgent.isVersion('1.9') || goog.userAgent.IE || + goog.userAgent.isVersionOrHigher('1.9') || goog.userAgent.IE || goog.userAgent.OPERA || - goog.userAgent.WEBKIT && goog.userAgent.isVersion('531'), + goog.userAgent.WEBKIT && goog.userAgent.isVersionOrHigher('531'), // Whether the browser corrupts all text nodes in Node#normalize, // removing them from the Document instead of merging them. @@ -232,7 +236,7 @@ goog.editor.BrowserFeature = { CAN_SELECT_EMPTY_ELEMENT: !goog.userAgent.IE && !goog.userAgent.WEBKIT, FORGETS_FORMATTING_WHEN_LISTIFYING: goog.userAgent.GECKO || - goog.userAgent.WEBKIT && !goog.userAgent.isVersion('526'), + goog.userAgent.WEBKIT && !goog.userAgent.isVersionOrHigher('526'), LEAVES_P_WHEN_REMOVING_LISTS: goog.userAgent.IE || goog.userAgent.OPERA, @@ -249,9 +253,12 @@ goog.editor.BrowserFeature = { // browser: http://www.whatwg/org/specs/web-apps/current-work/#dnd SUPPORTS_HTML5_FILE_DRAGGING: (goog.userAgent.product.CHROME && goog.userAgent.product.isVersion('4')) || - (goog.userAgent.product.SAFARI && goog.userAgent.isVersion('533')) || - (goog.userAgent.GECKO && goog.userAgent.isVersion('2.0')) || - (goog.userAgent.IE && goog.userAgent.isVersion('10')), + (goog.userAgent.product.SAFARI && + goog.userAgent.isVersionOrHigher('533')) || + (goog.userAgent.GECKO && + goog.userAgent.isVersionOrHigher('2.0')) || + (goog.userAgent.IE && + goog.userAgent.isVersionOrHigher('10')), // Version of Opera that supports the opera-defaultBlock execCommand to change // the default block inserted when [return] is pressed. Note that this only is @@ -259,7 +266,7 @@ goog.editor.BrowserFeature = { // TODO(user): Link to public documentation of this feature if Opera puts // something up about it. SUPPORTS_OPERA_DEFAULTBLOCK_COMMAND: - goog.userAgent.OPERA && goog.userAgent.isVersion('11.10'), + goog.userAgent.OPERA && goog.userAgent.isVersionOrHigher('11.10'), SUPPORTS_FILE_PASTING: goog.userAgent.product.CHROME && goog.userAgent.product.isVersion('12') diff --git a/master/closure-library/closure/goog/editor/clicktoeditwrapper.js b/edit/closure-library/closure/goog/editor/clicktoeditwrapper.js similarity index 99% rename from master/closure-library/closure/goog/editor/clicktoeditwrapper.js rename to edit/closure-library/closure/goog/editor/clicktoeditwrapper.js index d3d80985a9..b4ea233b66 100644 --- a/master/closure-library/closure/goog/editor/clicktoeditwrapper.js +++ b/edit/closure-library/closure/goog/editor/clicktoeditwrapper.js @@ -28,7 +28,6 @@ goog.provide('goog.editor.ClickToEditWrapper'); goog.require('goog.Disposable'); goog.require('goog.asserts'); -goog.require('goog.debug.Logger'); goog.require('goog.dom'); goog.require('goog.dom.Range'); goog.require('goog.dom.TagName'); @@ -39,6 +38,7 @@ goog.require('goog.editor.range'); goog.require('goog.events.BrowserEvent.MouseButton'); goog.require('goog.events.EventHandler'); goog.require('goog.events.EventType'); +goog.require('goog.log'); @@ -115,11 +115,11 @@ goog.inherits(goog.editor.ClickToEditWrapper, goog.Disposable); /** * The logger for this class. - * @type {goog.debug.Logger} + * @type {goog.log.Logger} * @private */ goog.editor.ClickToEditWrapper.prototype.logger_ = - goog.debug.Logger.getLogger('goog.editor.ClickToEditWrapper'); + goog.log.getLogger('goog.editor.ClickToEditWrapper'); /** @return {goog.editor.Field} The field. */ diff --git a/master/closure-library/closure/goog/editor/command.js b/edit/closure-library/closure/goog/editor/command.js similarity index 100% rename from master/closure-library/closure/goog/editor/command.js rename to edit/closure-library/closure/goog/editor/command.js diff --git a/master/closure-library/closure/goog/editor/contenteditablefield.js b/edit/closure-library/closure/goog/editor/contenteditablefield.js similarity index 96% rename from master/closure-library/closure/goog/editor/contenteditablefield.js rename to edit/closure-library/closure/goog/editor/contenteditablefield.js index e68dff6ecb..b5fd6bbebc 100644 --- a/master/closure-library/closure/goog/editor/contenteditablefield.js +++ b/edit/closure-library/closure/goog/editor/contenteditablefield.js @@ -32,8 +32,8 @@ goog.provide('goog.editor.ContentEditableField'); goog.require('goog.asserts'); -goog.require('goog.debug.Logger'); goog.require('goog.editor.Field'); +goog.require('goog.log'); @@ -46,7 +46,7 @@ goog.require('goog.editor.Field'); * @param {string} id An identifer for the field. This is used to find the * field and the element associated with this field. * @param {Document=} opt_doc The document that the element with the given - * id can be found it. + * id can be found in. * @constructor * @extends {goog.editor.Field} */ @@ -60,7 +60,7 @@ goog.inherits(goog.editor.ContentEditableField, goog.editor.Field); * @override */ goog.editor.ContentEditableField.prototype.logger = - goog.debug.Logger.getLogger('goog.editor.ContentEditableField'); + goog.log.getLogger('goog.editor.ContentEditableField'); /** @override */ diff --git a/master/closure-library/closure/goog/editor/defines.js b/edit/closure-library/closure/goog/editor/defines.js similarity index 94% rename from master/closure-library/closure/goog/editor/defines.js rename to edit/closure-library/closure/goog/editor/defines.js index 488309965c..1bf57ba657 100644 --- a/master/closure-library/closure/goog/editor/defines.js +++ b/edit/closure-library/closure/goog/editor/defines.js @@ -31,4 +31,4 @@ goog.provide('goog.editor.defines'); * it through a QA run. If we can file the bugs with Mozilla, there's a chance * they'll fix them for a dot release of Firefox 3. */ -goog.editor.defines.USE_CONTENTEDITABLE_IN_FIREFOX_3 = false; +goog.define('goog.editor.defines.USE_CONTENTEDITABLE_IN_FIREFOX_3', false); diff --git a/master/closure-library/closure/goog/editor/field.js b/edit/closure-library/closure/goog/editor/field.js similarity index 95% rename from master/closure-library/closure/goog/editor/field.js rename to edit/closure-library/closure/goog/editor/field.js index cd66ea211c..41d5955237 100644 --- a/master/closure-library/closure/goog/editor/field.js +++ b/edit/closure-library/closure/goog/editor/field.js @@ -25,13 +25,14 @@ goog.provide('goog.editor.Field'); goog.provide('goog.editor.Field.EventType'); +goog.require('goog.a11y.aria'); +goog.require('goog.a11y.aria.Role'); goog.require('goog.array'); +goog.require('goog.asserts'); goog.require('goog.async.Delay'); -goog.require('goog.debug.Logger'); goog.require('goog.dom'); goog.require('goog.dom.Range'); goog.require('goog.dom.TagName'); -goog.require('goog.dom.classes'); goog.require('goog.editor.BrowserFeature'); goog.require('goog.editor.Command'); goog.require('goog.editor.Plugin'); @@ -46,6 +47,7 @@ goog.require('goog.events.EventTarget'); goog.require('goog.events.EventType'); goog.require('goog.events.KeyCodes'); goog.require('goog.functions'); +goog.require('goog.log'); goog.require('goog.string'); goog.require('goog.string.Unicode'); goog.require('goog.style'); @@ -200,11 +202,11 @@ goog.editor.Field.prototype.originalElement = null; /** * Logging object. - * @type {goog.debug.Logger} + * @type {goog.log.Logger} * @protected */ goog.editor.Field.prototype.logger = - goog.debug.Logger.getLogger('goog.editor.Field'); + goog.log.getLogger('goog.editor.Field'); /** @@ -253,10 +255,15 @@ goog.editor.Field.EventType = { */ BLUR: 'blur', /** - * Dispach before tab is handled by the field. This is a legacy way + * Dispatched before tab is handled by the field. This is a legacy way * of controlling tab behavior. Use trog.plugins.AbstractTabHandler now. */ BEFORETAB: 'beforetab', + /** + * Dispatched after the iframe containing the field is resized, so that UI + * components which contain it can respond. + */ + IFRAME_RESIZED: 'ifrsz', /** * Dispatched when the selection changes. * Use handleSelectionChange from plugin API instead of listening @@ -333,6 +340,22 @@ goog.editor.Field.prototype.originalDomHelper; goog.editor.Field.prototype.selectionChangeTarget_; +/** + * Flag controlling wether to capture mouse up events on the window or not. + * @type {boolean} + * @private + */ +goog.editor.Field.prototype.useWindowMouseUp_ = false; + + +/** + * FLag indicating the handling of a mouse event sequence. + * @type {boolean} + * @private + */ +goog.editor.Field.prototype.waitingForMouseUp_ = false; + + /** * Sets the active field id. * @param {?string} fieldId The active field id. @@ -350,6 +373,18 @@ goog.editor.Field.getActiveFieldId = function() { }; +/** + * Sets flag to control whether to use window mouse up after seeing + * a mouse down operation on the field. + * @param {boolean} flag True to track window mouse up. + */ +goog.editor.Field.prototype.setUseWindowMouseUp = function(flag) { + goog.asserts.assert(!flag || !this.usesIframe(), + 'procssing window mouse up should only be enabled when not using iframe'); + this.useWindowMouseUp_ = flag; +}; + + /** * @return {boolean} Whether we're in modal interaction mode. When this * returns true, another plugin is interacting with the field contents @@ -418,8 +453,10 @@ goog.editor.Field.prototype.getOriginalElement = function() { goog.editor.Field.prototype.addListener = function(type, listener, opt_capture, opt_handler) { var elem = this.getElement(); - // On Gecko, keyboard events only reliably fire on the document element. - if (elem && goog.editor.BrowserFeature.USE_DOCUMENT_FOR_KEY_EVENTS) { + // On Gecko, keyboard events only reliably fire on the document element when + // using an iframe. + if (goog.editor.BrowserFeature.USE_DOCUMENT_FOR_KEY_EVENTS && elem && + this.usesIframe()) { elem = elem.ownerDocument; } this.eventRegister.listen(elem, type, listener, opt_capture, opt_handler); @@ -443,7 +480,8 @@ goog.editor.Field.prototype.getPluginByClassId = function(classId) { goog.editor.Field.prototype.registerPlugin = function(plugin) { var classId = plugin.getTrogClassId(); if (this.plugins_[classId]) { - this.logger.severe('Cannot register the same class of plugin twice.'); + goog.log.error(this.logger, + 'Cannot register the same class of plugin twice.'); } this.plugins_[classId] = plugin; @@ -472,7 +510,8 @@ goog.editor.Field.prototype.registerPlugin = function(plugin) { goog.editor.Field.prototype.unregisterPlugin = function(plugin) { var classId = plugin.getTrogClassId(); if (!this.plugins_[classId]) { - this.logger.severe('Cannot unregister a plugin that isn\'t registered.'); + goog.log.error(this.logger, + 'Cannot unregister a plugin that isn\'t registered.'); } delete this.plugins_[classId]; @@ -506,6 +545,7 @@ goog.editor.Field.prototype.resetOriginalElemProperties = function() { var field = this.getOriginalElement(); field.removeAttribute('contentEditable'); field.removeAttribute('g_editable'); + field.removeAttribute('role'); if (!this.id) { field.removeAttribute('id'); @@ -609,9 +649,9 @@ goog.editor.Field.CTRL_KEYS_CAUSING_CHANGES_ = { 88: true // X }; -if (goog.userAgent.IE) { - // In IE input from IME (Input Method Editor) does not generate keypress - // event so we have to rely on the keydown event. This way we have +if (goog.userAgent.WINDOWS && !goog.userAgent.GECKO) { + // In IE and Webkit, input from IME (Input Method Editor) does not generate a + // keypress event so we have to rely on the keydown event. This way we have // false positives while the user is using keyboard to select the // character to input, but it is still better than the false negatives // that ignores user's final input at all. @@ -712,6 +752,7 @@ goog.editor.Field.prototype.setupFieldObject = function(field) { this.isModified_ = false; this.isEverModified_ = false; field.setAttribute('g_editable', 'true'); + goog.a11y.aria.setRole(field, goog.a11y.aria.Role.TEXTBOX); }; @@ -840,7 +881,13 @@ goog.editor.Field.prototype.setupChangeListeners_ = function() { } this.addListener(goog.events.EventType.MOUSEDOWN, this.handleMouseDown_); - this.addListener(goog.events.EventType.MOUSEUP, this.handleMouseUp_); + if (this.useWindowMouseUp_) { + this.eventRegister.listen(this.editableDomHelper.getDocument(), + goog.events.EventType.MOUSEUP, this.handleMouseUp_); + this.addListener(goog.events.EventType.DRAGSTART, this.handleDragStart_); + } else { + this.addListener(goog.events.EventType.MOUSEUP, this.handleMouseUp_); + } }; @@ -902,7 +949,7 @@ goog.editor.Field.prototype.clearListeners = function() { /** @override */ goog.editor.Field.prototype.disposeInternal = function() { if (this.isLoading() || this.isLoaded()) { - this.logger.warning('Disposing a field that is in use.'); + goog.log.warning(this.logger, 'Disposing a field that is in use.'); } if (this.getOriginalElement()) { @@ -977,7 +1024,10 @@ goog.editor.Field.MUTATION_EVENTS_GECKO = [ * @protected */ goog.editor.Field.prototype.setupMutationEventHandlersGecko = function() { - if (goog.editor.BrowserFeature.HAS_DOM_SUBTREE_MODIFIED_EVENT) { + // Always use DOMSubtreeModified on Gecko when not using an iframe so that + // DOM mutations outside the Field do not trigger handleMutationEventGecko_. + if (goog.editor.BrowserFeature.HAS_DOM_SUBTREE_MODIFIED_EVENT || + !this.usesIframe()) { this.eventRegister.listen(this.getElement(), 'DOMSubtreeModified', this.handleMutationEventGecko_); } else { @@ -1186,7 +1236,7 @@ goog.editor.Field.prototype.injectContents = function(contents, field) { var styles = {}; var newHtml = this.getInjectableContents(contents, styles); goog.style.setStyle(field, styles); - field.innerHTML = newHtml; + goog.editor.node.replaceInnerHtml(field, newHtml); }; @@ -1927,11 +1977,7 @@ goog.editor.Field.cancelLinkClick_ = function(e) { * @private */ goog.editor.Field.prototype.handleMouseDown_ = function(e) { - // If the user clicks on an object (like an image) in the field - // and the activeField is not set, set it. - if (!goog.editor.Field.getActiveFieldId()) { - goog.editor.Field.setActiveFieldId(this.id); - } + goog.editor.Field.setActiveFieldId(this.id); // Open links in a new window if the user control + clicks. if (goog.userAgent.IE) { @@ -1941,6 +1987,18 @@ goog.editor.Field.prototype.handleMouseDown_ = function(e) { this.originalDomHelper.getWindow().open(targetElement.href); } } + this.waitingForMouseUp_ = true; +}; + + +/** + * Handle drag start. Needs to cancel listening for the mouse up event on the + * window. + * @param {goog.events.BrowserEvent} e The event. + * @private + */ +goog.editor.Field.prototype.handleDragStart_ = function(e) { + this.waitingForMouseUp_ = false; }; @@ -1950,6 +2008,11 @@ goog.editor.Field.prototype.handleMouseDown_ = function(e) { * @private */ goog.editor.Field.prototype.handleMouseUp_ = function(e) { + if (this.useWindowMouseUp_ && !this.waitingForMouseUp_) { + return; + } + this.waitingForMouseUp_ = false; + /* * We fire a selection change event immediately for listeners that depend on * the native browser event object (e). On IE, a listener that tries to @@ -1985,7 +2048,8 @@ goog.editor.Field.prototype.getCleanContents = function() { // The field is uneditable, so it's ok to read contents directly. var elem = this.getOriginalElement(); if (!elem) { - this.logger.shout("Couldn't get the field element to read the contents"); + goog.log.log(this.logger, goog.log.Level.SHOUT, + "Couldn't get the field element to read the contents"); } return elem.innerHTML; } @@ -2035,7 +2099,7 @@ goog.editor.Field.prototype.getFieldCopy = function() { goog.editor.Field.prototype.setHtml = function( addParas, html, opt_dontFireDelayedChange, opt_applyLorem) { if (this.isLoading()) { - this.logger.severe("Can't set html while loading Trogedit"); + goog.log.error(this.logger, "Can't set html while loading Trogedit"); return; } @@ -2156,7 +2220,7 @@ goog.editor.Field.prototype.dispatchLoadEvent_ = function() { this.installStyles(); this.startChangeEvents(); - this.logger.info('Dispatching load ' + this.id); + goog.log.info(this.logger, 'Dispatching load ' + this.id); this.dispatchEvent(goog.editor.Field.EventType.LOAD); }; @@ -2273,6 +2337,24 @@ goog.editor.Field.prototype.placeCursorAtStartOrEnd_ = function(isStart) { }; +/** + * Restore a saved range, and set the focus on the field. + * If no range is specified, we simply set the focus. + * @param {goog.dom.SavedRange=} opt_range A previously saved selected range. + */ +goog.editor.Field.prototype.restoreSavedRange = function(opt_range) { + if (goog.userAgent.IE) { + this.focus(); + } + if (opt_range) { + opt_range.restore(); + } + if (!goog.userAgent.IE) { + this.focus(); + } +}; + + /** * Makes a field editable. * @@ -2384,7 +2466,7 @@ goog.editor.Field.prototype.makeUneditable = function(opt_skipRestore) { // so that the original node will have the same properties as it did before // it was made editable. if (goog.isString(html)) { - field.innerHTML = html; + goog.editor.node.replaceInnerHtml(field, html); this.resetOriginalElemProperties(); } diff --git a/master/closure-library/closure/goog/editor/field_test.js b/edit/closure-library/closure/goog/editor/field_test.js similarity index 88% rename from master/closure-library/closure/goog/editor/field_test.js rename to edit/closure-library/closure/goog/editor/field_test.js index c2c782cebf..114ce82d12 100644 --- a/master/closure-library/closure/goog/editor/field_test.js +++ b/edit/closure-library/closure/goog/editor/field_test.js @@ -22,22 +22,26 @@ * @author gboyer@google.com (Garrett Boyer) */ +/** @suppress {extraProvide} */ goog.provide('goog.editor.field_test'); +goog.require('goog.dom'); goog.require('goog.dom.Range'); +goog.require('goog.editor.BrowserFeature'); goog.require('goog.editor.Field'); goog.require('goog.editor.Plugin'); -goog.require('goog.editor.Command'); +goog.require('goog.editor.range'); goog.require('goog.events'); +goog.require('goog.events.BrowserEvent'); goog.require('goog.events.KeyCodes'); goog.require('goog.functions'); goog.require('goog.testing.LooseMock'); goog.require('goog.testing.MockClock'); goog.require('goog.testing.dom'); goog.require('goog.testing.events'); +goog.require('goog.testing.events.Event'); goog.require('goog.testing.recordFunction'); goog.require('goog.userAgent'); -goog.require('goog.userAgent.product'); goog.setTestOnly('Tests for goog.editor.*Field'); @@ -61,7 +65,7 @@ function tearDown() { // it is lame. It manifests its lameness by throwing an exception. // Kudos to XT for helping me to figure this out. try { - goog.events.removeAll(); + goog.events.removeAllNativeListeners(); } catch (e) {} } @@ -206,9 +210,10 @@ function testDisposed_PluginAutoDispose() { var STRING_KEY = String.fromCharCode(goog.events.KeyCodes.A).toLowerCase(); + /** * @return {goog.events.Event} Returns an event for a keyboard shortcut - * for the letter 'a' + * for the letter 'a'. */ function getBrowserEvent() { var e = new goog.events.BrowserEvent(); @@ -550,7 +555,7 @@ function testPluginExecCommand() { plugin.execCommand = function(command, arg) { passedCommand = command; passedArg = arg; - } + }; var editableField = new FieldConstructor('testField'); editableField.registerPlugin(plugin); @@ -840,7 +845,7 @@ function testSelectionChangeOnMouseUp() { assertEquals('Second selection change should fire immediately', 2, selectionChanges.getCallCount()); assertEquals('Plugin should have handled second selection change immediately', - 2, plugin.handleSelectionChange.getCallCount()); + 2, plugin.handleSelectionChange.getCallCount()); var args = plugin.handleSelectionChange.getLastCall().getArguments(); assertTrue('Plugin should not have received data from extra firing', args.length == 0 || @@ -999,7 +1004,8 @@ function doTestPlaceCursorAtStart(opt_html, opt_parentId) { var startNode = opt_parentId ? editableField.getEditableDomHelper().getElement(opt_parentId).firstChild : textNode ? textNode : editableField.getElement(); - if (goog.userAgent.WEBKIT && !goog.userAgent.isVersion('528')) { + if (goog.userAgent.WEBKIT && + !goog.userAgent.isVersionOrHigher('528')) { // Safari 3 seems to normalize the selection to the shallowest endpoint (in // this case the editable element) in all cases tested below. This is OK // because when you start typing it magically inserts the text at the @@ -1014,6 +1020,45 @@ function doTestPlaceCursorAtStart(opt_html, opt_parentId) { } +/** + * Verify that restoreSavedRange() restores the range and sets the focus. + */ +function testRestoreSavedRange() { + var editableField = new FieldConstructor('testField', document); + editableField.makeEditable(); + + + // Create another node to take the focus later. + var doc = goog.dom.getOwnerDocument(editableField.getElement()); + var otherElem = doc.createElement('div'); + otherElem.tabIndex = '1'; // Make it focusable. + editableField.getElement().parentNode.appendChild(otherElem); + + // Initially place selection not at the start of the editable field. + var textNode = editableField.getElement().firstChild; + var range = goog.dom.Range.createFromNodes(textNode, 1, textNode, 2); + range.select(); + var savedRange = goog.editor.range.saveUsingNormalizedCarets(range); + + // Change range to be a simple cursor at start, and move focus away. + editableField.placeCursorAtStart(); + otherElem.focus(); + + editableField.restoreSavedRange(savedRange); + + // Verify that we have focus and the range is restored. + assertEquals('Field should be focused', + editableField.getElement(), + goog.dom.getActiveElement(doc)); + var newRange = editableField.getRange(); + assertEquals('Range startNode', textNode, newRange.getStartNode()); + assertEquals('Range startOffset', 1, newRange.getStartOffset()); + assertEquals('Range endNode', textNode, newRange.getEndNode()); + assertEquals('Range endOffset', 2, newRange.getEndOffset()); + +} + + function testPlaceCursorAtStart() { doTestPlaceCursorAtStart(); } @@ -1039,7 +1084,7 @@ function testPlaceCursorAtStartNonImportantTextNode() { * is expected to be placed. If omitted, will expect cursor to be placed in * the first child of the field element (or, if the field has no content, in * the field element itself). - * @param {number=} The offset to expect for the end position. + * @param {number=} opt_offset The offset to expect for the end position. */ function doTestPlaceCursorAtEnd(opt_html, opt_parentId, opt_offset) { var editableField = new FieldConstructor('testField', document); @@ -1062,8 +1107,10 @@ function doTestPlaceCursorAtEnd(opt_html, opt_parentId, opt_offset) { // We check whether getAttribute exist because textNode may be an actual // TextNode, which does not have getAttribute. - if (textNode && textNode.getAttribute && - textNode.getAttribute('_moz_editor_bogus_node')) { + + var hasBogusNode = textNode && textNode.getAttribute && + textNode.getAttribute('_moz_editor_bogus_node'); + if (hasBogusNode) { // At least in FF >= 6, assigning '' to innerHTML of a contentEditable // element will results in textNode being modified into: //
instead of nulling @@ -1079,8 +1126,13 @@ function doTestPlaceCursorAtEnd(opt_html, opt_parentId, opt_offset) { var offset = goog.isDefAndNotNull(opt_offset) ? opt_offset : textNode ? endNode.nodeValue.length : endNode.childNodes.length - 1; - assertEquals('The range should end at the ending of the node', - offset, range.getEndOffset()); + if (hasBogusNode) { + assertEquals('The range should end at the ending of the bogus node ' + + 'added by FF', offset + 1, range.getEndOffset()); + } else { + assertEquals('The range should end at the ending of the node', + offset, range.getEndOffset()); + } } @@ -1158,3 +1210,69 @@ function testDispatchDelayedChange() { editableField.dispatchDelayedChange_(); assertFalse(editableField.delayedChangeTimer_.isActive()); } + + +function testHandleWindowLevelMouseUp() { + var editableField = new FieldConstructor('testField', document); + if (editableField.usesIframe()) { + // Only run this test if the editor does not use an iframe. + return; + } + editableField.setUseWindowMouseUp(true); + editableField.makeEditable(); + var selectionHasFired = false; + goog.events.listenOnce( + editableField, goog.editor.Field.EventType.SELECTIONCHANGE, + function(e) { + selectionHasFired = true; + }); + var editableElement = editableField.getElement(); + var otherElement = goog.dom.createDom('div'); + goog.dom.insertSiblingAfter(otherElement, document.body.lastChild); + + goog.testing.events.fireMouseDownEvent(editableElement); + assertFalse(selectionHasFired); + goog.testing.events.fireMouseUpEvent(otherElement); + assertTrue(selectionHasFired); +} + +function testNoHandleWindowLevelMouseUp() { + var editableField = new FieldConstructor('testField', document); + editableField.setUseWindowMouseUp(false); + editableField.makeEditable(); + var selectionHasFired = false; + goog.events.listenOnce( + editableField, goog.editor.Field.EventType.SELECTIONCHANGE, + function(e) { + selectionHasFired = true; + }); + var editableElement = editableField.getElement(); + var otherElement = goog.dom.createDom('div'); + goog.dom.insertSiblingAfter(otherElement, document.body.lastChild); + + goog.testing.events.fireMouseDownEvent(editableElement); + assertFalse(selectionHasFired); + goog.testing.events.fireMouseUpEvent(otherElement); + assertFalse(selectionHasFired); +} + +function testIsGeneratingKey() { + var regularKeyEvent = new goog.events.BrowserEvent(); + regularKeyEvent.charCode = goog.events.KeyCodes.A; + + var ctrlKeyEvent = new goog.events.BrowserEvent(); + ctrlKeyEvent.ctrlKey = true; + ctrlKeyEvent.metaKey = true; + ctrlKeyEvent.charCode = goog.events.KeyCodes.A; + + var imeKeyEvent = new goog.events.BrowserEvent(); + imeKeyEvent.keyCode = 229; // indicates from an IME - see KEYS_CAUSING_CHANGES + + assertTrue(goog.editor.Field.isGeneratingKey_(regularKeyEvent, true)); + assertFalse(goog.editor.Field.isGeneratingKey_(ctrlKeyEvent, true)); + if (goog.userAgent.WINDOWS && !goog.userAgent.GECKO) { + assertTrue(goog.editor.Field.isGeneratingKey_(imeKeyEvent, false)); + } else { + assertFalse(goog.editor.Field.isGeneratingKey_(imeKeyEvent, false)); + } +} diff --git a/master/closure-library/closure/goog/editor/focus.js b/edit/closure-library/closure/goog/editor/focus.js similarity index 100% rename from master/closure-library/closure/goog/editor/focus.js rename to edit/closure-library/closure/goog/editor/focus.js diff --git a/master/closure-library/closure/goog/editor/icontent.js b/edit/closure-library/closure/goog/editor/icontent.js similarity index 100% rename from master/closure-library/closure/goog/editor/icontent.js rename to edit/closure-library/closure/goog/editor/icontent.js diff --git a/master/closure-library/closure/goog/editor/link.js b/edit/closure-library/closure/goog/editor/link.js similarity index 93% rename from master/closure-library/closure/goog/editor/link.js rename to edit/closure-library/closure/goog/editor/link.js index 6d89a64441..8e70dfe8a4 100644 --- a/master/closure-library/closure/goog/editor/link.js +++ b/edit/closure-library/closure/goog/editor/link.js @@ -213,21 +213,34 @@ goog.editor.Link.prototype.updateLinkDisplay_ = function(field, url) { }; +/** + * @return {string?} The modified string for the link if the link + * text appears to be a valid link. Returns null if this is not + * a valid link address. + */ +goog.editor.Link.prototype.getValidLinkFromText = function() { + var text = this.getCurrentText(); + if (goog.editor.Link.isLikelyUrl(text)) { + if (text.search(/:/) < 0) { + return 'http://' + goog.string.trimLeft(text); + } + return text; + } else if (goog.editor.Link.isLikelyEmailAddress(text)) { + return 'mailto:' + text; + } + return null; +}; + + /** * After link creation, finish creating the link depending on the type * of link being created. * @param {goog.editor.Field} field The field where this link is being created. */ goog.editor.Link.prototype.finishLinkCreation = function(field) { - var text = this.getCurrentText(); - if (goog.editor.Link.isLikelyUrl(text)) { - if (text.search(/:/) < 0) { - text = 'http://' + goog.string.trimLeft(text); - } - this.updateLinkDisplay_(field, text); - } else if (goog.editor.Link.isLikelyEmailAddress(text)) { - text = 'mailto:' + text; - this.updateLinkDisplay_(field, text); + var linkFromText = this.getValidLinkFromText(); + if (linkFromText) { + this.updateLinkDisplay_(field, linkFromText); } else { field.execCommand(goog.editor.Command.MODAL_LINK_EDITOR, this); } @@ -294,9 +307,11 @@ goog.editor.Link.isLikelyUrl = function(str) { return true; } - // Require domains to contain a '.', unless the domain is fully qualified. + // Require domains to contain a '.', unless the domain is fully qualified and + // forbids domains from containing invalid characters. var domain = parts[goog.uri.utils.ComponentIndex.DOMAIN]; - if (!domain || (addedScheme && domain.indexOf('.') == -1)) { + if (!domain || (addedScheme && domain.indexOf('.') == -1) || + (/[^\w\d\-\u0100-\uffff.%]/.test(domain))) { return false; } diff --git a/master/closure-library/closure/goog/editor/node.js b/edit/closure-library/closure/goog/editor/node.js similarity index 94% rename from master/closure-library/closure/goog/editor/node.js rename to edit/closure-library/closure/goog/editor/node.js index b58ebb50ba..307c7fa557 100644 --- a/master/closure-library/closure/goog/editor/node.js +++ b/edit/closure-library/closure/goog/editor/node.js @@ -29,6 +29,7 @@ goog.require('goog.iter'); goog.require('goog.object'); goog.require('goog.string'); goog.require('goog.string.Unicode'); +goog.require('goog.userAgent'); /** @@ -455,3 +456,28 @@ goog.editor.node.getSecondHalfOfNode_ = function(node, startNode, firstChild) { goog.editor.node.transferChildren = function(newNode, oldNode) { goog.dom.append(newNode, oldNode.childNodes); }; + + +/** + * Replaces the innerHTML of a node. + * + * IE has serious problems if you try to set innerHTML of an editable node with + * any selection. Early versions of IE tear up the old internal tree storage, to + * help avoid ref-counting loops. But this sometimes leaves the selection object + * in a bad state and leads to segfaults. + * + * Removing the nodes first prevents IE from tearing them up. This is not + * strictly necessary in nodes that do not have the selection. You should always + * use this function when setting innerHTML inside of a field. + * + * @param {Node} node A node. + * @param {string} html The innerHTML to set on the node. + */ +goog.editor.node.replaceInnerHtml = function(node, html) { + // Only do this IE. On gecko, we use element change events, and don't + // want to trigger spurious events. + if (goog.userAgent.IE) { + goog.dom.removeChildren(node); + } + node.innerHTML = html; +}; diff --git a/master/closure-library/closure/goog/editor/plugin.js b/edit/closure-library/closure/goog/editor/plugin.js similarity index 98% rename from master/closure-library/closure/goog/editor/plugin.js rename to edit/closure-library/closure/goog/editor/plugin.js index 6f45a2e173..3550c4cde6 100644 --- a/master/closure-library/closure/goog/editor/plugin.js +++ b/edit/closure-library/closure/goog/editor/plugin.js @@ -21,12 +21,12 @@ goog.provide('goog.editor.Plugin'); -goog.require('goog.debug.Logger'); // TODO(user): Remove the dependency on goog.editor.Command asap. Currently only // needed for execCommand issues with links. goog.require('goog.editor.Command'); goog.require('goog.events.EventTarget'); goog.require('goog.functions'); +goog.require('goog.log'); goog.require('goog.object'); goog.require('goog.reflect'); @@ -81,11 +81,11 @@ goog.editor.Plugin.prototype.autoDispose_ = true; /** * The logger for this plugin. - * @type {goog.debug.Logger} + * @type {goog.log.Logger} * @protected */ goog.editor.Plugin.prototype.logger = - goog.debug.Logger.getLogger('goog.editor.Plugin'); + goog.log.getLogger('goog.editor.Plugin'); /** @@ -141,7 +141,7 @@ goog.editor.Plugin.prototype.enable = function(fieldObject) { if (this.getFieldObject() == fieldObject) { this.enabled_ = true; } else { - this.logger.severe('Trying to enable an unregistered field with ' + + goog.log.error(this.logger, 'Trying to enable an unregistered field with ' + 'this plugin.'); } }; @@ -155,7 +155,7 @@ goog.editor.Plugin.prototype.disable = function(fieldObject) { if (this.getFieldObject() == fieldObject) { this.enabled_ = false; } else { - this.logger.severe('Trying to disable an unregistered field ' + + goog.log.error(this.logger, 'Trying to disable an unregistered field ' + 'with this plugin.'); } }; diff --git a/master/closure-library/closure/goog/editor/plugins/abstractbubbleplugin.js b/edit/closure-library/closure/goog/editor/plugins/abstractbubbleplugin.js similarity index 83% rename from master/closure-library/closure/goog/editor/plugins/abstractbubbleplugin.js rename to edit/closure-library/closure/goog/editor/plugins/abstractbubbleplugin.js index d02556db10..cc230eed27 100644 --- a/master/closure-library/closure/goog/editor/plugins/abstractbubbleplugin.js +++ b/edit/closure-library/closure/goog/editor/plugins/abstractbubbleplugin.js @@ -27,6 +27,8 @@ goog.require('goog.editor.style'); goog.require('goog.events'); goog.require('goog.events.EventHandler'); goog.require('goog.events.EventType'); +goog.require('goog.events.KeyCodes'); +goog.require('goog.events.actionEventWrapper'); goog.require('goog.functions'); goog.require('goog.string.Unicode'); goog.require('goog.ui.Component.EventType'); @@ -152,6 +154,27 @@ goog.editor.plugins.AbstractBubblePlugin.prototype.bubbleParent_; goog.editor.plugins.AbstractBubblePlugin.prototype.panelId_ = null; +/** + * Whether this bubble should support tabbing through the link elements. False + * by default. + * @type {boolean} + * @private + */ +goog.editor.plugins.AbstractBubblePlugin.prototype.keyboardNavigationEnabled_ = + false; + + +/** + * Sets whether the bubble should support tabbing through the link elements. + * @param {boolean} keyboardNavigationEnabled Whether the bubble should support + * tabbing through the link elements. + */ +goog.editor.plugins.AbstractBubblePlugin.prototype.enableKeyboardNavigation = + function(keyboardNavigationEnabled) { + this.keyboardNavigationEnabled_ = keyboardNavigationEnabled; +}; + + /** * Sets the bubble parent. * @param {Element} bubbleParent An element where the bubble will be @@ -338,7 +361,13 @@ goog.editor.plugins.AbstractBubblePlugin.prototype.createBubble = function( this.shouldPreferBubbleAboveElement()); this.eventRegister.listen(bubble, goog.ui.Component.EventType.HIDE, this.handlePanelClosed_); + this.onShow(); + + if (this.keyboardNavigationEnabled_) { + this.eventRegister.listen(bubble.getContentElement(), + goog.events.EventType.KEYDOWN, this.onBubbleKey_); + } } }; @@ -388,10 +417,25 @@ goog.editor.plugins.AbstractBubblePlugin.prototype.createBubbleContents = * @param {Element} target The event source element. * @param {Function} handler The event handler. * @protected + * @deprecated Use goog.editor.plugins.AbstractBubblePlugin. + * registerActionHandler to register click and enter events. */ goog.editor.plugins.AbstractBubblePlugin.prototype.registerClickHandler = function(target, handler) { - this.eventRegister.listen(target, goog.events.EventType.CLICK, handler); + this.registerActionHandler(target, handler); +}; + + +/** + * Register the handler for the target's CLICK and ENTER key events. + * @param {Element} target The event source element. + * @param {Function} handler The event handler. + * @protected + */ +goog.editor.plugins.AbstractBubblePlugin.prototype.registerActionHandler = + function(target, handler) { + this.eventRegister.listenWithWrapper(target, goog.events.actionEventWrapper, + handler); }; @@ -427,6 +471,53 @@ goog.editor.plugins.AbstractBubblePlugin.prototype.handlePanelClosed_ = }; +/** + * In case the keyboard navigation is enabled, this will focus to the first link + * element in the bubble when TAB is clicked. The user could still go through + * the rest of tabbable UI elements using shift + TAB. + * @override + */ +goog.editor.plugins.AbstractBubblePlugin.prototype.handleKeyDown = function(e) { + if (this.keyboardNavigationEnabled_ && + this.isVisible() && + e.keyCode == goog.events.KeyCodes.TAB && !e.shiftKey) { + var bubbleEl = this.getSharedBubble_().getContentElement(); + var linkEl = goog.dom.getElementByClass( + goog.editor.plugins.AbstractBubblePlugin.LINK_CLASSNAME_, bubbleEl); + if (linkEl) { + linkEl.focus(); + e.preventDefault(); + return true; + } + } + return false; +}; + + +/** + * Handles a key event on the bubble. This ensures that the focus loops through + * the link elements found in the bubble and then the focus is got by the field + * element. + * @param {goog.events.BrowserEvent} e The event. + * @private + */ +goog.editor.plugins.AbstractBubblePlugin.prototype.onBubbleKey_ = function(e) { + if (this.isVisible() && + e.keyCode == goog.events.KeyCodes.TAB) { + var bubbleEl = this.getSharedBubble_().getContentElement(); + var links = goog.dom.getElementsByClass( + goog.editor.plugins.AbstractBubblePlugin.LINK_CLASSNAME_, bubbleEl); + var tabbingOutOfBubble = e.shiftKey ? + links[0] == e.target : + links.length && links[links.length - 1] == e.target; + if (tabbingOutOfBubble) { + this.getFieldObject().focus(); + e.preventDefault(); + } + } +}; + + /** * @return {boolean} Whether the bubble is visible. */ @@ -482,7 +573,7 @@ goog.editor.plugins.AbstractBubblePlugin.prototype.createLink = function( linkId, linkText, opt_onClick, opt_container) { var link = this.createLinkHelper(linkId, linkText, false, opt_container); if (opt_onClick) { - this.registerClickHandler(link, opt_onClick); + this.registerActionHandler(link, opt_onClick); } return link; }; @@ -506,6 +597,10 @@ goog.editor.plugins.AbstractBubblePlugin.prototype.createLinkHelper = function( isAnchor ? goog.dom.TagName.A : goog.dom.TagName.SPAN, {className: goog.editor.plugins.AbstractBubblePlugin.LINK_CLASSNAME_}, linkText); + if (this.keyboardNavigationEnabled_) { + link.setAttribute('tabindex', 0); + } + link.setAttribute('role', 'link'); this.setupLink(link, linkId, opt_container); goog.editor.style.makeUnselectable(link, this.eventRegister); return link; diff --git a/master/closure-library/closure/goog/editor/plugins/abstractdialogplugin.js b/edit/closure-library/closure/goog/editor/plugins/abstractdialogplugin.js similarity index 98% rename from master/closure-library/closure/goog/editor/plugins/abstractdialogplugin.js rename to edit/closure-library/closure/goog/editor/plugins/abstractdialogplugin.js index 5d24c2214f..954e1e2b3d 100644 --- a/master/closure-library/closure/goog/editor/plugins/abstractdialogplugin.js +++ b/edit/closure-library/closure/goog/editor/plugins/abstractdialogplugin.js @@ -240,11 +240,8 @@ goog.editor.plugins.AbstractDialogPlugin.prototype.handleAfterHide = function( */ goog.editor.plugins.AbstractDialogPlugin.prototype.restoreOriginalSelection = function() { - this.getFieldObject().focus(); - if (this.savedRange_) { - this.savedRange_.restore(); - this.savedRange_ = null; - } + this.getFieldObject().restoreSavedRange(this.savedRange_); + this.savedRange_ = null; }; diff --git a/master/closure-library/closure/goog/editor/plugins/abstracttabhandler.js b/edit/closure-library/closure/goog/editor/plugins/abstracttabhandler.js similarity index 100% rename from master/closure-library/closure/goog/editor/plugins/abstracttabhandler.js rename to edit/closure-library/closure/goog/editor/plugins/abstracttabhandler.js diff --git a/master/closure-library/closure/goog/editor/plugins/basictextformatter.js b/edit/closure-library/closure/goog/editor/plugins/basictextformatter.js similarity index 99% rename from master/closure-library/closure/goog/editor/plugins/basictextformatter.js rename to edit/closure-library/closure/goog/editor/plugins/basictextformatter.js index 973c078b8e..d765d51427 100644 --- a/master/closure-library/closure/goog/editor/plugins/basictextformatter.js +++ b/edit/closure-library/closure/goog/editor/plugins/basictextformatter.js @@ -21,7 +21,6 @@ goog.provide('goog.editor.plugins.BasicTextFormatter'); goog.provide('goog.editor.plugins.BasicTextFormatter.COMMAND'); goog.require('goog.array'); -goog.require('goog.debug.Logger'); goog.require('goog.dom'); goog.require('goog.dom.NodeType'); goog.require('goog.dom.Range'); @@ -35,6 +34,7 @@ goog.require('goog.editor.range'); goog.require('goog.editor.style'); goog.require('goog.iter'); goog.require('goog.iter.StopIteration'); +goog.require('goog.log'); goog.require('goog.object'); goog.require('goog.string'); goog.require('goog.string.Unicode'); @@ -63,12 +63,12 @@ goog.editor.plugins.BasicTextFormatter.prototype.getTrogClassId = function() { /** * Logging object. - * @type {goog.debug.Logger} + * @type {goog.log.Logger} * @protected * @override */ goog.editor.plugins.BasicTextFormatter.prototype.logger = - goog.debug.Logger.getLogger('goog.editor.plugins.BasicTextFormatter'); + goog.log.getLogger('goog.editor.plugins.BasicTextFormatter'); /** @@ -588,9 +588,10 @@ goog.editor.plugins.BasicTextFormatter.prototype.convertBreaksToDivs_ = // div's. The reason may be hidden in CLs 5332866 and 8530601. var attribute = 'trtempbr'; var value = 'temp_br'; - parent.innerHTML = parent.innerHTML.replace( + var newHtml = parent.innerHTML.replace( goog.editor.plugins.BasicTextFormatter.BR_REGEXP_, ''); + goog.editor.node.replaceInnerHtml(parent, newHtml); var paragraphs = goog.array.toArray(parent.getElementsByTagName(goog.dom.TagName.P)); @@ -796,7 +797,8 @@ goog.editor.plugins.BasicTextFormatter.prototype.execCommandHelper_ = function( doc.execCommand('styleWithCSS', false, false); } - if (goog.userAgent.WEBKIT && !goog.userAgent.isVersion('526') && + if (goog.userAgent.WEBKIT && + !goog.userAgent.isVersionOrHigher('526') && command.toLowerCase() == 'formatblock' && opt_value && /^[<]?h\d[>]?$/i.test(opt_value)) { this.cleanUpSafariHeadings_(); @@ -1439,7 +1441,7 @@ goog.editor.plugins.BasicTextFormatter.prototype.applyExecCommandSafariFixes_ = */ goog.editor.plugins.BasicTextFormatter.prototype.applyExecCommandGeckoFixes_ = function(command) { - if (goog.userAgent.isVersion('1.9') && + if (goog.userAgent.isVersionOrHigher('1.9') && command.toLowerCase() == 'formatblock') { // Firefox 3 and above throw a JS error for formatblock if the range is // a child of the body node. Changing the selection to the BR fixes the diff --git a/master/closure-library/closure/goog/editor/plugins/blockquote.js b/edit/closure-library/closure/goog/editor/plugins/blockquote.js similarity index 99% rename from master/closure-library/closure/goog/editor/plugins/blockquote.js rename to edit/closure-library/closure/goog/editor/plugins/blockquote.js index d73719c813..2d4ddcb068 100644 --- a/master/closure-library/closure/goog/editor/plugins/blockquote.js +++ b/edit/closure-library/closure/goog/editor/plugins/blockquote.js @@ -19,7 +19,6 @@ goog.provide('goog.editor.plugins.Blockquote'); -goog.require('goog.debug.Logger'); goog.require('goog.dom'); goog.require('goog.dom.NodeType'); goog.require('goog.dom.TagName'); @@ -29,6 +28,7 @@ goog.require('goog.editor.Command'); goog.require('goog.editor.Plugin'); goog.require('goog.editor.node'); goog.require('goog.functions'); +goog.require('goog.log'); @@ -84,12 +84,12 @@ goog.editor.plugins.Blockquote.CLASS_ID = 'Blockquote'; /** * Logging object. - * @type {goog.debug.Logger} + * @type {goog.log.Logger} * @protected * @override */ goog.editor.plugins.Blockquote.prototype.logger = - goog.debug.Logger.getLogger('goog.editor.plugins.Blockquote'); + goog.log.getLogger('goog.editor.plugins.Blockquote'); /** @override */ @@ -211,7 +211,7 @@ goog.editor.plugins.Blockquote.findAndRemoveSingleChildAncestor_ = function( node, root) { var predicateFunc = function(parentNode) { return parentNode != root && parentNode.childNodes.length == 1; - } + }; var ancestor = goog.editor.node.findHighestMatchingAncestor(node, predicateFunc); if (!ancestor) { diff --git a/master/closure-library/closure/goog/editor/plugins/emoticons.js b/edit/closure-library/closure/goog/editor/plugins/emoticons.js similarity index 86% rename from master/closure-library/closure/goog/editor/plugins/emoticons.js rename to edit/closure-library/closure/goog/editor/plugins/emoticons.js index b750c8929f..71fb7b0ec3 100644 --- a/master/closure-library/closure/goog/editor/plugins/emoticons.js +++ b/edit/closure-library/closure/goog/editor/plugins/emoticons.js @@ -23,8 +23,10 @@ goog.provide('goog.editor.plugins.Emoticons'); goog.require('goog.dom.TagName'); goog.require('goog.editor.Plugin'); +goog.require('goog.editor.range'); goog.require('goog.functions'); goog.require('goog.ui.emoji.Emoji'); +goog.require('goog.userAgent'); @@ -76,10 +78,11 @@ goog.editor.plugins.Emoticons.prototype.execCommandInternal = function( this.getFieldObject().getRange().replaceContentsWithNode(img); - // IE does the right thing with the cursor, and has a js error when we try - // to place the cursor manually - if (!goog.userAgent.IE) { + // IE8 does the right thing with the cursor, and has a js error when we try + // to place the cursor manually. + // IE9 loses the cursor when the window is focused, so focus first. + if (!goog.userAgent.IE || goog.userAgent.isDocumentModeOrHigher(9)) { + this.getFieldObject().focus(); goog.editor.range.placeCursorNextTo(img, false); - dom.getWindow().focus(); } }; diff --git a/master/closure-library/closure/goog/editor/plugins/enterhandler.js b/edit/closure-library/closure/goog/editor/plugins/enterhandler.js similarity index 99% rename from master/closure-library/closure/goog/editor/plugins/enterhandler.js rename to edit/closure-library/closure/goog/editor/plugins/enterhandler.js index 53aeaa504e..fcf13deefa 100644 --- a/master/closure-library/closure/goog/editor/plugins/enterhandler.js +++ b/edit/closure-library/closure/goog/editor/plugins/enterhandler.js @@ -20,9 +20,9 @@ goog.provide('goog.editor.plugins.EnterHandler'); goog.require('goog.dom'); -goog.require('goog.dom.AbstractRange'); goog.require('goog.dom.NodeOffset'); goog.require('goog.dom.NodeType'); +goog.require('goog.dom.Range'); goog.require('goog.dom.TagName'); goog.require('goog.editor.BrowserFeature'); goog.require('goog.editor.Plugin'); @@ -31,6 +31,8 @@ goog.require('goog.editor.plugins.Blockquote'); goog.require('goog.editor.range'); goog.require('goog.editor.style'); goog.require('goog.events.KeyCodes'); +goog.require('goog.functions'); +goog.require('goog.object'); goog.require('goog.string'); goog.require('goog.userAgent'); @@ -477,7 +479,7 @@ goog.editor.plugins.EnterHandler.prototype.ensureBlockIeOpera = function(tag, } - if (goog.userAgent.IE && !goog.userAgent.isVersion(9)) { + if (goog.userAgent.IE && !goog.userAgent.isVersionOrHigher(9)) { // IE (before IE9) has a bug where if the cursor is directly before a block // node (e.g., the content is "foo[cursor]
bar
"), // the FormatBlock command actually formats the "bar" instead of the "foo". @@ -660,7 +662,7 @@ goog.editor.plugins.EnterHandler.deleteW3cRange_ = function(range) { // Don't break Opera's native break-out-of-lists behavior. html = '
'; } - container.innerHTML = html; + goog.editor.node.replaceInnerHtml(container, html); goog.editor.range.selectNodeStart(container.firstChild); reselect = false; } diff --git a/master/closure-library/closure/goog/editor/plugins/equationeditorbubble.js b/edit/closure-library/closure/goog/editor/plugins/equationeditorbubble.js similarity index 100% rename from master/closure-library/closure/goog/editor/plugins/equationeditorbubble.js rename to edit/closure-library/closure/goog/editor/plugins/equationeditorbubble.js diff --git a/master/closure-library/closure/goog/editor/plugins/equationeditorplugin.js b/edit/closure-library/closure/goog/editor/plugins/equationeditorplugin.js similarity index 90% rename from master/closure-library/closure/goog/editor/plugins/equationeditorplugin.js rename to edit/closure-library/closure/goog/editor/plugins/equationeditorplugin.js index 015a6101f2..204a214e07 100644 --- a/master/closure-library/closure/goog/editor/plugins/equationeditorplugin.js +++ b/edit/closure-library/closure/goog/editor/plugins/equationeditorplugin.js @@ -14,16 +14,18 @@ goog.provide('goog.editor.plugins.EquationEditorPlugin'); +goog.require('goog.dom'); goog.require('goog.editor.Command'); goog.require('goog.editor.plugins.AbstractDialogPlugin'); goog.require('goog.editor.range'); +goog.require('goog.events'); +goog.require('goog.events.EventType'); goog.require('goog.functions'); -goog.require('goog.ui.editor.AbstractDialog.Builder'); +goog.require('goog.log'); +goog.require('goog.ui.editor.AbstractDialog'); goog.require('goog.ui.editor.EquationEditorDialog'); -goog.require('goog.ui.editor.EquationEditorOkEvent'); -goog.require('goog.ui.equation.EquationEditor'); goog.require('goog.ui.equation.ImageRenderer'); -goog.require('goog.ui.equation.TexEditor'); +goog.require('goog.ui.equation.PaletteManager'); @@ -51,7 +53,7 @@ goog.editor.plugins.EquationEditorPlugin = function(opt_helpUrl) { /** * The listener key for double click events. - * @type {number?} + * @type {goog.events.Key} * @private */ this.dblClickKey_; @@ -65,11 +67,11 @@ goog.inherits(goog.editor.plugins.EquationEditorPlugin, /** * The logger for the EquationEditorPlugin. - * @type {goog.debug.Logger} + * @type {goog.log.Logger} * @private */ goog.editor.plugins.EquationEditorPlugin.prototype.logger_ = - goog.debug.Logger.getLogger('goog.editor.plugins.EquationEditorPlugin'); + goog.log.getLogger('goog.editor.plugins.EquationEditorPlugin'); /** @override */ @@ -89,7 +91,7 @@ goog.editor.plugins.EquationEditorPlugin.prototype.createDialog = this.originalElement_ = equationImgEl; var dialog = new goog.ui.editor.EquationEditorDialog( - this.populateContext_(), dom, equationStr, this.helpUrl_); + this.populateContext_(dom), dom, equationStr, this.helpUrl_); dialog.addEventListener(goog.ui.editor.AbstractDialog.EventType.OK, this.handleOk_, false, @@ -100,13 +102,15 @@ goog.editor.plugins.EquationEditorPlugin.prototype.createDialog = /** * Populates the context that this plugin runs in. + * @param {!goog.dom.DomHelper} domHelper The dom helper to be used for the + * palette manager. * @return {Object} The context that this plugin runs in. * @private */ goog.editor.plugins.EquationEditorPlugin.prototype.populateContext_ = - function() { + function(domHelper) { var context = {}; - context.paletteManager = new goog.ui.equation.PaletteManager(); + context.paletteManager = new goog.ui.equation.PaletteManager(domHelper); return context; }; diff --git a/edit/closure-library/closure/goog/editor/plugins/firststrong.js b/edit/closure-library/closure/goog/editor/plugins/firststrong.js new file mode 100644 index 0000000000..554c0d63f7 --- /dev/null +++ b/edit/closure-library/closure/goog/editor/plugins/firststrong.js @@ -0,0 +1,326 @@ +// Copyright 2012 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview A plugin to enable the First Strong Bidi algorithm. The First + * Strong algorithm as a heuristic used to automatically set paragraph direction + * depending on its content. + * + * In the documentation below, a 'paragraph' is the local element which we + * evaluate as a whole for purposes of determining directionality. It may be a + * block-level element (e.g. <div>) or a whole list (e.g. <ul>). + * + * This implementation is based on, but is not identical to, the original + * First Strong algorithm defined in Unicode + * @see http://www.unicode.org/reports/tr9/ + * The central difference from the original First Strong algorithm is that this + * implementation decides the paragraph direction based on the first strong + * character that is typed into the paragraph, regardless of its + * location in the paragraph, as opposed to the original algorithm where it is + * the first character in the paragraph by location, regardless of + * whether other strong characters already appear in the paragraph, further its + * start. + * + * Please note that this plugin does not perform the direction change + * itself. Rather, it fires editor commands upon the key up event when a + * direction change needs to be performed; {@code goog.editor.Command.DIR_RTL} + * or {@code goog.editor.Command.DIR_RTL}. + * + */ + +goog.provide('goog.editor.plugins.FirstStrong'); + +goog.require('goog.dom.NodeType'); +goog.require('goog.dom.TagIterator'); +goog.require('goog.dom.TagName'); +goog.require('goog.editor.Command'); +goog.require('goog.editor.Plugin'); +goog.require('goog.editor.node'); +goog.require('goog.editor.range'); +goog.require('goog.i18n.bidi'); +goog.require('goog.i18n.uChar'); +goog.require('goog.iter'); +goog.require('goog.userAgent'); + + + +/** + * First Strong plugin. + * @constructor + * @extends {goog.editor.Plugin} + */ +goog.editor.plugins.FirstStrong = function() { + goog.base(this); + + /** + * Indicates whether or not the cursor is in a paragraph we have not yet + * finished evaluating for directionality. This is set to true whenever the + * cursor is moved, and set to false after seeing a strong character in the + * paragraph the cursor is currently in. + * + * @type {boolean} + * @private + */ + this.isNewBlock_ = true; + + /** + * Indicates whether or not the current paragraph the cursor is in should be + * set to Right-To-Left directionality. + * + * @type {boolean} + * @private + */ + this.switchToRtl_ = false; + + /** + * Indicates whether or not the current paragraph the cursor is in should be + * set to Left-To-Right directionality. + * + * @type {boolean} + * @private + */ + this.switchToLtr_ = false; +}; +goog.inherits(goog.editor.plugins.FirstStrong, goog.editor.Plugin); + + +/** @override */ +goog.editor.plugins.FirstStrong.prototype.getTrogClassId = function() { + return 'FirstStrong'; +}; + + +/** @override */ +goog.editor.plugins.FirstStrong.prototype.queryCommandValue = + function(command) { + return false; +}; + + +/** @override */ +goog.editor.plugins.FirstStrong.prototype.handleSelectionChange = + function(e, node) { + this.isNewBlock_ = true; + return false; +}; + + +/** + * The name of the attribute which records the input text. + * + * @type {string} + * @const + */ +goog.editor.plugins.FirstStrong.INPUT_ATTRIBUTE = 'fs-input'; + + +/** @override */ +goog.editor.plugins.FirstStrong.prototype.handleKeyPress = function(e) { + if (!this.isNewBlock_) { + return false; // We've already determined this paragraph's direction. + } + // Ignore non-character key press events. + if (e.ctrlKey || e.metaKey) { + return false; + } + var newInput = goog.i18n.uChar.fromCharCode(e.charCode); + + // IME's may return 0 for the charCode, which is a legitimate, non-Strong + // charCode, or they may return an illegal charCode (for which newInput will + // be false). + if (!newInput || !e.charCode) { + var browserEvent = e.getBrowserEvent(); + if (browserEvent) { + if (goog.userAgent.IE && browserEvent['getAttribute']) { + newInput = browserEvent['getAttribute']( + goog.editor.plugins.FirstStrong.INPUT_ATTRIBUTE); + } else { + newInput = browserEvent[ + goog.editor.plugins.FirstStrong.INPUT_ATTRIBUTE]; + } + } + } + + if (!newInput) { + return false; // Unrecognized key. + } + + var isLtr = goog.i18n.bidi.isLtrChar(newInput); + var isRtl = !isLtr && goog.i18n.bidi.isRtlChar(newInput); + if (!isLtr && !isRtl) { + return false; // This character cannot change anything (it is not Strong). + } + // This character is Strongly LTR or Strongly RTL. We might switch direction + // on it now, but in any case we do not need to check any more characters in + // this paragraph after it. + this.isNewBlock_ = false; + + // Are there no Strong characters already in the paragraph? + if (this.isNeutralBlock_()) { + this.switchToRtl_ = isRtl; + this.switchToLtr_ = isLtr; + } + return false; +}; + + +/** + * Calls the flip directionality commands. This is done here so things go into + * the redo-undo stack at the expected order; fist enter the input, then flip + * directionality. + * @override + */ +goog.editor.plugins.FirstStrong.prototype.handleKeyUp = function(e) { + if (this.switchToRtl_) { + var field = this.getFieldObject(); + field.dispatchChange(true); + field.execCommand(goog.editor.Command.DIR_RTL); + this.switchToRtl_ = false; + } else if (this.switchToLtr_) { + var field = this.getFieldObject(); + field.dispatchChange(true); + field.execCommand(goog.editor.Command.DIR_LTR); + this.switchToLtr_ = false; + } + return false; +}; + + +/** + * @return {Element} The lowest Block element ancestor of the node where the + * next character will be placed. + * @private + */ +goog.editor.plugins.FirstStrong.prototype.getBlockAncestor_ = function() { + var start = this.getFieldObject().getRange().getStartNode(); + // Go up in the DOM until we reach a Block element. + while (!goog.editor.plugins.FirstStrong.isBlock_(start)) { + start = start.parentNode; + } + return /** @type {Element} */ (start); +}; + + +/** + * @return {boolean} Whether the paragraph where the next character will be + * entered contains only non-Strong characters. + * @private + */ +goog.editor.plugins.FirstStrong.prototype.isNeutralBlock_ = function() { + var root = this.getBlockAncestor_(); + // The exact node with the cursor location. Simply calling getStartNode() on + // the range only returns the containing block node. + var cursor = goog.editor.range.getDeepEndPoint( + this.getFieldObject().getRange(), false).node; + + // In FireFox the BR tag also represents a change in paragraph if not inside a + // list. So we need special handling to only look at the sub-block between + // BR elements. + var blockFunction = (goog.userAgent.GECKO && + !this.isList_(root)) ? + goog.editor.plugins.FirstStrong.isGeckoBlock_ : + goog.editor.plugins.FirstStrong.isBlock_; + var paragraph = this.getTextAround_(root, cursor, + blockFunction); + // Not using {@code goog.i18n.bidi.isNeutralText} as it contains additional, + // unwanted checks to the content. + return !goog.i18n.bidi.hasAnyLtr(paragraph) && + !goog.i18n.bidi.hasAnyRtl(paragraph); +}; + + +/** + * Checks if an element is a list element ('UL' or 'OL'). + * + * @param {Element} element The element to test. + * @return {boolean} Whether the element is a list element ('UL' or 'OL'). + * @private + */ +goog.editor.plugins.FirstStrong.prototype.isList_ = function(element) { + if (!element) { + return false; + } + var tagName = element.tagName; + return tagName == goog.dom.TagName.UL || tagName == goog.dom.TagName.OL; +}; + + +/** + * Returns the text within the local paragraph around the cursor. + * Notice that for GECKO a BR represents a pargraph change despite not being a + * block element. + * + * @param {Element} root The first block element ancestor of the node the cursor + * is in. + * @param {Node} cursorLocation Node where the cursor currently is, marking the + * paragraph whose text we will return. + * @param {function(Node): boolean} isParagraphBoundary The function to + * determine if a node represents the start or end of the paragraph. + * @return {string} the text in the paragraph around the cursor location. + * @private + */ +goog.editor.plugins.FirstStrong.prototype.getTextAround_ = function(root, + cursorLocation, isParagraphBoundary) { + // The buffer where we're collecting the text. + var buffer = []; + // Have we reached the cursor yet, or are we still before it? + var pastCursorLocation = false; + + if (root && cursorLocation) { + goog.iter.some(new goog.dom.TagIterator(root), function(node) { + if (node == cursorLocation) { + pastCursorLocation = true; + } else if (isParagraphBoundary(node)) { + if (pastCursorLocation) { + // This is the end of the paragraph containing the cursor. We're done. + return true; + } else { + // All we collected so far does not count; it was in a previous + // paragraph that did not contain the cursor. + buffer = []; + } + } + if (node.nodeType == goog.dom.NodeType.TEXT) { + buffer.push(node.nodeValue); + } + return false; // Keep going. + }); + } + return buffer.join(''); +}; + + +/** + * @param {Node} node Node to check. + * @return {boolean} Does the given node represent a Block element? Notice we do + * not consider list items as Block elements in the algorithm. + * @private + */ +goog.editor.plugins.FirstStrong.isBlock_ = function(node) { + return !!node && goog.editor.node.isBlockTag(node) && + node.tagName != goog.dom.TagName.LI; +}; + + +/** + * @param {Node} node Node to check. + * @return {boolean} Does the given node represent a Block element from the + * point of view of FireFox? Notice we do not consider list items as Block + * elements in the algorithm. + * @private + */ +goog.editor.plugins.FirstStrong.isGeckoBlock_ = function(node) { + return !!node && (node.tagName == goog.dom.TagName.BR || + goog.editor.plugins.FirstStrong.isBlock_(node)); +}; diff --git a/master/closure-library/closure/goog/editor/plugins/headerformatter.js b/edit/closure-library/closure/goog/editor/plugins/headerformatter.js similarity index 100% rename from master/closure-library/closure/goog/editor/plugins/headerformatter.js rename to edit/closure-library/closure/goog/editor/plugins/headerformatter.js diff --git a/master/closure-library/closure/goog/editor/plugins/linkbubble.js b/edit/closure-library/closure/goog/editor/plugins/linkbubble.js similarity index 97% rename from master/closure-library/closure/goog/editor/plugins/linkbubble.js rename to edit/closure-library/closure/goog/editor/plugins/linkbubble.js index 070735750d..472e28cbc5 100644 --- a/master/closure-library/closure/goog/editor/plugins/linkbubble.js +++ b/edit/closure-library/closure/goog/editor/plugins/linkbubble.js @@ -208,7 +208,7 @@ goog.editor.plugins.LinkBubble.prototype.setBlockOpeningUnsafeSchemes = * Schemes should all be in lowercase. If the plugin is set to block opening * unsafe schemes, user-entered URLs will be converted to lowercase and checked * against this list. The whitelist has no effect if blocking is not enabled. - * @param {Array.} schemes String array of URL schemes to allow (http, + * @param {Array.} schemes String array of URL schemes to allow (http, * https, etc.). */ goog.editor.plugins.LinkBubble.prototype.setSafeToOpenSchemes = @@ -439,10 +439,15 @@ goog.editor.plugins.LinkBubble.prototype.getLinkToTextObj_ = function() { /** - * Shows the link dialog + * Shows the link dialog. + * @param {goog.events.BrowserEvent} e The event. * @private */ -goog.editor.plugins.LinkBubble.prototype.showLinkDialog_ = function() { +goog.editor.plugins.LinkBubble.prototype.showLinkDialog_ = function(e) { + // Needed when this occurs due to an ENTER key event, else the newly created + // dialog manages to have its OK button pressed, causing it to disappear. + e.preventDefault(); + this.getFieldObject().execCommand(goog.editor.Command.MODAL_LINK_EDITOR, new goog.editor.Link( /** @type {HTMLAnchorElement} */ (this.getTargetElement()), @@ -466,6 +471,7 @@ goog.editor.plugins.LinkBubble.prototype.deleteLink_ = function() { this.closeBubble(); this.getFieldObject().dispatchChange(); + this.getFieldObject().focus(); }; @@ -482,14 +488,14 @@ goog.editor.plugins.LinkBubble.prototype.onShow = function() { goog.editor.plugins.LinkBubble.TEST_LINK_SPAN_ID_); if (testLinkSpan) { var url = this.getTargetUrl(); - goog.style.showElement(testLinkSpan, !goog.editor.Link.isMailto(url)); + goog.style.setElementShown(testLinkSpan, !goog.editor.Link.isMailto(url)); } for (var i = 0; i < this.extraActions_.length; i++) { var action = this.extraActions_[i]; var actionSpan = this.dom_.getElement(action.spanId_); if (actionSpan) { - goog.style.showElement(actionSpan, action.toShowFn_( + goog.style.setElementShown(actionSpan, action.toShowFn_( this.getTargetUrl())); } } diff --git a/master/closure-library/closure/goog/editor/plugins/linkdialogplugin.js b/edit/closure-library/closure/goog/editor/plugins/linkdialogplugin.js similarity index 98% rename from master/closure-library/closure/goog/editor/plugins/linkdialogplugin.js rename to edit/closure-library/closure/goog/editor/plugins/linkdialogplugin.js index 5776493ffd..beb7a87e7f 100644 --- a/master/closure-library/closure/goog/editor/plugins/linkdialogplugin.js +++ b/edit/closure-library/closure/goog/editor/plugins/linkdialogplugin.js @@ -150,7 +150,7 @@ goog.editor.plugins.LinkDialogPlugin.prototype.setBlockOpeningUnsafeSchemes = * Schemes should all be in lowercase. If the plugin is set to block opening * unsafe schemes, user-entered URLs will be converted to lowercase and checked * against this list. The whitelist has no effect if blocking is not enabled. - * @param {Array.} schemes String array of URL schemes to allow (http, + * @param {Array.} schemes String array of URL schemes to allow (http, * https, etc.). */ goog.editor.plugins.LinkDialogPlugin.prototype.setSafeToOpenSchemes = @@ -292,7 +292,7 @@ goog.editor.plugins.LinkDialogPlugin.prototype.createDialog = function( dialog.setStopReferrerLeaks(this.stopReferrerLeaks_); this.eventHandler_. listen(dialog, goog.ui.editor.AbstractDialog.EventType.OK, - this.handleOk_). + this.handleOk). listen(dialog, goog.ui.editor.AbstractDialog.EventType.CANCEL, this.handleCancel_). listen(dialog, goog.ui.editor.LinkDialog.EventType.BEFORE_TEST_LINK, @@ -311,9 +311,9 @@ goog.editor.plugins.LinkDialogPlugin.prototype.disposeInternal = function() { /** * Handles the OK event from the dialog by updating the link in the field. * @param {goog.ui.editor.LinkDialog.OkEvent} e OK event object. - * @private + * @protected */ -goog.editor.plugins.LinkDialogPlugin.prototype.handleOk_ = function(e) { +goog.editor.plugins.LinkDialogPlugin.prototype.handleOk = function(e) { // We're not restoring the original selection, so clear it out. this.disposeOriginalSelection(); @@ -331,11 +331,11 @@ goog.editor.plugins.LinkDialogPlugin.prototype.handleOk_ = function(e) { this.touchUpAnchorOnOk_(extraAnchors[i], e); } - this.getFieldObject().focus(); - // Place cursor to the right of the modified link. this.currentLink_.placeCursorRightOf(); + this.getFieldObject().focus(); + this.getFieldObject().dispatchSelectionChangeEvent(); this.getFieldObject().dispatchChange(); diff --git a/master/closure-library/closure/goog/editor/plugins/linkshortcutplugin.js b/edit/closure-library/closure/goog/editor/plugins/linkshortcutplugin.js similarity index 96% rename from master/closure-library/closure/goog/editor/plugins/linkshortcutplugin.js rename to edit/closure-library/closure/goog/editor/plugins/linkshortcutplugin.js index 1f1ac699fb..8703fcb0c1 100644 --- a/master/closure-library/closure/goog/editor/plugins/linkshortcutplugin.js +++ b/edit/closure-library/closure/goog/editor/plugins/linkshortcutplugin.js @@ -44,12 +44,12 @@ goog.editor.plugins.LinkShortcutPlugin.prototype.getTrogClassId = function() { /** - * @inheritDoc + * @override */ goog.editor.plugins.LinkShortcutPlugin.prototype.handleKeyboardShortcut = function(e, key, isModifierPressed) { var command; - if (isModifierPressed && key == 'k') { + if (isModifierPressed && key == 'k' && !e.shiftKey) { var link = /** @type {goog.editor.Link?} */ ( this.getFieldObject().execCommand(goog.editor.Command.LINK)); if (link) { diff --git a/master/closure-library/closure/goog/editor/plugins/listtabhandler.js b/edit/closure-library/closure/goog/editor/plugins/listtabhandler.js similarity index 100% rename from master/closure-library/closure/goog/editor/plugins/listtabhandler.js rename to edit/closure-library/closure/goog/editor/plugins/listtabhandler.js diff --git a/master/closure-library/closure/goog/editor/plugins/loremipsum.js b/edit/closure-library/closure/goog/editor/plugins/loremipsum.js similarity index 100% rename from master/closure-library/closure/goog/editor/plugins/loremipsum.js rename to edit/closure-library/closure/goog/editor/plugins/loremipsum.js diff --git a/master/closure-library/closure/goog/editor/plugins/removeformatting.js b/edit/closure-library/closure/goog/editor/plugins/removeformatting.js similarity index 96% rename from master/closure-library/closure/goog/editor/plugins/removeformatting.js rename to edit/closure-library/closure/goog/editor/plugins/removeformatting.js index d5cc810b7c..54c997d0c6 100644 --- a/master/closure-library/closure/goog/editor/plugins/removeformatting.js +++ b/edit/closure-library/closure/goog/editor/plugins/removeformatting.js @@ -29,6 +29,7 @@ goog.require('goog.editor.Plugin'); goog.require('goog.editor.node'); goog.require('goog.editor.range'); goog.require('goog.string'); +goog.require('goog.userAgent'); @@ -172,7 +173,8 @@ goog.editor.plugins.RemoveFormatting.prototype.removeFormatting_ = function() { // breaking spaces. // Old versions of WebKit (Safari 3, Chrome 1) incorrectly match /u00A0 // and newer versions properly match  . - var nbspRegExp = goog.userAgent.isVersion('528') ? / /g : /\u00A0/g; + var nbspRegExp = + goog.userAgent.isVersionOrHigher('528') ? / /g : /\u00A0/g; return text.replace(nbspRegExp, ' '); }); } @@ -185,9 +187,16 @@ goog.editor.plugins.RemoveFormatting.prototype.removeFormatting_ = function() { * @return {Node} The table, or null if one was not found. * @private */ -goog.editor.plugins.RemoveFormatting.getTableAncestor_ = function(nodeToCheck) { - return goog.dom.getAncestor(nodeToCheck, - function(node) { return node.tagName == goog.dom.TagName.TABLE; }, true); +goog.editor.plugins.RemoveFormatting.prototype.getTableAncestor_ = function( + nodeToCheck) { + var fieldElement = this.getFieldObject().getElement(); + while (nodeToCheck && nodeToCheck != fieldElement) { + if (nodeToCheck.tagName == goog.dom.TagName.TABLE) { + return nodeToCheck; + } + nodeToCheck = nodeToCheck.parentNode; + } + return null; }; @@ -276,11 +285,11 @@ goog.editor.plugins.RemoveFormatting.prototype.pasteHtml_ = function(html) { // remove parentNodes of the span while they are empty. if (goog.userAgent.GECKO) { - parent.innerHTML = - parent.innerHTML.replace(dummyImageNodePattern, html); + goog.editor.node.replaceInnerHtml(parent, + parent.innerHTML.replace(dummyImageNodePattern, html)); } else { - parent.innerHTML = - parent.innerHTML.replace(dummyImageNodePattern, dummySpanText); + goog.editor.node.replaceInnerHtml(parent, + parent.innerHTML.replace(dummyImageNodePattern, dummySpanText)); var dummySpan = dh.getElement(dummyNodeId); parent = dummySpan; while ((parent = dummySpan.parentNode) && @@ -300,8 +309,8 @@ goog.editor.plugins.RemoveFormatting.prototype.pasteHtml_ = function(html) { goog.dom.insertSiblingAfter(dummySpan, parent); goog.dom.removeNode(parent); } - parent.innerHTML = - parent.innerHTML.replace(new RegExp(dummySpanText, 'i'), html); + goog.editor.node.replaceInnerHtml(parent, + parent.innerHTML.replace(new RegExp(dummySpanText, 'i'), html)); } } @@ -495,10 +504,8 @@ goog.editor.plugins.RemoveFormatting.prototype.convertSelectedHtmlText_ = var expandedRange = goog.editor.range.expand(range, this.getFieldObject().getElement()); - var startInTable = goog.editor.plugins.RemoveFormatting.getTableAncestor_( - expandedRange.getStartNode()); - var endInTable = goog.editor.plugins.RemoveFormatting.getTableAncestor_( - expandedRange.getEndNode()); + var startInTable = this.getTableAncestor_(expandedRange.getStartNode()); + var endInTable = this.getTableAncestor_(expandedRange.getEndNode()); if (startInTable || endInTable) { if (startInTable == endInTable) { diff --git a/master/closure-library/closure/goog/editor/plugins/spacestabhandler.js b/edit/closure-library/closure/goog/editor/plugins/spacestabhandler.js similarity index 100% rename from master/closure-library/closure/goog/editor/plugins/spacestabhandler.js rename to edit/closure-library/closure/goog/editor/plugins/spacestabhandler.js diff --git a/master/closure-library/closure/goog/editor/plugins/tableeditor.js b/edit/closure-library/closure/goog/editor/plugins/tableeditor.js similarity index 100% rename from master/closure-library/closure/goog/editor/plugins/tableeditor.js rename to edit/closure-library/closure/goog/editor/plugins/tableeditor.js diff --git a/master/closure-library/closure/goog/editor/plugins/tagonenterhandler.js b/edit/closure-library/closure/goog/editor/plugins/tagonenterhandler.js similarity index 100% rename from master/closure-library/closure/goog/editor/plugins/tagonenterhandler.js rename to edit/closure-library/closure/goog/editor/plugins/tagonenterhandler.js diff --git a/master/closure-library/closure/goog/editor/plugins/undoredo.js b/edit/closure-library/closure/goog/editor/plugins/undoredo.js similarity index 98% rename from master/closure-library/closure/goog/editor/plugins/undoredo.js rename to edit/closure-library/closure/goog/editor/plugins/undoredo.js index 9e57022821..7b66530acc 100644 --- a/master/closure-library/closure/goog/editor/plugins/undoredo.js +++ b/edit/closure-library/closure/goog/editor/plugins/undoredo.js @@ -21,7 +21,6 @@ goog.provide('goog.editor.plugins.UndoRedo'); -goog.require('goog.debug.Logger'); goog.require('goog.dom'); goog.require('goog.dom.NodeOffset'); goog.require('goog.dom.Range'); @@ -29,10 +28,12 @@ goog.require('goog.editor.BrowserFeature'); goog.require('goog.editor.Command'); goog.require('goog.editor.Field.EventType'); goog.require('goog.editor.Plugin'); +goog.require('goog.editor.node'); goog.require('goog.editor.plugins.UndoRedoManager'); goog.require('goog.editor.plugins.UndoRedoState'); goog.require('goog.events'); goog.require('goog.events.EventHandler'); +goog.require('goog.log'); @@ -78,12 +79,12 @@ goog.inherits(goog.editor.plugins.UndoRedo, goog.editor.Plugin); /** * The logger for this class. - * @type {goog.debug.Logger} + * @type {goog.log.Logger} * @protected * @override */ goog.editor.plugins.UndoRedo.prototype.logger = - goog.debug.Logger.getLogger('goog.editor.plugins.UndoRedo'); + goog.log.getLogger('goog.editor.plugins.UndoRedo'); /** @@ -107,7 +108,7 @@ goog.editor.plugins.UndoRedo.prototype.undoManager_; /** * The key for the event listener handling state change events from the * undo-redo manager. - * @type {number} + * @type {goog.events.Key} * @private */ goog.editor.plugins.UndoRedo.prototype.managerStateChangeKey_; @@ -154,12 +155,12 @@ goog.editor.plugins.UndoRedo.prototype.setUndoRedoManager = function(manager) { } this.undoManager_ = manager; - this.managerStateChangeKey_ = /** @type {number} */ ( + this.managerStateChangeKey_ = goog.events.listen(this.undoManager_, goog.editor.plugins.UndoRedoManager.EventType.STATE_CHANGE, this.dispatchCommandValueChange_, false, - this)); + this); }; @@ -411,7 +412,7 @@ goog.editor.plugins.UndoRedo.prototype.restoreState = function( // We specifically set the raw innerHTML of the field here as that's what // we get from the field when we save an undo/redo state. There's // no need to clean/unclean the contents in either direction. - fieldObj.getElement().innerHTML = content; + goog.editor.node.replaceInnerHtml(fieldObj.getElement(), content); if (cursorPosition) { cursorPosition.select(); @@ -432,7 +433,7 @@ goog.editor.plugins.UndoRedo.prototype.restoreState = function( this.currentStates_[state.fieldHashCode].setUndoState( content, cursorPosition); } catch (e) { - this.logger.severe('Error while restoring undo state', e); + goog.log.error(this.logger, 'Error while restoring undo state', e); } finally { // Clear the delayed change event, set flag so we know not to act on it. this.inProgressUndo_ = state; diff --git a/master/closure-library/closure/goog/editor/plugins/undoredomanager.js b/edit/closure-library/closure/goog/editor/plugins/undoredomanager.js similarity index 99% rename from master/closure-library/closure/goog/editor/plugins/undoredomanager.js rename to edit/closure-library/closure/goog/editor/plugins/undoredomanager.js index 9ebcbe005b..69f2ef5cbf 100644 --- a/master/closure-library/closure/goog/editor/plugins/undoredomanager.js +++ b/edit/closure-library/closure/goog/editor/plugins/undoredomanager.js @@ -114,7 +114,7 @@ goog.editor.plugins.UndoRedoManager.EventType = { /** * The key for the listener for the completion of the asynchronous state whose * undo or redo action is in progress. Null if no action is in progress. - * @type {?number} + * @type {goog.events.Key} * @private */ goog.editor.plugins.UndoRedoManager.prototype.inProgressActionKey_ = null; diff --git a/master/closure-library/closure/goog/editor/plugins/undoredostate.js b/edit/closure-library/closure/goog/editor/plugins/undoredostate.js similarity index 99% rename from master/closure-library/closure/goog/editor/plugins/undoredostate.js rename to edit/closure-library/closure/goog/editor/plugins/undoredostate.js index b3da4951fd..ded31d2c7b 100644 --- a/master/closure-library/closure/goog/editor/plugins/undoredostate.js +++ b/edit/closure-library/closure/goog/editor/plugins/undoredostate.js @@ -36,6 +36,8 @@ goog.require('goog.events.EventTarget'); * @extends {goog.events.EventTarget} */ goog.editor.plugins.UndoRedoState = function(asynchronous) { + goog.base(this); + /** * Indicates if the undo or redo actions for this state complete * asynchronously. diff --git a/master/closure-library/closure/goog/editor/range.js b/edit/closure-library/closure/goog/editor/range.js similarity index 86% rename from master/closure-library/closure/goog/editor/range.js rename to edit/closure-library/closure/goog/editor/range.js index 26d8636e4a..b6100f3606 100644 --- a/master/closure-library/closure/goog/editor/range.js +++ b/edit/closure-library/closure/goog/editor/range.js @@ -27,10 +27,10 @@ goog.require('goog.dom.NodeType'); goog.require('goog.dom.Range'); goog.require('goog.dom.RangeEndpoint'); goog.require('goog.dom.SavedCaretRange'); -goog.require('goog.editor.BrowserFeature'); goog.require('goog.editor.node'); goog.require('goog.editor.style'); goog.require('goog.iter'); +goog.require('goog.userAgent'); /** @@ -187,17 +187,7 @@ goog.editor.range.placeCursorNextTo = function(node, toLeft) { var offset = goog.array.indexOf(parent.childNodes, node) + (toLeft ? 0 : 1); var point = goog.editor.range.Point.createDeepestPoint( - parent, offset, toLeft); - // NOTE: It's for fixing bug that selecting HR tag breaks - // the cursor position In IE9. See http://b/6040468. - if (goog.userAgent.IE && goog.userAgent.isVersion('9') && - point.node.nodeType == goog.dom.NodeType.ELEMENT && - point.node.tagName == goog.dom.TagName.HR) { - var hr = point.node; - point.node = hr.parentNode; - point.offset = goog.array.indexOf(point.node.childNodes, hr) + - (toLeft ? 0 : 1); - } + parent, offset, toLeft, true); var range = goog.dom.Range.createCaret(point.node, point.offset); range.select(); return range; @@ -343,53 +333,54 @@ goog.editor.range.getDeepEndPoint = function(range, atStart) { * range. Should be called after body.normalize() is called. */ goog.editor.range.normalize = function(range) { - var startPoint = goog.editor.range.normalizePoint_( - goog.editor.range.getDeepEndPoint(range, true)); - var startParent = startPoint.getParentPoint(); - var startPreviousSibling = startPoint.node.previousSibling; - if (startPoint.node.nodeType == goog.dom.NodeType.TEXT) { - startPoint.node = null; + var isReversed = range.isReversed(); + var anchorPoint = goog.editor.range.normalizePoint_( + goog.editor.range.getDeepEndPoint(range, !isReversed)); + var anchorParent = anchorPoint.getParentPoint(); + var anchorPreviousSibling = anchorPoint.node.previousSibling; + if (anchorPoint.node.nodeType == goog.dom.NodeType.TEXT) { + anchorPoint.node = null; } - var endPoint = goog.editor.range.normalizePoint_( - goog.editor.range.getDeepEndPoint(range, false)); - var endParent = endPoint.getParentPoint(); - var endPreviousSibling = endPoint.node.previousSibling; - if (endPoint.node.nodeType == goog.dom.NodeType.TEXT) { - endPoint.node = null; + var focusPoint = goog.editor.range.normalizePoint_( + goog.editor.range.getDeepEndPoint(range, isReversed)); + var focusParent = focusPoint.getParentPoint(); + var focusPreviousSibling = focusPoint.node.previousSibling; + if (focusPoint.node.nodeType == goog.dom.NodeType.TEXT) { + focusPoint.node = null; } /** @return {goog.dom.AbstractRange} The normalized range. */ return function() { - if (!startPoint.node && startPreviousSibling) { - // If startPoint.node was previously an empty text node with no siblings, - // startPreviousSibling may not have a nextSibling since that node will no - // longer exist. Do our best and point to the end of the previous + if (!anchorPoint.node && anchorPreviousSibling) { + // If anchorPoint.node was previously an empty text node with no siblings, + // anchorPreviousSibling may not have a nextSibling since that node will + // no longer exist. Do our best and point to the end of the previous // element. - startPoint.node = startPreviousSibling.nextSibling; - if (!startPoint.node) { - startPoint = goog.editor.range.Point.getPointAtEndOfNode( - startPreviousSibling); + anchorPoint.node = anchorPreviousSibling.nextSibling; + if (!anchorPoint.node) { + anchorPoint = goog.editor.range.Point.getPointAtEndOfNode( + anchorPreviousSibling); } } - if (!endPoint.node && endPreviousSibling) { - // If endPoint.node was previously an empty text node with no siblings, - // endPreviousSibling may not have a nextSibling since that node will no + if (!focusPoint.node && focusPreviousSibling) { + // If focusPoint.node was previously an empty text node with no siblings, + // focusPreviousSibling may not have a nextSibling since that node will no // longer exist. Do our best and point to the end of the previous // element. - endPoint.node = endPreviousSibling.nextSibling; - if (!endPoint.node) { - endPoint = goog.editor.range.Point.getPointAtEndOfNode( - endPreviousSibling); + focusPoint.node = focusPreviousSibling.nextSibling; + if (!focusPoint.node) { + focusPoint = goog.editor.range.Point.getPointAtEndOfNode( + focusPreviousSibling); } } return goog.dom.Range.createFromNodes( - startPoint.node || startParent.node.firstChild || startParent.node, - startPoint.offset, - endPoint.node || endParent.node.firstChild || endParent.node, - endPoint.offset); + anchorPoint.node || anchorParent.node.firstChild || anchorParent.node, + anchorPoint.offset, + focusPoint.node || focusParent.node.firstChild || focusParent.node, + focusPoint.offset); }; }; @@ -513,25 +504,39 @@ goog.editor.range.Point.prototype.getParentPoint = function() { * By default, we trend rightward. If this parameter is true, then we * trend leftward. The tendency to fall rightward by default is for * consistency with other range APIs (like placeCursorNextTo). + * @param {boolean=} opt_stopOnChildlessElement If true, and we encounter + * a Node which is an Element that cannot have children, we return a Point + * based on its parent rather than that Node itself. * @return {goog.editor.range.Point} A new point. */ goog.editor.range.Point.createDeepestPoint = - function(node, offset, opt_trendLeft) { + function(node, offset, opt_trendLeft, opt_stopOnChildlessElement) { while (node.nodeType == goog.dom.NodeType.ELEMENT) { var child = node.childNodes[offset]; if (!child && !node.lastChild) { break; - } - if (child) { + } else if (child) { var prevSibling = child.previousSibling; if (opt_trendLeft && prevSibling) { + if (opt_stopOnChildlessElement && + goog.editor.range.Point.isTerminalElement_(prevSibling)) { + break; + } node = prevSibling; offset = goog.editor.node.getLength(node); } else { + if (opt_stopOnChildlessElement && + goog.editor.range.Point.isTerminalElement_(child)) { + break; + } node = child; offset = 0; } } else { + if (opt_stopOnChildlessElement && + goog.editor.range.Point.isTerminalElement_(node.lastChild)) { + break; + } node = node.lastChild; offset = goog.editor.node.getLength(node); } @@ -541,6 +546,21 @@ goog.editor.range.Point.createDeepestPoint = }; +/** + * Return true if the specified node is an Element that is not expected to have + * children. The createDeepestPoint() method should not traverse into + * such elements. + * @param {Node} node . + * @return {boolean} True if the node is an Element that does not contain + * child nodes (e.g. BR, IMG). + * @private + */ +goog.editor.range.Point.isTerminalElement_ = function(node) { + return (node.nodeType == goog.dom.NodeType.ELEMENT && + !goog.dom.canHaveChildren(node)); +}; + + /** * Construct a point at the very end of the given node. * @param {Node} node The node to create a point for. diff --git a/master/closure-library/closure/goog/editor/seamlessfield.js b/edit/closure-library/closure/goog/editor/seamlessfield.js similarity index 97% rename from master/closure-library/closure/goog/editor/seamlessfield.js rename to edit/closure-library/closure/goog/editor/seamlessfield.js index 8cf5c1c5d6..a3118bd8cf 100644 --- a/master/closure-library/closure/goog/editor/seamlessfield.js +++ b/edit/closure-library/closure/goog/editor/seamlessfield.js @@ -26,7 +26,6 @@ goog.provide('goog.editor.SeamlessField'); goog.require('goog.cssom.iframe.style'); -goog.require('goog.debug.Logger'); goog.require('goog.dom'); goog.require('goog.dom.Range'); goog.require('goog.dom.TagName'); @@ -38,6 +37,7 @@ goog.require('goog.editor.icontent.FieldStyleInfo'); goog.require('goog.editor.node'); goog.require('goog.events'); goog.require('goog.events.EventType'); +goog.require('goog.log'); goog.require('goog.style'); @@ -64,14 +64,14 @@ goog.inherits(goog.editor.SeamlessField, goog.editor.Field); * @override */ goog.editor.SeamlessField.prototype.logger = - goog.debug.Logger.getLogger('goog.editor.SeamlessField'); + goog.log.getLogger('goog.editor.SeamlessField'); // Functions dealing with field sizing. /** * The key used for listening for the "dragover" event. - * @type {number?} + * @type {goog.events.Key} * @private */ goog.editor.SeamlessField.prototype.listenForDragOverEventKey_; @@ -79,7 +79,7 @@ goog.editor.SeamlessField.prototype.listenForDragOverEventKey_; /** * The key used for listening for the iframe "load" event. - * @type {number?} + * @type {goog.events.Key} * @private */ goog.editor.SeamlessField.prototype.listenForIframeLoadEventKey_; @@ -174,6 +174,7 @@ goog.editor.SeamlessField.prototype.handleOuterDocChange_ = function() { */ goog.editor.SeamlessField.prototype.sizeIframeToBodyHeightGecko_ = function() { if (this.acquireSizeIframeLockGecko_()) { + var resized = false; var ifr = this.getEditableIframe(); if (ifr) { var fieldHeight = this.getIframeBodyHeightGecko_(); @@ -183,9 +184,13 @@ goog.editor.SeamlessField.prototype.sizeIframeToBodyHeightGecko_ = function() { } if (parseInt(goog.style.getStyle(ifr, 'height'), 10) != fieldHeight) { ifr.style.height = fieldHeight + 'px'; + resized = true; } } this.releaseSizeIframeLockGecko_(); + if (resized) { + this.dispatchEvent(goog.editor.Field.EventType.IFRAME_RESIZED); + } } }; @@ -260,6 +265,7 @@ goog.editor.SeamlessField.prototype.sizeIframeToWrapperGecko_ = function() { if (this.acquireSizeIframeLockGecko_()) { var ifr = this.getEditableIframe(); var field = this.getElement(); + var resized = false; if (ifr && field) { var fieldPaddingBox; var widthDiv = ifr.parentNode; @@ -270,6 +276,7 @@ goog.editor.SeamlessField.prototype.sizeIframeToWrapperGecko_ = function() { ifr.style.width = width + 'px'; field.style.width = width - fieldPaddingBox.left - fieldPaddingBox.right + 'px'; + resized = true; } var height = widthDiv.offsetHeight; @@ -281,9 +288,14 @@ goog.editor.SeamlessField.prototype.sizeIframeToWrapperGecko_ = function() { ifr.style.height = height + 'px'; field.style.height = height - fieldPaddingBox.top - fieldPaddingBox.bottom + 'px'; + resized = true; } + } this.releaseSizeIframeLockGecko_(); + if (resized) { + this.dispatchEvent(goog.editor.Field.EventType.IFRAME_RESIZED); + } } }; @@ -655,7 +667,7 @@ goog.editor.SeamlessField.prototype.attachIframe = function(iframe) { goog.style.setStyle(field, 'lineHeight', '0'); } - field.innerHTML = html; + goog.editor.node.replaceInnerHtml(field, html); // Set the initial size goog.style.setSize(iframe, width, height); goog.style.setSize(field, oldWidth, oldHeight); diff --git a/master/closure-library/closure/goog/editor/seamlessfield_test.js b/edit/closure-library/closure/goog/editor/seamlessfield_test.js similarity index 83% rename from master/closure-library/closure/goog/editor/seamlessfield_test.js rename to edit/closure-library/closure/goog/editor/seamlessfield_test.js index b13309b3ea..a82efc1b62 100644 --- a/master/closure-library/closure/goog/editor/seamlessfield_test.js +++ b/edit/closure-library/closure/goog/editor/seamlessfield_test.js @@ -20,6 +20,7 @@ * and the mocks don't fit well in the type system. */ +/** @suppress {extraProvide} */ goog.provide('goog.editor.seamlessfield_test'); goog.require('goog.dom'); @@ -46,7 +47,7 @@ function setUp() { } function tearDown() { - goog.events.removeAll(); + goog.events.removeAllNativeListeners(); fieldElem.parentNode.replaceChild(fieldElemClone, fieldElem); } @@ -148,6 +149,79 @@ function testIframeHeightGrowsOnWrap() { } } +function testDispatchIframeResizedForWrapperHeight() { + if (!goog.editor.BrowserFeature.HAS_CONTENT_EDITABLE) { + var clock = new goog.testing.MockClock(true); + var blendedField = initSeamlessField('Hi!', {'border': '2px 5px'}); + var iframe = createSeamlessIframe(); + blendedField.attachIframe(iframe); + + var resizeCalled = false; + goog.events.listenOnce( + blendedField, + goog.editor.Field.EventType.IFRAME_RESIZED, + function() { + resizeCalled = true; + }); + + try { + blendedField.makeEditable(); + blendedField.setHtml(false, 'Content that should wrap after resize.'); + + // Ensure that the field was fully loaded and sized before measuring. + clock.tick(1); + + assertFalse('Iframe resize must not be dispatched yet', resizeCalled); + + // Resize the field such that the text should wrap. + fieldElem.style.width = '200px'; + blendedField.sizeIframeToWrapperGecko_(); + assertTrue('Iframe resize must be dispatched for Wrapper', resizeCalled); + } finally { + blendedField.dispose(); + clock.dispose(); + } + } +} + +function testDispatchIframeResizedForBodyHeight() { + if (!goog.editor.BrowserFeature.HAS_CONTENT_EDITABLE) { + var clock = new goog.testing.MockClock(true); + var blendedField = initSeamlessField('Hi!', {'border': '2px 5px'}); + var iframe = createSeamlessIframe(); + blendedField.attachIframe(iframe); + + var resizeCalled = false; + goog.events.listenOnce( + blendedField, + goog.editor.Field.EventType.IFRAME_RESIZED, + function() { + resizeCalled = true; + }); + + try { + blendedField.makeEditable(); + blendedField.setHtml(false, 'Content that should wrap after resize.'); + + // Ensure that the field was fully loaded and sized before measuring. + clock.tick(1); + + assertFalse('Iframe resize must not be dispatched yet', resizeCalled); + + // Resize the field to a different body height. + var bodyHeight = blendedField.getIframeBodyHeightGecko_(); + blendedField.getIframeBodyHeightGecko_ = function() { + return bodyHeight + 1; + }; + blendedField.sizeIframeToBodyHeightGecko_(); + assertTrue('Iframe resize must be dispatched for Body', resizeCalled); + } finally { + blendedField.dispose(); + clock.dispose(); + } + } +} + function testDispatchBlur() { if (!goog.editor.BrowserFeature.HAS_CONTENT_EDITABLE && !goog.editor.BrowserFeature.CLEARS_SELECTION_WHEN_FOCUS_LEAVES) { @@ -175,7 +249,7 @@ function testDispatchBlur() { clearSelection(opt_window); cleared = true; clearedWindow = opt_window; - } + }; var clock = new goog.testing.MockClock(true); mockRange.collapse(true); @@ -231,7 +305,7 @@ function testSetMinHeight() { assertFalse('Setting min height must not cause delayed change event.', delayedChangeCalled); } finally { - goog.events.removeAll(); + goog.events.removeAllNativeListeners(); field.dispose(); clock.dispose(); } @@ -250,7 +324,7 @@ function testSetMinHeightWithNoIframe() { field.setMinHeight(30); } finally { field.dispose(); - goog.events.removeAll(); + goog.events.removeAllNativeListeners(); } } } diff --git a/master/closure-library/closure/goog/editor/style.js b/edit/closure-library/closure/goog/editor/style.js similarity index 100% rename from master/closure-library/closure/goog/editor/style.js rename to edit/closure-library/closure/goog/editor/style.js diff --git a/master/closure-library/closure/goog/editor/table.js b/edit/closure-library/closure/goog/editor/table.js similarity index 98% rename from master/closure-library/closure/goog/editor/table.js rename to edit/closure-library/closure/goog/editor/table.js index fbf7ab65f8..801e8acdc0 100644 --- a/master/closure-library/closure/goog/editor/table.js +++ b/edit/closure-library/closure/goog/editor/table.js @@ -27,11 +27,11 @@ goog.provide('goog.editor.Table'); goog.provide('goog.editor.TableCell'); goog.provide('goog.editor.TableRow'); -goog.require('goog.debug.Logger'); goog.require('goog.dom'); goog.require('goog.dom.DomHelper'); goog.require('goog.dom.NodeType'); goog.require('goog.dom.TagName'); +goog.require('goog.log'); goog.require('goog.string.Unicode'); goog.require('goog.style'); @@ -46,7 +46,7 @@ goog.editor.Table = function(node) { this.element = goog.dom.getAncestorByTagNameAndClass(node, goog.dom.TagName.TABLE); if (!this.element) { - this.logger_.severe( + goog.log.error(this.logger_, "Can't create Table based on a node " + "that isn't a table, or descended from a table."); } @@ -57,11 +57,11 @@ goog.editor.Table = function(node) { /** * Logger object for debugging and error messages. - * @type {goog.debug.Logger} + * @type {goog.log.Logger} * @private */ goog.editor.Table.prototype.logger_ = - goog.debug.Logger.getLogger('goog.editor.Table'); + goog.log.getLogger('goog.editor.Table'); /** @@ -231,7 +231,7 @@ goog.editor.Table.prototype.insertColumn = function(opt_colIndex) { goog.editor.Table.prototype.removeRow = function(rowIndex) { var row = this.rows[rowIndex]; if (!row) { - this.logger_.warning( + goog.log.warning(this.logger_, "Can't remove row at position " + rowIndex + ': no such row.'); } for (var i = 0, cell; cell = row.columns[i]; i += cell.colSpan) { @@ -257,7 +257,7 @@ goog.editor.Table.prototype.removeColumn = function(colIndex) { for (var i = 0, row; row = this.rows[i]; i++) { var cell = row.columns[colIndex]; if (!cell) { - this.logger_.severe( + goog.log.error(this.logger_, "Can't remove cell at position " + i + ', ' + colIndex + ': no such cell.'); } @@ -289,7 +289,7 @@ goog.editor.Table.prototype.mergeCells = function( var cells = []; var cell; if (startRowIndex == endRowIndex && startColIndex == endColIndex) { - this.logger_.warning("Can't merge single cell"); + goog.log.warning(this.logger_, "Can't merge single cell"); return false; } // Gather cells and do sanity check. @@ -300,7 +300,7 @@ goog.editor.Table.prototype.mergeCells = function( cell.endRow > endRowIndex || cell.startCol < startColIndex || cell.endCol > endColIndex) { - this.logger_.warning( + goog.log.warning(this.logger_, "Can't merge cells: the cell in row " + i + ', column ' + j + 'extends outside the supplied rectangle.'); return false; diff --git a/master/closure-library/closure/goog/events/actioneventwrapper.js b/edit/closure-library/closure/goog/events/actioneventwrapper.js similarity index 87% rename from master/closure-library/closure/goog/events/actioneventwrapper.js rename to edit/closure-library/closure/goog/events/actioneventwrapper.js index 420001e910..2995d53813 100644 --- a/master/closure-library/closure/goog/events/actioneventwrapper.js +++ b/edit/closure-library/closure/goog/events/actioneventwrapper.js @@ -54,9 +54,9 @@ goog.events.actionEventWrapper = new goog.events.ActionEventWrapper_(); */ goog.events.ActionEventWrapper_.EVENT_TYPES_ = [ goog.events.EventType.CLICK, - goog.userAgent.IE ? - goog.events.EventType.KEYDOWN : - goog.events.EventType.KEYPRESS + goog.userAgent.GECKO ? + goog.events.EventType.KEYPRESS : + goog.events.EventType.KEYDOWN ]; @@ -65,8 +65,7 @@ goog.events.ActionEventWrapper_.EVENT_TYPES_ = [ * implemented {@link goog.events.EventTarget}. A listener can only be added * once to an object. * - * @param {EventTarget|goog.events.EventTarget} target The node to listen to - * events on. + * @param {goog.events.ListenableType} target The target to listen to events on. * @param {Function|Object} listener Callback method, or an object with a * handleEvent function. * @param {boolean=} opt_capt Whether to fire in capture phase (defaults to @@ -94,11 +93,11 @@ goog.events.ActionEventWrapper_.prototype.listen = function(target, listener, if (opt_eventHandler) { opt_eventHandler.listen(target, goog.events.ActionEventWrapper_.EVENT_TYPES_, - callback); + callback, opt_capt); } else { goog.events.listen(target, goog.events.ActionEventWrapper_.EVENT_TYPES_, - callback); + callback, opt_capt); } }; @@ -106,8 +105,7 @@ goog.events.ActionEventWrapper_.prototype.listen = function(target, listener, /** * Removes an event listener added using goog.events.EventWrapper.listen. * - * @param {EventTarget|goog.events.EventTarget} target The node to remove - * listener from. + * @param {goog.events.ListenableType} target The node to remove listener from. * @param {Function|Object} listener Callback method, or an object with a * handleEvent function. * @param {boolean=} opt_capt Whether to fire in capture phase (defaults to @@ -121,14 +119,15 @@ goog.events.ActionEventWrapper_.prototype.unlisten = function(target, listener, opt_capt, opt_scope, opt_eventHandler) { for (var type, j = 0; type = goog.events.ActionEventWrapper_.EVENT_TYPES_[j]; j++) { - var listeners = goog.events.getListeners(target, type, false); + var listeners = goog.events.getListeners(target, type, !!opt_capt); for (var obj, i = 0; obj = listeners[i]; i++) { if (obj.listener.listener_ == listener && obj.listener.scope_ == opt_scope) { if (opt_eventHandler) { - opt_eventHandler.unlisten(target, type, obj.listener); + opt_eventHandler.unlisten(target, type, obj.listener, opt_capt, + opt_scope); } else { - goog.events.unlisten(target, type, obj.listener); + goog.events.unlisten(target, type, obj.listener, opt_capt, opt_scope); } break; } diff --git a/master/closure-library/closure/goog/events/actionhandler.js b/edit/closure-library/closure/goog/events/actionhandler.js similarity index 100% rename from master/closure-library/closure/goog/events/actionhandler.js rename to edit/closure-library/closure/goog/events/actionhandler.js diff --git a/master/closure-library/closure/goog/events/browserevent.js b/edit/closure-library/closure/goog/events/browserevent.js similarity index 97% rename from master/closure-library/closure/goog/events/browserevent.js rename to edit/closure-library/closure/goog/events/browserevent.js index 5535f6d055..59df7fd496 100644 --- a/master/closure-library/closure/goog/events/browserevent.js +++ b/edit/closure-library/closure/goog/events/browserevent.js @@ -60,7 +60,7 @@ goog.require('goog.userAgent'); * The content of this object will not be initialized if no event object is * provided. If this is the case, init() needs to be invoked separately. * @param {Event=} opt_e Browser event object. - * @param {Node=} opt_currentTarget Current target for event. + * @param {EventTarget=} opt_currentTarget Current target for event. * @constructor * @extends {goog.events.Event} */ @@ -236,7 +236,7 @@ goog.events.BrowserEvent.prototype.event_ = null; * Accepts a browser event object and creates a patched, cross browser event * object. * @param {Event} e Browser event object. - * @param {Node=} opt_currentTarget Current target for event. + * @param {EventTarget=} opt_currentTarget Current target for event. */ goog.events.BrowserEvent.prototype.init = function(e, opt_currentTarget) { var type = this.type = e.type; @@ -245,7 +245,8 @@ goog.events.BrowserEvent.prototype.init = function(e, opt_currentTarget) { // TODO(nicksantos): Change this.target to type EventTarget. this.target = /** @type {Node} */ (e.target) || e.srcElement; - this.currentTarget = opt_currentTarget; + // TODO(nicksantos): Change this.currentTarget to type EventTarget. + this.currentTarget = /** @type {Node} */ (opt_currentTarget); var relatedTarget = /** @type {Node} */ (e.relatedTarget); if (relatedTarget) { diff --git a/master/closure-library/closure/goog/events/browserfeature.js b/edit/closure-library/closure/goog/events/browserfeature.js similarity index 59% rename from master/closure-library/closure/goog/events/browserfeature.js rename to edit/closure-library/closure/goog/events/browserfeature.js index 0cc103f2dd..61b9d609a3 100644 --- a/master/closure-library/closure/goog/events/browserfeature.js +++ b/edit/closure-library/closure/goog/events/browserfeature.js @@ -32,40 +32,54 @@ goog.events.BrowserFeature = { * Whether the button attribute of the event is W3C compliant. False in * Internet Explorer prior to version 9; document-version dependent. */ - HAS_W3C_BUTTON: !goog.userAgent.IE || goog.userAgent.isDocumentMode(9), + HAS_W3C_BUTTON: !goog.userAgent.IE || + goog.userAgent.isDocumentModeOrHigher(9), /** * Whether the browser supports full W3C event model. */ - HAS_W3C_EVENT_SUPPORT: !goog.userAgent.IE || goog.userAgent.isDocumentMode(9), + HAS_W3C_EVENT_SUPPORT: !goog.userAgent.IE || + goog.userAgent.isDocumentModeOrHigher(9), /** * To prevent default in IE7-8 for certain keydown events we need set the * keyCode to -1. */ SET_KEY_CODE_TO_PREVENT_DEFAULT: goog.userAgent.IE && - !goog.userAgent.isVersion('9'), + !goog.userAgent.isVersionOrHigher('9'), /** * Whether the {@code navigator.onLine} property is supported. */ HAS_NAVIGATOR_ONLINE_PROPERTY: !goog.userAgent.WEBKIT || - goog.userAgent.isVersion('528'), + goog.userAgent.isVersionOrHigher('528'), /** * Whether HTML5 network online/offline events are supported. */ HAS_HTML5_NETWORK_EVENT_SUPPORT: - goog.userAgent.GECKO && goog.userAgent.isVersion('1.9b') || - goog.userAgent.IE && goog.userAgent.isVersion('8') || - goog.userAgent.OPERA && goog.userAgent.isVersion('9.5') || - goog.userAgent.WEBKIT && goog.userAgent.isVersion('528'), + goog.userAgent.GECKO && goog.userAgent.isVersionOrHigher('1.9b') || + goog.userAgent.IE && goog.userAgent.isVersionOrHigher('8') || + goog.userAgent.OPERA && goog.userAgent.isVersionOrHigher('9.5') || + goog.userAgent.WEBKIT && goog.userAgent.isVersionOrHigher('528'), /** * Whether HTML5 network events fire on document.body, or otherwise the * window. */ HTML5_NETWORK_EVENTS_FIRE_ON_BODY: - goog.userAgent.GECKO && !goog.userAgent.isVersion('8') || - goog.userAgent.IE && !goog.userAgent.isVersion('9') + goog.userAgent.GECKO && !goog.userAgent.isVersionOrHigher('8') || + goog.userAgent.IE && !goog.userAgent.isVersionOrHigher('9'), + + /** + * Whether touch is enabled in the browser. + */ + TOUCH_ENABLED: + ('ontouchstart' in goog.global || + !!(goog.global['document'] && + document.documentElement && + 'ontouchstart' in document.documentElement) || + // IE10 uses non-standard touch events, so it has a different check. + !!(goog.global['navigator'] && + goog.global['navigator']['msMaxTouchPoints'])) }; diff --git a/master/closure-library/closure/goog/events/event.js b/edit/closure-library/closure/goog/events/event.js similarity index 90% rename from master/closure-library/closure/goog/events/event.js rename to edit/closure-library/closure/goog/events/event.js index bc2311c54e..ba406d57e5 100644 --- a/master/closure-library/closure/goog/events/event.js +++ b/edit/closure-library/closure/goog/events/event.js @@ -19,12 +19,24 @@ goog.provide('goog.events.Event'); +goog.provide('goog.events.EventLike'); // goog.events.Event no longer depends on goog.Disposable. Keep requiring // goog.Disposable here to not break projects which assume this dependency. goog.require('goog.Disposable'); +/** + * A typedef for event like objects that are dispatchable via the + * goog.events.dispatchEvent function. strings are treated as the type for a + * goog.events.Event. Objects are treated as an extension of a new + * goog.events.Event with the type property of the object being used as the type + * of the Event. + * @typedef {string|Object|goog.events.Event} + */ +goog.events.EventLike; + + /** * A base class for event objects, so that they can support preventDefault and diff --git a/master/closure-library/closure/goog/events/eventhandler.js b/edit/closure-library/closure/goog/events/eventhandler.js similarity index 82% rename from master/closure-library/closure/goog/events/eventhandler.js rename to edit/closure-library/closure/goog/events/eventhandler.js index eff909fd2f..b66defb9e2 100644 --- a/master/closure-library/closure/goog/events/eventhandler.js +++ b/edit/closure-library/closure/goog/events/eventhandler.js @@ -58,9 +58,8 @@ goog.provide('goog.events.EventHandler'); goog.require('goog.Disposable'); -goog.require('goog.array'); goog.require('goog.events'); -goog.require('goog.events.EventWrapper'); +goog.require('goog.object'); @@ -78,10 +77,10 @@ goog.events.EventHandler = function(opt_handler) { /** * Keys for events that are being listened to. - * @type {Array.} + * @type {!Object.} * @private */ - this.keys_ = []; + this.keys_ = {}; }; goog.inherits(goog.events.EventHandler, goog.Disposable); @@ -97,9 +96,9 @@ goog.events.EventHandler.typeArray_ = []; /** - * Listen to an event on a DOM node or EventTarget. If the function is omitted - * then the EventHandler's handleEvent method will be used. - * @param {goog.events.EventTarget|EventTarget} src Event source. + * Listen to an event on a Listenable. If the function is omitted then the + * EventHandler's handleEvent method will be used. + * @param {goog.events.ListenableType} src Event source. * @param {string|Array.} type Event type to listen for or array of * event types. * @param {Function|Object=} opt_fn Optional callback function to be used as the @@ -117,13 +116,20 @@ goog.events.EventHandler.prototype.listen = function(src, type, opt_fn, type = goog.events.EventHandler.typeArray_; } for (var i = 0; i < type.length; i++) { - // goog.events.listen generates unique keys so we don't have to check their - // presence in the this.keys_ array. - var key = (/** @type {number} */ - goog.events.listen(src, type[i], opt_fn || this, - opt_capture || false, - opt_handler || this.handler_ || this)); - this.keys_.push(key); + var listenerObj = goog.events.listen( + src, type[i], opt_fn || this, + opt_capture || false, + opt_handler || this.handler_ || this); + + if (goog.DEBUG && !listenerObj) { + // Some tests mock goog.events.listen, thus ensuring that + // they are never testing the real thing anyway, hence this is safe + // (except that #getListenerCount() will return the wrong value). + return this; + } + + var key = listenerObj.key; + this.keys_[key] = listenerObj; } return this; @@ -131,11 +137,11 @@ goog.events.EventHandler.prototype.listen = function(src, type, opt_fn, /** - * Listen to an event on a DOM node or EventTarget. If the function is omitted - * then the EventHandler's handleEvent method will be used. After the event has - * fired the event listener is removed from the target. If an array of event - * types is provided, each event type will be listened to once. - * @param {goog.events.EventTarget|EventTarget} src Event source. + * Listen to an event on a Listenable. If the function is omitted, then the + * EventHandler's handleEvent method will be used. After the event has fired the + * event listener is removed from the target. If an array of event types is + * provided, each event type will be listened to once. + * @param {goog.events.ListenableType} src Event source. * @param {string|Array.} type Event type to listen for or array of * event types. * @param {Function|Object=} opt_fn Optional callback function to be used as the @@ -153,10 +159,11 @@ goog.events.EventHandler.prototype.listenOnce = function(src, type, opt_fn, this.listenOnce(src, type[i], opt_fn, opt_capture, opt_handler); } } else { - var key = (/** @type {number} */ - goog.events.listenOnce(src, type, opt_fn || this, opt_capture, - opt_handler || this.handler_ || this)); - this.keys_.push(key); + var listenerObj = goog.events.listenOnce( + src, type, opt_fn || this, opt_capture, + opt_handler || this.handler_ || this); + var key = listenerObj.key; + this.keys_[key] = listenerObj; } return this; @@ -191,13 +198,19 @@ goog.events.EventHandler.prototype.listenWithWrapper = function(src, wrapper, * @return {number} Number of listeners registered by this handler. */ goog.events.EventHandler.prototype.getListenerCount = function() { - return this.keys_.length; + var count = 0; + for (var key in this.keys_) { + if (Object.prototype.hasOwnProperty.call(this.keys_, key)) { + count++; + } + } + return count; }; /** * Unlistens on an event. - * @param {goog.events.EventTarget|EventTarget} src Event source. + * @param {goog.events.ListenableType} src Event source. * @param {string|Array.} type Event type to listen for. * @param {Function|Object=} opt_fn Optional callback function to be used as the * listener or an object with handleEvent function. @@ -218,9 +231,8 @@ goog.events.EventHandler.prototype.unlisten = function(src, type, opt_fn, opt_capture, opt_handler || this.handler_ || this); if (listener) { - var key = listener.key; - goog.events.unlistenByKey(key); - goog.array.remove(this.keys_, key); + goog.events.unlistenByKey(listener); + delete this.keys_[listener.key]; } } @@ -254,8 +266,8 @@ goog.events.EventHandler.prototype.unlistenWithWrapper = function(src, wrapper, * Unlistens to all events. */ goog.events.EventHandler.prototype.removeAll = function() { - goog.array.forEach(this.keys_, goog.events.unlistenByKey); - this.keys_.length = 0; + goog.object.forEach(this.keys_, goog.events.unlistenByKey); + this.keys_ = {}; }; diff --git a/master/closure-library/closure/goog/events/events.js b/edit/closure-library/closure/goog/events/events.js similarity index 59% rename from master/closure-library/closure/goog/events/events.js rename to edit/closure-library/closure/goog/events/events.js index c6664aa408..99e131fd0e 100644 --- a/master/closure-library/closure/goog/events/events.js +++ b/edit/closure-library/closure/goog/events/events.js @@ -13,14 +13,17 @@ // limitations under the License. /** - * @fileoverview Event Manager. + * @fileoverview An event manager for both native browser event + * targets and custom JavaScript event targets + * ({@code goog.events.Listenable}). This provides an abstraction + * over browsers' event systems. * - * Provides an abstracted interface to the browsers' event - * systems. This uses an indirect lookup of listener functions to avoid circular - * references between DOM (in IE) or XPCOM (in Mozilla) objects which leak - * memory. This makes it easier to write OO Javascript/DOM code. - * - * It simulates capture & bubble in Internet Explorer. + * It also provides a simulation of W3C event model's capture phase in + * Internet Explorer (IE 8 and below). Caveat: the simulation does not + * interact well with listeners registered directly on the elements + * (bypassing goog.events) or even with listeners registered via + * goog.events in a separate JS binary. In these cases, we provide + * no ordering guarantees. * * The listeners will also automagically have their event objects patched, so * your handlers don't need to worry about the browser. @@ -31,7 +34,6 @@ * goog.events.listen(myNode, 'mouseover', mouseHandler, true); * goog.events.unlisten(myNode, 'mouseover', mouseHandler, true); * goog.events.removeAll(myNode); - * goog.events.removeAll(); * * * in IE and event object patching] @@ -43,34 +45,54 @@ */ -// This uses 3 lookup tables/trees. -// listenerTree_ is a tree of type -> capture -> src uid -> [Listener] -// listeners_ is a map of key -> [Listener] +// IMPLEMENTATION NOTES: +// This uses an indirect lookup of listener functions to avoid +// circular references between DOM (in IE) or XPCOM (in Mozilla) +// objects which leak memory. Unfortunately, this design is now +// problematic in modern browsers as it requires a global lookup table +// in JavaScript. This lookup table needs to be cleaned up manually +// (by calling #unlisten/#unlistenByKey), otherwise it will cause +// memory leaks. (This does not apply to goog.events.EventTarget, which +// no longer uses the global lookup table.) // -// The key is a field of the Listener. The Listener class also has the type, -// capture and the src so one can always trace back in the tree -// -// sources_: src uid -> [Listener] +// This uses 3 lookup tables/trees for native event targets. +// listenerTree_ is a tree of type -> capture -> src uid -> [Listener] +// listeners_ is a map of key -> [Listener] +// The key is a field of the Listener. The Listener class also +// has the type, capture and the src so one can always trace +// back in the tree +// sources_: src uid -> [Listener] goog.provide('goog.events'); +goog.provide('goog.events.Key'); +goog.provide('goog.events.ListenableType'); goog.require('goog.array'); +goog.require('goog.asserts'); goog.require('goog.debug.entryPointRegistry'); -goog.require('goog.debug.errorHandlerWeakDep'); goog.require('goog.events.BrowserEvent'); goog.require('goog.events.BrowserFeature'); -goog.require('goog.events.Event'); -goog.require('goog.events.EventWrapper'); +goog.require('goog.events.Listenable'); goog.require('goog.events.Listener'); goog.require('goog.object'); -goog.require('goog.userAgent'); + + +/** + * @typedef {number|goog.events.ListenableKey} + */ +goog.events.Key; + + +/** + * @typedef {EventTarget|goog.events.Listenable} + */ +goog.events.ListenableType; /** * Container for storing event listeners and their proxies - * @private - * @type {Object.} + * @private {!Object.} */ goog.events.listeners_ = {}; @@ -101,8 +123,9 @@ goog.events.onString_ = 'on'; /** - * Map of computed on strings for IE event types. Caching this removes an extra - * object allocation in goog.events.listen which improves IE6 performance. + * Map of computed "on" strings for IE event types. Caching + * this removes an extra object allocation in goog.events.listen which + * improves IE6 performance. * @type {Object} * @private */ @@ -119,114 +142,150 @@ goog.events.keySeparator_ = '_'; /** - * Adds an event listener for a specific event on a DOM Node or an object that - * has implemented {@link goog.events.EventTarget}. A listener can only be - * added once to an object and if it is added again the key for the listener - * is returned. + * Adds an event listener for a specific event on a native event + * target (such as a DOM element) or an object that has implemented + * {@link goog.events.Listenable}. A listener can only be added once + * to an object and if it is added again the key for the listener is + * returned. Note that if the existing listener is a one-off listener + * (registered via listenOnce), it will no longer be a one-off + * listener after a call to listen(). * - * @param {EventTarget|goog.events.EventTarget} src The node to listen to - * events on. + * @param {EventTarget|goog.events.Listenable} src The node to listen + * to events on. * @param {string|Array.} type Event type or array of event types. - * @param {Function|Object} listener Callback method, or an object with a - * handleEvent function. + * @param {Function|Object} listener Callback method, or an object + * with a handleEvent function. WARNING: passing an Object is now + * softly deprecated. * @param {boolean=} opt_capt Whether to fire in capture phase (defaults to * false). * @param {Object=} opt_handler Element in whose scope to call the listener. - * @return {?number} Unique key for the listener. + * @return {goog.events.Key} Unique key for the listener. */ goog.events.listen = function(src, type, listener, opt_capt, opt_handler) { - if (!type) { - throw Error('Invalid event type'); - } else if (goog.isArray(type)) { + if (goog.isArray(type)) { for (var i = 0; i < type.length; i++) { goog.events.listen(src, type[i], listener, opt_capt, opt_handler); } return null; - } else { - var capture = !!opt_capt; - var map = goog.events.listenerTree_; - - if (!(type in map)) { - map[type] = {count_: 0, remaining_: 0}; - } - map = map[type]; - - if (!(capture in map)) { - map[capture] = {count_: 0, remaining_: 0}; - map.count_++; - } - map = map[capture]; - - var srcUid = goog.getUid(src); - var listenerArray, listenerObj; - - // The remaining_ property is used to be able to short circuit the iteration - // of the event listeners. - // - // Increment the remaining event listeners to call even if this event might - // already have been fired. At this point we do not know if the event has - // been fired and it is too expensive to find out. By incrementing it we are - // guaranteed that we will not skip any event listeners. - map.remaining_++; - - // Do not use srcUid in map here since that will cast the number to a - // string which will allocate one string object. - if (!map[srcUid]) { - listenerArray = map[srcUid] = []; - map.count_++; - } else { - listenerArray = map[srcUid]; - // Ensure that the listeners do not already contain the current listener - for (var i = 0; i < listenerArray.length; i++) { - listenerObj = listenerArray[i]; - if (listenerObj.listener == listener && - listenerObj.handler == opt_handler) { - - // If this listener has been removed we should not return its key. It - // is OK that we create new listenerObj below since the removed one - // will be cleaned up later. - if (listenerObj.removed) { - break; - } - - // We already have this listener. Return its key. - return listenerArray[i].key; - } - } - } - - var proxy = goog.events.getProxy(); - proxy.src = src; - listenerObj = new goog.events.Listener(); - listenerObj.init(listener, proxy, src, type, capture, opt_handler); - var key = listenerObj.key; - proxy.key = key; - - listenerArray.push(listenerObj); - goog.events.listeners_[key] = listenerObj; - - if (!goog.events.sources_[srcUid]) { - goog.events.sources_[srcUid] = []; - } - goog.events.sources_[srcUid].push(listenerObj); - - - // Attach the proxy through the browser's API - if (src.addEventListener) { - if (src == goog.global || !src.customEvent_) { - src.addEventListener(type, proxy, capture); - } - } else { - // The else above used to be else if (src.attachEvent) and then there was - // another else statement that threw an exception warning the developer - // they made a mistake. This resulted in an extra object allocation in IE6 - // due to a wrapper object that had to be implemented around the element - // and so was removed. - src.attachEvent(goog.events.getOnString_(type), proxy); - } - - return key; } + + listener = goog.events.wrapListener_(listener); + if (goog.events.Listenable.isImplementedBy(src)) { + return src.listen( + /** @type {string} */ (type), listener, opt_capt, opt_handler); + } else { + return goog.events.listen_( + /** @type {EventTarget} */ (src), + type, listener, /* callOnce */ false, opt_capt, opt_handler); + } +}; + + +/** + * Adds an event listener for a specific event on a native event + * target. A listener can only be added once to an object and if it + * is added again the key for the listener is returned. + * + * Note that a one-off listener will not change an existing listener, + * if any. On the other hand a normal listener will change existing + * one-off listener to become a normal listener. + * + * @param {EventTarget} src The node to listen to events on. + * @param {?string} type Event type or array of event types. + * @param {!Function} listener Callback function. + * @param {boolean} callOnce Whether the listener is a one-off + * listener or otherwise. + * @param {boolean=} opt_capt Whether to fire in capture phase (defaults to + * false). + * @param {Object=} opt_handler Element in whose scope to call the listener. + * @return {goog.events.ListenableKey} Unique key for the listener. + * @private + */ +goog.events.listen_ = function( + src, type, listener, callOnce, opt_capt, opt_handler) { + if (!type) { + throw Error('Invalid event type'); + } + + var capture = !!opt_capt; + var map = goog.events.listenerTree_; + + if (!(type in map)) { + map[type] = {count_: 0}; + } + map = map[type]; + + if (!(capture in map)) { + map[capture] = {count_: 0}; + map.count_++; + } + map = map[capture]; + + var srcUid = goog.getUid(src); + var listenerArray, listenerObj; + + // Do not use srcUid in map here since that will cast the number to a + // string which will allocate one string object. + if (!map[srcUid]) { + listenerArray = map[srcUid] = []; + map.count_++; + } else { + listenerArray = map[srcUid]; + // Ensure that the listeners do not already contain the current listener + for (var i = 0; i < listenerArray.length; i++) { + listenerObj = listenerArray[i]; + if (listenerObj.listener == listener && + listenerObj.handler == opt_handler) { + + // If this listener has been removed we should not return its key. It + // is OK that we create new listenerObj below since the removed one + // will be cleaned up later. + if (listenerObj.removed) { + break; + } + + if (!callOnce) { + // Ensure that, if there is an existing callOnce listener, it is no + // longer a callOnce listener. + listenerArray[i].callOnce = false; + } + + // We already have this listener. Return its key. + return listenerArray[i]; + } + } + } + + var proxy = goog.events.getProxy(); + listenerObj = new goog.events.Listener( + listener, proxy, src, type, capture, opt_handler); + listenerObj.callOnce = callOnce; + + proxy.src = src; + proxy.listener = listenerObj; + + listenerArray.push(listenerObj); + + if (!goog.events.sources_[srcUid]) { + goog.events.sources_[srcUid] = []; + } + goog.events.sources_[srcUid].push(listenerObj); + + // Attach the proxy through the browser's API + if (src.addEventListener) { + src.addEventListener(type, proxy, capture); + } else { + // The else above used to be else if (src.attachEvent) and then there was + // another else statement that threw an exception warning the developer + // they made a mistake. This resulted in an extra object allocation in IE6 + // due to a wrapper object that had to be implemented around the element + // and so was removed. + src.attachEvent(goog.events.getOnString_(type), proxy); + } + + var key = listenerObj.key; + goog.events.listeners_[key] = listenerObj; + return listenerObj; }; @@ -239,10 +298,10 @@ goog.events.getProxy = function() { // Use a local var f to prevent one allocation. var f = goog.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT ? function(eventObject) { - return proxyCallbackFunction.call(f.src, f.key, eventObject); + return proxyCallbackFunction.call(f.src, f.listener, eventObject); } : function(eventObject) { - var v = proxyCallbackFunction.call(f.src, f.key, eventObject); + var v = proxyCallbackFunction.call(f.src, f.listener, eventObject); // NOTE(user): In IE, we hack in a capture phase. However, if // there is inline event handler which tries to prevent default (for // example ...) in a @@ -256,17 +315,25 @@ goog.events.getProxy = function() { /** - * Adds an event listener for a specific event on a DomNode or an object that - * has implemented {@link goog.events.EventTarget}. After the event has fired - * the event listener is removed from the target. + * Adds an event listener for a specific event on a native event + * target (such as a DOM element) or an object that has implemented + * {@link goog.events.Listenable}. After the event has fired the event + * listener is removed from the target. * - * @param {EventTarget|goog.events.EventTarget} src The node to listen to - * events on. + * If an existing listener already exists, listenOnce will do + * nothing. In particular, if the listener was previously registered + * via listen(), listenOnce() will not turn the listener into a + * one-off listener. Similarly, if there is already an existing + * one-off listener, listenOnce does not modify the listeners (it is + * still a once listener). + * + * @param {EventTarget|goog.events.Listenable} src The node to listen + * to events on. * @param {string|Array.} type Event type or array of event types. * @param {Function|Object} listener Callback method. * @param {boolean=} opt_capt Fire in capture phase?. * @param {Object=} opt_handler Element in whose scope to call the listener. - * @return {?number} Unique key for the listener. + * @return {goog.events.Key} Unique key for the listener. */ goog.events.listenOnce = function(src, type, listener, opt_capt, opt_handler) { if (goog.isArray(type)) { @@ -276,20 +343,28 @@ goog.events.listenOnce = function(src, type, listener, opt_capt, opt_handler) { return null; } - var key = goog.events.listen(src, type, listener, opt_capt, opt_handler); - var listenerObj = goog.events.listeners_[key]; - listenerObj.callOnce = true; - return key; + var listenableKey; + listener = goog.events.wrapListener_(listener); + if (goog.events.Listenable.isImplementedBy(src)) { + listenableKey = src.listenOnce( + /** @type {string} */ (type), listener, opt_capt, opt_handler); + } else { + listenableKey = goog.events.listen_( + /** @type {EventTarget} */ (src), + type, listener, /* callOnce */ true, opt_capt, opt_handler); + } + + return listenableKey; }; /** * Adds an event listener with a specific event wrapper on a DOM Node or an - * object that has implemented {@link goog.events.EventTarget}. A listener can + * object that has implemented {@link goog.events.Listenable}. A listener can * only be added once to an object. * - * @param {EventTarget|goog.events.EventTarget} src The node to listen to - * events on. + * @param {EventTarget|goog.events.Listenable} src The target to + * listen to events on. * @param {goog.events.EventWrapper} wrapper Event wrapper to use. * @param {Function|Object} listener Callback method, or an object with a * handleEvent function. @@ -306,7 +381,7 @@ goog.events.listenWithWrapper = function(src, wrapper, listener, opt_capt, /** * Removes an event listener which was added with listen(). * - * @param {EventTarget|goog.events.EventTarget} src The target to stop + * @param {EventTarget|goog.events.Listenable} src The target to stop * listening to events on. * @param {string|Array.} type The name of the event without the 'on' * prefix. @@ -325,6 +400,12 @@ goog.events.unlisten = function(src, type, listener, opt_capt, opt_handler) { return null; } + listener = goog.events.wrapListener_(listener); + if (goog.events.Listenable.isImplementedBy(src)) { + return src.unlisten( + /** @type {string} */ (type), listener, opt_capt, opt_handler); + } + var capture = !!opt_capt; var listenerArray = goog.events.getListeners_(src, type, capture); @@ -336,7 +417,7 @@ goog.events.unlisten = function(src, type, listener, opt_capt, opt_handler) { if (listenerArray[i].listener == listener && listenerArray[i].capture == capture && listenerArray[i].handler == opt_handler) { - return goog.events.unlistenByKey(listenerArray[i].key); + return goog.events.unlistenByKey(listenerArray[i]); } } @@ -348,46 +429,42 @@ goog.events.unlisten = function(src, type, listener, opt_capt, opt_handler) { * Removes an event listener which was added with listen() by the key * returned by listen(). * - * @param {?number} key The key returned by listen() for this event listener. + * @param {goog.events.Key} key The key returned by listen() for this + * event listener. * @return {boolean} indicating whether the listener was there to remove. */ goog.events.unlistenByKey = function(key) { - // Do not use key in listeners here since that will cast the number to a - // string which will allocate one string object. - if (!goog.events.listeners_[key]) { + // TODO(user): Remove this check when tests that rely on this + // are fixed. + if (goog.isNumber(key)) { return false; } - var listener = goog.events.listeners_[key]; + var listener = /** @type {goog.events.ListenableKey} */ (key); + if (!listener) { + return false; + } if (listener.removed) { return false; } var src = listener.src; + if (goog.events.Listenable.isImplementedBy(src)) { + return src.unlistenByKey(listener); + } + var type = listener.type; var proxy = listener.proxy; var capture = listener.capture; if (src.removeEventListener) { - // EventTarget calls unlisten so we need to ensure that the source is not - // an event target to prevent re-entry. - // TODO(arv): What is this goog.global for? Why would anyone listen to - // events on the [[Global]] object? Is it supposed to be window? Why would - // we not want to allow removing event listeners on the window? - if (src == goog.global || !src.customEvent_) { - src.removeEventListener(type, proxy, capture); - } + src.removeEventListener(type, proxy, capture); } else if (src.detachEvent) { src.detachEvent(goog.events.getOnString_(type), proxy); } var srcUid = goog.getUid(src); - // In a perfect implementation we would decrement the remaining_ field here - // but then we would need to know if the listener has already been fired or - // not. We therefore skip doing this and in this uncommon case the entire - // ancestor chain will need to be traversed as before. - // Remove from sources_ if (goog.events.sources_[srcUid]) { var sourcesArray = goog.events.sources_[srcUid]; @@ -397,7 +474,7 @@ goog.events.unlistenByKey = function(key) { } } - listener.removed = true; + listener.markAsRemoved(); // There are some esoteric situations where the hash code of an object // can change, and we won't be able to find the listenerArray anymore. @@ -408,12 +485,21 @@ goog.events.unlistenByKey = function(key) { // doesn't really matter if we can't clean it up in this case. var listenerArray = goog.events.listenerTree_[type][capture][srcUid]; if (listenerArray) { - listenerArray.needsCleanup_ = true; - goog.events.cleanUp_(type, capture, srcUid, listenerArray); + goog.array.remove(listenerArray, listener); + if (listenerArray.length == 0) { + delete goog.events.listenerTree_[type][capture][srcUid]; + goog.events.listenerTree_[type][capture].count_--; + } + if (goog.events.listenerTree_[type][capture].count_ == 0) { + delete goog.events.listenerTree_[type][capture]; + goog.events.listenerTree_[type].count_--; + } + if (goog.events.listenerTree_[type].count_ == 0) { + delete goog.events.listenerTree_[type]; + } } - delete goog.events.listeners_[key]; - + delete goog.events.listeners_[listener.key]; return true; }; @@ -421,7 +507,7 @@ goog.events.unlistenByKey = function(key) { /** * Removes an event listener which was added with listenWithWrapper(). * - * @param {EventTarget|goog.events.EventTarget} src The target to stop + * @param {EventTarget|goog.events.Listenable} src The target to stop * listening to events on. * @param {goog.events.EventWrapper} wrapper Event wrapper to use. * @param {Function|Object} listener The listener function to remove. @@ -437,108 +523,41 @@ goog.events.unlistenWithWrapper = function(src, wrapper, listener, opt_capt, /** - * Cleans up the listener array as well as the listener tree - * @param {string} type The type of the event. - * @param {boolean} capture Whether to clean up capture phase listeners instead - * bubble phase listeners. - * @param {number} srcUid The unique ID of the source. - * @param {Array.} listenerArray The array being cleaned. - * @private - */ -goog.events.cleanUp_ = function(type, capture, srcUid, listenerArray) { - // The listener array gets locked during the dispatch phase so that removals - // of listeners during this phase does not screw up the indeces. This method - // is called after we have removed a listener as well as after the dispatch - // phase in case any listeners were removed. - if (!listenerArray.locked_) { // catches both 0 and not set - if (listenerArray.needsCleanup_) { - // Loop over the listener array and remove listeners that have removed set - // to true. This could have been done with filter or something similar but - // we want to change the array in place and we want to minimize - // allocations. Adding a listener during this phase adds to the end of the - // array so that works fine as long as the length is rechecked every in - // iteration. - for (var oldIndex = 0, newIndex = 0; - oldIndex < listenerArray.length; - oldIndex++) { - if (listenerArray[oldIndex].removed) { - var proxy = listenerArray[oldIndex].proxy; - proxy.src = null; - continue; - } - if (oldIndex != newIndex) { - listenerArray[newIndex] = listenerArray[oldIndex]; - } - newIndex++; - } - listenerArray.length = newIndex; - - listenerArray.needsCleanup_ = false; - - // In case the length is now zero we release the object. - if (newIndex == 0) { - delete goog.events.listenerTree_[type][capture][srcUid]; - goog.events.listenerTree_[type][capture].count_--; - - if (goog.events.listenerTree_[type][capture].count_ == 0) { - delete goog.events.listenerTree_[type][capture]; - goog.events.listenerTree_[type].count_--; - } - - if (goog.events.listenerTree_[type].count_ == 0) { - delete goog.events.listenerTree_[type]; - } - } - - } - } -}; - - -/** - * Removes all listeners from an object, if no object is specified it will - * remove all listeners that have been registered. You can also optionally - * remove listeners of a particular type or capture phase. + * Removes all listeners from an object. You can also optionally + * remove listeners of a particular type. * - * @param {Object=} opt_obj Object to remove listeners from. + * @param {Object=} opt_obj Object to remove listeners from. Not + * specifying opt_obj is now DEPRECATED (it used to remove all + * registered listeners). * @param {string=} opt_type Type of event to, default is all types. - * @param {boolean=} opt_capt Whether to remove the listeners from the capture - * or bubble phase. If unspecified, will remove both. * @return {number} Number of listeners removed. */ -goog.events.removeAll = function(opt_obj, opt_type, opt_capt) { +goog.events.removeAll = function(opt_obj, opt_type) { var count = 0; var noObj = opt_obj == null; var noType = opt_type == null; - var noCapt = opt_capt == null; - opt_capt = !!opt_capt; if (!noObj) { + if (opt_obj && goog.events.Listenable.isImplementedBy(opt_obj)) { + return opt_obj.removeAllListeners(opt_type); + } + var srcUid = goog.getUid(/** @type {Object} */ (opt_obj)); if (goog.events.sources_[srcUid]) { var sourcesArray = goog.events.sources_[srcUid]; for (var i = sourcesArray.length - 1; i >= 0; i--) { var listener = sourcesArray[i]; - if ((noType || opt_type == listener.type) && - (noCapt || opt_capt == listener.capture)) { - goog.events.unlistenByKey(listener.key); + if (noType || opt_type == listener.type) { + goog.events.unlistenByKey(listener); count++; } } } } else { - // Loop over the sources_ map instead of over the listeners_ since it is - // smaller which results in fewer allocations. - goog.object.forEach(goog.events.sources_, function(listeners) { - for (var i = listeners.length - 1; i >= 0; i--) { - var listener = listeners[i]; - if ((noType || opt_type == listener.type) && - (noCapt || opt_capt == listener.capture)) { - goog.events.unlistenByKey(listener.key); - count++; - } - } + goog.object.forEach(goog.events.listeners_, function(listener) { + goog.events.unlistenByKey(listener); + count++; }); } @@ -546,6 +565,25 @@ goog.events.removeAll = function(opt_obj, opt_type, opt_capt) { }; +/** + * Removes all native listeners registered via goog.events. Native + * listeners are listeners on native browser objects (such as DOM + * elements). In particular, goog.events.Listenable and + * goog.events.EventTarget listeners will NOT be removed. + * @return {number} Number of listeners removed. + */ +goog.events.removeAllNativeListeners = function() { + var count = 0; + // All listeners in goog.events.listeners_ are native listeners, + // custom listenable is no longer inserted to this table. + goog.object.forEach(goog.events.listeners_, function(listener) { + goog.events.unlistenByKey(listener); + count++; + }); + return count; +}; + + /** * Gets the listeners for a given object, type and capture phase. * @@ -555,7 +593,11 @@ goog.events.removeAll = function(opt_obj, opt_type, opt_capt) { * @return {Array.} Array of listener objects. */ goog.events.getListeners = function(obj, type, capture) { - return goog.events.getListeners_(obj, type, capture) || []; + if (goog.events.Listenable.isImplementedBy(obj)) { + return obj.getListeners(type, capture); + } else { + return goog.events.getListeners_(obj, type, capture) || []; + } }; @@ -590,18 +632,25 @@ goog.events.getListeners_ = function(obj, type, capture) { * Gets the goog.events.Listener for the event or null if no such listener is * in use. * - * @param {EventTarget|goog.events.EventTarget} src The node from which to get - * listeners. + * @param {EventTarget|goog.events.Listenable} src The target from + * which to get listeners. * @param {?string} type The name of the event without the 'on' prefix. * @param {Function|Object} listener The listener function to get. * @param {boolean=} opt_capt In DOM-compliant browsers, this determines * whether the listener is fired during the * capture or bubble phase of the event. * @param {Object=} opt_handler Element in whose scope to call the listener. - * @return {goog.events.Listener?} the found listener or null if not found. + * @return {goog.events.ListenableKey} the found listener or null if not found. */ goog.events.getListener = function(src, type, listener, opt_capt, opt_handler) { var capture = !!opt_capt; + + listener = goog.events.wrapListener_(listener); + if (goog.events.Listenable.isImplementedBy(src)) { + return src.getListener( + /** @type {string} */ (type), listener, capture, opt_handler); + } + var listenerArray = goog.events.getListeners_(src, type, capture); if (listenerArray) { for (var i = 0; i < listenerArray.length; i++) { @@ -626,7 +675,8 @@ goog.events.getListener = function(src, type, listener, opt_capt, opt_handler) { * specified signature. If either the type or capture parameters are * unspecified, the function will match on the remaining criteria. * - * @param {EventTarget|goog.events.EventTarget} obj Target to get listeners for. + * @param {EventTarget|goog.events.Listenable} obj Target to get + * listeners for. * @param {string=} opt_type Event type. * @param {boolean=} opt_capture Whether to check for capture or bubble-phase * listeners. @@ -634,6 +684,10 @@ goog.events.getListener = function(src, type, listener, opt_capt, opt_handler) { * the requested type and/or capture phase. */ goog.events.hasListener = function(obj, opt_type, opt_capture) { + if (goog.events.Listenable.isImplementedBy(obj)) { + return obj.hasListener(opt_type, opt_capture); + } + var objUid = goog.getUid(obj); var listeners = goog.events.sources_[objUid]; @@ -682,10 +736,10 @@ goog.events.expose = function(e) { /** - * Returns a string wth on prepended to the specified type. This is used for IE + * Returns a string with on prepended to the specified type. This is used for IE * which expects "on" to be prepended. This function caches the string in order * to avoid extra allocations in steady state. - * @param {string} type Event type strng. + * @param {string} type Event type. * @return {string} The type string with 'on' prepended. * @private */ @@ -707,6 +761,10 @@ goog.events.getOnString_ = function(type) { * @return {boolean} True if all listeners returned true else false. */ goog.events.fireListeners = function(obj, type, capture, eventObject) { + if (goog.events.Listenable.isImplementedBy(obj)) { + return obj.fireListeners(type, capture, eventObject); + } + var map = goog.events.listenerTree_; if (type in map) { map = map[type]; @@ -735,32 +793,17 @@ goog.events.fireListeners_ = function(map, obj, type, capture, eventObject) { var objUid = goog.getUid(obj); if (map[objUid]) { - map.remaining_--; - var listenerArray = map[objUid]; - - // If locked_ is not set (and if already 0) initialize it to 1. - if (!listenerArray.locked_) { - listenerArray.locked_ = 1; - } else { - listenerArray.locked_++; - } - - try { - // Events added in the dispatch phase should not be dispatched in - // the current dispatch phase. They will be included in the next - // dispatch phase though. - var length = listenerArray.length; - for (var i = 0; i < length; i++) { - var listener = listenerArray[i]; - // We might not have a listener if the listener was removed. - if (listener && !listener.removed) { - retval &= - goog.events.fireListener(listener, eventObject) !== false; - } + // Events added in the dispatch phase should not be dispatched in + // the current dispatch phase. They will be included in the next + // dispatch phase though. + var listenerArray = goog.array.clone(map[objUid]); + for (var i = 0; i < listenerArray.length; i++) { + var listener = listenerArray[i]; + // We might not have a listener if the listener was removed. + if (listener && !listener.removed) { + retval &= + goog.events.fireListener(listener, eventObject) !== false; } - } finally { - listenerArray.locked_--; - goog.events.cleanUp_(type, capture, objUid, listenerArray); } } @@ -776,10 +819,13 @@ goog.events.fireListeners_ = function(map, obj, type, capture, eventObject) { * @return {boolean} Result of listener. */ goog.events.fireListener = function(listener, eventObject) { + var listenerFn = listener.listener; + var listenerHandler = listener.handler || listener.src; + if (listener.callOnce) { - goog.events.unlistenByKey(listener.key); + goog.events.unlistenByKey(listener); } - return listener.handleEvent(eventObject); + return listenerFn.call(listenerHandler, eventObject); }; @@ -801,91 +847,19 @@ goog.events.getTotalListenerCount = function() { * function will return false. If one of the capture listeners calls * stopPropagation, then the bubble listeners won't fire. * - * @param {goog.events.EventTarget} src The event target. - * @param {string|Object|goog.events.Event} e Event object. + * @param {goog.events.Listenable} src The event target. + * @param {goog.events.EventLike} e Event object. * @return {boolean} If anyone called preventDefault on the event object (or * if any of the handlers returns false) this will also return false. * If there are no handlers, or if all handlers return true, this returns * true. */ goog.events.dispatchEvent = function(src, e) { - var type = e.type || e; - var map = goog.events.listenerTree_; - if (!(type in map)) { - return true; - } - - // If accepting a string or object, create a custom event object so that - // preventDefault and stopPropagation work with the event. - if (goog.isString(e)) { - e = new goog.events.Event(e, src); - } else if (!(e instanceof goog.events.Event)) { - var oldEvent = e; - e = new goog.events.Event(type, src); - goog.object.extend(e, oldEvent); - } else { - e.target = e.target || src; - } - - var rv = 1, ancestors; - - map = map[type]; - var hasCapture = true in map; - var targetsMap; - - if (hasCapture) { - // Build ancestors now - ancestors = []; - for (var parent = src; parent; parent = parent.getParentEventTarget()) { - ancestors.push(parent); - } - - targetsMap = map[true]; - targetsMap.remaining_ = targetsMap.count_; - - // Call capture listeners - for (var i = ancestors.length - 1; - !e.propagationStopped_ && i >= 0 && targetsMap.remaining_; - i--) { - e.currentTarget = ancestors[i]; - rv &= goog.events.fireListeners_(targetsMap, ancestors[i], e.type, - true, e) && - e.returnValue_ != false; - } - } - - var hasBubble = false in map; - if (hasBubble) { - targetsMap = map[false]; - targetsMap.remaining_ = targetsMap.count_; - - if (hasCapture) { // We have the ancestors. - - // Call bubble listeners - for (var i = 0; !e.propagationStopped_ && i < ancestors.length && - targetsMap.remaining_; - i++) { - e.currentTarget = ancestors[i]; - rv &= goog.events.fireListeners_(targetsMap, ancestors[i], e.type, - false, e) && - e.returnValue_ != false; - } - } else { - // In case we don't have capture we don't have to build up the - // ancestors array. - - for (var current = src; - !e.propagationStopped_ && current && targetsMap.remaining_; - current = current.getParentEventTarget()) { - e.currentTarget = current; - rv &= goog.events.fireListeners_(targetsMap, current, e.type, - false, e) && - e.returnValue_ != false; - } - } - } - - return Boolean(rv); + goog.asserts.assert( + goog.events.Listenable.isImplementedBy(src), + 'Can not use goog.events.dispatchEvent with ' + + 'non-goog.events.Listenable instance.'); + return src.dispatchEvent(e); }; @@ -906,23 +880,18 @@ goog.events.protectBrowserEventEntryPoint = function(errorHandler) { * Handles an event and dispatches it to the correct listeners. This * function is a proxy for the real listener the user specified. * - * @param {number} key Unique key for the listener. + * @param {goog.events.Listener} listener The listener object. * @param {Event=} opt_evt Optional event object that gets passed in via the * native event handlers. * @return {boolean} Result of the event handler. - * @this {goog.events.EventTarget|Object} The object or Element that - * fired the event. + * @this {EventTarget} The object or Element that fired the event. * @private */ -goog.events.handleBrowserEvent_ = function(key, opt_evt) { - // If the listener isn't there it was probably removed when processing - // another listener on the same event (e.g. the later listener is - // not managed by closure so that they are both fired under IE) - if (!goog.events.listeners_[key]) { +goog.events.handleBrowserEvent_ = function(listener, opt_evt) { + if (listener.removed) { return true; } - var listener = goog.events.listeners_[key]; var type = listener.type; var map = goog.events.listenerTree_; @@ -964,11 +933,10 @@ goog.events.handleBrowserEvent_ = function(key, opt_evt) { } targetsMap = map[true]; - targetsMap.remaining_ = targetsMap.count_; // Call capture listeners for (var i = ancestors.length - 1; - !evt.propagationStopped_ && i >= 0 && targetsMap.remaining_; + !evt.propagationStopped_ && i >= 0; i--) { evt.currentTarget = ancestors[i]; retval &= goog.events.fireListeners_(targetsMap, ancestors[i], type, @@ -977,12 +945,10 @@ goog.events.handleBrowserEvent_ = function(key, opt_evt) { if (hasBubble) { targetsMap = map[false]; - targetsMap.remaining_ = targetsMap.count_; // Call bubble listeners for (var i = 0; - !evt.propagationStopped_ && i < ancestors.length && - targetsMap.remaining_; + !evt.propagationStopped_ && i < ancestors.length; i++) { evt.currentTarget = ancestors[i]; retval &= goog.events.fireListeners_(targetsMap, ancestors[i], type, @@ -1004,7 +970,8 @@ goog.events.handleBrowserEvent_ = function(key, opt_evt) { } // IE // Caught a non-IE DOM event. 1 additional argument which is the event object - var be = new goog.events.BrowserEvent(opt_evt, this); + var be = new goog.events.BrowserEvent( + opt_evt, /** @type {EventTarget} */ (this)); retval = goog.events.fireListener(listener, be); return retval; }; @@ -1073,12 +1040,48 @@ goog.events.uniqueIdCounter_ = 0; * * @param {string} identifier The identifier. * @return {string} A unique identifier. + * @idGenerator */ goog.events.getUniqueId = function(identifier) { return identifier + '_' + goog.events.uniqueIdCounter_++; }; +/** + * Expando property for listener function wrapper for Object with + * handleEvent. + * @type {string} + * @private + */ +goog.events.LISTENER_WRAPPER_PROP_ = '__closure_events_fn_' + + ((Math.random() * 1e9) >>> 0); + + +/** + * @param {Object|Function} listener The listener function or an + * object that contains handleEvent method. + * @return {!Function} Either the original function or a function that + * calls obj.handleEvent. If the same listener is passed to this + * function more than once, the same function is guaranteed to be + * returned. + * @private + */ +goog.events.wrapListener_ = function(listener) { + goog.asserts.assert(listener, 'Listener can not be null.'); + + if (goog.isFunction(listener)) { + return listener; + } + + goog.asserts.assert( + listener.handleEvent, 'An object listener must have handleEvent method.'); + return listener[goog.events.LISTENER_WRAPPER_PROP_] || + (listener[goog.events.LISTENER_WRAPPER_PROP_] = function(e) { + return listener.handleEvent(e); + }); +}; + + // Register the browser event handler as an entry point, so that // it can be monitored for exception handling, etc. goog.debug.entryPointRegistry.register( diff --git a/edit/closure-library/closure/goog/events/eventtarget.js b/edit/closure-library/closure/goog/events/eventtarget.js new file mode 100644 index 0000000000..487d3dad11 --- /dev/null +++ b/edit/closure-library/closure/goog/events/eventtarget.js @@ -0,0 +1,401 @@ +// Copyright 2005 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview A disposable implementation of a custom + * listenable/event target. See also: documentation for + * {@code goog.events.Listenable}. + * + * @author arv@google.com (Erik Arvidsson) [Original implementation] + * @author pupius@google.com (Daniel Pupius) [Port to use goog.events] + * @see ../demos/eventtarget.html + * @see goog.events.Listenable + */ + +goog.provide('goog.events.EventTarget'); + +goog.require('goog.Disposable'); +goog.require('goog.array'); +goog.require('goog.asserts'); +goog.require('goog.events'); +goog.require('goog.events.Event'); +goog.require('goog.events.Listenable'); +goog.require('goog.events.ListenerMap'); +goog.require('goog.object'); + + + +/** + * An implementation of {@code goog.events.Listenable} with full W3C + * EventTarget-like support (capture/bubble mechanism, stopping event + * propagation, preventing default actions). + * + * You may subclass this class to turn your class into a Listenable. + * + * Unless propagation is stopped, an event dispatched by an + * EventTarget will bubble to the parent returned by + * {@code getParentEventTarget}. To set the parent, call + * {@code setParentEventTarget}. Subclasses that don't support + * changing the parent can override the setter to throw an error. + * + * Example usage: + *
+ *   var source = new goog.events.EventTarget();
+ *   function handleEvent(e) {
+ *     alert('Type: ' + e.type + '; Target: ' + e.target);
+ *   }
+ *   source.listen('foo', handleEvent);
+ *   // Or: goog.events.listen(source, 'foo', handleEvent);
+ *   ...
+ *   source.dispatchEvent('foo');  // will call handleEvent
+ *   ...
+ *   source.unlisten('foo', handleEvent);
+ *   // Or: goog.events.unlisten(source, 'foo', handleEvent);
+ * 
+ * + * TODO(user): Consider writing a parallel class to this that + * does not implement goog.Disposable. + * + * @constructor + * @extends {goog.Disposable} + * @implements {goog.events.Listenable} + */ +goog.events.EventTarget = function() { + goog.Disposable.call(this); + + /** + * Maps of event type to an array of listeners. + * @private {!goog.events.ListenerMap} + */ + this.eventTargetListeners_ = new goog.events.ListenerMap(this); + + /** + * The object to use for event.target. Useful when mixing in an + * EventTarget to another object. + * @private {!Object} + */ + this.actualEventTarget_ = this; +}; +goog.inherits(goog.events.EventTarget, goog.Disposable); +goog.events.Listenable.addImplementation(goog.events.EventTarget); + + +/** + * An artificial cap on the number of ancestors you can have. This is mainly + * for loop detection. + * @const {number} + * @private + */ +goog.events.EventTarget.MAX_ANCESTORS_ = 1000; + + +/** + * Parent event target, used during event bubbling. + * + * TODO(user): Change this to goog.events.Listenable. This + * currently breaks people who expect getParentEventTarget to return + * goog.events.EventTarget. + * + * @type {goog.events.EventTarget} + * @private + */ +goog.events.EventTarget.prototype.parentEventTarget_ = null; + + +/** + * Returns the parent of this event target to use for bubbling. + * + * @return {goog.events.EventTarget} The parent EventTarget or null if + * there is no parent. + * @override + */ +goog.events.EventTarget.prototype.getParentEventTarget = function() { + return this.parentEventTarget_; +}; + + +/** + * Sets the parent of this event target to use for capture/bubble + * mechanism. + * @param {goog.events.EventTarget} parent Parent listenable (null if none). + */ +goog.events.EventTarget.prototype.setParentEventTarget = function(parent) { + this.parentEventTarget_ = parent; +}; + + +/** + * Adds an event listener to the event target. The same handler can only be + * added once per the type. Even if you add the same handler multiple times + * using the same type then it will only be called once when the event is + * dispatched. + * + * Supported for legacy but use goog.events.listen(src, type, handler) instead. + * + * TODO(user): Deprecate this. + * + * @param {string} type The type of the event to listen for. + * @param {Function|Object} handler The function to handle the event. The + * handler can also be an object that implements the handleEvent method + * which takes the event object as argument. + * @param {boolean=} opt_capture In DOM-compliant browsers, this determines + * whether the listener is fired during the capture or bubble phase + * of the event. + * @param {Object=} opt_handlerScope Object in whose scope to call + * the listener. + */ +goog.events.EventTarget.prototype.addEventListener = function( + type, handler, opt_capture, opt_handlerScope) { + goog.events.listen(this, type, handler, opt_capture, opt_handlerScope); +}; + + +/** + * Removes an event listener from the event target. The handler must be the + * same object as the one added. If the handler has not been added then + * nothing is done. + * + * TODO(user): Deprecate this. + * + * @param {string} type The type of the event to listen for. + * @param {Function|Object} handler The function to handle the event. The + * handler can also be an object that implements the handleEvent method + * which takes the event object as argument. + * @param {boolean=} opt_capture In DOM-compliant browsers, this determines + * whether the listener is fired during the capture or bubble phase + * of the event. + * @param {Object=} opt_handlerScope Object in whose scope to call + * the listener. + */ +goog.events.EventTarget.prototype.removeEventListener = function( + type, handler, opt_capture, opt_handlerScope) { + goog.events.unlisten(this, type, handler, opt_capture, opt_handlerScope); +}; + + +/** @override */ +goog.events.EventTarget.prototype.dispatchEvent = function(e) { + this.assertInitialized_(); + + var ancestorsTree, ancestor = this.getParentEventTarget(); + if (ancestor) { + ancestorsTree = []; + var ancestorCount = 1; + for (; ancestor; ancestor = ancestor.getParentEventTarget()) { + ancestorsTree.push(ancestor); + goog.asserts.assert( + (++ancestorCount < goog.events.EventTarget.MAX_ANCESTORS_), + 'infinite loop'); + } + } + + return goog.events.EventTarget.dispatchEventInternal_( + this.actualEventTarget_, e, ancestorsTree); +}; + + +/** + * Removes listeners from this object. Classes that extend EventTarget may + * need to override this method in order to remove references to DOM Elements + * and additional listeners. + * @override + */ +goog.events.EventTarget.prototype.disposeInternal = function() { + goog.events.EventTarget.superClass_.disposeInternal.call(this); + + this.removeAllListeners(); + this.parentEventTarget_ = null; +}; + + +/** @override */ +goog.events.EventTarget.prototype.listen = function( + type, listener, opt_useCapture, opt_listenerScope) { + this.assertInitialized_(); + return this.eventTargetListeners_.add( + type, listener, false /* callOnce */, opt_useCapture, opt_listenerScope); +}; + + +/** @override */ +goog.events.EventTarget.prototype.listenOnce = function( + type, listener, opt_useCapture, opt_listenerScope) { + return this.eventTargetListeners_.add( + type, listener, true /* callOnce */, opt_useCapture, opt_listenerScope); +}; + + +/** @override */ +goog.events.EventTarget.prototype.unlisten = function( + type, listener, opt_useCapture, opt_listenerScope) { + return this.eventTargetListeners_.remove( + type, listener, opt_useCapture, opt_listenerScope); +}; + + +/** @override */ +goog.events.EventTarget.prototype.unlistenByKey = function(key) { + return this.eventTargetListeners_.removeByKey(key); +}; + + +/** @override */ +goog.events.EventTarget.prototype.removeAllListeners = function(opt_type) { + // TODO(user): Previously, removeAllListeners can be called on + // uninitialized EventTarget, so we preserve that behavior. We + // should remove this when usages that rely on that fact are purged. + if (!this.eventTargetListeners_) { + return 0; + } + return this.eventTargetListeners_.removeAll(opt_type); +}; + + +/** @override */ +goog.events.EventTarget.prototype.fireListeners = function( + type, capture, eventObject) { + // TODO(user): Original code avoids array creation when there + // is no listener, so we do the same. If this optimization turns + // out to be not required, we can replace this with + // getListeners(type, capture) instead, which is simpler. + var listenerArray = this.eventTargetListeners_.listeners[type]; + if (!listenerArray) { + return true; + } + listenerArray = goog.array.clone(listenerArray); + + var rv = true; + for (var i = 0; i < listenerArray.length; ++i) { + var listener = listenerArray[i]; + // We might not have a listener if the listener was removed. + if (listener && !listener.removed && listener.capture == capture) { + var listenerFn = listener.listener; + var listenerHandler = listener.handler || listener.src; + + if (listener.callOnce) { + this.unlistenByKey(listener); + } + rv = listenerFn.call(listenerHandler, eventObject) !== false && rv; + } + } + + return rv && eventObject.returnValue_ != false; +}; + + +/** @override */ +goog.events.EventTarget.prototype.getListeners = function(type, capture) { + return this.eventTargetListeners_.getListeners(type, capture); +}; + + +/** @override */ +goog.events.EventTarget.prototype.getListener = function( + type, listener, capture, opt_listenerScope) { + return this.eventTargetListeners_.getListener( + type, listener, capture, opt_listenerScope); +}; + + +/** @override */ +goog.events.EventTarget.prototype.hasListener = function( + opt_type, opt_capture) { + return this.eventTargetListeners_.hasListener(opt_type, opt_capture); +}; + + +/** + * Sets the target to be used for {@code event.target} when firing + * event. Mainly used for testing. For example, see + * {@code goog.testing.events.mixinListenable}. + * @param {!Object} target The target. + */ +goog.events.EventTarget.prototype.setTargetForTesting = function(target) { + this.actualEventTarget_ = target; +}; + + +/** + * Asserts that the event target instance is initialized properly. + * @private + */ +goog.events.EventTarget.prototype.assertInitialized_ = function() { + goog.asserts.assert( + this.eventTargetListeners_, + 'Event target is not initialized. Did you call the superclass ' + + '(goog.events.EventTarget) constructor?'); +}; + + +/** + * Dispatches the given event on the ancestorsTree. + * + * TODO(user): Look for a way to reuse this logic in + * goog.events, if possible. + * + * @param {!Object} target The target to dispatch on. + * @param {goog.events.Event|Object|string} e The event object. + * @param {Array.=} opt_ancestorsTree The ancestors + * tree of the target, in reverse order from the closest ancestor + * to the root event target. May be null if the target has no ancestor. + * @return {boolean} If anyone called preventDefault on the event object (or + * if any of the listeners returns false) this will also return false. + * @private + */ +goog.events.EventTarget.dispatchEventInternal_ = function( + target, e, opt_ancestorsTree) { + var type = e.type || /** @type {string} */ (e); + + // If accepting a string or object, create a custom event object so that + // preventDefault and stopPropagation work with the event. + if (goog.isString(e)) { + e = new goog.events.Event(e, target); + } else if (!(e instanceof goog.events.Event)) { + var oldEvent = e; + e = new goog.events.Event(type, target); + goog.object.extend(e, oldEvent); + } else { + e.target = e.target || target; + } + + var rv = true, currentTarget; + + // Executes all capture listeners on the ancestors, if any. + if (opt_ancestorsTree) { + for (var i = opt_ancestorsTree.length - 1; !e.propagationStopped_ && i >= 0; + i--) { + currentTarget = e.currentTarget = opt_ancestorsTree[i]; + rv = currentTarget.fireListeners(type, true, e) && rv; + } + } + + // Executes capture and bubble listeners on the target. + if (!e.propagationStopped_) { + currentTarget = e.currentTarget = target; + rv = currentTarget.fireListeners(type, true, e) && rv; + if (!e.propagationStopped_) { + rv = currentTarget.fireListeners(type, false, e) && rv; + } + } + + // Executes all bubble listeners on the ancestors, if any. + if (opt_ancestorsTree) { + for (i = 0; !e.propagationStopped_ && i < opt_ancestorsTree.length; i++) { + currentTarget = e.currentTarget = opt_ancestorsTree[i]; + rv = currentTarget.fireListeners(type, false, e) && rv; + } + } + + return rv; +}; diff --git a/edit/closure-library/closure/goog/events/eventtargettester.js b/edit/closure-library/closure/goog/events/eventtargettester.js new file mode 100644 index 0000000000..6243db9055 --- /dev/null +++ b/edit/closure-library/closure/goog/events/eventtargettester.js @@ -0,0 +1,1028 @@ +// Copyright 2012 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview goog.events.EventTarget tester. + */ + +goog.provide('goog.events.eventTargetTester'); +goog.setTestOnly('goog.events.eventTargetTester'); +goog.provide('goog.events.eventTargetTester.KeyType'); +goog.setTestOnly('goog.events.eventTargetTester.KeyType'); +goog.provide('goog.events.eventTargetTester.UnlistenReturnType'); +goog.setTestOnly('goog.events.eventTargetTester.UnlistenReturnType'); + +goog.require('goog.array'); +goog.require('goog.events'); +goog.require('goog.events.Event'); +goog.require('goog.events.EventTarget'); +goog.require('goog.testing.asserts'); +goog.require('goog.testing.recordFunction'); + + +/** + * Setup step for the test functions. This needs to be called from the + * test setUp. + * @param {Function} listenFn Function that, given the same signature + * as goog.events.listen, will add listener to the given event + * target. + * @param {Function} unlistenFn Function that, given the same + * signature as goog.events.unlisten, will remove listener from + * the given event target. + * @param {Function} unlistenByKeyFn Function that, given 2 + * parameters: src and key, will remove the corresponding + * listener. + * @param {Function} listenOnceFn Function that, given the same + * signature as goog.events.listenOnce, will add a one-time + * listener to the given event target. + * @param {Function} dispatchEventFn Function that, given the same + * signature as goog.events.dispatchEvent, will dispatch the event + * on the given event target. + * @param {Function} removeAllFn Function that, given the same + * signature as goog.events.removeAll, will remove all listeners + * according to the contract of goog.events.removeAll. + * @param {Function} getListenersFn Function that, given the same + * signature as goog.events.getListeners, will retrieve listeners. + * @param {Function} getListenerFn Function that, given the same + * signature as goog.events.getListener, will retrieve the + * listener object. + * @param {Function} hasListenerFn Function that, given the same + * signature as goog.events.hasListener, will determine whether + * listeners exist. + * @param {goog.events.eventTargetTester.KeyType} listenKeyType The + * key type returned by listen call. + * @param {goog.events.eventTargetTester.UnlistenReturnType} + * unlistenFnReturnType + * Whether we should check return value from + * unlisten call. If unlisten does not return a value, this should + * be set to false. + * @param {boolean} objectListenerSupported Whether listener of type + * Object is supported. + */ +goog.events.eventTargetTester.setUp = function( + listenFn, unlistenFn, unlistenByKeyFn, listenOnceFn, + dispatchEventFn, removeAllFn, + getListenersFn, getListenerFn, hasListenerFn, + listenKeyType, unlistenFnReturnType, objectListenerSupported) { + listen = listenFn; + unlisten = unlistenFn; + unlistenByKey = unlistenByKeyFn; + listenOnce = listenOnceFn; + dispatchEvent = dispatchEventFn; + removeAll = removeAllFn; + getListeners = getListenersFn; + getListener = getListenerFn; + hasListener = hasListenerFn; + keyType = listenKeyType; + unlistenReturnType = unlistenFnReturnType; + objectTypeListenerSupported = objectListenerSupported; + + listeners = []; + for (var i = 0; i < goog.events.eventTargetTester.MAX_; i++) { + listeners[i] = createListener(); + } + + eventTargets = []; + for (i = 0; i < goog.events.eventTargetTester.MAX_; i++) { + eventTargets[i] = new goog.events.EventTarget(); + } +}; + + +/** + * Teardown step for the test functions. This needs to be called from + * test teardown. + */ +goog.events.eventTargetTester.tearDown = function() { + for (var i = 0; i < goog.events.eventTargetTester.MAX_; i++) { + goog.dispose(eventTargets[i]); + } +}; + + +/** + * The type of key returned by key-returning functions (listen). + * @enum {number} + */ +goog.events.eventTargetTester.KeyType = { + /** + * Returns number for key. + */ + NUMBER: 0, + + /** + * Returns undefined (no return value). + */ + UNDEFINED: 1 +}; + + +/** + * The type of unlisten function's return value. + */ +goog.events.eventTargetTester.UnlistenReturnType = { + /** + * Returns boolean indicating whether unlisten is successful. + */ + BOOLEAN: 0, + + /** + * Returns undefind (no return value). + */ + UNDEFINED: 1 +}; + + +/** + * Expando property used on "listener" function to determine if a + * listener has already been checked. This is what allows us to + * implement assertNoOtherListenerIsCalled. + * @type {string} + */ +goog.events.eventTargetTester.ALREADY_CHECKED_PROP = '__alreadyChecked'; + + +/** + * Expando property used on "listener" function to record the number + * of times it has been called the last time assertListenerIsCalled is + * done. This allows us to verify that it has not been called more + * times in assertNoOtherListenerIsCalled. + */ +goog.events.eventTargetTester.NUM_CALLED_PROP = '__numCalled'; + + +/** + * The maximum number of initialized event targets (in eventTargets + * array) and listeners (in listeners array). + * @type {number} + * @private + */ +goog.events.eventTargetTester.MAX_ = 10; + + +/** + * Contains test event types. + * @enum {string} + */ +var EventType = { + A: goog.events.getUniqueId('a'), + B: goog.events.getUniqueId('b'), + C: goog.events.getUniqueId('c') +}; + + +var listen, unlisten, unlistenByKey, listenOnce, dispatchEvent; +var removeAll, getListeners, getListener, hasListener; +var keyType, unlistenReturnType, objectTypeListenerSupported; +var eventTargets, listeners; + + + +/** + * Custom event object for testing. + * @constructor + * @extends {goog.events.Event} + */ +var TestEvent = function() { + goog.base(this, EventType.A); +}; +goog.inherits(TestEvent, goog.events.Event); + + +/** + * Creates a listener that executes the given function (optional). + * @param {!Function=} opt_listenerFn The optional function to execute. + * @return {!Function} The listener function. + */ +function createListener(opt_listenerFn) { + return goog.testing.recordFunction(opt_listenerFn); +} + + +/** + * Asserts that the given listener is called numCount number of times. + * @param {!Function} listener The listener to check. + * @param {number} numCount The number of times. See also the times() + * function below. + */ +function assertListenerIsCalled(listener, numCount) { + assertEquals('Listeners is not called the correct number of times.', + numCount, listener.getCallCount()); + listener[goog.events.eventTargetTester.ALREADY_CHECKED_PROP] = true; + listener[goog.events.eventTargetTester.NUM_CALLED_PROP] = numCount; +} + + +/** + * Asserts that no other listeners, other than those verified via + * assertListenerIsCalled, have been called since the last + * resetListeners(). + */ +function assertNoOtherListenerIsCalled() { + goog.array.forEach(listeners, function(l, index) { + if (!l[goog.events.eventTargetTester.ALREADY_CHECKED_PROP]) { + assertEquals( + 'Listeners ' + index + ' is unexpectedly called.', + 0, l.getCallCount()); + } else { + assertEquals( + 'Listeners ' + index + ' is unexpectedly called.', + l[goog.events.eventTargetTester.NUM_CALLED_PROP], l.getCallCount()); + } + }); +} + + +/** + * Resets all listeners call count to 0. + */ +function resetListeners() { + goog.array.forEach(listeners, function(l) { + l.reset(); + l[goog.events.eventTargetTester.ALREADY_CHECKED_PROP] = false; + }); +} + + +/** + * The number of times a listener should have been executed. This + * exists to make assertListenerIsCalled more readable. This is used + * like so: assertListenerIsCalled(listener, times(2)); + * @param {number} n The number of times a listener should have been + * executed. + * @return {number} The number n. + */ +function times(n) { + return n; +} + + +function testNoListener() { + dispatchEvent(eventTargets[0], EventType.A); + assertNoOtherListenerIsCalled(); +} + + +function testOneListener() { + listen(eventTargets[0], EventType.A, listeners[0]); + dispatchEvent(eventTargets[0], EventType.A); + assertListenerIsCalled(listeners[0], times(1)); + assertNoOtherListenerIsCalled(); + + resetListeners(); + + dispatchEvent(eventTargets[0], EventType.B); + dispatchEvent(eventTargets[0], EventType.C); + assertNoOtherListenerIsCalled(); +} + + +function testTwoListenersOfSameType() { + var key1 = listen(eventTargets[0], EventType.A, listeners[0]); + var key2 = listen(eventTargets[0], EventType.A, listeners[1]); + + if (keyType == goog.events.eventTargetTester.KeyType.NUMBER) { + assertNotEquals(key1, key2); + } else { + assertUndefined(key1); + assertUndefined(key2); + } + + dispatchEvent(eventTargets[0], EventType.A); + assertListenerIsCalled(listeners[0], times(1)); + assertListenerIsCalled(listeners[1], times(1)); + assertNoOtherListenerIsCalled(); +} + + +function testInstallingSameListeners() { + var key1 = listen(eventTargets[0], EventType.A, listeners[0]); + var key2 = listen(eventTargets[0], EventType.A, listeners[0]); + var key3 = listen(eventTargets[0], EventType.B, listeners[0]); + + if (keyType == goog.events.eventTargetTester.KeyType.NUMBER) { + assertEquals(key1, key2); + assertNotEquals(key1, key3); + } else { + assertUndefined(key1); + assertUndefined(key2); + assertUndefined(key3); + } + + dispatchEvent(eventTargets[0], EventType.A); + assertListenerIsCalled(listeners[0], times(1)); + + dispatchEvent(eventTargets[0], EventType.B); + assertListenerIsCalled(listeners[0], times(2)); + + assertNoOtherListenerIsCalled(); +} + + +function testScope() { + listeners[0] = createListener(function(e) { + assertEquals('Wrong scope with undefined scope', eventTargets[0], this); + }); + listeners[1] = createListener(function(e) { + assertEquals('Wrong scope with null scope', eventTargets[0], this); + }); + var scope = {}; + listeners[2] = createListener(function(e) { + assertEquals('Wrong scope with specific scope object', scope, this); + }); + listen(eventTargets[0], EventType.A, listeners[0]); + listen(eventTargets[0], EventType.A, listeners[1], false, null); + listen(eventTargets[0], EventType.A, listeners[2], false, scope); + + dispatchEvent(eventTargets[0], EventType.A); + assertListenerIsCalled(listeners[0], times(1)); + assertListenerIsCalled(listeners[1], times(1)); + assertListenerIsCalled(listeners[2], times(1)); +} + + +function testDispatchEventDoesNotThrowWithDisposedEventTarget() { + goog.dispose(eventTargets[0]); + assertTrue(dispatchEvent(eventTargets[0], EventType.A)); +} + + +function testDispatchEventWithObjectLiteral() { + listen(eventTargets[0], EventType.A, listeners[0]); + + assertTrue(dispatchEvent(eventTargets[0], {type: EventType.A})); + assertListenerIsCalled(listeners[0], times(1)); + assertNoOtherListenerIsCalled(); +} + + +function testDispatchEventWithCustomEventObject() { + listen(eventTargets[0], EventType.A, listeners[0]); + + var e = new TestEvent(); + assertTrue(dispatchEvent(eventTargets[0], e)); + assertListenerIsCalled(listeners[0], times(1)); + assertNoOtherListenerIsCalled(); + + var actualEvent = listeners[0].getLastCall().getArgument(0); + + assertEquals(e, actualEvent); + assertEquals(eventTargets[0], actualEvent.target); +} + + +function testDisposingEventTargetRemovesListeners() { + listen(eventTargets[0], EventType.A, listeners[0]); + goog.dispose(eventTargets[0]); + dispatchEvent(eventTargets[0], EventType.A); + + assertNoOtherListenerIsCalled(); +} + + +/** + * Unlisten/unlistenByKey should still work after disposal. There are + * many circumstances when this is actually necessary. For example, a + * user may have listened to an event target and stored the key + * (e.g. in a goog.events.EventHandler) and only unlisten after the + * target has been disposed. + */ +function testUnlistenWorksAfterDisposal() { + var key = listen(eventTargets[0], EventType.A, listeners[0]); + goog.dispose(eventTargets[0]); + unlisten(eventTargets[0], EventType.A, listeners[1]); + if (unlistenByKey) { + unlistenByKey(eventTargets[0], key); + } +} + + +function testRemovingListener() { + var ret1 = unlisten(eventTargets[0], EventType.A, listeners[0]); + listen(eventTargets[0], EventType.A, listeners[0]); + var ret2 = unlisten(eventTargets[0], EventType.A, listeners[1]); + var ret3 = unlisten(eventTargets[0], EventType.B, listeners[0]); + var ret4 = unlisten(eventTargets[1], EventType.A, listeners[0]); + + dispatchEvent(eventTargets[0], EventType.A); + assertListenerIsCalled(listeners[0], times(1)); + + var ret5 = unlisten(eventTargets[0], EventType.A, listeners[0]); + var ret6 = unlisten(eventTargets[0], EventType.A, listeners[0]); + + dispatchEvent(eventTargets[0], EventType.A); + assertListenerIsCalled(listeners[0], times(1)); + + assertNoOtherListenerIsCalled(); + + if (unlistenReturnType == + goog.events.eventTargetTester.UnlistenReturnType.BOOLEAN) { + assertFalse(ret1); + assertFalse(ret2); + assertFalse(ret3); + assertFalse(ret4); + assertTrue(ret5); + assertFalse(ret6); + } else { + assertUndefined(ret1); + assertUndefined(ret2); + assertUndefined(ret3); + assertUndefined(ret4); + assertUndefined(ret5); + assertUndefined(ret6); + } +} + + +function testCapture() { + eventTargets[0].setParentEventTarget(eventTargets[1]); + eventTargets[1].setParentEventTarget(eventTargets[2]); + + eventTargets[9].setParentEventTarget(eventTargets[0]); + + var ordering = 0; + listeners[0] = createListener( + function(e) { + assertEquals(eventTargets[2], e.currentTarget); + assertEquals(eventTargets[0], e.target); + assertEquals('First capture listener is not called first', 0, ordering); + ordering++; + }); + listeners[1] = createListener( + function(e) { + assertEquals(eventTargets[1], e.currentTarget); + assertEquals(eventTargets[0], e.target); + assertEquals('2nd capture listener is not called 2nd', 1, ordering); + ordering++; + }); + listeners[2] = createListener( + function(e) { + assertEquals(eventTargets[0], e.currentTarget); + assertEquals(eventTargets[0], e.target); + assertEquals('3rd capture listener is not called 3rd', 2, ordering); + ordering++; + }); + + listen(eventTargets[2], EventType.A, listeners[0], true); + listen(eventTargets[1], EventType.A, listeners[1], true); + listen(eventTargets[0], EventType.A, listeners[2], true); + + // These should not be called. + listen(eventTargets[3], EventType.A, listeners[3], true); + + listen(eventTargets[0], EventType.B, listeners[4], true); + listen(eventTargets[0], EventType.C, listeners[5], true); + listen(eventTargets[1], EventType.B, listeners[6], true); + listen(eventTargets[1], EventType.C, listeners[7], true); + listen(eventTargets[2], EventType.B, listeners[8], true); + listen(eventTargets[2], EventType.C, listeners[9], true); + + dispatchEvent(eventTargets[0], EventType.A); + assertListenerIsCalled(listeners[0], times(1)); + assertListenerIsCalled(listeners[1], times(1)); + assertListenerIsCalled(listeners[2], times(1)); + assertNoOtherListenerIsCalled(); +} + + +function testBubble() { + eventTargets[0].setParentEventTarget(eventTargets[1]); + eventTargets[1].setParentEventTarget(eventTargets[2]); + + eventTargets[9].setParentEventTarget(eventTargets[0]); + + var ordering = 0; + listeners[0] = createListener( + function(e) { + assertEquals(eventTargets[0], e.currentTarget); + assertEquals(eventTargets[0], e.target); + assertEquals('First bubble listener is not called first', 0, ordering); + ordering++; + }); + listeners[1] = createListener( + function(e) { + assertEquals(eventTargets[1], e.currentTarget); + assertEquals(eventTargets[0], e.target); + assertEquals('2nd bubble listener is not called 2nd', 1, ordering); + ordering++; + }); + listeners[2] = createListener( + function(e) { + assertEquals(eventTargets[2], e.currentTarget); + assertEquals(eventTargets[0], e.target); + assertEquals('3rd bubble listener is not called 3rd', 2, ordering); + ordering++; + }); + + listen(eventTargets[0], EventType.A, listeners[0]); + listen(eventTargets[1], EventType.A, listeners[1]); + listen(eventTargets[2], EventType.A, listeners[2]); + + // These should not be called. + listen(eventTargets[3], EventType.A, listeners[3]); + + listen(eventTargets[0], EventType.B, listeners[4]); + listen(eventTargets[0], EventType.C, listeners[5]); + listen(eventTargets[1], EventType.B, listeners[6]); + listen(eventTargets[1], EventType.C, listeners[7]); + listen(eventTargets[2], EventType.B, listeners[8]); + listen(eventTargets[2], EventType.C, listeners[9]); + + dispatchEvent(eventTargets[0], EventType.A); + assertListenerIsCalled(listeners[0], times(1)); + assertListenerIsCalled(listeners[1], times(1)); + assertListenerIsCalled(listeners[2], times(1)); + assertNoOtherListenerIsCalled(); +} + + +function testCaptureAndBubble() { + eventTargets[0].setParentEventTarget(eventTargets[1]); + eventTargets[1].setParentEventTarget(eventTargets[2]); + + listen(eventTargets[0], EventType.A, listeners[0], true); + listen(eventTargets[1], EventType.A, listeners[1], true); + listen(eventTargets[2], EventType.A, listeners[2], true); + + listen(eventTargets[0], EventType.A, listeners[3]); + listen(eventTargets[1], EventType.A, listeners[4]); + listen(eventTargets[2], EventType.A, listeners[5]); + + dispatchEvent(eventTargets[0], EventType.A); + assertListenerIsCalled(listeners[0], times(1)); + assertListenerIsCalled(listeners[1], times(1)); + assertListenerIsCalled(listeners[2], times(1)); + assertListenerIsCalled(listeners[3], times(1)); + assertListenerIsCalled(listeners[4], times(1)); + assertListenerIsCalled(listeners[5], times(1)); + assertNoOtherListenerIsCalled(); +} + + +function testPreventDefaultByReturningFalse() { + listeners[0] = createListener(function(e) { return false; }); + listeners[1] = createListener(function(e) { return true; }); + listen(eventTargets[0], EventType.A, listeners[0]); + listen(eventTargets[0], EventType.A, listeners[1]); + + var result = dispatchEvent(eventTargets[0], EventType.A); + assertFalse(result); +} + + +function testPreventDefault() { + listeners[0] = createListener(function(e) { e.preventDefault(); }); + listeners[1] = createListener(function(e) { return true; }); + listen(eventTargets[0], EventType.A, listeners[0]); + listen(eventTargets[0], EventType.A, listeners[1]); + + var result = dispatchEvent(eventTargets[0], EventType.A); + assertFalse(result); +} + + +function testPreventDefaultAtCapture() { + listeners[0] = createListener(function(e) { e.preventDefault(); }); + listeners[1] = createListener(function(e) { return true; }); + listen(eventTargets[0], EventType.A, listeners[0], true); + listen(eventTargets[0], EventType.A, listeners[1], true); + + var result = dispatchEvent(eventTargets[0], EventType.A); + assertFalse(result); +} + + +function testStopPropagation() { + eventTargets[0].setParentEventTarget(eventTargets[1]); + eventTargets[1].setParentEventTarget(eventTargets[2]); + + listeners[0] = createListener(function(e) { e.stopPropagation(); }); + listen(eventTargets[0], EventType.A, listeners[0]); + listen(eventTargets[0], EventType.A, listeners[1]); + listen(eventTargets[1], EventType.A, listeners[2]); + listen(eventTargets[2], EventType.A, listeners[3]); + + dispatchEvent(eventTargets[0], EventType.A); + + assertListenerIsCalled(listeners[0], times(1)); + assertListenerIsCalled(listeners[1], times(1)); + assertNoOtherListenerIsCalled(); +} + + +function testStopPropagation2() { + eventTargets[0].setParentEventTarget(eventTargets[1]); + eventTargets[1].setParentEventTarget(eventTargets[2]); + + listeners[1] = createListener(function(e) { e.stopPropagation(); }); + listen(eventTargets[0], EventType.A, listeners[0]); + listen(eventTargets[0], EventType.A, listeners[1]); + listen(eventTargets[1], EventType.A, listeners[2]); + listen(eventTargets[2], EventType.A, listeners[3]); + + dispatchEvent(eventTargets[0], EventType.A); + + assertListenerIsCalled(listeners[0], times(1)); + assertListenerIsCalled(listeners[1], times(1)); + assertNoOtherListenerIsCalled(); +} + + +function testStopPropagation3() { + eventTargets[0].setParentEventTarget(eventTargets[1]); + eventTargets[1].setParentEventTarget(eventTargets[2]); + + listeners[2] = createListener(function(e) { e.stopPropagation(); }); + listen(eventTargets[0], EventType.A, listeners[0]); + listen(eventTargets[0], EventType.A, listeners[1]); + listen(eventTargets[1], EventType.A, listeners[2]); + listen(eventTargets[2], EventType.A, listeners[3]); + + dispatchEvent(eventTargets[0], EventType.A); + + assertListenerIsCalled(listeners[0], times(1)); + assertListenerIsCalled(listeners[1], times(1)); + assertListenerIsCalled(listeners[2], times(1)); + assertNoOtherListenerIsCalled(); +} + + +function testStopPropagationAtCapture() { + eventTargets[0].setParentEventTarget(eventTargets[1]); + eventTargets[1].setParentEventTarget(eventTargets[2]); + + listeners[0] = createListener(function(e) { e.stopPropagation(); }); + listen(eventTargets[2], EventType.A, listeners[0], true); + listen(eventTargets[1], EventType.A, listeners[1], true); + listen(eventTargets[0], EventType.A, listeners[2], true); + listen(eventTargets[0], EventType.A, listeners[3]); + listen(eventTargets[1], EventType.A, listeners[4]); + listen(eventTargets[2], EventType.A, listeners[5]); + + dispatchEvent(eventTargets[0], EventType.A); + + assertListenerIsCalled(listeners[0], times(1)); + assertNoOtherListenerIsCalled(); +} + + +function testHandleEvent() { + if (!objectTypeListenerSupported) { + return; + } + + var obj = {}; + obj.handleEvent = goog.testing.recordFunction(); + + listen(eventTargets[0], EventType.A, obj); + dispatchEvent(eventTargets[0], EventType.A); + + assertEquals(1, obj.handleEvent.getCallCount()); +} + + +function testListenOnce() { + if (!listenOnce) { + return; + } + + listenOnce(eventTargets[0], EventType.A, listeners[0], true); + listenOnce(eventTargets[0], EventType.A, listeners[1]); + listenOnce(eventTargets[0], EventType.B, listeners[2]); + + dispatchEvent(eventTargets[0], EventType.A); + + assertListenerIsCalled(listeners[0], times(1)); + assertListenerIsCalled(listeners[1], times(1)); + assertListenerIsCalled(listeners[2], times(0)); + assertNoOtherListenerIsCalled(); + resetListeners(); + + dispatchEvent(eventTargets[0], EventType.A); + + assertListenerIsCalled(listeners[0], times(0)); + assertListenerIsCalled(listeners[1], times(0)); + assertListenerIsCalled(listeners[2], times(0)); + + dispatchEvent(eventTargets[0], EventType.B); + assertListenerIsCalled(listeners[2], times(1)); + assertNoOtherListenerIsCalled(); +} + + +function testUnlistenInListen() { + listeners[1] = createListener( + function(e) { + unlisten(eventTargets[0], EventType.A, listeners[1]); + unlisten(eventTargets[0], EventType.A, listeners[2]); + }); + listen(eventTargets[0], EventType.A, listeners[0]); + listen(eventTargets[0], EventType.A, listeners[1]); + listen(eventTargets[0], EventType.A, listeners[2]); + listen(eventTargets[0], EventType.A, listeners[3]); + + dispatchEvent(eventTargets[0], EventType.A); + + assertListenerIsCalled(listeners[0], times(1)); + assertListenerIsCalled(listeners[1], times(1)); + assertListenerIsCalled(listeners[2], times(0)); + assertListenerIsCalled(listeners[3], times(1)); + assertNoOtherListenerIsCalled(); + resetListeners(); + + dispatchEvent(eventTargets[0], EventType.A); + assertListenerIsCalled(listeners[0], times(1)); + assertListenerIsCalled(listeners[1], times(0)); + assertListenerIsCalled(listeners[2], times(0)); + assertListenerIsCalled(listeners[3], times(1)); + assertNoOtherListenerIsCalled(); +} + + +function testUnlistenByKeyInListen() { + if (!unlistenByKey) { + return; + } + + var key1, key2; + listeners[1] = createListener( + function(e) { + unlistenByKey(eventTargets[0], key1); + unlistenByKey(eventTargets[0], key2); + }); + listen(eventTargets[0], EventType.A, listeners[0]); + key1 = listen(eventTargets[0], EventType.A, listeners[1]); + key2 = listen(eventTargets[0], EventType.A, listeners[2]); + listen(eventTargets[0], EventType.A, listeners[3]); + + dispatchEvent(eventTargets[0], EventType.A); + + assertListenerIsCalled(listeners[0], times(1)); + assertListenerIsCalled(listeners[1], times(1)); + assertListenerIsCalled(listeners[2], times(0)); + assertListenerIsCalled(listeners[3], times(1)); + assertNoOtherListenerIsCalled(); + resetListeners(); + + dispatchEvent(eventTargets[0], EventType.A); + assertListenerIsCalled(listeners[0], times(1)); + assertListenerIsCalled(listeners[1], times(0)); + assertListenerIsCalled(listeners[2], times(0)); + assertListenerIsCalled(listeners[3], times(1)); + assertNoOtherListenerIsCalled(); +} + + +function testSetParentEventTarget() { + assertNull(eventTargets[0].getParentEventTarget()); + + eventTargets[0].setParentEventTarget(eventTargets[1]); + assertEquals(eventTargets[1], eventTargets[0].getParentEventTarget()); + assertNull(eventTargets[1].getParentEventTarget()); + + eventTargets[0].setParentEventTarget(null); + assertNull(eventTargets[0].getParentEventTarget()); +} + + +function testListenOnceAfterListenDoesNotChangeExistingListener() { + if (!listenOnce) { + return; + } + + listen(eventTargets[0], EventType.A, listeners[0]); + listenOnce(eventTargets[0], EventType.A, listeners[0]); + + dispatchEvent(eventTargets[0], EventType.A); + dispatchEvent(eventTargets[0], EventType.A); + dispatchEvent(eventTargets[0], EventType.A); + + assertListenerIsCalled(listeners[0], times(3)); + assertNoOtherListenerIsCalled(); +} + + +function testListenOnceAfterListenOnceDoesNotChangeExistingListener() { + if (!listenOnce) { + return; + } + + listenOnce(eventTargets[0], EventType.A, listeners[0]); + listenOnce(eventTargets[0], EventType.A, listeners[0]); + + dispatchEvent(eventTargets[0], EventType.A); + dispatchEvent(eventTargets[0], EventType.A); + dispatchEvent(eventTargets[0], EventType.A); + + assertListenerIsCalled(listeners[0], times(1)); + assertNoOtherListenerIsCalled(); +} + + +function testListenAfterListenOnceRemoveOnceness() { + if (!listenOnce) { + return; + } + + listenOnce(eventTargets[0], EventType.A, listeners[0]); + listen(eventTargets[0], EventType.A, listeners[0]); + + dispatchEvent(eventTargets[0], EventType.A); + dispatchEvent(eventTargets[0], EventType.A); + dispatchEvent(eventTargets[0], EventType.A); + + assertListenerIsCalled(listeners[0], times(3)); + assertNoOtherListenerIsCalled(); +} + + +function testUnlistenAfterListenOnce() { + if (!listenOnce) { + return; + } + + listenOnce(eventTargets[0], EventType.A, listeners[0]); + unlisten(eventTargets[0], EventType.A, listeners[0]); + dispatchEvent(eventTargets[0], EventType.A); + + listen(eventTargets[0], EventType.A, listeners[0]); + listenOnce(eventTargets[0], EventType.A, listeners[0]); + unlisten(eventTargets[0], EventType.A, listeners[0]); + dispatchEvent(eventTargets[0], EventType.A); + + listenOnce(eventTargets[0], EventType.A, listeners[0]); + listen(eventTargets[0], EventType.A, listeners[0]); + unlisten(eventTargets[0], EventType.A, listeners[0]); + dispatchEvent(eventTargets[0], EventType.A); + + listenOnce(eventTargets[0], EventType.A, listeners[0]); + listenOnce(eventTargets[0], EventType.A, listeners[0]); + unlisten(eventTargets[0], EventType.A, listeners[0]); + dispatchEvent(eventTargets[0], EventType.A); + + assertNoOtherListenerIsCalled(); +} + + +function testRemoveAllWithType() { + if (!removeAll) { + return; + } + + listen(eventTargets[0], EventType.A, listeners[0], true); + listen(eventTargets[0], EventType.A, listeners[1]); + listen(eventTargets[0], EventType.C, listeners[2], true); + listen(eventTargets[0], EventType.C, listeners[3]); + listen(eventTargets[0], EventType.B, listeners[4], true); + listen(eventTargets[0], EventType.B, listeners[5], true); + listen(eventTargets[0], EventType.B, listeners[6]); + listen(eventTargets[0], EventType.B, listeners[7]); + + assertEquals(4, removeAll(eventTargets[0], EventType.B)); + + dispatchEvent(eventTargets[0], EventType.A); + dispatchEvent(eventTargets[0], EventType.B); + dispatchEvent(eventTargets[0], EventType.C); + + assertListenerIsCalled(listeners[0], times(1)); + assertListenerIsCalled(listeners[1], times(1)); + assertListenerIsCalled(listeners[2], times(1)); + assertListenerIsCalled(listeners[3], times(1)); + assertNoOtherListenerIsCalled(); +} + + +function testRemoveAll() { + if (!removeAll) { + return; + } + + listen(eventTargets[0], EventType.A, listeners[0], true); + listen(eventTargets[0], EventType.A, listeners[1]); + listen(eventTargets[0], EventType.C, listeners[2], true); + listen(eventTargets[0], EventType.C, listeners[3]); + listen(eventTargets[0], EventType.B, listeners[4], true); + listen(eventTargets[0], EventType.B, listeners[5], true); + listen(eventTargets[0], EventType.B, listeners[6]); + listen(eventTargets[0], EventType.B, listeners[7]); + + assertEquals(8, removeAll(eventTargets[0])); + + dispatchEvent(eventTargets[0], EventType.A); + dispatchEvent(eventTargets[0], EventType.B); + dispatchEvent(eventTargets[0], EventType.C); + + assertNoOtherListenerIsCalled(); +} + + +function testGetListeners() { + if (!getListeners) { + return; + } + + listen(eventTargets[0], EventType.A, listeners[0], true); + listen(eventTargets[0], EventType.A, listeners[1], true); + listen(eventTargets[0], EventType.A, listeners[2]); + listen(eventTargets[0], EventType.A, listeners[3]); + + var l = getListeners(eventTargets[0], EventType.A, true); + assertEquals(2, l.length); + assertEquals(listeners[0], l[0].listener); + assertEquals(listeners[1], l[1].listener); + + l = getListeners(eventTargets[0], EventType.A, false); + assertEquals(2, l.length); + assertEquals(listeners[2], l[0].listener); + assertEquals(listeners[3], l[1].listener); + + l = getListeners(eventTargets[0], EventType.B, true); + assertEquals(0, l.length); +} + + +function testGetListener() { + if (!getListener) { + return; + } + + listen(eventTargets[0], EventType.A, listeners[0], true); + + assertNotNull(getListener(eventTargets[0], EventType.A, listeners[0], true)); + assertNull( + getListener(eventTargets[0], EventType.A, listeners[0], true, {})); + assertNull(getListener(eventTargets[1], EventType.A, listeners[0], true)); + assertNull(getListener(eventTargets[0], EventType.B, listeners[0], true)); + assertNull(getListener(eventTargets[0], EventType.A, listeners[1], true)); +} + + +function testHasListener() { + if (!hasListener) { + return; + } + + assertFalse(hasListener(eventTargets[0])); + + listen(eventTargets[0], EventType.A, listeners[0], true); + + assertTrue(hasListener(eventTargets[0])); + assertTrue(hasListener(eventTargets[0], EventType.A)); + assertTrue(hasListener(eventTargets[0], EventType.A, true)); + assertTrue(hasListener(eventTargets[0], undefined, true)); + assertFalse(hasListener(eventTargets[0], EventType.A, false)); + assertFalse(hasListener(eventTargets[0], undefined, false)); + assertFalse(hasListener(eventTargets[0], EventType.B)); + assertFalse(hasListener(eventTargets[0], EventType.B, true)); + assertFalse(hasListener(eventTargets[1])); +} + + +function testFiringEventBeforeDisposeInternalWorks() { + /** + * @extends {goog.events.EventTarget} + * @constructor + */ + var MockTarget = function() { + goog.base(this); + }; + goog.inherits(MockTarget, goog.events.EventTarget); + + MockTarget.prototype.disposeInternal = function() { + dispatchEvent(this, EventType.A); + goog.base(this, 'disposeInternal'); + }; + + var t = new MockTarget(); + try { + listen(t, EventType.A, listeners[0]); + t.dispose(); + assertListenerIsCalled(listeners[0], times(1)); + } catch (e) { + goog.dispose(t); + } +} + + +function testLoopDetection() { + var target = new goog.events.EventTarget(); + target.setParentEventTarget(target); + + try { + target.dispatchEvent('string'); + fail('expected error'); + } catch (e) { + assertContains('infinite', e.message); + } +} diff --git a/master/closure-library/closure/goog/events/eventtype.js b/edit/closure-library/closure/goog/events/eventtype.js similarity index 73% rename from master/closure-library/closure/goog/events/eventtype.js rename to edit/closure-library/closure/goog/events/eventtype.js index eaac23c682..ea1fe469c7 100644 --- a/master/closure-library/closure/goog/events/eventtype.js +++ b/edit/closure-library/closure/goog/events/eventtype.js @@ -69,10 +69,12 @@ goog.events.EventType = { // Drag and drop DRAGSTART: 'dragstart', + DRAG: 'drag', DRAGENTER: 'dragenter', DRAGOVER: 'dragover', DRAGLEAVE: 'dragleave', DROP: 'drop', + DRAGEND: 'dragend', // WebKit touch events. TOUCHSTART: 'touchstart', @@ -81,7 +83,10 @@ goog.events.EventType = { TOUCHCANCEL: 'touchcancel', // Misc + BEFOREUNLOAD: 'beforeunload', + CONSOLEMESSAGE: 'consolemessage', CONTEXTMENU: 'contextmenu', + DOMCONTENTLOADED: 'DOMContentLoaded', ERROR: 'error', HELP: 'help', LOAD: 'load', @@ -121,5 +126,40 @@ goog.events.EventType = { // CSS transition events. Based on the browser support described at: // https://developer.mozilla.org/en/css/css_transitions#Browser_compatibility TRANSITIONEND: goog.userAgent.WEBKIT ? 'webkitTransitionEnd' : - (goog.userAgent.OPERA ? 'oTransitionEnd' : 'transitionend') + (goog.userAgent.OPERA ? 'oTransitionEnd' : 'transitionend'), + + // IE specific events. + // See http://msdn.microsoft.com/en-us/library/ie/hh673557(v=vs.85).aspx + MSGESTURECHANGE: 'MSGestureChange', + MSGESTUREEND: 'MSGestureEnd', + MSGESTUREHOLD: 'MSGestureHold', + MSGESTURESTART: 'MSGestureStart', + MSGESTURETAP: 'MSGestureTap', + MSGOTPOINTERCAPTURE: 'MSGotPointerCapture', + MSINERTIASTART: 'MSInertiaStart', + MSLOSTPOINTERCAPTURE: 'MSLostPointerCapture', + MSPOINTERCANCEL: 'MSPointerCancel', + MSPOINTERDOWN: 'MSPointerDown', + MSPOINTERMOVE: 'MSPointerMove', + MSPOINTEROVER: 'MSPointerOver', + MSPOINTEROUT: 'MSPointerOut', + MSPOINTERUP: 'MSPointerUp', + + // Native IMEs/input tools events. + TEXTINPUT: 'textinput', + COMPOSITIONSTART: 'compositionstart', + COMPOSITIONUPDATE: 'compositionupdate', + COMPOSITIONEND: 'compositionend', + + // Webview tag events + // See http://developer.chrome.com/dev/apps/webview_tag.html + EXIT: 'exit', + LOADABORT: 'loadabort', + LOADCOMMIT: 'loadcommit', + LOADREDIRECT: 'loadredirect', + LOADSTART: 'loadstart', + LOADSTOP: 'loadstop', + RESPONSIVE: 'responsive', + SIZECHANGED: 'sizechanged', + UNRESPONSIVE: 'unresponsive' }; diff --git a/master/closure-library/closure/goog/events/eventwrapper.js b/edit/closure-library/closure/goog/events/eventwrapper.js similarity index 92% rename from master/closure-library/closure/goog/events/eventwrapper.js rename to edit/closure-library/closure/goog/events/eventwrapper.js index c556bc1d00..aedfeaa256 100644 --- a/master/closure-library/closure/goog/events/eventwrapper.js +++ b/edit/closure-library/closure/goog/events/eventwrapper.js @@ -35,8 +35,7 @@ goog.events.EventWrapper = function() { * implemented {@link goog.events.EventTarget}. A listener can only be added * once to an object. * - * @param {EventTarget|goog.events.EventTarget} src The node to listen to - * events on. + * @param {goog.events.ListenableType} src The node to listen to events on. * @param {Function|Object} listener Callback method, or an object with a * handleEvent function. * @param {boolean=} opt_capt Whether to fire in capture phase (defaults to @@ -53,8 +52,7 @@ goog.events.EventWrapper.prototype.listen = function(src, listener, opt_capt, /** * Removes an event listener added using goog.events.EventWrapper.listen. * - * @param {EventTarget|goog.events.EventTarget} src The node to remove listener - * from. + * @param {goog.events.ListenableType} src The node to remove listener from. * @param {Function|Object} listener Callback method, or an object with a * handleEvent function. * @param {boolean=} opt_capt Whether to fire in capture phase (defaults to diff --git a/master/closure-library/closure/goog/events/filedrophandler.js b/edit/closure-library/closure/goog/events/filedrophandler.js similarity index 89% rename from master/closure-library/closure/goog/events/filedrophandler.js rename to edit/closure-library/closure/goog/events/filedrophandler.js index be6ea2c9c7..9b24f730cd 100644 --- a/master/closure-library/closure/goog/events/filedrophandler.js +++ b/edit/closure-library/closure/goog/events/filedrophandler.js @@ -23,13 +23,13 @@ goog.provide('goog.events.FileDropHandler'); goog.provide('goog.events.FileDropHandler.EventType'); goog.require('goog.array'); -goog.require('goog.debug.Logger'); goog.require('goog.dom'); goog.require('goog.events'); goog.require('goog.events.BrowserEvent'); goog.require('goog.events.EventHandler'); goog.require('goog.events.EventTarget'); goog.require('goog.events.EventType'); +goog.require('goog.log'); @@ -101,11 +101,11 @@ goog.events.FileDropHandler.prototype.dndContainsFiles_ = false; /** * A logger, used to help us debug the algorithm. - * @type {goog.debug.Logger} + * @type {goog.log.Logger} * @private */ goog.events.FileDropHandler.prototype.logger_ = - goog.debug.Logger.getLogger('goog.events.FileDropHandler'); + goog.log.getLogger('goog.events.FileDropHandler'); /** @@ -130,7 +130,7 @@ goog.events.FileDropHandler.prototype.disposeInternal = function() { * @private */ goog.events.FileDropHandler.prototype.dispatch_ = function(e) { - this.logger_.fine('Firing DROP event...'); + goog.log.fine(this.logger_, 'Firing DROP event...'); var event = new goog.events.BrowserEvent(e.getBrowserEvent()); event.type = goog.events.FileDropHandler.EventType.DROP; this.dispatchEvent(event); @@ -143,8 +143,8 @@ goog.events.FileDropHandler.prototype.dispatch_ = function(e) { * @private */ goog.events.FileDropHandler.prototype.onDocDragEnter_ = function(e) { - this.logger_.finer('"' + e.target.id + '" (' + e.target + ') dispatched: ' + - e.type); + goog.log.log(this.logger_, goog.log.Level.FINER, + '"' + e.target.id + '" (' + e.target + ') dispatched: ' + e.type); var dt = e.getBrowserEvent().dataTransfer; // Check whether the drag event contains files. this.dndContainsFiles_ = !!(dt && @@ -157,7 +157,8 @@ goog.events.FileDropHandler.prototype.onDocDragEnter_ = function(e) { // Prevent default actions. e.preventDefault(); } - this.logger_.finer('dndContainsFiles_: ' + this.dndContainsFiles_); + goog.log.log(this.logger_, goog.log.Level.FINER, + 'dndContainsFiles_: ' + this.dndContainsFiles_); }; @@ -167,8 +168,8 @@ goog.events.FileDropHandler.prototype.onDocDragEnter_ = function(e) { * @private */ goog.events.FileDropHandler.prototype.onDocDragOver_ = function(e) { - this.logger_.finest('"' + e.target.id + '" (' + e.target + ') dispatched: ' + - e.type); + goog.log.log(this.logger_, goog.log.Level.FINEST, + '"' + e.target.id + '" (' + e.target + ') dispatched: ' + e.type); if (this.dndContainsFiles_) { // Prevent default actions. e.preventDefault(); @@ -185,8 +186,8 @@ goog.events.FileDropHandler.prototype.onDocDragOver_ = function(e) { * @private */ goog.events.FileDropHandler.prototype.onElemDragOver_ = function(e) { - this.logger_.finest('"' + e.target.id + '" (' + e.target + ') dispatched: ' + - e.type); + goog.log.log(this.logger_, goog.log.Level.FINEST, + '"' + e.target.id + '" (' + e.target + ') dispatched: ' + e.type); if (this.dndContainsFiles_) { // Prevent default actions and stop the event from propagating further to // the document. Both lines are needed! (See comment above). @@ -206,8 +207,8 @@ goog.events.FileDropHandler.prototype.onElemDragOver_ = function(e) { * @private */ goog.events.FileDropHandler.prototype.onElemDrop_ = function(e) { - this.logger_.finer('"' + e.target.id + '" (' + e.target + ') dispatched: ' + - e.type); + goog.log.log(this.logger_, goog.log.Level.FINER, + '"' + e.target.id + '" (' + e.target + ') dispatched: ' + e.type); // If the drag and drop event contains files. if (this.dndContainsFiles_) { // Prevent default actions and stop the event from propagating further to diff --git a/master/closure-library/closure/goog/events/focushandler.js b/edit/closure-library/closure/goog/events/focushandler.js similarity index 95% rename from master/closure-library/closure/goog/events/focushandler.js rename to edit/closure-library/closure/goog/events/focushandler.js index 8a13e8635e..a4fc9332ab 100644 --- a/master/closure-library/closure/goog/events/focushandler.js +++ b/edit/closure-library/closure/goog/events/focushandler.js @@ -57,18 +57,18 @@ goog.events.FocusHandler = function(element) { /** * Store the listen key so it easier to unlisten in dispose. * @private - * @type {number} + * @type {goog.events.Key} */ - this.listenKeyIn_ = (/** @type {number} */ - goog.events.listen(this.element_, typeIn, this, !goog.userAgent.IE)); + this.listenKeyIn_ = + goog.events.listen(this.element_, typeIn, this, !goog.userAgent.IE); /** * Store the listen key so it easier to unlisten in dispose. * @private - * @type {number} + * @type {goog.events.Key} */ - this.listenKeyOut_ = (/** @type {number} */ - goog.events.listen(this.element_, typeOut, this, !goog.userAgent.IE)); + this.listenKeyOut_ = + goog.events.listen(this.element_, typeOut, this, !goog.userAgent.IE); }; goog.inherits(goog.events.FocusHandler, goog.events.EventTarget); diff --git a/master/closure-library/closure/goog/events/imehandler.js b/edit/closure-library/closure/goog/events/imehandler.js similarity index 99% rename from master/closure-library/closure/goog/events/imehandler.js rename to edit/closure-library/closure/goog/events/imehandler.js index aba4a477cf..238b7903a5 100644 --- a/master/closure-library/closure/goog/events/imehandler.js +++ b/edit/closure-library/closure/goog/events/imehandler.js @@ -49,7 +49,6 @@ goog.require('goog.events.EventTarget'); goog.require('goog.events.EventType'); goog.require('goog.events.KeyCodes'); goog.require('goog.userAgent'); -goog.require('goog.userAgent.product'); @@ -143,7 +142,7 @@ goog.inherits(goog.events.ImeHandler.Event, goog.events.Event); */ goog.events.ImeHandler.USES_COMPOSITION_EVENTS = goog.userAgent.GECKO || - (goog.userAgent.WEBKIT && goog.userAgent.isVersion(532)); + (goog.userAgent.WEBKIT && goog.userAgent.isVersionOrHigher(532)); /** diff --git a/master/closure-library/closure/goog/events/inputhandler.js b/edit/closure-library/closure/goog/events/inputhandler.js similarity index 80% rename from master/closure-library/closure/goog/events/inputhandler.js rename to edit/closure-library/closure/goog/events/inputhandler.js index 7c3c9ed14a..a910183e9d 100644 --- a/master/closure-library/closure/goog/events/inputhandler.js +++ b/edit/closure-library/closure/goog/events/inputhandler.js @@ -40,7 +40,6 @@ goog.provide('goog.events.InputHandler.EventType'); goog.require('goog.Timer'); goog.require('goog.dom'); -goog.require('goog.events'); goog.require('goog.events.BrowserEvent'); goog.require('goog.events.EventHandler'); goog.require('goog.events.EventTarget'); @@ -58,7 +57,7 @@ goog.require('goog.userAgent'); * @extends {goog.events.EventTarget} */ goog.events.InputHandler = function(element) { - goog.events.EventTarget.call(this); + goog.base(this); /** * The element that you want to listen for input events on. @@ -67,21 +66,17 @@ goog.events.InputHandler = function(element) { */ this.element_ = element; - /** - * Whether input event is emulated. - * IE doesn't support input events. We could use property change events but - * they are broken in many ways: - * - Fire even if value was changed programmatically. - * - Aren't always delivered. For example, if you change value or even width - * of input programmatically, next value change made by user won't fire an - * event. - * WebKit before version 531 did not support input events for textareas. - * @type {boolean} - * @private - */ - this.inputEventEmulation_ = - goog.userAgent.IE || - (goog.userAgent.WEBKIT && !goog.userAgent.isVersion('531') && + // Determine whether input event should be emulated. + // IE8 doesn't support input events. We could use property change events but + // they are broken in many ways: + // - Fire even if value was changed programmatically. + // - Aren't always delivered. For example, if you change value or even width + // of input programmatically, next value change made by user won't fire an + // event. + // IE9 supports input events when characters are inserted, but not deleted. + // WebKit before version 531 did not support input events for textareas. + var emulateInputEvents = goog.userAgent.IE || + (goog.userAgent.WEBKIT && !goog.userAgent.isVersionOrHigher('531') && element.tagName == 'TEXTAREA'); /** @@ -89,9 +84,19 @@ goog.events.InputHandler = function(element) { * @private */ this.eventHandler_ = new goog.events.EventHandler(this); + + // Even if input event emulation is enabled, still listen for input events + // since they may be partially supported by the browser (such as IE9). + // If the input event does fire, we will be able to dispatch synchronously. + // (InputHandler events being asynchronous for IE is a common issue for + // cases like auto-grow textareas where they result in a quick flash of + // scrollbars between the textarea content growing and it being resized to + // fit.) this.eventHandler_.listen( this.element_, - this.inputEventEmulation_ ? ['keydown', 'paste', 'cut', 'drop'] : 'input', + emulateInputEvents ? + ['keydown', 'paste', 'cut', 'drop', 'input'] : + 'input', this); }; goog.inherits(goog.events.InputHandler, goog.events.EventTarget); @@ -119,7 +124,21 @@ goog.events.InputHandler.prototype.timer_ = null; * @param {goog.events.BrowserEvent} e The underlying browser event. */ goog.events.InputHandler.prototype.handleEvent = function(e) { - if (this.inputEventEmulation_) { + if (e.type == 'input') { + // This event happens after all the other events we listen to, so cancel + // an asynchronous event dispatch if we have it queued up. Otherwise, we + // will end up firing an extra event. + this.cancelTimerIfSet_(); + + // Unlike other browsers, Opera fires an extra input event when an element + // is blurred after the user has input into it. Since Opera doesn't fire + // input event on drop, it's enough to check whether element still has focus + // to suppress bogus notification. + if (!goog.userAgent.OPERA || this.element_ == + goog.dom.getOwnerDocument(this.element_).activeElement) { + this.dispatchEvent(this.createInputEvent_(e)); + } + } else { // Filter out key events that don't modify text. if (e.type == 'keydown' && !goog.events.KeyCodes.isTextModifyingKeyEvent(e)) { @@ -156,15 +175,6 @@ goog.events.InputHandler.prototype.handleEvent = function(e) { this.dispatchEvent(inputEvent); } }, 0, this); - } else { - // Unlike other browsers, Opera fires an extra input event when an element - // is blurred after the user has input into it. Since Opera doesn't fire - // input event on drop, it's enough to check whether element still has focus - // to suppress bogus notification. - if (!goog.userAgent.OPERA || this.element_ == - goog.dom.getOwnerDocument(this.element_).activeElement) { - this.dispatchEvent(this.createInputEvent_(e)); - } } }; @@ -196,7 +206,7 @@ goog.events.InputHandler.prototype.createInputEvent_ = function(be) { /** @override */ goog.events.InputHandler.prototype.disposeInternal = function() { - goog.events.InputHandler.superClass_.disposeInternal.call(this); + goog.base(this, 'disposeInternal'); this.eventHandler_.dispose(); this.cancelTimerIfSet_(); delete this.element_; diff --git a/master/closure-library/closure/goog/events/keycodes.js b/edit/closure-library/closure/goog/events/keycodes.js similarity index 91% rename from master/closure-library/closure/goog/events/keycodes.js rename to edit/closure-library/closure/goog/events/keycodes.js index cfb3da66e7..53126a6b94 100644 --- a/master/closure-library/closure/goog/events/keycodes.js +++ b/edit/closure-library/closure/goog/events/keycodes.js @@ -240,7 +240,7 @@ goog.events.KeyCodes.isTextModifyingKeyEvent = function(e) { goog.events.KeyCodes.firesKeyPressEvent = function(keyCode, opt_heldKeyCode, opt_shiftKey, opt_ctrlKey, opt_altKey) { if (!goog.userAgent.IE && - !(goog.userAgent.WEBKIT && goog.userAgent.isVersion('525'))) { + !(goog.userAgent.WEBKIT && goog.userAgent.isVersionOrHigher('525'))) { return true; } @@ -258,10 +258,31 @@ goog.events.KeyCodes.firesKeyPressEvent = function(keyCode, opt_heldKeyCode, // check the user agent. if (!opt_shiftKey && (opt_heldKeyCode == goog.events.KeyCodes.CTRL || - opt_heldKeyCode == goog.events.KeyCodes.ALT)) { + opt_heldKeyCode == goog.events.KeyCodes.ALT || + goog.userAgent.MAC && + opt_heldKeyCode == goog.events.KeyCodes.META)) { return false; } + // Some keys with Ctrl/Shift do not issue keypress in WEBKIT. + if (goog.userAgent.WEBKIT && opt_ctrlKey && opt_shiftKey) { + switch (keyCode) { + case goog.events.KeyCodes.BACKSLASH: + case goog.events.KeyCodes.OPEN_SQUARE_BRACKET: + case goog.events.KeyCodes.CLOSE_SQUARE_BRACKET: + case goog.events.KeyCodes.TILDE: + case goog.events.KeyCodes.SEMICOLON: + case goog.events.KeyCodes.DASH: + case goog.events.KeyCodes.EQUALS: + case goog.events.KeyCodes.COMMA: + case goog.events.KeyCodes.PERIOD: + case goog.events.KeyCodes.SLASH: + case goog.events.KeyCodes.APOSTROPHE: + case goog.events.KeyCodes.SINGLE_QUOTE: + return false; + } + } + // When Ctrl+ is held in IE, it only fires a keypress once, but it // continues to fire keydown events as the event repeats. if (goog.userAgent.IE && opt_ctrlKey && opt_heldKeyCode == keyCode) { @@ -271,7 +292,7 @@ goog.events.KeyCodes.firesKeyPressEvent = function(keyCode, opt_heldKeyCode, switch (keyCode) { case goog.events.KeyCodes.ENTER: // IE9 does not fire KEYPRESS on ENTER. - return !(goog.userAgent.IE && goog.userAgent.isDocumentMode(9)); + return !(goog.userAgent.IE && goog.userAgent.isDocumentModeOrHigher(9)); case goog.events.KeyCodes.ESC: return !goog.userAgent.WEBKIT; } diff --git a/master/closure-library/closure/goog/events/keyhandler.js b/edit/closure-library/closure/goog/events/keyhandler.js similarity index 93% rename from master/closure-library/closure/goog/events/keyhandler.js rename to edit/closure-library/closure/goog/events/keyhandler.js index 68d65f9441..df565fe640 100644 --- a/master/closure-library/closure/goog/events/keyhandler.js +++ b/edit/closure-library/closure/goog/events/keyhandler.js @@ -145,7 +145,7 @@ goog.events.KeyHandler.prototype.element_ = null; /** * The key for the key press listener. - * @type {?number} + * @type {goog.events.Key} * @private */ goog.events.KeyHandler.prototype.keyPressKey_ = null; @@ -153,7 +153,7 @@ goog.events.KeyHandler.prototype.keyPressKey_ = null; /** * The key for the key down listener. - * @type {?number} + * @type {goog.events.Key} * @private */ goog.events.KeyHandler.prototype.keyDownKey_ = null; @@ -161,7 +161,7 @@ goog.events.KeyHandler.prototype.keyDownKey_ = null; /** * The key for the key up listener. - * @type {?number} + * @type {goog.events.Key} * @private */ goog.events.KeyHandler.prototype.keyUpKey_ = null; @@ -279,7 +279,7 @@ goog.events.KeyHandler.keyIdentifier_ = { * @private */ goog.events.KeyHandler.USES_KEYDOWN_ = goog.userAgent.IE || - goog.userAgent.WEBKIT && goog.userAgent.isVersion('525'); + goog.userAgent.WEBKIT && goog.userAgent.isVersionOrHigher('525'); /** @@ -301,15 +301,28 @@ goog.events.KeyHandler.SAVE_ALT_FOR_KEYPRESS_ = goog.userAgent.MAC && * @private */ goog.events.KeyHandler.prototype.handleKeyDown_ = function(e) { - // Ctrl-Tab and Alt-Tab can cause the focus to be moved to another window // before we've caught a key-up event. If the last-key was one of these we // reset the state. - if (goog.userAgent.WEBKIT && - (this.lastKey_ == goog.events.KeyCodes.CTRL && !e.ctrlKey || - this.lastKey_ == goog.events.KeyCodes.ALT && !e.altKey)) { - this.lastKey_ = -1; - this.keyCode_ = -1; + + if (goog.userAgent.WEBKIT) { + if (this.lastKey_ == goog.events.KeyCodes.CTRL && !e.ctrlKey || + this.lastKey_ == goog.events.KeyCodes.ALT && !e.altKey || + goog.userAgent.MAC && + this.lastKey_ == goog.events.KeyCodes.META && !e.metaKey) { + this.lastKey_ = -1; + this.keyCode_ = -1; + } + } + + if (this.lastKey_ == -1) { + if (e.ctrlKey && e.keyCode != goog.events.KeyCodes.CTRL) { + this.lastKey_ = goog.events.KeyCodes.CTRL; + } else if (e.altKey && e.keyCode != goog.events.KeyCodes.ALT) { + this.lastKey_ = goog.events.KeyCodes.ALT; + } else if (e.metaKey && e.keyCode != goog.events.KeyCodes.META) { + this.lastKey_ = goog.events.KeyCodes.META; + } } if (goog.events.KeyHandler.USES_KEYDOWN_ && @@ -327,6 +340,17 @@ goog.events.KeyHandler.prototype.handleKeyDown_ = function(e) { }; +/** + * Resets the stored previous values. Needed to be called for webkit which will + * not generate a key up for meta key operations. This should only be called + * when having finished with repeat key possiblities. + */ +goog.events.KeyHandler.prototype.resetState = function() { + this.lastKey_ = -1; + this.keyCode_ = -1; +}; + + /** * Clears the stored previous key value, resetting the key repeat status. Uses * -1 because the Safari 3 Windows beta reports 0 for certain keys (like Home @@ -335,8 +359,7 @@ goog.events.KeyHandler.prototype.handleKeyDown_ = function(e) { * @private */ goog.events.KeyHandler.prototype.handleKeyup_ = function(e) { - this.lastKey_ = -1; - this.keyCode_ = -1; + this.resetState(); this.altKey_ = e.altKey; }; diff --git a/master/closure-library/closure/goog/events/keynames.js b/edit/closure-library/closure/goog/events/keynames.js similarity index 100% rename from master/closure-library/closure/goog/events/keynames.js rename to edit/closure-library/closure/goog/events/keynames.js diff --git a/edit/closure-library/closure/goog/events/listenable.js b/edit/closure-library/closure/goog/events/listenable.js new file mode 100644 index 0000000000..bc8c04a86f --- /dev/null +++ b/edit/closure-library/closure/goog/events/listenable.js @@ -0,0 +1,323 @@ +// Copyright 2012 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview An interface for a listenable JavaScript object. + */ + +goog.provide('goog.events.Listenable'); +goog.provide('goog.events.ListenableKey'); + + + +/** + * A listenable interface. A listenable is an object with the ability + * to dispatch/broadcast events to "event listeners" registered via + * listen/listenOnce. + * + * The interface allows for an event propagation mechanism similar + * to one offered by native browser event targets, such as + * capture/bubble mechanism, stopping propagation, and preventing + * default actions. Capture/bubble mechanism depends on the ancestor + * tree constructed via {@code #getParentEventTarget}; this tree + * must be directed acyclic graph. The meaning of default action(s) + * in preventDefault is specific to a particular use case. + * + * Implementations that do not support capture/bubble or can not have + * a parent listenable can simply not implement any ability to set the + * parent listenable (and have {@code #getParentEventTarget} return + * null). + * + * Implementation of this class can be used with or independently from + * goog.events. + * + * Implementation must call {@code #addImplementation(implClass)}. + * + * @interface + * @see goog.events + * @see http://www.w3.org/TR/DOM-Level-2-Events/events.html + */ +goog.events.Listenable = function() {}; + + +/** + * An expando property to indicate that an object implements + * goog.events.Listenable. + * + * See addImplementation/isImplementedBy. + * + * @type {string} + * @const + */ +goog.events.Listenable.IMPLEMENTED_BY_PROP = + 'closure_listenable_' + ((Math.random() * 1e6) | 0); + + +/** + * Marks a given class (constructor) as an implementation of + * Listenable, do that we can query that fact at runtime. The class + * must have already implemented the interface. + * @param {!Function} cls The class constructor. The corresponding + * class must have already implemented the interface. + */ +goog.events.Listenable.addImplementation = function(cls) { + cls.prototype[goog.events.Listenable.IMPLEMENTED_BY_PROP] = true; +}; + + +/** + * @param {Object} obj The object to check. + * @return {boolean} Whether a given instance implements + * Listenable. The class/superclass of the instance must call + * addImplementation. + */ +goog.events.Listenable.isImplementedBy = function(obj) { + return !!(obj && obj[goog.events.Listenable.IMPLEMENTED_BY_PROP]); +}; + + +/** + * Adds an event listener. A listener can only be added once to an + * object and if it is added again the key for the listener is + * returned. Note that if the existing listener is a one-off listener + * (registered via listenOnce), it will no longer be a one-off + * listener after a call to listen(). + * + * @param {string} type Event type or array of event types. + * @param {!Function} listener Callback method, or an object + * with a handleEvent function. + * @param {boolean=} opt_useCapture Whether to fire in capture phase + * (defaults to false). + * @param {Object=} opt_listenerScope Object in whose scope to call the + * listener. + * @return {goog.events.ListenableKey} Unique key for the listener. + */ +goog.events.Listenable.prototype.listen; + + +/** + * Adds an event listener that is removed automatically after the + * listener fired once. + * + * If an existing listener already exists, listenOnce will do + * nothing. In particular, if the listener was previously registered + * via listen(), listenOnce() will not turn the listener into a + * one-off listener. Similarly, if there is already an existing + * one-off listener, listenOnce does not modify the listeners (it is + * still a once listener). + * + * @param {string} type Event type or array of event types. + * @param {!Function} listener Callback method, or an object + * with a handleEvent function. + * @param {boolean=} opt_useCapture Whether to fire in capture phase + * (defaults to false). + * @param {Object=} opt_listenerScope Object in whose scope to call the + * listener. + * @return {goog.events.ListenableKey} Unique key for the listener. + */ +goog.events.Listenable.prototype.listenOnce; + + +/** + * Removes an event listener which was added with listen() or listenOnce(). + * + * @param {string} type Event type or array of event types. + * @param {!Function} listener Callback method, or an object + * with a handleEvent function. + * @param {boolean=} opt_useCapture Whether to fire in capture phase + * (defaults to false). + * @param {Object=} opt_listenerScope Object in whose scope to call + * the listener. + * @return {boolean} Whether any listener was removed. + */ +goog.events.Listenable.prototype.unlisten; + + +/** + * Removes an event listener which was added with listen() by the key + * returned by listen(). + * + * @param {goog.events.ListenableKey} key The key returned by + * listen() or listenOnce(). + * @return {boolean} Whether any listener was removed. + */ +goog.events.Listenable.prototype.unlistenByKey; + + +/** + * Dispatches an event (or event like object) and calls all listeners + * listening for events of this type. The type of the event is decided by the + * type property on the event object. + * + * If any of the listeners returns false OR calls preventDefault then this + * function will return false. If one of the capture listeners calls + * stopPropagation, then the bubble listeners won't fire. + * + * @param {goog.events.EventLike} e Event object. + * @return {boolean} If anyone called preventDefault on the event object (or + * if any of the listeners returns false) this will also return false. + */ +goog.events.Listenable.prototype.dispatchEvent; + + +/** + * Removes all listeners from this listenable. If type is specified, + * it will only remove listeners of the particular type. otherwise all + * registered listeners will be removed. + * + * @param {string=} opt_type Type of event to remove, default is to + * remove all types. + * @return {number} Number of listeners removed. + */ +goog.events.Listenable.prototype.removeAllListeners; + + +/** + * Returns the parent of this event target to use for capture/bubble + * mechanism. + * + * NOTE(user): The name reflects the original implementation of + * custom event target ({@code goog.events.EventTarget}). We decided + * that changing the name is not worth it. + * + * @return {goog.events.Listenable} The parent EventTarget or null if + * there is no parent. + */ +goog.events.Listenable.prototype.getParentEventTarget; + + +/** + * Fires all registered listeners in this listenable for the given + * type and capture mode, passing them the given eventObject. This + * does not perform actual capture/bubble. Only implementors of the + * interface should be using this. + * + * @param {string} type The type of the listeners to fire. + * @param {boolean} capture The capture mode of the listeners to fire. + * @param {goog.events.Event} eventObject The event object to fire. + * @return {boolean} Whether all listeners succeeded without + * attempting to prevent default behavior. If any listener returns + * false or called goog.events.Event#preventDefault, this returns + * false. + */ +goog.events.Listenable.prototype.fireListeners; + + +/** + * Gets all listeners in this listenable for the given type and + * capture mode. + * + * @param {string} type The type of the listeners to fire. + * @param {boolean} capture The capture mode of the listeners to fire. + * @return {!Array.} An array of registered + * listeners. + */ +goog.events.Listenable.prototype.getListeners; + + +/** + * Gets the goog.events.ListenableKey for the event or null if no such + * listener is in use. + * + * @param {string} type The name of the event without the 'on' prefix. + * @param {!Function} listener The listener function to get. + * @param {boolean} capture Whether the listener is a capturing listener. + * @param {Object=} opt_listenerScope Object in whose scope to call the + * listener. + * @return {goog.events.ListenableKey} the found listener or null if not found. + */ +goog.events.Listenable.prototype.getListener; + + +/** + * Whether there is any active listeners matching the specified + * signature. If either the type or capture parameters are + * unspecified, the function will match on the remaining criteria. + * + * @param {string=} opt_type Event type. + * @param {boolean=} opt_capture Whether to check for capture or bubble + * listeners. + * @return {boolean} Whether there is any active listeners matching + * the requested type and/or capture phase. + */ +goog.events.Listenable.prototype.hasListener; + + + +/** + * An interface that describes a single registered listener. + * @interface + */ +goog.events.ListenableKey = function() {}; + + +/** + * Counter used to create a unique key + * @type {number} + * @private + */ +goog.events.ListenableKey.counter_ = 0; + + +/** + * Reserves a key to be used for ListenableKey#key field. + * @return {number} A number to be used to fill ListenableKey#key + * field. + */ +goog.events.ListenableKey.reserveKey = function() { + return ++goog.events.ListenableKey.counter_; +}; + + +/** + * The source event target. + * @type {!(Object|goog.events.Listenable|goog.events.EventTarget)} + */ +goog.events.ListenableKey.prototype.src; + + +/** + * The event type the listener is listening to. + * @type {string} + */ +goog.events.ListenableKey.prototype.type; + + +/** + * The listener function. + * TODO(user): Narrow the type if possible. + * @type {Function|Object} + */ +goog.events.ListenableKey.prototype.listener; + + +/** + * Whether the listener works on capture phase. + * @type {boolean} + */ +goog.events.ListenableKey.prototype.capture; + + +/** + * The 'this' object for the listener function's scope. + * @type {Object} + */ +goog.events.ListenableKey.prototype.handler; + + +/** + * A globally unique number to identify the key. + * @type {number} + */ +goog.events.ListenableKey.prototype.key; diff --git a/edit/closure-library/closure/goog/events/listener.js b/edit/closure-library/closure/goog/events/listener.js new file mode 100644 index 0000000000..60c737021b --- /dev/null +++ b/edit/closure-library/closure/goog/events/listener.js @@ -0,0 +1,131 @@ +// Copyright 2005 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview Listener object. + * @see ../demos/events.html + */ + +goog.provide('goog.events.Listener'); + +goog.require('goog.events.ListenableKey'); + + + +/** + * Simple class that stores information about a listener + * @param {!Function} listener Callback function. + * @param {Function} proxy Wrapper for the listener that patches the event. + * @param {EventTarget|goog.events.Listenable} src Source object for + * the event. + * @param {string} type Event type. + * @param {boolean} capture Whether in capture or bubble phase. + * @param {Object=} opt_handler Object in whose context to execute the callback. + * @implements {goog.events.ListenableKey} + * @constructor + */ +goog.events.Listener = function( + listener, proxy, src, type, capture, opt_handler) { + if (goog.events.Listener.ENABLE_MONITORING) { + this.creationStack = new Error().stack; + } + + /** + * Callback function. + * @type {Function} + */ + this.listener = listener; + + /** + * A wrapper over the original listener. This is used solely to + * handle native browser events (it is used to simulate the capture + * phase and to patch the event object). + * @type {Function} + */ + this.proxy = proxy; + + /** + * Object or node that callback is listening to + * @type {EventTarget|goog.events.Listenable} + */ + this.src = src; + + /** + * The event type. + * @const {string} + */ + this.type = type; + + /** + * Whether the listener is being called in the capture or bubble phase + * @const {boolean} + */ + this.capture = !!capture; + + /** + * Optional object whose context to execute the listener in + * @type {Object|undefined} + */ + this.handler = opt_handler; + + /** + * The key of the listener. + * @const {number} + * @override + */ + this.key = goog.events.ListenableKey.reserveKey(); + + /** + * Whether to remove the listener after it has been called. + * @type {boolean} + */ + this.callOnce = false; + + /** + * Whether the listener has been removed. + * @type {boolean} + */ + this.removed = false; +}; + + +/** + * @define {boolean} Whether to enable the monitoring of the + * goog.events.Listener instances. Switching on the monitoring is only + * recommended for debugging because it has a significant impact on + * performance and memory usage. If switched off, the monitoring code + * compiles down to 0 bytes. + */ +goog.define('goog.events.Listener.ENABLE_MONITORING', false); + + +/** + * If monitoring the goog.events.Listener instances is enabled, stores the + * creation stack trace of the Disposable instance. + * @type {string} + */ +goog.events.Listener.prototype.creationStack; + + +/** + * Marks this listener as removed. This also remove references held by + * this listener object (such as listener and event source). + */ +goog.events.Listener.prototype.markAsRemoved = function() { + this.removed = true; + this.listener = null; + this.proxy = null; + this.src = null; + this.handler = null; +}; diff --git a/edit/closure-library/closure/goog/events/listenermap.js b/edit/closure-library/closure/goog/events/listenermap.js new file mode 100644 index 0000000000..31eb1a318d --- /dev/null +++ b/edit/closure-library/closure/goog/events/listenermap.js @@ -0,0 +1,299 @@ +// Copyright 2013 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview A map of listeners that provides utility functions to + * deal with listeners on an event target. Used by + * {@code goog.events.EventTarget}. + * + * WARNING: Do not use this class from outside goog.events package. + * + * @visibility {//closure/goog/events:__pkg__} + */ + +goog.provide('goog.events.ListenerMap'); + +goog.require('goog.array'); +goog.require('goog.events.Listener'); +goog.require('goog.object'); + + + +/** + * Creates a new listener map. + * @param {EventTarget|goog.events.Listenable} src The src object. + * @constructor + */ +goog.events.ListenerMap = function(src) { + /** @type {EventTarget|goog.events.Listenable} */ + this.src = src; + + /** + * Maps of event type to an array of listeners. + * @type {Object.>} + */ + this.listeners = {}; + + /** + * The count of types in this map that have registered listeners. + * @private {number} + */ + this.typeCount_ = 0; +}; + + +/** + * @return {number} The count of event types in this map that actually + * have registered listeners. + */ +goog.events.ListenerMap.prototype.getTypeCount = function() { + return this.typeCount_; +}; + + +/** + * @return {number} Total number of registered listeners. + */ +goog.events.ListenerMap.prototype.getListenerCount = function() { + var count = 0; + for (var type in this.listeners) { + count += this.listeners[type].length; + } + return count; +}; + + +/** + * Adds an event listener. A listener can only be added once to an + * object and if it is added again the key for the listener is + * returned. + * + * Note that a one-off listener will not change an existing listener, + * if any. On the other hand a normal listener will change existing + * one-off listener to become a normal listener. + * + * @param {string} type The listener event type. + * @param {!Function} listener This listener callback method. + * @param {boolean} callOnce Whether the listener is a one-off + * listener. + * @param {boolean=} opt_useCapture The capture mode of the listener. + * @param {Object=} opt_listenerScope Object in whose scope to call the + * listener. + * @return {goog.events.ListenableKey} Unique key for the listener. + */ +goog.events.ListenerMap.prototype.add = function( + type, listener, callOnce, opt_useCapture, opt_listenerScope) { + var listenerArray = this.listeners[type]; + if (!listenerArray) { + listenerArray = this.listeners[type] = []; + this.typeCount_++; + } + + var listenerObj; + var index = goog.events.ListenerMap.findListenerIndex_( + listenerArray, listener, opt_useCapture, opt_listenerScope); + if (index > -1) { + listenerObj = listenerArray[index]; + if (!callOnce) { + // Ensure that, if there is an existing callOnce listener, it is no + // longer a callOnce listener. + listenerObj.callOnce = false; + } + } else { + listenerObj = new goog.events.Listener( + listener, null, this.src, type, !!opt_useCapture, opt_listenerScope); + listenerObj.callOnce = callOnce; + listenerArray.push(listenerObj); + } + return listenerObj; +}; + + +/** + * Removes a matching listener. + * @param {string} type The listener event type. + * @param {!Function} listener This listener callback method. + * @param {boolean=} opt_useCapture The capture mode of the listener. + * @param {Object=} opt_listenerScope Object in whose scope to call the + * listener. + * @return {boolean} Whether any listener was removed. + */ +goog.events.ListenerMap.prototype.remove = function( + type, listener, opt_useCapture, opt_listenerScope) { + if (!(type in this.listeners)) { + return false; + } + + var listenerArray = this.listeners[type]; + var index = goog.events.ListenerMap.findListenerIndex_( + listenerArray, listener, opt_useCapture, opt_listenerScope); + if (index > -1) { + var listenerObj = listenerArray[index]; + listenerObj.markAsRemoved(); + goog.array.removeAt(listenerArray, index); + if (listenerArray.length == 0) { + delete this.listeners[type]; + this.typeCount_--; + } + return true; + } + return false; +}; + + +/** + * Removes the given listener object. + * @param {goog.events.ListenableKey} listener The listener to remove. + * @return {boolean} Whether the listener is removed. + */ +goog.events.ListenerMap.prototype.removeByKey = function(listener) { + var type = listener.type; + if (!(type in this.listeners)) { + return false; + } + + var removed = goog.array.remove(this.listeners[type], listener); + if (removed) { + listener.markAsRemoved(); + if (this.listeners[type].length == 0) { + delete this.listeners[type]; + this.typeCount_--; + } + } + return removed; +}; + + +/** + * Removes all listeners from this map. If opt_type is provided, only + * listeners that match the given type are removed. + * @param {string=} opt_type Type of event to remove. + * @return {number} Number of listeners removed. + */ +goog.events.ListenerMap.prototype.removeAll = function(opt_type) { + var count = 0; + for (var type in this.listeners) { + if (!opt_type || type == opt_type) { + var listenerArray = this.listeners[type]; + for (var i = 0; i < listenerArray.length; i++) { + ++count; + listenerArray[i].removed = true; + } + delete this.listeners[type]; + this.typeCount_--; + } + } + return count; +}; + + +/** + * Gets all listeners that match the given type and capture mode. The + * returned array is a copy (but the listener objects are not). + * @param {string} type The type of the listeners to retrieve. + * @param {boolean} capture The capture mode of the listeners to retrieve. + * @return {!Array.} An array of matching + * listeners. + */ +goog.events.ListenerMap.prototype.getListeners = function(type, capture) { + var listenerArray = this.listeners[type]; + var rv = []; + if (listenerArray) { + for (var i = 0; i < listenerArray.length; ++i) { + var listenerObj = listenerArray[i]; + if (listenerObj.capture == capture) { + rv.push(listenerObj); + } + } + } + return rv; +}; + + +/** + * Gets the goog.events.ListenableKey for the event or null if no such + * listener is in use. + * + * @param {string} type The type of the listener to retrieve. + * @param {!Function} listener The listener function to get. + * @param {boolean} capture Whether the listener is a capturing listener. + * @param {Object=} opt_listenerScope Object in whose scope to call the + * listener. + * @return {goog.events.ListenableKey} the found listener or null if not found. + */ +goog.events.ListenerMap.prototype.getListener = function( + type, listener, capture, opt_listenerScope) { + var listenerArray = this.listeners[type]; + var i = -1; + if (listenerArray) { + i = goog.events.ListenerMap.findListenerIndex_( + listenerArray, listener, capture, opt_listenerScope); + } + return i > -1 ? listenerArray[i] : null; +}; + + +/** + * Whether there is a matching listener. If either the type or capture + * parameters are unspecified, the function will match on the + * remaining criteria. + * + * @param {string=} opt_type The type of the listener. + * @param {boolean=} opt_capture The capture mode of the listener. + * @return {boolean} Whether there is an active listener matching + * the requested type and/or capture phase. + */ +goog.events.ListenerMap.prototype.hasListener = function( + opt_type, opt_capture) { + var hasType = goog.isDef(opt_type); + var hasCapture = goog.isDef(opt_capture); + + return goog.object.some( + this.listeners, function(listenerArray, type) { + for (var i = 0; i < listenerArray.length; ++i) { + if ((!hasType || listenerArray[i].type == opt_type) && + (!hasCapture || listenerArray[i].capture == opt_capture)) { + return true; + } + } + + return false; + }); +}; + + +/** + * Finds the index of a matching goog.events.Listener in the given + * listenerArray. + * @param {!Array.} listenerArray Array of listener. + * @param {!Function} listener The listener function. + * @param {boolean=} opt_useCapture The capture flag for the listener. + * @param {Object=} opt_listenerScope The listener scope. + * @return {number} The index of the matching listener within the + * listenerArray. + * @private + */ +goog.events.ListenerMap.findListenerIndex_ = function( + listenerArray, listener, opt_useCapture, opt_listenerScope) { + for (var i = 0; i < listenerArray.length; ++i) { + var listenerObj = listenerArray[i]; + if (!listenerObj.removed && + listenerObj.listener == listener && + listenerObj.capture == !!opt_useCapture && + listenerObj.handler == opt_listenerScope) { + return i; + } + } + return -1; +}; diff --git a/edit/closure-library/closure/goog/events/listenermap_test.js b/edit/closure-library/closure/goog/events/listenermap_test.js new file mode 100644 index 0000000000..4b00727b05 --- /dev/null +++ b/edit/closure-library/closure/goog/events/listenermap_test.js @@ -0,0 +1,116 @@ +// Copyright 2013 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview Tests for listenermap.js. + * + * Most of this class functionality is already tested by + * goog.events.EventTarget tests. This test file only provides tests + * for features that are not direct duplicates of tests in + * goog.events.EventTarget. + */ + +goog.provide('goog.events.ListenerMapTest'); +goog.setTestOnly('goog.events.ListenerMapTest'); + +goog.require('goog.dispose'); +goog.require('goog.events.EventTarget'); +goog.require('goog.events.ListenerMap'); +goog.require('goog.testing.jsunit'); + + +var et, map; +var handler1 = function() {}; +var handler2 = function() {}; +var handler3 = function() {}; +var handler4 = function() {}; +var handler5 = function() {}; + + +function setUp() { + et = new goog.events.EventTarget(); + map = new goog.events.ListenerMap(et); +} + + +function tearDown() { + goog.dispose(et); +} + + +function testGetTypeCount() { + assertEquals(0, map.getTypeCount()); + + map.add('click', handler1, false); + assertEquals(1, map.getTypeCount()); + map.remove('click', handler1); + assertEquals(0, map.getTypeCount()); + + map.add('click', handler1, false, true); + assertEquals(1, map.getTypeCount()); + map.remove('click', handler1, true); + assertEquals(0, map.getTypeCount()); + + map.add('click', handler1, false); + map.add('click', handler1, false, true); + assertEquals(1, map.getTypeCount()); + map.remove('click', handler1); + assertEquals(1, map.getTypeCount()); + map.remove('click', handler1, true); + assertEquals(0, map.getTypeCount()); + + map.add('click', handler1, false); + map.add('touchstart', handler2, false); + assertEquals(2, map.getTypeCount()); + map.remove('touchstart', handler2); + assertEquals(1, map.getTypeCount()); + map.remove('click', handler1); + assertEquals(0, map.getTypeCount()); +} + + +function testGetListenerCount() { + assertEquals(0, map.getListenerCount()); + + map.add('click', handler1, false); + assertEquals(1, map.getListenerCount()); + map.remove('click', handler1); + assertEquals(0, map.getListenerCount()); + + map.add('click', handler1, false, true); + assertEquals(1, map.getListenerCount()); + map.remove('click', handler1, true); + assertEquals(0, map.getListenerCount()); + + map.add('click', handler1, false); + map.add('click', handler1, false, true); + assertEquals(2, map.getListenerCount()); + map.remove('click', handler1); + map.remove('click', handler1, true); + assertEquals(0, map.getListenerCount()); + + map.add('click', handler1, false); + map.add('touchstart', handler2, false); + assertEquals(2, map.getListenerCount()); + map.remove('touchstart', handler2); + map.remove('click', handler1); + assertEquals(0, map.getListenerCount()); +} + + +function testListenerSourceIsSetCorrectly() { + map.add('click', handler1, false); + var listener = map.getListener('click', handler1); + assertEquals(et, listener.src); +} diff --git a/master/closure-library/closure/goog/events/mousewheelhandler.js b/edit/closure-library/closure/goog/events/mousewheelhandler.js similarity index 95% rename from master/closure-library/closure/goog/events/mousewheelhandler.js rename to edit/closure-library/closure/goog/events/mousewheelhandler.js index 6ed76caea9..55a3b3807c 100644 --- a/master/closure-library/closure/goog/events/mousewheelhandler.js +++ b/edit/closure-library/closure/goog/events/mousewheelhandler.js @@ -32,6 +32,7 @@ goog.provide('goog.events.MouseWheelEvent'); goog.provide('goog.events.MouseWheelHandler'); goog.provide('goog.events.MouseWheelHandler.EventType'); +goog.require('goog.dom'); goog.require('goog.events'); goog.require('goog.events.BrowserEvent'); goog.require('goog.events.EventTarget'); @@ -46,10 +47,12 @@ goog.require('goog.userAgent'); * manner. * @param {Element|Document} element The element to listen to the mouse wheel * event on. + * @param {boolean=} opt_capture Whether to handle the mouse wheel event in + * capture phase. * @constructor * @extends {goog.events.EventTarget} */ -goog.events.MouseWheelHandler = function(element) { +goog.events.MouseWheelHandler = function(element, opt_capture) { goog.events.EventTarget.call(this); /** @@ -60,8 +63,8 @@ goog.events.MouseWheelHandler = function(element) { this.element_ = element; var rtlElement = goog.dom.isElement(this.element_) ? - (/** @type {Element} */ this.element_) : - (this.element_ ? (/** @type {Document} */ this.element_).body : null); + /** @type {Element} */ (this.element_) : + (this.element_ ? /** @type {Document} */ (this.element_).body : null); /** * True if the element exists and is RTL, false otherwise. @@ -74,10 +77,10 @@ goog.events.MouseWheelHandler = function(element) { /** * The key returned from the goog.events.listen. - * @type {?number} + * @type {goog.events.Key} * @private */ - this.listenKey_ = goog.events.listen(this.element_, type, this); + this.listenKey_ = goog.events.listen(this.element_, type, this, opt_capture); }; goog.inherits(goog.events.MouseWheelHandler, goog.events.EventTarget); @@ -138,7 +141,7 @@ goog.events.MouseWheelHandler.prototype.handleEvent = function(e) { var wheelDeltaScaleFactor = 1; if (goog.userAgent.IE || goog.userAgent.WEBKIT && - (goog.userAgent.WINDOWS || goog.userAgent.isVersion('532.0'))) { + (goog.userAgent.WINDOWS || goog.userAgent.isVersionOrHigher('532.0'))) { // In IE we get a multiple of 120; we adjust to a multiple of 3 to // represent number of lines scrolled (like Gecko). // Newer versions of Webkit match IE behavior, and WebKit on @@ -238,7 +241,7 @@ goog.events.MouseWheelHandler.smartScale_ = function(mouseWheelDelta, goog.events.MouseWheelHandler.prototype.disposeInternal = function() { goog.events.MouseWheelHandler.superClass_.disposeInternal.call(this); goog.events.unlistenByKey(this.listenKey_); - delete this.listenKey_; + this.listenKey_ = null; }; diff --git a/master/closure-library/closure/goog/events/onlinehandler.js b/edit/closure-library/closure/goog/events/onlinehandler.js similarity index 83% rename from master/closure-library/closure/goog/events/onlinehandler.js rename to edit/closure-library/closure/goog/events/onlinehandler.js index c782e1d073..4efdc07edc 100644 --- a/master/closure-library/closure/goog/events/onlinehandler.js +++ b/edit/closure-library/closure/goog/events/onlinehandler.js @@ -38,6 +38,8 @@ goog.require('goog.Timer'); goog.require('goog.events.BrowserFeature'); goog.require('goog.events.EventHandler'); goog.require('goog.events.EventTarget'); +goog.require('goog.events.EventType'); +goog.require('goog.net.NetworkStatusMonitor'); goog.require('goog.userAgent'); @@ -46,10 +48,14 @@ goog.require('goog.userAgent'); * Basic object for detecting whether the online state changes. * @constructor * @extends {goog.events.EventTarget} + * @implements {goog.net.NetworkStatusMonitor} */ goog.events.OnlineHandler = function() { - goog.events.EventTarget.call(this); + goog.base(this); + /** + * @private {goog.events.EventHandler} + */ this.eventHandler_ = new goog.events.EventHandler(this); // Some browsers do not support navigator.onLine and therefore we don't @@ -62,8 +68,9 @@ goog.events.OnlineHandler = function() { var target = goog.events.BrowserFeature.HTML5_NETWORK_EVENTS_FIRE_ON_BODY ? document.body : window; - this.eventHandler_.listen(target, ['online', 'offline'], - this.handleChange_); + this.eventHandler_.listen(target, + [goog.events.EventType.ONLINE, goog.events.EventType.OFFLINE], + this.handleChange_); } else { this.online_ = this.isOnline(); this.timer_ = new goog.Timer(goog.events.OnlineHandler.POLL_INTERVAL_); @@ -77,11 +84,9 @@ goog.inherits(goog.events.OnlineHandler, goog.events.EventTarget); /** * Enum for the events dispatched by the OnlineHandler. * @enum {string} + * @deprecated Use goog.net.NetworkStatusMonitor.EventType instead. */ -goog.events.OnlineHandler.EventType = { - ONLINE: 'online', - OFFLINE: 'offline' -}; +goog.events.OnlineHandler.EventType = goog.net.NetworkStatusMonitor.EventType; /** @@ -109,19 +114,7 @@ goog.events.OnlineHandler.prototype.online_; goog.events.OnlineHandler.prototype.timer_; -/** - * Event handler to simplify event listening. - * @type {goog.events.EventHandler} - * @private - */ -goog.events.OnlineHandler.prototype.eventHandler_; - - -/** - * Returns whether or not the system is online. This method works properly - * regardless of whether or not the listener IsListening. - * @return {boolean} Whether the browser is currently thinking it is online. - */ +/** @override */ goog.events.OnlineHandler.prototype.isOnline = function() { return goog.events.BrowserFeature.HAS_NAVIGATOR_ONLINE_PROPERTY ? navigator.onLine : true; @@ -151,19 +144,19 @@ goog.events.OnlineHandler.prototype.handleTick_ = function(e) { */ goog.events.OnlineHandler.prototype.handleChange_ = function(e) { var type = this.isOnline() ? - goog.events.OnlineHandler.EventType.ONLINE : - goog.events.OnlineHandler.EventType.OFFLINE; + goog.net.NetworkStatusMonitor.EventType.ONLINE : + goog.net.NetworkStatusMonitor.EventType.OFFLINE; this.dispatchEvent(type); }; /** @override */ goog.events.OnlineHandler.prototype.disposeInternal = function() { - goog.events.OnlineHandler.superClass_.disposeInternal.call(this); + goog.base(this, 'disposeInternal'); this.eventHandler_.dispose(); - delete this.eventHandler_; + this.eventHandler_ = null; if (this.timer_) { this.timer_.dispose(); - delete this.timer_; + this.timer_ = null; } }; diff --git a/master/closure-library/closure/goog/events/pastehandler.js b/edit/closure-library/closure/goog/events/pastehandler.js similarity index 93% rename from master/closure-library/closure/goog/events/pastehandler.js rename to edit/closure-library/closure/goog/events/pastehandler.js index 70c370e64d..926dd1d943 100644 --- a/master/closure-library/closure/goog/events/pastehandler.js +++ b/edit/closure-library/closure/goog/events/pastehandler.js @@ -38,12 +38,13 @@ goog.provide('goog.events.PasteHandler.State'); goog.require('goog.Timer'); goog.require('goog.async.ConditionalDelay'); -goog.require('goog.debug.Logger'); goog.require('goog.events.BrowserEvent'); goog.require('goog.events.EventHandler'); goog.require('goog.events.EventTarget'); goog.require('goog.events.EventType'); goog.require('goog.events.KeyCodes'); +goog.require('goog.log'); +goog.require('goog.userAgent'); @@ -93,7 +94,7 @@ goog.events.PasteHandler = function(element) { if (goog.userAgent.WEBKIT || goog.userAgent.IE || - goog.userAgent.GECKO && goog.userAgent.isVersion('1.9')) { + goog.userAgent.GECKO && goog.userAgent.isVersionOrHigher('1.9')) { // Most modern browsers support the paste event. this.eventHandler_.listen(element, goog.events.EventType.PASTE, this.dispatch_); @@ -200,11 +201,11 @@ goog.events.PasteHandler.prototype.previousEvent_; /** * A logger, used to help us debug the algorithm. - * @type {goog.debug.Logger} + * @type {goog.log.Logger} * @private */ goog.events.PasteHandler.prototype.logger_ = - goog.debug.Logger.getLogger('goog.events.PasteHandler'); + goog.log.getLogger('goog.events.PasteHandler'); /** @override */ @@ -248,7 +249,7 @@ goog.events.PasteHandler.prototype.checkUpdatedText_ = function() { if (this.oldValue_ == this.element_.value) { return false; } - this.logger_.info('detected textchange after paste'); + goog.log.info(this.logger_, 'detected textchange after paste'); this.dispatchEvent(goog.events.PasteHandler.EventType.AFTER_PASTE); return true; }; @@ -345,12 +346,12 @@ goog.events.PasteHandler.prototype.handleEvent_ = function(e) { break; } default: { - this.logger_.severe('invalid ' + this.state_ + ' state'); + goog.log.error(this.logger_, 'invalid ' + this.state_ + ' state'); } } this.lastTime_ = goog.now(); this.oldValue_ = this.element_.value; - this.logger_.info(e.type + ' -> ' + this.state_); + goog.log.info(this.logger_, e.type + ' -> ' + this.state_); this.previousEvent_ = e.type; }; @@ -381,13 +382,14 @@ goog.events.PasteHandler.prototype.handleUnderInit_ = function(e) { case goog.events.EventType.MOUSEOVER: { this.state_ = goog.events.PasteHandler.State.INIT; if (this.element_.value != this.oldValue_) { - this.logger_.info('paste by dragdrop while on init!'); + goog.log.info(this.logger_, 'paste by dragdrop while on init!'); this.dispatch_(e); } break; } default: { - this.logger_.severe('unexpected event ' + e.type + 'during init'); + goog.log.error(this.logger_, + 'unexpected event ' + e.type + 'during init'); } } }; @@ -432,7 +434,7 @@ goog.events.PasteHandler.prototype.handleUnderFocused_ = function(e) { MANDATORY_MS_BETWEEN_INPUT_EVENTS_TIE_BREAKER; if (goog.now() > minimumMilisecondsBetweenInputEvents || this.previousEvent_ == goog.events.EventType.FOCUS) { - this.logger_.info('paste by textchange while focused!'); + goog.log.info(this.logger_, 'paste by textchange while focused!'); this.dispatch_(e); } break; @@ -442,7 +444,7 @@ goog.events.PasteHandler.prototype.handleUnderFocused_ = function(e) { break; } case goog.events.EventType.KEYDOWN: { - this.logger_.info('key down ... looking for ctrl+v'); + goog.log.info(this.logger_, 'key down ... looking for ctrl+v'); // Opera + MAC does not set e.ctrlKey. Instead, it gives me e.keyCode = 0. // http://www.quirksmode.org/js/keys.html if (goog.userAgent.MAC && goog.userAgent.OPERA && e.keyCode == 0 || @@ -454,13 +456,14 @@ goog.events.PasteHandler.prototype.handleUnderFocused_ = function(e) { } case goog.events.EventType.MOUSEOVER: { if (this.element_.value != this.oldValue_) { - this.logger_.info('paste by dragdrop while focused!'); + goog.log.info(this.logger_, 'paste by dragdrop while focused!'); this.dispatch_(e); } break; } default: { - this.logger_.severe('unexpected event ' + e.type + ' during focused'); + goog.log.error(this.logger_, + 'unexpected event ' + e.type + ' during focused'); } } }; @@ -492,20 +495,21 @@ goog.events.PasteHandler.prototype.handleUnderTyping_ = function(e) { if (e.ctrlKey && e.keyCode == goog.events.KeyCodes.V || e.shiftKey && e.keyCode == goog.events.KeyCodes.INSERT || e.metaKey && e.keyCode == goog.events.KeyCodes.V) { - this.logger_.info('paste by ctrl+v while keypressed!'); + goog.log.info(this.logger_, 'paste by ctrl+v while keypressed!'); this.dispatch_(e); } break; } case goog.events.EventType.MOUSEOVER: { if (this.element_.value != this.oldValue_) { - this.logger_.info('paste by dragdrop while keypressed!'); + goog.log.info(this.logger_, 'paste by dragdrop while keypressed!'); this.dispatch_(e); } break; } default: { - this.logger_.severe('unexpected event ' + e.type + ' during keypressed'); + goog.log.error(this.logger_, + 'unexpected event ' + e.type + ' during keypressed'); } } }; diff --git a/master/closure-library/closure/goog/format/emailaddress.js b/edit/closure-library/closure/goog/format/emailaddress.js similarity index 96% rename from master/closure-library/closure/goog/format/emailaddress.js rename to edit/closure-library/closure/goog/format/emailaddress.js index cdaeef70bc..e74bd3f487 100644 --- a/master/closure-library/closure/goog/format/emailaddress.js +++ b/edit/closure-library/closure/goog/format/emailaddress.js @@ -198,10 +198,11 @@ goog.format.EmailAddress.isValidAddress = function(str) { */ goog.format.EmailAddress.isValidAddrSpec = function(str) { // This is a fairly naive implementation, but it covers 99% of use cases. - // For example, having two dots in a row isn't valid, but I don't think we - // need that level of validation. Also, things like [a@b]@c.com is valid, but - // I don't think anyone would accept it. - var filter = /^[+a-zA-Z0-9_.-]+@([a-zA-Z0-9-]+\.)+[a-zA-Z0-9]{2,6}$/; + // For more details, see http://en.wikipedia.org/wiki/Email_address#Syntax + // TODO(mariakhomenko): we should also be handling i18n domain names as per + // http://en.wikipedia.org/wiki/Internationalized_domain_name + var filter = + /^[+a-zA-Z0-9_.!#$%&'*\/=?^`{|}~-]+@([a-zA-Z0-9-]+\.)+[a-zA-Z0-9]{2,6}$/; return filter.test(str); }; diff --git a/master/closure-library/closure/goog/format/format.js b/edit/closure-library/closure/goog/format/format.js similarity index 99% rename from master/closure-library/closure/goog/format/format.js rename to edit/closure-library/closure/goog/format/format.js index d9feb569fe..2ac1327912 100644 --- a/master/closure-library/closure/goog/format/format.js +++ b/edit/closure-library/closure/goog/format/format.js @@ -460,7 +460,7 @@ goog.format.insertWordBreaksBasic = function(str, opt_maxlen) { * @private */ goog.format.IS_IE8_OR_ABOVE_ = goog.userAgent.IE && - goog.userAgent.isVersion(8); + goog.userAgent.isVersionOrHigher(8); /** diff --git a/master/closure-library/closure/goog/format/htmlprettyprinter.js b/edit/closure-library/closure/goog/format/htmlprettyprinter.js similarity index 100% rename from master/closure-library/closure/goog/format/htmlprettyprinter.js rename to edit/closure-library/closure/goog/format/htmlprettyprinter.js diff --git a/master/closure-library/closure/goog/format/jsonprettyprinter.js b/edit/closure-library/closure/goog/format/jsonprettyprinter.js similarity index 100% rename from master/closure-library/closure/goog/format/jsonprettyprinter.js rename to edit/closure-library/closure/goog/format/jsonprettyprinter.js diff --git a/edit/closure-library/closure/goog/fs/entry.js b/edit/closure-library/closure/goog/fs/entry.js new file mode 100644 index 0000000000..eeec036360 --- /dev/null +++ b/edit/closure-library/closure/goog/fs/entry.js @@ -0,0 +1,272 @@ +// Copyright 2011 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview Wrappers for HTML5 Entry objects. These are all in the same + * file to avoid circular dependency issues. + * + * When adding or modifying functionality in this namespace, be sure to update + * the mock counterparts in goog.testing.fs. + * + */ +goog.provide('goog.fs.DirectoryEntry'); +goog.provide('goog.fs.DirectoryEntry.Behavior'); +goog.provide('goog.fs.Entry'); +goog.provide('goog.fs.FileEntry'); + + + +/** + * The interface for entries in the filesystem. + * @interface + */ +goog.fs.Entry = function() {}; + + +/** + * @return {boolean} Whether or not this entry is a file. + */ +goog.fs.Entry.prototype.isFile = function() {}; + + +/** + * @return {boolean} Whether or not this entry is a directory. + */ +goog.fs.Entry.prototype.isDirectory = function() {}; + + +/** + * @return {string} The name of this entry. + */ +goog.fs.Entry.prototype.getName = function() {}; + + +/** + * @return {string} The full path to this entry. + */ +goog.fs.Entry.prototype.getFullPath = function() {}; + + +/** + * @return {!goog.fs.FileSystem} The filesystem backing this entry. + */ +goog.fs.Entry.prototype.getFileSystem = function() {}; + + +/** + * Retrieves the last modified date for this entry. + * + * @return {!goog.async.Deferred} The deferred Date for this entry. If an error + * occurs, the errback is called with a {@link goog.fs.Error}. + */ +goog.fs.Entry.prototype.getLastModified = function() {}; + + +/** + * Retrieves the metadata for this entry. + * + * @return {!goog.async.Deferred} The deferred Metadata for this entry. If an + * error occurs, the errback is called with a {@link goog.fs.Error}. + */ +goog.fs.Entry.prototype.getMetadata = function() {}; + + +/** + * Move this entry to a new location. + * + * @param {!goog.fs.DirectoryEntry} parent The new parent directory. + * @param {string=} opt_newName The new name of the entry. If omitted, the entry + * retains its original name. + * @return {!goog.async.Deferred} The deferred {@link goog.fs.FileEntry} or + * {@link goog.fs.DirectoryEntry} for the new entry. If an error occurs, the + * errback is called with a {@link goog.fs.Error}. + */ +goog.fs.Entry.prototype.moveTo = function(parent, opt_newName) {}; + + +/** + * Copy this entry to a new location. + * + * @param {!goog.fs.DirectoryEntry} parent The new parent directory. + * @param {string=} opt_newName The name of the new entry. If omitted, the new + * entry has the same name as the original. + * @return {!goog.async.Deferred} The deferred {@link goog.fs.FileEntry} or + * {@link goog.fs.DirectoryEntry} for the new entry. If an error occurs, the + * errback is called with a {@link goog.fs.Error}. + */ +goog.fs.Entry.prototype.copyTo = function(parent, opt_newName) {}; + + +/** + * Wrap an HTML5 entry object in an appropriate subclass instance. + * + * @param {!Entry} entry The underlying Entry object. + * @return {!goog.fs.Entry} The appropriate subclass wrapper. + * @protected + */ +goog.fs.Entry.prototype.wrapEntry = function(entry) {}; + + +/** + * Get the URL for this file. + * + * @param {string=} opt_mimeType The MIME type that will be served for the URL. + * @return {string} The URL. + */ +goog.fs.Entry.prototype.toUrl = function(opt_mimeType) {}; + + +/** + * Get the URI for this file. + * + * @deprecated Use {@link #toUrl} instead. + * @param {string=} opt_mimeType The MIME type that will be served for the URI. + * @return {string} The URI. + */ +goog.fs.Entry.prototype.toUri = function(opt_mimeType) {}; + + +/** + * Remove this entry. + * + * @return {!goog.async.Deferred} A deferred object. If the removal succeeds, + * the callback is called with true. If an error occurs, the errback is + * called a {@link goog.fs.Error}. + */ +goog.fs.Entry.prototype.remove = function() {}; + + +/** + * Gets the parent directory. + * + * @return {!goog.async.Deferred} The deferred {@link goog.fs.DirectoryEntry}. + * If an error occurs, the errback is called with a {@link goog.fs.Error}. + */ +goog.fs.Entry.prototype.getParent = function() {}; + + + +/** + * A directory in a local FileSystem. + * + * @interface + * @extends {goog.fs.Entry} + */ +goog.fs.DirectoryEntry = function() {}; + + +/** + * Behaviors for getting files and directories. + * @enum {number} + */ +goog.fs.DirectoryEntry.Behavior = { + /** + * Get the file if it exists, error out if it doesn't. + */ + DEFAULT: 1, + /** + * Get the file if it exists, create it if it doesn't. + */ + CREATE: 2, + /** + * Error out if the file exists, create it if it doesn't. + */ + CREATE_EXCLUSIVE: 3 +}; + + +/** + * Get a file in the directory. + * + * @param {string} path The path to the file, relative to this directory. + * @param {goog.fs.DirectoryEntry.Behavior=} opt_behavior The behavior for + * handling an existing file, or the lack thereof. + * @return {!goog.async.Deferred} The deferred {@link goog.fs.FileEntry}. If an + * error occurs, the errback is called with a {@link goog.fs.Error}. + */ +goog.fs.DirectoryEntry.prototype.getFile = function(path, opt_behavior) {}; + + +/** + * Get a directory within this directory. + * + * @param {string} path The path to the directory, relative to this directory. + * @param {goog.fs.DirectoryEntry.Behavior=} opt_behavior The behavior for + * handling an existing directory, or the lack thereof. + * @return {!goog.async.Deferred} The deferred {@link goog.fs.DirectoryEntry}. + * If an error occurs, the errback is called a {@link goog.fs.Error}. + */ +goog.fs.DirectoryEntry.prototype.getDirectory = function(path, opt_behavior) {}; + + +/** + * Opens the directory for the specified path, creating the directory and any + * intermediate directories as necessary. + * + * @param {string} path The directory path to create. May be absolute or + * relative to the current directory. The parent directory ".." and current + * directory "." are supported. + * @return {!goog.async.Deferred} A deferred {@link goog.fs.DirectoryEntry} for + * the requested path. If an error occurs, the errback is called with a + * {@link goog.fs.Error}. + */ +goog.fs.DirectoryEntry.prototype.createPath = function(path) {}; + + +/** + * Gets a list of all entries in this directory. + * + * @return {!goog.async.Deferred} The deferred list of {@link goog.fs.Entry} + * results. If an error occurs, the errback is called with a + * {@link goog.fs.Error}. + */ +goog.fs.DirectoryEntry.prototype.listDirectory = function() {}; + + +/** + * Removes this directory and all its contents. + * + * @return {!goog.async.Deferred} A deferred object. If the removal succeeds, + * the callback is called with true. If an error occurs, the errback is + * called a {@link goog.fs.Error}. + */ +goog.fs.DirectoryEntry.prototype.removeRecursively = function() {}; + + + +/** + * A file in a local filesystem. + * + * @interface + * @extends {goog.fs.Entry} + */ +goog.fs.FileEntry = function() {}; + + +/** + * Create a writer for writing to the file. + * + * @return {!goog.async.Deferred} The deferred {@link goog.fs.FileWriter}. If an + * error occurs, the errback is called with a {@link goog.fs.Error}. + */ +goog.fs.FileEntry.prototype.createWriter = function() {}; + + +/** + * Get the file contents as a File blob. + * + * @return {!goog.async.Deferred} The deferred File. If an error occurs, the + * errback is called with a {@link goog.fs.Error}. + */ +goog.fs.FileEntry.prototype.file = function() {}; diff --git a/master/closure-library/closure/goog/fs/entry.js b/edit/closure-library/closure/goog/fs/entryimpl.js similarity index 51% rename from master/closure-library/closure/goog/fs/entry.js rename to edit/closure-library/closure/goog/fs/entryimpl.js index 0e6c559a78..4c38932dc3 100644 --- a/master/closure-library/closure/goog/fs/entry.js +++ b/edit/closure-library/closure/goog/fs/entryimpl.js @@ -1,4 +1,4 @@ -// Copyright 2011 The Closure Library Authors. All Rights Reserved. +// Copyright 2013 The Closure Library Authors. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -13,22 +13,19 @@ // limitations under the License. /** - * @fileoverview Wrappers for HTML5 Entry objects. These are all in the same - * file to avoid circular dependency issues. - * - * When adding or modifying functionality in this namespace, be sure to update - * the mock counterparts in goog.testing.fs. - * + * @fileoverview Concrete implementations of the + * goog.fs.DirectoryEntry, and goog.fs.FileEntry interfaces. */ - -goog.provide('goog.fs.DirectoryEntry'); -goog.provide('goog.fs.DirectoryEntry.Behavior'); -goog.provide('goog.fs.Entry'); -goog.provide('goog.fs.FileEntry'); +goog.provide('goog.fs.DirectoryEntryImpl'); +goog.provide('goog.fs.EntryImpl'); +goog.provide('goog.fs.FileEntryImpl'); goog.require('goog.array'); goog.require('goog.async.Deferred'); +goog.require('goog.fs.DirectoryEntry'); +goog.require('goog.fs.Entry'); goog.require('goog.fs.Error'); +goog.require('goog.fs.FileEntry'); goog.require('goog.fs.FileWriter'); goog.require('goog.functions'); goog.require('goog.string'); @@ -36,13 +33,13 @@ goog.require('goog.string'); /** - * The abstract class for entries in the filesystem. - * + * Base class for concrete implementations of goog.fs.Entry. * @param {!goog.fs.FileSystem} fs The wrapped filesystem. * @param {!Entry} entry The underlying Entry object. * @constructor + * @implements {goog.fs.Entry} */ -goog.fs.Entry = function(fs, entry) { +goog.fs.EntryImpl = function(fs, entry) { /** * The wrapped filesystem. * @@ -61,66 +58,46 @@ goog.fs.Entry = function(fs, entry) { }; -/** - * @return {boolean} Whether or not this entry is a file. - */ -goog.fs.Entry.prototype.isFile = function() { +/** @override */ +goog.fs.EntryImpl.prototype.isFile = function() { return this.entry_.isFile; }; -/** - * @return {boolean} Whether or not this entry is a directory. - */ -goog.fs.Entry.prototype.isDirectory = function() { +/** @override */ +goog.fs.EntryImpl.prototype.isDirectory = function() { return this.entry_.isDirectory; }; -/** - * @return {string} The name of this entry. - */ -goog.fs.Entry.prototype.getName = function() { +/** @override */ +goog.fs.EntryImpl.prototype.getName = function() { return this.entry_.name; }; -/** - * @return {string} The full path to this entry. - */ -goog.fs.Entry.prototype.getFullPath = function() { +/** @override */ +goog.fs.EntryImpl.prototype.getFullPath = function() { return this.entry_.fullPath; }; -/** - * @return {!goog.fs.FileSystem} The filesystem backing this entry. - */ -goog.fs.Entry.prototype.getFileSystem = function() { +/** @override */ +goog.fs.EntryImpl.prototype.getFileSystem = function() { return this.fs_; }; -/** - * Retrieves the last modified date for this entry. - * - * @return {!goog.async.Deferred} The deferred Date for this entry. If an error - * occurs, the errback is called with a {@link goog.fs.Error}. - */ -goog.fs.Entry.prototype.getLastModified = function() { +/** @override */ +goog.fs.EntryImpl.prototype.getLastModified = function() { return this.getMetadata().addCallback(function(metadata) { return metadata.modificationTime; }); }; -/** - * Retrieves the metadata for this entry. - * - * @return {!goog.async.Deferred} The deferred Metadata for this entry. If an - * error occurs, the errback is called with a {@link goog.fs.Error}. - */ -goog.fs.Entry.prototype.getMetadata = function() { +/** @override */ +goog.fs.EntryImpl.prototype.getMetadata = function() { var d = new goog.async.Deferred(); this.entry_.getMetadata( @@ -133,17 +110,8 @@ goog.fs.Entry.prototype.getMetadata = function() { }; -/** - * Move this entry to a new location. - * - * @param {!goog.fs.DirectoryEntry} parent The new parent directory. - * @param {string=} opt_newName The new name of the entry. If omitted, the entry - * retains its original name. - * @return {!goog.async.Deferred} The deferred {@link goog.fs.FileEntry} or - * {@link goog.fs.DirectoryEntry} for the new entry. If an error occurs, the - * errback is called with a {@link goog.fs.Error}. - */ -goog.fs.Entry.prototype.moveTo = function(parent, opt_newName) { +/** @override */ +goog.fs.EntryImpl.prototype.moveTo = function(parent, opt_newName) { var d = new goog.async.Deferred(); this.entry_.moveTo( parent.dir_, opt_newName, @@ -158,17 +126,8 @@ goog.fs.Entry.prototype.moveTo = function(parent, opt_newName) { }; -/** - * Copy this entry to a new location. - * - * @param {!goog.fs.DirectoryEntry} parent The new parent directory. - * @param {string=} opt_newName The name of the new entry. If omitted, the new - * entry has the same name as the original. - * @return {!goog.async.Deferred} The deferred {@link goog.fs.FileEntry} or - * {@link goog.fs.DirectoryEntry} for the new entry. If an error occurs, the - * errback is called with a {@link goog.fs.Error}. - */ -goog.fs.Entry.prototype.copyTo = function(parent, opt_newName) { +/** @override */ +goog.fs.EntryImpl.prototype.copyTo = function(parent, opt_newName) { var d = new goog.async.Deferred(); this.entry_.copyTo( parent.dir_, opt_newName, @@ -183,50 +142,27 @@ goog.fs.Entry.prototype.copyTo = function(parent, opt_newName) { }; -/** - * Wrap an HTML5 entry object in an appropriate subclass instance. - * - * @param {!Entry} entry The underlying Entry object. - * @return {!goog.fs.Entry} The appropriate subclass wrapper. - * @protected - */ -goog.fs.Entry.prototype.wrapEntry = function(entry) { +/** @override */ +goog.fs.EntryImpl.prototype.wrapEntry = function(entry) { return entry.isFile ? - new goog.fs.FileEntry(this.fs_, /** @type {!FileEntry} */ (entry)) : - new goog.fs.DirectoryEntry( + new goog.fs.FileEntryImpl(this.fs_, /** @type {!FileEntry} */ (entry)) : + new goog.fs.DirectoryEntryImpl( this.fs_, /** @type {!DirectoryEntry} */ (entry)); }; -/** - * Get the URL for this file. - * - * @param {string=} opt_mimeType The MIME type that will be served for the URL. - * @return {string} The URL. - */ -goog.fs.Entry.prototype.toUrl = function(opt_mimeType) { +/** @override */ +goog.fs.EntryImpl.prototype.toUrl = function(opt_mimeType) { return this.entry_.toURL(opt_mimeType); }; -/** - * Get the URI for this file. - * - * @deprecated Use {@link #toUrl} instead. - * @param {string=} opt_mimeType The MIME type that will be served for the URI. - * @return {string} The URI. - */ -goog.fs.Entry.prototype.toUri = goog.fs.Entry.prototype.toUrl; +/** @override */ +goog.fs.EntryImpl.prototype.toUri = goog.fs.EntryImpl.prototype.toUrl; -/** - * Remove this entry. - * - * @return {!goog.async.Deferred} A deferred object. If the removal succeeds, - * the callback is called with true. If an error occurs, the errback is - * called a {@link goog.fs.Error}. - */ -goog.fs.Entry.prototype.remove = function() { +/** @override */ +goog.fs.EntryImpl.prototype.remove = function() { var d = new goog.async.Deferred(); this.entry_.remove( goog.bind(d.callback, d, true /* result */), @@ -238,17 +174,12 @@ goog.fs.Entry.prototype.remove = function() { }; -/** - * Gets the parent directory. - * - * @return {!goog.async.Deferred} The deferred {@link goog.fs.DirectoryEntry}. - * If an error occurs, the errback is called with a {@link goog.fs.Error}. - */ -goog.fs.Entry.prototype.getParent = function() { +/** @override */ +goog.fs.EntryImpl.prototype.getParent = function() { var d = new goog.async.Deferred(); this.entry_.getParent( goog.bind(function(parent) { - d.callback(new goog.fs.DirectoryEntry(this.fs_, parent)); + d.callback(new goog.fs.DirectoryEntryImpl(this.fs_, parent)); }, this), goog.bind(function(err) { var msg = 'getting parent of ' + this.getFullPath(); @@ -269,9 +200,10 @@ goog.fs.Entry.prototype.getParent = function() { * @param {!goog.fs.FileSystem} fs The wrapped filesystem. * @param {!DirectoryEntry} dir The underlying DirectoryEntry object. * @constructor - * @extends {goog.fs.Entry} + * @extends {goog.fs.EntryImpl} + * @implements {goog.fs.DirectoryEntry} */ -goog.fs.DirectoryEntry = function(fs, dir) { +goog.fs.DirectoryEntryImpl = function(fs, dir) { goog.base(this, fs, dir); /** @@ -282,44 +214,16 @@ goog.fs.DirectoryEntry = function(fs, dir) { */ this.dir_ = dir; }; -goog.inherits(goog.fs.DirectoryEntry, goog.fs.Entry); +goog.inherits(goog.fs.DirectoryEntryImpl, goog.fs.EntryImpl); -/** - * Behaviors for getting files and directories. - * @enum {number} - */ -goog.fs.DirectoryEntry.Behavior = { - /** - * Get the file if it exists, error out if it doesn't. - */ - DEFAULT: 1, - /** - * Get the file if it exists, create it if it doesn't. - */ - CREATE: 2, - /** - * Error out if the file exists, create it if it doesn't. - */ - CREATE_EXCLUSIVE: 3 -}; - - -/** - * Get a file in the directory. - * - * @param {string} path The path to the file, relative to this directory. - * @param {goog.fs.DirectoryEntry.Behavior=} opt_behavior The behavior for - * handling an existing file, or the lack thereof. - * @return {!goog.async.Deferred} The deferred {@link goog.fs.FileEntry}. If an - * error occurs, the errback is called with a {@link goog.fs.Error}. - */ -goog.fs.DirectoryEntry.prototype.getFile = function(path, opt_behavior) { +/** @override */ +goog.fs.DirectoryEntryImpl.prototype.getFile = function(path, opt_behavior) { var d = new goog.async.Deferred(); this.dir_.getFile( path, this.getOptions_(opt_behavior), goog.bind(function(entry) { - d.callback(new goog.fs.FileEntry(this.fs_, entry)); + d.callback(new goog.fs.FileEntryImpl(this.fs_, entry)); }, this), goog.bind(function(err) { var msg = 'loading file ' + path + ' from ' + this.getFullPath(); @@ -329,21 +233,14 @@ goog.fs.DirectoryEntry.prototype.getFile = function(path, opt_behavior) { }; -/** - * Get a directory within this directory. - * - * @param {string} path The path to the directory, relative to this directory. - * @param {goog.fs.DirectoryEntry.Behavior=} opt_behavior The behavior for - * handling an existing directory, or the lack thereof. - * @return {!goog.async.Deferred} The deferred {@link goog.fs.DirectoryEntry}. - * If an error occurs, the errback is called a {@link goog.fs.Error}. - */ -goog.fs.DirectoryEntry.prototype.getDirectory = function(path, opt_behavior) { +/** @override */ +goog.fs.DirectoryEntryImpl.prototype.getDirectory = + function(path, opt_behavior) { var d = new goog.async.Deferred(); this.dir_.getDirectory( path, this.getOptions_(opt_behavior), goog.bind(function(entry) { - d.callback(new goog.fs.DirectoryEntry(this.fs_, entry)); + d.callback(new goog.fs.DirectoryEntryImpl(this.fs_, entry)); }, this), goog.bind(function(err) { var msg = 'loading directory ' + path + ' from ' + this.getFullPath(); @@ -353,18 +250,8 @@ goog.fs.DirectoryEntry.prototype.getDirectory = function(path, opt_behavior) { }; -/** - * Opens the directory for the specified path, creating the directory and any - * intermediate directories as necessary. - * - * @param {string} path The directory path to create. May be absolute or - * relative to the current directory. The parent directory ".." and current - * directory "." are supported. - * @return {!goog.async.Deferred} A deferred {@link goog.fs.DirectoryEntry} for - * the requested path. If an error occurs, the errback is called with a - * {@link goog.fs.Error}. - */ -goog.fs.DirectoryEntry.prototype.createPath = function(path) { +/** @override */ +goog.fs.DirectoryEntryImpl.prototype.createPath = function(path) { // If the path begins at the root, reinvoke createPath on the root directory. if (goog.string.startsWith(path, '/')) { var root = this.getFileSystem().getRoot(); @@ -399,14 +286,8 @@ goog.fs.DirectoryEntry.prototype.createPath = function(path) { }; -/** - * Gets a list of all entries in this directory. - * - * @return {!goog.async.Deferred} The deferred list of {@link goog.fs.Entry} - * results. If an error occurs, the errback is called with a - * {@link goog.fs.Error}. - */ -goog.fs.DirectoryEntry.prototype.listDirectory = function() { +/** @override */ +goog.fs.DirectoryEntryImpl.prototype.listDirectory = function() { var d = new goog.async.Deferred(); var reader = this.dir_.createReader(); var results = []; @@ -432,14 +313,8 @@ goog.fs.DirectoryEntry.prototype.listDirectory = function() { }; -/** - * Removes this directory and all its contents. - * - * @return {!goog.async.Deferred} A deferred object. If the removal succeeds, - * the callback is called with true. If an error occurs, the errback is - * called a {@link goog.fs.Error}. - */ -goog.fs.DirectoryEntry.prototype.removeRecursively = function() { +/** @override */ +goog.fs.DirectoryEntryImpl.prototype.removeRecursively = function() { var d = new goog.async.Deferred(); this.dir_.removeRecursively( goog.bind(d.callback, d, true /* result */), @@ -460,7 +335,7 @@ goog.fs.DirectoryEntry.prototype.removeRecursively = function() { * @return {Object.} The options object expected by the File API. * @private */ -goog.fs.DirectoryEntry.prototype.getOptions_ = function(opt_behavior) { +goog.fs.DirectoryEntryImpl.prototype.getOptions_ = function(opt_behavior) { if (opt_behavior == goog.fs.DirectoryEntry.Behavior.CREATE) { return {'create': true}; } else if (opt_behavior == goog.fs.DirectoryEntry.Behavior.CREATE_EXCLUSIVE) { @@ -476,14 +351,15 @@ goog.fs.DirectoryEntry.prototype.getOptions_ = function(opt_behavior) { * A file in a local filesystem. * * This should not be instantiated directly. Instead, it should be accessed via - * {@link goog.fs.DirectoryEntry#getDirectoryEntry}. + * {@link goog.fs.DirectoryEntry#getFile}. * * @param {!goog.fs.FileSystem} fs The wrapped filesystem. * @param {!FileEntry} file The underlying FileEntry object. * @constructor - * @extends {goog.fs.Entry} + * @extends {goog.fs.EntryImpl} + * @implements {goog.fs.FileEntry} */ -goog.fs.FileEntry = function(fs, file) { +goog.fs.FileEntryImpl = function(fs, file) { goog.base(this, fs, file); /** @@ -494,16 +370,11 @@ goog.fs.FileEntry = function(fs, file) { */ this.file_ = file; }; -goog.inherits(goog.fs.FileEntry, goog.fs.Entry); +goog.inherits(goog.fs.FileEntryImpl, goog.fs.EntryImpl); -/** - * Create a writer for writing to the file. - * - * @return {!goog.async.Deferred} The deferred {@link goog.fs.FileWriter}. If an - * error occurs, the errback is called with a {@link goog.fs.Error}. - */ -goog.fs.FileEntry.prototype.createWriter = function() { +/** @override */ +goog.fs.FileEntryImpl.prototype.createWriter = function() { var d = new goog.async.Deferred(); this.file_.createWriter( function(w) { d.callback(new goog.fs.FileWriter(w)); }, @@ -515,13 +386,8 @@ goog.fs.FileEntry.prototype.createWriter = function() { }; -/** - * Get the file contents as a File blob. - * - * @return {!goog.async.Deferred} The deferred File. If an error occurs, the - * errback is called with a {@link goog.fs.Error}. - */ -goog.fs.FileEntry.prototype.file = function() { +/** @override */ +goog.fs.FileEntryImpl.prototype.file = function() { var d = new goog.async.Deferred(); this.file_.file( function(f) { d.callback(f); }, diff --git a/master/closure-library/closure/goog/fs/error.js b/edit/closure-library/closure/goog/fs/error.js similarity index 100% rename from master/closure-library/closure/goog/fs/error.js rename to edit/closure-library/closure/goog/fs/error.js diff --git a/master/closure-library/closure/goog/fs/filereader.js b/edit/closure-library/closure/goog/fs/filereader.js similarity index 100% rename from master/closure-library/closure/goog/fs/filereader.js rename to edit/closure-library/closure/goog/fs/filereader.js diff --git a/master/closure-library/closure/goog/fs/filesaver.js b/edit/closure-library/closure/goog/fs/filesaver.js similarity index 100% rename from master/closure-library/closure/goog/fs/filesaver.js rename to edit/closure-library/closure/goog/fs/filesaver.js diff --git a/master/closure-library/closure/goog/fs/filesystem.js b/edit/closure-library/closure/goog/fs/filesystem.js similarity index 60% rename from master/closure-library/closure/goog/fs/filesystem.js rename to edit/closure-library/closure/goog/fs/filesystem.js index 303600c81a..b120b92dd5 100644 --- a/master/closure-library/closure/goog/fs/filesystem.js +++ b/edit/closure-library/closure/goog/fs/filesystem.js @@ -19,41 +19,23 @@ goog.provide('goog.fs.FileSystem'); -goog.require('goog.fs.DirectoryEntry'); - /** * A local filesystem. * - * This shouldn't be instantiated directly. Instead, it should be accessed via - * {@link goog.fs.getTemporary} or {@link goog.fs.getPersistent}. - * - * @param {!FileSystem} fs The underlying FileSystem object. - * @constructor + * @interface */ -goog.fs.FileSystem = function(fs) { - /** - * The underlying FileSystem object. - * - * @type {!FileSystem} - * @private - */ - this.fs_ = fs; -}; +goog.fs.FileSystem = function() {}; /** * @return {string} The name of the filesystem. */ -goog.fs.FileSystem.prototype.getName = function() { - return this.fs_.name; -}; +goog.fs.FileSystem.prototype.getName = function() {}; /** * @return {!goog.fs.DirectoryEntry} The root directory of the filesystem. */ -goog.fs.FileSystem.prototype.getRoot = function() { - return new goog.fs.DirectoryEntry(this, this.fs_.root); -}; +goog.fs.FileSystem.prototype.getRoot = function() {}; diff --git a/edit/closure-library/closure/goog/fs/filesystemimpl.js b/edit/closure-library/closure/goog/fs/filesystemimpl.js new file mode 100644 index 0000000000..3f53c825dc --- /dev/null +++ b/edit/closure-library/closure/goog/fs/filesystemimpl.js @@ -0,0 +1,64 @@ +// Copyright 2013 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview Concrete implementation of the goog.fs.FileSystem interface + * using an HTML FileSystem object. + */ +goog.provide('goog.fs.FileSystemImpl'); + +goog.require('goog.fs.DirectoryEntryImpl'); +goog.require('goog.fs.FileSystem'); + + + +/** + * A local filesystem. + * + * This shouldn't be instantiated directly. Instead, it should be accessed via + * {@link goog.fs.getTemporary} or {@link goog.fs.getPersistent}. + * + * @param {!FileSystem} fs The underlying FileSystem object. + * @constructor + * @implements {goog.fs.FileSystem} + */ +goog.fs.FileSystemImpl = function(fs) { + /** + * The underlying FileSystem object. + * + * @type {!FileSystem} + * @private + */ + this.fs_ = fs; +}; + + +/** @override */ +goog.fs.FileSystemImpl.prototype.getName = function() { + return this.fs_.name; +}; + + +/** @override */ +goog.fs.FileSystemImpl.prototype.getRoot = function() { + return new goog.fs.DirectoryEntryImpl(this, this.fs_.root); +}; + + +/** + * @return {!FileSystem} The underlying FileSystem object. + */ +goog.fs.FileSystemImpl.prototype.getBrowserFileSystem = function() { + return this.fs_; +}; diff --git a/master/closure-library/closure/goog/fs/filewriter.js b/edit/closure-library/closure/goog/fs/filewriter.js similarity index 100% rename from master/closure-library/closure/goog/fs/filewriter.js rename to edit/closure-library/closure/goog/fs/filewriter.js diff --git a/master/closure-library/closure/goog/fs/fs.js b/edit/closure-library/closure/goog/fs/fs.js similarity index 93% rename from master/closure-library/closure/goog/fs/fs.js rename to edit/closure-library/closure/goog/fs/fs.js index ceb324ba0d..7ea8b00acd 100644 --- a/master/closure-library/closure/goog/fs/fs.js +++ b/edit/closure-library/closure/goog/fs/fs.js @@ -25,11 +25,11 @@ goog.provide('goog.fs'); +goog.require('goog.array'); goog.require('goog.async.Deferred'); -goog.require('goog.events'); goog.require('goog.fs.Error'); goog.require('goog.fs.FileReader'); -goog.require('goog.fs.FileSystem'); +goog.require('goog.fs.FileSystemImpl'); goog.require('goog.userAgent'); @@ -52,7 +52,7 @@ goog.fs.get_ = function(type, size) { var d = new goog.async.Deferred(); requestFileSystem(type, size, function(fs) { - d.callback(new goog.fs.FileSystem(fs)); + d.callback(new goog.fs.FileSystemImpl(fs)); }, function(err) { d.errback(new goog.fs.Error(err.code, 'requesting filesystem')); }); @@ -168,11 +168,16 @@ goog.fs.getUrlObject_ = function() { */ goog.fs.getBlob = function(var_args) { var BlobBuilder = goog.global.BlobBuilder || goog.global.WebKitBlobBuilder; - var bb = new BlobBuilder(); - for (var i = 0; i < arguments.length; i++) { - bb.append(arguments[i]); + + if (goog.isDef(BlobBuilder)) { + var bb = new BlobBuilder(); + for (var i = 0; i < arguments.length; i++) { + bb.append(arguments[i]); + } + return bb.getBlob(); + } else { + return new Blob(goog.array.toArray(arguments)); } - return bb.getBlob(); }; @@ -221,8 +226,8 @@ goog.fs.sliceBlob = function(blob, start, opt_end) { // Negative indices are not accepted, only range end is clamped and // range end specification is obligatory. // See http://www.w3.org/TR/2009/WD-FileAPI-20091117/ - if ((goog.userAgent.GECKO && !goog.userAgent.isVersion('13.0')) || - (goog.userAgent.WEBKIT && !goog.userAgent.isVersion('537.1'))) { + if ((goog.userAgent.GECKO && !goog.userAgent.isVersionOrHigher('13.0')) || + (goog.userAgent.WEBKIT && !goog.userAgent.isVersionOrHigher('537.1'))) { if (start < 0) { start += blob.size; } diff --git a/master/closure-library/closure/goog/fs/progressevent.js b/edit/closure-library/closure/goog/fs/progressevent.js similarity index 100% rename from master/closure-library/closure/goog/fs/progressevent.js rename to edit/closure-library/closure/goog/fs/progressevent.js diff --git a/master/closure-library/closure/goog/functions/functions.js b/edit/closure-library/closure/goog/functions/functions.js similarity index 86% rename from master/closure-library/closure/goog/functions/functions.js rename to edit/closure-library/closure/goog/functions/functions.js index 280e31ca80..8e85889966 100644 --- a/master/closure-library/closure/goog/functions/functions.js +++ b/edit/closure-library/closure/goog/functions/functions.js @@ -25,8 +25,9 @@ goog.provide('goog.functions'); /** * Creates a function that always returns the same value. - * @param {*} retValue The value to return. - * @return {!Function} The new function. + * @param {T} retValue The value to return. + * @return {function():T} The new function. + * @template T */ goog.functions.constant = function(retValue) { return function() { @@ -59,10 +60,10 @@ goog.functions.NULL = goog.functions.constant(null); /** * A simple function that returns the first argument of whatever is passed * into it. - * @param {*=} opt_returnValue The single value that will be returned. + * @param {T=} opt_returnValue The single value that will be returned. * @param {...*} var_args Optional trailing arguments. These are ignored. - * @return {?} The first argument passed in, or undefined if nothing was passed. - * We can't know the type -- just pass it along without type. + * @return {T} The first argument passed in, or undefined if nothing was passed. + * @template T */ goog.functions.identity = function(opt_returnValue, var_args) { return opt_returnValue; @@ -81,6 +82,18 @@ goog.functions.error = function(message) { }; +/** + * Creates a function that throws the given object. + * @param {*} err An object to be thrown. + * @return {!Function} The error-throwing function. + */ +goog.functions.fail = function(err) { + return function() { + throw err; + } +}; + + /** * Given a function, create a function that keeps opt_numArgs arguments and * silently discards all additional arguments. @@ -101,8 +114,9 @@ goog.functions.lock = function(f, opt_numArgs) { * Given a function, create a new function that swallows its return value * and replaces it with a new one. * @param {Function} f A function. - * @param {*} retValue A new return value. - * @return {!Function} A new function. + * @param {T} retValue A new return value. + * @return {function(...[?]):T} A new function. + * @template T */ goog.functions.withReturnValue = function(f, retValue) { return goog.functions.sequence(f, goog.functions.constant(retValue)); @@ -112,10 +126,12 @@ goog.functions.withReturnValue = function(f, retValue) { /** * Creates the composition of the functions passed in. * For example, (goog.functions.compose(f, g))(a) is equivalent to f(g(a)). + * @param {function(...[?]):T} fn The final function. * @param {...Function} var_args A list of functions. - * @return {!Function} The composition of all inputs. + * @return {function(...[?]):T} The composition of all inputs. + * @template T */ -goog.functions.compose = function(var_args) { +goog.functions.compose = function(fn, var_args) { var functions = arguments; var length = functions.length; return function() { @@ -158,7 +174,8 @@ goog.functions.sequence = function(var_args) { * short-circuited as soon as a function returns false. * For example, (goog.functions.and(f, g))(x) is equivalent to f(x) && g(x). * @param {...Function} var_args A list of functions. - * @return {!Function} A function that ANDs its component functions. + * @return {function(...[?]):boolean} A function that ANDs its component + * functions. */ goog.functions.and = function(var_args) { var functions = arguments; @@ -180,7 +197,8 @@ goog.functions.and = function(var_args) { * short-circuited as soon as a function returns true. * For example, (goog.functions.or(f, g))(x) is equivalent to f(x) || g(x). * @param {...Function} var_args A list of functions. - * @return {!Function} A function that ORs its component functions. + * @return {function(...[?]):boolean} A function that ORs its component + * functions. */ goog.functions.or = function(var_args) { var functions = arguments; @@ -200,7 +218,8 @@ goog.functions.or = function(var_args) { * Creates a function that returns the Boolean opposite of a provided function. * For example, (goog.functions.not(f))(x) is equivalent to !f(x). * @param {!Function} f The original function. - * @return {!Function} A function that delegates to f and returns opposite. + * @return {function(...[?]):boolean} A function that delegates to f and returns + * opposite. */ goog.functions.not = function(f) { return function() { diff --git a/master/closure-library/closure/goog/fx/abstractdragdrop.js b/edit/closure-library/closure/goog/fx/abstractdragdrop.js similarity index 97% rename from master/closure-library/closure/goog/fx/abstractdragdrop.js rename to edit/closure-library/closure/goog/fx/abstractdragdrop.js index e15465e471..288d9d08d9 100644 --- a/master/closure-library/closure/goog/fx/abstractdragdrop.js +++ b/edit/closure-library/closure/goog/fx/abstractdragdrop.js @@ -30,6 +30,7 @@ goog.require('goog.dom'); goog.require('goog.dom.classes'); goog.require('goog.events'); goog.require('goog.events.Event'); +goog.require('goog.events.EventHandler'); goog.require('goog.events.EventTarget'); goog.require('goog.events.EventType'); goog.require('goog.fx.Dragger'); @@ -1251,6 +1252,14 @@ goog.fx.DragDropItem = function(element, opt_data) { */ this.parent_ = null; + /** + * Event handler for listeners on events that can initiate a drag. + * @type {!goog.events.EventHandler} + * @private + */ + this.eventHandler_ = new goog.events.EventHandler(this); + this.registerDisposable(this.eventHandler_); + if (!this.element) { throw Error('Invalid argument'); } @@ -1347,12 +1356,18 @@ goog.fx.DragDropItem.prototype.setParent = function(parent) { * @private */ goog.fx.DragDropItem.prototype.maybeStartDrag_ = function(event, element) { - goog.events.listen(element, goog.events.EventType.MOUSEMOVE, - this.mouseMove_, false, this); - goog.events.listen(element, goog.events.EventType.MOUSEOUT, - this.mouseMove_, false, this); - goog.events.listen(element, goog.events.EventType.MOUSEUP, - this.mouseUp_, false, this); + var eventType = goog.events.EventType; + this.eventHandler_. + listen(element, eventType.MOUSEMOVE, this.mouseMove_, false). + listen(element, eventType.MOUSEOUT, this.mouseMove_, false); + + // Capture the MOUSEUP on the document to ensure that we cancel the start + // drag handlers even if the mouse up occurs on some other element. This can + // happen for instance when the mouse down changes the geometry of the element + // clicked on (e.g. through changes in activation styling) such that the mouse + // up occurs outside the original element. + var doc = goog.dom.getOwnerDocument(element); + this.eventHandler_.listen(doc, eventType.MOUSEUP, this.mouseUp_, true); this.currentDragElement_ = element; @@ -1383,13 +1398,7 @@ goog.fx.DragDropItem.prototype.mouseMove_ = function(event) { var mouseOutOnDragElement = event.type == goog.events.EventType.MOUSEOUT && event.target == currentDragElement; if (distanceAboveThreshold || mouseOutOnDragElement) { - goog.events.unlisten(currentDragElement, goog.events.EventType.MOUSEMOVE, - this.mouseMove_, false, this); - goog.events.unlisten(currentDragElement, goog.events.EventType.MOUSEOUT, - this.mouseMove_, false, this); - goog.events.unlisten(currentDragElement, goog.events.EventType.MOUSEUP, - this.mouseUp_, false, this); - + this.eventHandler_.removeAll(); this.parent_.startDrag(event, this); } }; @@ -1403,13 +1412,7 @@ goog.fx.DragDropItem.prototype.mouseMove_ = function(event) { * @private */ goog.fx.DragDropItem.prototype.mouseUp_ = function(event) { - var currentDragElement = this.currentDragElement_; - goog.events.unlisten(currentDragElement, goog.events.EventType.MOUSEMOVE, - this.mouseMove_, false, this); - goog.events.unlisten(currentDragElement, goog.events.EventType.MOUSEOUT, - this.mouseMove_, false, this); - goog.events.unlisten(currentDragElement, goog.events.EventType.MOUSEUP, - this.mouseUp_, false, this); + this.eventHandler_.removeAll(); delete this.startPosition_; this.currentDragElement_ = null; }; diff --git a/master/closure-library/closure/goog/fx/anim/anim.js b/edit/closure-library/closure/goog/fx/anim/anim.js similarity index 98% rename from master/closure-library/closure/goog/fx/anim/anim.js rename to edit/closure-library/closure/goog/fx/anim/anim.js index d0444e7c5d..efb0ad9451 100644 --- a/master/closure-library/closure/goog/fx/anim/anim.js +++ b/edit/closure-library/closure/goog/fx/anim/anim.js @@ -24,6 +24,7 @@ goog.require('goog.async.Delay'); goog.require('goog.object'); + /** * An interface for programatically animated objects. I.e. rendered in * javascript frame by frame. @@ -166,8 +167,8 @@ goog.fx.anim.requestAnimationFrame_ = function() { // time in ms, as returned from goog.now(). goog.fx.anim.animationDelay_ = new goog.async.AnimationDelay( function(now) { - goog.fx.anim.cycleAnimations_(now); - }, goog.fx.anim.animationWindow_); + goog.fx.anim.cycleAnimations_(now); + }, goog.fx.anim.animationWindow_); } else { goog.fx.anim.animationDelay_ = new goog.async.Delay(function() { goog.fx.anim.cycleAnimations_(goog.now()); diff --git a/master/closure-library/closure/goog/fx/animation.js b/edit/closure-library/closure/goog/fx/animation.js similarity index 99% rename from master/closure-library/closure/goog/fx/animation.js rename to edit/closure-library/closure/goog/fx/animation.js index 852317236b..a8878375c1 100644 --- a/master/closure-library/closure/goog/fx/animation.js +++ b/edit/closure-library/closure/goog/fx/animation.js @@ -371,7 +371,7 @@ goog.fx.Animation.prototype.destroy = function() { }; -/** @inheritDoc */ +/** @override */ goog.fx.Animation.prototype.onAnimationFrame = function(now) { this.cycle(now); }; diff --git a/master/closure-library/closure/goog/fx/animationqueue.js b/edit/closure-library/closure/goog/fx/animationqueue.js similarity index 97% rename from master/closure-library/closure/goog/fx/animationqueue.js rename to edit/closure-library/closure/goog/fx/animationqueue.js index d18a908056..7d3c3dad78 100644 --- a/master/closure-library/closure/goog/fx/animationqueue.js +++ b/edit/closure-library/closure/goog/fx/animationqueue.js @@ -126,7 +126,7 @@ goog.fx.AnimationParallelQueue = function() { goog.inherits(goog.fx.AnimationParallelQueue, goog.fx.AnimationQueue); -/** @inheritDoc */ +/** @override */ goog.fx.AnimationParallelQueue.prototype.play = function(opt_restart) { if (this.queue.length == 0) { return false; @@ -159,7 +159,7 @@ goog.fx.AnimationParallelQueue.prototype.play = function(opt_restart) { }; -/** @inheritDoc */ +/** @override */ goog.fx.AnimationParallelQueue.prototype.pause = function() { if (this.isPlaying()) { goog.array.forEach(this.queue, function(anim) { @@ -174,7 +174,7 @@ goog.fx.AnimationParallelQueue.prototype.pause = function() { }; -/** @inheritDoc */ +/** @override */ goog.fx.AnimationParallelQueue.prototype.stop = function(opt_gotoEnd) { goog.array.forEach(this.queue, function(anim) { if (!anim.isStopped()) { @@ -190,7 +190,7 @@ goog.fx.AnimationParallelQueue.prototype.stop = function(opt_gotoEnd) { }; -/** @inheritDoc */ +/** @override */ goog.fx.AnimationParallelQueue.prototype.onAnimationFinish = function(e) { this.finishedCounter_++; if (this.finishedCounter_ == this.queue.length) { @@ -223,7 +223,7 @@ goog.fx.AnimationSerialQueue = function() { goog.inherits(goog.fx.AnimationSerialQueue, goog.fx.AnimationQueue); -/** @inheritDoc */ +/** @override */ goog.fx.AnimationSerialQueue.prototype.play = function(opt_restart) { if (this.queue.length == 0) { return false; @@ -256,7 +256,7 @@ goog.fx.AnimationSerialQueue.prototype.play = function(opt_restart) { }; -/** @inheritDoc */ +/** @override */ goog.fx.AnimationSerialQueue.prototype.pause = function() { if (this.isPlaying()) { this.queue[this.current_].pause(); @@ -266,7 +266,7 @@ goog.fx.AnimationSerialQueue.prototype.pause = function() { }; -/** @inheritDoc */ +/** @override */ goog.fx.AnimationSerialQueue.prototype.stop = function(opt_gotoEnd) { this.setStateStopped(); this.endTime = goog.now(); @@ -290,7 +290,7 @@ goog.fx.AnimationSerialQueue.prototype.stop = function(opt_gotoEnd) { }; -/** @inheritDoc */ +/** @override */ goog.fx.AnimationSerialQueue.prototype.onAnimationFinish = function(e) { if (this.isPlaying()) { this.current_++; diff --git a/master/closure-library/closure/goog/fx/css3/fx.js b/edit/closure-library/closure/goog/fx/css3/fx.js similarity index 100% rename from master/closure-library/closure/goog/fx/css3/fx.js rename to edit/closure-library/closure/goog/fx/css3/fx.js diff --git a/master/closure-library/closure/goog/fx/css3/transition.js b/edit/closure-library/closure/goog/fx/css3/transition.js similarity index 100% rename from master/closure-library/closure/goog/fx/css3/transition.js rename to edit/closure-library/closure/goog/fx/css3/transition.js diff --git a/master/closure-library/closure/goog/fx/cssspriteanimation.js b/edit/closure-library/closure/goog/fx/cssspriteanimation.js similarity index 100% rename from master/closure-library/closure/goog/fx/cssspriteanimation.js rename to edit/closure-library/closure/goog/fx/cssspriteanimation.js diff --git a/master/closure-library/closure/goog/fx/dom.js b/edit/closure-library/closure/goog/fx/dom.js similarity index 99% rename from master/closure-library/closure/goog/fx/dom.js rename to edit/closure-library/closure/goog/fx/dom.js index 0d32cf1f4a..5eee5b3158 100644 --- a/master/closure-library/closure/goog/fx/dom.js +++ b/edit/closure-library/closure/goog/fx/dom.js @@ -206,14 +206,14 @@ goog.fx.dom.Swipe = function(element, start, end, time, opt_acc) { } goog.fx.dom.PredefinedEffect.apply(this, arguments); - /* + /** * Maximum width for element. * @type {number} * @private */ this.maxWidth_ = Math.max(this.endPoint[0], this.startPoint[0]); - /* + /** * Maximum height for element. * @type {number} * @private diff --git a/master/closure-library/closure/goog/fx/dragdrop.js b/edit/closure-library/closure/goog/fx/dragdrop.js similarity index 100% rename from master/closure-library/closure/goog/fx/dragdrop.js rename to edit/closure-library/closure/goog/fx/dragdrop.js diff --git a/master/closure-library/closure/goog/fx/dragdropgroup.js b/edit/closure-library/closure/goog/fx/dragdropgroup.js similarity index 100% rename from master/closure-library/closure/goog/fx/dragdropgroup.js rename to edit/closure-library/closure/goog/fx/dragdropgroup.js diff --git a/master/closure-library/closure/goog/fx/dragger.js b/edit/closure-library/closure/goog/fx/dragger.js similarity index 97% rename from master/closure-library/closure/goog/fx/dragger.js rename to edit/closure-library/closure/goog/fx/dragger.js index 2f85a48a67..e2f13f7800 100644 --- a/master/closure-library/closure/goog/fx/dragger.js +++ b/edit/closure-library/closure/goog/fx/dragger.js @@ -28,7 +28,6 @@ goog.provide('goog.fx.Dragger.EventType'); goog.require('goog.dom'); goog.require('goog.events'); -goog.require('goog.events.BrowserEvent.MouseButton'); goog.require('goog.events.Event'); goog.require('goog.events.EventHandler'); goog.require('goog.events.EventTarget'); @@ -61,6 +60,7 @@ goog.fx.Dragger = function(target, opt_handle, opt_limits) { this.document_ = goog.dom.getOwnerDocument(target); this.eventHandler_ = new goog.events.EventHandler(this); + this.registerDisposable(this.eventHandler_); // Add listener. Do not use the event handler here since the event handler is // used for listeners added and removed during the drag operation. @@ -80,7 +80,7 @@ goog.fx.Dragger.HAS_SET_CAPTURE_ = // IE and Gecko after 1.9.3 has setCapture // WebKit does not yet: https://bugs.webkit.org/show_bug.cgi?id=27330 goog.userAgent.IE || - goog.userAgent.GECKO && goog.userAgent.isVersion('1.9.3'); + goog.userAgent.GECKO && goog.userAgent.isVersionOrHigher('1.9.3'); /** @@ -236,14 +236,6 @@ goog.fx.Dragger.prototype.mouseDownTime_ = 0; goog.fx.Dragger.prototype.document_; -/** - * Event handler used to simplify managing events. - * @type {goog.events.EventHandler} - * @private - */ -goog.fx.Dragger.prototype.eventHandler_; - - /** * The SCROLL event target used to make drag element follow scrolling. * @type {EventTarget} @@ -376,7 +368,6 @@ goog.fx.Dragger.prototype.disposeInternal = function() { this.target = null; this.handle = null; - this.eventHandler_ = null; }; @@ -532,13 +523,6 @@ goog.fx.Dragger.prototype.endDrag = function(e, opt_dragCanceled) { } else { this.dispatchEvent(goog.fx.Dragger.EventType.EARLY_CANCEL); } - - // Call preventDefault to prevent mouseup from being raised if this is a - // touchend event. - if (e.type == goog.events.EventType.TOUCHEND || - e.type == goog.events.EventType.TOUCHCANCEL) { - e.preventDefault(); - } }; diff --git a/master/closure-library/closure/goog/fx/draglistgroup.js b/edit/closure-library/closure/goog/fx/draglistgroup.js similarity index 95% rename from master/closure-library/closure/goog/fx/draglistgroup.js rename to edit/closure-library/closure/goog/fx/draglistgroup.js index 6f36719afc..2216a82c5e 100644 --- a/master/closure-library/closure/goog/fx/draglistgroup.js +++ b/edit/closure-library/closure/goog/fx/draglistgroup.js @@ -410,33 +410,7 @@ goog.fx.DragListGroup.prototype.init = function() { var dragItems = goog.dom.getChildren(dragList); for (var j = 0, numItems = dragItems.length; j < numItems; ++j) { - var dragItem = dragItems[j]; - var dragItemHandle = this.getHandleForDragItem_(dragItem); - - var uid = goog.getUid(dragItemHandle); - this.dragItemForHandle_[uid] = dragItem; - - if (this.dragItemHoverClasses_) { - this.eventHandler_.listen( - dragItem, goog.events.EventType.MOUSEOVER, - this.handleDragItemMouseover_); - this.eventHandler_.listen( - dragItem, goog.events.EventType.MOUSEOUT, - this.handleDragItemMouseout_); - } - if (this.dragItemHandleHoverClasses_) { - this.eventHandler_.listen( - dragItemHandle, goog.events.EventType.MOUSEOVER, - this.handleDragItemHandleMouseover_); - this.eventHandler_.listen( - dragItemHandle, goog.events.EventType.MOUSEOUT, - this.handleDragItemHandleMouseout_); - } - - this.dragItems_.push(dragItem); - this.eventHandler_.listen(dragItemHandle, - [goog.events.EventType.MOUSEDOWN, goog.events.EventType.TOUCHSTART], - this.handlePotentialDragStart_); + this.listenForDragEvents(dragItems[j]); } } @@ -444,6 +418,28 @@ goog.fx.DragListGroup.prototype.init = function() { }; +/** + * Adds a single item to the given drag list and sets up the drag listeners for + * it. + * If opt_index is specified the item is inserted at this index, otherwise the + * item is added as the last child of the list. + * + * @param {!Element} list The drag list where to add item to. + * @param {!Element} item The new element to add. + * @param {number=} opt_index Index where to insert the item in the list. If not + * specified item is inserted as the last child of list. + */ +goog.fx.DragListGroup.prototype.addItemToDragList = function(list, item, + opt_index) { + if (goog.isDef(opt_index)) { + goog.dom.insertChildAt(list, item, opt_index); + } else { + goog.dom.appendChild(list, item); + } + this.listenForDragEvents(item); +}; + + /** @override */ goog.fx.DragListGroup.prototype.disposeInternal = function() { this.eventHandler_.dispose(); @@ -491,6 +487,43 @@ goog.fx.DragListGroup.prototype.recacheListAndItemBounds_ = function( }; +/** + * Listens for drag events on the given drag item. This method is currently used + * to initialize drag items. + * + * @param {Element} dragItem the element to initialize. This element has to be + * in one of the drag lists. + * @protected + */ +goog.fx.DragListGroup.prototype.listenForDragEvents = function(dragItem) { + var dragItemHandle = this.getHandleForDragItem_(dragItem); + var uid = goog.getUid(dragItemHandle); + this.dragItemForHandle_[uid] = dragItem; + + if (this.dragItemHoverClasses_) { + this.eventHandler_.listen( + dragItem, goog.events.EventType.MOUSEOVER, + this.handleDragItemMouseover_); + this.eventHandler_.listen( + dragItem, goog.events.EventType.MOUSEOUT, + this.handleDragItemMouseout_); + } + if (this.dragItemHandleHoverClasses_) { + this.eventHandler_.listen( + dragItemHandle, goog.events.EventType.MOUSEOVER, + this.handleDragItemHandleMouseover_); + this.eventHandler_.listen( + dragItemHandle, goog.events.EventType.MOUSEOUT, + this.handleDragItemHandleMouseout_); + } + + this.dragItems_.push(dragItem); + this.eventHandler_.listen(dragItemHandle, + [goog.events.EventType.MOUSEDOWN, goog.events.EventType.TOUCHSTART], + this.handlePotentialDragStart_); +}; + + /** * Handles mouse and touch events which may start a drag action. * @param {!goog.events.BrowserEvent} e MOUSEDOWN or TOUCHSTART event. diff --git a/master/closure-library/closure/goog/fx/dragscrollsupport.js b/edit/closure-library/closure/goog/fx/dragscrollsupport.js similarity index 100% rename from master/closure-library/closure/goog/fx/dragscrollsupport.js rename to edit/closure-library/closure/goog/fx/dragscrollsupport.js diff --git a/master/closure-library/closure/goog/fx/easing.js b/edit/closure-library/closure/goog/fx/easing.js similarity index 100% rename from master/closure-library/closure/goog/fx/easing.js rename to edit/closure-library/closure/goog/fx/easing.js diff --git a/master/closure-library/closure/goog/fx/fx.js b/edit/closure-library/closure/goog/fx/fx.js similarity index 100% rename from master/closure-library/closure/goog/fx/fx.js rename to edit/closure-library/closure/goog/fx/fx.js diff --git a/master/closure-library/closure/goog/fx/transition.js b/edit/closure-library/closure/goog/fx/transition.js similarity index 100% rename from master/closure-library/closure/goog/fx/transition.js rename to edit/closure-library/closure/goog/fx/transition.js diff --git a/master/closure-library/closure/goog/fx/transitionbase.js b/edit/closure-library/closure/goog/fx/transitionbase.js similarity index 100% rename from master/closure-library/closure/goog/fx/transitionbase.js rename to edit/closure-library/closure/goog/fx/transitionbase.js diff --git a/master/closure-library/closure/goog/gears/basestore.js b/edit/closure-library/closure/goog/gears/basestore.js similarity index 100% rename from master/closure-library/closure/goog/gears/basestore.js rename to edit/closure-library/closure/goog/gears/basestore.js diff --git a/master/closure-library/closure/goog/gears/database.js b/edit/closure-library/closure/goog/gears/database.js similarity index 98% rename from master/closure-library/closure/goog/gears/database.js rename to edit/closure-library/closure/goog/gears/database.js index 91ac75e0e3..04023f07c4 100644 --- a/master/closure-library/closure/goog/gears/database.js +++ b/edit/closure-library/closure/goog/gears/database.js @@ -22,11 +22,11 @@ goog.provide('goog.gears.Database.TransactionEvent'); goog.require('goog.array'); goog.require('goog.debug'); -goog.require('goog.debug.Logger'); goog.require('goog.events.Event'); goog.require('goog.events.EventTarget'); goog.require('goog.gears'); goog.require('goog.json'); +goog.require('goog.log'); @@ -58,7 +58,7 @@ goog.gears.Database = function(userId, appName) { var dbId = userId + '-' + appName; var safeDbId = goog.gears.makeSafeFileName(dbId); if (dbId != safeDbId) { - this.logger_.info('database name ' + dbId + '->' + safeDbId); + goog.log.info(this.logger_, 'database name ' + dbId + '->' + safeDbId); } this.safeDbId_ = safeDbId; this.database_.open(safeDbId); @@ -98,11 +98,11 @@ goog.inherits(goog.gears.Database.TransactionEvent, goog.events.Event); /** * Logger object - * @type {goog.debug.Logger} + * @type {goog.log.Logger} * @private */ goog.gears.Database.prototype.logger_ = - goog.debug.Logger.getLogger('goog.gears.Database'); + goog.log.getLogger('goog.gears.Database'); /** @@ -314,7 +314,7 @@ goog.gears.Database.resultSetToArray = function(rs) { * @return {GearsResultSet} The results. */ goog.gears.Database.prototype.execute = function(sql, var_args) { - this.logger_.finer('Executing SQL: ' + sql); + goog.log.log(this.logger_, goog.log.Level.FINER, 'Executing SQL: ' + sql); // TODO(user): Remove when Gears adds more rubust type handling. // Safety measure since Gears behaves very badly if it gets an unexpected @@ -332,7 +332,7 @@ goog.gears.Database.prototype.execute = function(sql, var_args) { } else { args = goog.array.slice(arguments, 1); } - this.logger_.finest('SQL arguments: ' + args); + goog.log.log(this.logger_, goog.log.Level.FINEST, 'SQL arguments: ' + args); // TODO(user): Type safety checking for args? return this.database_.execute(sql, args); @@ -367,7 +367,8 @@ goog.gears.Database.prototype.executeVarArgs_ = function(sql, params, if (goog.isArray(params[startIndex])) { return this.execute(sql, params[startIndex]); } - var args = Array.prototype.slice.call(params, startIndex); + var args = Array.prototype.slice.call( + /** @type {{length:number}} */ (params), startIndex); return this.execute(sql, args); } }; @@ -838,7 +839,7 @@ goog.gears.Database.prototype.isInTransaction = function() { */ goog.gears.Database.prototype.ensureNoTransaction = function(opt_logMsgPrefix) { if (this.isInTransaction()) { - this.logger_.warning((opt_logMsgPrefix || 'ensureNoTransaction') + + goog.log.warning(this.logger_, (opt_logMsgPrefix || 'ensureNoTransaction') + ' - rolling back unexpected transaction'); do { this.rollback(); diff --git a/master/closure-library/closure/goog/gears/gears.js b/edit/closure-library/closure/goog/gears/gears.js similarity index 100% rename from master/closure-library/closure/goog/gears/gears.js rename to edit/closure-library/closure/goog/gears/gears.js diff --git a/master/closure-library/closure/goog/gears/httprequest.js b/edit/closure-library/closure/goog/gears/httprequest.js similarity index 100% rename from master/closure-library/closure/goog/gears/httprequest.js rename to edit/closure-library/closure/goog/gears/httprequest.js diff --git a/master/closure-library/closure/goog/gears/loggerclient.js b/edit/closure-library/closure/goog/gears/loggerclient.js similarity index 100% rename from master/closure-library/closure/goog/gears/loggerclient.js rename to edit/closure-library/closure/goog/gears/loggerclient.js diff --git a/master/closure-library/closure/goog/gears/loggerserver.js b/edit/closure-library/closure/goog/gears/loggerserver.js similarity index 95% rename from master/closure-library/closure/goog/gears/loggerserver.js rename to edit/closure-library/closure/goog/gears/loggerserver.js index 56469f785e..698ea88253 100644 --- a/master/closure-library/closure/goog/gears/loggerserver.js +++ b/edit/closure-library/closure/goog/gears/loggerserver.js @@ -22,9 +22,9 @@ goog.provide('goog.gears.LoggerServer'); goog.require('goog.Disposable'); -goog.require('goog.debug.Logger'); -goog.require('goog.debug.Logger.Level'); goog.require('goog.gears.Worker.EventType'); +goog.require('goog.log'); +goog.require('goog.log.Level'); @@ -123,11 +123,11 @@ goog.gears.LoggerServer.prototype.onCommand_ = function(e) { i++; } var levelValue = params[i++]; - var level = goog.debug.Logger.Level.getPredefinedLevelByValue(levelValue); + var level = goog.log.Level.getPredefinedLevelByValue(levelValue); if (level) { var msg = (this.useMessagePrefix_ ? this.msgPrefix_ : '') + params[i++]; var exception = params[i++]; - var logger = goog.debug.Logger.getLogger(name); + var logger = goog.log.getLogger(name); var logRecord = logger.getLogRecord(level, msg, exception); if (this.workerName_) { logRecord.workerName = this.workerName_; diff --git a/master/closure-library/closure/goog/gears/logstore.js b/edit/closure-library/closure/goog/gears/logstore.js similarity index 91% rename from master/closure-library/closure/goog/gears/logstore.js rename to edit/closure-library/closure/goog/gears/logstore.js index 48f8e8f6db..88bfd46684 100644 --- a/master/closure-library/closure/goog/gears/logstore.js +++ b/edit/closure-library/closure/goog/gears/logstore.js @@ -21,12 +21,12 @@ goog.provide('goog.gears.LogStore.Query'); goog.require('goog.async.Delay'); goog.require('goog.debug.LogManager'); -goog.require('goog.debug.LogRecord'); -goog.require('goog.debug.Logger'); -goog.require('goog.debug.Logger.Level'); goog.require('goog.gears.BaseStore'); goog.require('goog.gears.BaseStore.SchemaType'); goog.require('goog.json'); +goog.require('goog.log'); +goog.require('goog.log.Level'); +goog.require('goog.log.LogRecord'); @@ -57,7 +57,7 @@ goog.gears.LogStore = function(database, opt_tableName) { 'id INTEGER PRIMARY KEY AUTOINCREMENT', // Timestamp. 'millis BIGINT', - // #goog.debug.Logger.Level value. + // #goog.log.Level value. 'level INTEGER', // Message. 'msg TEXT', @@ -87,7 +87,7 @@ goog.gears.LogStore = function(database, opt_tableName) { /** * Buffered log records not yet flushed to DB. - * @type {Array.} + * @type {Array.} * @private */ this.records_ = []; @@ -140,11 +140,11 @@ goog.gears.LogStore.prototype.isFlushing_ = false; /** * Logger. - * @type {goog.debug.Logger} + * @type {goog.log.Logger} * @private */ goog.gears.LogStore.prototype.logger_ = - goog.debug.Logger.getLogger('goog.gears.LogStore'); + goog.log.getLogger('goog.gears.LogStore'); /** @@ -189,7 +189,7 @@ goog.gears.LogStore.prototype.flush = function() { this.isFlushing_ = true; // Grab local copy of records so database can log during this process. - this.logger_.info('flushing ' + this.records_.length + ' records'); + goog.log.info(this.logger_, 'flushing ' + this.records_.length + ' records'); var records = this.records_; this.records_ = []; @@ -284,7 +284,7 @@ goog.gears.LogStore.prototype.pruneBeforeCount = function(opt_count) { } var count = typeof opt_count == 'number' ? opt_count : goog.gears.LogStore.DEFAULT_PRUNE_KEEPER_COUNT_; - this.logger_.info('pruning before ' + count + ' records ago'); + goog.log.info(this.logger_, 'pruning before ' + count + ' records ago'); this.flush(); this.getDatabaseInternal().execute('DELETE FROM ' + this.tableName_ + ' WHERE id <= ((SELECT MAX(id) FROM ' + this.tableName_ + ') - ?)', @@ -301,7 +301,8 @@ goog.gears.LogStore.prototype.pruneBeforeSequenceNumber = if (!this.getDatabaseInternal()) { return; } - this.logger_.info('pruning before sequence number ' + sequenceNumber); + goog.log.info(this.logger_, + 'pruning before sequence number ' + sequenceNumber); this.flush(); this.getDatabaseInternal().execute( 'DELETE FROM ' + this.tableName_ + ' WHERE id <= ?', @@ -329,11 +330,11 @@ goog.gears.LogStore.prototype.setCapturing = function(capturing) { // Attach or detach handler from the root logger. var rootLogger = goog.debug.LogManager.getRoot(); if (capturing) { - rootLogger.addHandler(this.publishHandler_); - this.logger_.info('enabled'); + goog.log.addHandler(rootLogger, this.publishHandler_); + goog.log.info(this.logger_, 'enabled'); } else { - this.logger_.info('disabling'); - rootLogger.removeHandler(this.publishHandler_); + goog.log.info(this.logger_, 'disabling'); + goog.log.removeHandler(rootLogger, this.publishHandler_); } } }; @@ -341,7 +342,7 @@ goog.gears.LogStore.prototype.setCapturing = function(capturing) { /** * Adds a log record. - * @param {goog.debug.LogRecord} logRecord the LogRecord. + * @param {goog.log.LogRecord} logRecord the LogRecord. */ goog.gears.LogStore.prototype.addLogRecord = function(logRecord) { this.records_.push(logRecord); @@ -359,7 +360,7 @@ goog.gears.LogStore.prototype.addLogRecord = function(logRecord) { /** * Select log records. * @param {goog.gears.LogStore.Query} query Query object. - * @return {Array.} Selected logs in descending + * @return {Array.} Selected logs in descending * order of creation time. */ goog.gears.LogStore.prototype.select = function(query) { @@ -387,7 +388,7 @@ goog.gears.LogStore.prototype.select = function(query) { // Parse fields, allowing for invalid values. var sequenceNumber = Number(row['id']) || 0; - var level = goog.debug.Logger.Level.getPredefinedLevelByValue( + var level = goog.log.Level.getPredefinedLevelByValue( Number(row['level']) || 0); var msg = row['msg'] || ''; var loggerName = row['logger'] || ''; @@ -398,7 +399,7 @@ goog.gears.LogStore.prototype.select = function(query) { var exceptionText = row['exceptionText'] || ''; // Create record. - var record = new goog.debug.LogRecord(level, msg, loggerName, + var record = new goog.log.LogRecord(level, msg, loggerName, millis, sequenceNumber); if (exception) { record.setException(exception); @@ -435,9 +436,9 @@ goog.gears.LogStore.Query = function() { /** * Minimum logging level. - * @type {goog.debug.Logger.Level} + * @type {goog.log.Level} */ -goog.gears.LogStore.Query.prototype.level = goog.debug.Logger.Level.ALL; +goog.gears.LogStore.Query.prototype.level = goog.log.Level.ALL; /** diff --git a/master/closure-library/closure/goog/gears/managedresourcestore.js b/edit/closure-library/closure/goog/gears/managedresourcestore.js similarity index 98% rename from master/closure-library/closure/goog/gears/managedresourcestore.js rename to edit/closure-library/closure/goog/gears/managedresourcestore.js index 7bf9b2fe40..2f8ff4a79f 100644 --- a/master/closure-library/closure/goog/gears/managedresourcestore.js +++ b/edit/closure-library/closure/goog/gears/managedresourcestore.js @@ -22,10 +22,10 @@ goog.provide('goog.gears.ManagedResourceStore.EventType'); goog.provide('goog.gears.ManagedResourceStore.UpdateStatus'); goog.provide('goog.gears.ManagedResourceStoreEvent'); -goog.require('goog.debug.Logger'); goog.require('goog.events.Event'); goog.require('goog.events.EventTarget'); goog.require('goog.gears'); +goog.require('goog.log'); goog.require('goog.string'); @@ -55,12 +55,14 @@ goog.require('goog.string'); */ goog.gears.ManagedResourceStore = function(name, requiredCookie, opt_localServer) { + goog.base(this); + this.localServer_ = opt_localServer || goog.gears.getFactory().create('beta.localserver', '1.0'); this.name_ = goog.gears.makeSafeFileName(name); if (name != this.name_) { - this.logger_.info( + goog.log.info(this.logger_, 'managed resource store name ' + name + '->' + this.name_); } @@ -95,11 +97,11 @@ goog.gears.ManagedResourceStore.UpdateStatus = { /** * Logger. - * @type {goog.debug.Logger} + * @type {goog.log.Logger} * @private */ goog.gears.ManagedResourceStore.prototype.logger_ = - goog.debug.Logger.getLogger('goog.gears.ManagedResourceStore'); + goog.log.getLogger('goog.gears.ManagedResourceStore'); /** diff --git a/master/closure-library/closure/goog/gears/multipartformdata.js b/edit/closure-library/closure/goog/gears/multipartformdata.js similarity index 100% rename from master/closure-library/closure/goog/gears/multipartformdata.js rename to edit/closure-library/closure/goog/gears/multipartformdata.js diff --git a/master/closure-library/closure/goog/gears/statustype.js b/edit/closure-library/closure/goog/gears/statustype.js similarity index 100% rename from master/closure-library/closure/goog/gears/statustype.js rename to edit/closure-library/closure/goog/gears/statustype.js diff --git a/master/closure-library/closure/goog/gears/urlcapture.js b/edit/closure-library/closure/goog/gears/urlcapture.js similarity index 92% rename from master/closure-library/closure/goog/gears/urlcapture.js rename to edit/closure-library/closure/goog/gears/urlcapture.js index a646847ebd..df99eac1ea 100644 --- a/master/closure-library/closure/goog/gears/urlcapture.js +++ b/edit/closure-library/closure/goog/gears/urlcapture.js @@ -24,10 +24,10 @@ goog.provide('goog.gears.UrlCapture.Event'); goog.provide('goog.gears.UrlCapture.EventType'); goog.require('goog.Uri'); -goog.require('goog.debug.Logger'); goog.require('goog.events.Event'); goog.require('goog.events.EventTarget'); goog.require('goog.gears'); +goog.require('goog.log'); @@ -50,7 +50,7 @@ goog.gears.UrlCapture = function(name, requiredCookie, opt_localServer) { */ this.storeName_ = goog.gears.makeSafeFileName(name); if (name != this.storeName_) { - this.logger_.info( + goog.log.info(this.logger_, 'local store name ' + name + '->' + this.storeName_); } @@ -97,11 +97,11 @@ goog.inherits(goog.gears.UrlCapture, goog.events.EventTarget); /** * Logger. - * @type {goog.debug.Logger} + * @type {goog.log.Logger} * @private */ goog.gears.UrlCapture.prototype.logger_ = - goog.debug.Logger.getLogger('goog.gears.UrlCapture'); + goog.log.getLogger('goog.gears.UrlCapture'); /** @@ -131,7 +131,7 @@ goog.gears.UrlCapture.EventType = { */ goog.gears.UrlCapture.prototype.getResourceStore_ = function() { if (!this.resourceStore_) { - this.logger_.info('creating resource store: ' + this.storeName_); + goog.log.info(this.logger_, 'creating resource store: ' + this.storeName_); this.resourceStore_ = this.localServer_['createStore']( this.storeName_, this.requiredCookie_); } @@ -145,7 +145,7 @@ goog.gears.UrlCapture.prototype.getResourceStore_ = function() { */ goog.gears.UrlCapture.prototype.exists = function() { if (!this.resourceStore_) { - this.logger_.info('opening resource store: ' + this.storeName_); + goog.log.info(this.logger_, 'opening resource store: ' + this.storeName_); this.resourceStore_ = this.localServer_['openStore']( this.storeName_, this.requiredCookie_); } @@ -157,7 +157,7 @@ goog.gears.UrlCapture.prototype.exists = function() { * Remove this resource store. */ goog.gears.UrlCapture.prototype.removeStore = function() { - this.logger_.info('removing resource store: ' + this.storeName_); + goog.log.info(this.logger_, 'removing resource store: ' + this.storeName_); this.localServer_['removeStore'](this.storeName_, this.requiredCookie_); this.resourceStore_ = null; }; @@ -192,7 +192,7 @@ goog.gears.UrlCapture.prototype.copy = function(srcUri, dstUri) { */ goog.gears.UrlCapture.prototype.capture = function(uris) { var count = uris.length; - this.logger_.fine('capture: count==' + count); + goog.log.fine(this.logger_, 'capture: count==' + count); if (!count) { throw Error('No URIs to capture'); } @@ -206,7 +206,7 @@ goog.gears.UrlCapture.prototype.capture = function(uris) { var id = this.getResourceStore_()['capture']( captureStrings, goog.bind(this.captureCallback_, this)); - this.logger_.fine('capture started: ' + id); + goog.log.fine(this.logger_, 'capture started: ' + id); this.uris_[id] = uris; this.errorUris_[id] = []; this.numCompleted_[id] = 0; @@ -219,7 +219,7 @@ goog.gears.UrlCapture.prototype.capture = function(uris) { * @param {number} captureId The id of the capture to abort, from #capture. */ goog.gears.UrlCapture.prototype.abort = function(captureId) { - this.logger_.fine('abort: ' + captureId); + goog.log.fine(this.logger_, 'abort: ' + captureId); // TODO(user) Remove when Gears adds more rubust type handling. // Safety measure since Gears behaves very badly if it gets an unexpected @@ -230,7 +230,7 @@ goog.gears.UrlCapture.prototype.abort = function(captureId) { // Only need to abort if the capture is still in progress. if (this.uris_[captureId] || this.numCompleted_[captureId]) { - this.logger_.info('aborting capture: ' + captureId); + goog.log.info(this.logger_, 'aborting capture: ' + captureId); this.getResourceStore_()['abortCapture'](captureId); this.cleanupCapture_(captureId); this.dispatchEvent(new goog.gears.UrlCapture.Event( @@ -245,7 +245,7 @@ goog.gears.UrlCapture.prototype.abort = function(captureId) { * @return {boolean} true if captured, false otherwise. */ goog.gears.UrlCapture.prototype.isCaptured = function(uri) { - this.logger_.fine('isCaptured: ' + uri); + goog.log.fine(this.logger_, 'isCaptured: ' + uri); return this.getResourceStore_()['isCaptured'](uri.toString()); }; @@ -255,7 +255,7 @@ goog.gears.UrlCapture.prototype.isCaptured = function(uri) { * @param {string|goog.Uri} uri The URI to remove from the store. */ goog.gears.UrlCapture.prototype.remove = function(uri) { - this.logger_.fine('remove: ' + uri); + goog.log.fine(this.logger_, 'remove: ' + uri); this.getResourceStore_()['remove'](uri.toString()); }; @@ -270,7 +270,7 @@ goog.gears.UrlCapture.prototype.remove = function(uri) { */ goog.gears.UrlCapture.prototype.captureCallback_ = function( url, success, captureId) { - this.logger_.fine('captureCallback_: ' + captureId); + goog.log.fine(this.logger_, 'captureCallback_: ' + captureId); if (!this.uris_[captureId] && !this.numCompleted_[captureId]) { // This probably means we were aborted and then a capture event came in. @@ -307,7 +307,7 @@ goog.gears.UrlCapture.prototype.captureCallback_ = function( * @param {number} captureId The id of the capture to clean up. */ goog.gears.UrlCapture.prototype.cleanupCapture_ = function(captureId) { - this.logger_.fine('cleanupCapture_: ' + captureId); + goog.log.fine(this.logger_, 'cleanupCapture_: ' + captureId); delete this.uris_[captureId]; delete this.numCompleted_[captureId]; delete this.errorUris_[captureId]; diff --git a/master/closure-library/closure/goog/gears/worker.js b/edit/closure-library/closure/goog/gears/worker.js similarity index 99% rename from master/closure-library/closure/goog/gears/worker.js rename to edit/closure-library/closure/goog/gears/worker.js index 8fa2c9138a..4899191275 100644 --- a/master/closure-library/closure/goog/gears/worker.js +++ b/edit/closure-library/closure/goog/gears/worker.js @@ -144,7 +144,7 @@ goog.gears.Worker.prototype.getId = function() { */ goog.gears.Worker.isCommandLike = function(obj) { return goog.isArray(obj) && obj.length == 2 && - goog.isNumber((/** @type {Array} */ obj)[0]); + goog.isNumber(/** @type {Array} */ (obj)[0]); }; diff --git a/master/closure-library/closure/goog/gears/workerchannel.js b/edit/closure-library/closure/goog/gears/workerchannel.js similarity index 88% rename from master/closure-library/closure/goog/gears/workerchannel.js rename to edit/closure-library/closure/goog/gears/workerchannel.js index 750584c198..0273329962 100644 --- a/master/closure-library/closure/goog/gears/workerchannel.js +++ b/edit/closure-library/closure/goog/gears/workerchannel.js @@ -25,12 +25,12 @@ goog.provide('goog.gears.WorkerChannel'); goog.require('goog.Disposable'); goog.require('goog.debug'); -goog.require('goog.debug.Logger'); goog.require('goog.events'); goog.require('goog.gears.Worker'); goog.require('goog.gears.Worker.EventType'); goog.require('goog.gears.WorkerEvent'); goog.require('goog.json'); +goog.require('goog.log'); goog.require('goog.messaging.AbstractChannel'); @@ -86,12 +86,12 @@ goog.gears.WorkerChannel.prototype.peerOrigin; /** * Logger for this class. - * @type {goog.debug.Logger} + * @type {goog.log.Logger} * @protected * @override */ goog.gears.WorkerChannel.prototype.logger = - goog.debug.Logger.getLogger('goog.gears.WorkerChannel'); + goog.log.getLogger('goog.gears.WorkerChannel'); /** @@ -148,16 +148,16 @@ goog.gears.WorkerChannel.prototype.deliver_ = function(e) { */ goog.gears.WorkerChannel.prototype.validateMessage_ = function(body) { if (!('serviceName' in body)) { - this.logger.warning('GearsWorkerChannel::deliver_(): ' + - 'Message object doesn\'t contain service name: ' + - goog.debug.deepExpose(body)); + goog.log.warning(this.logger, 'GearsWorkerChannel::deliver_(): ' + + 'Message object doesn\'t contain service name: ' + + goog.debug.deepExpose(body)); return false; } if (!('payload' in body)) { - this.logger.warning('GearsWorkerChannel::deliver_(): ' + - 'Message object doesn\'t contain payload: ' + - goog.debug.deepExpose(body)); + goog.log.warning(this.logger, 'GearsWorkerChannel::deliver_(): ' + + 'Message object doesn\'t contain payload: ' + + goog.debug.deepExpose(body)); return false; } @@ -197,8 +197,9 @@ goog.gears.WorkerChannel.prototype.checkMessageOrigin = function( return true; } - this.logger.warning('Message from unexpected origin "' + messageOrigin + - '"; expected only messages from origin "' + peerOrigin + - '"'); + goog.log.warning(this.logger, + 'Message from unexpected origin "' + messageOrigin + + '"; expected only messages from origin "' + peerOrigin + + '"'); return false; }; diff --git a/master/closure-library/closure/goog/gears/workerpool.js b/edit/closure-library/closure/goog/gears/workerpool.js similarity index 100% rename from master/closure-library/closure/goog/gears/workerpool.js rename to edit/closure-library/closure/goog/gears/workerpool.js diff --git a/master/closure-library/closure/goog/graphics/abstractgraphics.js b/edit/closure-library/closure/goog/graphics/abstractgraphics.js similarity index 99% rename from master/closure-library/closure/goog/graphics/abstractgraphics.js rename to edit/closure-library/closure/goog/graphics/abstractgraphics.js index 2b1a54a0ab..811c87d8b4 100644 --- a/master/closure-library/closure/goog/graphics/abstractgraphics.js +++ b/edit/closure-library/closure/goog/graphics/abstractgraphics.js @@ -21,6 +21,7 @@ goog.provide('goog.graphics.AbstractGraphics'); +goog.require('goog.dom'); goog.require('goog.graphics.Path'); goog.require('goog.math.Coordinate'); goog.require('goog.math.Size'); diff --git a/master/closure-library/closure/goog/graphics/affinetransform.js b/edit/closure-library/closure/goog/graphics/affinetransform.js similarity index 100% rename from master/closure-library/closure/goog/graphics/affinetransform.js rename to edit/closure-library/closure/goog/graphics/affinetransform.js diff --git a/master/closure-library/closure/goog/graphics/canvaselement.js b/edit/closure-library/closure/goog/graphics/canvaselement.js similarity index 98% rename from master/closure-library/closure/goog/graphics/canvaselement.js rename to edit/closure-library/closure/goog/graphics/canvaselement.js index e99fa67b86..c566860663 100644 --- a/master/closure-library/closure/goog/graphics/canvaselement.js +++ b/edit/closure-library/closure/goog/graphics/canvaselement.js @@ -37,6 +37,9 @@ goog.require('goog.graphics.Path'); goog.require('goog.graphics.PathElement'); goog.require('goog.graphics.RectElement'); goog.require('goog.graphics.TextElement'); +goog.require('goog.math'); +goog.require('goog.string'); + /** @@ -48,6 +51,9 @@ goog.require('goog.graphics.TextElement'); * this element. * @constructor * @extends {goog.graphics.GroupElement} + * @deprecated goog.graphics is deprecated. It existed to abstract over browser + * differences before the canvas tag was widely supported. See + * http://en.wikipedia.org/wiki/Canvas_element for details. */ goog.graphics.CanvasGroupElement = function(graphics) { goog.graphics.GroupElement.call(this, null, graphics); @@ -395,6 +401,7 @@ goog.graphics.CanvasPathElement.prototype.setPath = function(path) { /** * Draw the path. Should be treated as package scope. * @param {CanvasRenderingContext2D} ctx The context to draw the element in. + * @suppress {deprecated} goog.graphics is deprecated. */ goog.graphics.CanvasPathElement.prototype.draw = function(ctx) { this.drawn_ = true; diff --git a/master/closure-library/closure/goog/graphics/canvasgraphics.js b/edit/closure-library/closure/goog/graphics/canvasgraphics.js similarity index 98% rename from master/closure-library/closure/goog/graphics/canvasgraphics.js rename to edit/closure-library/closure/goog/graphics/canvasgraphics.js index cf210aba00..3cd6e18d96 100644 --- a/master/closure-library/closure/goog/graphics/canvasgraphics.js +++ b/edit/closure-library/closure/goog/graphics/canvasgraphics.js @@ -23,7 +23,6 @@ goog.provide('goog.graphics.CanvasGraphics'); -goog.require('goog.dom'); goog.require('goog.events.EventType'); goog.require('goog.graphics.AbstractGraphics'); goog.require('goog.graphics.CanvasEllipseElement'); @@ -32,11 +31,9 @@ goog.require('goog.graphics.CanvasImageElement'); goog.require('goog.graphics.CanvasPathElement'); goog.require('goog.graphics.CanvasRectElement'); goog.require('goog.graphics.CanvasTextElement'); -goog.require('goog.graphics.Font'); -goog.require('goog.graphics.LinearGradient'); goog.require('goog.graphics.SolidFill'); -goog.require('goog.graphics.Stroke'); goog.require('goog.math.Size'); +goog.require('goog.style'); @@ -54,6 +51,9 @@ goog.require('goog.math.Size'); * document we want to render in. * @constructor * @extends {goog.graphics.AbstractGraphics} + * @deprecated goog.graphics is deprecated. It existed to abstract over browser + * differences before the canvas tag was widely supported. See + * http://en.wikipedia.org/wiki/Canvas_element for details. */ goog.graphics.CanvasGraphics = function(width, height, opt_coordWidth, opt_coordHeight, diff --git a/master/closure-library/closure/goog/graphics/element.js b/edit/closure-library/closure/goog/graphics/element.js similarity index 93% rename from master/closure-library/closure/goog/graphics/element.js rename to edit/closure-library/closure/goog/graphics/element.js index 342439e42a..6f93ce7260 100644 --- a/master/closure-library/closure/goog/graphics/element.js +++ b/edit/closure-library/closure/goog/graphics/element.js @@ -26,6 +26,7 @@ goog.provide('goog.graphics.Element'); goog.require('goog.events'); goog.require('goog.events.EventTarget'); +goog.require('goog.events.Listenable'); goog.require('goog.graphics.AffineTransform'); goog.require('goog.math'); @@ -41,7 +42,9 @@ goog.require('goog.math'); * this element. * @constructor * @extends {goog.events.EventTarget} - * @suppress {visibility} Accessing private field of superclass (see TODO). + * @deprecated goog.graphics is deprecated. It existed to abstract over browser + * differences before the canvas tag was widely supported. See + * http://en.wikipedia.org/wiki/Canvas_element for details. */ goog.graphics.Element = function(element, graphics) { goog.events.EventTarget.call(this); @@ -49,7 +52,7 @@ goog.graphics.Element = function(element, graphics) { this.graphics_ = graphics; // Overloading EventTarget field to state that this is not a custom event. // TODO(user) Should be handled in EventTarget.js (see bug 846824). - this.customEvent_ = false; + this[goog.events.Listenable.IMPLEMENTED_BY_PROP] = false; }; goog.inherits(goog.graphics.Element, goog.events.EventTarget); diff --git a/master/closure-library/closure/goog/graphics/ellipseelement.js b/edit/closure-library/closure/goog/graphics/ellipseelement.js similarity index 90% rename from master/closure-library/closure/goog/graphics/ellipseelement.js rename to edit/closure-library/closure/goog/graphics/ellipseelement.js index d9f1424224..ef515df728 100644 --- a/master/closure-library/closure/goog/graphics/ellipseelement.js +++ b/edit/closure-library/closure/goog/graphics/ellipseelement.js @@ -37,6 +37,9 @@ goog.require('goog.graphics.StrokeAndFillElement'); * @param {goog.graphics.Fill?} fill The fill to use for this element. * @constructor * @extends {goog.graphics.StrokeAndFillElement} + * @deprecated goog.graphics is deprecated. It existed to abstract over browser + * differences before the canvas tag was widely supported. See + * http://en.wikipedia.org/wiki/Canvas_element for details. */ goog.graphics.EllipseElement = function(element, graphics, stroke, fill) { goog.graphics.StrokeAndFillElement.call(this, element, graphics, stroke, diff --git a/master/closure-library/closure/goog/graphics/ext/coordinates.js b/edit/closure-library/closure/goog/graphics/ext/coordinates.js similarity index 100% rename from master/closure-library/closure/goog/graphics/ext/coordinates.js rename to edit/closure-library/closure/goog/graphics/ext/coordinates.js diff --git a/master/closure-library/closure/goog/graphics/ext/element.js b/edit/closure-library/closure/goog/graphics/ext/element.js similarity index 100% rename from master/closure-library/closure/goog/graphics/ext/element.js rename to edit/closure-library/closure/goog/graphics/ext/element.js diff --git a/master/closure-library/closure/goog/graphics/ext/ellipse.js b/edit/closure-library/closure/goog/graphics/ext/ellipse.js similarity index 100% rename from master/closure-library/closure/goog/graphics/ext/ellipse.js rename to edit/closure-library/closure/goog/graphics/ext/ellipse.js diff --git a/master/closure-library/closure/goog/graphics/ext/ext.js b/edit/closure-library/closure/goog/graphics/ext/ext.js similarity index 100% rename from master/closure-library/closure/goog/graphics/ext/ext.js rename to edit/closure-library/closure/goog/graphics/ext/ext.js diff --git a/master/closure-library/closure/goog/graphics/ext/graphics.js b/edit/closure-library/closure/goog/graphics/ext/graphics.js similarity index 100% rename from master/closure-library/closure/goog/graphics/ext/graphics.js rename to edit/closure-library/closure/goog/graphics/ext/graphics.js diff --git a/master/closure-library/closure/goog/graphics/ext/group.js b/edit/closure-library/closure/goog/graphics/ext/group.js similarity index 100% rename from master/closure-library/closure/goog/graphics/ext/group.js rename to edit/closure-library/closure/goog/graphics/ext/group.js diff --git a/master/closure-library/closure/goog/graphics/ext/image.js b/edit/closure-library/closure/goog/graphics/ext/image.js similarity index 100% rename from master/closure-library/closure/goog/graphics/ext/image.js rename to edit/closure-library/closure/goog/graphics/ext/image.js diff --git a/master/closure-library/closure/goog/graphics/ext/path.js b/edit/closure-library/closure/goog/graphics/ext/path.js similarity index 100% rename from master/closure-library/closure/goog/graphics/ext/path.js rename to edit/closure-library/closure/goog/graphics/ext/path.js diff --git a/master/closure-library/closure/goog/graphics/ext/rectangle.js b/edit/closure-library/closure/goog/graphics/ext/rectangle.js similarity index 100% rename from master/closure-library/closure/goog/graphics/ext/rectangle.js rename to edit/closure-library/closure/goog/graphics/ext/rectangle.js diff --git a/master/closure-library/closure/goog/graphics/ext/shape.js b/edit/closure-library/closure/goog/graphics/ext/shape.js similarity index 100% rename from master/closure-library/closure/goog/graphics/ext/shape.js rename to edit/closure-library/closure/goog/graphics/ext/shape.js diff --git a/master/closure-library/closure/goog/graphics/ext/strokeandfillelement.js b/edit/closure-library/closure/goog/graphics/ext/strokeandfillelement.js similarity index 100% rename from master/closure-library/closure/goog/graphics/ext/strokeandfillelement.js rename to edit/closure-library/closure/goog/graphics/ext/strokeandfillelement.js diff --git a/master/closure-library/closure/goog/graphics/fill.js b/edit/closure-library/closure/goog/graphics/fill.js similarity index 64% rename from master/closure-library/closure/goog/graphics/fill.js rename to edit/closure-library/closure/goog/graphics/fill.js index 86338d53b0..92e460e253 100644 --- a/master/closure-library/closure/goog/graphics/fill.js +++ b/edit/closure-library/closure/goog/graphics/fill.js @@ -26,5 +26,21 @@ goog.provide('goog.graphics.Fill'); /** * Creates a fill object * @constructor + * @deprecated goog.graphics is deprecated. It existed to abstract over browser + * differences before the canvas tag was widely supported. See + * http://en.wikipedia.org/wiki/Canvas_element for details. */ goog.graphics.Fill = function() {}; + + +/** + * @return {string} The start color of a gradient fill. + */ +goog.graphics.Fill.prototype.getColor1 = goog.abstractMethod; + + +/** + * @return {string} The end color of a gradient fill. + */ +goog.graphics.Fill.prototype.getColor2 = goog.abstractMethod; + diff --git a/master/closure-library/closure/goog/graphics/font.js b/edit/closure-library/closure/goog/graphics/font.js similarity index 87% rename from master/closure-library/closure/goog/graphics/font.js rename to edit/closure-library/closure/goog/graphics/font.js index 082c8b70e8..045ee6b1a6 100644 --- a/master/closure-library/closure/goog/graphics/font.js +++ b/edit/closure-library/closure/goog/graphics/font.js @@ -29,6 +29,9 @@ goog.provide('goog.graphics.Font'); * @param {number} size The font size. * @param {string} family The font family. * @constructor + * @deprecated goog.graphics is deprecated. It existed to abstract over browser + * differences before the canvas tag was widely supported. See + * http://en.wikipedia.org/wiki/Canvas_element for details. */ goog.graphics.Font = function(size, family) { /** diff --git a/master/closure-library/closure/goog/graphics/graphics.js b/edit/closure-library/closure/goog/graphics/graphics.js similarity index 80% rename from master/closure-library/closure/goog/graphics/graphics.js rename to edit/closure-library/closure/goog/graphics/graphics.js index 7733fe8c70..d94f166cf8 100644 --- a/master/closure-library/closure/goog/graphics/graphics.js +++ b/edit/closure-library/closure/goog/graphics/graphics.js @@ -47,15 +47,19 @@ goog.require('goog.userAgent'); * @param {goog.dom.DomHelper=} opt_domHelper The DOM helper object for the * document we want to render in. * @return {goog.graphics.AbstractGraphics} The created instance. + * @deprecated goog.graphics is deprecated. It existed to abstract over browser + * differences before the canvas tag was widely supported. See + * http://en.wikipedia.org/wiki/Canvas_element for details. */ goog.graphics.createGraphics = function(width, height, opt_coordWidth, opt_coordHeight, opt_domHelper) { var graphics; - if (goog.userAgent.IE && !goog.userAgent.isVersion('9')) { + if (goog.userAgent.IE && !goog.userAgent.isVersionOrHigher('9')) { graphics = new goog.graphics.VmlGraphics(width, height, opt_coordWidth, opt_coordHeight, opt_domHelper); - } else if (goog.userAgent.WEBKIT && (!goog.userAgent.isVersion('420') || - goog.userAgent.MOBILE)) { + } else if (goog.userAgent.WEBKIT && + (!goog.userAgent.isVersionOrHigher('420') || + goog.userAgent.MOBILE)) { graphics = new goog.graphics.CanvasGraphics(width, height, opt_coordWidth, opt_coordHeight, opt_domHelper); } else { @@ -85,11 +89,14 @@ goog.graphics.createGraphics = function(width, height, opt_coordWidth, * @param {goog.dom.DomHelper=} opt_domHelper The DOM helper object for the * document we want to render in. * @return {goog.graphics.AbstractGraphics} The created instance. + * @deprecated goog.graphics is deprecated. It existed to abstract over browser + * differences before the canvas tag was widely supported. See + * http://en.wikipedia.org/wiki/Canvas_element for details. */ goog.graphics.createSimpleGraphics = function(width, height, opt_coordWidth, opt_coordHeight, opt_domHelper) { if (goog.userAgent.MAC && goog.userAgent.GECKO && - !goog.userAgent.isVersion('1.9a')) { + !goog.userAgent.isVersionOrHigher('1.9a')) { // Canvas is 6x faster than SVG on Mac FF 2.0 var graphics = new goog.graphics.CanvasGraphics( width, height, opt_coordWidth, opt_coordHeight, @@ -107,19 +114,22 @@ goog.graphics.createSimpleGraphics = function(width, height, /** * Static function to check if the current browser has Graphics support. * @return {boolean} True if the current browser has Graphics support. + * @deprecated goog.graphics is deprecated. It existed to abstract over browser + * differences before the canvas tag was widely supported. See + * http://en.wikipedia.org/wiki/Canvas_element for details. */ goog.graphics.isBrowserSupported = function() { if (goog.userAgent.IE) { - return goog.userAgent.isVersion('5.5'); + return goog.userAgent.isVersionOrHigher('5.5'); } if (goog.userAgent.GECKO) { - return goog.userAgent.isVersion('1.8'); + return goog.userAgent.isVersionOrHigher('1.8'); } if (goog.userAgent.OPERA) { - return goog.userAgent.isVersion('9.0'); + return goog.userAgent.isVersionOrHigher('9.0'); } if (goog.userAgent.WEBKIT) { - return goog.userAgent.isVersion('412'); + return goog.userAgent.isVersionOrHigher('412'); } return false; }; diff --git a/master/closure-library/closure/goog/graphics/groupelement.js b/edit/closure-library/closure/goog/graphics/groupelement.js similarity index 89% rename from master/closure-library/closure/goog/graphics/groupelement.js rename to edit/closure-library/closure/goog/graphics/groupelement.js index 537af71439..e8ba5ea1a4 100644 --- a/master/closure-library/closure/goog/graphics/groupelement.js +++ b/edit/closure-library/closure/goog/graphics/groupelement.js @@ -35,6 +35,9 @@ goog.require('goog.graphics.Element'); * this element. * @constructor * @extends {goog.graphics.Element} + * @deprecated goog.graphics is deprecated. It existed to abstract over browser + * differences before the canvas tag was widely supported. See + * http://en.wikipedia.org/wiki/Canvas_element for details. */ goog.graphics.GroupElement = function(element, graphics) { goog.graphics.Element.call(this, element, graphics); diff --git a/master/closure-library/closure/goog/graphics/imageelement.js b/edit/closure-library/closure/goog/graphics/imageelement.js similarity index 90% rename from master/closure-library/closure/goog/graphics/imageelement.js rename to edit/closure-library/closure/goog/graphics/imageelement.js index 7489ee9f65..2f2d9b792c 100644 --- a/master/closure-library/closure/goog/graphics/imageelement.js +++ b/edit/closure-library/closure/goog/graphics/imageelement.js @@ -35,6 +35,9 @@ goog.require('goog.graphics.Element'); * this element. * @constructor * @extends {goog.graphics.Element} + * @deprecated goog.graphics is deprecated. It existed to abstract over browser + * differences before the canvas tag was widely supported. See + * http://en.wikipedia.org/wiki/Canvas_element for details. */ goog.graphics.ImageElement = function(element, graphics) { goog.graphics.Element.call(this, element, graphics); diff --git a/master/closure-library/closure/goog/graphics/lineargradient.js b/edit/closure-library/closure/goog/graphics/lineargradient.js similarity index 94% rename from master/closure-library/closure/goog/graphics/lineargradient.js rename to edit/closure-library/closure/goog/graphics/lineargradient.js index 4710dd8254..c63cac017e 100644 --- a/master/closure-library/closure/goog/graphics/lineargradient.js +++ b/edit/closure-library/closure/goog/graphics/lineargradient.js @@ -41,6 +41,9 @@ goog.require('goog.graphics.Fill'); * @param {?number=} opt_opacity2 End opacity of the gradient. * @constructor * @extends {goog.graphics.Fill} + * @deprecated goog.graphics is deprecated. It existed to abstract over browser + * differences before the canvas tag was widely supported. See + * http://en.wikipedia.org/wiki/Canvas_element for details. */ goog.graphics.LinearGradient = function(x1, y1, x2, y2, color1, color2, opt_opacity1, opt_opacity2) { @@ -140,7 +143,7 @@ goog.graphics.LinearGradient.prototype.getY2 = function() { /** - * @return {string} The start color of the gradient. + * @override */ goog.graphics.LinearGradient.prototype.getColor1 = function() { return this.color1_; @@ -148,7 +151,7 @@ goog.graphics.LinearGradient.prototype.getColor1 = function() { /** - * @return {string} The end color of the gradient. + * @override */ goog.graphics.LinearGradient.prototype.getColor2 = function() { return this.color2_; diff --git a/master/closure-library/closure/goog/graphics/path.js b/edit/closure-library/closure/goog/graphics/path.js similarity index 99% rename from master/closure-library/closure/goog/graphics/path.js rename to edit/closure-library/closure/goog/graphics/path.js index 858a52670b..08bf03e6fe 100644 --- a/master/closure-library/closure/goog/graphics/path.js +++ b/edit/closure-library/closure/goog/graphics/path.js @@ -430,6 +430,7 @@ goog.graphics.Path.prototype.isSimple = function() { * A map from segment type to the path function to call to simplify a path. * @type {!Object} * @private + * @suppress {deprecated} goog.graphics.Path is deprecated. */ goog.graphics.Path.simplifySegmentMap_ = (function() { var map = {}; @@ -451,6 +452,7 @@ goog.graphics.Path.simplifySegmentMap_ = (function() { * * @param {!goog.graphics.Path} src The path to simplify. * @return {!goog.graphics.Path} A new simplified path. + * @suppress {deprecated} goog.graphics is deprecated. */ goog.graphics.Path.createSimplifiedPath = function(src) { if (src.isSimple()) { diff --git a/master/closure-library/closure/goog/graphics/pathelement.js b/edit/closure-library/closure/goog/graphics/pathelement.js similarity index 89% rename from master/closure-library/closure/goog/graphics/pathelement.js rename to edit/closure-library/closure/goog/graphics/pathelement.js index 6707816d64..e381c49fe1 100644 --- a/master/closure-library/closure/goog/graphics/pathelement.js +++ b/edit/closure-library/closure/goog/graphics/pathelement.js @@ -37,6 +37,9 @@ goog.require('goog.graphics.StrokeAndFillElement'); * @param {goog.graphics.Fill?} fill The fill to use for this element. * @constructor * @extends {goog.graphics.StrokeAndFillElement} + * @deprecated goog.graphics is deprecated. It existed to abstract over browser + * differences before the canvas tag was widely supported. See + * http://en.wikipedia.org/wiki/Canvas_element for details. */ goog.graphics.PathElement = function(element, graphics, stroke, fill) { goog.graphics.StrokeAndFillElement.call(this, element, graphics, stroke, diff --git a/master/closure-library/closure/goog/graphics/paths.js b/edit/closure-library/closure/goog/graphics/paths.js similarity index 100% rename from master/closure-library/closure/goog/graphics/paths.js rename to edit/closure-library/closure/goog/graphics/paths.js diff --git a/master/closure-library/closure/goog/graphics/rectelement.js b/edit/closure-library/closure/goog/graphics/rectelement.js similarity index 90% rename from master/closure-library/closure/goog/graphics/rectelement.js rename to edit/closure-library/closure/goog/graphics/rectelement.js index e5568e0d1b..9a50ce70e9 100644 --- a/master/closure-library/closure/goog/graphics/rectelement.js +++ b/edit/closure-library/closure/goog/graphics/rectelement.js @@ -37,6 +37,9 @@ goog.require('goog.graphics.StrokeAndFillElement'); * @param {goog.graphics.Fill?} fill The fill to use for this element. * @constructor * @extends {goog.graphics.StrokeAndFillElement} + * @deprecated goog.graphics is deprecated. It existed to abstract over browser + * differences before the canvas tag was widely supported. See + * http://en.wikipedia.org/wiki/Canvas_element for details. */ goog.graphics.RectElement = function(element, graphics, stroke, fill) { goog.graphics.StrokeAndFillElement.call(this, element, graphics, stroke, diff --git a/master/closure-library/closure/goog/graphics/solidfill.js b/edit/closure-library/closure/goog/graphics/solidfill.js similarity index 89% rename from master/closure-library/closure/goog/graphics/solidfill.js rename to edit/closure-library/closure/goog/graphics/solidfill.js index 99dfaebe82..fae3fc4248 100644 --- a/master/closure-library/closure/goog/graphics/solidfill.js +++ b/edit/closure-library/closure/goog/graphics/solidfill.js @@ -35,6 +35,9 @@ goog.require('goog.graphics.Fill'); * equal to 1 (opaque). * @constructor * @extends {goog.graphics.Fill} + * @deprecated goog.graphics is deprecated. It existed to abstract over browser + * differences before the canvas tag was widely supported. See + * http://en.wikipedia.org/wiki/Canvas_element for details. */ goog.graphics.SolidFill = function(color, opt_opacity) { /** diff --git a/master/closure-library/closure/goog/graphics/stroke.js b/edit/closure-library/closure/goog/graphics/stroke.js similarity index 87% rename from master/closure-library/closure/goog/graphics/stroke.js rename to edit/closure-library/closure/goog/graphics/stroke.js index 9283abf660..5091194825 100644 --- a/master/closure-library/closure/goog/graphics/stroke.js +++ b/edit/closure-library/closure/goog/graphics/stroke.js @@ -29,6 +29,9 @@ goog.provide('goog.graphics.Stroke'); * @param {number|string} width The width of the stroke. * @param {string} color The color of the stroke. * @constructor + * @deprecated goog.graphics is deprecated. It existed to abstract over browser + * differences before the canvas tag was widely supported. See + * http://en.wikipedia.org/wiki/Canvas_element for details. */ goog.graphics.Stroke = function(width, color) { /** diff --git a/master/closure-library/closure/goog/graphics/strokeandfillelement.js b/edit/closure-library/closure/goog/graphics/strokeandfillelement.js similarity index 93% rename from master/closure-library/closure/goog/graphics/strokeandfillelement.js rename to edit/closure-library/closure/goog/graphics/strokeandfillelement.js index fcfc3db9db..dce2c19dba 100644 --- a/master/closure-library/closure/goog/graphics/strokeandfillelement.js +++ b/edit/closure-library/closure/goog/graphics/strokeandfillelement.js @@ -41,6 +41,9 @@ goog.require('goog.graphics.Element'); * @param {goog.graphics.Fill?} fill The fill to use for this element. * @constructor * @extends {goog.graphics.Element} + * @deprecated goog.graphics is deprecated. It existed to abstract over browser + * differences before the canvas tag was widely supported. See + * http://en.wikipedia.org/wiki/Canvas_element for details. */ goog.graphics.StrokeAndFillElement = function(element, graphics, stroke, fill) { goog.graphics.Element.call(this, element, graphics); diff --git a/master/closure-library/closure/goog/graphics/svgelement.js b/edit/closure-library/closure/goog/graphics/svgelement.js similarity index 96% rename from master/closure-library/closure/goog/graphics/svgelement.js rename to edit/closure-library/closure/goog/graphics/svgelement.js index da3514e2d1..cf76bfa3aa 100644 --- a/master/closure-library/closure/goog/graphics/svgelement.js +++ b/edit/closure-library/closure/goog/graphics/svgelement.js @@ -47,6 +47,9 @@ goog.require('goog.graphics.TextElement'); * this element. * @constructor * @extends {goog.graphics.GroupElement} + * @deprecated goog.graphics is deprecated. It existed to abstract over browser + * differences before the canvas tag was widely supported. See + * http://en.wikipedia.org/wiki/Canvas_element for details. */ goog.graphics.SvgGroupElement = function(element, graphics) { goog.graphics.GroupElement.call(this, element, graphics); @@ -189,7 +192,8 @@ goog.inherits(goog.graphics.SvgPathElement, goog.graphics.PathElement); */ goog.graphics.SvgPathElement.prototype.setPath = function(path) { this.getGraphics().setElementAttributes(this.getElement(), - {'d': goog.graphics.SvgGraphics.getSvgPath(path)}); + {'d': /** @suppress {missingRequire} */ + goog.graphics.SvgGraphics.getSvgPath(path)}); }; diff --git a/master/closure-library/closure/goog/graphics/svggraphics.js b/edit/closure-library/closure/goog/graphics/svggraphics.js similarity index 98% rename from master/closure-library/closure/goog/graphics/svggraphics.js rename to edit/closure-library/closure/goog/graphics/svggraphics.js index 2e463fe37a..1f717828a0 100644 --- a/master/closure-library/closure/goog/graphics/svggraphics.js +++ b/edit/closure-library/closure/goog/graphics/svggraphics.js @@ -26,8 +26,8 @@ goog.require('goog.dom'); goog.require('goog.events.EventHandler'); goog.require('goog.events.EventType'); goog.require('goog.graphics.AbstractGraphics'); -goog.require('goog.graphics.Font'); goog.require('goog.graphics.LinearGradient'); +goog.require('goog.graphics.Path'); goog.require('goog.graphics.SolidFill'); goog.require('goog.graphics.Stroke'); goog.require('goog.graphics.SvgEllipseElement'); @@ -36,6 +36,7 @@ goog.require('goog.graphics.SvgImageElement'); goog.require('goog.graphics.SvgPathElement'); goog.require('goog.graphics.SvgRectElement'); goog.require('goog.graphics.SvgTextElement'); +goog.require('goog.math'); goog.require('goog.math.Size'); goog.require('goog.style'); goog.require('goog.userAgent'); @@ -56,6 +57,9 @@ goog.require('goog.userAgent'); * document we want to render in. * @constructor * @extends {goog.graphics.AbstractGraphics} + * @deprecated goog.graphics is deprecated. It existed to abstract over browser + * differences before the canvas tag was widely supported. See + * http://en.wikipedia.org/wiki/Canvas_element for details. */ goog.graphics.SvgGraphics = function(width, height, opt_coordWidth, opt_coordHeight, @@ -82,7 +86,7 @@ goog.graphics.SvgGraphics = function(width, height, * @private */ this.useManualViewbox_ = goog.userAgent.WEBKIT && - !goog.userAgent.isVersion(526); + !goog.userAgent.isVersionOrHigher(526); /** * Event handler. @@ -651,6 +655,7 @@ goog.graphics.SvgGraphics.prototype.drawPath = function( * * @param {goog.graphics.Path} path The logical path. * @return {string} The SVG path representation. + * @suppress {deprecated} goog.graphics is deprecated. */ goog.graphics.SvgGraphics.getSvgPath = function(path) { var list = []; @@ -752,6 +757,7 @@ goog.graphics.SvgGraphics.prototype.getDef = function(defKey) { return defKey in this.defs_ ? this.defs_[defKey] : null; }; + /** * Removes a definition of an elemnt from the global definitions. * @param {string} defKey This is a key that should be unique in a way that @@ -759,7 +765,7 @@ goog.graphics.SvgGraphics.prototype.getDef = function(defKey) { */ goog.graphics.SvgGraphics.prototype.removeDef = function(defKey) { var id = this.getDef(defKey); - if (id) { + if (id) { var element = this.dom_.getElement(id); this.defsElement_.removeChild(element); delete this.defs_[defKey]; diff --git a/master/closure-library/closure/goog/graphics/textelement.js b/edit/closure-library/closure/goog/graphics/textelement.js similarity index 89% rename from master/closure-library/closure/goog/graphics/textelement.js rename to edit/closure-library/closure/goog/graphics/textelement.js index 39adcc20a4..8afd918fe8 100644 --- a/master/closure-library/closure/goog/graphics/textelement.js +++ b/edit/closure-library/closure/goog/graphics/textelement.js @@ -38,6 +38,9 @@ goog.require('goog.graphics.StrokeAndFillElement'); * @param {goog.graphics.Fill?} fill The fill to use for this element. * @constructor * @extends {goog.graphics.StrokeAndFillElement} + * @deprecated goog.graphics is deprecated. It existed to abstract over browser + * differences before the canvas tag was widely supported. See + * http://en.wikipedia.org/wiki/Canvas_element for details. */ goog.graphics.TextElement = function(element, graphics, stroke, fill) { goog.graphics.StrokeAndFillElement.call(this, element, graphics, stroke, diff --git a/master/closure-library/closure/goog/graphics/vmlelement.js b/edit/closure-library/closure/goog/graphics/vmlelement.js similarity index 80% rename from master/closure-library/closure/goog/graphics/vmlelement.js rename to edit/closure-library/closure/goog/graphics/vmlelement.js index 57d7a9df9b..1a8ed71fe3 100644 --- a/master/closure-library/closure/goog/graphics/vmlelement.js +++ b/edit/closure-library/closure/goog/graphics/vmlelement.js @@ -64,6 +64,9 @@ goog.graphics.vmlGetElement_ = function() { * this element. * @constructor * @extends {goog.graphics.GroupElement} + * @deprecated goog.graphics is deprecated. It existed to abstract over browser + * differences before the canvas tag was widely supported. See + * http://en.wikipedia.org/wiki/Canvas_element for details. */ goog.graphics.VmlGroupElement = function(element, graphics) { this.id_ = element.id; @@ -105,10 +108,15 @@ goog.graphics.VmlGroupElement.prototype.setSize = function(width, height) { var element = this.getElement(); var style = element.style; - style.width = goog.graphics.VmlGraphics.toSizePx(width); - style.height = goog.graphics.VmlGraphics.toSizePx(height); + style.width = /** @suppress {missingRequire} */ ( + goog.graphics.VmlGraphics.toSizePx(width)); + style.height = /** @suppress {missingRequire} */ ( + goog.graphics.VmlGraphics.toSizePx(height)); - element.coordsize = goog.graphics.VmlGraphics.toSizeCoord(width) + ' ' + + element.coordsize = /** @suppress {missingRequire} */ + goog.graphics.VmlGraphics.toSizeCoord(width) + + ' ' + + /** @suppress {missingRequire} */ goog.graphics.VmlGraphics.toSizeCoord(height); // Don't overwrite the root element's origin. @@ -135,6 +143,9 @@ goog.graphics.VmlGroupElement.prototype.setSize = function(width, height) { * @param {goog.graphics.Fill?} fill The fill to use for this element. * @constructor * @extends {goog.graphics.EllipseElement} + * @deprecated goog.graphics is deprecated. It existed to abstract over browser + * differences before the canvas tag was widely supported. See + * http://en.wikipedia.org/wiki/Canvas_element for details. */ goog.graphics.VmlEllipseElement = function(element, graphics, cx, cy, rx, ry, stroke, fill) { @@ -188,6 +199,7 @@ goog.graphics.VmlEllipseElement.prototype.getElement = goog.graphics.VmlEllipseElement.prototype.setCenter = function(cx, cy) { this.cx = cx; this.cy = cy; + /** @suppress {missingRequire} */ goog.graphics.VmlGraphics.setPositionAndSize(this.getElement(), cx - this.rx, cy - this.ry, this.rx * 2, this.ry * 2); }; @@ -202,6 +214,7 @@ goog.graphics.VmlEllipseElement.prototype.setCenter = function(cx, cy) { goog.graphics.VmlEllipseElement.prototype.setRadius = function(rx, ry) { this.rx = rx; this.ry = ry; + /** @suppress {missingRequire} */ goog.graphics.VmlGraphics.setPositionAndSize(this.getElement(), this.cx - rx, this.cy - ry, rx * 2, ry * 2); }; @@ -220,6 +233,9 @@ goog.graphics.VmlEllipseElement.prototype.setRadius = function(rx, ry) { * @param {goog.graphics.Fill?} fill The fill to use for this element. * @constructor * @extends {goog.graphics.RectElement} + * @deprecated goog.graphics is deprecated. It existed to abstract over browser + * differences before the canvas tag was widely supported. See + * http://en.wikipedia.org/wiki/Canvas_element for details. */ goog.graphics.VmlRectElement = function(element, graphics, stroke, fill) { this.id_ = element.id; @@ -241,8 +257,11 @@ goog.graphics.VmlRectElement.prototype.getElement = */ goog.graphics.VmlRectElement.prototype.setPosition = function(x, y) { var style = this.getElement().style; - style.left = goog.graphics.VmlGraphics.toPosPx(x); - style.top = goog.graphics.VmlGraphics.toPosPx(y); + + style.left = /** @suppress {missingRequire} */ + goog.graphics.VmlGraphics.toPosPx(x); + style.top = /** @suppress {missingRequire} */ + goog.graphics.VmlGraphics.toPosPx(y); }; @@ -254,8 +273,10 @@ goog.graphics.VmlRectElement.prototype.setPosition = function(x, y) { */ goog.graphics.VmlRectElement.prototype.setSize = function(width, height) { var style = this.getElement().style; - style.width = goog.graphics.VmlGraphics.toSizePx(width); - style.height = goog.graphics.VmlGraphics.toSizePx(height); + style.width = /** @suppress {missingRequire} */ + goog.graphics.VmlGraphics.toSizePx(width); + style.height = /** @suppress {missingRequire} */ + goog.graphics.VmlGraphics.toSizePx(height); }; @@ -272,6 +293,9 @@ goog.graphics.VmlRectElement.prototype.setSize = function(width, height) { * @param {goog.graphics.Fill?} fill The fill to use for this element. * @constructor * @extends {goog.graphics.PathElement} + * @deprecated goog.graphics is deprecated. It existed to abstract over browser + * differences before the canvas tag was widely supported. See + * http://en.wikipedia.org/wiki/Canvas_element for details. */ goog.graphics.VmlPathElement = function(element, graphics, stroke, fill) { this.id_ = element.id; @@ -291,8 +315,11 @@ goog.graphics.VmlPathElement.prototype.getElement = * @override */ goog.graphics.VmlPathElement.prototype.setPath = function(path) { + /** @suppress {missingRequire} */ goog.graphics.VmlGraphics.setAttribute( - this.getElement(), 'path', goog.graphics.VmlGraphics.getVmlPath(path)); + this.getElement(), 'path', + /** @suppress {missingRequire} */ + goog.graphics.VmlGraphics.getVmlPath(path)); }; @@ -309,6 +336,9 @@ goog.graphics.VmlPathElement.prototype.setPath = function(path) { * @param {goog.graphics.Fill?} fill The fill to use for this element. * @constructor * @extends {goog.graphics.TextElement} + * @deprecated goog.graphics is deprecated. It existed to abstract over browser + * differences before the canvas tag was widely supported. See + * http://en.wikipedia.org/wiki/Canvas_element for details. */ goog.graphics.VmlTextElement = function(element, graphics, stroke, fill) { this.id_ = element.id; @@ -328,6 +358,7 @@ goog.graphics.VmlTextElement.prototype.getElement = * @override */ goog.graphics.VmlTextElement.prototype.setText = function(text) { + /** @suppress {missingRequire} */ goog.graphics.VmlGraphics.setAttribute(this.getElement().childNodes[1], 'string', text); }; @@ -344,6 +375,9 @@ goog.graphics.VmlTextElement.prototype.setText = function(text) { * this element. * @constructor * @extends {goog.graphics.ImageElement} + * @deprecated goog.graphics is deprecated. It existed to abstract over browser + * differences before the canvas tag was widely supported. See + * http://en.wikipedia.org/wiki/Canvas_element for details. */ goog.graphics.VmlImageElement = function(element, graphics) { this.id_ = element.id; @@ -365,8 +399,11 @@ goog.graphics.VmlImageElement.prototype.getElement = */ goog.graphics.VmlImageElement.prototype.setPosition = function(x, y) { var style = this.getElement().style; - style.left = goog.graphics.VmlGraphics.toPosPx(x); - style.top = goog.graphics.VmlGraphics.toPosPx(y); + + style.left = /** @suppress {missingRequire} */ + goog.graphics.VmlGraphics.toPosPx(x); + style.top = /** @suppress {missingRequire} */ + goog.graphics.VmlGraphics.toPosPx(y); }; @@ -378,8 +415,10 @@ goog.graphics.VmlImageElement.prototype.setPosition = function(x, y) { */ goog.graphics.VmlImageElement.prototype.setSize = function(width, height) { var style = this.getElement().style; - style.width = goog.graphics.VmlGraphics.toPosPx(width); - style.height = goog.graphics.VmlGraphics.toPosPx(height); + style.width = /** @suppress {missingRequire} */ + goog.graphics.VmlGraphics.toPosPx(width); + style.height = /** @suppress {missingRequire} */ + goog.graphics.VmlGraphics.toPosPx(height); }; @@ -389,5 +428,6 @@ goog.graphics.VmlImageElement.prototype.setSize = function(width, height) { * @override */ goog.graphics.VmlImageElement.prototype.setSource = function(src) { + /** @suppress {missingRequire} */ goog.graphics.VmlGraphics.setAttribute(this.getElement(), 'src', src); }; diff --git a/master/closure-library/closure/goog/graphics/vmlgraphics.js b/edit/closure-library/closure/goog/graphics/vmlgraphics.js similarity index 98% rename from master/closure-library/closure/goog/graphics/vmlgraphics.js rename to edit/closure-library/closure/goog/graphics/vmlgraphics.js index 113246829a..58f407f9af 100644 --- a/master/closure-library/closure/goog/graphics/vmlgraphics.js +++ b/edit/closure-library/closure/goog/graphics/vmlgraphics.js @@ -24,20 +24,20 @@ goog.provide('goog.graphics.VmlGraphics'); goog.require('goog.array'); -goog.require('goog.dom'); +goog.require('goog.events'); goog.require('goog.events.EventHandler'); goog.require('goog.events.EventType'); goog.require('goog.graphics.AbstractGraphics'); -goog.require('goog.graphics.Font'); goog.require('goog.graphics.LinearGradient'); +goog.require('goog.graphics.Path'); goog.require('goog.graphics.SolidFill'); -goog.require('goog.graphics.Stroke'); goog.require('goog.graphics.VmlEllipseElement'); goog.require('goog.graphics.VmlGroupElement'); goog.require('goog.graphics.VmlImageElement'); goog.require('goog.graphics.VmlPathElement'); goog.require('goog.graphics.VmlRectElement'); goog.require('goog.graphics.VmlTextElement'); +goog.require('goog.math'); goog.require('goog.math.Size'); goog.require('goog.string'); goog.require('goog.style'); @@ -58,6 +58,9 @@ goog.require('goog.style'); * document we want to render in. * @constructor * @extends {goog.graphics.AbstractGraphics} + * @deprecated goog.graphics is deprecated. It existed to abstract over browser + * differences before the canvas tag was widely supported. See + * http://en.wikipedia.org/wiki/Canvas_element for details. */ goog.graphics.VmlGraphics = function(width, height, opt_coordWidth, opt_coordHeight, @@ -790,6 +793,7 @@ goog.graphics.VmlGraphics.prototype.drawPath = function(path, stroke, fill, * * @param {goog.graphics.Path} path The logical path. * @return {string} The VML path representation. + * @suppress {deprecated} goog.graphics is deprecated. */ goog.graphics.VmlGraphics.getVmlPath = function(path) { var list = []; diff --git a/master/closure-library/closure/goog/history/event.js b/edit/closure-library/closure/goog/history/event.js similarity index 100% rename from master/closure-library/closure/goog/history/event.js rename to edit/closure-library/closure/goog/history/event.js diff --git a/master/closure-library/closure/goog/history/eventtype.js b/edit/closure-library/closure/goog/history/eventtype.js similarity index 100% rename from master/closure-library/closure/goog/history/eventtype.js rename to edit/closure-library/closure/goog/history/eventtype.js diff --git a/master/closure-library/closure/goog/history/history.js b/edit/closure-library/closure/goog/history/history.js similarity index 95% rename from master/closure-library/closure/goog/history/history.js rename to edit/closure-library/closure/goog/history/history.js index 6b4d650372..6ff24b6aeb 100644 --- a/master/closure-library/closure/goog/history/history.js +++ b/edit/closure-library/closure/goog/history/history.js @@ -164,14 +164,12 @@ goog.provide('goog.History.EventType'); goog.require('goog.Timer'); goog.require('goog.dom'); -goog.require('goog.events'); -goog.require('goog.events.BrowserEvent'); -goog.require('goog.events.Event'); goog.require('goog.events.EventHandler'); goog.require('goog.events.EventTarget'); goog.require('goog.events.EventType'); goog.require('goog.history.Event'); goog.require('goog.history.EventType'); +goog.require('goog.memoize'); goog.require('goog.string'); goog.require('goog.userAgent'); @@ -246,7 +244,7 @@ goog.History = function(opt_invisible, opt_blankPageUrl, opt_input, * @type {HTMLInputElement} * @private */ - this.hiddenInput_ = (/** @type {HTMLInputElement} */ input); + this.hiddenInput_ = /** @type {HTMLInputElement} */ (input); /** * The window whose location contains the history token fragment. This is @@ -258,15 +256,6 @@ goog.History = function(opt_invisible, opt_blankPageUrl, opt_input, this.window_ = opt_input ? goog.dom.getWindow(goog.dom.getOwnerDocument(opt_input)) : window; - /** - * The initial page location with an empty hash component. If the page uses - * a BASE element, setting location.hash directly will navigate away from the - * current document. To prevent this, the full path is always specified. - * @type {string} - * @private - */ - this.baseUrl_ = this.window_.location.href.split('#')[0]; - /** * The base URL for the hidden iframe. Must refer to a document in the * same domain as the main page. @@ -286,6 +275,7 @@ goog.History = function(opt_invisible, opt_blankPageUrl, opt_input, * @private */ this.timer_ = new goog.Timer(goog.History.PollingType.NORMAL); + this.registerDisposable(this.timer_); /** * True if the state tokens are displayed in the address bar, false for hidden @@ -323,7 +313,7 @@ goog.History = function(opt_invisible, opt_blankPageUrl, opt_input, * @type {HTMLIFrameElement} * @private */ - this.iframe_ = (/** @type {HTMLIFrameElement} */ iframe); + this.iframe_ = /** @type {HTMLIFrameElement} */ (iframe); /** * Whether the hidden iframe has had a document written to it yet in this @@ -402,14 +392,17 @@ goog.History.prototype.lastToken_ = null; /** - * Whether the browser supports HTML5 history management. - * {@link http://www.w3.org/TR/html5/history.html}. - * @type {boolean} + * Whether the browser supports HTML5 history management's onhashchange event. + * {@link http://www.w3.org/TR/html5/history.html}. IE 9 in compatibility mode + * indicates that onhashchange is in window, but testing reveals the event + * isn't actually fired. + * @return {boolean} Whether onhashchange is supported. */ -goog.History.HAS_ONHASHCHANGE = - goog.userAgent.IE && goog.userAgent.isDocumentMode(8) || - goog.userAgent.GECKO && goog.userAgent.isVersion('1.9.2') || - goog.userAgent.WEBKIT && goog.userAgent.isVersion('532.1'); +goog.History.isOnHashChangeSupported = goog.memoize(function() { + return goog.userAgent.IE ? + document.documentMode >= 8 : + 'onhashchange' in goog.global; +}); /** @@ -418,7 +411,8 @@ goog.History.HAS_ONHASHCHANGE = * current versions. * @type {boolean} */ -goog.History.LEGACY_IE = goog.userAgent.IE && !goog.userAgent.isDocumentMode(8); +goog.History.LEGACY_IE = goog.userAgent.IE && + !goog.userAgent.isDocumentModeOrHigher(8); /** @@ -488,7 +482,8 @@ goog.History.prototype.setEnabled = function(enable) { // TODO(user): make HTML5 and invisible history work by listening to the // iframe # changes instead of the window. - if (goog.History.HAS_ONHASHCHANGE && this.userVisible_) { + if (goog.History.isOnHashChangeSupported() && + this.userVisible_) { this.eventHandler_.listen( this.window_, goog.events.EventType.HASHCHANGE, this.onHashChange_); this.enabled_ = true; @@ -563,8 +558,8 @@ goog.History.prototype.onShow_ = function(e) { /** * Handles HTML5 onhashchange events on browsers where it is supported. * This is very similar to {@link #check_}, except that it is not executed - * continuously. It is only used when {@code goog.History.HAS_ONHASHCHANGE} is - * true. + * continuously. It is only used when + * {@code goog.History.isOnHashChangeSupported()} is true. * @param {goog.events.BrowserEvent} e The browser event. * @private */ @@ -651,7 +646,7 @@ goog.History.prototype.setHistoryState_ = function(token, replace, opt_title) { if (this.userVisible_) { this.setHash_(token, replace); - if (!goog.History.HAS_ONHASHCHANGE) { + if (!goog.History.isOnHashChangeSupported()) { if (goog.userAgent.IE) { // IE must save state using the iframe. this.setIframeToken_(token, replace, opt_title); @@ -659,8 +654,8 @@ goog.History.prototype.setHistoryState_ = function(token, replace, opt_title) { } // This condition needs to be called even if - // goog.History.HAS_ONHASHCHANGE is true so the NAVIGATE event fires - // sychronously. + // goog.History.isOnHashChangeSupported() is true so the NAVIGATE event + // fires sychronously. if (this.enabled_) { this.check_(false); } @@ -698,8 +693,12 @@ goog.History.prototype.setHistoryState_ = function(token, replace, opt_title) { * @private */ goog.History.prototype.setHash_ = function(token, opt_replace) { + // If the page uses a BASE element, setting location.hash directly will + // navigate away from the current document. Also, the original URL path may + // possibly change from HTML5 history pushState. To account for these, the + // full path is always specified. var loc = this.window_.location; - var url = this.baseUrl_; + var url = loc.href.split('#')[0]; // If a hash has already been set, then removing it programmatically will // reload the page. Once there is a hash, we won't remove it. @@ -832,7 +831,7 @@ goog.History.prototype.getIframeToken_ = function() { /** * Checks the state of the document fragment and the iframe title to detect - * navigation changes. If {@code goog.History.HAS_ONHASHCHANGE} is + * navigation changes. If {@code goog.HistoryisOnHashChangeSupported()} is * {@code false}, then this runs approximately twenty times per second. * @param {boolean} isNavigation True if the event was initiated by a browser * action, false if it was caused by a setToken call. See diff --git a/edit/closure-library/closure/goog/history/history_test.js b/edit/closure-library/closure/goog/history/history_test.js new file mode 100644 index 0000000000..4ee7f0eb37 --- /dev/null +++ b/edit/closure-library/closure/goog/history/history_test.js @@ -0,0 +1,54 @@ +// Copyright 2013 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview Unit tests for goog.history.History. + */ + +/** @suppress {extraProvide} */ +goog.provide('goog.HistoryTest'); + +goog.require('goog.History'); +goog.require('goog.testing.jsunit'); +goog.require('goog.userAgent'); + +goog.setTestOnly('goog.HistoryTest'); + + +// Mimimal function to exercise construction. +function testCreation() { + + // Running goog.History in tests on older browsers simply hangs them in TAP. + if (goog.userAgent.GECKO || + (goog.userAgent.IE && !goog.userAgent.isVersionOrHigher(9))) { + return; + } + + var history = new goog.History(); + +} + +function testIsHashChangeSupported() { + + // This is the policy currently implemented. + var supportsOnHashChange = (goog.userAgent.IE ? + document.documentMode >= 8 : + 'onhashchange' in window); + + assertEquals( + supportsOnHashChange, + goog.History.isOnHashChangeSupported()); +} + +// TODO(nnaze): Test additional behavior. diff --git a/master/closure-library/closure/goog/history/html5history.js b/edit/closure-library/closure/goog/history/html5history.js similarity index 100% rename from master/closure-library/closure/goog/history/html5history.js rename to edit/closure-library/closure/goog/history/html5history.js diff --git a/master/closure-library/closure/goog/i18n/bidi.js b/edit/closure-library/closure/goog/i18n/bidi.js similarity index 99% rename from master/closure-library/closure/goog/i18n/bidi.js rename to edit/closure-library/closure/goog/i18n/bidi.js index 1af4e859c0..22092f0867 100644 --- a/master/closure-library/closure/goog/i18n/bidi.js +++ b/edit/closure-library/closure/goog/i18n/bidi.js @@ -31,7 +31,7 @@ goog.provide('goog.i18n.bidi'); * * {@see goog.i18n.bidi.IS_RTL} */ -goog.i18n.bidi.FORCE_RTL = false; +goog.define('goog.i18n.bidi.FORCE_RTL', false); /** @@ -159,7 +159,7 @@ goog.i18n.bidi.toDir = function(givenDir) { */ goog.i18n.bidi.ltrChars_ = 'A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02B8\u0300-\u0590\u0800-\u1FFF' + - '\u2C00-\uFB1C\uFE00-\uFE6F\uFEFD-\uFFFF'; + '\u200E\u2C00-\uFB1C\uFE00-\uFE6F\uFEFD-\uFFFF'; /** @@ -169,7 +169,7 @@ goog.i18n.bidi.ltrChars_ = * @type {string} * @private */ -goog.i18n.bidi.rtlChars_ = '\u0591-\u07FF\uFB1D-\uFDFF\uFE70-\uFEFC'; +goog.i18n.bidi.rtlChars_ = '\u0591-\u07FF\u200F\uFB1D-\uFDFF\uFE70-\uFEFC'; /** diff --git a/master/closure-library/closure/goog/i18n/bidiformatter.js b/edit/closure-library/closure/goog/i18n/bidiformatter.js similarity index 99% rename from master/closure-library/closure/goog/i18n/bidiformatter.js rename to edit/closure-library/closure/goog/i18n/bidiformatter.js index bcc3e527b7..9d9364c572 100644 --- a/master/closure-library/closure/goog/i18n/bidiformatter.js +++ b/edit/closure-library/closure/goog/i18n/bidiformatter.js @@ -199,7 +199,9 @@ goog.i18n.BidiFormatter.prototype.dirResetIfNeeded_ = function(str, dir, * is RTL, and "ltr" otherwise. * Needed for GXP, which can't handle dirAttr. * Example use case: - * + * <td expr:dir='bidiFormatter.dirAttrValue(foo)'> + * <gxp:eval expr='foo'> + * </td> * * @param {string} str Text whose directionality is to be estimated. * @param {boolean=} opt_isHtml Whether {@code str} is HTML / HTML-escaped. diff --git a/master/closure-library/closure/goog/i18n/charlistdecompressor.js b/edit/closure-library/closure/goog/i18n/charlistdecompressor.js similarity index 100% rename from master/closure-library/closure/goog/i18n/charlistdecompressor.js rename to edit/closure-library/closure/goog/i18n/charlistdecompressor.js diff --git a/master/closure-library/closure/goog/i18n/charpickerdata.js b/edit/closure-library/closure/goog/i18n/charpickerdata.js similarity index 100% rename from master/closure-library/closure/goog/i18n/charpickerdata.js rename to edit/closure-library/closure/goog/i18n/charpickerdata.js diff --git a/edit/closure-library/closure/goog/i18n/collation.js b/edit/closure-library/closure/goog/i18n/collation.js new file mode 100644 index 0000000000..7314912b88 --- /dev/null +++ b/edit/closure-library/closure/goog/i18n/collation.js @@ -0,0 +1,58 @@ +// Copyright 2013 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +/** + * @fileoverview Contains helper functions for performing locale-sensitive + * collation. + */ + + +goog.provide('goog.i18n.collation'); + + +/** + * Returns the comparator for a locale. If a locale is not explicitly specified, + * a comparator for the user's locale will be returned. Note that if the browser + * does not support locale-sensitive string comparisons, the comparator returned + * will be a simple codepoint comparator. + * + * @param {string=} opt_locale the locale that the comparator is used for. + * @return {function(string, string): number} The locale-specific comparator. + */ +goog.i18n.collation.createComparator = function(opt_locale) { + // See http://code.google.com/p/v8-i18n. + if (goog.i18n.collation.hasNativeComparator()) { + var intl = goog.global.Intl; + return new intl.Collator([opt_locale || goog.LOCALE]).compare; + } else { + return function(arg1, arg2) { + return arg1.localeCompare(arg2); + }; + } +}; + + +/** + * Returns true if a locale-sensitive comparator is available for a locale. If + * a locale is not explicitly specified, the user's locale is used instead. + * + * @param {string=} opt_locale The locale to be checked. + * @return {boolean} Whether there is a locale-sensitive comparator available + * for the locale. + */ +goog.i18n.collation.hasNativeComparator = function(opt_locale) { + var intl = goog.global.Intl; + return !!(intl && intl.Collator); +}; diff --git a/edit/closure-library/closure/goog/i18n/compactnumberformatsymbols.js b/edit/closure-library/closure/goog/i18n/compactnumberformatsymbols.js new file mode 100644 index 0000000000..58edbdc1b5 --- /dev/null +++ b/edit/closure-library/closure/goog/i18n/compactnumberformatsymbols.js @@ -0,0 +1,7973 @@ +// Copyright 2013 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +// implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview Compact number formatting symbols. + * + * This file is autogenerated by script: + * http://go/generate_number_constants.py + * using the --for_closure flag. + * File generated from CLDR ver. 23 + * + * To reduce the file size (which may cause issues in some JS + * developing environments), this file will only contain locales + * that are frequently used by web applications. This is defined as + * closure_tier1_locales and will change (most likely addition) + * over time. Rest of the data can be found in another file named + * "compactnumberformatsymbols_ext.js", which will be generated at + * the same time together with this file. + * + * Before checkin, this file could have been manually edited. This is + * to incorporate changes before we could fix CLDR. All manual + * modification must be documented in this section, and should be + * removed after those changes land to CLDR. + */ + +goog.provide('goog.i18n.CompactNumberFormatSymbols'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_af'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_af_ZA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_am'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_am_ET'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ar'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ar_001'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ar_EG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_bg'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_bg_BG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_bn'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_bn_BD'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_br'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_br_FR'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ca'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ca_AD'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ca_ES'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_chr'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_chr_US'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_cs'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_cs_CZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_cy'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_cy_GB'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_da'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_da_DK'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_de'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_de_AT'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_de_BE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_de_CH'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_de_DE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_de_LU'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_el'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_el_GR'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_AS'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_AU'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_Dsrt_US'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_FM'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_GB'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_GU'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_IE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_IN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_MH'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_MP'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_PR'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_PW'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_SG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_TC'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_UM'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_US'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_VG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_VI'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_ZA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_es'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_es_419'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_es_EA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_es_ES'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_es_IC'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_et'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_et_EE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_eu'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_eu_ES'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fa'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fa_IR'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fi'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fi_FI'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fil'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fil_PH'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_BL'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_CA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_FR'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_GF'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_GP'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_MC'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_MF'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_MQ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_RE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_YT'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_gl'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_gl_ES'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_gsw'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_gsw_CH'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_gu'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_gu_IN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_haw'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_haw_US'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_he'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_he_IL'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_hi'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_hi_IN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_hr'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_hr_HR'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_hu'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_hu_HU'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_id'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_id_ID'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_in'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_is'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_is_IS'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_it'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_it_IT'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_it_SM'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_iw'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ja'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ja_JP'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_kn'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_kn_IN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ko'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ko_KR'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ln'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ln_CD'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_lt'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_lt_LT'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_lv'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_lv_LV'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ml'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ml_IN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_mr'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_mr_IN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ms'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ms_Latn_MY'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_mt'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_mt_MT'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_nb'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_nb_NO'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_nl'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_nl_NL'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_no'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_or'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_or_IN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_pl'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_pl_PL'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_pt'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_pt_BR'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_pt_PT'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ro'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ro_RO'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ru'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ru_RU'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sk'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sk_SK'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sl'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sl_SI'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sq'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sq_AL'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sr'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sr_Cyrl_RS'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sv'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sv_SE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sw'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sw_TZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ta'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ta_IN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_te'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_te_IN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_th'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_th_TH'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_tl'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_tr'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_tr_TR'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_uk'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_uk_UA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ur'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ur_PK'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_vi'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_vi_VN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_zh'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_zh_CN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_zh_HK'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_zh_Hans_CN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_zh_TW'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_zu'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_zu_ZA'); + + +/** + * Compact number formatting symbols for locale af. + */ +goog.i18n.CompactNumberFormatSymbols_af = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0' + }, + '100000': { + 'other': '0' + }, + '1000000': { + 'other': '0\u00A0m' + }, + '10000000': { + 'other': '00\u00A0m' + }, + '100000000': { + 'other': '000\u00A0m' + }, + '1000000000': { + 'other': '0\u00A0mjd' + }, + '10000000000': { + 'other': '00\u00A0mjd' + }, + '100000000000': { + 'other': '000\u00A0mjd' + }, + '1000000000000': { + 'other': '0\u00A0bn' + }, + '10000000000000': { + 'other': '00\u00A0bn' + }, + '100000000000000': { + 'other': '000\u00A0bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 duisend' + }, + '10000': { + 'other': '00 duisend' + }, + '100000': { + 'other': '000 duisend' + }, + '1000000': { + 'other': '0 miljoen' + }, + '10000000': { + 'other': '00 miljoen' + }, + '100000000': { + 'other': '000 miljoen' + }, + '1000000000': { + 'other': '0 miljard' + }, + '10000000000': { + 'other': '00 miljard' + }, + '100000000000': { + 'other': '000 miljard' + }, + '1000000000000': { + 'other': '0 biljoen' + }, + '10000000000000': { + 'other': '00 biljoen' + }, + '100000000000000': { + 'other': '000 biljoen' + } + } +}; + + +/** + * Compact number formatting symbols for locale af_ZA. + */ +goog.i18n.CompactNumberFormatSymbols_af_ZA = + goog.i18n.CompactNumberFormatSymbols_af; + + +/** + * Compact number formatting symbols for locale am. + */ +goog.i18n.CompactNumberFormatSymbols_am = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u123A' + }, + '10000': { + 'other': '00\u00A0\u123A' + }, + '100000': { + 'other': '000\u00A0\u123A' + }, + '1000000': { + 'other': '0\u00A0\u121C\u1275\u122D' + }, + '10000000': { + 'other': '00\u00A0\u121C\u1275\u122D' + }, + '100000000': { + 'other': '000\u00A0\u121C\u1275\u122D' + }, + '1000000000': { + 'other': '0\u00A0\u1262' + }, + '10000000000': { + 'other': '00\u00A0\u1262' + }, + '100000000000': { + 'other': '000\u00A0\u1262' + }, + '1000000000000': { + 'other': '0\u00A0\u1275' + }, + '10000000000000': { + 'other': '00\u00A0\u1275' + }, + '100000000000000': { + 'other': '000\u00A0\u1275' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u123A' + }, + '10000': { + 'other': '00 \u123A' + }, + '100000': { + 'other': '000 \u123A' + }, + '1000000': { + 'other': '0 \u121A\u120A\u12EE\u1295' + }, + '10000000': { + 'other': '00 \u121A\u120A\u12EE\u1295' + }, + '100000000': { + 'other': '000 \u121A\u120A\u12EE\u1295' + }, + '1000000000': { + 'other': '0 \u1262\u120A\u12EE\u1295' + }, + '10000000000': { + 'other': '00 \u1262\u120A\u12EE\u1295' + }, + '100000000000': { + 'other': '000 \u1262\u120A\u12EE\u1295' + }, + '1000000000000': { + 'other': '0 \u1275\u122A\u120A\u12EE\u1295' + }, + '10000000000000': { + 'other': '00 \u1275\u122A\u120A\u12EE\u1295' + }, + '100000000000000': { + 'other': '000 \u1275\u122A\u120A\u12EE\u1295' + } + } +}; + + +/** + * Compact number formatting symbols for locale am_ET. + */ +goog.i18n.CompactNumberFormatSymbols_am_ET = + goog.i18n.CompactNumberFormatSymbols_am; + + +/** + * Compact number formatting symbols for locale ar. + */ +goog.i18n.CompactNumberFormatSymbols_ar = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0623\u0644\u0641' + }, + '10000': { + 'other': '00\u00A0\u0623\u0644\u0641' + }, + '100000': { + 'other': '000\u00A0\u0623\u0644\u0641' + }, + '1000000': { + 'other': '0\u00A0\u0645\u0644\u064A\u0648' + }, + '10000000': { + 'other': '00\u00A0\u0645\u0644\u064A\u0648' + }, + '100000000': { + 'other': '000\u00A0\u0645\u0644\u064A\u0648' + }, + '1000000000': { + 'other': '0\u00A0\u0628\u0644\u064A\u0648' + }, + '10000000000': { + 'other': '00\u00A0\u0628\u0644\u064A\u0648' + }, + '100000000000': { + 'other': '000\u00A0\u0628\u0644\u064A\u0648' + }, + '1000000000000': { + 'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '10000000000000': { + 'other': '00\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '100000000000000': { + 'other': '000\u00A0\u062A\u0631\u0644\u064A\u0648' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0623\u0644\u0641' + }, + '10000': { + 'other': '00 \u0623\u0644\u0641' + }, + '100000': { + 'other': '000 \u0623\u0644\u0641' + }, + '1000000': { + 'other': '0 \u0645\u0644\u064A\u0648\u0646' + }, + '10000000': { + 'other': '00 \u0645\u0644\u064A\u0648\u0646' + }, + '100000000': { + 'other': '000 \u0645\u0644\u064A\u0648\u0646' + }, + '1000000000': { + 'other': '0 \u0628\u0644\u064A\u0648\u0646' + }, + '10000000000': { + 'other': '00 \u0628\u0644\u064A\u0648\u0646' + }, + '100000000000': { + 'other': '000 \u0628\u0644\u064A\u0648\u0646' + }, + '1000000000000': { + 'other': '0 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '10000000000000': { + 'other': '00 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '100000000000000': { + 'other': '000 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + } + } +}; + + +/** + * Compact number formatting symbols for locale ar_001. + */ +goog.i18n.CompactNumberFormatSymbols_ar_001 = + goog.i18n.CompactNumberFormatSymbols_ar; + + +/** + * Compact number formatting symbols for locale ar_EG. + */ +goog.i18n.CompactNumberFormatSymbols_ar_EG = + goog.i18n.CompactNumberFormatSymbols_ar; + + +/** + * Compact number formatting symbols for locale bg. + */ +goog.i18n.CompactNumberFormatSymbols_bg = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0425' + }, + '10000': { + 'other': '00\u00A0\u0425' + }, + '100000': { + 'other': '000\u00A0\u0425' + }, + '1000000': { + 'other': '0\u00A0\u041C' + }, + '10000000': { + 'other': '00\u00A0\u041C' + }, + '100000000': { + 'other': '000\u00A0\u041C' + }, + '1000000000': { + 'other': '0\u00A0\u0411' + }, + '10000000000': { + 'other': '00\u00A0\u0411' + }, + '100000000000': { + 'other': '000\u00A0\u0411' + }, + '1000000000000': { + 'other': '0\u00A0\u0422' + }, + '10000000000000': { + 'other': '00\u00A0\u0422' + }, + '100000000000000': { + 'other': '000\u00A0\u0422' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0445\u0438\u043B\u044F\u0434\u0438' + }, + '10000': { + 'other': '00 \u0445\u0438\u043B\u044F\u0434\u0438' + }, + '100000': { + 'other': '000 \u0445\u0438\u043B\u044F\u0434\u0438' + }, + '1000000': { + 'other': '0 \u043C\u0438\u043B\u0438\u043E\u043D\u0430' + }, + '10000000': { + 'other': '00 \u043C\u0438\u043B\u0438\u043E\u043D\u0430' + }, + '100000000': { + 'other': '000 \u043C\u0438\u043B\u0438\u043E\u043D\u0430' + }, + '1000000000': { + 'other': '0 \u043C\u0438\u043B\u0438\u0430\u0440\u0434\u0430' + }, + '10000000000': { + 'other': '00 \u043C\u0438\u043B\u0438\u0430\u0440\u0434\u0430' + }, + '100000000000': { + 'other': '000 \u043C\u0438\u043B\u0438\u0430\u0440\u0434\u0430' + }, + '1000000000000': { + 'other': '0 \u0442\u0440\u0438\u043B\u0438\u043E\u043D\u0430' + }, + '10000000000000': { + 'other': '00 \u0442\u0440\u0438\u043B\u0438\u043E\u043D\u0430' + }, + '100000000000000': { + 'other': '000 \u0442\u0440\u0438\u043B\u0438\u043E\u043D\u0430' + } + } +}; + + +/** + * Compact number formatting symbols for locale bg_BG. + */ +goog.i18n.CompactNumberFormatSymbols_bg_BG = + goog.i18n.CompactNumberFormatSymbols_bg; + + +/** + * Compact number formatting symbols for locale bn. + */ +goog.i18n.CompactNumberFormatSymbols_bn = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u09B9\u09BE\u099C\u09BE\u09B0' + }, + '10000': { + 'other': '00 \u09B9\u09BE\u099C\u09BE\u09B0' + }, + '100000': { + 'other': '000 \u09B9\u09BE\u099C\u09BE\u09B0' + }, + '1000000': { + 'other': '0 \u09AE\u09BF\u09B2\u09BF\u09AF\u09BC\u09A8' + }, + '10000000': { + 'other': '00 \u09AE\u09BF\u09B2\u09BF\u09AF\u09BC\u09A8' + }, + '100000000': { + 'other': '000 \u09AE\u09BF\u09B2\u09BF\u09AF\u09BC\u09A8' + }, + '1000000000': { + 'other': '0 \u09AC\u09BF\u09B2\u09BF\u09AF\u09BC\u09A8' + }, + '10000000000': { + 'other': '00 \u09AC\u09BF\u09B2\u09BF\u09AF\u09BC\u09A8' + }, + '100000000000': { + 'other': '000 \u09AC\u09BF\u09B2\u09BF\u09AF\u09BC\u09A8' + }, + '1000000000000': { + 'other': '0 \u099F\u09CD\u09B0\u09BF\u09B2\u09BF\u09AF\u09BC\u09A8' + }, + '10000000000000': { + 'other': '00 \u099F\u09CD\u09B0\u09BF\u09B2\u09BF\u09AF\u09BC\u09A8' + }, + '100000000000000': { + 'other': '000 \u099F\u09CD\u09B0\u09BF\u09B2\u09BF\u09AF\u09BC\u09A8' + } + } +}; + + +/** + * Compact number formatting symbols for locale bn_BD. + */ +goog.i18n.CompactNumberFormatSymbols_bn_BD = + goog.i18n.CompactNumberFormatSymbols_bn; + + +/** + * Compact number formatting symbols for locale br. + */ +goog.i18n.CompactNumberFormatSymbols_br = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale br_FR. + */ +goog.i18n.CompactNumberFormatSymbols_br_FR = + goog.i18n.CompactNumberFormatSymbols_br; + + +/** + * Compact number formatting symbols for locale ca. + */ +goog.i18n.CompactNumberFormatSymbols_ca = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0000\u00A0M' + }, + '10000000000': { + 'other': '00k\u00A0M' + }, + '100000000000': { + 'other': '000k\u00A0M' + }, + '1000000000000': { + 'other': '0\u00A0B' + }, + '10000000000000': { + 'other': '00\u00A0B' + }, + '100000000000000': { + 'other': '000\u00A0B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 milions' + }, + '10000000': { + 'other': '00 milions' + }, + '100000000': { + 'other': '000 milions' + }, + '1000000000': { + 'other': '0 miliards' + }, + '10000000000': { + 'other': '00 miliards' + }, + '100000000000': { + 'other': '000 miliards' + }, + '1000000000000': { + 'other': '0 bilions' + }, + '10000000000000': { + 'other': '00 bilions' + }, + '100000000000000': { + 'other': '000 bilions' + } + } +}; + + +/** + * Compact number formatting symbols for locale ca_AD. + */ +goog.i18n.CompactNumberFormatSymbols_ca_AD = + goog.i18n.CompactNumberFormatSymbols_ca; + + +/** + * Compact number formatting symbols for locale ca_ES. + */ +goog.i18n.CompactNumberFormatSymbols_ca_ES = + goog.i18n.CompactNumberFormatSymbols_ca; + + +/** + * Compact number formatting symbols for locale chr. + */ +goog.i18n.CompactNumberFormatSymbols_chr = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale chr_US. + */ +goog.i18n.CompactNumberFormatSymbols_chr_US = + goog.i18n.CompactNumberFormatSymbols_chr; + + +/** + * Compact number formatting symbols for locale cs. + */ +goog.i18n.CompactNumberFormatSymbols_cs = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0tis.' + }, + '10000': { + 'other': '00\u00A0tis.' + }, + '100000': { + 'other': '000\u00A0tis.' + }, + '1000000': { + 'other': '0\u00A0mil.' + }, + '10000000': { + 'other': '00\u00A0mil.' + }, + '100000000': { + 'other': '000\u00A0mil.' + }, + '1000000000': { + 'other': '0\u00A0mld.' + }, + '10000000000': { + 'other': '00\u00A0mld.' + }, + '100000000000': { + 'other': '000\u00A0mld.' + }, + '1000000000000': { + 'other': '0\u00A0bil.' + }, + '10000000000000': { + 'other': '00\u00A0bil.' + }, + '100000000000000': { + 'other': '000\u00A0bil.' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '00 tis\u00EDc' + }, + '100000': { + 'other': '000 tis\u00EDc' + }, + '1000000': { + 'other': '0 milion\u016F' + }, + '10000000': { + 'other': '00 milion\u016F' + }, + '100000000': { + 'other': '000 milion\u016F' + }, + '1000000000': { + 'other': '0 miliard' + }, + '10000000000': { + 'other': '00 miliard' + }, + '100000000000': { + 'other': '000 miliard' + }, + '1000000000000': { + 'other': '0 bilion\u016F' + }, + '10000000000000': { + 'other': '00 bilion\u016F' + }, + '100000000000000': { + 'other': '000 bilion\u016F' + } + } +}; + + +/** + * Compact number formatting symbols for locale cs_CZ. + */ +goog.i18n.CompactNumberFormatSymbols_cs_CZ = + goog.i18n.CompactNumberFormatSymbols_cs; + + +/** + * Compact number formatting symbols for locale cy. + */ +goog.i18n.CompactNumberFormatSymbols_cy = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 miliwn' + }, + '10000000': { + 'other': '00 miliwn' + }, + '100000000': { + 'other': '000 miliwn' + }, + '1000000000': { + 'other': '0 biliwn' + }, + '10000000000': { + 'other': '00 biliwn' + }, + '100000000000': { + 'other': '000 biliwn' + }, + '1000000000000': { + 'other': '0 triliwn' + }, + '10000000000000': { + 'other': '00 triliwn' + }, + '100000000000000': { + 'other': '000 triliwn' + } + } +}; + + +/** + * Compact number formatting symbols for locale cy_GB. + */ +goog.i18n.CompactNumberFormatSymbols_cy_GB = + goog.i18n.CompactNumberFormatSymbols_cy; + + +/** + * Compact number formatting symbols for locale da. + */ +goog.i18n.CompactNumberFormatSymbols_da = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0' + }, + '100000': { + 'other': '0' + }, + '1000000': { + 'other': '0\u00A0mio' + }, + '10000000': { + 'other': '00\u00A0mio' + }, + '100000000': { + 'other': '000\u00A0mio' + }, + '1000000000': { + 'other': '0\u00A0mia' + }, + '10000000000': { + 'other': '00\u00A0mia' + }, + '100000000000': { + 'other': '000\u00A0mia' + }, + '1000000000000': { + 'other': '0\u00A0bill' + }, + '10000000000000': { + 'other': '00\u00A0bill' + }, + '100000000000000': { + 'other': '000\u00A0bill' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 tusind' + }, + '10000': { + 'other': '00 tusind' + }, + '100000': { + 'other': '000 tusind' + }, + '1000000': { + 'other': '0 millioner' + }, + '10000000': { + 'other': '00 millioner' + }, + '100000000': { + 'other': '000 millioner' + }, + '1000000000': { + 'other': '0 milliarder' + }, + '10000000000': { + 'other': '00 milliarder' + }, + '100000000000': { + 'other': '000 milliarder' + }, + '1000000000000': { + 'other': '0 billioner' + }, + '10000000000000': { + 'other': '00 billioner' + }, + '100000000000000': { + 'other': '000 billioner' + } + } +}; + + +/** + * Compact number formatting symbols for locale da_DK. + */ +goog.i18n.CompactNumberFormatSymbols_da_DK = + goog.i18n.CompactNumberFormatSymbols_da; + + +/** + * Compact number formatting symbols for locale de. + */ +goog.i18n.CompactNumberFormatSymbols_de = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0' + }, + '100000': { + 'other': '0' + }, + '1000000': { + 'other': '0\u00A0Mio' + }, + '10000000': { + 'other': '00\u00A0Mio' + }, + '100000000': { + 'other': '000\u00A0Mio' + }, + '1000000000': { + 'other': '0\u00A0Mrd' + }, + '10000000000': { + 'other': '00\u00A0Mrd' + }, + '100000000000': { + 'other': '000\u00A0Mrd' + }, + '1000000000000': { + 'other': '0\u00A0Bio' + }, + '10000000000000': { + 'other': '00\u00A0Bio' + }, + '100000000000000': { + 'other': '000\u00A0Bio' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 Tausend' + }, + '10000': { + 'other': '00 Tausend' + }, + '100000': { + 'other': '000 Tausend' + }, + '1000000': { + 'other': '0 Millionen' + }, + '10000000': { + 'other': '00 Millionen' + }, + '100000000': { + 'other': '000 Millionen' + }, + '1000000000': { + 'other': '0 Milliarden' + }, + '10000000000': { + 'other': '00 Milliarden' + }, + '100000000000': { + 'other': '000 Milliarden' + }, + '1000000000000': { + 'other': '0 Billionen' + }, + '10000000000000': { + 'other': '00 Billionen' + }, + '100000000000000': { + 'other': '000 Billionen' + } + } +}; + + +/** + * Compact number formatting symbols for locale de_AT. + */ +goog.i18n.CompactNumberFormatSymbols_de_AT = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0' + }, + '100000': { + 'other': '0' + }, + '1000000': { + 'other': '0\u00A0Mio' + }, + '10000000': { + 'other': '00\u00A0Mio' + }, + '100000000': { + 'other': '000\u00A0Mio' + }, + '1000000000': { + 'other': '0\u00A0Mrd' + }, + '10000000000': { + 'other': '00\u00A0Mrd' + }, + '100000000000': { + 'other': '000\u00A0Mrd' + }, + '1000000000000': { + 'other': '0\u00A0Bio' + }, + '10000000000000': { + 'other': '00\u00A0Bio' + }, + '100000000000000': { + 'other': '000\u00A0Bio' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 Tausend' + }, + '10000': { + 'other': '00 Tausend' + }, + '100000': { + 'other': '000 Tausend' + }, + '1000000': { + 'other': '0 Millionen' + }, + '10000000': { + 'other': '00 Millionen' + }, + '100000000': { + 'other': '000 Millionen' + }, + '1000000000': { + 'other': '0 Milliarden' + }, + '10000000000': { + 'other': '00 Milliarden' + }, + '100000000000': { + 'other': '000 Milliarden' + }, + '1000000000000': { + 'other': '0 Billionen' + }, + '10000000000000': { + 'other': '00 Billionen' + }, + '100000000000000': { + 'other': '000 Billionen' + } + } +}; + + +/** + * Compact number formatting symbols for locale de_BE. + */ +goog.i18n.CompactNumberFormatSymbols_de_BE = + goog.i18n.CompactNumberFormatSymbols_de; + + +/** + * Compact number formatting symbols for locale de_CH. + */ +goog.i18n.CompactNumberFormatSymbols_de_CH = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0' + }, + '100000': { + 'other': '0' + }, + '1000000': { + 'other': '0\u00A0Mio' + }, + '10000000': { + 'other': '00\u00A0Mio' + }, + '100000000': { + 'other': '000\u00A0Mio' + }, + '1000000000': { + 'other': '0\u00A0Mrd' + }, + '10000000000': { + 'other': '00\u00A0Mrd' + }, + '100000000000': { + 'other': '000\u00A0Mrd' + }, + '1000000000000': { + 'other': '0\u00A0Bio' + }, + '10000000000000': { + 'other': '00\u00A0Bio' + }, + '100000000000000': { + 'other': '000\u00A0Bio' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 Tausend' + }, + '10000': { + 'other': '00 Tausend' + }, + '100000': { + 'other': '000 Tausend' + }, + '1000000': { + 'other': '0 Millionen' + }, + '10000000': { + 'other': '00 Millionen' + }, + '100000000': { + 'other': '000 Millionen' + }, + '1000000000': { + 'other': '0 Milliarden' + }, + '10000000000': { + 'other': '00 Milliarden' + }, + '100000000000': { + 'other': '000 Milliarden' + }, + '1000000000000': { + 'other': '0 Billionen' + }, + '10000000000000': { + 'other': '00 Billionen' + }, + '100000000000000': { + 'other': '000 Billionen' + } + } +}; + + +/** + * Compact number formatting symbols for locale de_DE. + */ +goog.i18n.CompactNumberFormatSymbols_de_DE = + goog.i18n.CompactNumberFormatSymbols_de; + + +/** + * Compact number formatting symbols for locale de_LU. + */ +goog.i18n.CompactNumberFormatSymbols_de_LU = + goog.i18n.CompactNumberFormatSymbols_de; + + +/** + * Compact number formatting symbols for locale el. + */ +goog.i18n.CompactNumberFormatSymbols_el = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u03C7\u03B9\u03BB.' + }, + '10000': { + 'other': '00\u00A0\u03C7\u03B9\u03BB.' + }, + '100000': { + 'other': '000\u00A0\u03C7\u03B9\u03BB.' + }, + '1000000': { + 'other': '0\u00A0\u03B5\u03BA.' + }, + '10000000': { + 'other': '00\u00A0\u03B5\u03BA.' + }, + '100000000': { + 'other': '000\u00A0\u03B5\u03BA.' + }, + '1000000000': { + 'other': '0\u00A0\u03B4\u03B9\u03C2' + }, + '10000000000': { + 'other': '00\u00A0\u03B4\u03B9\u03C2' + }, + '100000000000': { + 'other': '000\u00A0\u03B4\u03B9\u03C2' + }, + '1000000000000': { + 'other': '0\u00A0\u03C4\u03C1\u03B9\u03C2' + }, + '10000000000000': { + 'other': '00\u00A0\u03C4\u03C1\u03B9\u03C2' + }, + '100000000000000': { + 'other': '000\u00A0\u03C4\u03C1\u03B9\u03C2' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u03C7\u03B9\u03BB\u03B9\u03AC\u03B4\u03B5\u03C2' + }, + '10000': { + 'other': '00 \u03C7\u03B9\u03BB\u03B9\u03AC\u03B4\u03B5\u03C2' + }, + '100000': { + 'other': '000 \u03C7\u03B9\u03BB\u03B9\u03AC\u03B4\u03B5\u03C2' + }, + '1000000': { + 'other': '0 \u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1' + }, + '10000000': { + 'other': '00 \u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1' + }, + '100000000': { + 'other': '000 \u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1' + }, + '1000000000': { + 'other': '0 \u03B4\u03B9\u03C3\u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1' + }, + '10000000000': { + 'other': '00 \u03B4\u03B9\u03C3\u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1' + }, + '100000000000': { + 'other': '000 \u03B4\u03B9\u03C3\u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1' + }, + '1000000000000': { + 'other': '0 \u03C4\u03C1\u03B9\u03C3\u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1' + }, + '10000000000000': { + 'other': '00 \u03C4\u03C1\u03B9\u03C3\u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1' + }, + '100000000000000': { + 'other': '000 \u03C4\u03C1\u03B9\u03C3\u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1' + } + } +}; + + +/** + * Compact number formatting symbols for locale el_GR. + */ +goog.i18n.CompactNumberFormatSymbols_el_GR = + goog.i18n.CompactNumberFormatSymbols_el; + + +/** + * Compact number formatting symbols for locale en. + */ +goog.i18n.CompactNumberFormatSymbols_en = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_AS. + */ +goog.i18n.CompactNumberFormatSymbols_en_AS = + goog.i18n.CompactNumberFormatSymbols_en; + + +/** + * Compact number formatting symbols for locale en_AU. + */ +goog.i18n.CompactNumberFormatSymbols_en_AU = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_Dsrt_US. + */ +goog.i18n.CompactNumberFormatSymbols_en_Dsrt_US = + goog.i18n.CompactNumberFormatSymbols_en; + + +/** + * Compact number formatting symbols for locale en_FM. + */ +goog.i18n.CompactNumberFormatSymbols_en_FM = + goog.i18n.CompactNumberFormatSymbols_en; + + +/** + * Compact number formatting symbols for locale en_GB. + */ +goog.i18n.CompactNumberFormatSymbols_en_GB = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_GU. + */ +goog.i18n.CompactNumberFormatSymbols_en_GU = + goog.i18n.CompactNumberFormatSymbols_en; + + +/** + * Compact number formatting symbols for locale en_IE. + */ +goog.i18n.CompactNumberFormatSymbols_en_IE = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_IN. + */ +goog.i18n.CompactNumberFormatSymbols_en_IN = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_MH. + */ +goog.i18n.CompactNumberFormatSymbols_en_MH = + goog.i18n.CompactNumberFormatSymbols_en; + + +/** + * Compact number formatting symbols for locale en_MP. + */ +goog.i18n.CompactNumberFormatSymbols_en_MP = + goog.i18n.CompactNumberFormatSymbols_en; + + +/** + * Compact number formatting symbols for locale en_PR. + */ +goog.i18n.CompactNumberFormatSymbols_en_PR = + goog.i18n.CompactNumberFormatSymbols_en; + + +/** + * Compact number formatting symbols for locale en_PW. + */ +goog.i18n.CompactNumberFormatSymbols_en_PW = + goog.i18n.CompactNumberFormatSymbols_en; + + +/** + * Compact number formatting symbols for locale en_SG. + */ +goog.i18n.CompactNumberFormatSymbols_en_SG = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_TC. + */ +goog.i18n.CompactNumberFormatSymbols_en_TC = + goog.i18n.CompactNumberFormatSymbols_en; + + +/** + * Compact number formatting symbols for locale en_UM. + */ +goog.i18n.CompactNumberFormatSymbols_en_UM = + goog.i18n.CompactNumberFormatSymbols_en; + + +/** + * Compact number formatting symbols for locale en_US. + */ +goog.i18n.CompactNumberFormatSymbols_en_US = + goog.i18n.CompactNumberFormatSymbols_en; + + +/** + * Compact number formatting symbols for locale en_VG. + */ +goog.i18n.CompactNumberFormatSymbols_en_VG = + goog.i18n.CompactNumberFormatSymbols_en; + + +/** + * Compact number formatting symbols for locale en_VI. + */ +goog.i18n.CompactNumberFormatSymbols_en_VI = + goog.i18n.CompactNumberFormatSymbols_en; + + +/** + * Compact number formatting symbols for locale en_ZA. + */ +goog.i18n.CompactNumberFormatSymbols_en_ZA = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale es. + */ +goog.i18n.CompactNumberFormatSymbols_es = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0000\u00A0M' + }, + '10000000000': { + 'other': '00\u00A0K\u00A0M' + }, + '100000000000': { + 'other': '000\u00A0K\u00A0M' + }, + '1000000000000': { + 'other': '0\u00A0B' + }, + '10000000000000': { + 'other': '00\u00A0B' + }, + '100000000000000': { + 'other': '000\u00A0B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 millones' + }, + '10000000': { + 'other': '00 millones' + }, + '100000000': { + 'other': '000 millones' + }, + '1000000000': { + 'other': '0 millardos' + }, + '10000000000': { + 'other': '00 millardos' + }, + '100000000000': { + 'other': '000 millardos' + }, + '1000000000000': { + 'other': '0 billones' + }, + '10000000000000': { + 'other': '00 billones' + }, + '100000000000000': { + 'other': '000 billones' + } + } +}; + + +/** + * Compact number formatting symbols for locale es_419. + */ +goog.i18n.CompactNumberFormatSymbols_es_419 = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '00k' + }, + '100000': { + 'other': '000k' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0k\u00A0M' + }, + '10000000000': { + 'other': '00k\u00A0M' + }, + '100000000000': { + 'other': '000k\u00A0M' + }, + '1000000000000': { + 'other': '0\u00A0B' + }, + '10000000000000': { + 'other': '00\u00A0B' + }, + '100000000000000': { + 'other': '000\u00A0B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 millones' + }, + '10000000': { + 'other': '00 millones' + }, + '100000000': { + 'other': '000 millones' + }, + '1000000000': { + 'other': '0 millardos' + }, + '10000000000': { + 'other': '00 millardos' + }, + '100000000000': { + 'other': '000 millardos' + }, + '1000000000000': { + 'other': '0 billones' + }, + '10000000000000': { + 'other': '00 billones' + }, + '100000000000000': { + 'other': '000 billones' + } + } +}; + + +/** + * Compact number formatting symbols for locale es_EA. + */ +goog.i18n.CompactNumberFormatSymbols_es_EA = + goog.i18n.CompactNumberFormatSymbols_es; + + +/** + * Compact number formatting symbols for locale es_ES. + */ +goog.i18n.CompactNumberFormatSymbols_es_ES = + goog.i18n.CompactNumberFormatSymbols_es; + + +/** + * Compact number formatting symbols for locale es_IC. + */ +goog.i18n.CompactNumberFormatSymbols_es_IC = + goog.i18n.CompactNumberFormatSymbols_es; + + +/** + * Compact number formatting symbols for locale et. + */ +goog.i18n.CompactNumberFormatSymbols_et = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0tuh' + }, + '10000': { + 'other': '00\u00A0tuh' + }, + '100000': { + 'other': '000\u00A0tuh' + }, + '1000000': { + 'other': '0\u00A0mln' + }, + '10000000': { + 'other': '00\u00A0mln' + }, + '100000000': { + 'other': '000\u00A0mln' + }, + '1000000000': { + 'other': '0\u00A0mld' + }, + '10000000000': { + 'other': '00\u00A0mld' + }, + '100000000000': { + 'other': '000\u00A0mld' + }, + '1000000000000': { + 'other': '0\u00A0trl' + }, + '10000000000000': { + 'other': '00\u00A0trl' + }, + '100000000000000': { + 'other': '000\u00A0trl' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 tuhat' + }, + '10000': { + 'other': '00 tuhat' + }, + '100000': { + 'other': '000 tuhat' + }, + '1000000': { + 'other': '0 miljonit' + }, + '10000000': { + 'other': '00 miljonit' + }, + '100000000': { + 'other': '000 miljonit' + }, + '1000000000': { + 'other': '0 miljardit' + }, + '10000000000': { + 'other': '00 miljardit' + }, + '100000000000': { + 'other': '000 miljardit' + }, + '1000000000000': { + 'other': '0 triljonit' + }, + '10000000000000': { + 'other': '00 triljonit' + }, + '100000000000000': { + 'other': '000 triljonit' + } + } +}; + + +/** + * Compact number formatting symbols for locale et_EE. + */ +goog.i18n.CompactNumberFormatSymbols_et_EE = + goog.i18n.CompactNumberFormatSymbols_et; + + +/** + * Compact number formatting symbols for locale eu. + */ +goog.i18n.CompactNumberFormatSymbols_eu = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0' + }, + '100000': { + 'other': '0' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0000\u00A0M' + }, + '10000000000': { + 'other': '00k\u00A0M' + }, + '100000000000': { + 'other': '000k\u00A0M' + }, + '1000000000000': { + 'other': '0\u00A0B' + }, + '10000000000000': { + 'other': '00\u00A0B' + }, + '100000000000000': { + 'other': '000\u00A0B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0' + }, + '100000': { + 'other': '0' + }, + '1000000': { + 'other': '0 milioi' + }, + '10000000': { + 'other': '00 milioi' + }, + '100000000': { + 'other': '000 milioi' + }, + '1000000000': { + 'other': '0000 milioi' + }, + '10000000000': { + 'other': '00000 milioi' + }, + '100000000000': { + 'other': '000000 milioi' + }, + '1000000000000': { + 'other': '0 bilioi' + }, + '10000000000000': { + 'other': '00 bilioi' + }, + '100000000000000': { + 'other': '000 bilioi' + } + } +}; + + +/** + * Compact number formatting symbols for locale eu_ES. + */ +goog.i18n.CompactNumberFormatSymbols_eu_ES = + goog.i18n.CompactNumberFormatSymbols_eu; + + +/** + * Compact number formatting symbols for locale fa. + */ +goog.i18n.CompactNumberFormatSymbols_fa = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0647\u0632\u0627\u0631' + }, + '10000': { + 'other': '00 \u0647\u0632\u0627\u0631' + }, + '100000': { + 'other': '000 \u0647\u0632\u0627\u0631' + }, + '1000000': { + 'other': '0 \u0645\u06CC\u0644\u06CC\u0648\u0646' + }, + '10000000': { + 'other': '00 \u0645\u06CC\u0644\u06CC\u0648\u0646' + }, + '100000000': { + 'other': '000 \u0645\u06CC\u0644\u06CC\u0648\u0646' + }, + '1000000000': { + 'other': '0 \u0645\u06CC\u0644\u06CC\u0627\u0631\u062F' + }, + '10000000000': { + 'other': '00 \u0645\u06CC\u0644\u06CC\u0627\u0631\u062F' + }, + '100000000000': { + 'other': '000 \u0645\u06CC\u0644\u06CC\u0627\u0631\u062F' + }, + '1000000000000': { + 'other': '0 \u0647\u0632\u0627\u0631 \u0645\u06CC\u0644\u06CC\u0627\u0631\u062F' + }, + '10000000000000': { + 'other': '00 \u0647\u0632\u0627\u0631 \u0645\u06CC\u0644\u06CC\u0627\u0631\u062F' + }, + '100000000000000': { + 'other': '000 \u0647\u0632\u0627\u0631 \u0645\u06CC\u0644\u06CC\u0627\u0631\u062F' + } + } +}; + + +/** + * Compact number formatting symbols for locale fa_IR. + */ +goog.i18n.CompactNumberFormatSymbols_fa_IR = + goog.i18n.CompactNumberFormatSymbols_fa; + + +/** + * Compact number formatting symbols for locale fi. + */ +goog.i18n.CompactNumberFormatSymbols_fi = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0t.' + }, + '10000': { + 'other': '00\u00A0t.' + }, + '100000': { + 'other': '000\u00A0t.' + }, + '1000000': { + 'other': '0\u00A0milj.' + }, + '10000000': { + 'other': '00\u00A0milj.' + }, + '100000000': { + 'other': '000\u00A0milj.' + }, + '1000000000': { + 'other': '0\u00A0mrd.' + }, + '10000000000': { + 'other': '00\u00A0mrd.' + }, + '100000000000': { + 'other': '000\u00A0mrd.' + }, + '1000000000000': { + 'other': '0\u00A0bilj.' + }, + '10000000000000': { + 'other': '00\u00A0bilj.' + }, + '100000000000000': { + 'other': '000\u00A0bilj.' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 tuhatta' + }, + '10000': { + 'other': '00 tuhatta' + }, + '100000': { + 'other': '000 tuhatta' + }, + '1000000': { + 'other': '0 miljoonaa' + }, + '10000000': { + 'other': '00 miljoonaa' + }, + '100000000': { + 'other': '000 miljoonaa' + }, + '1000000000': { + 'other': '0 miljardia' + }, + '10000000000': { + 'other': '00 miljardia' + }, + '100000000000': { + 'other': '000 miljardia' + }, + '1000000000000': { + 'other': '0 biljoonaa' + }, + '10000000000000': { + 'other': '00 biljoonaa' + }, + '100000000000000': { + 'other': '000 biljoonaa' + } + } +}; + + +/** + * Compact number formatting symbols for locale fi_FI. + */ +goog.i18n.CompactNumberFormatSymbols_fi_FI = + goog.i18n.CompactNumberFormatSymbols_fi; + + +/** + * Compact number formatting symbols for locale fil. + */ +goog.i18n.CompactNumberFormatSymbols_fil = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 (na) libo' + }, + '10000': { + 'other': '00 (na) libo' + }, + '100000': { + 'other': '000 (na) libo' + }, + '1000000': { + 'other': '0 (na) milyon' + }, + '10000000': { + 'other': '00 (na) milyon' + }, + '100000000': { + 'other': '000 (na) milyon' + }, + '1000000000': { + 'other': '0 (na) bilyon' + }, + '10000000000': { + 'other': '00 (na) bilyon' + }, + '100000000000': { + 'other': '000 (na) bilyon' + }, + '1000000000000': { + 'other': '0 (na) trilyon' + }, + '10000000000000': { + 'other': '00 (na) trilyon' + }, + '100000000000000': { + 'other': '000 (na) trilyon' + } + } +}; + + +/** + * Compact number formatting symbols for locale fil_PH. + */ +goog.i18n.CompactNumberFormatSymbols_fil_PH = + goog.i18n.CompactNumberFormatSymbols_fil; + + +/** + * Compact number formatting symbols for locale fr. + */ +goog.i18n.CompactNumberFormatSymbols_fr = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_BL. + */ +goog.i18n.CompactNumberFormatSymbols_fr_BL = + goog.i18n.CompactNumberFormatSymbols_fr; + + +/** + * Compact number formatting symbols for locale fr_CA. + */ +goog.i18n.CompactNumberFormatSymbols_fr_CA = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_FR. + */ +goog.i18n.CompactNumberFormatSymbols_fr_FR = + goog.i18n.CompactNumberFormatSymbols_fr; + + +/** + * Compact number formatting symbols for locale fr_GF. + */ +goog.i18n.CompactNumberFormatSymbols_fr_GF = + goog.i18n.CompactNumberFormatSymbols_fr; + + +/** + * Compact number formatting symbols for locale fr_GP. + */ +goog.i18n.CompactNumberFormatSymbols_fr_GP = + goog.i18n.CompactNumberFormatSymbols_fr; + + +/** + * Compact number formatting symbols for locale fr_MC. + */ +goog.i18n.CompactNumberFormatSymbols_fr_MC = + goog.i18n.CompactNumberFormatSymbols_fr; + + +/** + * Compact number formatting symbols for locale fr_MF. + */ +goog.i18n.CompactNumberFormatSymbols_fr_MF = + goog.i18n.CompactNumberFormatSymbols_fr; + + +/** + * Compact number formatting symbols for locale fr_MQ. + */ +goog.i18n.CompactNumberFormatSymbols_fr_MQ = + goog.i18n.CompactNumberFormatSymbols_fr; + + +/** + * Compact number formatting symbols for locale fr_RE. + */ +goog.i18n.CompactNumberFormatSymbols_fr_RE = + goog.i18n.CompactNumberFormatSymbols_fr; + + +/** + * Compact number formatting symbols for locale fr_YT. + */ +goog.i18n.CompactNumberFormatSymbols_fr_YT = + goog.i18n.CompactNumberFormatSymbols_fr; + + +/** + * Compact number formatting symbols for locale gl. + */ +goog.i18n.CompactNumberFormatSymbols_gl = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '00k' + }, + '100000': { + 'other': '000k' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0000\u00A0M' + }, + '10000000000': { + 'other': '00k\u00A0M' + }, + '100000000000': { + 'other': '000k\u00A0M' + }, + '1000000000000': { + 'other': '0\u00A0B' + }, + '10000000000000': { + 'other': '00\u00A0B' + }, + '100000000000000': { + 'other': '000\u00A0B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 mill\u00F3ns' + }, + '10000000': { + 'other': '00 mill\u00F3ns' + }, + '100000000': { + 'other': '000 mill\u00F3ns' + }, + '1000000000': { + 'other': '0 mil mill\u00F3ns' + }, + '10000000000': { + 'other': '00 mil mill\u00F3ns' + }, + '100000000000': { + 'other': '000 mil mill\u00F3ns' + }, + '1000000000000': { + 'other': '0 bill\u00F3ns' + }, + '10000000000000': { + 'other': '00 bill\u00F3ns' + }, + '100000000000000': { + 'other': '000 bill\u00F3ns' + } + } +}; + + +/** + * Compact number formatting symbols for locale gl_ES. + */ +goog.i18n.CompactNumberFormatSymbols_gl_ES = + goog.i18n.CompactNumberFormatSymbols_gl; + + +/** + * Compact number formatting symbols for locale gsw. + */ +goog.i18n.CompactNumberFormatSymbols_gsw = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0tsd' + }, + '10000': { + 'other': '00\u00A0tsd' + }, + '100000': { + 'other': '000\u00A0tsd' + }, + '1000000': { + 'other': '0\u00A0Mio' + }, + '10000000': { + 'other': '00\u00A0Mio' + }, + '100000000': { + 'other': '000\u00A0Mio' + }, + '1000000000': { + 'other': '0\u00A0Mrd' + }, + '10000000000': { + 'other': '00\u00A0Mrd' + }, + '100000000000': { + 'other': '000\u00A0Mrd' + }, + '1000000000000': { + 'other': '0\u00A0Bio' + }, + '10000000000000': { + 'other': '00\u00A0Bio' + }, + '100000000000000': { + 'other': '000\u00A0Bio' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 tausend' + }, + '10000': { + 'other': '00 tausend' + }, + '100000': { + 'other': '000 tausend' + }, + '1000000': { + 'other': '0 Millionen' + }, + '10000000': { + 'other': '00 Millionen' + }, + '100000000': { + 'other': '000 Millionen' + }, + '1000000000': { + 'other': '0 Milliarden' + }, + '10000000000': { + 'other': '00 Milliarden' + }, + '100000000000': { + 'other': '000 Milliarden' + }, + '1000000000000': { + 'other': '0 Billionen' + }, + '10000000000000': { + 'other': '00 Billionen' + }, + '100000000000000': { + 'other': '000 Billionen' + } + } +}; + + +/** + * Compact number formatting symbols for locale gsw_CH. + */ +goog.i18n.CompactNumberFormatSymbols_gsw_CH = + goog.i18n.CompactNumberFormatSymbols_gsw; + + +/** + * Compact number formatting symbols for locale gu. + */ +goog.i18n.CompactNumberFormatSymbols_gu = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0AB9\u0A9C\u0ABE\u0AB0' + }, + '10000': { + 'other': '00 \u0AB9\u0A9C\u0ABE\u0AB0' + }, + '100000': { + 'other': '000 \u0AB9\u0A9C\u0ABE\u0AB0' + }, + '1000000': { + 'other': '0 \u0AAE\u0ABF\u0AB2\u0ABF\u0AAF\u0AA8' + }, + '10000000': { + 'other': '00 \u0AAE\u0ABF\u0AB2\u0ABF\u0AAF\u0AA8' + }, + '100000000': { + 'other': '000 \u0AAE\u0ABF\u0AB2\u0ABF\u0AAF\u0AA8' + }, + '1000000000': { + 'other': '0 \u0AAC\u0ABF\u0AB2\u0ABF\u0AAF\u0AA8' + }, + '10000000000': { + 'other': '00 \u0AAC\u0ABF\u0AB2\u0ABF\u0AAF\u0AA8' + }, + '100000000000': { + 'other': '000 \u0AAC\u0ABF\u0AB2\u0ABF\u0AAF\u0AA8' + }, + '1000000000000': { + 'other': '0 \u0A9F\u0ACD\u0AB0\u0ABF\u0AB2\u0ABF\u0AAF\u0AA8' + }, + '10000000000000': { + 'other': '00 \u0A9F\u0ACD\u0AB0\u0ABF\u0AB2\u0ABF\u0AAF\u0AA8' + }, + '100000000000000': { + 'other': '000 \u0A9F\u0ACD\u0AB0\u0ABF\u0AB2\u0ABF\u0AAF\u0AA8' + } + } +}; + + +/** + * Compact number formatting symbols for locale gu_IN. + */ +goog.i18n.CompactNumberFormatSymbols_gu_IN = + goog.i18n.CompactNumberFormatSymbols_gu; + + +/** + * Compact number formatting symbols for locale haw. + */ +goog.i18n.CompactNumberFormatSymbols_haw = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale haw_US. + */ +goog.i18n.CompactNumberFormatSymbols_haw_US = + goog.i18n.CompactNumberFormatSymbols_haw; + + +/** + * Compact number formatting symbols for locale he. + */ +goog.i18n.CompactNumberFormatSymbols_he = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '\u200F0\u00A0\u05D0\u05DC\u05E3' + }, + '10000': { + 'other': '\u200F00\u00A0\u05D0\u05DC\u05E3' + }, + '100000': { + 'other': '\u200F000\u00A0\u05D0\u05DC\u05E3' + }, + '1000000': { + 'other': '\u200F0\u00A0\u05DE\u05D9\u05DC\u05D9\u05D5\u05DF' + }, + '10000000': { + 'other': '\u200F00\u00A0\u05DE\u05D9\u05DC\u05D9\u05D5\u05DF' + }, + '100000000': { + 'other': '\u200F000\u00A0\u05DE\u05D9\u05DC\u05D9\u05D5\u05DF' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '\u200F0 \u05D0\u05DC\u05E3' + }, + '10000': { + 'other': '\u200F00 \u05D0\u05DC\u05E3' + }, + '100000': { + 'other': '\u200F000 \u05D0\u05DC\u05E3' + }, + '1000000': { + 'other': '\u200F0 \u05DE\u05D9\u05DC\u05D9\u05D5\u05DF' + }, + '10000000': { + 'other': '\u200F00 \u05DE\u05D9\u05DC\u05D9\u05D5\u05DF' + }, + '100000000': { + 'other': '\u200F000 \u05DE\u05D9\u05DC\u05D9\u05D5\u05DF' + }, + '1000000000': { + 'other': '\u200F0 \u05DE\u05D9\u05DC\u05D9\u05D0\u05E8\u05D3' + }, + '10000000000': { + 'other': '\u200F00 \u05DE\u05D9\u05DC\u05D9\u05D0\u05E8\u05D3' + }, + '100000000000': { + 'other': '\u200F000 \u05DE\u05D9\u05DC\u05D9\u05D0\u05E8\u05D3' + }, + '1000000000000': { + 'other': '\u200F0 \u05D8\u05E8\u05D9\u05DC\u05D9\u05D5\u05DF' + }, + '10000000000000': { + 'other': '\u200F00 \u05D8\u05E8\u05D9\u05DC\u05D9\u05D5\u05DF' + }, + '100000000000000': { + 'other': '\u200F000 \u05D8\u05E8\u05D9\u05DC\u05D9\u05D5\u05DF' + } + } +}; + + +/** + * Compact number formatting symbols for locale he_IL. + */ +goog.i18n.CompactNumberFormatSymbols_he_IL = + goog.i18n.CompactNumberFormatSymbols_he; + + +/** + * Compact number formatting symbols for locale hi. + */ +goog.i18n.CompactNumberFormatSymbols_hi = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0' + }, + '100000': { + 'other': '0L' + }, + '1000000': { + 'other': '00L' + }, + '10000000': { + 'other': '0Cr' + }, + '100000000': { + 'other': '00Cr' + }, + '1000000000': { + 'other': '000Cr' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0939\u091C\u093C\u093E\u0930' + }, + '10000': { + 'other': '00 \u0939\u091C\u093C\u093E\u0930' + }, + '100000': { + 'other': '0 \u0932\u093E\u0916' + }, + '1000000': { + 'other': '00 \u0932\u093E\u0916' + }, + '10000000': { + 'other': '0 \u0915\u0930\u094B\u0921\u093C' + }, + '100000000': { + 'other': '00 \u0915\u0930\u094B\u0921\u093C' + }, + '1000000000': { + 'other': '0 \u0905\u0930\u092C' + }, + '10000000000': { + 'other': '00 \u0905\u0930\u092C' + }, + '100000000000': { + 'other': '0 \u0916\u0930\u092C' + }, + '1000000000000': { + 'other': '00 \u0916\u0930\u092C' + }, + '10000000000000': { + 'other': '000 \u0916\u0930\u092C' + }, + '100000000000000': { + 'other': '0000 \u0916\u0930\u092C' + } + } +}; + + +/** + * Compact number formatting symbols for locale hi_IN. + */ +goog.i18n.CompactNumberFormatSymbols_hi_IN = + goog.i18n.CompactNumberFormatSymbols_hi; + + +/** + * Compact number formatting symbols for locale hr. + */ +goog.i18n.CompactNumberFormatSymbols_hr = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0' + }, + '100000': { + 'other': '0' + }, + '1000000': { + 'other': '0\u00A0mil.' + }, + '10000000': { + 'other': '00\u00A0mil.' + }, + '100000000': { + 'other': '000\u00A0mil.' + }, + '1000000000': { + 'other': '0\u00A0mlr.' + }, + '10000000000': { + 'other': '00\u00A0mlr.' + }, + '100000000000': { + 'other': '000\u00A0mlr.' + }, + '1000000000000': { + 'other': '0\u00A0bil.' + }, + '10000000000000': { + 'other': '00\u00A0bil.' + }, + '100000000000000': { + 'other': '000\u00A0bil.' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0' + }, + '100000': { + 'other': '0' + }, + '1000000': { + 'other': '0 milijuna' + }, + '10000000': { + 'other': '00 milijuna' + }, + '100000000': { + 'other': '000 milijuna' + }, + '1000000000': { + 'other': '0 milijarda' + }, + '10000000000': { + 'other': '00 milijarda' + }, + '100000000000': { + 'other': '000 milijarda' + }, + '1000000000000': { + 'other': '0 bilijuna' + }, + '10000000000000': { + 'other': '00 bilijuna' + }, + '100000000000000': { + 'other': '000 bilijuna' + } + } +}; + + +/** + * Compact number formatting symbols for locale hr_HR. + */ +goog.i18n.CompactNumberFormatSymbols_hr_HR = + goog.i18n.CompactNumberFormatSymbols_hr; + + +/** + * Compact number formatting symbols for locale hu. + */ +goog.i18n.CompactNumberFormatSymbols_hu = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0E' + }, + '10000': { + 'other': '00\u00A0E' + }, + '100000': { + 'other': '000\u00A0E' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Mrd' + }, + '10000000000': { + 'other': '00\u00A0Mrd' + }, + '100000000000': { + 'other': '000\u00A0Mrd' + }, + '1000000000000': { + 'other': '0\u00A0B' + }, + '10000000000000': { + 'other': '00\u00A0B' + }, + '100000000000000': { + 'other': '000\u00A0B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 ezer' + }, + '10000': { + 'other': '00 ezer' + }, + '100000': { + 'other': '000 ezer' + }, + '1000000': { + 'other': '0 milli\u00F3' + }, + '10000000': { + 'other': '00 milli\u00F3' + }, + '100000000': { + 'other': '000 milli\u00F3' + }, + '1000000000': { + 'other': '0 milli\u00E1rd' + }, + '10000000000': { + 'other': '00 milli\u00E1rd' + }, + '100000000000': { + 'other': '000 milli\u00E1rd' + }, + '1000000000000': { + 'other': '0 billi\u00F3' + }, + '10000000000000': { + 'other': '00 billi\u00F3' + }, + '100000000000000': { + 'other': '000 billi\u00F3' + } + } +}; + + +/** + * Compact number formatting symbols for locale hu_HU. + */ +goog.i18n.CompactNumberFormatSymbols_hu_HU = + goog.i18n.CompactNumberFormatSymbols_hu; + + +/** + * Compact number formatting symbols for locale id. + */ +goog.i18n.CompactNumberFormatSymbols_id = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '00\u00A0rb' + }, + '100000': { + 'other': '000\u00A0rb' + }, + '1000000': { + 'other': '0\u00A0jt' + }, + '10000000': { + 'other': '00\u00A0jt' + }, + '100000000': { + 'other': '000\u00A0jt' + }, + '1000000000': { + 'other': '0\u00A0M' + }, + '10000000000': { + 'other': '00\u00A0M' + }, + '100000000000': { + 'other': '000\u00A0M' + }, + '1000000000000': { + 'other': '0\u00A0T' + }, + '10000000000000': { + 'other': '00\u00A0T' + }, + '100000000000000': { + 'other': '000\u00A0T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 ribu' + }, + '10000': { + 'other': '00 ribu' + }, + '100000': { + 'other': '000 ribu' + }, + '1000000': { + 'other': '0 juta' + }, + '10000000': { + 'other': '00 juta' + }, + '100000000': { + 'other': '000 juta' + }, + '1000000000': { + 'other': '0 miliar' + }, + '10000000000': { + 'other': '00 miliar' + }, + '100000000000': { + 'other': '000 miliar' + }, + '1000000000000': { + 'other': '0 triliun' + }, + '10000000000000': { + 'other': '00 triliun' + }, + '100000000000000': { + 'other': '000 triliun' + } + } +}; + + +/** + * Compact number formatting symbols for locale id_ID. + */ +goog.i18n.CompactNumberFormatSymbols_id_ID = + goog.i18n.CompactNumberFormatSymbols_id; + + +/** + * Compact number formatting symbols for locale in. + */ +goog.i18n.CompactNumberFormatSymbols_in = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '00\u00A0rb' + }, + '100000': { + 'other': '000\u00A0rb' + }, + '1000000': { + 'other': '0\u00A0jt' + }, + '10000000': { + 'other': '00\u00A0jt' + }, + '100000000': { + 'other': '000\u00A0jt' + }, + '1000000000': { + 'other': '0\u00A0M' + }, + '10000000000': { + 'other': '00\u00A0M' + }, + '100000000000': { + 'other': '000\u00A0M' + }, + '1000000000000': { + 'other': '0\u00A0T' + }, + '10000000000000': { + 'other': '00\u00A0T' + }, + '100000000000000': { + 'other': '000\u00A0T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 ribu' + }, + '10000': { + 'other': '00 ribu' + }, + '100000': { + 'other': '000 ribu' + }, + '1000000': { + 'other': '0 juta' + }, + '10000000': { + 'other': '00 juta' + }, + '100000000': { + 'other': '000 juta' + }, + '1000000000': { + 'other': '0 miliar' + }, + '10000000000': { + 'other': '00 miliar' + }, + '100000000000': { + 'other': '000 miliar' + }, + '1000000000000': { + 'other': '0 triliun' + }, + '10000000000000': { + 'other': '00 triliun' + }, + '100000000000000': { + 'other': '000 triliun' + } + } +}; + + +/** + * Compact number formatting symbols for locale is. + */ +goog.i18n.CompactNumberFormatSymbols_is = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u00FE.' + }, + '10000': { + 'other': '00\u00A0\u00FE.' + }, + '100000': { + 'other': '000\u00A0\u00FE.' + }, + '1000000': { + 'other': '0\u00A0m.' + }, + '10000000': { + 'other': '00\u00A0m.' + }, + '100000000': { + 'other': '000\u00A0m.' + }, + '1000000000': { + 'other': '0\u00A0ma.' + }, + '10000000000': { + 'other': '00\u00A0ma.' + }, + '100000000000': { + 'other': '000\u00A0ma.' + }, + '1000000000000': { + 'other': '0\u00A0bn' + }, + '10000000000000': { + 'other': '00\u00A0bn' + }, + '100000000000000': { + 'other': '000\u00A0bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u00FE\u00FAsund' + }, + '10000': { + 'other': '00 \u00FE\u00FAsund' + }, + '100000': { + 'other': '000 \u00FE\u00FAsund' + }, + '1000000': { + 'other': '0 millj\u00F3nir' + }, + '10000000': { + 'other': '00 millj\u00F3nir' + }, + '100000000': { + 'other': '000 millj\u00F3nir' + }, + '1000000000': { + 'other': '0 milljar\u00F0ar' + }, + '10000000000': { + 'other': '00 milljar\u00F0ar' + }, + '100000000000': { + 'other': '000 milljar\u00F0ar' + }, + '1000000000000': { + 'other': '0 billj\u00F3nir' + }, + '10000000000000': { + 'other': '00 billj\u00F3nir' + }, + '100000000000000': { + 'other': '000 billj\u00F3nir' + } + } +}; + + +/** + * Compact number formatting symbols for locale is_IS. + */ +goog.i18n.CompactNumberFormatSymbols_is_IS = + goog.i18n.CompactNumberFormatSymbols_is; + + +/** + * Compact number formatting symbols for locale it. + */ +goog.i18n.CompactNumberFormatSymbols_it = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0' + }, + '100000': { + 'other': '0' + }, + '1000000': { + 'other': '0\u00A0Mln' + }, + '10000000': { + 'other': '00\u00A0Mln' + }, + '100000000': { + 'other': '000\u00A0Mln' + }, + '1000000000': { + 'other': '0\u00A0Mld' + }, + '10000000000': { + 'other': '00\u00A0Mld' + }, + '100000000000': { + 'other': '000\u00A0Mld' + }, + '1000000000000': { + 'other': '0\u00A0Bln' + }, + '10000000000000': { + 'other': '00\u00A0Bln' + }, + '100000000000000': { + 'other': '000\u00A0Bln' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 migliaia' + }, + '10000': { + 'other': '00 migliaia' + }, + '100000': { + 'other': '000 migliaia' + }, + '1000000': { + 'other': '0 milioni' + }, + '10000000': { + 'other': '00 milioni' + }, + '100000000': { + 'other': '000 milioni' + }, + '1000000000': { + 'other': '0 miliardi' + }, + '10000000000': { + 'other': '00 miliardi' + }, + '100000000000': { + 'other': '000 miliardi' + }, + '1000000000000': { + 'other': '0 bilioni' + }, + '10000000000000': { + 'other': '00 bilioni' + }, + '100000000000000': { + 'other': '000 bilioni' + } + } +}; + + +/** + * Compact number formatting symbols for locale it_IT. + */ +goog.i18n.CompactNumberFormatSymbols_it_IT = + goog.i18n.CompactNumberFormatSymbols_it; + + +/** + * Compact number formatting symbols for locale it_SM. + */ +goog.i18n.CompactNumberFormatSymbols_it_SM = + goog.i18n.CompactNumberFormatSymbols_it; + + +/** + * Compact number formatting symbols for locale iw. + */ +goog.i18n.CompactNumberFormatSymbols_iw = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '\u200F0\u00A0\u05D0\u05DC\u05E3' + }, + '10000': { + 'other': '\u200F00\u00A0\u05D0\u05DC\u05E3' + }, + '100000': { + 'other': '\u200F000\u00A0\u05D0\u05DC\u05E3' + }, + '1000000': { + 'other': '\u200F0\u00A0\u05DE\u05D9\u05DC\u05D9\u05D5\u05DF' + }, + '10000000': { + 'other': '\u200F00\u00A0\u05DE\u05D9\u05DC\u05D9\u05D5\u05DF' + }, + '100000000': { + 'other': '\u200F000\u00A0\u05DE\u05D9\u05DC\u05D9\u05D5\u05DF' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '\u200F0 \u05D0\u05DC\u05E3' + }, + '10000': { + 'other': '\u200F00 \u05D0\u05DC\u05E3' + }, + '100000': { + 'other': '\u200F000 \u05D0\u05DC\u05E3' + }, + '1000000': { + 'other': '\u200F0 \u05DE\u05D9\u05DC\u05D9\u05D5\u05DF' + }, + '10000000': { + 'other': '\u200F00 \u05DE\u05D9\u05DC\u05D9\u05D5\u05DF' + }, + '100000000': { + 'other': '\u200F000 \u05DE\u05D9\u05DC\u05D9\u05D5\u05DF' + }, + '1000000000': { + 'other': '\u200F0 \u05DE\u05D9\u05DC\u05D9\u05D0\u05E8\u05D3' + }, + '10000000000': { + 'other': '\u200F00 \u05DE\u05D9\u05DC\u05D9\u05D0\u05E8\u05D3' + }, + '100000000000': { + 'other': '\u200F000 \u05DE\u05D9\u05DC\u05D9\u05D0\u05E8\u05D3' + }, + '1000000000000': { + 'other': '\u200F0 \u05D8\u05E8\u05D9\u05DC\u05D9\u05D5\u05DF' + }, + '10000000000000': { + 'other': '\u200F00 \u05D8\u05E8\u05D9\u05DC\u05D9\u05D5\u05DF' + }, + '100000000000000': { + 'other': '\u200F000 \u05D8\u05E8\u05D9\u05DC\u05D9\u05D5\u05DF' + } + } +}; + + +/** + * Compact number formatting symbols for locale ja. + */ +goog.i18n.CompactNumberFormatSymbols_ja = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u5343' + }, + '10000': { + 'other': '0\u4E07' + }, + '100000': { + 'other': '00\u4E07' + }, + '1000000': { + 'other': '000\u4E07' + }, + '10000000': { + 'other': '0000\u4E07' + }, + '100000000': { + 'other': '0\u5104' + }, + '1000000000': { + 'other': '00\u5104' + }, + '10000000000': { + 'other': '000\u5104' + }, + '100000000000': { + 'other': '0000\u5104' + }, + '1000000000000': { + 'other': '0\u5146' + }, + '10000000000000': { + 'other': '00\u5146' + }, + '100000000000000': { + 'other': '000\u5146' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0\u5343' + }, + '10000': { + 'other': '0\u4E07' + }, + '100000': { + 'other': '00\u4E07' + }, + '1000000': { + 'other': '000\u4E07' + }, + '10000000': { + 'other': '0000\u4E07' + }, + '100000000': { + 'other': '0\u5104' + }, + '1000000000': { + 'other': '00\u5104' + }, + '10000000000': { + 'other': '000\u5104' + }, + '100000000000': { + 'other': '0000\u5104' + }, + '1000000000000': { + 'other': '0\u5146' + }, + '10000000000000': { + 'other': '00\u5146' + }, + '100000000000000': { + 'other': '000\u5146' + } + } +}; + + +/** + * Compact number formatting symbols for locale ja_JP. + */ +goog.i18n.CompactNumberFormatSymbols_ja_JP = + goog.i18n.CompactNumberFormatSymbols_ja; + + +/** + * Compact number formatting symbols for locale kn. + */ +goog.i18n.CompactNumberFormatSymbols_kn = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0CB8\u0CBE\u0CB5\u0CBF\u0CB0' + }, + '10000': { + 'other': '00 \u0CB8\u0CBE\u0CB5\u0CBF\u0CB0' + }, + '100000': { + 'other': '000 \u0CB8\u0CBE\u0CB5\u0CBF\u0CB0' + }, + '1000000': { + 'other': '0 \u0CAE\u0CBF\u0CB2\u0CBF\u0CAF\u0CA8\u0CCD' + }, + '10000000': { + 'other': '00 \u0CAE\u0CBF\u0CB2\u0CBF\u0CAF\u0CA8\u0CCD' + }, + '100000000': { + 'other': '000 \u0CAE\u0CBF\u0CB2\u0CBF\u0CAF\u0CA8\u0CCD' + }, + '1000000000': { + 'other': '0 \u0CAC\u0CBF\u0CB2\u0CBF\u0CAF\u0CA8\u0CCD' + }, + '10000000000': { + 'other': '00 \u0CAC\u0CBF\u0CB2\u0CBF\u0CAF\u0CA8\u0CCD' + }, + '100000000000': { + 'other': '000 \u0CAC\u0CBF\u0CB2\u0CBF\u0CAF\u0CA8\u0CCD' + }, + '1000000000000': { + 'other': '0 \u0C9F\u0CCD\u0CB0\u0CBF\u0CB2\u0CBF\u0CAF\u0CA8\u0CCD\u200C' + }, + '10000000000000': { + 'other': '00 \u0C9F\u0CCD\u0CB0\u0CBF\u0CB2\u0CBF\u0CAF\u0CA8\u0CCD\u200C' + }, + '100000000000000': { + 'other': '000 \u0C9F\u0CCD\u0CB0\u0CBF\u0CB2\u0CBF\u0CAF\u0CA8\u0CCD\u200C' + } + } +}; + + +/** + * Compact number formatting symbols for locale kn_IN. + */ +goog.i18n.CompactNumberFormatSymbols_kn_IN = + goog.i18n.CompactNumberFormatSymbols_kn; + + +/** + * Compact number formatting symbols for locale ko. + */ +goog.i18n.CompactNumberFormatSymbols_ko = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0\uB9CC' + }, + '100000': { + 'other': '00\uB9CC' + }, + '1000000': { + 'other': '000\uB9CC' + }, + '10000000': { + 'other': '0000\uB9CC' + }, + '100000000': { + 'other': '0\uC5B5' + }, + '1000000000': { + 'other': '00\uC5B5' + }, + '10000000000': { + 'other': '000\uC5B5' + }, + '100000000000': { + 'other': '0000\uC5B5' + }, + '1000000000000': { + 'other': '0\uC870' + }, + '10000000000000': { + 'other': '00\uC870' + }, + '100000000000000': { + 'other': '000\uC870' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0\uB9CC' + }, + '100000': { + 'other': '00\uB9CC' + }, + '1000000': { + 'other': '000\uB9CC' + }, + '10000000': { + 'other': '0000\uB9CC' + }, + '100000000': { + 'other': '0\uC5B5' + }, + '1000000000': { + 'other': '00\uC5B5' + }, + '10000000000': { + 'other': '000\uC5B5' + }, + '100000000000': { + 'other': '0000\uC5B5' + }, + '1000000000000': { + 'other': '0\uC870' + }, + '10000000000000': { + 'other': '00\uC870' + }, + '100000000000000': { + 'other': '000\uC870' + } + } +}; + + +/** + * Compact number formatting symbols for locale ko_KR. + */ +goog.i18n.CompactNumberFormatSymbols_ko_KR = + goog.i18n.CompactNumberFormatSymbols_ko; + + +/** + * Compact number formatting symbols for locale ln. + */ +goog.i18n.CompactNumberFormatSymbols_ln = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ln_CD. + */ +goog.i18n.CompactNumberFormatSymbols_ln_CD = + goog.i18n.CompactNumberFormatSymbols_ln; + + +/** + * Compact number formatting symbols for locale lt. + */ +goog.i18n.CompactNumberFormatSymbols_lt = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0G' + }, + '10000000000': { + 'other': '00\u00A0G' + }, + '100000000000': { + 'other': '000\u00A0G' + }, + '1000000000000': { + 'other': '0\u00A0T' + }, + '10000000000000': { + 'other': '00\u00A0T' + }, + '100000000000000': { + 'other': '000\u00A0T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 t\u016Bkstan\u010Di\u0173' + }, + '10000': { + 'other': '00 t\u016Bkstan\u010Di\u0173' + }, + '100000': { + 'other': '000 t\u016Bkstan\u010Di\u0173' + }, + '1000000': { + 'other': '0 milijon\u0173' + }, + '10000000': { + 'other': '00 milijon\u0173' + }, + '100000000': { + 'other': '000 milijon\u0173' + }, + '1000000000': { + 'other': '0 milijard\u0173' + }, + '10000000000': { + 'other': '00 milijard\u0173' + }, + '100000000000': { + 'other': '000 milijard\u0173' + }, + '1000000000000': { + 'other': '0 trilijon\u0173' + }, + '10000000000000': { + 'other': '00 trilijon\u0173' + }, + '100000000000000': { + 'other': '000 trilijon\u0173' + } + } +}; + + +/** + * Compact number formatting symbols for locale lt_LT. + */ +goog.i18n.CompactNumberFormatSymbols_lt_LT = + goog.i18n.CompactNumberFormatSymbols_lt; + + +/** + * Compact number formatting symbols for locale lv. + */ +goog.i18n.CompactNumberFormatSymbols_lv = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0t\u016Bkst.' + }, + '10000': { + 'other': '00\u00A0t\u016Bkst.' + }, + '100000': { + 'other': '000\u00A0t\u016Bkst.' + }, + '1000000': { + 'other': '0\u00A0milj.' + }, + '10000000': { + 'other': '00\u00A0milj.' + }, + '100000000': { + 'other': '000\u00A0milj.' + }, + '1000000000': { + 'other': '0\u00A0md' + }, + '10000000000': { + 'other': '00\u00A0md' + }, + '100000000000': { + 'other': '000\u00A0md' + }, + '1000000000000': { + 'other': '0\u00A0trilj.' + }, + '10000000000000': { + 'other': '00\u00A0trilj.' + }, + '100000000000000': { + 'other': '000\u00A0trilj.' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 t\u016Bksto\u0161i' + }, + '10000': { + 'other': '00 t\u016Bksto\u0161i' + }, + '100000': { + 'other': '000 t\u016Bksto\u0161i' + }, + '1000000': { + 'other': '0 miljoni' + }, + '10000000': { + 'other': '00 miljoni' + }, + '100000000': { + 'other': '000 miljoni' + }, + '1000000000': { + 'other': '0 miljardi' + }, + '10000000000': { + 'other': '00 miljardi' + }, + '100000000000': { + 'other': '000 miljardi' + }, + '1000000000000': { + 'other': '0 trilj.' + }, + '10000000000000': { + 'other': '00 trilj.' + }, + '100000000000000': { + 'other': '000 trilj.' + } + } +}; + + +/** + * Compact number formatting symbols for locale lv_LV. + */ +goog.i18n.CompactNumberFormatSymbols_lv_LV = + goog.i18n.CompactNumberFormatSymbols_lv; + + +/** + * Compact number formatting symbols for locale ml. + */ +goog.i18n.CompactNumberFormatSymbols_ml = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0D06\u0D2F\u0D3F\u0D30\u0D02' + }, + '10000': { + 'other': '00 \u0D06\u0D2F\u0D3F\u0D30\u0D02' + }, + '100000': { + 'other': '000 \u0D06\u0D2F\u0D3F\u0D30\u0D02' + }, + '1000000': { + 'other': '0 \u0D26\u0D36\u0D32\u0D15\u0D4D\u0D37\u0D02' + }, + '10000000': { + 'other': '00 \u0D26\u0D36\u0D32\u0D15\u0D4D\u0D37\u0D02' + }, + '100000000': { + 'other': '000 \u0D26\u0D36\u0D32\u0D15\u0D4D\u0D37\u0D02' + }, + '1000000000': { + 'other': '0 \u0D32\u0D15\u0D4D\u0D37\u0D02 \u0D15\u0D4B\u0D1F\u0D3F' + }, + '10000000000': { + 'other': '00 \u0D32\u0D15\u0D4D\u0D37\u0D02 \u0D15\u0D4B\u0D1F\u0D3F' + }, + '100000000000': { + 'other': '000 \u0D32\u0D15\u0D4D\u0D37\u0D02 \u0D15\u0D4B\u0D1F\u0D3F' + }, + '1000000000000': { + 'other': '0 \u0D1F\u0D4D\u0D30\u0D3F\u0D32\u0D4D\u0D2F\u0D7A' + }, + '10000000000000': { + 'other': '00 \u0D1F\u0D4D\u0D30\u0D3F\u0D32\u0D4D\u0D2F\u0D7A' + }, + '100000000000000': { + 'other': '000 \u0D1F\u0D4D\u0D30\u0D3F\u0D32\u0D4D\u0D2F\u0D7A' + } + } +}; + + +/** + * Compact number formatting symbols for locale ml_IN. + */ +goog.i18n.CompactNumberFormatSymbols_ml_IN = + goog.i18n.CompactNumberFormatSymbols_ml; + + +/** + * Compact number formatting symbols for locale mr. + */ +goog.i18n.CompactNumberFormatSymbols_mr = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0939\u091C\u093E\u0930' + }, + '10000': { + 'other': '00 \u0939\u091C\u093E\u0930' + }, + '100000': { + 'other': '000 \u0939\u091C\u093E\u0930' + }, + '1000000': { + 'other': '0 \u0926\u0936\u0932\u0915\u094D\u0937' + }, + '10000000': { + 'other': '00 \u0926\u0936\u0932\u0915\u094D\u0937' + }, + '100000000': { + 'other': '000 \u0926\u0936\u0932\u0915\u094D\u0937' + }, + '1000000000': { + 'other': '0 \u092E\u0939\u093E\u092A\u0926\u094D\u092E' + }, + '10000000000': { + 'other': '00 \u092E\u0939\u093E\u092A\u0926\u094D\u092E' + }, + '100000000000': { + 'other': '000 \u092E\u0939\u093E\u092A\u0926\u094D\u092E' + }, + '1000000000000': { + 'other': '0 \u0926\u0939\u093E \u0916\u0930\u092C' + }, + '10000000000000': { + 'other': '00 \u0926\u0939\u093E \u0916\u0930\u092C' + }, + '100000000000000': { + 'other': '000 \u0926\u0939\u093E \u0916\u0930\u092C' + } + } +}; + + +/** + * Compact number formatting symbols for locale mr_IN. + */ +goog.i18n.CompactNumberFormatSymbols_mr_IN = + goog.i18n.CompactNumberFormatSymbols_mr; + + +/** + * Compact number formatting symbols for locale ms. + */ +goog.i18n.CompactNumberFormatSymbols_ms = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0J' + }, + '10000000': { + 'other': '00J' + }, + '100000000': { + 'other': '000J' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 ribu' + }, + '10000': { + 'other': '00 ribu' + }, + '100000': { + 'other': '000 ribu' + }, + '1000000': { + 'other': '0 juta' + }, + '10000000': { + 'other': '00 juta' + }, + '100000000': { + 'other': '000 juta' + }, + '1000000000': { + 'other': '0 bilion' + }, + '10000000000': { + 'other': '00 bilion' + }, + '100000000000': { + 'other': '000 bilion' + }, + '1000000000000': { + 'other': '0 trilion' + }, + '10000000000000': { + 'other': '00 trilion' + }, + '100000000000000': { + 'other': '000 trilion' + } + } +}; + + +/** + * Compact number formatting symbols for locale ms_Latn_MY. + */ +goog.i18n.CompactNumberFormatSymbols_ms_Latn_MY = + goog.i18n.CompactNumberFormatSymbols_ms; + + +/** + * Compact number formatting symbols for locale mt. + */ +goog.i18n.CompactNumberFormatSymbols_mt = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale mt_MT. + */ +goog.i18n.CompactNumberFormatSymbols_mt_MT = + goog.i18n.CompactNumberFormatSymbols_mt; + + +/** + * Compact number formatting symbols for locale nb. + */ +goog.i18n.CompactNumberFormatSymbols_nb = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0' + }, + '100000': { + 'other': '0' + }, + '1000000': { + 'other': '0\u00A0mill' + }, + '10000000': { + 'other': '00\u00A0mill' + }, + '100000000': { + 'other': '000\u00A0mill' + }, + '1000000000': { + 'other': '0\u00A0mrd' + }, + '10000000000': { + 'other': '00\u00A0mrd' + }, + '100000000000': { + 'other': '000\u00A0mrd' + }, + '1000000000000': { + 'other': '0\u00A0bill' + }, + '10000000000000': { + 'other': '00\u00A0bill' + }, + '100000000000000': { + 'other': '000\u00A0bill' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 tusen' + }, + '10000': { + 'other': '00 tusen' + }, + '100000': { + 'other': '000 tusen' + }, + '1000000': { + 'other': '0 millioner' + }, + '10000000': { + 'other': '00 millioner' + }, + '100000000': { + 'other': '000 millioner' + }, + '1000000000': { + 'other': '0 milliarder' + }, + '10000000000': { + 'other': '00 milliarder' + }, + '100000000000': { + 'other': '000 milliarder' + }, + '1000000000000': { + 'other': '0 billioner' + }, + '10000000000000': { + 'other': '00 billioner' + }, + '100000000000000': { + 'other': '000 billioner' + } + } +}; + + +/** + * Compact number formatting symbols for locale nb_NO. + */ +goog.i18n.CompactNumberFormatSymbols_nb_NO = + goog.i18n.CompactNumberFormatSymbols_nb; + + +/** + * Compact number formatting symbols for locale nl. + */ +goog.i18n.CompactNumberFormatSymbols_nl = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0\u00A0mln.' + }, + '10000000': { + 'other': '00\u00A0mln.' + }, + '100000000': { + 'other': '000\u00A0mln.' + }, + '1000000000': { + 'other': '0\u00A0mld.' + }, + '10000000000': { + 'other': '00\u00A0mld.' + }, + '100000000000': { + 'other': '000\u00A0mld.' + }, + '1000000000000': { + 'other': '0\u00A0bln.' + }, + '10000000000000': { + 'other': '00\u00A0bln.' + }, + '100000000000000': { + 'other': '000\u00A0bln.' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 duizend' + }, + '10000': { + 'other': '00 duizend' + }, + '100000': { + 'other': '000 duizend' + }, + '1000000': { + 'other': '0 miljoen' + }, + '10000000': { + 'other': '00 miljoen' + }, + '100000000': { + 'other': '000 miljoen' + }, + '1000000000': { + 'other': '0 miljard' + }, + '10000000000': { + 'other': '00 miljard' + }, + '100000000000': { + 'other': '000 miljard' + }, + '1000000000000': { + 'other': '0 biljoen' + }, + '10000000000000': { + 'other': '00 biljoen' + }, + '100000000000000': { + 'other': '000 biljoen' + } + } +}; + + +/** + * Compact number formatting symbols for locale nl_NL. + */ +goog.i18n.CompactNumberFormatSymbols_nl_NL = + goog.i18n.CompactNumberFormatSymbols_nl; + + +/** + * Compact number formatting symbols for locale no. + */ +goog.i18n.CompactNumberFormatSymbols_no = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0' + }, + '100000': { + 'other': '0' + }, + '1000000': { + 'other': '0\u00A0mill' + }, + '10000000': { + 'other': '00\u00A0mill' + }, + '100000000': { + 'other': '000\u00A0mill' + }, + '1000000000': { + 'other': '0\u00A0mrd' + }, + '10000000000': { + 'other': '00\u00A0mrd' + }, + '100000000000': { + 'other': '000\u00A0mrd' + }, + '1000000000000': { + 'other': '0\u00A0bill' + }, + '10000000000000': { + 'other': '00\u00A0bill' + }, + '100000000000000': { + 'other': '000\u00A0bill' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 tusen' + }, + '10000': { + 'other': '00 tusen' + }, + '100000': { + 'other': '000 tusen' + }, + '1000000': { + 'other': '0 millioner' + }, + '10000000': { + 'other': '00 millioner' + }, + '100000000': { + 'other': '000 millioner' + }, + '1000000000': { + 'other': '0 milliarder' + }, + '10000000000': { + 'other': '00 milliarder' + }, + '100000000000': { + 'other': '000 milliarder' + }, + '1000000000000': { + 'other': '0 billioner' + }, + '10000000000000': { + 'other': '00 billioner' + }, + '100000000000000': { + 'other': '000 billioner' + } + } +}; + + +/** + * Compact number formatting symbols for locale or. + */ +goog.i18n.CompactNumberFormatSymbols_or = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale or_IN. + */ +goog.i18n.CompactNumberFormatSymbols_or_IN = + goog.i18n.CompactNumberFormatSymbols_or; + + +/** + * Compact number formatting symbols for locale pl. + */ +goog.i18n.CompactNumberFormatSymbols_pl = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0tys.' + }, + '10000': { + 'other': '00\u00A0tys.' + }, + '100000': { + 'other': '000\u00A0tys.' + }, + '1000000': { + 'other': '0\u00A0mln' + }, + '10000000': { + 'other': '00\u00A0mln' + }, + '100000000': { + 'other': '000\u00A0mln' + }, + '1000000000': { + 'other': '0\u00A0mld' + }, + '10000000000': { + 'other': '00\u00A0mld' + }, + '100000000000': { + 'other': '000\u00A0mld' + }, + '1000000000000': { + 'other': '0\u00A0bln' + }, + '10000000000000': { + 'other': '00\u00A0bln' + }, + '100000000000000': { + 'other': '000\u00A0bln' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 tysi\u0105ca' + }, + '10000': { + 'other': '00 tysi\u0105ca' + }, + '100000': { + 'other': '000 tysi\u0105ca' + }, + '1000000': { + 'other': '0 miliona' + }, + '10000000': { + 'other': '00 miliona' + }, + '100000000': { + 'other': '000 miliona' + }, + '1000000000': { + 'other': '0 miliarda' + }, + '10000000000': { + 'other': '00 miliarda' + }, + '100000000000': { + 'other': '000 miliarda' + }, + '1000000000000': { + 'other': '0 biliona' + }, + '10000000000000': { + 'other': '00 biliona' + }, + '100000000000000': { + 'other': '000 biliona' + } + } +}; + + +/** + * Compact number formatting symbols for locale pl_PL. + */ +goog.i18n.CompactNumberFormatSymbols_pl_PL = + goog.i18n.CompactNumberFormatSymbols_pl; + + +/** + * Compact number formatting symbols for locale pt. + */ +goog.i18n.CompactNumberFormatSymbols_pt = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0mil' + }, + '10000': { + 'other': '00\u00A0mil' + }, + '100000': { + 'other': '000\u00A0mil' + }, + '1000000': { + 'other': '0\u00A0mi' + }, + '10000000': { + 'other': '00\u00A0mi' + }, + '100000000': { + 'other': '000\u00A0mi' + }, + '1000000000': { + 'other': '0\u00A0bi' + }, + '10000000000': { + 'other': '00\u00A0bi' + }, + '100000000000': { + 'other': '000\u00A0bi' + }, + '1000000000000': { + 'other': '0\u00A0tri' + }, + '10000000000000': { + 'other': '00\u00A0tri' + }, + '100000000000000': { + 'other': '000\u00A0tri' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 milh\u00F5es' + }, + '10000000': { + 'other': '00 milh\u00F5es' + }, + '100000000': { + 'other': '000 milh\u00F5es' + }, + '1000000000': { + 'other': '0 bilh\u00F5es' + }, + '10000000000': { + 'other': '00 bilh\u00F5es' + }, + '100000000000': { + 'other': '000 bilh\u00F5es' + }, + '1000000000000': { + 'other': '0 trilh\u00F5es' + }, + '10000000000000': { + 'other': '00 trilh\u00F5es' + }, + '100000000000000': { + 'other': '000 trilh\u00F5es' + } + } +}; + + +/** + * Compact number formatting symbols for locale pt_BR. + */ +goog.i18n.CompactNumberFormatSymbols_pt_BR = + goog.i18n.CompactNumberFormatSymbols_pt; + + +/** + * Compact number formatting symbols for locale pt_PT. + */ +goog.i18n.CompactNumberFormatSymbols_pt_PT = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0mil' + }, + '10000': { + 'other': '00\u00A0mil' + }, + '100000': { + 'other': '000\u00A0mil' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0MM' + }, + '10000000000': { + 'other': '00\u00A0MM' + }, + '100000000000': { + 'other': '000\u00A0MM' + }, + '1000000000000': { + 'other': '0\u00A0Bi' + }, + '10000000000000': { + 'other': '00\u00A0Bi' + }, + '100000000000000': { + 'other': '000\u00A0Bi' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 milh\u00F5es' + }, + '10000000': { + 'other': '00 milh\u00F5es' + }, + '100000000': { + 'other': '000 milh\u00F5es' + }, + '1000000000': { + 'other': '0 mil milh\u00F5es' + }, + '10000000000': { + 'other': '00 mil milh\u00F5es' + }, + '100000000000': { + 'other': '000 mil milh\u00F5es' + }, + '1000000000000': { + 'other': '0 bili\u00F5es' + }, + '10000000000000': { + 'other': '00 bili\u00F5es' + }, + '100000000000000': { + 'other': '000 bili\u00F5es' + } + } +}; + + +/** + * Compact number formatting symbols for locale ro. + */ +goog.i18n.CompactNumberFormatSymbols_ro = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0mil.' + }, + '10000000': { + 'other': '00\u00A0mil.' + }, + '100000000': { + 'other': '000\u00A0mil.' + }, + '1000000000': { + 'other': '0\u00A0mld.' + }, + '10000000000': { + 'other': '00\u00A0mld.' + }, + '100000000000': { + 'other': '000\u00A0mld.' + }, + '1000000000000': { + 'other': '0\u00A0T' + }, + '10000000000000': { + 'other': '00\u00A0T' + }, + '100000000000000': { + 'other': '000\u00A0T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 de mii' + }, + '10000': { + 'other': '00 de mii' + }, + '100000': { + 'other': '000 de mii' + }, + '1000000': { + 'other': '0 de milioane' + }, + '10000000': { + 'other': '00 de milioane' + }, + '100000000': { + 'other': '000 de milioane' + }, + '1000000000': { + 'other': '0 de miliarde' + }, + '10000000000': { + 'other': '00 de miliarde' + }, + '100000000000': { + 'other': '000 de miliarde' + }, + '1000000000000': { + 'other': '0 de trilioane' + }, + '10000000000000': { + 'other': '00 de trilioane' + }, + '100000000000000': { + 'other': '000 de trilioane' + } + } +}; + + +/** + * Compact number formatting symbols for locale ro_RO. + */ +goog.i18n.CompactNumberFormatSymbols_ro_RO = + goog.i18n.CompactNumberFormatSymbols_ro; + + +/** + * Compact number formatting symbols for locale ru. + */ +goog.i18n.CompactNumberFormatSymbols_ru = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0442\u044B\u0441.' + }, + '10000': { + 'other': '00\u00A0\u0442\u044B\u0441.' + }, + '100000': { + 'other': '000\u00A0\u0442\u044B\u0441.' + }, + '1000000': { + 'other': '0\u00A0\u043C\u043B\u043D' + }, + '10000000': { + 'other': '00\u00A0\u043C\u043B\u043D' + }, + '100000000': { + 'other': '000\u00A0\u043C\u043B\u043D' + }, + '1000000000': { + 'other': '0\u00A0\u043C\u043B\u0440\u0434' + }, + '10000000000': { + 'other': '00\u00A0\u043C\u043B\u0440\u0434' + }, + '100000000000': { + 'other': '000\u00A0\u043C\u043B\u0440\u0434' + }, + '1000000000000': { + 'other': '0\u00A0\u0442\u0440\u043B\u043D' + }, + '10000000000000': { + 'other': '00\u00A0\u0442\u0440\u043B\u043D' + }, + '100000000000000': { + 'other': '000\u00A0\u0442\u0440\u043B\u043D' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0442\u044B\u0441\u044F\u0447\u0438' + }, + '10000': { + 'other': '00 \u0442\u044B\u0441\u044F\u0447\u0438' + }, + '100000': { + 'other': '000 \u0442\u044B\u0441\u044F\u0447\u0438' + }, + '1000000': { + 'other': '0 \u043C\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '10000000': { + 'other': '00 \u043C\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '100000000': { + 'other': '000 \u043C\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '1000000000': { + 'other': '0 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434\u0430' + }, + '10000000000': { + 'other': '00 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434\u0430' + }, + '100000000000': { + 'other': '000 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434\u0430' + }, + '1000000000000': { + 'other': '0 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '10000000000000': { + 'other': '00 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '100000000000000': { + 'other': '000 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + } + } +}; + + +/** + * Compact number formatting symbols for locale ru_RU. + */ +goog.i18n.CompactNumberFormatSymbols_ru_RU = + goog.i18n.CompactNumberFormatSymbols_ru; + + +/** + * Compact number formatting symbols for locale sk. + */ +goog.i18n.CompactNumberFormatSymbols_sk = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0tis.' + }, + '10000': { + 'other': '00\u00A0tis.' + }, + '100000': { + 'other': '000\u00A0tis.' + }, + '1000000': { + 'other': '0\u00A0mil.' + }, + '10000000': { + 'other': '00\u00A0mil.' + }, + '100000000': { + 'other': '000\u00A0mil.' + }, + '1000000000': { + 'other': '0\u00A0mld.' + }, + '10000000000': { + 'other': '00\u00A0mld.' + }, + '100000000000': { + 'other': '000\u00A0mld.' + }, + '1000000000000': { + 'other': '0\u00A0bil.' + }, + '10000000000000': { + 'other': '00\u00A0bil.' + }, + '100000000000000': { + 'other': '000\u00A0bil.' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 tis\u00EDc' + }, + '10000': { + 'other': '00 tis\u00EDc' + }, + '100000': { + 'other': '000 tis\u00EDc' + }, + '1000000': { + 'other': '0 mili\u00F3nov' + }, + '10000000': { + 'other': '00 mili\u00F3nov' + }, + '100000000': { + 'other': '000 mili\u00F3nov' + }, + '1000000000': { + 'other': '0 miliard' + }, + '10000000000': { + 'other': '00 mili\u00E1rd' + }, + '100000000000': { + 'other': '000 mili\u00E1rd' + }, + '1000000000000': { + 'other': '0 bili\u00F3nov' + }, + '10000000000000': { + 'other': '00 bili\u00F3nov' + }, + '100000000000000': { + 'other': '000 bili\u00F3nov' + } + } +}; + + +/** + * Compact number formatting symbols for locale sk_SK. + */ +goog.i18n.CompactNumberFormatSymbols_sk_SK = + goog.i18n.CompactNumberFormatSymbols_sk; + + +/** + * Compact number formatting symbols for locale sl. + */ +goog.i18n.CompactNumberFormatSymbols_sl = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0tis.' + }, + '10000': { + 'other': '00\u00A0tis.' + }, + '100000': { + 'other': '000\u00A0tis.' + }, + '1000000': { + 'other': '0\u00A0mio.' + }, + '10000000': { + 'other': '00\u00A0mio.' + }, + '100000000': { + 'other': '000\u00A0mio.' + }, + '1000000000': { + 'other': '0\u00A0mrd.' + }, + '10000000000': { + 'other': '00\u00A0mrd.' + }, + '100000000000': { + 'other': '000\u00A0mrd.' + }, + '1000000000000': { + 'other': '0\u00A0bil.' + }, + '10000000000000': { + 'other': '00\u00A0bil.' + }, + '100000000000000': { + 'other': '000\u00A0bil.' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 tiso\u010D' + }, + '10000': { + 'other': '00 tiso\u010D' + }, + '100000': { + 'other': '000 tiso\u010D' + }, + '1000000': { + 'other': '0 milijonov' + }, + '10000000': { + 'other': '00 milijonov' + }, + '100000000': { + 'other': '000 milijonov' + }, + '1000000000': { + 'other': '0 milijard' + }, + '10000000000': { + 'other': '00 milijard' + }, + '100000000000': { + 'other': '000 milijard' + }, + '1000000000000': { + 'other': '0 bilijonov' + }, + '10000000000000': { + 'other': '00 bilijonov' + }, + '100000000000000': { + 'other': '000 bilijonov' + } + } +}; + + +/** + * Compact number formatting symbols for locale sl_SI. + */ +goog.i18n.CompactNumberFormatSymbols_sl_SI = + goog.i18n.CompactNumberFormatSymbols_sl; + + +/** + * Compact number formatting symbols for locale sq. + */ +goog.i18n.CompactNumberFormatSymbols_sq = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale sq_AL. + */ +goog.i18n.CompactNumberFormatSymbols_sq_AL = + goog.i18n.CompactNumberFormatSymbols_sq; + + +/** + * Compact number formatting symbols for locale sr. + */ +goog.i18n.CompactNumberFormatSymbols_sr = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '00\u00A0\u0445\u0438\u0459' + }, + '100000': { + 'other': '000\u00A0\u0445\u0438\u0459' + }, + '1000000': { + 'other': '0\u00A0\u043C\u0438\u043B' + }, + '10000000': { + 'other': '00\u00A0\u043C\u0438\u043B' + }, + '100000000': { + 'other': '000\u00A0\u043C\u0438\u043B' + }, + '1000000000': { + 'other': '0\u00A0\u043C\u043B\u0440\u0434' + }, + '10000000000': { + 'other': '00\u00A0\u043C\u043B\u0440\u0434' + }, + '100000000000': { + 'other': '000\u00A0\u043C\u043B\u0440\u0434' + }, + '1000000000000': { + 'other': '0\u00A0\u0431\u0438\u043B' + }, + '10000000000000': { + 'other': '00\u00A0\u0431\u0438\u043B' + }, + '100000000000000': { + 'other': '000\u00A0\u0431\u0438\u043B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0445\u0438\u0459\u0430\u0434\u0430' + }, + '10000': { + 'other': '00 \u0445\u0438\u0459\u0430\u0434\u0430' + }, + '100000': { + 'other': '000 \u0445\u0438\u0459\u0430\u0434\u0430' + }, + '1000000': { + 'other': '0 \u043C\u0438\u043B\u0438\u043E\u043D\u0430' + }, + '10000000': { + 'other': '00 \u043C\u0438\u043B\u0438\u043E\u043D\u0430' + }, + '100000000': { + 'other': '000 \u043C\u0438\u043B\u0438\u043E\u043D\u0430' + }, + '1000000000': { + 'other': '0 \u043C\u0438\u043B\u0438\u0458\u0430\u0440\u0434\u0438' + }, + '10000000000': { + 'other': '00 \u043C\u0438\u043B\u0438\u0458\u0430\u0440\u0434\u0438' + }, + '100000000000': { + 'other': '000 \u043C\u0438\u043B\u0438\u0458\u0430\u0440\u0434\u0438' + }, + '1000000000000': { + 'other': '0 \u0442\u0440\u0438\u043B\u0438\u043E\u043D\u0430' + }, + '10000000000000': { + 'other': '00 \u0442\u0440\u0438\u043B\u0438\u043E\u043D\u0430' + }, + '100000000000000': { + 'other': '000 \u0442\u0440\u0438\u043B\u0438\u043E\u043D\u0430' + } + } +}; + + +/** + * Compact number formatting symbols for locale sr_Cyrl_RS. + */ +goog.i18n.CompactNumberFormatSymbols_sr_Cyrl_RS = + goog.i18n.CompactNumberFormatSymbols_sr; + + +/** + * Compact number formatting symbols for locale sv. + */ +goog.i18n.CompactNumberFormatSymbols_sv = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0tn' + }, + '10000': { + 'other': '00\u00A0tn' + }, + '100000': { + 'other': '000\u00A0tn' + }, + '1000000': { + 'other': '0\u00A0mn' + }, + '10000000': { + 'other': '00\u00A0mn' + }, + '100000000': { + 'other': '000\u00A0mn' + }, + '1000000000': { + 'other': '0\u00A0md' + }, + '10000000000': { + 'other': '00\u00A0md' + }, + '100000000000': { + 'other': '000\u00A0md' + }, + '1000000000000': { + 'other': '0\u00A0bn' + }, + '10000000000000': { + 'other': '00\u00A0bn' + }, + '100000000000000': { + 'other': '000\u00A0bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 tusen' + }, + '10000': { + 'other': '00 tusen' + }, + '100000': { + 'other': '000 tusen' + }, + '1000000': { + 'other': '0 miljoner' + }, + '10000000': { + 'other': '00 miljoner' + }, + '100000000': { + 'other': '000 miljoner' + }, + '1000000000': { + 'other': '0 miljarder' + }, + '10000000000': { + 'other': '00 miljarder' + }, + '100000000000': { + 'other': '000 miljarder' + }, + '1000000000000': { + 'other': '0 biljoner' + }, + '10000000000000': { + 'other': '00 biljoner' + }, + '100000000000000': { + 'other': '000 biljoner' + } + } +}; + + +/** + * Compact number formatting symbols for locale sv_SE. + */ +goog.i18n.CompactNumberFormatSymbols_sv_SE = + goog.i18n.CompactNumberFormatSymbols_sv; + + +/** + * Compact number formatting symbols for locale sw. + */ +goog.i18n.CompactNumberFormatSymbols_sw = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': 'elfu\u00A00' + }, + '10000': { + 'other': 'elfu\u00A000' + }, + '100000': { + 'other': 'laki0' + }, + '1000000': { + 'other': 'M0' + }, + '10000000': { + 'other': 'M00' + }, + '100000000': { + 'other': 'M000' + }, + '1000000000': { + 'other': 'B0' + }, + '10000000000': { + 'other': 'B00' + }, + '100000000000': { + 'other': 'B000' + }, + '1000000000000': { + 'other': 'T0' + }, + '10000000000000': { + 'other': 'T00' + }, + '100000000000000': { + 'other': 'T000' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': 'Elfu 0' + }, + '10000': { + 'other': 'Elfu 00' + }, + '100000': { + 'other': 'Elfu 000' + }, + '1000000': { + 'other': 'Milioni 0' + }, + '10000000': { + 'other': 'Milioni 00' + }, + '100000000': { + 'other': 'Milioni 000' + }, + '1000000000': { + 'other': 'Bilioni 0' + }, + '10000000000': { + 'other': 'Bilioni 00' + }, + '100000000000': { + 'other': 'Bilioni 000' + }, + '1000000000000': { + 'other': 'Trilioni 0' + }, + '10000000000000': { + 'other': 'Trilioni 00' + }, + '100000000000000': { + 'other': 'Trilioni 000' + } + } +}; + + +/** + * Compact number formatting symbols for locale sw_TZ. + */ +goog.i18n.CompactNumberFormatSymbols_sw_TZ = + goog.i18n.CompactNumberFormatSymbols_sw; + + +/** + * Compact number formatting symbols for locale ta. + */ +goog.i18n.CompactNumberFormatSymbols_ta = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0B86\u0BAF\u0BBF\u0BB0\u0BAE\u0BCD' + }, + '10000': { + 'other': '00 \u0B86\u0BAF\u0BBF\u0BB0\u0BAE\u0BCD' + }, + '100000': { + 'other': '000 \u0B86\u0BAF\u0BBF\u0BB0\u0BAE\u0BCD' + }, + '1000000': { + 'other': '0 \u0BAE\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '10000000': { + 'other': '00 \u0BAE\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '100000000': { + 'other': '000 \u0BAE\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '1000000000': { + 'other': '0 \u0BAA\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '10000000000': { + 'other': '00 \u0BAA\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '100000000000': { + 'other': '000 \u0BAA\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '1000000000000': { + 'other': '0 \u0B9F\u0BBF\u0BB0\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '10000000000000': { + 'other': '00 \u0B9F\u0BBF\u0BB0\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '100000000000000': { + 'other': '000 \u0B9F\u0BBF\u0BB0\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + } + } +}; + + +/** + * Compact number formatting symbols for locale ta_IN. + */ +goog.i18n.CompactNumberFormatSymbols_ta_IN = + goog.i18n.CompactNumberFormatSymbols_ta; + + +/** + * Compact number formatting symbols for locale te. + */ +goog.i18n.CompactNumberFormatSymbols_te = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0C35\u0C47\u0C32\u0C41' + }, + '10000': { + 'other': '00 \u0C35\u0C47\u0C32\u0C41' + }, + '100000': { + 'other': '000 \u0C35\u0C47\u0C32\u0C41' + }, + '1000000': { + 'other': '0 \u0C2E\u0C3F\u0C32\u0C3F\u0C2F\u0C28\u0C4D' + }, + '10000000': { + 'other': '00 \u0C2E\u0C3F\u0C32\u0C3F\u0C2F\u0C28\u0C4D' + }, + '100000000': { + 'other': '000 \u0C2E\u0C3F\u0C32\u0C3F\u0C2F\u0C28\u0C4D' + }, + '1000000000': { + 'other': '0 \u0C2C\u0C3F\u0C32\u0C3F\u0C2F\u0C28\u0C4D' + }, + '10000000000': { + 'other': '00 \u0C2C\u0C3F\u0C32\u0C3F\u0C2F\u0C28\u0C4D' + }, + '100000000000': { + 'other': '000 \u0C2C\u0C3F\u0C32\u0C3F\u0C2F\u0C28\u0C4D' + }, + '1000000000000': { + 'other': '0 \u0C1F\u0C4D\u0C30\u0C3F\u0C32\u0C3F\u0C2F\u0C28\u0C4D' + }, + '10000000000000': { + 'other': '00 \u0C1F\u0C4D\u0C30\u0C3F\u0C32\u0C3F\u0C2F\u0C28\u0C4D' + }, + '100000000000000': { + 'other': '000 \u0C1F\u0C4D\u0C30\u0C3F\u0C32\u0C3F\u0C2F\u0C28\u0C4D' + } + } +}; + + +/** + * Compact number formatting symbols for locale te_IN. + */ +goog.i18n.CompactNumberFormatSymbols_te_IN = + goog.i18n.CompactNumberFormatSymbols_te; + + +/** + * Compact number formatting symbols for locale th. + */ +goog.i18n.CompactNumberFormatSymbols_th = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0E1E.' + }, + '10000': { + 'other': '0\u00A0\u0E21.' + }, + '100000': { + 'other': '0\u00A0\u0E2A.' + }, + '1000000': { + 'other': '0\u00A0\u0E25.' + }, + '10000000': { + 'other': '00\u00A0\u0E25.' + }, + '100000000': { + 'other': '000\u00A0\u0E25.' + }, + '1000000000': { + 'other': '0\u00A0\u0E1E.\u0E25.' + }, + '10000000000': { + 'other': '0\u00A0\u0E21.\u0E25.' + }, + '100000000000': { + 'other': '0\u00A0\u0E2A.\u0E25.' + }, + '1000000000000': { + 'other': '0\u00A0\u0E25.\u0E25.' + }, + '10000000000000': { + 'other': '00\u00A0\u0E25.\u0E25.' + }, + '100000000000000': { + 'other': '000\u00A0\u0E25.\u0E25.' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0E1E\u0E31\u0E19' + }, + '10000': { + 'other': '0 \u0E2B\u0E21\u0E37\u0E48\u0E19' + }, + '100000': { + 'other': '0 \u0E41\u0E2A\u0E19' + }, + '1000000': { + 'other': '0 \u0E25\u0E49\u0E32\u0E19' + }, + '10000000': { + 'other': '00 \u0E25\u0E49\u0E32\u0E19' + }, + '100000000': { + 'other': '000 \u0E25\u0E49\u0E32\u0E19' + }, + '1000000000': { + 'other': '0 \u0E1E\u0E31\u0E19\u0E25\u0E49\u0E32\u0E19' + }, + '10000000000': { + 'other': '0 \u0E2B\u0E21\u0E37\u0E48\u0E19\u0E25\u0E49\u0E32\u0E19' + }, + '100000000000': { + 'other': '0 \u0E41\u0E2A\u0E19\u0E25\u0E49\u0E32\u0E19' + }, + '1000000000000': { + 'other': '0 \u0E25\u0E49\u0E32\u0E19\u0E25\u0E49\u0E32\u0E19' + }, + '10000000000000': { + 'other': '00 \u0E25\u0E49\u0E32\u0E19\u0E25\u0E49\u0E32\u0E19' + }, + '100000000000000': { + 'other': '000 \u0E25\u0E49\u0E32\u0E19\u0E25\u0E49\u0E32\u0E19' + } + } +}; + + +/** + * Compact number formatting symbols for locale th_TH. + */ +goog.i18n.CompactNumberFormatSymbols_th_TH = + goog.i18n.CompactNumberFormatSymbols_th; + + +/** + * Compact number formatting symbols for locale tl. + */ +goog.i18n.CompactNumberFormatSymbols_tl = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 (na) libo' + }, + '10000': { + 'other': '00 (na) libo' + }, + '100000': { + 'other': '000 (na) libo' + }, + '1000000': { + 'other': '0 (na) milyon' + }, + '10000000': { + 'other': '00 (na) milyon' + }, + '100000000': { + 'other': '000 (na) milyon' + }, + '1000000000': { + 'other': '0 (na) bilyon' + }, + '10000000000': { + 'other': '00 (na) bilyon' + }, + '100000000000': { + 'other': '000 (na) bilyon' + }, + '1000000000000': { + 'other': '0 (na) trilyon' + }, + '10000000000000': { + 'other': '00 (na) trilyon' + }, + '100000000000000': { + 'other': '000 (na) trilyon' + } + } +}; + + +/** + * Compact number formatting symbols for locale tr. + */ +goog.i18n.CompactNumberFormatSymbols_tr = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '00\u00A0B' + }, + '100000': { + 'other': '000\u00A0B' + }, + '1000000': { + 'other': '0\u00A0Mn' + }, + '10000000': { + 'other': '00\u00A0Mn' + }, + '100000000': { + 'other': '000\u00A0Mn' + }, + '1000000000': { + 'other': '0\u00A0Mr' + }, + '10000000000': { + 'other': '00\u00A0Mr' + }, + '100000000000': { + 'other': '000\u00A0Mr' + }, + '1000000000000': { + 'other': '0\u00A0Tn' + }, + '10000000000000': { + 'other': '00\u00A0Tn' + }, + '100000000000000': { + 'other': '000\u00A0Tn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 bin' + }, + '10000': { + 'other': '00 bin' + }, + '100000': { + 'other': '000 bin' + }, + '1000000': { + 'other': '0 milyon' + }, + '10000000': { + 'other': '00 milyon' + }, + '100000000': { + 'other': '000 milyon' + }, + '1000000000': { + 'other': '0 milyar' + }, + '10000000000': { + 'other': '00 milyar' + }, + '100000000000': { + 'other': '000 milyar' + }, + '1000000000000': { + 'other': '0 trilyon' + }, + '10000000000000': { + 'other': '00 trilyon' + }, + '100000000000000': { + 'other': '000 trilyon' + } + } +}; + + +/** + * Compact number formatting symbols for locale tr_TR. + */ +goog.i18n.CompactNumberFormatSymbols_tr_TR = + goog.i18n.CompactNumberFormatSymbols_tr; + + +/** + * Compact number formatting symbols for locale uk. + */ +goog.i18n.CompactNumberFormatSymbols_uk = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0442\u0438\u0441' + }, + '10000': { + 'other': '00\u00A0\u0442\u0438\u0441' + }, + '100000': { + 'other': '000\u00A0\u0442\u0438\u0441' + }, + '1000000': { + 'other': '0\u00A0\u043C\u043B\u043D' + }, + '10000000': { + 'other': '00\u00A0\u043C\u043B\u043D' + }, + '100000000': { + 'other': '000\u00A0\u043C\u043B\u043D' + }, + '1000000000': { + 'other': '0\u00A0\u043C\u043B\u0440\u0434' + }, + '10000000000': { + 'other': '00\u00A0\u043C\u043B\u0440\u0434' + }, + '100000000000': { + 'other': '000\u00A0\u043C\u043B\u0440\u0434' + }, + '1000000000000': { + 'other': '0\u00A0\u0442\u0440\u043B\u043D' + }, + '10000000000000': { + 'other': '00\u00A0\u0442\u0440\u043B\u043D' + }, + '100000000000000': { + 'other': '000\u00A0\u0442\u0440\u043B\u043D' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0442\u0438\u0441\u044F\u0447\u0456' + }, + '10000': { + 'other': '00 \u0442\u0438\u0441\u044F\u0447\u0456' + }, + '100000': { + 'other': '000 \u0442\u0438\u0441\u044F\u0447\u0456' + }, + '1000000': { + 'other': '0 \u043C\u0456\u043B\u044C\u0439\u043E\u043D\u0430' + }, + '10000000': { + 'other': '00 \u043C\u0456\u043B\u044C\u0439\u043E\u043D\u0430' + }, + '100000000': { + 'other': '000 \u043C\u0456\u043B\u044C\u0439\u043E\u043D\u0430' + }, + '1000000000': { + 'other': '0 \u043C\u0456\u043B\u044C\u044F\u0440\u0434\u0430' + }, + '10000000000': { + 'other': '00 \u043C\u0456\u043B\u044C\u044F\u0440\u0434\u0430' + }, + '100000000000': { + 'other': '000 \u043C\u0456\u043B\u044C\u044F\u0440\u0434\u0430' + }, + '1000000000000': { + 'other': '0 \u0442\u0440\u0438\u043B\u044C\u0439\u043E\u043D\u0430' + }, + '10000000000000': { + 'other': '00 \u0442\u0440\u0438\u043B\u044C\u0439\u043E\u043D\u0430' + }, + '100000000000000': { + 'other': '000 \u0442\u0440\u0438\u043B\u044C\u0439\u043E\u043D\u0430' + } + } +}; + + +/** + * Compact number formatting symbols for locale uk_UA. + */ +goog.i18n.CompactNumberFormatSymbols_uk_UA = + goog.i18n.CompactNumberFormatSymbols_uk; + + +/** + * Compact number formatting symbols for locale ur. + */ +goog.i18n.CompactNumberFormatSymbols_ur = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u06C1\u0632\u0627\u0631' + }, + '10000': { + 'other': '00\u00A0\u06C1\u0632\u0627\u0631' + }, + '100000': { + 'other': '0\u00A0\u0644\u0627\u06A9\u06BE' + }, + '1000000': { + 'other': '00\u00A0\u0644\u0627\u06A9\u06BE' + }, + '10000000': { + 'other': '0\u00A0\u06A9\u0631\u0648\u0691' + }, + '100000000': { + 'other': '00\u00A0\u06A9\u0631\u0648\u0691' + }, + '1000000000': { + 'other': '0\u00A0\u0627\u0631\u0628' + }, + '10000000000': { + 'other': '00\u00A0\u0627\u0631\u0628' + }, + '100000000000': { + 'other': '0\u00A0\u06A9\u06BE\u0631\u0628' + }, + '1000000000000': { + 'other': '00\u00A0\u06A9\u06BE\u0631\u0628' + }, + '10000000000000': { + 'other': '000\u00A0\u06A9\u06BE\u0631\u0628' + }, + '100000000000000': { + 'other': '0000\u00A0\u06A9\u06BE\u0631\u0628' + } + } +}; + + +/** + * Compact number formatting symbols for locale ur_PK. + */ +goog.i18n.CompactNumberFormatSymbols_ur_PK = + goog.i18n.CompactNumberFormatSymbols_ur; + + +/** + * Compact number formatting symbols for locale vi. + */ +goog.i18n.CompactNumberFormatSymbols_vi = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0N' + }, + '10000': { + 'other': '00\u00A0N' + }, + '100000': { + 'other': '000\u00A0N' + }, + '1000000': { + 'other': '0\u00A0Tr' + }, + '10000000': { + 'other': '00\u00A0Tr' + }, + '100000000': { + 'other': '000\u00A0Tr' + }, + '1000000000': { + 'other': '0\u00A0T' + }, + '10000000000': { + 'other': '00\u00A0T' + }, + '100000000000': { + 'other': '000\u00A0T' + }, + '1000000000000': { + 'other': '0\u00A0NT' + }, + '10000000000000': { + 'other': '00\u00A0NT' + }, + '100000000000000': { + 'other': '000\u00A0NT' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 ngh\u00ECn' + }, + '10000': { + 'other': '00 ngh\u00ECn' + }, + '100000': { + 'other': '000 ngh\u00ECn' + }, + '1000000': { + 'other': '0 tri\u1EC7u' + }, + '10000000': { + 'other': '00 tri\u1EC7u' + }, + '100000000': { + 'other': '000 tri\u1EC7u' + }, + '1000000000': { + 'other': '0 t\u1EF7' + }, + '10000000000': { + 'other': '00 t\u1EF7' + }, + '100000000000': { + 'other': '000 t\u1EF7' + }, + '1000000000000': { + 'other': '0 ngh\u00ECn t\u1EF7' + }, + '10000000000000': { + 'other': '00 ngh\u00ECn t\u1EF7' + }, + '100000000000000': { + 'other': '000 ngh\u00ECn t\u1EF7' + } + } +}; + + +/** + * Compact number formatting symbols for locale vi_VN. + */ +goog.i18n.CompactNumberFormatSymbols_vi_VN = + goog.i18n.CompactNumberFormatSymbols_vi; + + +/** + * Compact number formatting symbols for locale zh. + */ +goog.i18n.CompactNumberFormatSymbols_zh = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0\u4E07' + }, + '100000': { + 'other': '00\u4E07' + }, + '1000000': { + 'other': '000\u4E07' + }, + '10000000': { + 'other': '0000\u4E07' + }, + '100000000': { + 'other': '0\u4EBF' + }, + '1000000000': { + 'other': '00\u4EBF' + }, + '10000000000': { + 'other': '000\u4EBF' + }, + '100000000000': { + 'other': '0000\u4EBF' + }, + '1000000000000': { + 'other': '0\u4E07\u4EBF' + }, + '10000000000000': { + 'other': '00\u4E07\u4EBF' + }, + '100000000000000': { + 'other': '000\u4E07\u4EBF' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0\u4E07' + }, + '100000': { + 'other': '00\u4E07' + }, + '1000000': { + 'other': '000\u4E07' + }, + '10000000': { + 'other': '0000\u4E07' + }, + '100000000': { + 'other': '0\u4EBF' + }, + '1000000000': { + 'other': '00\u4EBF' + }, + '10000000000': { + 'other': '000\u4EBF' + }, + '100000000000': { + 'other': '0000\u4EBF' + }, + '1000000000000': { + 'other': '0\u4E07\u4EBF' + }, + '10000000000000': { + 'other': '00\u4E07\u4EBF' + }, + '100000000000000': { + 'other': '000\u4E07\u4EBF' + } + } +}; + + +/** + * Compact number formatting symbols for locale zh_CN. + */ +goog.i18n.CompactNumberFormatSymbols_zh_CN = + goog.i18n.CompactNumberFormatSymbols_zh; + + +/** + * Compact number formatting symbols for locale zh_HK. + */ +goog.i18n.CompactNumberFormatSymbols_zh_HK = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00\u5146' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0\u842C' + }, + '100000': { + 'other': '00\u842C' + }, + '1000000': { + 'other': '000\u842C' + }, + '10000000': { + 'other': '0000\u842C' + }, + '100000000': { + 'other': '0\u5104' + }, + '1000000000': { + 'other': '00\u5104' + }, + '10000000000': { + 'other': '000\u5104' + }, + '100000000000': { + 'other': '0000\u5104' + }, + '1000000000000': { + 'other': '0\u5146' + }, + '10000000000000': { + 'other': '00\u5146' + }, + '100000000000000': { + 'other': '000\u5146' + } + } +}; + + +/** + * Compact number formatting symbols for locale zh_Hans_CN. + */ +goog.i18n.CompactNumberFormatSymbols_zh_Hans_CN = + goog.i18n.CompactNumberFormatSymbols_zh; + + +/** + * Compact number formatting symbols for locale zh_TW. + */ +goog.i18n.CompactNumberFormatSymbols_zh_TW = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00\u5146' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0\u842C' + }, + '100000': { + 'other': '00\u842C' + }, + '1000000': { + 'other': '000\u842C' + }, + '10000000': { + 'other': '0000\u842C' + }, + '100000000': { + 'other': '0\u5104' + }, + '1000000000': { + 'other': '00\u5104' + }, + '10000000000': { + 'other': '000\u5104' + }, + '100000000000': { + 'other': '0000\u5104' + }, + '1000000000000': { + 'other': '0\u5146' + }, + '10000000000000': { + 'other': '00\u5146' + }, + '100000000000000': { + 'other': '000\u5146' + } + } +}; + + +/** + * Compact number formatting symbols for locale zu. + */ +goog.i18n.CompactNumberFormatSymbols_zu = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 inkulungwane' + }, + '10000': { + 'other': '00 inkulungwane' + }, + '100000': { + 'other': '000 inkulungwane' + }, + '1000000': { + 'other': '0 isigidi' + }, + '10000000': { + 'other': '00 isigidi' + }, + '100000000': { + 'other': '000 isigidi' + }, + '1000000000': { + 'other': '0 isigidi sezigidi' + }, + '10000000000': { + 'other': '00 isigidi sezigidi' + }, + '100000000000': { + 'other': '000 isigidi sezigidi' + }, + '1000000000000': { + 'other': '0 isigidintathu' + }, + '10000000000000': { + 'other': '00 isigidintathu' + }, + '100000000000000': { + 'other': '000 isigidintathu' + } + } +}; + + +/** + * Compact number formatting symbols for locale zu_ZA. + */ +goog.i18n.CompactNumberFormatSymbols_zu_ZA = + goog.i18n.CompactNumberFormatSymbols_zu; + + +/** + * Selected compact number formatting symbols by locale. + */ +goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en; + +if (goog.LOCALE == 'af') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_af; +} + +if (goog.LOCALE == 'af_ZA' || goog.LOCALE == 'af-ZA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_af; +} + +if (goog.LOCALE == 'am') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_am; +} + +if (goog.LOCALE == 'am_ET' || goog.LOCALE == 'am-ET') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_am; +} + +if (goog.LOCALE == 'ar') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ar; +} + +if (goog.LOCALE == 'ar_001' || goog.LOCALE == 'ar-001') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ar; +} + +if (goog.LOCALE == 'ar_EG' || goog.LOCALE == 'ar-EG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ar; +} + +if (goog.LOCALE == 'bg') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_bg; +} + +if (goog.LOCALE == 'bg_BG' || goog.LOCALE == 'bg-BG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_bg; +} + +if (goog.LOCALE == 'bn') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_bn; +} + +if (goog.LOCALE == 'bn_BD' || goog.LOCALE == 'bn-BD') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_bn; +} + +if (goog.LOCALE == 'br') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_br; +} + +if (goog.LOCALE == 'br_FR' || goog.LOCALE == 'br-FR') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_br; +} + +if (goog.LOCALE == 'ca') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ca; +} + +if (goog.LOCALE == 'ca_AD' || goog.LOCALE == 'ca-AD') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ca; +} + +if (goog.LOCALE == 'ca_ES' || goog.LOCALE == 'ca-ES') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ca; +} + +if (goog.LOCALE == 'chr') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_chr; +} + +if (goog.LOCALE == 'chr_US' || goog.LOCALE == 'chr-US') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_chr; +} + +if (goog.LOCALE == 'cs') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_cs; +} + +if (goog.LOCALE == 'cs_CZ' || goog.LOCALE == 'cs-CZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_cs; +} + +if (goog.LOCALE == 'cy') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_cy; +} + +if (goog.LOCALE == 'cy_GB' || goog.LOCALE == 'cy-GB') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_cy; +} + +if (goog.LOCALE == 'da') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_da; +} + +if (goog.LOCALE == 'da_DK' || goog.LOCALE == 'da-DK') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_da; +} + +if (goog.LOCALE == 'de') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_de; +} + +if (goog.LOCALE == 'de_AT' || goog.LOCALE == 'de-AT') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_de_AT; +} + +if (goog.LOCALE == 'de_BE' || goog.LOCALE == 'de-BE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_de; +} + +if (goog.LOCALE == 'de_CH' || goog.LOCALE == 'de-CH') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_de_CH; +} + +if (goog.LOCALE == 'de_DE' || goog.LOCALE == 'de-DE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_de; +} + +if (goog.LOCALE == 'de_LU' || goog.LOCALE == 'de-LU') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_de; +} + +if (goog.LOCALE == 'el') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_el; +} + +if (goog.LOCALE == 'el_GR' || goog.LOCALE == 'el-GR') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_el; +} + +if (goog.LOCALE == 'en') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en; +} + +if (goog.LOCALE == 'en_AS' || goog.LOCALE == 'en-AS') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en; +} + +if (goog.LOCALE == 'en_AU' || goog.LOCALE == 'en-AU') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_AU; +} + +if (goog.LOCALE == 'en_Dsrt_US' || goog.LOCALE == 'en-Dsrt-US') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en; +} + +if (goog.LOCALE == 'en_FM' || goog.LOCALE == 'en-FM') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en; +} + +if (goog.LOCALE == 'en_GB' || goog.LOCALE == 'en-GB') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_GB; +} + +if (goog.LOCALE == 'en_GU' || goog.LOCALE == 'en-GU') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en; +} + +if (goog.LOCALE == 'en_IE' || goog.LOCALE == 'en-IE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_IE; +} + +if (goog.LOCALE == 'en_IN' || goog.LOCALE == 'en-IN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_IN; +} + +if (goog.LOCALE == 'en_MH' || goog.LOCALE == 'en-MH') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en; +} + +if (goog.LOCALE == 'en_MP' || goog.LOCALE == 'en-MP') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en; +} + +if (goog.LOCALE == 'en_PR' || goog.LOCALE == 'en-PR') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en; +} + +if (goog.LOCALE == 'en_PW' || goog.LOCALE == 'en-PW') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en; +} + +if (goog.LOCALE == 'en_SG' || goog.LOCALE == 'en-SG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_SG; +} + +if (goog.LOCALE == 'en_TC' || goog.LOCALE == 'en-TC') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en; +} + +if (goog.LOCALE == 'en_UM' || goog.LOCALE == 'en-UM') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en; +} + +if (goog.LOCALE == 'en_US' || goog.LOCALE == 'en-US') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en; +} + +if (goog.LOCALE == 'en_VG' || goog.LOCALE == 'en-VG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en; +} + +if (goog.LOCALE == 'en_VI' || goog.LOCALE == 'en-VI') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en; +} + +if (goog.LOCALE == 'en_ZA' || goog.LOCALE == 'en-ZA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_ZA; +} + +if (goog.LOCALE == 'es') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_es; +} + +if (goog.LOCALE == 'es_419' || goog.LOCALE == 'es-419') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_es_419; +} + +if (goog.LOCALE == 'es_EA' || goog.LOCALE == 'es-EA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_es; +} + +if (goog.LOCALE == 'es_ES' || goog.LOCALE == 'es-ES') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_es; +} + +if (goog.LOCALE == 'es_IC' || goog.LOCALE == 'es-IC') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_es; +} + +if (goog.LOCALE == 'et') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_et; +} + +if (goog.LOCALE == 'et_EE' || goog.LOCALE == 'et-EE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_et; +} + +if (goog.LOCALE == 'eu') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_eu; +} + +if (goog.LOCALE == 'eu_ES' || goog.LOCALE == 'eu-ES') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_eu; +} + +if (goog.LOCALE == 'fa') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fa; +} + +if (goog.LOCALE == 'fa_IR' || goog.LOCALE == 'fa-IR') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fa; +} + +if (goog.LOCALE == 'fi') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fi; +} + +if (goog.LOCALE == 'fi_FI' || goog.LOCALE == 'fi-FI') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fi; +} + +if (goog.LOCALE == 'fil') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fil; +} + +if (goog.LOCALE == 'fil_PH' || goog.LOCALE == 'fil-PH') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fil; +} + +if (goog.LOCALE == 'fr') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr; +} + +if (goog.LOCALE == 'fr_BL' || goog.LOCALE == 'fr-BL') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr; +} + +if (goog.LOCALE == 'fr_CA' || goog.LOCALE == 'fr-CA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_CA; +} + +if (goog.LOCALE == 'fr_FR' || goog.LOCALE == 'fr-FR') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr; +} + +if (goog.LOCALE == 'fr_GF' || goog.LOCALE == 'fr-GF') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr; +} + +if (goog.LOCALE == 'fr_GP' || goog.LOCALE == 'fr-GP') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr; +} + +if (goog.LOCALE == 'fr_MC' || goog.LOCALE == 'fr-MC') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr; +} + +if (goog.LOCALE == 'fr_MF' || goog.LOCALE == 'fr-MF') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr; +} + +if (goog.LOCALE == 'fr_MQ' || goog.LOCALE == 'fr-MQ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr; +} + +if (goog.LOCALE == 'fr_RE' || goog.LOCALE == 'fr-RE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr; +} + +if (goog.LOCALE == 'fr_YT' || goog.LOCALE == 'fr-YT') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr; +} + +if (goog.LOCALE == 'gl') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_gl; +} + +if (goog.LOCALE == 'gl_ES' || goog.LOCALE == 'gl-ES') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_gl; +} + +if (goog.LOCALE == 'gsw') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_gsw; +} + +if (goog.LOCALE == 'gsw_CH' || goog.LOCALE == 'gsw-CH') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_gsw; +} + +if (goog.LOCALE == 'gu') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_gu; +} + +if (goog.LOCALE == 'gu_IN' || goog.LOCALE == 'gu-IN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_gu; +} + +if (goog.LOCALE == 'haw') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_haw; +} + +if (goog.LOCALE == 'haw_US' || goog.LOCALE == 'haw-US') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_haw; +} + +if (goog.LOCALE == 'he') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_he; +} + +if (goog.LOCALE == 'he_IL' || goog.LOCALE == 'he-IL') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_he; +} + +if (goog.LOCALE == 'hi') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_hi; +} + +if (goog.LOCALE == 'hi_IN' || goog.LOCALE == 'hi-IN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_hi; +} + +if (goog.LOCALE == 'hr') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_hr; +} + +if (goog.LOCALE == 'hr_HR' || goog.LOCALE == 'hr-HR') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_hr; +} + +if (goog.LOCALE == 'hu') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_hu; +} + +if (goog.LOCALE == 'hu_HU' || goog.LOCALE == 'hu-HU') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_hu; +} + +if (goog.LOCALE == 'id') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_id; +} + +if (goog.LOCALE == 'id_ID' || goog.LOCALE == 'id-ID') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_id; +} + +if (goog.LOCALE == 'in') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_in; +} + +if (goog.LOCALE == 'is') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_is; +} + +if (goog.LOCALE == 'is_IS' || goog.LOCALE == 'is-IS') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_is; +} + +if (goog.LOCALE == 'it') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_it; +} + +if (goog.LOCALE == 'it_IT' || goog.LOCALE == 'it-IT') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_it; +} + +if (goog.LOCALE == 'it_SM' || goog.LOCALE == 'it-SM') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_it; +} + +if (goog.LOCALE == 'iw') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_iw; +} + +if (goog.LOCALE == 'ja') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ja; +} + +if (goog.LOCALE == 'ja_JP' || goog.LOCALE == 'ja-JP') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ja; +} + +if (goog.LOCALE == 'kn') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_kn; +} + +if (goog.LOCALE == 'kn_IN' || goog.LOCALE == 'kn-IN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_kn; +} + +if (goog.LOCALE == 'ko') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ko; +} + +if (goog.LOCALE == 'ko_KR' || goog.LOCALE == 'ko-KR') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ko; +} + +if (goog.LOCALE == 'ln') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ln; +} + +if (goog.LOCALE == 'ln_CD' || goog.LOCALE == 'ln-CD') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ln; +} + +if (goog.LOCALE == 'lt') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_lt; +} + +if (goog.LOCALE == 'lt_LT' || goog.LOCALE == 'lt-LT') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_lt; +} + +if (goog.LOCALE == 'lv') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_lv; +} + +if (goog.LOCALE == 'lv_LV' || goog.LOCALE == 'lv-LV') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_lv; +} + +if (goog.LOCALE == 'ml') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ml; +} + +if (goog.LOCALE == 'ml_IN' || goog.LOCALE == 'ml-IN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ml; +} + +if (goog.LOCALE == 'mr') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_mr; +} + +if (goog.LOCALE == 'mr_IN' || goog.LOCALE == 'mr-IN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_mr; +} + +if (goog.LOCALE == 'ms') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ms; +} + +if (goog.LOCALE == 'ms_Latn_MY' || goog.LOCALE == 'ms-Latn-MY') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ms; +} + +if (goog.LOCALE == 'mt') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_mt; +} + +if (goog.LOCALE == 'mt_MT' || goog.LOCALE == 'mt-MT') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_mt; +} + +if (goog.LOCALE == 'nb') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_nb; +} + +if (goog.LOCALE == 'nb_NO' || goog.LOCALE == 'nb-NO') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_nb; +} + +if (goog.LOCALE == 'nl') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_nl; +} + +if (goog.LOCALE == 'nl_NL' || goog.LOCALE == 'nl-NL') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_nl; +} + +if (goog.LOCALE == 'no') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_no; +} + +if (goog.LOCALE == 'or') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_or; +} + +if (goog.LOCALE == 'or_IN' || goog.LOCALE == 'or-IN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_or; +} + +if (goog.LOCALE == 'pl') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_pl; +} + +if (goog.LOCALE == 'pl_PL' || goog.LOCALE == 'pl-PL') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_pl; +} + +if (goog.LOCALE == 'pt') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_pt; +} + +if (goog.LOCALE == 'pt_BR' || goog.LOCALE == 'pt-BR') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_pt; +} + +if (goog.LOCALE == 'pt_PT' || goog.LOCALE == 'pt-PT') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_pt_PT; +} + +if (goog.LOCALE == 'ro') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ro; +} + +if (goog.LOCALE == 'ro_RO' || goog.LOCALE == 'ro-RO') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ro; +} + +if (goog.LOCALE == 'ru') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ru; +} + +if (goog.LOCALE == 'ru_RU' || goog.LOCALE == 'ru-RU') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ru; +} + +if (goog.LOCALE == 'sk') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sk; +} + +if (goog.LOCALE == 'sk_SK' || goog.LOCALE == 'sk-SK') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sk; +} + +if (goog.LOCALE == 'sl') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sl; +} + +if (goog.LOCALE == 'sl_SI' || goog.LOCALE == 'sl-SI') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sl; +} + +if (goog.LOCALE == 'sq') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sq; +} + +if (goog.LOCALE == 'sq_AL' || goog.LOCALE == 'sq-AL') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sq; +} + +if (goog.LOCALE == 'sr') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sr; +} + +if (goog.LOCALE == 'sr_Cyrl_RS' || goog.LOCALE == 'sr-Cyrl-RS') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sr; +} + +if (goog.LOCALE == 'sv') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sv; +} + +if (goog.LOCALE == 'sv_SE' || goog.LOCALE == 'sv-SE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sv; +} + +if (goog.LOCALE == 'sw') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sw; +} + +if (goog.LOCALE == 'sw_TZ' || goog.LOCALE == 'sw-TZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sw; +} + +if (goog.LOCALE == 'ta') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ta; +} + +if (goog.LOCALE == 'ta_IN' || goog.LOCALE == 'ta-IN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ta; +} + +if (goog.LOCALE == 'te') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_te; +} + +if (goog.LOCALE == 'te_IN' || goog.LOCALE == 'te-IN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_te; +} + +if (goog.LOCALE == 'th') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_th; +} + +if (goog.LOCALE == 'th_TH' || goog.LOCALE == 'th-TH') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_th; +} + +if (goog.LOCALE == 'tl') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_tl; +} + +if (goog.LOCALE == 'tr') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_tr; +} + +if (goog.LOCALE == 'tr_TR' || goog.LOCALE == 'tr-TR') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_tr; +} + +if (goog.LOCALE == 'uk') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_uk; +} + +if (goog.LOCALE == 'uk_UA' || goog.LOCALE == 'uk-UA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_uk; +} + +if (goog.LOCALE == 'ur') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ur; +} + +if (goog.LOCALE == 'ur_PK' || goog.LOCALE == 'ur-PK') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ur; +} + +if (goog.LOCALE == 'vi') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_vi; +} + +if (goog.LOCALE == 'vi_VN' || goog.LOCALE == 'vi-VN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_vi; +} + +if (goog.LOCALE == 'zh') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_zh; +} + +if (goog.LOCALE == 'zh_CN' || goog.LOCALE == 'zh-CN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_zh; +} + +if (goog.LOCALE == 'zh_HK' || goog.LOCALE == 'zh-HK') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_zh_HK; +} + +if (goog.LOCALE == 'zh_Hans_CN' || goog.LOCALE == 'zh-Hans-CN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_zh; +} + +if (goog.LOCALE == 'zh_TW' || goog.LOCALE == 'zh-TW') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_zh_TW; +} + +if (goog.LOCALE == 'zu') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_zu; +} + +if (goog.LOCALE == 'zu_ZA' || goog.LOCALE == 'zu-ZA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_zu; +} + diff --git a/edit/closure-library/closure/goog/i18n/compactnumberformatsymbols_ext.js b/edit/closure-library/closure/goog/i18n/compactnumberformatsymbols_ext.js new file mode 100644 index 0000000000..8e56909ea1 --- /dev/null +++ b/edit/closure-library/closure/goog/i18n/compactnumberformatsymbols_ext.js @@ -0,0 +1,27549 @@ +// Copyright 2013 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +// implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview Compact number formatting symbols. + * + * This file is autogenerated by script: + * http://go/generate_number_constants.py + * using the --for_closure flag. + * File generated from CLDR ver. 23 + * + * This file coveres those locales that are not covered in + * "compactnumberformatsymbols.js". + * + * Before checkin, this file could have been manually edited. This is + * to incorporate changes before we could fix CLDR. All manual + * modification must be documented in this section, and should be + * removed after those changes land to CLDR. + */ + +goog.provide('goog.i18n.CompactNumberFormatSymbolsExt'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_aa'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_aa_DJ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_aa_ER'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_aa_ET'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_af_NA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_agq'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_agq_CM'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ak'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ak_GH'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ar_AE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ar_BH'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ar_DJ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ar_DZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ar_EH'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ar_ER'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ar_IL'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ar_IQ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ar_JO'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ar_KM'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ar_KW'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ar_LB'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ar_LY'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ar_MA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ar_MR'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ar_OM'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ar_PS'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ar_QA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ar_SA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ar_SD'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ar_SO'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ar_SY'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ar_TD'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ar_TN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ar_YE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_as'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_as_IN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_asa'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_asa_TZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ast'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ast_ES'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_az'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_az_Cyrl'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_az_Cyrl_AZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_az_Latn'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_az_Latn_AZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_bas'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_bas_CM'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_be'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_be_BY'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_bem'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_bem_ZM'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_bez'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_bez_TZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_bm'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_bm_ML'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_bn_IN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_bo'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_bo_CN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_bo_IN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_brx'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_brx_IN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_bs'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_bs_Cyrl'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_bs_Cyrl_BA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_bs_Latn'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_bs_Latn_BA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_byn'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_byn_ER'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_cgg'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_cgg_UG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ckb'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ckb_Arab'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ckb_Arab_IQ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ckb_Arab_IR'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ckb_IQ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ckb_IR'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ckb_Latn'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ckb_Latn_IQ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_dav'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_dav_KE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_de_LI'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_dje'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_dje_NE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_dua'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_dua_CM'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_dyo'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_dyo_SN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_dz'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_dz_BT'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ebu'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ebu_KE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ee'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ee_GH'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ee_TG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_el_CY'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_150'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_AG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_BB'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_BE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_BM'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_BS'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_BW'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_BZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_CA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_CM'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_DM'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_Dsrt'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_FJ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_GD'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_GG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_GH'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_GI'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_GM'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_GY'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_HK'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_IM'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_JE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_JM'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_KE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_KI'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_KN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_KY'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_LC'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_LR'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_LS'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_MG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_MT'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_MU'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_MW'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_NA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_NG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_NZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_PG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_PH'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_PK'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_SB'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_SC'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_SL'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_SS'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_SZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_TO'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_TT'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_TZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_UG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_VC'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_VU'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_WS'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_ZM'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_en_ZW'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_eo'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_es_AR'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_es_BO'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_es_CL'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_es_CO'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_es_CR'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_es_CU'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_es_DO'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_es_EC'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_es_GQ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_es_GT'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_es_HN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_es_MX'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_es_NI'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_es_PA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_es_PE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_es_PH'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_es_PR'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_es_PY'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_es_SV'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_es_US'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_es_UY'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_es_VE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ewo'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ewo_CM'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fa_AF'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ff'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ff_SN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fo'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fo_FO'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_BE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_BF'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_BI'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_BJ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_CD'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_CF'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_CG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_CH'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_CI'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_CM'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_DJ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_DZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_GA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_GN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_GQ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_HT'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_KM'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_LU'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_MA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_MG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_ML'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_MR'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_MU'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_NC'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_NE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_PF'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_RW'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_SC'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_SN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_SY'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_TD'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_TG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_TN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fr_VU'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fur'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_fur_IT'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ga'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ga_IE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_gd'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_gd_GB'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_guz'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_guz_KE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_gv'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_gv_GB'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ha'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ha_Latn'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ha_Latn_GH'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ha_Latn_NE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ha_Latn_NG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_hr_BA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_hy'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_hy_AM'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ia'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ia_FR'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ig'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ig_NG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ii'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ii_CN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_it_CH'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_jgo'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_jgo_CM'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_jmc'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_jmc_TZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ka'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ka_GE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_kab'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_kab_DZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_kam'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_kam_KE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_kde'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_kde_TZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_kea'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_kea_CV'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_khq'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_khq_ML'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ki'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ki_KE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_kk'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_kk_Cyrl'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_kk_Cyrl_KZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_kkj'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_kkj_CM'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_kl'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_kl_GL'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_kln'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_kln_KE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_km'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_km_KH'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ko_KP'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_kok'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_kok_IN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ks'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ks_Arab'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ks_Arab_IN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ksb'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ksb_TZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ksf'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ksf_CM'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ksh'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ksh_DE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_kw'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_kw_GB'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ky'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ky_KG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_lag'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_lag_TZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_lg'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_lg_UG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ln_AO'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ln_CF'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ln_CG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_lo'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_lo_LA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_lu'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_lu_CD'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_luo'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_luo_KE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_luy'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_luy_KE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_mas'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_mas_KE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_mas_TZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_mer'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_mer_KE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_mfe'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_mfe_MU'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_mg'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_mg_MG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_mgh'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_mgh_MZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_mgo'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_mgo_CM'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_mk'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_mk_MK'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_mn'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_mn_Cyrl'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_mn_Cyrl_MN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ms_Latn'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ms_Latn_BN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ms_Latn_SG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_mua'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_mua_CM'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_my'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_my_MM'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_naq'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_naq_NA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_nd'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_nd_ZW'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ne'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ne_IN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ne_NP'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_nl_AW'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_nl_BE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_nl_CW'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_nl_SR'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_nl_SX'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_nmg'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_nmg_CM'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_nn'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_nn_NO'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_nnh'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_nnh_CM'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_nr'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_nr_ZA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_nso'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_nso_ZA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_nus'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_nus_SD'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_nyn'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_nyn_UG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_om'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_om_ET'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_om_KE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_os'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_os_GE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_os_RU'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_pa'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_pa_Arab'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_pa_Arab_PK'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_pa_Guru'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_pa_Guru_IN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ps'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ps_AF'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_pt_AO'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_pt_CV'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_pt_GW'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_pt_MO'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_pt_MZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_pt_ST'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_pt_TL'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_rm'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_rm_CH'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_rn'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_rn_BI'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ro_MD'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_rof'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_rof_TZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ru_BY'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ru_KG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ru_KZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ru_MD'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ru_UA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_rw'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_rw_RW'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_rwk'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_rwk_TZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sah'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sah_RU'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_saq'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_saq_KE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sbp'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sbp_TZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_se'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_se_FI'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_se_NO'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_seh'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_seh_MZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ses'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ses_ML'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sg'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sg_CF'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_shi'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_shi_Latn'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_shi_Latn_MA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_shi_Tfng'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_shi_Tfng_MA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_si'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_si_LK'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sn'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sn_ZW'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_so'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_so_DJ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_so_ET'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_so_KE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_so_SO'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sq_MK'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sq_XK'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sr_Cyrl'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sr_Cyrl_BA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sr_Cyrl_ME'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sr_Cyrl_XK'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sr_Latn'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sr_Latn_BA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sr_Latn_ME'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sr_Latn_RS'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sr_Latn_XK'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ss'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ss_SZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ss_ZA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ssy'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ssy_ER'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_st'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_st_LS'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_st_ZA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sv_AX'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sv_FI'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sw_KE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_sw_UG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_swc'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_swc_CD'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ta_LK'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ta_MY'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ta_SG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_teo'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_teo_KE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_teo_UG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_tg'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_tg_Cyrl'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_tg_Cyrl_TJ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ti'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ti_ER'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ti_ET'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_tig'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_tig_ER'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_tn'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_tn_BW'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_tn_ZA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_to'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_to_TO'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_tr_CY'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ts'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ts_ZA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_twq'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_twq_NE'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_tzm'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_tzm_Latn'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_tzm_Latn_MA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ur_IN'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_uz'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_uz_Arab'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_uz_Arab_AF'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_uz_Cyrl'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_uz_Cyrl_UZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_uz_Latn'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_uz_Latn_UZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_vai'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_vai_Latn'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_vai_Latn_LR'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_vai_Vaii'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_vai_Vaii_LR'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ve'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_ve_ZA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_vo'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_vun'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_vun_TZ'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_wae'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_wae_CH'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_wal'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_wal_ET'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_xh'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_xh_ZA'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_xog'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_xog_UG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_yav'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_yav_CM'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_yo'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_yo_NG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_zh_Hans'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_zh_Hans_HK'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_zh_Hans_MO'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_zh_Hans_SG'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_zh_Hant'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_zh_Hant_HK'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_zh_Hant_MO'); +goog.provide('goog.i18n.CompactNumberFormatSymbols_zh_Hant_TW'); + + +/** + * Compact number formatting symbols for locale aa. + */ +goog.i18n.CompactNumberFormatSymbols_aa = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale aa_DJ. + */ +goog.i18n.CompactNumberFormatSymbols_aa_DJ = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale aa_ER. + */ +goog.i18n.CompactNumberFormatSymbols_aa_ER = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale aa_ET. + */ +goog.i18n.CompactNumberFormatSymbols_aa_ET = + goog.i18n.CompactNumberFormatSymbols_aa; + + +/** + * Compact number formatting symbols for locale af_NA. + */ +goog.i18n.CompactNumberFormatSymbols_af_NA = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0' + }, + '100000': { + 'other': '0' + }, + '1000000': { + 'other': '0\u00A0m' + }, + '10000000': { + 'other': '00\u00A0m' + }, + '100000000': { + 'other': '000\u00A0m' + }, + '1000000000': { + 'other': '0\u00A0mjd' + }, + '10000000000': { + 'other': '00\u00A0mjd' + }, + '100000000000': { + 'other': '000\u00A0mjd' + }, + '1000000000000': { + 'other': '0\u00A0bn' + }, + '10000000000000': { + 'other': '00\u00A0bn' + }, + '100000000000000': { + 'other': '000\u00A0bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 duisend' + }, + '10000': { + 'other': '00 duisend' + }, + '100000': { + 'other': '000 duisend' + }, + '1000000': { + 'other': '0 miljoen' + }, + '10000000': { + 'other': '00 miljoen' + }, + '100000000': { + 'other': '000 miljoen' + }, + '1000000000': { + 'other': '0 miljard' + }, + '10000000000': { + 'other': '00 miljard' + }, + '100000000000': { + 'other': '000 miljard' + }, + '1000000000000': { + 'other': '0 biljoen' + }, + '10000000000000': { + 'other': '00 biljoen' + }, + '100000000000000': { + 'other': '000 biljoen' + } + } +}; + + +/** + * Compact number formatting symbols for locale agq. + */ +goog.i18n.CompactNumberFormatSymbols_agq = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale agq_CM. + */ +goog.i18n.CompactNumberFormatSymbols_agq_CM = + goog.i18n.CompactNumberFormatSymbols_agq; + + +/** + * Compact number formatting symbols for locale ak. + */ +goog.i18n.CompactNumberFormatSymbols_ak = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ak_GH. + */ +goog.i18n.CompactNumberFormatSymbols_ak_GH = + goog.i18n.CompactNumberFormatSymbols_ak; + + +/** + * Compact number formatting symbols for locale ar_AE. + */ +goog.i18n.CompactNumberFormatSymbols_ar_AE = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0623\u0644\u0641' + }, + '10000': { + 'other': '00\u00A0\u0623\u0644\u0641' + }, + '100000': { + 'other': '000\u00A0\u0623\u0644\u0641' + }, + '1000000': { + 'other': '0\u00A0\u0645\u0644\u064A\u0648' + }, + '10000000': { + 'other': '00\u00A0\u0645\u0644\u064A\u0648' + }, + '100000000': { + 'other': '000\u00A0\u0645\u0644\u064A\u0648' + }, + '1000000000': { + 'other': '0\u00A0\u0628\u0644\u064A\u0648' + }, + '10000000000': { + 'other': '00\u00A0\u0628\u0644\u064A\u0648' + }, + '100000000000': { + 'other': '000\u00A0\u0628\u0644\u064A\u0648' + }, + '1000000000000': { + 'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '10000000000000': { + 'other': '00\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '100000000000000': { + 'other': '000\u00A0\u062A\u0631\u0644\u064A\u0648' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0623\u0644\u0641' + }, + '10000': { + 'other': '00 \u0623\u0644\u0641' + }, + '100000': { + 'other': '000 \u0623\u0644\u0641' + }, + '1000000': { + 'other': '0 \u0645\u0644\u064A\u0648\u0646' + }, + '10000000': { + 'other': '00 \u0645\u0644\u064A\u0648\u0646' + }, + '100000000': { + 'other': '000 \u0645\u0644\u064A\u0648\u0646' + }, + '1000000000': { + 'other': '0 \u0628\u0644\u064A\u0648\u0646' + }, + '10000000000': { + 'other': '00 \u0628\u0644\u064A\u0648\u0646' + }, + '100000000000': { + 'other': '000 \u0628\u0644\u064A\u0648\u0646' + }, + '1000000000000': { + 'other': '0 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '10000000000000': { + 'other': '00 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '100000000000000': { + 'other': '000 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + } + } +}; + + +/** + * Compact number formatting symbols for locale ar_BH. + */ +goog.i18n.CompactNumberFormatSymbols_ar_BH = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0623\u0644\u0641' + }, + '10000': { + 'other': '00\u00A0\u0623\u0644\u0641' + }, + '100000': { + 'other': '000\u00A0\u0623\u0644\u0641' + }, + '1000000': { + 'other': '0\u00A0\u0645\u0644\u064A\u0648' + }, + '10000000': { + 'other': '00\u00A0\u0645\u0644\u064A\u0648' + }, + '100000000': { + 'other': '000\u00A0\u0645\u0644\u064A\u0648' + }, + '1000000000': { + 'other': '0\u00A0\u0628\u0644\u064A\u0648' + }, + '10000000000': { + 'other': '00\u00A0\u0628\u0644\u064A\u0648' + }, + '100000000000': { + 'other': '000\u00A0\u0628\u0644\u064A\u0648' + }, + '1000000000000': { + 'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '10000000000000': { + 'other': '00\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '100000000000000': { + 'other': '000\u00A0\u062A\u0631\u0644\u064A\u0648' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0623\u0644\u0641' + }, + '10000': { + 'other': '00 \u0623\u0644\u0641' + }, + '100000': { + 'other': '000 \u0623\u0644\u0641' + }, + '1000000': { + 'other': '0 \u0645\u0644\u064A\u0648\u0646' + }, + '10000000': { + 'other': '00 \u0645\u0644\u064A\u0648\u0646' + }, + '100000000': { + 'other': '000 \u0645\u0644\u064A\u0648\u0646' + }, + '1000000000': { + 'other': '0 \u0628\u0644\u064A\u0648\u0646' + }, + '10000000000': { + 'other': '00 \u0628\u0644\u064A\u0648\u0646' + }, + '100000000000': { + 'other': '000 \u0628\u0644\u064A\u0648\u0646' + }, + '1000000000000': { + 'other': '0 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '10000000000000': { + 'other': '00 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '100000000000000': { + 'other': '000 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + } + } +}; + + +/** + * Compact number formatting symbols for locale ar_DJ. + */ +goog.i18n.CompactNumberFormatSymbols_ar_DJ = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0623\u0644\u0641' + }, + '10000': { + 'other': '00\u00A0\u0623\u0644\u0641' + }, + '100000': { + 'other': '000\u00A0\u0623\u0644\u0641' + }, + '1000000': { + 'other': '0\u00A0\u0645\u0644\u064A\u0648' + }, + '10000000': { + 'other': '00\u00A0\u0645\u0644\u064A\u0648' + }, + '100000000': { + 'other': '000\u00A0\u0645\u0644\u064A\u0648' + }, + '1000000000': { + 'other': '0\u00A0\u0628\u0644\u064A\u0648' + }, + '10000000000': { + 'other': '00\u00A0\u0628\u0644\u064A\u0648' + }, + '100000000000': { + 'other': '000\u00A0\u0628\u0644\u064A\u0648' + }, + '1000000000000': { + 'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '10000000000000': { + 'other': '00\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '100000000000000': { + 'other': '000\u00A0\u062A\u0631\u0644\u064A\u0648' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0623\u0644\u0641' + }, + '10000': { + 'other': '00 \u0623\u0644\u0641' + }, + '100000': { + 'other': '000 \u0623\u0644\u0641' + }, + '1000000': { + 'other': '0 \u0645\u0644\u064A\u0648\u0646' + }, + '10000000': { + 'other': '00 \u0645\u0644\u064A\u0648\u0646' + }, + '100000000': { + 'other': '000 \u0645\u0644\u064A\u0648\u0646' + }, + '1000000000': { + 'other': '0 \u0628\u0644\u064A\u0648\u0646' + }, + '10000000000': { + 'other': '00 \u0628\u0644\u064A\u0648\u0646' + }, + '100000000000': { + 'other': '000 \u0628\u0644\u064A\u0648\u0646' + }, + '1000000000000': { + 'other': '0 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '10000000000000': { + 'other': '00 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '100000000000000': { + 'other': '000 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + } + } +}; + + +/** + * Compact number formatting symbols for locale ar_DZ. + */ +goog.i18n.CompactNumberFormatSymbols_ar_DZ = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0623\u0644\u0641' + }, + '10000': { + 'other': '00\u00A0\u0623\u0644\u0641' + }, + '100000': { + 'other': '000\u00A0\u0623\u0644\u0641' + }, + '1000000': { + 'other': '0\u00A0\u0645\u0644\u064A\u0648' + }, + '10000000': { + 'other': '00\u00A0\u0645\u0644\u064A\u0648' + }, + '100000000': { + 'other': '000\u00A0\u0645\u0644\u064A\u0648' + }, + '1000000000': { + 'other': '0\u00A0\u0628\u0644\u064A\u0648' + }, + '10000000000': { + 'other': '00\u00A0\u0628\u0644\u064A\u0648' + }, + '100000000000': { + 'other': '000\u00A0\u0628\u0644\u064A\u0648' + }, + '1000000000000': { + 'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '10000000000000': { + 'other': '00\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '100000000000000': { + 'other': '000\u00A0\u062A\u0631\u0644\u064A\u0648' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0623\u0644\u0641' + }, + '10000': { + 'other': '00 \u0623\u0644\u0641' + }, + '100000': { + 'other': '000 \u0623\u0644\u0641' + }, + '1000000': { + 'other': '0 \u0645\u0644\u064A\u0648\u0646' + }, + '10000000': { + 'other': '00 \u0645\u0644\u064A\u0648\u0646' + }, + '100000000': { + 'other': '000 \u0645\u0644\u064A\u0648\u0646' + }, + '1000000000': { + 'other': '0 \u0628\u0644\u064A\u0648\u0646' + }, + '10000000000': { + 'other': '00 \u0628\u0644\u064A\u0648\u0646' + }, + '100000000000': { + 'other': '000 \u0628\u0644\u064A\u0648\u0646' + }, + '1000000000000': { + 'other': '0 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '10000000000000': { + 'other': '00 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '100000000000000': { + 'other': '000 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + } + } +}; + + +/** + * Compact number formatting symbols for locale ar_EH. + */ +goog.i18n.CompactNumberFormatSymbols_ar_EH = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0623\u0644\u0641' + }, + '10000': { + 'other': '00\u00A0\u0623\u0644\u0641' + }, + '100000': { + 'other': '000\u00A0\u0623\u0644\u0641' + }, + '1000000': { + 'other': '0\u00A0\u0645\u0644\u064A\u0648' + }, + '10000000': { + 'other': '00\u00A0\u0645\u0644\u064A\u0648' + }, + '100000000': { + 'other': '000\u00A0\u0645\u0644\u064A\u0648' + }, + '1000000000': { + 'other': '0\u00A0\u0628\u0644\u064A\u0648' + }, + '10000000000': { + 'other': '00\u00A0\u0628\u0644\u064A\u0648' + }, + '100000000000': { + 'other': '000\u00A0\u0628\u0644\u064A\u0648' + }, + '1000000000000': { + 'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '10000000000000': { + 'other': '00\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '100000000000000': { + 'other': '000\u00A0\u062A\u0631\u0644\u064A\u0648' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0623\u0644\u0641' + }, + '10000': { + 'other': '00 \u0623\u0644\u0641' + }, + '100000': { + 'other': '000 \u0623\u0644\u0641' + }, + '1000000': { + 'other': '0 \u0645\u0644\u064A\u0648\u0646' + }, + '10000000': { + 'other': '00 \u0645\u0644\u064A\u0648\u0646' + }, + '100000000': { + 'other': '000 \u0645\u0644\u064A\u0648\u0646' + }, + '1000000000': { + 'other': '0 \u0628\u0644\u064A\u0648\u0646' + }, + '10000000000': { + 'other': '00 \u0628\u0644\u064A\u0648\u0646' + }, + '100000000000': { + 'other': '000 \u0628\u0644\u064A\u0648\u0646' + }, + '1000000000000': { + 'other': '0 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '10000000000000': { + 'other': '00 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '100000000000000': { + 'other': '000 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + } + } +}; + + +/** + * Compact number formatting symbols for locale ar_ER. + */ +goog.i18n.CompactNumberFormatSymbols_ar_ER = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0623\u0644\u0641' + }, + '10000': { + 'other': '00\u00A0\u0623\u0644\u0641' + }, + '100000': { + 'other': '000\u00A0\u0623\u0644\u0641' + }, + '1000000': { + 'other': '0\u00A0\u0645\u0644\u064A\u0648' + }, + '10000000': { + 'other': '00\u00A0\u0645\u0644\u064A\u0648' + }, + '100000000': { + 'other': '000\u00A0\u0645\u0644\u064A\u0648' + }, + '1000000000': { + 'other': '0\u00A0\u0628\u0644\u064A\u0648' + }, + '10000000000': { + 'other': '00\u00A0\u0628\u0644\u064A\u0648' + }, + '100000000000': { + 'other': '000\u00A0\u0628\u0644\u064A\u0648' + }, + '1000000000000': { + 'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '10000000000000': { + 'other': '00\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '100000000000000': { + 'other': '000\u00A0\u062A\u0631\u0644\u064A\u0648' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0623\u0644\u0641' + }, + '10000': { + 'other': '00 \u0623\u0644\u0641' + }, + '100000': { + 'other': '000 \u0623\u0644\u0641' + }, + '1000000': { + 'other': '0 \u0645\u0644\u064A\u0648\u0646' + }, + '10000000': { + 'other': '00 \u0645\u0644\u064A\u0648\u0646' + }, + '100000000': { + 'other': '000 \u0645\u0644\u064A\u0648\u0646' + }, + '1000000000': { + 'other': '0 \u0628\u0644\u064A\u0648\u0646' + }, + '10000000000': { + 'other': '00 \u0628\u0644\u064A\u0648\u0646' + }, + '100000000000': { + 'other': '000 \u0628\u0644\u064A\u0648\u0646' + }, + '1000000000000': { + 'other': '0 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '10000000000000': { + 'other': '00 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '100000000000000': { + 'other': '000 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + } + } +}; + + +/** + * Compact number formatting symbols for locale ar_IL. + */ +goog.i18n.CompactNumberFormatSymbols_ar_IL = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0623\u0644\u0641' + }, + '10000': { + 'other': '00\u00A0\u0623\u0644\u0641' + }, + '100000': { + 'other': '000\u00A0\u0623\u0644\u0641' + }, + '1000000': { + 'other': '0\u00A0\u0645\u0644\u064A\u0648' + }, + '10000000': { + 'other': '00\u00A0\u0645\u0644\u064A\u0648' + }, + '100000000': { + 'other': '000\u00A0\u0645\u0644\u064A\u0648' + }, + '1000000000': { + 'other': '0\u00A0\u0628\u0644\u064A\u0648' + }, + '10000000000': { + 'other': '00\u00A0\u0628\u0644\u064A\u0648' + }, + '100000000000': { + 'other': '000\u00A0\u0628\u0644\u064A\u0648' + }, + '1000000000000': { + 'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '10000000000000': { + 'other': '00\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '100000000000000': { + 'other': '000\u00A0\u062A\u0631\u0644\u064A\u0648' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0623\u0644\u0641' + }, + '10000': { + 'other': '00 \u0623\u0644\u0641' + }, + '100000': { + 'other': '000 \u0623\u0644\u0641' + }, + '1000000': { + 'other': '0 \u0645\u0644\u064A\u0648\u0646' + }, + '10000000': { + 'other': '00 \u0645\u0644\u064A\u0648\u0646' + }, + '100000000': { + 'other': '000 \u0645\u0644\u064A\u0648\u0646' + }, + '1000000000': { + 'other': '0 \u0628\u0644\u064A\u0648\u0646' + }, + '10000000000': { + 'other': '00 \u0628\u0644\u064A\u0648\u0646' + }, + '100000000000': { + 'other': '000 \u0628\u0644\u064A\u0648\u0646' + }, + '1000000000000': { + 'other': '0 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '10000000000000': { + 'other': '00 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '100000000000000': { + 'other': '000 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + } + } +}; + + +/** + * Compact number formatting symbols for locale ar_IQ. + */ +goog.i18n.CompactNumberFormatSymbols_ar_IQ = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0623\u0644\u0641' + }, + '10000': { + 'other': '00\u00A0\u0623\u0644\u0641' + }, + '100000': { + 'other': '000\u00A0\u0623\u0644\u0641' + }, + '1000000': { + 'other': '0\u00A0\u0645\u0644\u064A\u0648' + }, + '10000000': { + 'other': '00\u00A0\u0645\u0644\u064A\u0648' + }, + '100000000': { + 'other': '000\u00A0\u0645\u0644\u064A\u0648' + }, + '1000000000': { + 'other': '0\u00A0\u0628\u0644\u064A\u0648' + }, + '10000000000': { + 'other': '00\u00A0\u0628\u0644\u064A\u0648' + }, + '100000000000': { + 'other': '000\u00A0\u0628\u0644\u064A\u0648' + }, + '1000000000000': { + 'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '10000000000000': { + 'other': '00\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '100000000000000': { + 'other': '000\u00A0\u062A\u0631\u0644\u064A\u0648' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0623\u0644\u0641' + }, + '10000': { + 'other': '00 \u0623\u0644\u0641' + }, + '100000': { + 'other': '000 \u0623\u0644\u0641' + }, + '1000000': { + 'other': '0 \u0645\u0644\u064A\u0648\u0646' + }, + '10000000': { + 'other': '00 \u0645\u0644\u064A\u0648\u0646' + }, + '100000000': { + 'other': '000 \u0645\u0644\u064A\u0648\u0646' + }, + '1000000000': { + 'other': '0 \u0628\u0644\u064A\u0648\u0646' + }, + '10000000000': { + 'other': '00 \u0628\u0644\u064A\u0648\u0646' + }, + '100000000000': { + 'other': '000 \u0628\u0644\u064A\u0648\u0646' + }, + '1000000000000': { + 'other': '0 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '10000000000000': { + 'other': '00 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '100000000000000': { + 'other': '000 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + } + } +}; + + +/** + * Compact number formatting symbols for locale ar_JO. + */ +goog.i18n.CompactNumberFormatSymbols_ar_JO = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0623\u0644\u0641' + }, + '10000': { + 'other': '00\u00A0\u0623\u0644\u0641' + }, + '100000': { + 'other': '000\u00A0\u0623\u0644\u0641' + }, + '1000000': { + 'other': '0\u00A0\u0645\u0644\u064A\u0648' + }, + '10000000': { + 'other': '00\u00A0\u0645\u0644\u064A\u0648' + }, + '100000000': { + 'other': '000\u00A0\u0645\u0644\u064A\u0648' + }, + '1000000000': { + 'other': '0\u00A0\u0628\u0644\u064A\u0648' + }, + '10000000000': { + 'other': '00\u00A0\u0628\u0644\u064A\u0648' + }, + '100000000000': { + 'other': '000\u00A0\u0628\u0644\u064A\u0648' + }, + '1000000000000': { + 'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '10000000000000': { + 'other': '00\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '100000000000000': { + 'other': '000\u00A0\u062A\u0631\u0644\u064A\u0648' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0623\u0644\u0641' + }, + '10000': { + 'other': '00 \u0623\u0644\u0641' + }, + '100000': { + 'other': '000 \u0623\u0644\u0641' + }, + '1000000': { + 'other': '0 \u0645\u0644\u064A\u0648\u0646' + }, + '10000000': { + 'other': '00 \u0645\u0644\u064A\u0648\u0646' + }, + '100000000': { + 'other': '000 \u0645\u0644\u064A\u0648\u0646' + }, + '1000000000': { + 'other': '0 \u0628\u0644\u064A\u0648\u0646' + }, + '10000000000': { + 'other': '00 \u0628\u0644\u064A\u0648\u0646' + }, + '100000000000': { + 'other': '000 \u0628\u0644\u064A\u0648\u0646' + }, + '1000000000000': { + 'other': '0 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '10000000000000': { + 'other': '00 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '100000000000000': { + 'other': '000 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + } + } +}; + + +/** + * Compact number formatting symbols for locale ar_KM. + */ +goog.i18n.CompactNumberFormatSymbols_ar_KM = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0623\u0644\u0641' + }, + '10000': { + 'other': '00\u00A0\u0623\u0644\u0641' + }, + '100000': { + 'other': '000\u00A0\u0623\u0644\u0641' + }, + '1000000': { + 'other': '0\u00A0\u0645\u0644\u064A\u0648' + }, + '10000000': { + 'other': '00\u00A0\u0645\u0644\u064A\u0648' + }, + '100000000': { + 'other': '000\u00A0\u0645\u0644\u064A\u0648' + }, + '1000000000': { + 'other': '0\u00A0\u0628\u0644\u064A\u0648' + }, + '10000000000': { + 'other': '00\u00A0\u0628\u0644\u064A\u0648' + }, + '100000000000': { + 'other': '000\u00A0\u0628\u0644\u064A\u0648' + }, + '1000000000000': { + 'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '10000000000000': { + 'other': '00\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '100000000000000': { + 'other': '000\u00A0\u062A\u0631\u0644\u064A\u0648' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0623\u0644\u0641' + }, + '10000': { + 'other': '00 \u0623\u0644\u0641' + }, + '100000': { + 'other': '000 \u0623\u0644\u0641' + }, + '1000000': { + 'other': '0 \u0645\u0644\u064A\u0648\u0646' + }, + '10000000': { + 'other': '00 \u0645\u0644\u064A\u0648\u0646' + }, + '100000000': { + 'other': '000 \u0645\u0644\u064A\u0648\u0646' + }, + '1000000000': { + 'other': '0 \u0628\u0644\u064A\u0648\u0646' + }, + '10000000000': { + 'other': '00 \u0628\u0644\u064A\u0648\u0646' + }, + '100000000000': { + 'other': '000 \u0628\u0644\u064A\u0648\u0646' + }, + '1000000000000': { + 'other': '0 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '10000000000000': { + 'other': '00 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '100000000000000': { + 'other': '000 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + } + } +}; + + +/** + * Compact number formatting symbols for locale ar_KW. + */ +goog.i18n.CompactNumberFormatSymbols_ar_KW = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0623\u0644\u0641' + }, + '10000': { + 'other': '00\u00A0\u0623\u0644\u0641' + }, + '100000': { + 'other': '000\u00A0\u0623\u0644\u0641' + }, + '1000000': { + 'other': '0\u00A0\u0645\u0644\u064A\u0648' + }, + '10000000': { + 'other': '00\u00A0\u0645\u0644\u064A\u0648' + }, + '100000000': { + 'other': '000\u00A0\u0645\u0644\u064A\u0648' + }, + '1000000000': { + 'other': '0\u00A0\u0628\u0644\u064A\u0648' + }, + '10000000000': { + 'other': '00\u00A0\u0628\u0644\u064A\u0648' + }, + '100000000000': { + 'other': '000\u00A0\u0628\u0644\u064A\u0648' + }, + '1000000000000': { + 'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '10000000000000': { + 'other': '00\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '100000000000000': { + 'other': '000\u00A0\u062A\u0631\u0644\u064A\u0648' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0623\u0644\u0641' + }, + '10000': { + 'other': '00 \u0623\u0644\u0641' + }, + '100000': { + 'other': '000 \u0623\u0644\u0641' + }, + '1000000': { + 'other': '0 \u0645\u0644\u064A\u0648\u0646' + }, + '10000000': { + 'other': '00 \u0645\u0644\u064A\u0648\u0646' + }, + '100000000': { + 'other': '000 \u0645\u0644\u064A\u0648\u0646' + }, + '1000000000': { + 'other': '0 \u0628\u0644\u064A\u0648\u0646' + }, + '10000000000': { + 'other': '00 \u0628\u0644\u064A\u0648\u0646' + }, + '100000000000': { + 'other': '000 \u0628\u0644\u064A\u0648\u0646' + }, + '1000000000000': { + 'other': '0 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '10000000000000': { + 'other': '00 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '100000000000000': { + 'other': '000 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + } + } +}; + + +/** + * Compact number formatting symbols for locale ar_LB. + */ +goog.i18n.CompactNumberFormatSymbols_ar_LB = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0623\u0644\u0641' + }, + '10000': { + 'other': '00\u00A0\u0623\u0644\u0641' + }, + '100000': { + 'other': '000\u00A0\u0623\u0644\u0641' + }, + '1000000': { + 'other': '0\u00A0\u0645\u0644\u064A\u0648' + }, + '10000000': { + 'other': '00\u00A0\u0645\u0644\u064A\u0648' + }, + '100000000': { + 'other': '000\u00A0\u0645\u0644\u064A\u0648' + }, + '1000000000': { + 'other': '0\u00A0\u0628\u0644\u064A\u0648' + }, + '10000000000': { + 'other': '00\u00A0\u0628\u0644\u064A\u0648' + }, + '100000000000': { + 'other': '000\u00A0\u0628\u0644\u064A\u0648' + }, + '1000000000000': { + 'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '10000000000000': { + 'other': '00\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '100000000000000': { + 'other': '000\u00A0\u062A\u0631\u0644\u064A\u0648' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0623\u0644\u0641' + }, + '10000': { + 'other': '00 \u0623\u0644\u0641' + }, + '100000': { + 'other': '000 \u0623\u0644\u0641' + }, + '1000000': { + 'other': '0 \u0645\u0644\u064A\u0648\u0646' + }, + '10000000': { + 'other': '00 \u0645\u0644\u064A\u0648\u0646' + }, + '100000000': { + 'other': '000 \u0645\u0644\u064A\u0648\u0646' + }, + '1000000000': { + 'other': '0 \u0628\u0644\u064A\u0648\u0646' + }, + '10000000000': { + 'other': '00 \u0628\u0644\u064A\u0648\u0646' + }, + '100000000000': { + 'other': '000 \u0628\u0644\u064A\u0648\u0646' + }, + '1000000000000': { + 'other': '0 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '10000000000000': { + 'other': '00 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '100000000000000': { + 'other': '000 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + } + } +}; + + +/** + * Compact number formatting symbols for locale ar_LY. + */ +goog.i18n.CompactNumberFormatSymbols_ar_LY = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0623\u0644\u0641' + }, + '10000': { + 'other': '00\u00A0\u0623\u0644\u0641' + }, + '100000': { + 'other': '000\u00A0\u0623\u0644\u0641' + }, + '1000000': { + 'other': '0\u00A0\u0645\u0644\u064A\u0648' + }, + '10000000': { + 'other': '00\u00A0\u0645\u0644\u064A\u0648' + }, + '100000000': { + 'other': '000\u00A0\u0645\u0644\u064A\u0648' + }, + '1000000000': { + 'other': '0\u00A0\u0628\u0644\u064A\u0648' + }, + '10000000000': { + 'other': '00\u00A0\u0628\u0644\u064A\u0648' + }, + '100000000000': { + 'other': '000\u00A0\u0628\u0644\u064A\u0648' + }, + '1000000000000': { + 'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '10000000000000': { + 'other': '00\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '100000000000000': { + 'other': '000\u00A0\u062A\u0631\u0644\u064A\u0648' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0623\u0644\u0641' + }, + '10000': { + 'other': '00 \u0623\u0644\u0641' + }, + '100000': { + 'other': '000 \u0623\u0644\u0641' + }, + '1000000': { + 'other': '0 \u0645\u0644\u064A\u0648\u0646' + }, + '10000000': { + 'other': '00 \u0645\u0644\u064A\u0648\u0646' + }, + '100000000': { + 'other': '000 \u0645\u0644\u064A\u0648\u0646' + }, + '1000000000': { + 'other': '0 \u0628\u0644\u064A\u0648\u0646' + }, + '10000000000': { + 'other': '00 \u0628\u0644\u064A\u0648\u0646' + }, + '100000000000': { + 'other': '000 \u0628\u0644\u064A\u0648\u0646' + }, + '1000000000000': { + 'other': '0 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '10000000000000': { + 'other': '00 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '100000000000000': { + 'other': '000 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + } + } +}; + + +/** + * Compact number formatting symbols for locale ar_MA. + */ +goog.i18n.CompactNumberFormatSymbols_ar_MA = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0623\u0644\u0641' + }, + '10000': { + 'other': '00\u00A0\u0623\u0644\u0641' + }, + '100000': { + 'other': '000\u00A0\u0623\u0644\u0641' + }, + '1000000': { + 'other': '0\u00A0\u0645\u0644\u064A\u0648' + }, + '10000000': { + 'other': '00\u00A0\u0645\u0644\u064A\u0648' + }, + '100000000': { + 'other': '000\u00A0\u0645\u0644\u064A\u0648' + }, + '1000000000': { + 'other': '0\u00A0\u0628\u0644\u064A\u0648' + }, + '10000000000': { + 'other': '00\u00A0\u0628\u0644\u064A\u0648' + }, + '100000000000': { + 'other': '000\u00A0\u0628\u0644\u064A\u0648' + }, + '1000000000000': { + 'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '10000000000000': { + 'other': '00\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '100000000000000': { + 'other': '000\u00A0\u062A\u0631\u0644\u064A\u0648' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0623\u0644\u0641' + }, + '10000': { + 'other': '00 \u0623\u0644\u0641' + }, + '100000': { + 'other': '000 \u0623\u0644\u0641' + }, + '1000000': { + 'other': '0 \u0645\u0644\u064A\u0648\u0646' + }, + '10000000': { + 'other': '00 \u0645\u0644\u064A\u0648\u0646' + }, + '100000000': { + 'other': '000 \u0645\u0644\u064A\u0648\u0646' + }, + '1000000000': { + 'other': '0 \u0628\u0644\u064A\u0648\u0646' + }, + '10000000000': { + 'other': '00 \u0628\u0644\u064A\u0648\u0646' + }, + '100000000000': { + 'other': '000 \u0628\u0644\u064A\u0648\u0646' + }, + '1000000000000': { + 'other': '0 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '10000000000000': { + 'other': '00 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '100000000000000': { + 'other': '000 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + } + } +}; + + +/** + * Compact number formatting symbols for locale ar_MR. + */ +goog.i18n.CompactNumberFormatSymbols_ar_MR = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0623\u0644\u0641' + }, + '10000': { + 'other': '00\u00A0\u0623\u0644\u0641' + }, + '100000': { + 'other': '000\u00A0\u0623\u0644\u0641' + }, + '1000000': { + 'other': '0\u00A0\u0645\u0644\u064A\u0648' + }, + '10000000': { + 'other': '00\u00A0\u0645\u0644\u064A\u0648' + }, + '100000000': { + 'other': '000\u00A0\u0645\u0644\u064A\u0648' + }, + '1000000000': { + 'other': '0\u00A0\u0628\u0644\u064A\u0648' + }, + '10000000000': { + 'other': '00\u00A0\u0628\u0644\u064A\u0648' + }, + '100000000000': { + 'other': '000\u00A0\u0628\u0644\u064A\u0648' + }, + '1000000000000': { + 'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '10000000000000': { + 'other': '00\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '100000000000000': { + 'other': '000\u00A0\u062A\u0631\u0644\u064A\u0648' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0623\u0644\u0641' + }, + '10000': { + 'other': '00 \u0623\u0644\u0641' + }, + '100000': { + 'other': '000 \u0623\u0644\u0641' + }, + '1000000': { + 'other': '0 \u0645\u0644\u064A\u0648\u0646' + }, + '10000000': { + 'other': '00 \u0645\u0644\u064A\u0648\u0646' + }, + '100000000': { + 'other': '000 \u0645\u0644\u064A\u0648\u0646' + }, + '1000000000': { + 'other': '0 \u0628\u0644\u064A\u0648\u0646' + }, + '10000000000': { + 'other': '00 \u0628\u0644\u064A\u0648\u0646' + }, + '100000000000': { + 'other': '000 \u0628\u0644\u064A\u0648\u0646' + }, + '1000000000000': { + 'other': '0 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '10000000000000': { + 'other': '00 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '100000000000000': { + 'other': '000 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + } + } +}; + + +/** + * Compact number formatting symbols for locale ar_OM. + */ +goog.i18n.CompactNumberFormatSymbols_ar_OM = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0623\u0644\u0641' + }, + '10000': { + 'other': '00\u00A0\u0623\u0644\u0641' + }, + '100000': { + 'other': '000\u00A0\u0623\u0644\u0641' + }, + '1000000': { + 'other': '0\u00A0\u0645\u0644\u064A\u0648' + }, + '10000000': { + 'other': '00\u00A0\u0645\u0644\u064A\u0648' + }, + '100000000': { + 'other': '000\u00A0\u0645\u0644\u064A\u0648' + }, + '1000000000': { + 'other': '0\u00A0\u0628\u0644\u064A\u0648' + }, + '10000000000': { + 'other': '00\u00A0\u0628\u0644\u064A\u0648' + }, + '100000000000': { + 'other': '000\u00A0\u0628\u0644\u064A\u0648' + }, + '1000000000000': { + 'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '10000000000000': { + 'other': '00\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '100000000000000': { + 'other': '000\u00A0\u062A\u0631\u0644\u064A\u0648' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0623\u0644\u0641' + }, + '10000': { + 'other': '00 \u0623\u0644\u0641' + }, + '100000': { + 'other': '000 \u0623\u0644\u0641' + }, + '1000000': { + 'other': '0 \u0645\u0644\u064A\u0648\u0646' + }, + '10000000': { + 'other': '00 \u0645\u0644\u064A\u0648\u0646' + }, + '100000000': { + 'other': '000 \u0645\u0644\u064A\u0648\u0646' + }, + '1000000000': { + 'other': '0 \u0628\u0644\u064A\u0648\u0646' + }, + '10000000000': { + 'other': '00 \u0628\u0644\u064A\u0648\u0646' + }, + '100000000000': { + 'other': '000 \u0628\u0644\u064A\u0648\u0646' + }, + '1000000000000': { + 'other': '0 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '10000000000000': { + 'other': '00 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '100000000000000': { + 'other': '000 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + } + } +}; + + +/** + * Compact number formatting symbols for locale ar_PS. + */ +goog.i18n.CompactNumberFormatSymbols_ar_PS = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0623\u0644\u0641' + }, + '10000': { + 'other': '00\u00A0\u0623\u0644\u0641' + }, + '100000': { + 'other': '000\u00A0\u0623\u0644\u0641' + }, + '1000000': { + 'other': '0\u00A0\u0645\u0644\u064A\u0648' + }, + '10000000': { + 'other': '00\u00A0\u0645\u0644\u064A\u0648' + }, + '100000000': { + 'other': '000\u00A0\u0645\u0644\u064A\u0648' + }, + '1000000000': { + 'other': '0\u00A0\u0628\u0644\u064A\u0648\u0646' + }, + '10000000000': { + 'other': '00\u00A0\u0628\u0644\u064A\u0648' + }, + '100000000000': { + 'other': '000\u00A0\u0628\u0644\u064A\u0648' + }, + '1000000000000': { + 'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '10000000000000': { + 'other': '00\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '100000000000000': { + 'other': '000\u00A0\u062A\u0631\u0644\u064A\u0648' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0623\u0644\u0641' + }, + '10000': { + 'other': '00 \u0623\u0644\u0641' + }, + '100000': { + 'other': '000 \u0623\u0644\u0641' + }, + '1000000': { + 'other': '0 \u0645\u0644\u064A\u0648\u0646' + }, + '10000000': { + 'other': '00 \u0645\u0644\u064A\u0648\u0646' + }, + '100000000': { + 'other': '000 \u0645\u0644\u064A\u0648\u0646' + }, + '1000000000': { + 'other': '0 \u0628\u0644\u064A\u0648\u0646' + }, + '10000000000': { + 'other': '00 \u0628\u0644\u064A\u0648\u0646' + }, + '100000000000': { + 'other': '000 \u0628\u0644\u064A\u0648\u0646' + }, + '1000000000000': { + 'other': '0 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '10000000000000': { + 'other': '00 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '100000000000000': { + 'other': '000 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + } + } +}; + + +/** + * Compact number formatting symbols for locale ar_QA. + */ +goog.i18n.CompactNumberFormatSymbols_ar_QA = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0623\u0644\u0641' + }, + '10000': { + 'other': '00\u00A0\u0623\u0644\u0641' + }, + '100000': { + 'other': '000\u00A0\u0623\u0644\u0641' + }, + '1000000': { + 'other': '0\u00A0\u0645\u0644\u064A\u0648' + }, + '10000000': { + 'other': '00\u00A0\u0645\u0644\u064A\u0648' + }, + '100000000': { + 'other': '000\u00A0\u0645\u0644\u064A\u0648' + }, + '1000000000': { + 'other': '0\u00A0\u0628\u0644\u064A\u0648' + }, + '10000000000': { + 'other': '00\u00A0\u0628\u0644\u064A\u0648' + }, + '100000000000': { + 'other': '000\u00A0\u0628\u0644\u064A\u0648' + }, + '1000000000000': { + 'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '10000000000000': { + 'other': '00\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '100000000000000': { + 'other': '000\u00A0\u062A\u0631\u0644\u064A\u0648' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0623\u0644\u0641' + }, + '10000': { + 'other': '00 \u0623\u0644\u0641' + }, + '100000': { + 'other': '000 \u0623\u0644\u0641' + }, + '1000000': { + 'other': '0 \u0645\u0644\u064A\u0648\u0646' + }, + '10000000': { + 'other': '00 \u0645\u0644\u064A\u0648\u0646' + }, + '100000000': { + 'other': '000 \u0645\u0644\u064A\u0648\u0646' + }, + '1000000000': { + 'other': '0 \u0628\u0644\u064A\u0648\u0646' + }, + '10000000000': { + 'other': '00 \u0628\u0644\u064A\u0648\u0646' + }, + '100000000000': { + 'other': '000 \u0628\u0644\u064A\u0648\u0646' + }, + '1000000000000': { + 'other': '0 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '10000000000000': { + 'other': '00 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '100000000000000': { + 'other': '000 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + } + } +}; + + +/** + * Compact number formatting symbols for locale ar_SA. + */ +goog.i18n.CompactNumberFormatSymbols_ar_SA = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0623\u0644\u0641' + }, + '10000': { + 'other': '00\u00A0\u0623\u0644\u0641' + }, + '100000': { + 'other': '000\u00A0\u0623\u0644\u0641' + }, + '1000000': { + 'other': '0\u00A0\u0645\u0644\u064A\u0648' + }, + '10000000': { + 'other': '00\u00A0\u0645\u0644\u064A\u0648' + }, + '100000000': { + 'other': '000\u00A0\u0645\u0644\u064A\u0648' + }, + '1000000000': { + 'other': '0\u00A0\u0628\u0644\u064A\u0648' + }, + '10000000000': { + 'other': '00\u00A0\u0628\u0644\u064A\u0648' + }, + '100000000000': { + 'other': '000\u00A0\u0628\u0644\u064A\u0648' + }, + '1000000000000': { + 'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '10000000000000': { + 'other': '00\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '100000000000000': { + 'other': '000\u00A0\u062A\u0631\u0644\u064A\u0648' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0623\u0644\u0641' + }, + '10000': { + 'other': '00 \u0623\u0644\u0641' + }, + '100000': { + 'other': '000 \u0623\u0644\u0641' + }, + '1000000': { + 'other': '0 \u0645\u0644\u064A\u0648\u0646' + }, + '10000000': { + 'other': '00 \u0645\u0644\u064A\u0648\u0646' + }, + '100000000': { + 'other': '000 \u0645\u0644\u064A\u0648\u0646' + }, + '1000000000': { + 'other': '0 \u0628\u0644\u064A\u0648\u0646' + }, + '10000000000': { + 'other': '00 \u0628\u0644\u064A\u0648\u0646' + }, + '100000000000': { + 'other': '000 \u0628\u0644\u064A\u0648\u0646' + }, + '1000000000000': { + 'other': '0 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '10000000000000': { + 'other': '00 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '100000000000000': { + 'other': '000 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + } + } +}; + + +/** + * Compact number formatting symbols for locale ar_SD. + */ +goog.i18n.CompactNumberFormatSymbols_ar_SD = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0623\u0644\u0641' + }, + '10000': { + 'other': '00\u00A0\u0623\u0644\u0641' + }, + '100000': { + 'other': '000\u00A0\u0623\u0644\u0641' + }, + '1000000': { + 'other': '0\u00A0\u0645\u0644\u064A\u0648' + }, + '10000000': { + 'other': '00\u00A0\u0645\u0644\u064A\u0648' + }, + '100000000': { + 'other': '000\u00A0\u0645\u0644\u064A\u0648' + }, + '1000000000': { + 'other': '0\u00A0\u0628\u0644\u064A\u0648' + }, + '10000000000': { + 'other': '00\u00A0\u0628\u0644\u064A\u0648' + }, + '100000000000': { + 'other': '000\u00A0\u0628\u0644\u064A\u0648' + }, + '1000000000000': { + 'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '10000000000000': { + 'other': '00\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '100000000000000': { + 'other': '000\u00A0\u062A\u0631\u0644\u064A\u0648' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0623\u0644\u0641' + }, + '10000': { + 'other': '00 \u0623\u0644\u0641' + }, + '100000': { + 'other': '000 \u0623\u0644\u0641' + }, + '1000000': { + 'other': '0 \u0645\u0644\u064A\u0648\u0646' + }, + '10000000': { + 'other': '00 \u0645\u0644\u064A\u0648\u0646' + }, + '100000000': { + 'other': '000 \u0645\u0644\u064A\u0648\u0646' + }, + '1000000000': { + 'other': '0 \u0628\u0644\u064A\u0648\u0646' + }, + '10000000000': { + 'other': '00 \u0628\u0644\u064A\u0648\u0646' + }, + '100000000000': { + 'other': '000 \u0628\u0644\u064A\u0648\u0646' + }, + '1000000000000': { + 'other': '0 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '10000000000000': { + 'other': '00 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '100000000000000': { + 'other': '000 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + } + } +}; + + +/** + * Compact number formatting symbols for locale ar_SO. + */ +goog.i18n.CompactNumberFormatSymbols_ar_SO = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0623\u0644\u0641' + }, + '10000': { + 'other': '00\u00A0\u0623\u0644\u0641' + }, + '100000': { + 'other': '000\u00A0\u0623\u0644\u0641' + }, + '1000000': { + 'other': '0\u00A0\u0645\u0644\u064A\u0648' + }, + '10000000': { + 'other': '00\u00A0\u0645\u0644\u064A\u0648' + }, + '100000000': { + 'other': '000\u00A0\u0645\u0644\u064A\u0648' + }, + '1000000000': { + 'other': '0\u00A0\u0628\u0644\u064A\u0648' + }, + '10000000000': { + 'other': '00\u00A0\u0628\u0644\u064A\u0648' + }, + '100000000000': { + 'other': '000\u00A0\u0628\u0644\u064A\u0648' + }, + '1000000000000': { + 'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '10000000000000': { + 'other': '00\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '100000000000000': { + 'other': '000\u00A0\u062A\u0631\u0644\u064A\u0648' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0623\u0644\u0641' + }, + '10000': { + 'other': '00 \u0623\u0644\u0641' + }, + '100000': { + 'other': '000 \u0623\u0644\u0641' + }, + '1000000': { + 'other': '0 \u0645\u0644\u064A\u0648\u0646' + }, + '10000000': { + 'other': '00 \u0645\u0644\u064A\u0648\u0646' + }, + '100000000': { + 'other': '000 \u0645\u0644\u064A\u0648\u0646' + }, + '1000000000': { + 'other': '0 \u0628\u0644\u064A\u0648\u0646' + }, + '10000000000': { + 'other': '00 \u0628\u0644\u064A\u0648\u0646' + }, + '100000000000': { + 'other': '000 \u0628\u0644\u064A\u0648\u0646' + }, + '1000000000000': { + 'other': '0 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '10000000000000': { + 'other': '00 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '100000000000000': { + 'other': '000 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + } + } +}; + + +/** + * Compact number formatting symbols for locale ar_SY. + */ +goog.i18n.CompactNumberFormatSymbols_ar_SY = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0623\u0644\u0641' + }, + '10000': { + 'other': '00\u00A0\u0623\u0644\u0641' + }, + '100000': { + 'other': '000\u00A0\u0623\u0644\u0641' + }, + '1000000': { + 'other': '0\u00A0\u0645\u0644\u064A\u0648' + }, + '10000000': { + 'other': '00\u00A0\u0645\u0644\u064A\u0648' + }, + '100000000': { + 'other': '000\u00A0\u0645\u0644\u064A\u0648' + }, + '1000000000': { + 'other': '0\u00A0\u0628\u0644\u064A\u0648' + }, + '10000000000': { + 'other': '00\u00A0\u0628\u0644\u064A\u0648' + }, + '100000000000': { + 'other': '000\u00A0\u0628\u0644\u064A\u0648' + }, + '1000000000000': { + 'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '10000000000000': { + 'other': '00\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '100000000000000': { + 'other': '000\u00A0\u062A\u0631\u0644\u064A\u0648' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0623\u0644\u0641' + }, + '10000': { + 'other': '00 \u0623\u0644\u0641' + }, + '100000': { + 'other': '000 \u0623\u0644\u0641' + }, + '1000000': { + 'other': '0 \u0645\u0644\u064A\u0648\u0646' + }, + '10000000': { + 'other': '00 \u0645\u0644\u064A\u0648\u0646' + }, + '100000000': { + 'other': '000 \u0645\u0644\u064A\u0648\u0646' + }, + '1000000000': { + 'other': '0 \u0628\u0644\u064A\u0648\u0646' + }, + '10000000000': { + 'other': '00 \u0628\u0644\u064A\u0648\u0646' + }, + '100000000000': { + 'other': '000 \u0628\u0644\u064A\u0648\u0646' + }, + '1000000000000': { + 'other': '0 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '10000000000000': { + 'other': '00 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '100000000000000': { + 'other': '000 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + } + } +}; + + +/** + * Compact number formatting symbols for locale ar_TD. + */ +goog.i18n.CompactNumberFormatSymbols_ar_TD = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0623\u0644\u0641' + }, + '10000': { + 'other': '00\u00A0\u0623\u0644\u0641' + }, + '100000': { + 'other': '000\u00A0\u0623\u0644\u0641' + }, + '1000000': { + 'other': '0\u00A0\u0645\u0644\u064A\u0648' + }, + '10000000': { + 'other': '00\u00A0\u0645\u0644\u064A\u0648' + }, + '100000000': { + 'other': '000\u00A0\u0645\u0644\u064A\u0648' + }, + '1000000000': { + 'other': '0\u00A0\u0628\u0644\u064A\u0648' + }, + '10000000000': { + 'other': '00\u00A0\u0628\u0644\u064A\u0648' + }, + '100000000000': { + 'other': '000\u00A0\u0628\u0644\u064A\u0648' + }, + '1000000000000': { + 'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '10000000000000': { + 'other': '00\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '100000000000000': { + 'other': '000\u00A0\u062A\u0631\u0644\u064A\u0648' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0623\u0644\u0641' + }, + '10000': { + 'other': '00 \u0623\u0644\u0641' + }, + '100000': { + 'other': '000 \u0623\u0644\u0641' + }, + '1000000': { + 'other': '0 \u0645\u0644\u064A\u0648\u0646' + }, + '10000000': { + 'other': '00 \u0645\u0644\u064A\u0648\u0646' + }, + '100000000': { + 'other': '000 \u0645\u0644\u064A\u0648\u0646' + }, + '1000000000': { + 'other': '0 \u0628\u0644\u064A\u0648\u0646' + }, + '10000000000': { + 'other': '00 \u0628\u0644\u064A\u0648\u0646' + }, + '100000000000': { + 'other': '000 \u0628\u0644\u064A\u0648\u0646' + }, + '1000000000000': { + 'other': '0 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '10000000000000': { + 'other': '00 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '100000000000000': { + 'other': '000 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + } + } +}; + + +/** + * Compact number formatting symbols for locale ar_TN. + */ +goog.i18n.CompactNumberFormatSymbols_ar_TN = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0623\u0644\u0641' + }, + '10000': { + 'other': '00\u00A0\u0623\u0644\u0641' + }, + '100000': { + 'other': '000\u00A0\u0623\u0644\u0641' + }, + '1000000': { + 'other': '0\u00A0\u0645\u0644\u064A\u0648' + }, + '10000000': { + 'other': '00\u00A0\u0645\u0644\u064A\u0648' + }, + '100000000': { + 'other': '000\u00A0\u0645\u0644\u064A\u0648' + }, + '1000000000': { + 'other': '0\u00A0\u0628\u0644\u064A\u0648' + }, + '10000000000': { + 'other': '00\u00A0\u0628\u0644\u064A\u0648' + }, + '100000000000': { + 'other': '000\u00A0\u0628\u0644\u064A\u0648' + }, + '1000000000000': { + 'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '10000000000000': { + 'other': '00\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '100000000000000': { + 'other': '000\u00A0\u062A\u0631\u0644\u064A\u0648' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0623\u0644\u0641' + }, + '10000': { + 'other': '00 \u0623\u0644\u0641' + }, + '100000': { + 'other': '000 \u0623\u0644\u0641' + }, + '1000000': { + 'other': '0 \u0645\u0644\u064A\u0648\u0646' + }, + '10000000': { + 'other': '00 \u0645\u0644\u064A\u0648\u0646' + }, + '100000000': { + 'other': '000 \u0645\u0644\u064A\u0648\u0646' + }, + '1000000000': { + 'other': '0 \u0628\u0644\u064A\u0648\u0646' + }, + '10000000000': { + 'other': '00 \u0628\u0644\u064A\u0648\u0646' + }, + '100000000000': { + 'other': '000 \u0628\u0644\u064A\u0648\u0646' + }, + '1000000000000': { + 'other': '0 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '10000000000000': { + 'other': '00 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '100000000000000': { + 'other': '000 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + } + } +}; + + +/** + * Compact number formatting symbols for locale ar_YE. + */ +goog.i18n.CompactNumberFormatSymbols_ar_YE = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0623\u0644\u0641' + }, + '10000': { + 'other': '00\u00A0\u0623\u0644\u0641' + }, + '100000': { + 'other': '000\u00A0\u0623\u0644\u0641' + }, + '1000000': { + 'other': '0\u00A0\u0645\u0644\u064A\u0648' + }, + '10000000': { + 'other': '00\u00A0\u0645\u0644\u064A\u0648' + }, + '100000000': { + 'other': '000\u00A0\u0645\u0644\u064A\u0648' + }, + '1000000000': { + 'other': '0\u00A0\u0628\u0644\u064A\u0648' + }, + '10000000000': { + 'other': '00\u00A0\u0628\u0644\u064A\u0648' + }, + '100000000000': { + 'other': '000\u00A0\u0628\u0644\u064A\u0648' + }, + '1000000000000': { + 'other': '0\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '10000000000000': { + 'other': '00\u00A0\u062A\u0631\u0644\u064A\u0648' + }, + '100000000000000': { + 'other': '000\u00A0\u062A\u0631\u0644\u064A\u0648' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0623\u0644\u0641' + }, + '10000': { + 'other': '00 \u0623\u0644\u0641' + }, + '100000': { + 'other': '000 \u0623\u0644\u0641' + }, + '1000000': { + 'other': '0 \u0645\u0644\u064A\u0648\u0646' + }, + '10000000': { + 'other': '00 \u0645\u0644\u064A\u0648\u0646' + }, + '100000000': { + 'other': '000 \u0645\u0644\u064A\u0648\u0646' + }, + '1000000000': { + 'other': '0 \u0628\u0644\u064A\u0648\u0646' + }, + '10000000000': { + 'other': '00 \u0628\u0644\u064A\u0648\u0646' + }, + '100000000000': { + 'other': '000 \u0628\u0644\u064A\u0648\u0646' + }, + '1000000000000': { + 'other': '0 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '10000000000000': { + 'other': '00 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + }, + '100000000000000': { + 'other': '000 \u062A\u0631\u064A\u0644\u064A\u0648\u0646' + } + } +}; + + +/** + * Compact number formatting symbols for locale as. + */ +goog.i18n.CompactNumberFormatSymbols_as = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale as_IN. + */ +goog.i18n.CompactNumberFormatSymbols_as_IN = + goog.i18n.CompactNumberFormatSymbols_as; + + +/** + * Compact number formatting symbols for locale asa. + */ +goog.i18n.CompactNumberFormatSymbols_asa = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale asa_TZ. + */ +goog.i18n.CompactNumberFormatSymbols_asa_TZ = + goog.i18n.CompactNumberFormatSymbols_asa; + + +/** + * Compact number formatting symbols for locale ast. + */ +goog.i18n.CompactNumberFormatSymbols_ast = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ast_ES. + */ +goog.i18n.CompactNumberFormatSymbols_ast_ES = + goog.i18n.CompactNumberFormatSymbols_ast; + + +/** + * Compact number formatting symbols for locale az. + */ +goog.i18n.CompactNumberFormatSymbols_az = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale az_Cyrl. + */ +goog.i18n.CompactNumberFormatSymbols_az_Cyrl = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale az_Cyrl_AZ. + */ +goog.i18n.CompactNumberFormatSymbols_az_Cyrl_AZ = + goog.i18n.CompactNumberFormatSymbols_az; + + +/** + * Compact number formatting symbols for locale az_Latn. + */ +goog.i18n.CompactNumberFormatSymbols_az_Latn = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale az_Latn_AZ. + */ +goog.i18n.CompactNumberFormatSymbols_az_Latn_AZ = + goog.i18n.CompactNumberFormatSymbols_az; + + +/** + * Compact number formatting symbols for locale bas. + */ +goog.i18n.CompactNumberFormatSymbols_bas = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale bas_CM. + */ +goog.i18n.CompactNumberFormatSymbols_bas_CM = + goog.i18n.CompactNumberFormatSymbols_bas; + + +/** + * Compact number formatting symbols for locale be. + */ +goog.i18n.CompactNumberFormatSymbols_be = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale be_BY. + */ +goog.i18n.CompactNumberFormatSymbols_be_BY = + goog.i18n.CompactNumberFormatSymbols_be; + + +/** + * Compact number formatting symbols for locale bem. + */ +goog.i18n.CompactNumberFormatSymbols_bem = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale bem_ZM. + */ +goog.i18n.CompactNumberFormatSymbols_bem_ZM = + goog.i18n.CompactNumberFormatSymbols_bem; + + +/** + * Compact number formatting symbols for locale bez. + */ +goog.i18n.CompactNumberFormatSymbols_bez = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale bez_TZ. + */ +goog.i18n.CompactNumberFormatSymbols_bez_TZ = + goog.i18n.CompactNumberFormatSymbols_bez; + + +/** + * Compact number formatting symbols for locale bm. + */ +goog.i18n.CompactNumberFormatSymbols_bm = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale bm_ML. + */ +goog.i18n.CompactNumberFormatSymbols_bm_ML = + goog.i18n.CompactNumberFormatSymbols_bm; + + +/** + * Compact number formatting symbols for locale bn_IN. + */ +goog.i18n.CompactNumberFormatSymbols_bn_IN = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u09B9\u09BE\u099C\u09BE\u09B0' + }, + '10000': { + 'other': '00 \u09B9\u09BE\u099C\u09BE\u09B0' + }, + '100000': { + 'other': '000 \u09B9\u09BE\u099C\u09BE\u09B0' + }, + '1000000': { + 'other': '0 \u09AE\u09BF\u09B2\u09BF\u09AF\u09BC\u09A8' + }, + '10000000': { + 'other': '00 \u09AE\u09BF\u09B2\u09BF\u09AF\u09BC\u09A8' + }, + '100000000': { + 'other': '000 \u09AE\u09BF\u09B2\u09BF\u09AF\u09BC\u09A8' + }, + '1000000000': { + 'other': '0 \u09AC\u09BF\u09B2\u09BF\u09AF\u09BC\u09A8' + }, + '10000000000': { + 'other': '00 \u09AC\u09BF\u09B2\u09BF\u09AF\u09BC\u09A8' + }, + '100000000000': { + 'other': '000 \u09AC\u09BF\u09B2\u09BF\u09AF\u09BC\u09A8' + }, + '1000000000000': { + 'other': '0 \u099F\u09CD\u09B0\u09BF\u09B2\u09BF\u09AF\u09BC\u09A8' + }, + '10000000000000': { + 'other': '00 \u099F\u09CD\u09B0\u09BF\u09B2\u09BF\u09AF\u09BC\u09A8' + }, + '100000000000000': { + 'other': '000 \u099F\u09CD\u09B0\u09BF\u09B2\u09BF\u09AF\u09BC\u09A8' + } + } +}; + + +/** + * Compact number formatting symbols for locale bo. + */ +goog.i18n.CompactNumberFormatSymbols_bo = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale bo_CN. + */ +goog.i18n.CompactNumberFormatSymbols_bo_CN = + goog.i18n.CompactNumberFormatSymbols_bo; + + +/** + * Compact number formatting symbols for locale bo_IN. + */ +goog.i18n.CompactNumberFormatSymbols_bo_IN = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale brx. + */ +goog.i18n.CompactNumberFormatSymbols_brx = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale brx_IN. + */ +goog.i18n.CompactNumberFormatSymbols_brx_IN = + goog.i18n.CompactNumberFormatSymbols_brx; + + +/** + * Compact number formatting symbols for locale bs. + */ +goog.i18n.CompactNumberFormatSymbols_bs = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale bs_Cyrl. + */ +goog.i18n.CompactNumberFormatSymbols_bs_Cyrl = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '00\u00A0\u0445\u0438\u0459' + }, + '100000': { + 'other': '000\u00A0\u0445\u0438\u0459' + }, + '1000000': { + 'other': '0\u00A0\u043C\u0438\u043B' + }, + '10000000': { + 'other': '00\u00A0\u043C\u0438\u043B' + }, + '100000000': { + 'other': '000\u00A0\u043C\u0438\u043B' + }, + '1000000000': { + 'other': '0\u00A0\u043C\u043B\u0440\u0434' + }, + '10000000000': { + 'other': '00\u00A0\u043C\u043B\u0440\u0434' + }, + '100000000000': { + 'other': '000\u00A0\u043C\u043B\u0440\u0434' + }, + '1000000000000': { + 'other': '0\u00A0\u0431\u0438\u043B' + }, + '10000000000000': { + 'other': '00\u00A0\u0431\u0438\u043B' + }, + '100000000000000': { + 'other': '000\u00A0\u0431\u0438\u043B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '00 \u0445\u0438\u0459' + }, + '100000': { + 'other': '000 \u0445\u0438\u0459' + }, + '1000000': { + 'other': '0 \u043C\u0438\u043B' + }, + '10000000': { + 'other': '00 \u043C\u0438\u043B' + }, + '100000000': { + 'other': '000 \u043C\u0438\u043B' + }, + '1000000000': { + 'other': '0 \u043C\u043B\u0440\u0434' + }, + '10000000000': { + 'other': '00 \u043C\u043B\u0440\u0434' + }, + '100000000000': { + 'other': '000 \u043C\u043B\u0440\u0434' + }, + '1000000000000': { + 'other': '0 \u0431\u0438\u043B' + }, + '10000000000000': { + 'other': '00 \u0431\u0438\u043B' + }, + '100000000000000': { + 'other': '000 \u0431\u0438\u043B' + } + } +}; + + +/** + * Compact number formatting symbols for locale bs_Cyrl_BA. + */ +goog.i18n.CompactNumberFormatSymbols_bs_Cyrl_BA = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '00\u00A0\u0445\u0438\u0459' + }, + '100000': { + 'other': '000\u00A0\u0445\u0438\u0459' + }, + '1000000': { + 'other': '0\u00A0\u043C\u0438\u043B' + }, + '10000000': { + 'other': '00\u00A0\u043C\u0438\u043B' + }, + '100000000': { + 'other': '000\u00A0\u043C\u0438\u043B' + }, + '1000000000': { + 'other': '0\u00A0\u043C\u043B\u0440\u0434' + }, + '10000000000': { + 'other': '00\u00A0\u043C\u043B\u0440\u0434' + }, + '100000000000': { + 'other': '000\u00A0\u043C\u043B\u0440\u0434' + }, + '1000000000000': { + 'other': '0\u00A0\u0431\u0438\u043B' + }, + '10000000000000': { + 'other': '00\u00A0\u0431\u0438\u043B' + }, + '100000000000000': { + 'other': '000\u00A0\u0431\u0438\u043B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '00 \u0445\u0438\u0459' + }, + '100000': { + 'other': '000 \u0445\u0438\u0459' + }, + '1000000': { + 'other': '0 \u043C\u0438\u043B' + }, + '10000000': { + 'other': '00 \u043C\u0438\u043B' + }, + '100000000': { + 'other': '000 \u043C\u0438\u043B' + }, + '1000000000': { + 'other': '0 \u043C\u043B\u0440\u0434' + }, + '10000000000': { + 'other': '00 \u043C\u043B\u0440\u0434' + }, + '100000000000': { + 'other': '000 \u043C\u043B\u0440\u0434' + }, + '1000000000000': { + 'other': '0 \u0431\u0438\u043B' + }, + '10000000000000': { + 'other': '00 \u0431\u0438\u043B' + }, + '100000000000000': { + 'other': '000 \u0431\u0438\u043B' + } + } +}; + + +/** + * Compact number formatting symbols for locale bs_Latn. + */ +goog.i18n.CompactNumberFormatSymbols_bs_Latn = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale bs_Latn_BA. + */ +goog.i18n.CompactNumberFormatSymbols_bs_Latn_BA = + goog.i18n.CompactNumberFormatSymbols_bs; + + +/** + * Compact number formatting symbols for locale byn. + */ +goog.i18n.CompactNumberFormatSymbols_byn = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale byn_ER. + */ +goog.i18n.CompactNumberFormatSymbols_byn_ER = + goog.i18n.CompactNumberFormatSymbols_byn; + + +/** + * Compact number formatting symbols for locale cgg. + */ +goog.i18n.CompactNumberFormatSymbols_cgg = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale cgg_UG. + */ +goog.i18n.CompactNumberFormatSymbols_cgg_UG = + goog.i18n.CompactNumberFormatSymbols_cgg; + + +/** + * Compact number formatting symbols for locale ckb. + */ +goog.i18n.CompactNumberFormatSymbols_ckb = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ckb_Arab. + */ +goog.i18n.CompactNumberFormatSymbols_ckb_Arab = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ckb_Arab_IQ. + */ +goog.i18n.CompactNumberFormatSymbols_ckb_Arab_IQ = + goog.i18n.CompactNumberFormatSymbols_ckb; + + +/** + * Compact number formatting symbols for locale ckb_Arab_IR. + */ +goog.i18n.CompactNumberFormatSymbols_ckb_Arab_IR = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ckb_IQ. + */ +goog.i18n.CompactNumberFormatSymbols_ckb_IQ = + goog.i18n.CompactNumberFormatSymbols_ckb; + + +/** + * Compact number formatting symbols for locale ckb_IR. + */ +goog.i18n.CompactNumberFormatSymbols_ckb_IR = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ckb_Latn. + */ +goog.i18n.CompactNumberFormatSymbols_ckb_Latn = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ckb_Latn_IQ. + */ +goog.i18n.CompactNumberFormatSymbols_ckb_Latn_IQ = + goog.i18n.CompactNumberFormatSymbols_ckb; + + +/** + * Compact number formatting symbols for locale dav. + */ +goog.i18n.CompactNumberFormatSymbols_dav = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale dav_KE. + */ +goog.i18n.CompactNumberFormatSymbols_dav_KE = + goog.i18n.CompactNumberFormatSymbols_dav; + + +/** + * Compact number formatting symbols for locale de_LI. + */ +goog.i18n.CompactNumberFormatSymbols_de_LI = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0' + }, + '100000': { + 'other': '0' + }, + '1000000': { + 'other': '0\u00A0Mio' + }, + '10000000': { + 'other': '00\u00A0Mio' + }, + '100000000': { + 'other': '000\u00A0Mio' + }, + '1000000000': { + 'other': '0\u00A0Mrd' + }, + '10000000000': { + 'other': '00\u00A0Mrd' + }, + '100000000000': { + 'other': '000\u00A0Mrd' + }, + '1000000000000': { + 'other': '0\u00A0Bio' + }, + '10000000000000': { + 'other': '00\u00A0Bio' + }, + '100000000000000': { + 'other': '000\u00A0Bio' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 Tausend' + }, + '10000': { + 'other': '00 Tausend' + }, + '100000': { + 'other': '000 Tausend' + }, + '1000000': { + 'other': '0 Millionen' + }, + '10000000': { + 'other': '00 Millionen' + }, + '100000000': { + 'other': '000 Millionen' + }, + '1000000000': { + 'other': '0 Milliarden' + }, + '10000000000': { + 'other': '00 Milliarden' + }, + '100000000000': { + 'other': '000 Milliarden' + }, + '1000000000000': { + 'other': '0 Billionen' + }, + '10000000000000': { + 'other': '00 Billionen' + }, + '100000000000000': { + 'other': '000 Billionen' + } + } +}; + + +/** + * Compact number formatting symbols for locale dje. + */ +goog.i18n.CompactNumberFormatSymbols_dje = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale dje_NE. + */ +goog.i18n.CompactNumberFormatSymbols_dje_NE = + goog.i18n.CompactNumberFormatSymbols_dje; + + +/** + * Compact number formatting symbols for locale dua. + */ +goog.i18n.CompactNumberFormatSymbols_dua = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale dua_CM. + */ +goog.i18n.CompactNumberFormatSymbols_dua_CM = + goog.i18n.CompactNumberFormatSymbols_dua; + + +/** + * Compact number formatting symbols for locale dyo. + */ +goog.i18n.CompactNumberFormatSymbols_dyo = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale dyo_SN. + */ +goog.i18n.CompactNumberFormatSymbols_dyo_SN = + goog.i18n.CompactNumberFormatSymbols_dyo; + + +/** + * Compact number formatting symbols for locale dz. + */ +goog.i18n.CompactNumberFormatSymbols_dz = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '\u0F66\u0F9F\u0F7C\u0F44\u0F0B\u0F55\u0FB2\u0F42 0' + }, + '10000': { + 'other': '\u0F41\u0FB2\u0F72\u0F0B\u0F55\u0FB2\u0F42 0' + }, + '100000': { + 'other': '\u0F60\u0F56\u0F74\u0F58\u0F0B\u0F55\u0FB2\u0F42 0' + }, + '1000000': { + 'other': '\u0F66\u0F0B\u0F61\u0F0B 0' + }, + '10000000': { + 'other': '\u0F56\u0FB1\u0F7A\u0F0B\u0F56\u0F0B 0' + }, + '100000000': { + 'other': '\u0F51\u0F74\u0F44\u0F0B\u0F55\u0FB1\u0F74\u0F62\u0F0B 0' + }, + '1000000000': { + 'other': '\u0F51\u0F74\u0F44\u0F0B\u0F55\u0FB1\u0F74\u0F62\u0F0B 00' + }, + '10000000000': { + 'other': '\u0F51\u0F74\u0F44\u0F0B\u0F55\u0FB1\u0F74\u0F62\u0F0B\u0F56\u0F62\u0F92\u0FB1\u0F0B 0' + }, + '100000000000': { + 'other': '\u0F51\u0F74\u0F44\u0F0B\u0F55\u0FB1\u0F74\u0F62\u0F0B\u0F66\u0F9F\u0F7C\u0F44 0' + }, + '1000000000000': { + 'other': '\u0F51\u0F74\u0F44\u0F0B\u0F55\u0FB1\u0F74\u0F62\u0F0B\u0F41\u0FB2\u0F72\u0F0B 0' + }, + '10000000000000': { + 'other': '\u0F51\u0F74\u0F44\u0F0B\u0F55\u0FB1\u0F74\u0F62\u0F0B\u0F60\u0F56\u0F74\u0F58\u0F0B 0' + }, + '100000000000000': { + 'other': '\u0F51\u0F74\u0F44\u0F0B\u0F55\u0FB1\u0F74\u0F62\u0F0B\u0F66\u0F0B\u0F61\u0F0B 0' + } + } +}; + + +/** + * Compact number formatting symbols for locale dz_BT. + */ +goog.i18n.CompactNumberFormatSymbols_dz_BT = + goog.i18n.CompactNumberFormatSymbols_dz; + + +/** + * Compact number formatting symbols for locale ebu. + */ +goog.i18n.CompactNumberFormatSymbols_ebu = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ebu_KE. + */ +goog.i18n.CompactNumberFormatSymbols_ebu_KE = + goog.i18n.CompactNumberFormatSymbols_ebu; + + +/** + * Compact number formatting symbols for locale ee. + */ +goog.i18n.CompactNumberFormatSymbols_ee = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0000M' + }, + '10000000000': { + 'other': '00000M' + }, + '100000000000': { + 'other': '000000M' + }, + '1000000000000': { + 'other': '0B' + }, + '10000000000000': { + 'other': '00B' + }, + '100000000000000': { + 'other': '000B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': 'akpe 0' + }, + '10000': { + 'other': 'akpe 00' + }, + '100000': { + 'other': 'akpe 000' + }, + '1000000': { + 'other': 'mili\u0254n 0' + }, + '10000000': { + 'other': 'mili\u0254n 00' + }, + '100000000': { + 'other': 'mili\u0254n 000' + }, + '1000000000': { + 'other': 'mili\u0254n 0000' + }, + '10000000000': { + 'other': 'mili\u0254n 00000' + }, + '100000000000': { + 'other': 'mili\u0254n 000000' + }, + '1000000000000': { + 'other': 'bili\u0254n 0' + }, + '10000000000000': { + 'other': 'bili\u0254n 00' + }, + '100000000000000': { + 'other': 'bili\u0254n 000' + } + } +}; + + +/** + * Compact number formatting symbols for locale ee_GH. + */ +goog.i18n.CompactNumberFormatSymbols_ee_GH = + goog.i18n.CompactNumberFormatSymbols_ee; + + +/** + * Compact number formatting symbols for locale ee_TG. + */ +goog.i18n.CompactNumberFormatSymbols_ee_TG = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0000M' + }, + '10000000000': { + 'other': '00000M' + }, + '100000000000': { + 'other': '000000M' + }, + '1000000000000': { + 'other': '0B' + }, + '10000000000000': { + 'other': '00B' + }, + '100000000000000': { + 'other': '000B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': 'akpe 0' + }, + '10000': { + 'other': 'akpe 00' + }, + '100000': { + 'other': 'akpe 000' + }, + '1000000': { + 'other': 'mili\u0254n 0' + }, + '10000000': { + 'other': 'mili\u0254n 00' + }, + '100000000': { + 'other': 'mili\u0254n 000' + }, + '1000000000': { + 'other': 'mili\u0254n 0000' + }, + '10000000000': { + 'other': 'mili\u0254n 00000' + }, + '100000000000': { + 'other': 'mili\u0254n 000000' + }, + '1000000000000': { + 'other': 'bili\u0254n 0' + }, + '10000000000000': { + 'other': 'bili\u0254n 00' + }, + '100000000000000': { + 'other': 'bili\u0254n 000' + } + } +}; + + +/** + * Compact number formatting symbols for locale el_CY. + */ +goog.i18n.CompactNumberFormatSymbols_el_CY = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u03C7\u03B9\u03BB.' + }, + '10000': { + 'other': '00\u00A0\u03C7\u03B9\u03BB.' + }, + '100000': { + 'other': '000\u00A0\u03C7\u03B9\u03BB.' + }, + '1000000': { + 'other': '0\u00A0\u03B5\u03BA.' + }, + '10000000': { + 'other': '00\u00A0\u03B5\u03BA.' + }, + '100000000': { + 'other': '000\u00A0\u03B5\u03BA.' + }, + '1000000000': { + 'other': '0\u00A0\u03B4\u03B9\u03C2' + }, + '10000000000': { + 'other': '00\u00A0\u03B4\u03B9\u03C2' + }, + '100000000000': { + 'other': '000\u00A0\u03B4\u03B9\u03C2' + }, + '1000000000000': { + 'other': '0\u00A0\u03C4\u03C1\u03B9\u03C2' + }, + '10000000000000': { + 'other': '00\u00A0\u03C4\u03C1\u03B9\u03C2' + }, + '100000000000000': { + 'other': '000\u00A0\u03C4\u03C1\u03B9\u03C2' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u03C7\u03B9\u03BB\u03B9\u03AC\u03B4\u03B5\u03C2' + }, + '10000': { + 'other': '00 \u03C7\u03B9\u03BB\u03B9\u03AC\u03B4\u03B5\u03C2' + }, + '100000': { + 'other': '000 \u03C7\u03B9\u03BB\u03B9\u03AC\u03B4\u03B5\u03C2' + }, + '1000000': { + 'other': '0 \u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1' + }, + '10000000': { + 'other': '00 \u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1' + }, + '100000000': { + 'other': '000 \u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1' + }, + '1000000000': { + 'other': '0 \u03B4\u03B9\u03C3\u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1' + }, + '10000000000': { + 'other': '00 \u03B4\u03B9\u03C3\u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1' + }, + '100000000000': { + 'other': '000 \u03B4\u03B9\u03C3\u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1' + }, + '1000000000000': { + 'other': '0 \u03C4\u03C1\u03B9\u03C3\u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1' + }, + '10000000000000': { + 'other': '00 \u03C4\u03C1\u03B9\u03C3\u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1' + }, + '100000000000000': { + 'other': '000 \u03C4\u03C1\u03B9\u03C3\u03B5\u03BA\u03B1\u03C4\u03BF\u03BC\u03BC\u03CD\u03C1\u03B9\u03B1' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_150. + */ +goog.i18n.CompactNumberFormatSymbols_en_150 = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_AG. + */ +goog.i18n.CompactNumberFormatSymbols_en_AG = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_BB. + */ +goog.i18n.CompactNumberFormatSymbols_en_BB = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_BE. + */ +goog.i18n.CompactNumberFormatSymbols_en_BE = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_BM. + */ +goog.i18n.CompactNumberFormatSymbols_en_BM = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_BS. + */ +goog.i18n.CompactNumberFormatSymbols_en_BS = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_BW. + */ +goog.i18n.CompactNumberFormatSymbols_en_BW = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_BZ. + */ +goog.i18n.CompactNumberFormatSymbols_en_BZ = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_CA. + */ +goog.i18n.CompactNumberFormatSymbols_en_CA = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_CM. + */ +goog.i18n.CompactNumberFormatSymbols_en_CM = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_DM. + */ +goog.i18n.CompactNumberFormatSymbols_en_DM = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_Dsrt. + */ +goog.i18n.CompactNumberFormatSymbols_en_Dsrt = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_FJ. + */ +goog.i18n.CompactNumberFormatSymbols_en_FJ = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_GD. + */ +goog.i18n.CompactNumberFormatSymbols_en_GD = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_GG. + */ +goog.i18n.CompactNumberFormatSymbols_en_GG = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_GH. + */ +goog.i18n.CompactNumberFormatSymbols_en_GH = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_GI. + */ +goog.i18n.CompactNumberFormatSymbols_en_GI = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_GM. + */ +goog.i18n.CompactNumberFormatSymbols_en_GM = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_GY. + */ +goog.i18n.CompactNumberFormatSymbols_en_GY = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_HK. + */ +goog.i18n.CompactNumberFormatSymbols_en_HK = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_IM. + */ +goog.i18n.CompactNumberFormatSymbols_en_IM = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_JE. + */ +goog.i18n.CompactNumberFormatSymbols_en_JE = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_JM. + */ +goog.i18n.CompactNumberFormatSymbols_en_JM = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_KE. + */ +goog.i18n.CompactNumberFormatSymbols_en_KE = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_KI. + */ +goog.i18n.CompactNumberFormatSymbols_en_KI = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_KN. + */ +goog.i18n.CompactNumberFormatSymbols_en_KN = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_KY. + */ +goog.i18n.CompactNumberFormatSymbols_en_KY = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_LC. + */ +goog.i18n.CompactNumberFormatSymbols_en_LC = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_LR. + */ +goog.i18n.CompactNumberFormatSymbols_en_LR = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_LS. + */ +goog.i18n.CompactNumberFormatSymbols_en_LS = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_MG. + */ +goog.i18n.CompactNumberFormatSymbols_en_MG = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_MT. + */ +goog.i18n.CompactNumberFormatSymbols_en_MT = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_MU. + */ +goog.i18n.CompactNumberFormatSymbols_en_MU = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_MW. + */ +goog.i18n.CompactNumberFormatSymbols_en_MW = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_NA. + */ +goog.i18n.CompactNumberFormatSymbols_en_NA = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_NG. + */ +goog.i18n.CompactNumberFormatSymbols_en_NG = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_NZ. + */ +goog.i18n.CompactNumberFormatSymbols_en_NZ = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_PG. + */ +goog.i18n.CompactNumberFormatSymbols_en_PG = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_PH. + */ +goog.i18n.CompactNumberFormatSymbols_en_PH = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_PK. + */ +goog.i18n.CompactNumberFormatSymbols_en_PK = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_SB. + */ +goog.i18n.CompactNumberFormatSymbols_en_SB = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_SC. + */ +goog.i18n.CompactNumberFormatSymbols_en_SC = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_SL. + */ +goog.i18n.CompactNumberFormatSymbols_en_SL = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_SS. + */ +goog.i18n.CompactNumberFormatSymbols_en_SS = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_SZ. + */ +goog.i18n.CompactNumberFormatSymbols_en_SZ = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_TO. + */ +goog.i18n.CompactNumberFormatSymbols_en_TO = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_TT. + */ +goog.i18n.CompactNumberFormatSymbols_en_TT = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_TZ. + */ +goog.i18n.CompactNumberFormatSymbols_en_TZ = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_UG. + */ +goog.i18n.CompactNumberFormatSymbols_en_UG = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_VC. + */ +goog.i18n.CompactNumberFormatSymbols_en_VC = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_VU. + */ +goog.i18n.CompactNumberFormatSymbols_en_VU = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_WS. + */ +goog.i18n.CompactNumberFormatSymbols_en_WS = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_ZM. + */ +goog.i18n.CompactNumberFormatSymbols_en_ZM = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale en_ZW. + */ +goog.i18n.CompactNumberFormatSymbols_en_ZW = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 thousand' + }, + '10000': { + 'other': '00 thousand' + }, + '100000': { + 'other': '000 thousand' + }, + '1000000': { + 'other': '0 million' + }, + '10000000': { + 'other': '00 million' + }, + '100000000': { + 'other': '000 million' + }, + '1000000000': { + 'other': '0 billion' + }, + '10000000000': { + 'other': '00 billion' + }, + '100000000000': { + 'other': '000 billion' + }, + '1000000000000': { + 'other': '0 trillion' + }, + '10000000000000': { + 'other': '00 trillion' + }, + '100000000000000': { + 'other': '000 trillion' + } + } +}; + + +/** + * Compact number formatting symbols for locale eo. + */ +goog.i18n.CompactNumberFormatSymbols_eo = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale es_AR. + */ +goog.i18n.CompactNumberFormatSymbols_es_AR = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0000\u00A0M' + }, + '10000000000': { + 'other': '00\u00A0K\u00A0M' + }, + '100000000000': { + 'other': '000\u00A0K\u00A0M' + }, + '1000000000000': { + 'other': '0\u00A0B' + }, + '10000000000000': { + 'other': '00\u00A0B' + }, + '100000000000000': { + 'other': '000\u00A0B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 millones' + }, + '10000000': { + 'other': '00 millones' + }, + '100000000': { + 'other': '000 millones' + }, + '1000000000': { + 'other': '0 millardos' + }, + '10000000000': { + 'other': '00 millardos' + }, + '100000000000': { + 'other': '000 millardos' + }, + '1000000000000': { + 'other': '0 billones' + }, + '10000000000000': { + 'other': '00 billones' + }, + '100000000000000': { + 'other': '000 billones' + } + } +}; + + +/** + * Compact number formatting symbols for locale es_BO. + */ +goog.i18n.CompactNumberFormatSymbols_es_BO = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0000\u00A0M' + }, + '10000000000': { + 'other': '00\u00A0K\u00A0M' + }, + '100000000000': { + 'other': '000\u00A0K\u00A0M' + }, + '1000000000000': { + 'other': '0\u00A0B' + }, + '10000000000000': { + 'other': '00\u00A0B' + }, + '100000000000000': { + 'other': '000\u00A0B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 millones' + }, + '10000000': { + 'other': '00 millones' + }, + '100000000': { + 'other': '000 millones' + }, + '1000000000': { + 'other': '0 millardos' + }, + '10000000000': { + 'other': '00 millardos' + }, + '100000000000': { + 'other': '000 millardos' + }, + '1000000000000': { + 'other': '0 billones' + }, + '10000000000000': { + 'other': '00 billones' + }, + '100000000000000': { + 'other': '000 billones' + } + } +}; + + +/** + * Compact number formatting symbols for locale es_CL. + */ +goog.i18n.CompactNumberFormatSymbols_es_CL = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0000\u00A0M' + }, + '10000000000': { + 'other': '00\u00A0K\u00A0M' + }, + '100000000000': { + 'other': '000\u00A0K\u00A0M' + }, + '1000000000000': { + 'other': '0\u00A0B' + }, + '10000000000000': { + 'other': '00\u00A0B' + }, + '100000000000000': { + 'other': '000\u00A0B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 millones' + }, + '10000000': { + 'other': '00 millones' + }, + '100000000': { + 'other': '000 millones' + }, + '1000000000': { + 'other': '0 millardos' + }, + '10000000000': { + 'other': '00 millardos' + }, + '100000000000': { + 'other': '000 millardos' + }, + '1000000000000': { + 'other': '0 billones' + }, + '10000000000000': { + 'other': '00 billones' + }, + '100000000000000': { + 'other': '000 billones' + } + } +}; + + +/** + * Compact number formatting symbols for locale es_CO. + */ +goog.i18n.CompactNumberFormatSymbols_es_CO = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0000\u00A0M' + }, + '10000000000': { + 'other': '00\u00A0K\u00A0M' + }, + '100000000000': { + 'other': '000\u00A0K\u00A0M' + }, + '1000000000000': { + 'other': '0\u00A0B' + }, + '10000000000000': { + 'other': '00\u00A0B' + }, + '100000000000000': { + 'other': '000\u00A0B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 millones' + }, + '10000000': { + 'other': '00 millones' + }, + '100000000': { + 'other': '000 millones' + }, + '1000000000': { + 'other': '0 millardos' + }, + '10000000000': { + 'other': '00 millardos' + }, + '100000000000': { + 'other': '000 millardos' + }, + '1000000000000': { + 'other': '0 billones' + }, + '10000000000000': { + 'other': '00 billones' + }, + '100000000000000': { + 'other': '000 billones' + } + } +}; + + +/** + * Compact number formatting symbols for locale es_CR. + */ +goog.i18n.CompactNumberFormatSymbols_es_CR = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0000\u00A0M' + }, + '10000000000': { + 'other': '00\u00A0K\u00A0M' + }, + '100000000000': { + 'other': '000\u00A0K\u00A0M' + }, + '1000000000000': { + 'other': '0\u00A0B' + }, + '10000000000000': { + 'other': '00\u00A0B' + }, + '100000000000000': { + 'other': '000\u00A0B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 millones' + }, + '10000000': { + 'other': '00 millones' + }, + '100000000': { + 'other': '000 millones' + }, + '1000000000': { + 'other': '0 millardos' + }, + '10000000000': { + 'other': '00 millardos' + }, + '100000000000': { + 'other': '000 millardos' + }, + '1000000000000': { + 'other': '0 billones' + }, + '10000000000000': { + 'other': '00 billones' + }, + '100000000000000': { + 'other': '000 billones' + } + } +}; + + +/** + * Compact number formatting symbols for locale es_CU. + */ +goog.i18n.CompactNumberFormatSymbols_es_CU = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0000\u00A0M' + }, + '10000000000': { + 'other': '00\u00A0K\u00A0M' + }, + '100000000000': { + 'other': '000\u00A0K\u00A0M' + }, + '1000000000000': { + 'other': '0\u00A0B' + }, + '10000000000000': { + 'other': '00\u00A0B' + }, + '100000000000000': { + 'other': '000\u00A0B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 millones' + }, + '10000000': { + 'other': '00 millones' + }, + '100000000': { + 'other': '000 millones' + }, + '1000000000': { + 'other': '0 millardos' + }, + '10000000000': { + 'other': '00 millardos' + }, + '100000000000': { + 'other': '000 millardos' + }, + '1000000000000': { + 'other': '0 billones' + }, + '10000000000000': { + 'other': '00 billones' + }, + '100000000000000': { + 'other': '000 billones' + } + } +}; + + +/** + * Compact number formatting symbols for locale es_DO. + */ +goog.i18n.CompactNumberFormatSymbols_es_DO = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0000\u00A0M' + }, + '10000000000': { + 'other': '00\u00A0K\u00A0M' + }, + '100000000000': { + 'other': '000\u00A0K\u00A0M' + }, + '1000000000000': { + 'other': '0\u00A0B' + }, + '10000000000000': { + 'other': '00\u00A0B' + }, + '100000000000000': { + 'other': '000\u00A0B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 millones' + }, + '10000000': { + 'other': '00 millones' + }, + '100000000': { + 'other': '000 millones' + }, + '1000000000': { + 'other': '0 millardos' + }, + '10000000000': { + 'other': '00 millardos' + }, + '100000000000': { + 'other': '000 millardos' + }, + '1000000000000': { + 'other': '0 billones' + }, + '10000000000000': { + 'other': '00 billones' + }, + '100000000000000': { + 'other': '000 billones' + } + } +}; + + +/** + * Compact number formatting symbols for locale es_EC. + */ +goog.i18n.CompactNumberFormatSymbols_es_EC = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0000\u00A0M' + }, + '10000000000': { + 'other': '00\u00A0K\u00A0M' + }, + '100000000000': { + 'other': '000\u00A0K\u00A0M' + }, + '1000000000000': { + 'other': '0\u00A0B' + }, + '10000000000000': { + 'other': '00\u00A0B' + }, + '100000000000000': { + 'other': '000\u00A0B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 millones' + }, + '10000000': { + 'other': '00 millones' + }, + '100000000': { + 'other': '000 millones' + }, + '1000000000': { + 'other': '0 millardos' + }, + '10000000000': { + 'other': '00 millardos' + }, + '100000000000': { + 'other': '000 millardos' + }, + '1000000000000': { + 'other': '0 billones' + }, + '10000000000000': { + 'other': '00 billones' + }, + '100000000000000': { + 'other': '000 billones' + } + } +}; + + +/** + * Compact number formatting symbols for locale es_GQ. + */ +goog.i18n.CompactNumberFormatSymbols_es_GQ = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0000\u00A0M' + }, + '10000000000': { + 'other': '00\u00A0K\u00A0M' + }, + '100000000000': { + 'other': '000\u00A0K\u00A0M' + }, + '1000000000000': { + 'other': '0\u00A0B' + }, + '10000000000000': { + 'other': '00\u00A0B' + }, + '100000000000000': { + 'other': '000\u00A0B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 millones' + }, + '10000000': { + 'other': '00 millones' + }, + '100000000': { + 'other': '000 millones' + }, + '1000000000': { + 'other': '0 millardos' + }, + '10000000000': { + 'other': '00 millardos' + }, + '100000000000': { + 'other': '000 millardos' + }, + '1000000000000': { + 'other': '0 billones' + }, + '10000000000000': { + 'other': '00 billones' + }, + '100000000000000': { + 'other': '000 billones' + } + } +}; + + +/** + * Compact number formatting symbols for locale es_GT. + */ +goog.i18n.CompactNumberFormatSymbols_es_GT = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0000\u00A0M' + }, + '10000000000': { + 'other': '00\u00A0K\u00A0M' + }, + '100000000000': { + 'other': '000\u00A0K\u00A0M' + }, + '1000000000000': { + 'other': '0\u00A0B' + }, + '10000000000000': { + 'other': '00\u00A0B' + }, + '100000000000000': { + 'other': '000\u00A0B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 millones' + }, + '10000000': { + 'other': '00 millones' + }, + '100000000': { + 'other': '000 millones' + }, + '1000000000': { + 'other': '0 millardos' + }, + '10000000000': { + 'other': '00 millardos' + }, + '100000000000': { + 'other': '000 millardos' + }, + '1000000000000': { + 'other': '0 billones' + }, + '10000000000000': { + 'other': '00 billones' + }, + '100000000000000': { + 'other': '000 billones' + } + } +}; + + +/** + * Compact number formatting symbols for locale es_HN. + */ +goog.i18n.CompactNumberFormatSymbols_es_HN = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0000\u00A0M' + }, + '10000000000': { + 'other': '00\u00A0K\u00A0M' + }, + '100000000000': { + 'other': '000\u00A0K\u00A0M' + }, + '1000000000000': { + 'other': '0\u00A0B' + }, + '10000000000000': { + 'other': '00\u00A0B' + }, + '100000000000000': { + 'other': '000\u00A0B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 millones' + }, + '10000000': { + 'other': '00 millones' + }, + '100000000': { + 'other': '000 millones' + }, + '1000000000': { + 'other': '0 millardos' + }, + '10000000000': { + 'other': '00 millardos' + }, + '100000000000': { + 'other': '000 millardos' + }, + '1000000000000': { + 'other': '0 billones' + }, + '10000000000000': { + 'other': '00 billones' + }, + '100000000000000': { + 'other': '000 billones' + } + } +}; + + +/** + * Compact number formatting symbols for locale es_MX. + */ +goog.i18n.CompactNumberFormatSymbols_es_MX = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0000\u00A0M' + }, + '10000000000': { + 'other': '00\u00A0K\u00A0M' + }, + '100000000000': { + 'other': '000\u00A0K\u00A0M' + }, + '1000000000000': { + 'other': '0\u00A0B' + }, + '10000000000000': { + 'other': '00\u00A0B' + }, + '100000000000000': { + 'other': '000\u00A0B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 millones' + }, + '10000000': { + 'other': '00 millones' + }, + '100000000': { + 'other': '000 millones' + }, + '1000000000': { + 'other': '0 millardos' + }, + '10000000000': { + 'other': '00 millardos' + }, + '100000000000': { + 'other': '000 millardos' + }, + '1000000000000': { + 'other': '0 billones' + }, + '10000000000000': { + 'other': '00 billones' + }, + '100000000000000': { + 'other': '000 billones' + } + } +}; + + +/** + * Compact number formatting symbols for locale es_NI. + */ +goog.i18n.CompactNumberFormatSymbols_es_NI = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0000\u00A0M' + }, + '10000000000': { + 'other': '00\u00A0K\u00A0M' + }, + '100000000000': { + 'other': '000\u00A0K\u00A0M' + }, + '1000000000000': { + 'other': '0\u00A0B' + }, + '10000000000000': { + 'other': '00\u00A0B' + }, + '100000000000000': { + 'other': '000\u00A0B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 millones' + }, + '10000000': { + 'other': '00 millones' + }, + '100000000': { + 'other': '000 millones' + }, + '1000000000': { + 'other': '0 millardos' + }, + '10000000000': { + 'other': '00 millardos' + }, + '100000000000': { + 'other': '000 millardos' + }, + '1000000000000': { + 'other': '0 billones' + }, + '10000000000000': { + 'other': '00 billones' + }, + '100000000000000': { + 'other': '000 billones' + } + } +}; + + +/** + * Compact number formatting symbols for locale es_PA. + */ +goog.i18n.CompactNumberFormatSymbols_es_PA = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0000\u00A0M' + }, + '10000000000': { + 'other': '00\u00A0K\u00A0M' + }, + '100000000000': { + 'other': '000\u00A0K\u00A0M' + }, + '1000000000000': { + 'other': '0\u00A0B' + }, + '10000000000000': { + 'other': '00\u00A0B' + }, + '100000000000000': { + 'other': '000\u00A0B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 millones' + }, + '10000000': { + 'other': '00 millones' + }, + '100000000': { + 'other': '000 millones' + }, + '1000000000': { + 'other': '0 millardos' + }, + '10000000000': { + 'other': '00 millardos' + }, + '100000000000': { + 'other': '000 millardos' + }, + '1000000000000': { + 'other': '0 billones' + }, + '10000000000000': { + 'other': '00 billones' + }, + '100000000000000': { + 'other': '000 billones' + } + } +}; + + +/** + * Compact number formatting symbols for locale es_PE. + */ +goog.i18n.CompactNumberFormatSymbols_es_PE = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0000\u00A0M' + }, + '10000000000': { + 'other': '00\u00A0K\u00A0M' + }, + '100000000000': { + 'other': '000\u00A0K\u00A0M' + }, + '1000000000000': { + 'other': '0\u00A0B' + }, + '10000000000000': { + 'other': '00\u00A0B' + }, + '100000000000000': { + 'other': '000\u00A0B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 millones' + }, + '10000000': { + 'other': '00 millones' + }, + '100000000': { + 'other': '000 millones' + }, + '1000000000': { + 'other': '0 millardos' + }, + '10000000000': { + 'other': '00 millardos' + }, + '100000000000': { + 'other': '000 millardos' + }, + '1000000000000': { + 'other': '0 billones' + }, + '10000000000000': { + 'other': '00 billones' + }, + '100000000000000': { + 'other': '000 billones' + } + } +}; + + +/** + * Compact number formatting symbols for locale es_PH. + */ +goog.i18n.CompactNumberFormatSymbols_es_PH = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0000\u00A0M' + }, + '10000000000': { + 'other': '00\u00A0K\u00A0M' + }, + '100000000000': { + 'other': '000\u00A0K\u00A0M' + }, + '1000000000000': { + 'other': '0\u00A0B' + }, + '10000000000000': { + 'other': '00\u00A0B' + }, + '100000000000000': { + 'other': '000\u00A0B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 millones' + }, + '10000000': { + 'other': '00 millones' + }, + '100000000': { + 'other': '000 millones' + }, + '1000000000': { + 'other': '0 millardos' + }, + '10000000000': { + 'other': '00 millardos' + }, + '100000000000': { + 'other': '000 millardos' + }, + '1000000000000': { + 'other': '0 billones' + }, + '10000000000000': { + 'other': '00 billones' + }, + '100000000000000': { + 'other': '000 billones' + } + } +}; + + +/** + * Compact number formatting symbols for locale es_PR. + */ +goog.i18n.CompactNumberFormatSymbols_es_PR = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0000\u00A0M' + }, + '10000000000': { + 'other': '00\u00A0K\u00A0M' + }, + '100000000000': { + 'other': '000\u00A0K\u00A0M' + }, + '1000000000000': { + 'other': '0\u00A0B' + }, + '10000000000000': { + 'other': '00\u00A0B' + }, + '100000000000000': { + 'other': '000\u00A0B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 millones' + }, + '10000000': { + 'other': '00 millones' + }, + '100000000': { + 'other': '000 millones' + }, + '1000000000': { + 'other': '0 millardos' + }, + '10000000000': { + 'other': '00 millardos' + }, + '100000000000': { + 'other': '000 millardos' + }, + '1000000000000': { + 'other': '0 billones' + }, + '10000000000000': { + 'other': '00 billones' + }, + '100000000000000': { + 'other': '000 billones' + } + } +}; + + +/** + * Compact number formatting symbols for locale es_PY. + */ +goog.i18n.CompactNumberFormatSymbols_es_PY = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0000\u00A0M' + }, + '10000000000': { + 'other': '00\u00A0K\u00A0M' + }, + '100000000000': { + 'other': '000\u00A0K\u00A0M' + }, + '1000000000000': { + 'other': '0\u00A0B' + }, + '10000000000000': { + 'other': '00\u00A0B' + }, + '100000000000000': { + 'other': '000\u00A0B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 millones' + }, + '10000000': { + 'other': '00 millones' + }, + '100000000': { + 'other': '000 millones' + }, + '1000000000': { + 'other': '0 millardos' + }, + '10000000000': { + 'other': '00 millardos' + }, + '100000000000': { + 'other': '000 millardos' + }, + '1000000000000': { + 'other': '0 billones' + }, + '10000000000000': { + 'other': '00 billones' + }, + '100000000000000': { + 'other': '000 billones' + } + } +}; + + +/** + * Compact number formatting symbols for locale es_SV. + */ +goog.i18n.CompactNumberFormatSymbols_es_SV = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0000\u00A0M' + }, + '10000000000': { + 'other': '00\u00A0K\u00A0M' + }, + '100000000000': { + 'other': '000\u00A0K\u00A0M' + }, + '1000000000000': { + 'other': '0\u00A0B' + }, + '10000000000000': { + 'other': '00\u00A0B' + }, + '100000000000000': { + 'other': '000\u00A0B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 millones' + }, + '10000000': { + 'other': '00 millones' + }, + '100000000': { + 'other': '000 millones' + }, + '1000000000': { + 'other': '0 millardos' + }, + '10000000000': { + 'other': '00 millardos' + }, + '100000000000': { + 'other': '000 millardos' + }, + '1000000000000': { + 'other': '0 billones' + }, + '10000000000000': { + 'other': '00 billones' + }, + '100000000000000': { + 'other': '000 billones' + } + } +}; + + +/** + * Compact number formatting symbols for locale es_US. + */ +goog.i18n.CompactNumberFormatSymbols_es_US = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0000\u00A0M' + }, + '10000000000': { + 'other': '00\u00A0K\u00A0M' + }, + '100000000000': { + 'other': '000\u00A0K\u00A0M' + }, + '1000000000000': { + 'other': '0\u00A0B' + }, + '10000000000000': { + 'other': '00\u00A0B' + }, + '100000000000000': { + 'other': '000\u00A0B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 millones' + }, + '10000000': { + 'other': '00 millones' + }, + '100000000': { + 'other': '000 millones' + }, + '1000000000': { + 'other': '0 millardos' + }, + '10000000000': { + 'other': '00 millardos' + }, + '100000000000': { + 'other': '000 millardos' + }, + '1000000000000': { + 'other': '0 billones' + }, + '10000000000000': { + 'other': '00 billones' + }, + '100000000000000': { + 'other': '000 billones' + } + } +}; + + +/** + * Compact number formatting symbols for locale es_UY. + */ +goog.i18n.CompactNumberFormatSymbols_es_UY = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0000\u00A0M' + }, + '10000000000': { + 'other': '00\u00A0K\u00A0M' + }, + '100000000000': { + 'other': '000\u00A0K\u00A0M' + }, + '1000000000000': { + 'other': '0\u00A0B' + }, + '10000000000000': { + 'other': '00\u00A0B' + }, + '100000000000000': { + 'other': '000\u00A0B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 millones' + }, + '10000000': { + 'other': '00 millones' + }, + '100000000': { + 'other': '000 millones' + }, + '1000000000': { + 'other': '0 millardos' + }, + '10000000000': { + 'other': '00 millardos' + }, + '100000000000': { + 'other': '000 millardos' + }, + '1000000000000': { + 'other': '0 billones' + }, + '10000000000000': { + 'other': '00 billones' + }, + '100000000000000': { + 'other': '000 billones' + } + } +}; + + +/** + * Compact number formatting symbols for locale es_VE. + */ +goog.i18n.CompactNumberFormatSymbols_es_VE = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0000\u00A0M' + }, + '10000000000': { + 'other': '00\u00A0K\u00A0M' + }, + '100000000000': { + 'other': '000\u00A0K\u00A0M' + }, + '1000000000000': { + 'other': '0\u00A0B' + }, + '10000000000000': { + 'other': '00\u00A0B' + }, + '100000000000000': { + 'other': '000\u00A0B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 millones' + }, + '10000000': { + 'other': '00 millones' + }, + '100000000': { + 'other': '000 millones' + }, + '1000000000': { + 'other': '0 millardos' + }, + '10000000000': { + 'other': '00 millardos' + }, + '100000000000': { + 'other': '000 millardos' + }, + '1000000000000': { + 'other': '0 billones' + }, + '10000000000000': { + 'other': '00 billones' + }, + '100000000000000': { + 'other': '000 billones' + } + } +}; + + +/** + * Compact number formatting symbols for locale ewo. + */ +goog.i18n.CompactNumberFormatSymbols_ewo = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ewo_CM. + */ +goog.i18n.CompactNumberFormatSymbols_ewo_CM = + goog.i18n.CompactNumberFormatSymbols_ewo; + + +/** + * Compact number formatting symbols for locale fa_AF. + */ +goog.i18n.CompactNumberFormatSymbols_fa_AF = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0647\u0632\u0627\u0631' + }, + '10000': { + 'other': '00 \u0647\u0632\u0627\u0631' + }, + '100000': { + 'other': '000 \u0647\u0632\u0627\u0631' + }, + '1000000': { + 'other': '0 \u0645\u06CC\u0644\u06CC\u0648\u0646' + }, + '10000000': { + 'other': '00 \u0645\u06CC\u0644\u06CC\u0648\u0646' + }, + '100000000': { + 'other': '000 \u0645\u06CC\u0644\u06CC\u0648\u0646' + }, + '1000000000': { + 'other': '0 \u0645\u06CC\u0644\u06CC\u0627\u0631\u062F' + }, + '10000000000': { + 'other': '00 \u0645\u06CC\u0644\u06CC\u0627\u0631\u062F' + }, + '100000000000': { + 'other': '000 \u0645\u06CC\u0644\u06CC\u0627\u0631\u062F' + }, + '1000000000000': { + 'other': '0 \u0647\u0632\u0627\u0631 \u0645\u06CC\u0644\u06CC\u0627\u0631\u062F' + }, + '10000000000000': { + 'other': '00 \u0647\u0632\u0627\u0631 \u0645\u06CC\u0644\u06CC\u0627\u0631\u062F' + }, + '100000000000000': { + 'other': '000 \u0647\u0632\u0627\u0631 \u0645\u06CC\u0644\u06CC\u0627\u0631\u062F' + } + } +}; + + +/** + * Compact number formatting symbols for locale ff. + */ +goog.i18n.CompactNumberFormatSymbols_ff = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ff_SN. + */ +goog.i18n.CompactNumberFormatSymbols_ff_SN = + goog.i18n.CompactNumberFormatSymbols_ff; + + +/** + * Compact number formatting symbols for locale fo. + */ +goog.i18n.CompactNumberFormatSymbols_fo = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0td' + }, + '10000': { + 'other': '00\u00A0td' + }, + '100000': { + 'other': '000\u00A0td' + }, + '1000000': { + 'other': '0\u00A0mn' + }, + '10000000': { + 'other': '00\u00A0mn' + }, + '100000000': { + 'other': '000\u00A0mn' + }, + '1000000000': { + 'other': '0\u00A0md' + }, + '10000000000': { + 'other': '00\u00A0md' + }, + '100000000000': { + 'other': '000\u00A0md' + }, + '1000000000000': { + 'other': '0\u00A0bn' + }, + '10000000000000': { + 'other': '00\u00A0bn' + }, + '100000000000000': { + 'other': '000\u00A0bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 tusind' + }, + '10000': { + 'other': '00 tusind' + }, + '100000': { + 'other': '000 tusind' + }, + '1000000': { + 'other': '0 millioner' + }, + '10000000': { + 'other': '00 millioner' + }, + '100000000': { + 'other': '000 millioner' + }, + '1000000000': { + 'other': '0 milliarder' + }, + '10000000000': { + 'other': '00 milliarder' + }, + '100000000000': { + 'other': '000 milliarder' + }, + '1000000000000': { + 'other': '0 billioner' + }, + '10000000000000': { + 'other': '00 billioner' + }, + '100000000000000': { + 'other': '000 billioner' + } + } +}; + + +/** + * Compact number formatting symbols for locale fo_FO. + */ +goog.i18n.CompactNumberFormatSymbols_fo_FO = + goog.i18n.CompactNumberFormatSymbols_fo; + + +/** + * Compact number formatting symbols for locale fr_BE. + */ +goog.i18n.CompactNumberFormatSymbols_fr_BE = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_BF. + */ +goog.i18n.CompactNumberFormatSymbols_fr_BF = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_BI. + */ +goog.i18n.CompactNumberFormatSymbols_fr_BI = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_BJ. + */ +goog.i18n.CompactNumberFormatSymbols_fr_BJ = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_CD. + */ +goog.i18n.CompactNumberFormatSymbols_fr_CD = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_CF. + */ +goog.i18n.CompactNumberFormatSymbols_fr_CF = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_CG. + */ +goog.i18n.CompactNumberFormatSymbols_fr_CG = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_CH. + */ +goog.i18n.CompactNumberFormatSymbols_fr_CH = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_CI. + */ +goog.i18n.CompactNumberFormatSymbols_fr_CI = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_CM. + */ +goog.i18n.CompactNumberFormatSymbols_fr_CM = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_DJ. + */ +goog.i18n.CompactNumberFormatSymbols_fr_DJ = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_DZ. + */ +goog.i18n.CompactNumberFormatSymbols_fr_DZ = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_GA. + */ +goog.i18n.CompactNumberFormatSymbols_fr_GA = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_GN. + */ +goog.i18n.CompactNumberFormatSymbols_fr_GN = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_GQ. + */ +goog.i18n.CompactNumberFormatSymbols_fr_GQ = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_HT. + */ +goog.i18n.CompactNumberFormatSymbols_fr_HT = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_KM. + */ +goog.i18n.CompactNumberFormatSymbols_fr_KM = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_LU. + */ +goog.i18n.CompactNumberFormatSymbols_fr_LU = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_MA. + */ +goog.i18n.CompactNumberFormatSymbols_fr_MA = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_MG. + */ +goog.i18n.CompactNumberFormatSymbols_fr_MG = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_ML. + */ +goog.i18n.CompactNumberFormatSymbols_fr_ML = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_MR. + */ +goog.i18n.CompactNumberFormatSymbols_fr_MR = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_MU. + */ +goog.i18n.CompactNumberFormatSymbols_fr_MU = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_NC. + */ +goog.i18n.CompactNumberFormatSymbols_fr_NC = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_NE. + */ +goog.i18n.CompactNumberFormatSymbols_fr_NE = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_PF. + */ +goog.i18n.CompactNumberFormatSymbols_fr_PF = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_RW. + */ +goog.i18n.CompactNumberFormatSymbols_fr_RW = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_SC. + */ +goog.i18n.CompactNumberFormatSymbols_fr_SC = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_SN. + */ +goog.i18n.CompactNumberFormatSymbols_fr_SN = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_SY. + */ +goog.i18n.CompactNumberFormatSymbols_fr_SY = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_TD. + */ +goog.i18n.CompactNumberFormatSymbols_fr_TD = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_TG. + */ +goog.i18n.CompactNumberFormatSymbols_fr_TG = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_TN. + */ +goog.i18n.CompactNumberFormatSymbols_fr_TN = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fr_VU. + */ +goog.i18n.CompactNumberFormatSymbols_fr_VU = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0M' + }, + '10000000': { + 'other': '00\u00A0M' + }, + '100000000': { + 'other': '000\u00A0M' + }, + '1000000000': { + 'other': '0\u00A0Md' + }, + '10000000000': { + 'other': '00\u00A0Md' + }, + '100000000000': { + 'other': '000\u00A0Md' + }, + '1000000000000': { + 'other': '0\u00A0Bn' + }, + '10000000000000': { + 'other': '00\u00A0Bn' + }, + '100000000000000': { + 'other': '000\u00A0Bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mille' + }, + '10000': { + 'other': '00 mille' + }, + '100000': { + 'other': '000 mille' + }, + '1000000': { + 'other': '0 millions' + }, + '10000000': { + 'other': '00 millions' + }, + '100000000': { + 'other': '000 millions' + }, + '1000000000': { + 'other': '0 milliards' + }, + '10000000000': { + 'other': '00 milliards' + }, + '100000000000': { + 'other': '000 milliards' + }, + '1000000000000': { + 'other': '0 billions' + }, + '10000000000000': { + 'other': '00 billions' + }, + '100000000000000': { + 'other': '000 billions' + } + } +}; + + +/** + * Compact number formatting symbols for locale fur. + */ +goog.i18n.CompactNumberFormatSymbols_fur = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale fur_IT. + */ +goog.i18n.CompactNumberFormatSymbols_fur_IT = + goog.i18n.CompactNumberFormatSymbols_fur; + + +/** + * Compact number formatting symbols for locale ga. + */ +goog.i18n.CompactNumberFormatSymbols_ga = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ga_IE. + */ +goog.i18n.CompactNumberFormatSymbols_ga_IE = + goog.i18n.CompactNumberFormatSymbols_ga; + + +/** + * Compact number formatting symbols for locale gd. + */ +goog.i18n.CompactNumberFormatSymbols_gd = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale gd_GB. + */ +goog.i18n.CompactNumberFormatSymbols_gd_GB = + goog.i18n.CompactNumberFormatSymbols_gd; + + +/** + * Compact number formatting symbols for locale guz. + */ +goog.i18n.CompactNumberFormatSymbols_guz = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale guz_KE. + */ +goog.i18n.CompactNumberFormatSymbols_guz_KE = + goog.i18n.CompactNumberFormatSymbols_guz; + + +/** + * Compact number formatting symbols for locale gv. + */ +goog.i18n.CompactNumberFormatSymbols_gv = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale gv_GB. + */ +goog.i18n.CompactNumberFormatSymbols_gv_GB = + goog.i18n.CompactNumberFormatSymbols_gv; + + +/** + * Compact number formatting symbols for locale ha. + */ +goog.i18n.CompactNumberFormatSymbols_ha = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ha_Latn. + */ +goog.i18n.CompactNumberFormatSymbols_ha_Latn = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ha_Latn_GH. + */ +goog.i18n.CompactNumberFormatSymbols_ha_Latn_GH = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ha_Latn_NE. + */ +goog.i18n.CompactNumberFormatSymbols_ha_Latn_NE = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ha_Latn_NG. + */ +goog.i18n.CompactNumberFormatSymbols_ha_Latn_NG = + goog.i18n.CompactNumberFormatSymbols_ha; + + +/** + * Compact number formatting symbols for locale hr_BA. + */ +goog.i18n.CompactNumberFormatSymbols_hr_BA = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0' + }, + '100000': { + 'other': '0' + }, + '1000000': { + 'other': '0\u00A0mil.' + }, + '10000000': { + 'other': '00\u00A0mil.' + }, + '100000000': { + 'other': '000\u00A0mil.' + }, + '1000000000': { + 'other': '0\u00A0mlr.' + }, + '10000000000': { + 'other': '00\u00A0mlr.' + }, + '100000000000': { + 'other': '000\u00A0mlr.' + }, + '1000000000000': { + 'other': '0\u00A0bil.' + }, + '10000000000000': { + 'other': '00\u00A0bil.' + }, + '100000000000000': { + 'other': '000\u00A0bil.' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0' + }, + '100000': { + 'other': '0' + }, + '1000000': { + 'other': '0 milijuna' + }, + '10000000': { + 'other': '00 milijuna' + }, + '100000000': { + 'other': '000 milijuna' + }, + '1000000000': { + 'other': '0 milijarda' + }, + '10000000000': { + 'other': '00 milijarda' + }, + '100000000000': { + 'other': '000 milijarda' + }, + '1000000000000': { + 'other': '0 bilijuna' + }, + '10000000000000': { + 'other': '00 bilijuna' + }, + '100000000000000': { + 'other': '000 bilijuna' + } + } +}; + + +/** + * Compact number formatting symbols for locale hy. + */ +goog.i18n.CompactNumberFormatSymbols_hy = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0570\u0561\u0566\u0561\u0580' + }, + '10000': { + 'other': '00 \u0570\u0561\u0566\u0561\u0580' + }, + '100000': { + 'other': '000 \u0570\u0561\u0566\u0561\u0580' + }, + '1000000': { + 'other': '0 \u0574\u056B\u056C\u056B\u0578\u0576' + }, + '10000000': { + 'other': '00 \u0574\u056B\u056C\u056B\u0578\u0576' + }, + '100000000': { + 'other': '000 \u0574\u056B\u056C\u056B\u0578\u0576' + }, + '1000000000': { + 'other': '0 \u0574\u056B\u056C\u056B\u0561\u0580\u0564' + }, + '10000000000': { + 'other': '00 \u0562\u056B\u056C\u056B\u0578\u0576' + }, + '100000000000': { + 'other': '000 \u0562\u056B\u056C\u056B\u0578\u0576' + }, + '1000000000000': { + 'other': '0 \u057F\u0580\u056B\u056C\u056B\u0578\u0576' + }, + '10000000000000': { + 'other': '00 \u057F\u0580\u056B\u056C\u056B\u0578\u0576' + }, + '100000000000000': { + 'other': '000 \u057F\u0580\u056B\u056C\u056B\u0578\u0576' + } + } +}; + + +/** + * Compact number formatting symbols for locale hy_AM. + */ +goog.i18n.CompactNumberFormatSymbols_hy_AM = + goog.i18n.CompactNumberFormatSymbols_hy; + + +/** + * Compact number formatting symbols for locale ia. + */ +goog.i18n.CompactNumberFormatSymbols_ia = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ia_FR. + */ +goog.i18n.CompactNumberFormatSymbols_ia_FR = + goog.i18n.CompactNumberFormatSymbols_ia; + + +/** + * Compact number formatting symbols for locale ig. + */ +goog.i18n.CompactNumberFormatSymbols_ig = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ig_NG. + */ +goog.i18n.CompactNumberFormatSymbols_ig_NG = + goog.i18n.CompactNumberFormatSymbols_ig; + + +/** + * Compact number formatting symbols for locale ii. + */ +goog.i18n.CompactNumberFormatSymbols_ii = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ii_CN. + */ +goog.i18n.CompactNumberFormatSymbols_ii_CN = + goog.i18n.CompactNumberFormatSymbols_ii; + + +/** + * Compact number formatting symbols for locale it_CH. + */ +goog.i18n.CompactNumberFormatSymbols_it_CH = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0' + }, + '100000': { + 'other': '0' + }, + '1000000': { + 'other': '0\u00A0Mln' + }, + '10000000': { + 'other': '00\u00A0Mln' + }, + '100000000': { + 'other': '000\u00A0Mln' + }, + '1000000000': { + 'other': '0\u00A0Mld' + }, + '10000000000': { + 'other': '00\u00A0Mld' + }, + '100000000000': { + 'other': '000\u00A0Mld' + }, + '1000000000000': { + 'other': '0\u00A0Bln' + }, + '10000000000000': { + 'other': '00\u00A0Bln' + }, + '100000000000000': { + 'other': '000\u00A0Bln' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 migliaia' + }, + '10000': { + 'other': '00 migliaia' + }, + '100000': { + 'other': '000 migliaia' + }, + '1000000': { + 'other': '0 milioni' + }, + '10000000': { + 'other': '00 milioni' + }, + '100000000': { + 'other': '000 milioni' + }, + '1000000000': { + 'other': '0 miliardi' + }, + '10000000000': { + 'other': '00 miliardi' + }, + '100000000000': { + 'other': '000 miliardi' + }, + '1000000000000': { + 'other': '0 bilioni' + }, + '10000000000000': { + 'other': '00 bilioni' + }, + '100000000000000': { + 'other': '000 bilioni' + } + } +}; + + +/** + * Compact number formatting symbols for locale jgo. + */ +goog.i18n.CompactNumberFormatSymbols_jgo = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale jgo_CM. + */ +goog.i18n.CompactNumberFormatSymbols_jgo_CM = + goog.i18n.CompactNumberFormatSymbols_jgo; + + +/** + * Compact number formatting symbols for locale jmc. + */ +goog.i18n.CompactNumberFormatSymbols_jmc = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale jmc_TZ. + */ +goog.i18n.CompactNumberFormatSymbols_jmc_TZ = + goog.i18n.CompactNumberFormatSymbols_jmc; + + +/** + * Compact number formatting symbols for locale ka. + */ +goog.i18n.CompactNumberFormatSymbols_ka = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u10D0\u10D7.' + }, + '10000': { + 'other': '00\u00A0\u10D0\u10D7.' + }, + '100000': { + 'other': '000\u00A0\u10D0\u10D7.' + }, + '1000000': { + 'other': '0\u00A0\u10DB\u10DA\u10DC.' + }, + '10000000': { + 'other': '00\u00A0\u10DB\u10DA\u10DC.' + }, + '100000000': { + 'other': '000\u00A0\u10DB\u10DA\u10DC.' + }, + '1000000000': { + 'other': '0\u00A0\u10DB\u10DA\u10E0\u10D3.' + }, + '10000000000': { + 'other': '00\u00A0\u10DB\u10DA\u10E0\u10D3.' + }, + '100000000000': { + 'other': '000\u00A0\u10DB\u10DA\u10E0.' + }, + '1000000000000': { + 'other': '0\u00A0\u10E2\u10E0\u10DA.' + }, + '10000000000000': { + 'other': '00\u00A0\u10E2\u10E0\u10DA.' + }, + '100000000000000': { + 'other': '000\u00A0\u10E2\u10E0\u10DA.' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u10D0\u10D7\u10D0\u10E1\u10D8' + }, + '10000': { + 'other': '00 \u10D0\u10D7\u10D0\u10E1\u10D8' + }, + '100000': { + 'other': '000 \u10D0\u10D7\u10D0\u10E1\u10D8' + }, + '1000000': { + 'other': '0 \u10DB\u10D8\u10DA\u10D8\u10DD\u10DC\u10D8' + }, + '10000000': { + 'other': '00 \u10DB\u10D8\u10DA\u10D8\u10DD\u10DC\u10D8' + }, + '100000000': { + 'other': '000 \u10DB\u10D8\u10DA\u10D8\u10DD\u10DC\u10D8' + }, + '1000000000': { + 'other': '0 \u10DB\u10D8\u10DA\u10D8\u10D0\u10E0\u10D3\u10D8' + }, + '10000000000': { + 'other': '00 \u10DB\u10D8\u10DA\u10D8\u10D0\u10E0\u10D3\u10D8' + }, + '100000000000': { + 'other': '000 \u10DB\u10D8\u10DA\u10D8\u10D0\u10E0\u10D3\u10D8' + }, + '1000000000000': { + 'other': '0 \u10E2\u10E0\u10D8\u10DA\u10D8\u10DD\u10DC\u10D8' + }, + '10000000000000': { + 'other': '00 \u10E2\u10E0\u10D8\u10DA\u10D8\u10DD\u10DC\u10D8' + }, + '100000000000000': { + 'other': '000 \u10E2\u10E0\u10D8\u10DA\u10D8\u10DD\u10DC\u10D8' + } + } +}; + + +/** + * Compact number formatting symbols for locale ka_GE. + */ +goog.i18n.CompactNumberFormatSymbols_ka_GE = + goog.i18n.CompactNumberFormatSymbols_ka; + + +/** + * Compact number formatting symbols for locale kab. + */ +goog.i18n.CompactNumberFormatSymbols_kab = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale kab_DZ. + */ +goog.i18n.CompactNumberFormatSymbols_kab_DZ = + goog.i18n.CompactNumberFormatSymbols_kab; + + +/** + * Compact number formatting symbols for locale kam. + */ +goog.i18n.CompactNumberFormatSymbols_kam = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale kam_KE. + */ +goog.i18n.CompactNumberFormatSymbols_kam_KE = + goog.i18n.CompactNumberFormatSymbols_kam; + + +/** + * Compact number formatting symbols for locale kde. + */ +goog.i18n.CompactNumberFormatSymbols_kde = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale kde_TZ. + */ +goog.i18n.CompactNumberFormatSymbols_kde_TZ = + goog.i18n.CompactNumberFormatSymbols_kde; + + +/** + * Compact number formatting symbols for locale kea. + */ +goog.i18n.CompactNumberFormatSymbols_kea = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale kea_CV. + */ +goog.i18n.CompactNumberFormatSymbols_kea_CV = + goog.i18n.CompactNumberFormatSymbols_kea; + + +/** + * Compact number formatting symbols for locale khq. + */ +goog.i18n.CompactNumberFormatSymbols_khq = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale khq_ML. + */ +goog.i18n.CompactNumberFormatSymbols_khq_ML = + goog.i18n.CompactNumberFormatSymbols_khq; + + +/** + * Compact number formatting symbols for locale ki. + */ +goog.i18n.CompactNumberFormatSymbols_ki = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ki_KE. + */ +goog.i18n.CompactNumberFormatSymbols_ki_KE = + goog.i18n.CompactNumberFormatSymbols_ki; + + +/** + * Compact number formatting symbols for locale kk. + */ +goog.i18n.CompactNumberFormatSymbols_kk = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u043C\u044B\u04A3' + }, + '10000': { + 'other': '00\u00A0\u043C\u044B\u04A3' + }, + '100000': { + 'other': '000\u00A0\u043C\u044B\u04A3' + }, + '1000000': { + 'other': '0\u00A0\u043C\u043B\u043D' + }, + '10000000': { + 'other': '00\u00A0\u043C\u043B\u043D' + }, + '100000000': { + 'other': '000\u00A0\u043C\u043B\u043D' + }, + '1000000000': { + 'other': '0\u00A0\u043C\u043B\u0440\u0434' + }, + '10000000000': { + 'other': '00\u00A0\u043C\u043B\u0440\u0434' + }, + '100000000000': { + 'other': '000\u00A0\u043C\u043B\u0440\u0434' + }, + '1000000000000': { + 'other': '0\u00A0\u0442\u0440\u043B\u043D' + }, + '10000000000000': { + 'other': '00\u00A0\u0442\u0440\u043B\u043D' + }, + '100000000000000': { + 'other': '000\u00A0\u0442\u0440\u043B\u043D' + } + } +}; + + +/** + * Compact number formatting symbols for locale kk_Cyrl. + */ +goog.i18n.CompactNumberFormatSymbols_kk_Cyrl = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u043C\u044B\u04A3' + }, + '10000': { + 'other': '00\u00A0\u043C\u044B\u04A3' + }, + '100000': { + 'other': '000\u00A0\u043C\u044B\u04A3' + }, + '1000000': { + 'other': '0\u00A0\u043C\u043B\u043D' + }, + '10000000': { + 'other': '00\u00A0\u043C\u043B\u043D' + }, + '100000000': { + 'other': '000\u00A0\u043C\u043B\u043D' + }, + '1000000000': { + 'other': '0\u00A0\u043C\u043B\u0440\u0434' + }, + '10000000000': { + 'other': '00\u00A0\u043C\u043B\u0440\u0434' + }, + '100000000000': { + 'other': '000\u00A0\u043C\u043B\u0440\u0434' + }, + '1000000000000': { + 'other': '0\u00A0\u0442\u0440\u043B\u043D' + }, + '10000000000000': { + 'other': '00\u00A0\u0442\u0440\u043B\u043D' + }, + '100000000000000': { + 'other': '000\u00A0\u0442\u0440\u043B\u043D' + } + } +}; + + +/** + * Compact number formatting symbols for locale kk_Cyrl_KZ. + */ +goog.i18n.CompactNumberFormatSymbols_kk_Cyrl_KZ = + goog.i18n.CompactNumberFormatSymbols_kk; + + +/** + * Compact number formatting symbols for locale kkj. + */ +goog.i18n.CompactNumberFormatSymbols_kkj = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale kkj_CM. + */ +goog.i18n.CompactNumberFormatSymbols_kkj_CM = + goog.i18n.CompactNumberFormatSymbols_kkj; + + +/** + * Compact number formatting symbols for locale kl. + */ +goog.i18n.CompactNumberFormatSymbols_kl = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0td' + }, + '10000': { + 'other': '00\u00A0td' + }, + '100000': { + 'other': '000\u00A0td' + }, + '1000000': { + 'other': '0\u00A0mn' + }, + '10000000': { + 'other': '00\u00A0mn' + }, + '100000000': { + 'other': '000\u00A0mn' + }, + '1000000000': { + 'other': '0\u00A0md' + }, + '10000000000': { + 'other': '00\u00A0md' + }, + '100000000000': { + 'other': '000\u00A0md' + }, + '1000000000000': { + 'other': '0\u00A0bn' + }, + '10000000000000': { + 'other': '00\u00A0bn' + }, + '100000000000000': { + 'other': '000\u00A0bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 tusind' + }, + '10000': { + 'other': '00 tusind' + }, + '100000': { + 'other': '000 tusind' + }, + '1000000': { + 'other': '0 millioner' + }, + '10000000': { + 'other': '00 millioner' + }, + '100000000': { + 'other': '000 millioner' + }, + '1000000000': { + 'other': '0 milliarder' + }, + '10000000000': { + 'other': '00 milliarder' + }, + '100000000000': { + 'other': '000 milliarder' + }, + '1000000000000': { + 'other': '0 billioner' + }, + '10000000000000': { + 'other': '00 billioner' + }, + '100000000000000': { + 'other': '000 billioner' + } + } +}; + + +/** + * Compact number formatting symbols for locale kl_GL. + */ +goog.i18n.CompactNumberFormatSymbols_kl_GL = + goog.i18n.CompactNumberFormatSymbols_kl; + + +/** + * Compact number formatting symbols for locale kln. + */ +goog.i18n.CompactNumberFormatSymbols_kln = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale kln_KE. + */ +goog.i18n.CompactNumberFormatSymbols_kln_KE = + goog.i18n.CompactNumberFormatSymbols_kln; + + +/** + * Compact number formatting symbols for locale km. + */ +goog.i18n.CompactNumberFormatSymbols_km = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u1796' + }, + '10000': { + 'other': '0\u1798' + }, + '100000': { + 'other': '0\u179F' + }, + '1000000': { + 'other': '0\u179B' + }, + '10000000': { + 'other': '00\u179B' + }, + '100000000': { + 'other': '000\u179B' + }, + '1000000000': { + 'other': '0\u1796.\u179B' + }, + '10000000000': { + 'other': '00\u1796.\u179B' + }, + '100000000000': { + 'other': '000\u1796.\u179B' + }, + '1000000000000': { + 'other': '0\u179B.\u179B' + }, + '10000000000000': { + 'other': '00\u179B.\u179B' + }, + '100000000000000': { + 'other': '000\u179B.\u179B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0\u1796\u17B6\u1793\u17CB' + }, + '10000': { + 'other': '0\u1798\u17C9\u17BA\u1793' + }, + '100000': { + 'other': '0\u179F\u17C2\u1793' + }, + '1000000': { + 'other': '0\u179B\u17B6\u1793' + }, + '10000000': { + 'other': '00\u179B\u17B6\u1793' + }, + '100000000': { + 'other': '000\u179B\u17B6\u1793' + }, + '1000000000': { + 'other': '0\u1796\u17B6\u1793\u17CB\u179B\u17B6\u1793' + }, + '10000000000': { + 'other': '00\u1796\u17B6\u1793\u17CB\u179B\u17B6\u1793' + }, + '100000000000': { + 'other': '000\u1796\u17B6\u1793\u17CB\u179B\u17B6\u1793' + }, + '1000000000000': { + 'other': '0\u179B\u17B6\u1793\u179B\u17B6\u1793' + }, + '10000000000000': { + 'other': '00\u179B\u17B6\u1793\u179B\u17B6\u1793' + }, + '100000000000000': { + 'other': '000\u179B\u17B6\u1793\u179B\u17B6\u1793' + } + } +}; + + +/** + * Compact number formatting symbols for locale km_KH. + */ +goog.i18n.CompactNumberFormatSymbols_km_KH = + goog.i18n.CompactNumberFormatSymbols_km; + + +/** + * Compact number formatting symbols for locale ko_KP. + */ +goog.i18n.CompactNumberFormatSymbols_ko_KP = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0\uB9CC' + }, + '100000': { + 'other': '00\uB9CC' + }, + '1000000': { + 'other': '000\uB9CC' + }, + '10000000': { + 'other': '0000\uB9CC' + }, + '100000000': { + 'other': '0\uC5B5' + }, + '1000000000': { + 'other': '00\uC5B5' + }, + '10000000000': { + 'other': '000\uC5B5' + }, + '100000000000': { + 'other': '0000\uC5B5' + }, + '1000000000000': { + 'other': '0\uC870' + }, + '10000000000000': { + 'other': '00\uC870' + }, + '100000000000000': { + 'other': '000\uC870' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0\uB9CC' + }, + '100000': { + 'other': '00\uB9CC' + }, + '1000000': { + 'other': '000\uB9CC' + }, + '10000000': { + 'other': '0000\uB9CC' + }, + '100000000': { + 'other': '0\uC5B5' + }, + '1000000000': { + 'other': '00\uC5B5' + }, + '10000000000': { + 'other': '000\uC5B5' + }, + '100000000000': { + 'other': '0000\uC5B5' + }, + '1000000000000': { + 'other': '0\uC870' + }, + '10000000000000': { + 'other': '00\uC870' + }, + '100000000000000': { + 'other': '000\uC870' + } + } +}; + + +/** + * Compact number formatting symbols for locale kok. + */ +goog.i18n.CompactNumberFormatSymbols_kok = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale kok_IN. + */ +goog.i18n.CompactNumberFormatSymbols_kok_IN = + goog.i18n.CompactNumberFormatSymbols_kok; + + +/** + * Compact number formatting symbols for locale ks. + */ +goog.i18n.CompactNumberFormatSymbols_ks = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ks_Arab. + */ +goog.i18n.CompactNumberFormatSymbols_ks_Arab = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ks_Arab_IN. + */ +goog.i18n.CompactNumberFormatSymbols_ks_Arab_IN = + goog.i18n.CompactNumberFormatSymbols_ks; + + +/** + * Compact number formatting symbols for locale ksb. + */ +goog.i18n.CompactNumberFormatSymbols_ksb = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ksb_TZ. + */ +goog.i18n.CompactNumberFormatSymbols_ksb_TZ = + goog.i18n.CompactNumberFormatSymbols_ksb; + + +/** + * Compact number formatting symbols for locale ksf. + */ +goog.i18n.CompactNumberFormatSymbols_ksf = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ksf_CM. + */ +goog.i18n.CompactNumberFormatSymbols_ksf_CM = + goog.i18n.CompactNumberFormatSymbols_ksf; + + +/** + * Compact number formatting symbols for locale ksh. + */ +goog.i18n.CompactNumberFormatSymbols_ksh = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0tsd' + }, + '10000': { + 'other': '00\u00A0tsd' + }, + '100000': { + 'other': '000\u00A0tsd' + }, + '1000000': { + 'other': '0\u00A0Mio' + }, + '10000000': { + 'other': '00\u00A0Mio' + }, + '100000000': { + 'other': '000\u00A0Mio' + }, + '1000000000': { + 'other': '0\u00A0Mrd' + }, + '10000000000': { + 'other': '00\u00A0Mrd' + }, + '100000000000': { + 'other': '000\u00A0Mrd' + }, + '1000000000000': { + 'other': '0\u00A0Bio' + }, + '10000000000000': { + 'other': '00\u00A0Bio' + }, + '100000000000000': { + 'other': '000\u00A0Bio' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 tausend' + }, + '10000': { + 'other': '00 tausend' + }, + '100000': { + 'other': '000 tausend' + }, + '1000000': { + 'other': '0 Millionen' + }, + '10000000': { + 'other': '00 Millionen' + }, + '100000000': { + 'other': '000 Millionen' + }, + '1000000000': { + 'other': '0 Milliarden' + }, + '10000000000': { + 'other': '00 Milliarden' + }, + '100000000000': { + 'other': '000 Milliarden' + }, + '1000000000000': { + 'other': '0 Billionen' + }, + '10000000000000': { + 'other': '00 Billionen' + }, + '100000000000000': { + 'other': '000 Billionen' + } + } +}; + + +/** + * Compact number formatting symbols for locale ksh_DE. + */ +goog.i18n.CompactNumberFormatSymbols_ksh_DE = + goog.i18n.CompactNumberFormatSymbols_ksh; + + +/** + * Compact number formatting symbols for locale kw. + */ +goog.i18n.CompactNumberFormatSymbols_kw = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale kw_GB. + */ +goog.i18n.CompactNumberFormatSymbols_kw_GB = + goog.i18n.CompactNumberFormatSymbols_kw; + + +/** + * Compact number formatting symbols for locale ky. + */ +goog.i18n.CompactNumberFormatSymbols_ky = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ky_KG. + */ +goog.i18n.CompactNumberFormatSymbols_ky_KG = + goog.i18n.CompactNumberFormatSymbols_ky; + + +/** + * Compact number formatting symbols for locale lag. + */ +goog.i18n.CompactNumberFormatSymbols_lag = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale lag_TZ. + */ +goog.i18n.CompactNumberFormatSymbols_lag_TZ = + goog.i18n.CompactNumberFormatSymbols_lag; + + +/** + * Compact number formatting symbols for locale lg. + */ +goog.i18n.CompactNumberFormatSymbols_lg = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale lg_UG. + */ +goog.i18n.CompactNumberFormatSymbols_lg_UG = + goog.i18n.CompactNumberFormatSymbols_lg; + + +/** + * Compact number formatting symbols for locale ln_AO. + */ +goog.i18n.CompactNumberFormatSymbols_ln_AO = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ln_CF. + */ +goog.i18n.CompactNumberFormatSymbols_ln_CF = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ln_CG. + */ +goog.i18n.CompactNumberFormatSymbols_ln_CG = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale lo. + */ +goog.i18n.CompactNumberFormatSymbols_lo = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u0E9E\u0EB1\u0E99' + }, + '10000': { + 'other': '00\u0E9E\u0EB1\u0E99' + }, + '100000': { + 'other': '000\u0E9E\u0EB1\u0E99' + }, + '1000000': { + 'other': '0\u0EA5\u0EC9\u0EB2\u0E99' + }, + '10000000': { + 'other': '00\u0EA5\u0EC9\u0EB2\u0E99' + }, + '100000000': { + 'other': '000\u0EA5\u0EC9\u0EB2\u0E99' + }, + '1000000000': { + 'other': '0\u0E95\u0EB7\u0EC9' + }, + '10000000000': { + 'other': '00\u0E95\u0EB7\u0EC9' + }, + '100000000000': { + 'other': '000\u0E95\u0EB7\u0EC9' + }, + '1000000000000': { + 'other': '0000\u0E95\u0EB7\u0EC9' + }, + '10000000000000': { + 'other': '00\u0E9E\u0EB1\u0E99\u0E95\u0EB7\u0EC9' + }, + '100000000000000': { + 'other': '000\u0E9E\u0EB1\u0E99\u0E95\u0EB7\u0EC9' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0\u0E9E\u0EB1\u0E99' + }, + '10000': { + 'other': '00\u0E9E\u0EB1\u0E99' + }, + '100000': { + 'other': '000\u0E9E\u0EB1\u0E99' + }, + '1000000': { + 'other': '0\u0EA5\u0EC9\u0EB2\u0E99' + }, + '10000000': { + 'other': '00\u0EA5\u0EC9\u0EB2\u0E99' + }, + '100000000': { + 'other': '000\u0EA5\u0EC9\u0EB2\u0E99' + }, + '1000000000': { + 'other': '0\u0E9E\u0EB1\u0E99\u0EA5\u0EC9\u0EB2\u0E99' + }, + '10000000000': { + 'other': '00\u0E9E\u0EB1\u0E99\u0EA5\u0EC9\u0EB2\u0E99' + }, + '100000000000': { + 'other': '000\u0E9E\u0EB1\u0E99\u0EA5\u0EC9\u0EB2\u0E99' + }, + '1000000000000': { + 'other': '0000\u0E9E\u0EB1\u0E99\u0EA5\u0EC9\u0EB2\u0E99' + }, + '10000000000000': { + 'other': '00\u0EA5\u0EC9\u0EB2\u0E99\u0EA5\u0EC9\u0EB2\u0E99' + }, + '100000000000000': { + 'other': '000\u0EA5\u0EC9\u0EB2\u0E99\u0EA5\u0EC9\u0EB2\u0E99' + } + } +}; + + +/** + * Compact number formatting symbols for locale lo_LA. + */ +goog.i18n.CompactNumberFormatSymbols_lo_LA = + goog.i18n.CompactNumberFormatSymbols_lo; + + +/** + * Compact number formatting symbols for locale lu. + */ +goog.i18n.CompactNumberFormatSymbols_lu = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale lu_CD. + */ +goog.i18n.CompactNumberFormatSymbols_lu_CD = + goog.i18n.CompactNumberFormatSymbols_lu; + + +/** + * Compact number formatting symbols for locale luo. + */ +goog.i18n.CompactNumberFormatSymbols_luo = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale luo_KE. + */ +goog.i18n.CompactNumberFormatSymbols_luo_KE = + goog.i18n.CompactNumberFormatSymbols_luo; + + +/** + * Compact number formatting symbols for locale luy. + */ +goog.i18n.CompactNumberFormatSymbols_luy = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale luy_KE. + */ +goog.i18n.CompactNumberFormatSymbols_luy_KE = + goog.i18n.CompactNumberFormatSymbols_luy; + + +/** + * Compact number formatting symbols for locale mas. + */ +goog.i18n.CompactNumberFormatSymbols_mas = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale mas_KE. + */ +goog.i18n.CompactNumberFormatSymbols_mas_KE = + goog.i18n.CompactNumberFormatSymbols_mas; + + +/** + * Compact number formatting symbols for locale mas_TZ. + */ +goog.i18n.CompactNumberFormatSymbols_mas_TZ = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale mer. + */ +goog.i18n.CompactNumberFormatSymbols_mer = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale mer_KE. + */ +goog.i18n.CompactNumberFormatSymbols_mer_KE = + goog.i18n.CompactNumberFormatSymbols_mer; + + +/** + * Compact number formatting symbols for locale mfe. + */ +goog.i18n.CompactNumberFormatSymbols_mfe = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale mfe_MU. + */ +goog.i18n.CompactNumberFormatSymbols_mfe_MU = + goog.i18n.CompactNumberFormatSymbols_mfe; + + +/** + * Compact number formatting symbols for locale mg. + */ +goog.i18n.CompactNumberFormatSymbols_mg = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale mg_MG. + */ +goog.i18n.CompactNumberFormatSymbols_mg_MG = + goog.i18n.CompactNumberFormatSymbols_mg; + + +/** + * Compact number formatting symbols for locale mgh. + */ +goog.i18n.CompactNumberFormatSymbols_mgh = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale mgh_MZ. + */ +goog.i18n.CompactNumberFormatSymbols_mgh_MZ = + goog.i18n.CompactNumberFormatSymbols_mgh; + + +/** + * Compact number formatting symbols for locale mgo. + */ +goog.i18n.CompactNumberFormatSymbols_mgo = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale mgo_CM. + */ +goog.i18n.CompactNumberFormatSymbols_mgo_CM = + goog.i18n.CompactNumberFormatSymbols_mgo; + + +/** + * Compact number formatting symbols for locale mk. + */ +goog.i18n.CompactNumberFormatSymbols_mk = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0438\u043B\u0458.' + }, + '10000': { + 'other': '00\u00A0\u0438\u043B\u0458.' + }, + '100000': { + 'other': '000\u00A0\u0438\u043B\u0458.' + }, + '1000000': { + 'other': '0\u00A0\u043C\u0438\u043B.' + }, + '10000000': { + 'other': '00\u00A0\u043C\u0438\u043B.' + }, + '100000000': { + 'other': '000\u00A0\u043C\u0438\u043B.' + }, + '1000000000': { + 'other': '0\u00A0\u043C\u0438\u043B\u0458.' + }, + '10000000000': { + 'other': '00\u00A0\u043C\u0438\u043B\u0458.' + }, + '100000000000': { + 'other': '000\u00A0\u043C\u0438\u043B\u0458.' + }, + '1000000000000': { + 'other': '0\u00A0\u0442\u0440\u0438\u043B.' + }, + '10000000000000': { + 'other': '00\u00A0\u0442\u0440\u0438\u043B.' + }, + '100000000000000': { + 'other': '000\u00A0\u0442\u0440\u0438\u043B.' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0438\u043B\u0458\u0430\u0434\u0438' + }, + '10000': { + 'other': '00 \u0438\u043B\u0458\u0430\u0434\u0438' + }, + '100000': { + 'other': '000 \u0438\u043B\u0458\u0430\u0434\u0438' + }, + '1000000': { + 'other': '0 \u043C\u0438\u043B\u0438\u043E\u043D\u0438' + }, + '10000000': { + 'other': '00 \u043C\u0438\u043B\u0438\u043E\u043D\u0438' + }, + '100000000': { + 'other': '000 \u043C\u0438\u043B\u0438\u043E\u043D\u0438' + }, + '1000000000': { + 'other': '0 \u043C\u0438\u043B\u0438\u0458\u0430\u0440\u0434\u0438' + }, + '10000000000': { + 'other': '00 \u043C\u0438\u043B\u0438\u0458\u0430\u0440\u0434\u0438' + }, + '100000000000': { + 'other': '000 \u043C\u0438\u043B\u0438\u0458\u0430\u0440\u0434\u0438' + }, + '1000000000000': { + 'other': '0 \u0442\u0440\u0438\u043B\u0438\u043E\u043D\u0438' + }, + '10000000000000': { + 'other': '00 \u0442\u0440\u0438\u043B\u0438\u043E\u043D\u0438' + }, + '100000000000000': { + 'other': '000 \u0442\u0440\u0438\u043B\u0438\u043E\u043D\u0438' + } + } +}; + + +/** + * Compact number formatting symbols for locale mk_MK. + */ +goog.i18n.CompactNumberFormatSymbols_mk_MK = + goog.i18n.CompactNumberFormatSymbols_mk; + + +/** + * Compact number formatting symbols for locale mn. + */ +goog.i18n.CompactNumberFormatSymbols_mn = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u043C\u044F\u043D\u0433\u0430' + }, + '10000': { + 'other': '00\u00A0\u043C\u044F\u043D\u0433\u0430' + }, + '100000': { + 'other': '000\u00A0\u043C\u044F\u043D\u0433\u0430' + }, + '1000000': { + 'other': '0\u00A0\u0441\u0430\u044F' + }, + '10000000': { + 'other': '00\u00A0\u0441\u0430\u044F' + }, + '100000000': { + 'other': '000\u00A0\u0441\u0430\u044F' + }, + '1000000000': { + 'other': '0\u00A0\u0442\u044D\u0440\u0431\u0443\u043C' + }, + '10000000000': { + 'other': '00\u00A0\u0442\u044D\u0440\u0431\u0443\u043C' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0\u00A0\u0438\u0445\u00A0\u043D\u0430\u044F\u0434' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u043C\u044F\u043D\u0433\u0430' + }, + '10000': { + 'other': '00 \u043C\u044F\u043D\u0433\u0430' + }, + '100000': { + 'other': '000 \u043C\u044F\u043D\u0433\u0430' + }, + '1000000': { + 'other': '0 \u0441\u0430\u044F' + }, + '10000000': { + 'other': '00 \u0441\u0430\u044F' + }, + '100000000': { + 'other': '000 \u0441\u0430\u044F' + }, + '1000000000': { + 'other': '0 \u0442\u044D\u0440\u0431\u0443\u043C' + }, + '10000000000': { + 'other': '00 \u0442\u044D\u0440\u0431\u0443\u043C' + }, + '100000000000': { + 'other': '000 \u0442\u044D\u0440\u0431\u0443\u043C' + }, + '1000000000000': { + 'other': '0 \u0438\u0445 \u043D\u0430\u044F\u0434' + }, + '10000000000000': { + 'other': '00 \u0438\u0445 \u043D\u0430\u044F\u0434' + }, + '100000000000000': { + 'other': '000 \u0438\u0445 \u043D\u0430\u044F\u0434' + } + } +}; + + +/** + * Compact number formatting symbols for locale mn_Cyrl. + */ +goog.i18n.CompactNumberFormatSymbols_mn_Cyrl = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u043C\u044F\u043D\u0433\u0430' + }, + '10000': { + 'other': '00\u00A0\u043C\u044F\u043D\u0433\u0430' + }, + '100000': { + 'other': '000\u00A0\u043C\u044F\u043D\u0433\u0430' + }, + '1000000': { + 'other': '0\u00A0\u0441\u0430\u044F' + }, + '10000000': { + 'other': '00\u00A0\u0441\u0430\u044F' + }, + '100000000': { + 'other': '000\u00A0\u0441\u0430\u044F' + }, + '1000000000': { + 'other': '0\u00A0\u0442\u044D\u0440\u0431\u0443\u043C' + }, + '10000000000': { + 'other': '00\u00A0\u0442\u044D\u0440\u0431\u0443\u043C' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0\u00A0\u0438\u0445\u00A0\u043D\u0430\u044F\u0434' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u043C\u044F\u043D\u0433\u0430' + }, + '10000': { + 'other': '00 \u043C\u044F\u043D\u0433\u0430' + }, + '100000': { + 'other': '000 \u043C\u044F\u043D\u0433\u0430' + }, + '1000000': { + 'other': '0 \u0441\u0430\u044F' + }, + '10000000': { + 'other': '00 \u0441\u0430\u044F' + }, + '100000000': { + 'other': '000 \u0441\u0430\u044F' + }, + '1000000000': { + 'other': '0 \u0442\u044D\u0440\u0431\u0443\u043C' + }, + '10000000000': { + 'other': '00 \u0442\u044D\u0440\u0431\u0443\u043C' + }, + '100000000000': { + 'other': '000 \u0442\u044D\u0440\u0431\u0443\u043C' + }, + '1000000000000': { + 'other': '0 \u0438\u0445 \u043D\u0430\u044F\u0434' + }, + '10000000000000': { + 'other': '00 \u0438\u0445 \u043D\u0430\u044F\u0434' + }, + '100000000000000': { + 'other': '000 \u0438\u0445 \u043D\u0430\u044F\u0434' + } + } +}; + + +/** + * Compact number formatting symbols for locale mn_Cyrl_MN. + */ +goog.i18n.CompactNumberFormatSymbols_mn_Cyrl_MN = + goog.i18n.CompactNumberFormatSymbols_mn; + + +/** + * Compact number formatting symbols for locale ms_Latn. + */ +goog.i18n.CompactNumberFormatSymbols_ms_Latn = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0J' + }, + '10000000': { + 'other': '00J' + }, + '100000000': { + 'other': '000J' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 ribu' + }, + '10000': { + 'other': '00 ribu' + }, + '100000': { + 'other': '000 ribu' + }, + '1000000': { + 'other': '0 juta' + }, + '10000000': { + 'other': '00 juta' + }, + '100000000': { + 'other': '000 juta' + }, + '1000000000': { + 'other': '0 bilion' + }, + '10000000000': { + 'other': '00 bilion' + }, + '100000000000': { + 'other': '000 bilion' + }, + '1000000000000': { + 'other': '0 trilion' + }, + '10000000000000': { + 'other': '00 trilion' + }, + '100000000000000': { + 'other': '000 trilion' + } + } +}; + + +/** + * Compact number formatting symbols for locale ms_Latn_BN. + */ +goog.i18n.CompactNumberFormatSymbols_ms_Latn_BN = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0J' + }, + '10000000': { + 'other': '00J' + }, + '100000000': { + 'other': '000J' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 ribu' + }, + '10000': { + 'other': '00 ribu' + }, + '100000': { + 'other': '000 ribu' + }, + '1000000': { + 'other': '0 juta' + }, + '10000000': { + 'other': '00 juta' + }, + '100000000': { + 'other': '000 juta' + }, + '1000000000': { + 'other': '0 bilion' + }, + '10000000000': { + 'other': '00 bilion' + }, + '100000000000': { + 'other': '000 bilion' + }, + '1000000000000': { + 'other': '0 trilion' + }, + '10000000000000': { + 'other': '00 trilion' + }, + '100000000000000': { + 'other': '000 trilion' + } + } +}; + + +/** + * Compact number formatting symbols for locale ms_Latn_SG. + */ +goog.i18n.CompactNumberFormatSymbols_ms_Latn_SG = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0J' + }, + '10000000': { + 'other': '00J' + }, + '100000000': { + 'other': '000J' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 ribu' + }, + '10000': { + 'other': '00 ribu' + }, + '100000': { + 'other': '000 ribu' + }, + '1000000': { + 'other': '0 juta' + }, + '10000000': { + 'other': '00 juta' + }, + '100000000': { + 'other': '000 juta' + }, + '1000000000': { + 'other': '0 bilion' + }, + '10000000000': { + 'other': '00 bilion' + }, + '100000000000': { + 'other': '000 bilion' + }, + '1000000000000': { + 'other': '0 trilion' + }, + '10000000000000': { + 'other': '00 trilion' + }, + '100000000000000': { + 'other': '000 trilion' + } + } +}; + + +/** + * Compact number formatting symbols for locale mua. + */ +goog.i18n.CompactNumberFormatSymbols_mua = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale mua_CM. + */ +goog.i18n.CompactNumberFormatSymbols_mua_CM = + goog.i18n.CompactNumberFormatSymbols_mua; + + +/** + * Compact number formatting symbols for locale my. + */ +goog.i18n.CompactNumberFormatSymbols_my = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale my_MM. + */ +goog.i18n.CompactNumberFormatSymbols_my_MM = + goog.i18n.CompactNumberFormatSymbols_my; + + +/** + * Compact number formatting symbols for locale naq. + */ +goog.i18n.CompactNumberFormatSymbols_naq = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale naq_NA. + */ +goog.i18n.CompactNumberFormatSymbols_naq_NA = + goog.i18n.CompactNumberFormatSymbols_naq; + + +/** + * Compact number formatting symbols for locale nd. + */ +goog.i18n.CompactNumberFormatSymbols_nd = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale nd_ZW. + */ +goog.i18n.CompactNumberFormatSymbols_nd_ZW = + goog.i18n.CompactNumberFormatSymbols_nd; + + +/** + * Compact number formatting symbols for locale ne. + */ +goog.i18n.CompactNumberFormatSymbols_ne = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ne_IN. + */ +goog.i18n.CompactNumberFormatSymbols_ne_IN = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ne_NP. + */ +goog.i18n.CompactNumberFormatSymbols_ne_NP = + goog.i18n.CompactNumberFormatSymbols_ne; + + +/** + * Compact number formatting symbols for locale nl_AW. + */ +goog.i18n.CompactNumberFormatSymbols_nl_AW = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0\u00A0mln.' + }, + '10000000': { + 'other': '00\u00A0mln.' + }, + '100000000': { + 'other': '000\u00A0mln.' + }, + '1000000000': { + 'other': '0\u00A0mld.' + }, + '10000000000': { + 'other': '00\u00A0mld.' + }, + '100000000000': { + 'other': '000\u00A0mld.' + }, + '1000000000000': { + 'other': '0\u00A0bln.' + }, + '10000000000000': { + 'other': '00\u00A0bln.' + }, + '100000000000000': { + 'other': '000\u00A0bln.' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 duizend' + }, + '10000': { + 'other': '00 duizend' + }, + '100000': { + 'other': '000 duizend' + }, + '1000000': { + 'other': '0 miljoen' + }, + '10000000': { + 'other': '00 miljoen' + }, + '100000000': { + 'other': '000 miljoen' + }, + '1000000000': { + 'other': '0 miljard' + }, + '10000000000': { + 'other': '00 miljard' + }, + '100000000000': { + 'other': '000 miljard' + }, + '1000000000000': { + 'other': '0 biljoen' + }, + '10000000000000': { + 'other': '00 biljoen' + }, + '100000000000000': { + 'other': '000 biljoen' + } + } +}; + + +/** + * Compact number formatting symbols for locale nl_BE. + */ +goog.i18n.CompactNumberFormatSymbols_nl_BE = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0\u00A0mln.' + }, + '10000000': { + 'other': '00\u00A0mln.' + }, + '100000000': { + 'other': '000\u00A0mln.' + }, + '1000000000': { + 'other': '0\u00A0mld.' + }, + '10000000000': { + 'other': '00\u00A0mld.' + }, + '100000000000': { + 'other': '000\u00A0mld.' + }, + '1000000000000': { + 'other': '0\u00A0bln.' + }, + '10000000000000': { + 'other': '00\u00A0bln.' + }, + '100000000000000': { + 'other': '000\u00A0bln.' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 duizend' + }, + '10000': { + 'other': '00 duizend' + }, + '100000': { + 'other': '000 duizend' + }, + '1000000': { + 'other': '0 miljoen' + }, + '10000000': { + 'other': '00 miljoen' + }, + '100000000': { + 'other': '000 miljoen' + }, + '1000000000': { + 'other': '0 miljard' + }, + '10000000000': { + 'other': '00 miljard' + }, + '100000000000': { + 'other': '000 miljard' + }, + '1000000000000': { + 'other': '0 biljoen' + }, + '10000000000000': { + 'other': '00 biljoen' + }, + '100000000000000': { + 'other': '000 biljoen' + } + } +}; + + +/** + * Compact number formatting symbols for locale nl_CW. + */ +goog.i18n.CompactNumberFormatSymbols_nl_CW = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0\u00A0mln.' + }, + '10000000': { + 'other': '00\u00A0mln.' + }, + '100000000': { + 'other': '000\u00A0mln.' + }, + '1000000000': { + 'other': '0\u00A0mld.' + }, + '10000000000': { + 'other': '00\u00A0mld.' + }, + '100000000000': { + 'other': '000\u00A0mld.' + }, + '1000000000000': { + 'other': '0\u00A0bln.' + }, + '10000000000000': { + 'other': '00\u00A0bln.' + }, + '100000000000000': { + 'other': '000\u00A0bln.' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 duizend' + }, + '10000': { + 'other': '00 duizend' + }, + '100000': { + 'other': '000 duizend' + }, + '1000000': { + 'other': '0 miljoen' + }, + '10000000': { + 'other': '00 miljoen' + }, + '100000000': { + 'other': '000 miljoen' + }, + '1000000000': { + 'other': '0 miljard' + }, + '10000000000': { + 'other': '00 miljard' + }, + '100000000000': { + 'other': '000 miljard' + }, + '1000000000000': { + 'other': '0 biljoen' + }, + '10000000000000': { + 'other': '00 biljoen' + }, + '100000000000000': { + 'other': '000 biljoen' + } + } +}; + + +/** + * Compact number formatting symbols for locale nl_SR. + */ +goog.i18n.CompactNumberFormatSymbols_nl_SR = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0\u00A0mln.' + }, + '10000000': { + 'other': '00\u00A0mln.' + }, + '100000000': { + 'other': '000\u00A0mln.' + }, + '1000000000': { + 'other': '0\u00A0mld.' + }, + '10000000000': { + 'other': '00\u00A0mld.' + }, + '100000000000': { + 'other': '000\u00A0mld.' + }, + '1000000000000': { + 'other': '0\u00A0bln.' + }, + '10000000000000': { + 'other': '00\u00A0bln.' + }, + '100000000000000': { + 'other': '000\u00A0bln.' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 duizend' + }, + '10000': { + 'other': '00 duizend' + }, + '100000': { + 'other': '000 duizend' + }, + '1000000': { + 'other': '0 miljoen' + }, + '10000000': { + 'other': '00 miljoen' + }, + '100000000': { + 'other': '000 miljoen' + }, + '1000000000': { + 'other': '0 miljard' + }, + '10000000000': { + 'other': '00 miljard' + }, + '100000000000': { + 'other': '000 miljard' + }, + '1000000000000': { + 'other': '0 biljoen' + }, + '10000000000000': { + 'other': '00 biljoen' + }, + '100000000000000': { + 'other': '000 biljoen' + } + } +}; + + +/** + * Compact number formatting symbols for locale nl_SX. + */ +goog.i18n.CompactNumberFormatSymbols_nl_SX = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0\u00A0mln.' + }, + '10000000': { + 'other': '00\u00A0mln.' + }, + '100000000': { + 'other': '000\u00A0mln.' + }, + '1000000000': { + 'other': '0\u00A0mld.' + }, + '10000000000': { + 'other': '00\u00A0mld.' + }, + '100000000000': { + 'other': '000\u00A0mld.' + }, + '1000000000000': { + 'other': '0\u00A0bln.' + }, + '10000000000000': { + 'other': '00\u00A0bln.' + }, + '100000000000000': { + 'other': '000\u00A0bln.' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 duizend' + }, + '10000': { + 'other': '00 duizend' + }, + '100000': { + 'other': '000 duizend' + }, + '1000000': { + 'other': '0 miljoen' + }, + '10000000': { + 'other': '00 miljoen' + }, + '100000000': { + 'other': '000 miljoen' + }, + '1000000000': { + 'other': '0 miljard' + }, + '10000000000': { + 'other': '00 miljard' + }, + '100000000000': { + 'other': '000 miljard' + }, + '1000000000000': { + 'other': '0 biljoen' + }, + '10000000000000': { + 'other': '00 biljoen' + }, + '100000000000000': { + 'other': '000 biljoen' + } + } +}; + + +/** + * Compact number formatting symbols for locale nmg. + */ +goog.i18n.CompactNumberFormatSymbols_nmg = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale nmg_CM. + */ +goog.i18n.CompactNumberFormatSymbols_nmg_CM = + goog.i18n.CompactNumberFormatSymbols_nmg; + + +/** + * Compact number formatting symbols for locale nn. + */ +goog.i18n.CompactNumberFormatSymbols_nn = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0tn' + }, + '10000': { + 'other': '00\u00A0tn' + }, + '100000': { + 'other': '000\u00A0tn' + }, + '1000000': { + 'other': '0\u00A0mn' + }, + '10000000': { + 'other': '00\u00A0mn' + }, + '100000000': { + 'other': '000\u00A0mn' + }, + '1000000000': { + 'other': '0\u00A0md' + }, + '10000000000': { + 'other': '00\u00A0md' + }, + '100000000000': { + 'other': '000\u00A0md' + }, + '1000000000000': { + 'other': '0\u00A0bn' + }, + '10000000000000': { + 'other': '00\u00A0bn' + }, + '100000000000000': { + 'other': '000\u00A0bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 tusen' + }, + '10000': { + 'other': '00 tusen' + }, + '100000': { + 'other': '000 tusen' + }, + '1000000': { + 'other': '0 millioner' + }, + '10000000': { + 'other': '00 millioner' + }, + '100000000': { + 'other': '000 millioner' + }, + '1000000000': { + 'other': '0 milliarder' + }, + '10000000000': { + 'other': '00 milliarder' + }, + '100000000000': { + 'other': '000 milliarder' + }, + '1000000000000': { + 'other': '0 billioner' + }, + '10000000000000': { + 'other': '00 billioner' + }, + '100000000000000': { + 'other': '000 billioner' + } + } +}; + + +/** + * Compact number formatting symbols for locale nn_NO. + */ +goog.i18n.CompactNumberFormatSymbols_nn_NO = + goog.i18n.CompactNumberFormatSymbols_nn; + + +/** + * Compact number formatting symbols for locale nnh. + */ +goog.i18n.CompactNumberFormatSymbols_nnh = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale nnh_CM. + */ +goog.i18n.CompactNumberFormatSymbols_nnh_CM = + goog.i18n.CompactNumberFormatSymbols_nnh; + + +/** + * Compact number formatting symbols for locale nr. + */ +goog.i18n.CompactNumberFormatSymbols_nr = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale nr_ZA. + */ +goog.i18n.CompactNumberFormatSymbols_nr_ZA = + goog.i18n.CompactNumberFormatSymbols_nr; + + +/** + * Compact number formatting symbols for locale nso. + */ +goog.i18n.CompactNumberFormatSymbols_nso = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale nso_ZA. + */ +goog.i18n.CompactNumberFormatSymbols_nso_ZA = + goog.i18n.CompactNumberFormatSymbols_nso; + + +/** + * Compact number formatting symbols for locale nus. + */ +goog.i18n.CompactNumberFormatSymbols_nus = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale nus_SD. + */ +goog.i18n.CompactNumberFormatSymbols_nus_SD = + goog.i18n.CompactNumberFormatSymbols_nus; + + +/** + * Compact number formatting symbols for locale nyn. + */ +goog.i18n.CompactNumberFormatSymbols_nyn = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale nyn_UG. + */ +goog.i18n.CompactNumberFormatSymbols_nyn_UG = + goog.i18n.CompactNumberFormatSymbols_nyn; + + +/** + * Compact number formatting symbols for locale om. + */ +goog.i18n.CompactNumberFormatSymbols_om = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale om_ET. + */ +goog.i18n.CompactNumberFormatSymbols_om_ET = + goog.i18n.CompactNumberFormatSymbols_om; + + +/** + * Compact number formatting symbols for locale om_KE. + */ +goog.i18n.CompactNumberFormatSymbols_om_KE = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale os. + */ +goog.i18n.CompactNumberFormatSymbols_os = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale os_GE. + */ +goog.i18n.CompactNumberFormatSymbols_os_GE = + goog.i18n.CompactNumberFormatSymbols_os; + + +/** + * Compact number formatting symbols for locale os_RU. + */ +goog.i18n.CompactNumberFormatSymbols_os_RU = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale pa. + */ +goog.i18n.CompactNumberFormatSymbols_pa = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale pa_Arab. + */ +goog.i18n.CompactNumberFormatSymbols_pa_Arab = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale pa_Arab_PK. + */ +goog.i18n.CompactNumberFormatSymbols_pa_Arab_PK = + goog.i18n.CompactNumberFormatSymbols_pa_Arab; + + +/** + * Compact number formatting symbols for locale pa_Guru. + */ +goog.i18n.CompactNumberFormatSymbols_pa_Guru = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale pa_Guru_IN. + */ +goog.i18n.CompactNumberFormatSymbols_pa_Guru_IN = + goog.i18n.CompactNumberFormatSymbols_pa; + + +/** + * Compact number formatting symbols for locale ps. + */ +goog.i18n.CompactNumberFormatSymbols_ps = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ps_AF. + */ +goog.i18n.CompactNumberFormatSymbols_ps_AF = + goog.i18n.CompactNumberFormatSymbols_ps; + + +/** + * Compact number formatting symbols for locale pt_AO. + */ +goog.i18n.CompactNumberFormatSymbols_pt_AO = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0mil' + }, + '10000': { + 'other': '00\u00A0mil' + }, + '100000': { + 'other': '000\u00A0mil' + }, + '1000000': { + 'other': '0\u00A0mi' + }, + '10000000': { + 'other': '00\u00A0mi' + }, + '100000000': { + 'other': '000\u00A0mi' + }, + '1000000000': { + 'other': '0\u00A0bi' + }, + '10000000000': { + 'other': '00\u00A0bi' + }, + '100000000000': { + 'other': '000\u00A0bi' + }, + '1000000000000': { + 'other': '0\u00A0tri' + }, + '10000000000000': { + 'other': '00\u00A0tri' + }, + '100000000000000': { + 'other': '000\u00A0tri' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 milh\u00F5es' + }, + '10000000': { + 'other': '00 milh\u00F5es' + }, + '100000000': { + 'other': '000 milh\u00F5es' + }, + '1000000000': { + 'other': '0 bilh\u00F5es' + }, + '10000000000': { + 'other': '00 bilh\u00F5es' + }, + '100000000000': { + 'other': '000 bilh\u00F5es' + }, + '1000000000000': { + 'other': '0 trilh\u00F5es' + }, + '10000000000000': { + 'other': '00 trilh\u00F5es' + }, + '100000000000000': { + 'other': '000 trilh\u00F5es' + } + } +}; + + +/** + * Compact number formatting symbols for locale pt_CV. + */ +goog.i18n.CompactNumberFormatSymbols_pt_CV = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0mil' + }, + '10000': { + 'other': '00\u00A0mil' + }, + '100000': { + 'other': '000\u00A0mil' + }, + '1000000': { + 'other': '0\u00A0mi' + }, + '10000000': { + 'other': '00\u00A0mi' + }, + '100000000': { + 'other': '000\u00A0mi' + }, + '1000000000': { + 'other': '0\u00A0bi' + }, + '10000000000': { + 'other': '00\u00A0bi' + }, + '100000000000': { + 'other': '000\u00A0bi' + }, + '1000000000000': { + 'other': '0\u00A0tri' + }, + '10000000000000': { + 'other': '00\u00A0tri' + }, + '100000000000000': { + 'other': '000\u00A0tri' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 milh\u00F5es' + }, + '10000000': { + 'other': '00 milh\u00F5es' + }, + '100000000': { + 'other': '000 milh\u00F5es' + }, + '1000000000': { + 'other': '0 bilh\u00F5es' + }, + '10000000000': { + 'other': '00 bilh\u00F5es' + }, + '100000000000': { + 'other': '000 bilh\u00F5es' + }, + '1000000000000': { + 'other': '0 trilh\u00F5es' + }, + '10000000000000': { + 'other': '00 trilh\u00F5es' + }, + '100000000000000': { + 'other': '000 trilh\u00F5es' + } + } +}; + + +/** + * Compact number formatting symbols for locale pt_GW. + */ +goog.i18n.CompactNumberFormatSymbols_pt_GW = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0mil' + }, + '10000': { + 'other': '00\u00A0mil' + }, + '100000': { + 'other': '000\u00A0mil' + }, + '1000000': { + 'other': '0\u00A0mi' + }, + '10000000': { + 'other': '00\u00A0mi' + }, + '100000000': { + 'other': '000\u00A0mi' + }, + '1000000000': { + 'other': '0\u00A0bi' + }, + '10000000000': { + 'other': '00\u00A0bi' + }, + '100000000000': { + 'other': '000\u00A0bi' + }, + '1000000000000': { + 'other': '0\u00A0tri' + }, + '10000000000000': { + 'other': '00\u00A0tri' + }, + '100000000000000': { + 'other': '000\u00A0tri' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 milh\u00F5es' + }, + '10000000': { + 'other': '00 milh\u00F5es' + }, + '100000000': { + 'other': '000 milh\u00F5es' + }, + '1000000000': { + 'other': '0 bilh\u00F5es' + }, + '10000000000': { + 'other': '00 bilh\u00F5es' + }, + '100000000000': { + 'other': '000 bilh\u00F5es' + }, + '1000000000000': { + 'other': '0 trilh\u00F5es' + }, + '10000000000000': { + 'other': '00 trilh\u00F5es' + }, + '100000000000000': { + 'other': '000 trilh\u00F5es' + } + } +}; + + +/** + * Compact number formatting symbols for locale pt_MO. + */ +goog.i18n.CompactNumberFormatSymbols_pt_MO = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0mil' + }, + '10000': { + 'other': '00\u00A0mil' + }, + '100000': { + 'other': '000\u00A0mil' + }, + '1000000': { + 'other': '0\u00A0mi' + }, + '10000000': { + 'other': '00\u00A0mi' + }, + '100000000': { + 'other': '000\u00A0mi' + }, + '1000000000': { + 'other': '0\u00A0bi' + }, + '10000000000': { + 'other': '00\u00A0bi' + }, + '100000000000': { + 'other': '000\u00A0bi' + }, + '1000000000000': { + 'other': '0\u00A0tri' + }, + '10000000000000': { + 'other': '00\u00A0tri' + }, + '100000000000000': { + 'other': '000\u00A0tri' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 milh\u00F5es' + }, + '10000000': { + 'other': '00 milh\u00F5es' + }, + '100000000': { + 'other': '000 milh\u00F5es' + }, + '1000000000': { + 'other': '0 bilh\u00F5es' + }, + '10000000000': { + 'other': '00 bilh\u00F5es' + }, + '100000000000': { + 'other': '000 bilh\u00F5es' + }, + '1000000000000': { + 'other': '0 trilh\u00F5es' + }, + '10000000000000': { + 'other': '00 trilh\u00F5es' + }, + '100000000000000': { + 'other': '000 trilh\u00F5es' + } + } +}; + + +/** + * Compact number formatting symbols for locale pt_MZ. + */ +goog.i18n.CompactNumberFormatSymbols_pt_MZ = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0mil' + }, + '10000': { + 'other': '00\u00A0mil' + }, + '100000': { + 'other': '000\u00A0mil' + }, + '1000000': { + 'other': '0\u00A0mi' + }, + '10000000': { + 'other': '00\u00A0mi' + }, + '100000000': { + 'other': '000\u00A0mi' + }, + '1000000000': { + 'other': '0\u00A0bi' + }, + '10000000000': { + 'other': '00\u00A0bi' + }, + '100000000000': { + 'other': '000\u00A0bi' + }, + '1000000000000': { + 'other': '0\u00A0tri' + }, + '10000000000000': { + 'other': '00\u00A0tri' + }, + '100000000000000': { + 'other': '000\u00A0tri' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 milh\u00F5es' + }, + '10000000': { + 'other': '00 milh\u00F5es' + }, + '100000000': { + 'other': '000 milh\u00F5es' + }, + '1000000000': { + 'other': '0 bilh\u00F5es' + }, + '10000000000': { + 'other': '00 bilh\u00F5es' + }, + '100000000000': { + 'other': '000 bilh\u00F5es' + }, + '1000000000000': { + 'other': '0 trilh\u00F5es' + }, + '10000000000000': { + 'other': '00 trilh\u00F5es' + }, + '100000000000000': { + 'other': '000 trilh\u00F5es' + } + } +}; + + +/** + * Compact number formatting symbols for locale pt_ST. + */ +goog.i18n.CompactNumberFormatSymbols_pt_ST = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0mil' + }, + '10000': { + 'other': '00\u00A0mil' + }, + '100000': { + 'other': '000\u00A0mil' + }, + '1000000': { + 'other': '0\u00A0mi' + }, + '10000000': { + 'other': '00\u00A0mi' + }, + '100000000': { + 'other': '000\u00A0mi' + }, + '1000000000': { + 'other': '0\u00A0bi' + }, + '10000000000': { + 'other': '00\u00A0bi' + }, + '100000000000': { + 'other': '000\u00A0bi' + }, + '1000000000000': { + 'other': '0\u00A0tri' + }, + '10000000000000': { + 'other': '00\u00A0tri' + }, + '100000000000000': { + 'other': '000\u00A0tri' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 milh\u00F5es' + }, + '10000000': { + 'other': '00 milh\u00F5es' + }, + '100000000': { + 'other': '000 milh\u00F5es' + }, + '1000000000': { + 'other': '0 bilh\u00F5es' + }, + '10000000000': { + 'other': '00 bilh\u00F5es' + }, + '100000000000': { + 'other': '000 bilh\u00F5es' + }, + '1000000000000': { + 'other': '0 trilh\u00F5es' + }, + '10000000000000': { + 'other': '00 trilh\u00F5es' + }, + '100000000000000': { + 'other': '000 trilh\u00F5es' + } + } +}; + + +/** + * Compact number formatting symbols for locale pt_TL. + */ +goog.i18n.CompactNumberFormatSymbols_pt_TL = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0mil' + }, + '10000': { + 'other': '00\u00A0mil' + }, + '100000': { + 'other': '000\u00A0mil' + }, + '1000000': { + 'other': '0\u00A0mi' + }, + '10000000': { + 'other': '00\u00A0mi' + }, + '100000000': { + 'other': '000\u00A0mi' + }, + '1000000000': { + 'other': '0\u00A0bi' + }, + '10000000000': { + 'other': '00\u00A0bi' + }, + '100000000000': { + 'other': '000\u00A0bi' + }, + '1000000000000': { + 'other': '0\u00A0tri' + }, + '10000000000000': { + 'other': '00\u00A0tri' + }, + '100000000000000': { + 'other': '000\u00A0tri' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 mil' + }, + '10000': { + 'other': '00 mil' + }, + '100000': { + 'other': '000 mil' + }, + '1000000': { + 'other': '0 milh\u00F5es' + }, + '10000000': { + 'other': '00 milh\u00F5es' + }, + '100000000': { + 'other': '000 milh\u00F5es' + }, + '1000000000': { + 'other': '0 bilh\u00F5es' + }, + '10000000000': { + 'other': '00 bilh\u00F5es' + }, + '100000000000': { + 'other': '000 bilh\u00F5es' + }, + '1000000000000': { + 'other': '0 trilh\u00F5es' + }, + '10000000000000': { + 'other': '00 trilh\u00F5es' + }, + '100000000000000': { + 'other': '000 trilh\u00F5es' + } + } +}; + + +/** + * Compact number formatting symbols for locale rm. + */ +goog.i18n.CompactNumberFormatSymbols_rm = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale rm_CH. + */ +goog.i18n.CompactNumberFormatSymbols_rm_CH = + goog.i18n.CompactNumberFormatSymbols_rm; + + +/** + * Compact number formatting symbols for locale rn. + */ +goog.i18n.CompactNumberFormatSymbols_rn = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale rn_BI. + */ +goog.i18n.CompactNumberFormatSymbols_rn_BI = + goog.i18n.CompactNumberFormatSymbols_rn; + + +/** + * Compact number formatting symbols for locale ro_MD. + */ +goog.i18n.CompactNumberFormatSymbols_ro_MD = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0K' + }, + '10000': { + 'other': '00\u00A0K' + }, + '100000': { + 'other': '000\u00A0K' + }, + '1000000': { + 'other': '0\u00A0mil.' + }, + '10000000': { + 'other': '00\u00A0mil.' + }, + '100000000': { + 'other': '000\u00A0mil.' + }, + '1000000000': { + 'other': '0\u00A0mld.' + }, + '10000000000': { + 'other': '00\u00A0mld.' + }, + '100000000000': { + 'other': '000\u00A0mld.' + }, + '1000000000000': { + 'other': '0\u00A0T' + }, + '10000000000000': { + 'other': '00\u00A0T' + }, + '100000000000000': { + 'other': '000\u00A0T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 de mii' + }, + '10000': { + 'other': '00 de mii' + }, + '100000': { + 'other': '000 de mii' + }, + '1000000': { + 'other': '0 de milioane' + }, + '10000000': { + 'other': '00 de milioane' + }, + '100000000': { + 'other': '000 de milioane' + }, + '1000000000': { + 'other': '0 de miliarde' + }, + '10000000000': { + 'other': '00 de miliarde' + }, + '100000000000': { + 'other': '000 de miliarde' + }, + '1000000000000': { + 'other': '0 de trilioane' + }, + '10000000000000': { + 'other': '00 de trilioane' + }, + '100000000000000': { + 'other': '000 de trilioane' + } + } +}; + + +/** + * Compact number formatting symbols for locale rof. + */ +goog.i18n.CompactNumberFormatSymbols_rof = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale rof_TZ. + */ +goog.i18n.CompactNumberFormatSymbols_rof_TZ = + goog.i18n.CompactNumberFormatSymbols_rof; + + +/** + * Compact number formatting symbols for locale ru_BY. + */ +goog.i18n.CompactNumberFormatSymbols_ru_BY = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0442\u044B\u0441.' + }, + '10000': { + 'other': '00\u00A0\u0442\u044B\u0441.' + }, + '100000': { + 'other': '000\u00A0\u0442\u044B\u0441.' + }, + '1000000': { + 'other': '0\u00A0\u043C\u043B\u043D' + }, + '10000000': { + 'other': '00\u00A0\u043C\u043B\u043D' + }, + '100000000': { + 'other': '000\u00A0\u043C\u043B\u043D' + }, + '1000000000': { + 'other': '0\u00A0\u043C\u043B\u0440\u0434' + }, + '10000000000': { + 'other': '00\u00A0\u043C\u043B\u0440\u0434' + }, + '100000000000': { + 'other': '000\u00A0\u043C\u043B\u0440\u0434' + }, + '1000000000000': { + 'other': '0\u00A0\u0442\u0440\u043B\u043D' + }, + '10000000000000': { + 'other': '00\u00A0\u0442\u0440\u043B\u043D' + }, + '100000000000000': { + 'other': '000\u00A0\u0442\u0440\u043B\u043D' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0442\u044B\u0441\u044F\u0447\u0438' + }, + '10000': { + 'other': '00 \u0442\u044B\u0441\u044F\u0447\u0438' + }, + '100000': { + 'other': '000 \u0442\u044B\u0441\u044F\u0447\u0438' + }, + '1000000': { + 'other': '0 \u043C\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '10000000': { + 'other': '00 \u043C\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '100000000': { + 'other': '000 \u043C\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '1000000000': { + 'other': '0 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434\u0430' + }, + '10000000000': { + 'other': '00 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434\u0430' + }, + '100000000000': { + 'other': '000 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434\u0430' + }, + '1000000000000': { + 'other': '0 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '10000000000000': { + 'other': '00 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '100000000000000': { + 'other': '000 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + } + } +}; + + +/** + * Compact number formatting symbols for locale ru_KG. + */ +goog.i18n.CompactNumberFormatSymbols_ru_KG = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0442\u044B\u0441.' + }, + '10000': { + 'other': '00\u00A0\u0442\u044B\u0441.' + }, + '100000': { + 'other': '000\u00A0\u0442\u044B\u0441.' + }, + '1000000': { + 'other': '0\u00A0\u043C\u043B\u043D' + }, + '10000000': { + 'other': '00\u00A0\u043C\u043B\u043D' + }, + '100000000': { + 'other': '000\u00A0\u043C\u043B\u043D' + }, + '1000000000': { + 'other': '0\u00A0\u043C\u043B\u0440\u0434' + }, + '10000000000': { + 'other': '00\u00A0\u043C\u043B\u0440\u0434' + }, + '100000000000': { + 'other': '000\u00A0\u043C\u043B\u0440\u0434' + }, + '1000000000000': { + 'other': '0\u00A0\u0442\u0440\u043B\u043D' + }, + '10000000000000': { + 'other': '00\u00A0\u0442\u0440\u043B\u043D' + }, + '100000000000000': { + 'other': '000\u00A0\u0442\u0440\u043B\u043D' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0442\u044B\u0441\u044F\u0447\u0438' + }, + '10000': { + 'other': '00 \u0442\u044B\u0441\u044F\u0447\u0438' + }, + '100000': { + 'other': '000 \u0442\u044B\u0441\u044F\u0447\u0438' + }, + '1000000': { + 'other': '0 \u043C\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '10000000': { + 'other': '00 \u043C\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '100000000': { + 'other': '000 \u043C\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '1000000000': { + 'other': '0 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434\u0430' + }, + '10000000000': { + 'other': '00 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434\u0430' + }, + '100000000000': { + 'other': '000 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434\u0430' + }, + '1000000000000': { + 'other': '0 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '10000000000000': { + 'other': '00 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '100000000000000': { + 'other': '000 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + } + } +}; + + +/** + * Compact number formatting symbols for locale ru_KZ. + */ +goog.i18n.CompactNumberFormatSymbols_ru_KZ = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0442\u044B\u0441.' + }, + '10000': { + 'other': '00\u00A0\u0442\u044B\u0441.' + }, + '100000': { + 'other': '000\u00A0\u0442\u044B\u0441.' + }, + '1000000': { + 'other': '0\u00A0\u043C\u043B\u043D' + }, + '10000000': { + 'other': '00\u00A0\u043C\u043B\u043D' + }, + '100000000': { + 'other': '000\u00A0\u043C\u043B\u043D' + }, + '1000000000': { + 'other': '0\u00A0\u043C\u043B\u0440\u0434' + }, + '10000000000': { + 'other': '00\u00A0\u043C\u043B\u0440\u0434' + }, + '100000000000': { + 'other': '000\u00A0\u043C\u043B\u0440\u0434' + }, + '1000000000000': { + 'other': '0\u00A0\u0442\u0440\u043B\u043D' + }, + '10000000000000': { + 'other': '00\u00A0\u0442\u0440\u043B\u043D' + }, + '100000000000000': { + 'other': '000\u00A0\u0442\u0440\u043B\u043D' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0442\u044B\u0441\u044F\u0447\u0438' + }, + '10000': { + 'other': '00 \u0442\u044B\u0441\u044F\u0447\u0438' + }, + '100000': { + 'other': '000 \u0442\u044B\u0441\u044F\u0447\u0438' + }, + '1000000': { + 'other': '0 \u043C\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '10000000': { + 'other': '00 \u043C\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '100000000': { + 'other': '000 \u043C\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '1000000000': { + 'other': '0 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434\u0430' + }, + '10000000000': { + 'other': '00 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434\u0430' + }, + '100000000000': { + 'other': '000 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434\u0430' + }, + '1000000000000': { + 'other': '0 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '10000000000000': { + 'other': '00 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '100000000000000': { + 'other': '000 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + } + } +}; + + +/** + * Compact number formatting symbols for locale ru_MD. + */ +goog.i18n.CompactNumberFormatSymbols_ru_MD = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0442\u044B\u0441.' + }, + '10000': { + 'other': '00\u00A0\u0442\u044B\u0441.' + }, + '100000': { + 'other': '000\u00A0\u0442\u044B\u0441.' + }, + '1000000': { + 'other': '0\u00A0\u043C\u043B\u043D' + }, + '10000000': { + 'other': '00\u00A0\u043C\u043B\u043D' + }, + '100000000': { + 'other': '000\u00A0\u043C\u043B\u043D' + }, + '1000000000': { + 'other': '0\u00A0\u043C\u043B\u0440\u0434' + }, + '10000000000': { + 'other': '00\u00A0\u043C\u043B\u0440\u0434' + }, + '100000000000': { + 'other': '000\u00A0\u043C\u043B\u0440\u0434' + }, + '1000000000000': { + 'other': '0\u00A0\u0442\u0440\u043B\u043D' + }, + '10000000000000': { + 'other': '00\u00A0\u0442\u0440\u043B\u043D' + }, + '100000000000000': { + 'other': '000\u00A0\u0442\u0440\u043B\u043D' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0442\u044B\u0441\u044F\u0447\u0438' + }, + '10000': { + 'other': '00 \u0442\u044B\u0441\u044F\u0447\u0438' + }, + '100000': { + 'other': '000 \u0442\u044B\u0441\u044F\u0447\u0438' + }, + '1000000': { + 'other': '0 \u043C\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '10000000': { + 'other': '00 \u043C\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '100000000': { + 'other': '000 \u043C\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '1000000000': { + 'other': '0 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434\u0430' + }, + '10000000000': { + 'other': '00 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434\u0430' + }, + '100000000000': { + 'other': '000 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434\u0430' + }, + '1000000000000': { + 'other': '0 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '10000000000000': { + 'other': '00 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '100000000000000': { + 'other': '000 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + } + } +}; + + +/** + * Compact number formatting symbols for locale ru_UA. + */ +goog.i18n.CompactNumberFormatSymbols_ru_UA = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u0442\u044B\u0441.' + }, + '10000': { + 'other': '00\u00A0\u0442\u044B\u0441.' + }, + '100000': { + 'other': '000\u00A0\u0442\u044B\u0441.' + }, + '1000000': { + 'other': '0\u00A0\u043C\u043B\u043D' + }, + '10000000': { + 'other': '00\u00A0\u043C\u043B\u043D' + }, + '100000000': { + 'other': '000\u00A0\u043C\u043B\u043D' + }, + '1000000000': { + 'other': '0\u00A0\u043C\u043B\u0440\u0434' + }, + '10000000000': { + 'other': '00\u00A0\u043C\u043B\u0440\u0434' + }, + '100000000000': { + 'other': '000\u00A0\u043C\u043B\u0440\u0434' + }, + '1000000000000': { + 'other': '0\u00A0\u0442\u0440\u043B\u043D' + }, + '10000000000000': { + 'other': '00\u00A0\u0442\u0440\u043B\u043D' + }, + '100000000000000': { + 'other': '000\u00A0\u0442\u0440\u043B\u043D' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0442\u044B\u0441\u044F\u0447\u0438' + }, + '10000': { + 'other': '00 \u0442\u044B\u0441\u044F\u0447\u0438' + }, + '100000': { + 'other': '000 \u0442\u044B\u0441\u044F\u0447\u0438' + }, + '1000000': { + 'other': '0 \u043C\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '10000000': { + 'other': '00 \u043C\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '100000000': { + 'other': '000 \u043C\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '1000000000': { + 'other': '0 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434\u0430' + }, + '10000000000': { + 'other': '00 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434\u0430' + }, + '100000000000': { + 'other': '000 \u043C\u0438\u043B\u043B\u0438\u0430\u0440\u0434\u0430' + }, + '1000000000000': { + 'other': '0 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '10000000000000': { + 'other': '00 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + }, + '100000000000000': { + 'other': '000 \u0442\u0440\u0438\u043B\u043B\u0438\u043E\u043D\u0430' + } + } +}; + + +/** + * Compact number formatting symbols for locale rw. + */ +goog.i18n.CompactNumberFormatSymbols_rw = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale rw_RW. + */ +goog.i18n.CompactNumberFormatSymbols_rw_RW = + goog.i18n.CompactNumberFormatSymbols_rw; + + +/** + * Compact number formatting symbols for locale rwk. + */ +goog.i18n.CompactNumberFormatSymbols_rwk = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale rwk_TZ. + */ +goog.i18n.CompactNumberFormatSymbols_rwk_TZ = + goog.i18n.CompactNumberFormatSymbols_rwk; + + +/** + * Compact number formatting symbols for locale sah. + */ +goog.i18n.CompactNumberFormatSymbols_sah = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale sah_RU. + */ +goog.i18n.CompactNumberFormatSymbols_sah_RU = + goog.i18n.CompactNumberFormatSymbols_sah; + + +/** + * Compact number formatting symbols for locale saq. + */ +goog.i18n.CompactNumberFormatSymbols_saq = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale saq_KE. + */ +goog.i18n.CompactNumberFormatSymbols_saq_KE = + goog.i18n.CompactNumberFormatSymbols_saq; + + +/** + * Compact number formatting symbols for locale sbp. + */ +goog.i18n.CompactNumberFormatSymbols_sbp = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale sbp_TZ. + */ +goog.i18n.CompactNumberFormatSymbols_sbp_TZ = + goog.i18n.CompactNumberFormatSymbols_sbp; + + +/** + * Compact number formatting symbols for locale se. + */ +goog.i18n.CompactNumberFormatSymbols_se = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0dt' + }, + '10000': { + 'other': '00\u00A0dt' + }, + '100000': { + 'other': '000\u00A0dt' + }, + '1000000': { + 'other': '0\u00A0mn' + }, + '10000000': { + 'other': '00\u00A0mn' + }, + '100000000': { + 'other': '000\u00A0mn' + }, + '1000000000': { + 'other': '0\u00A0md' + }, + '10000000000': { + 'other': '00\u00A0md' + }, + '100000000000': { + 'other': '000\u00A0md' + }, + '1000000000000': { + 'other': '0\u00A0bn' + }, + '10000000000000': { + 'other': '00\u00A0bn' + }, + '100000000000000': { + 'other': '000\u00A0bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 duh\u00E1hat' + }, + '10000': { + 'other': '00 duh\u00E1hat' + }, + '100000': { + 'other': '000 duh\u00E1hat' + }, + '1000000': { + 'other': '0 miljonat' + }, + '10000000': { + 'other': '00 miljonat' + }, + '100000000': { + 'other': '000 miljonat' + }, + '1000000000': { + 'other': '0 miljardit' + }, + '10000000000': { + 'other': '00 miljardit' + }, + '100000000000': { + 'other': '000 miljardit' + }, + '1000000000000': { + 'other': '0 biljonat' + }, + '10000000000000': { + 'other': '00 biljonat' + }, + '100000000000000': { + 'other': '000 biljonat' + } + } +}; + + +/** + * Compact number formatting symbols for locale se_FI. + */ +goog.i18n.CompactNumberFormatSymbols_se_FI = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0dt' + }, + '10000': { + 'other': '00\u00A0dt' + }, + '100000': { + 'other': '000\u00A0dt' + }, + '1000000': { + 'other': '0\u00A0mn' + }, + '10000000': { + 'other': '00\u00A0mn' + }, + '100000000': { + 'other': '000\u00A0mn' + }, + '1000000000': { + 'other': '0\u00A0md' + }, + '10000000000': { + 'other': '00\u00A0md' + }, + '100000000000': { + 'other': '000\u00A0md' + }, + '1000000000000': { + 'other': '0\u00A0bn' + }, + '10000000000000': { + 'other': '00\u00A0bn' + }, + '100000000000000': { + 'other': '000\u00A0bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 duh\u00E1hat' + }, + '10000': { + 'other': '00 duh\u00E1hat' + }, + '100000': { + 'other': '000 duh\u00E1hat' + }, + '1000000': { + 'other': '0 miljonat' + }, + '10000000': { + 'other': '00 miljonat' + }, + '100000000': { + 'other': '000 miljonat' + }, + '1000000000': { + 'other': '0 miljardit' + }, + '10000000000': { + 'other': '00 miljardit' + }, + '100000000000': { + 'other': '000 miljardit' + }, + '1000000000000': { + 'other': '0 biljonat' + }, + '10000000000000': { + 'other': '00 biljonat' + }, + '100000000000000': { + 'other': '000 biljonat' + } + } +}; + + +/** + * Compact number formatting symbols for locale se_NO. + */ +goog.i18n.CompactNumberFormatSymbols_se_NO = + goog.i18n.CompactNumberFormatSymbols_se; + + +/** + * Compact number formatting symbols for locale seh. + */ +goog.i18n.CompactNumberFormatSymbols_seh = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale seh_MZ. + */ +goog.i18n.CompactNumberFormatSymbols_seh_MZ = + goog.i18n.CompactNumberFormatSymbols_seh; + + +/** + * Compact number formatting symbols for locale ses. + */ +goog.i18n.CompactNumberFormatSymbols_ses = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ses_ML. + */ +goog.i18n.CompactNumberFormatSymbols_ses_ML = + goog.i18n.CompactNumberFormatSymbols_ses; + + +/** + * Compact number formatting symbols for locale sg. + */ +goog.i18n.CompactNumberFormatSymbols_sg = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale sg_CF. + */ +goog.i18n.CompactNumberFormatSymbols_sg_CF = + goog.i18n.CompactNumberFormatSymbols_sg; + + +/** + * Compact number formatting symbols for locale shi. + */ +goog.i18n.CompactNumberFormatSymbols_shi = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale shi_Latn. + */ +goog.i18n.CompactNumberFormatSymbols_shi_Latn = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale shi_Latn_MA. + */ +goog.i18n.CompactNumberFormatSymbols_shi_Latn_MA = + goog.i18n.CompactNumberFormatSymbols_shi; + + +/** + * Compact number formatting symbols for locale shi_Tfng. + */ +goog.i18n.CompactNumberFormatSymbols_shi_Tfng = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale shi_Tfng_MA. + */ +goog.i18n.CompactNumberFormatSymbols_shi_Tfng_MA = + goog.i18n.CompactNumberFormatSymbols_shi; + + +/** + * Compact number formatting symbols for locale si. + */ +goog.i18n.CompactNumberFormatSymbols_si = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale si_LK. + */ +goog.i18n.CompactNumberFormatSymbols_si_LK = + goog.i18n.CompactNumberFormatSymbols_si; + + +/** + * Compact number formatting symbols for locale sn. + */ +goog.i18n.CompactNumberFormatSymbols_sn = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale sn_ZW. + */ +goog.i18n.CompactNumberFormatSymbols_sn_ZW = + goog.i18n.CompactNumberFormatSymbols_sn; + + +/** + * Compact number formatting symbols for locale so. + */ +goog.i18n.CompactNumberFormatSymbols_so = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale so_DJ. + */ +goog.i18n.CompactNumberFormatSymbols_so_DJ = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale so_ET. + */ +goog.i18n.CompactNumberFormatSymbols_so_ET = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale so_KE. + */ +goog.i18n.CompactNumberFormatSymbols_so_KE = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale so_SO. + */ +goog.i18n.CompactNumberFormatSymbols_so_SO = + goog.i18n.CompactNumberFormatSymbols_so; + + +/** + * Compact number formatting symbols for locale sq_MK. + */ +goog.i18n.CompactNumberFormatSymbols_sq_MK = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale sq_XK. + */ +goog.i18n.CompactNumberFormatSymbols_sq_XK = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale sr_Cyrl. + */ +goog.i18n.CompactNumberFormatSymbols_sr_Cyrl = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '00\u00A0\u0445\u0438\u0459' + }, + '100000': { + 'other': '000\u00A0\u0445\u0438\u0459' + }, + '1000000': { + 'other': '0\u00A0\u043C\u0438\u043B' + }, + '10000000': { + 'other': '00\u00A0\u043C\u0438\u043B' + }, + '100000000': { + 'other': '000\u00A0\u043C\u0438\u043B' + }, + '1000000000': { + 'other': '0\u00A0\u043C\u043B\u0440\u0434' + }, + '10000000000': { + 'other': '00\u00A0\u043C\u043B\u0440\u0434' + }, + '100000000000': { + 'other': '000\u00A0\u043C\u043B\u0440\u0434' + }, + '1000000000000': { + 'other': '0\u00A0\u0431\u0438\u043B' + }, + '10000000000000': { + 'other': '00\u00A0\u0431\u0438\u043B' + }, + '100000000000000': { + 'other': '000\u00A0\u0431\u0438\u043B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0445\u0438\u0459\u0430\u0434\u0430' + }, + '10000': { + 'other': '00 \u0445\u0438\u0459\u0430\u0434\u0430' + }, + '100000': { + 'other': '000 \u0445\u0438\u0459\u0430\u0434\u0430' + }, + '1000000': { + 'other': '0 \u043C\u0438\u043B\u0438\u043E\u043D\u0430' + }, + '10000000': { + 'other': '00 \u043C\u0438\u043B\u0438\u043E\u043D\u0430' + }, + '100000000': { + 'other': '000 \u043C\u0438\u043B\u0438\u043E\u043D\u0430' + }, + '1000000000': { + 'other': '0 \u043C\u0438\u043B\u0438\u0458\u0430\u0440\u0434\u0438' + }, + '10000000000': { + 'other': '00 \u043C\u0438\u043B\u0438\u0458\u0430\u0440\u0434\u0438' + }, + '100000000000': { + 'other': '000 \u043C\u0438\u043B\u0438\u0458\u0430\u0440\u0434\u0438' + }, + '1000000000000': { + 'other': '0 \u0442\u0440\u0438\u043B\u0438\u043E\u043D\u0430' + }, + '10000000000000': { + 'other': '00 \u0442\u0440\u0438\u043B\u0438\u043E\u043D\u0430' + }, + '100000000000000': { + 'other': '000 \u0442\u0440\u0438\u043B\u0438\u043E\u043D\u0430' + } + } +}; + + +/** + * Compact number formatting symbols for locale sr_Cyrl_BA. + */ +goog.i18n.CompactNumberFormatSymbols_sr_Cyrl_BA = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '00\u00A0\u0445\u0438\u0459' + }, + '100000': { + 'other': '000\u00A0\u0445\u0438\u0459' + }, + '1000000': { + 'other': '0\u00A0\u043C\u0438\u043B' + }, + '10000000': { + 'other': '00\u00A0\u043C\u0438\u043B' + }, + '100000000': { + 'other': '000\u00A0\u043C\u0438\u043B' + }, + '1000000000': { + 'other': '0\u00A0\u043C\u043B\u0440\u0434' + }, + '10000000000': { + 'other': '00\u00A0\u043C\u043B\u0440\u0434' + }, + '100000000000': { + 'other': '000\u00A0\u043C\u043B\u0440\u0434' + }, + '1000000000000': { + 'other': '0\u00A0\u0431\u0438\u043B' + }, + '10000000000000': { + 'other': '00\u00A0\u0431\u0438\u043B' + }, + '100000000000000': { + 'other': '000\u00A0\u0431\u0438\u043B' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0445\u0438\u0459\u0430\u0434\u0430' + }, + '10000': { + 'other': '00 \u0445\u0438\u0459\u0430\u0434\u0430' + }, + '100000': { + 'other': '000 \u0445\u0438\u0459\u0430\u0434\u0430' + }, + '1000000': { + 'other': '0 \u043C\u0438\u043B\u0438\u043E\u043D\u0430' + }, + '10000000': { + 'other': '00 \u043C\u0438\u043B\u0438\u043E\u043D\u0430' + }, + '100000000': { + 'other': '000 \u043C\u0438\u043B\u0438\u043E\u043D\u0430' + }, + '1000000000': { + 'other': '0 \u043C\u0438\u043B\u0438\u0458\u0430\u0440\u0434\u0438' + }, + '10000000000': { + 'other': '00 \u043C\u0438\u043B\u0438\u0458\u0430\u0440\u0434\u0438' + }, + '100000000000': { + 'other': '000 \u043C\u0438\u043B\u0438\u0458\u0430\u0440\u0434\u0438' + }, + '1000000000000': { + 'other': '0 \u0442\u0440\u0438\u043B\u0438\u043E\u043D\u0430' + }, + '10000000000000': { + 'other': '00 \u0442\u0440\u0438\u043B\u0438\u043E\u043D\u0430' + }, + '100000000000000': { + 'other': '000 \u0442\u0440\u0438\u043B\u0438\u043E\u043D\u0430' + } + } +}; + + +/** + * Compact number formatting symbols for locale sr_Cyrl_ME. + */ +goog.i18n.CompactNumberFormatSymbols_sr_Cyrl_ME = + goog.i18n.CompactNumberFormatSymbols_sr_Cyrl; + + +/** + * Compact number formatting symbols for locale sr_Cyrl_XK. + */ +goog.i18n.CompactNumberFormatSymbols_sr_Cyrl_XK = + goog.i18n.CompactNumberFormatSymbols_sr_Cyrl; + + +/** + * Compact number formatting symbols for locale sr_Latn. + */ +goog.i18n.CompactNumberFormatSymbols_sr_Latn = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '00\u00A0hilj' + }, + '100000': { + 'other': '000\u00A0hilj' + }, + '1000000': { + 'other': '0\u00A0mil' + }, + '10000000': { + 'other': '00\u00A0mil' + }, + '100000000': { + 'other': '000\u00A0mil' + }, + '1000000000': { + 'other': '0\u00A0mlrd' + }, + '10000000000': { + 'other': '00\u00A0mlrd' + }, + '100000000000': { + 'other': '000\u00A0mlrd' + }, + '1000000000000': { + 'other': '0\u00A0bil' + }, + '10000000000000': { + 'other': '00\u00A0bil' + }, + '100000000000000': { + 'other': '000\u00A0bil' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 hiljada' + }, + '10000': { + 'other': '00 hiljada' + }, + '100000': { + 'other': '000 hiljada' + }, + '1000000': { + 'other': '0 miliona' + }, + '10000000': { + 'other': '00 miliona' + }, + '100000000': { + 'other': '000 miliona' + }, + '1000000000': { + 'other': '0 milijardi' + }, + '10000000000': { + 'other': '00 milijardi' + }, + '100000000000': { + 'other': '000 milijardi' + }, + '1000000000000': { + 'other': '0 triliona' + }, + '10000000000000': { + 'other': '00 triliona' + }, + '100000000000000': { + 'other': '000 triliona' + } + } +}; + + +/** + * Compact number formatting symbols for locale sr_Latn_BA. + */ +goog.i18n.CompactNumberFormatSymbols_sr_Latn_BA = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '00\u00A0hilj' + }, + '100000': { + 'other': '000\u00A0hilj' + }, + '1000000': { + 'other': '0\u00A0mil' + }, + '10000000': { + 'other': '00\u00A0mil' + }, + '100000000': { + 'other': '000\u00A0mil' + }, + '1000000000': { + 'other': '0\u00A0mlrd' + }, + '10000000000': { + 'other': '00\u00A0mlrd' + }, + '100000000000': { + 'other': '000\u00A0mlrd' + }, + '1000000000000': { + 'other': '0\u00A0bil' + }, + '10000000000000': { + 'other': '00\u00A0bil' + }, + '100000000000000': { + 'other': '000\u00A0bil' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 hiljada' + }, + '10000': { + 'other': '00 hiljada' + }, + '100000': { + 'other': '000 hiljada' + }, + '1000000': { + 'other': '0 miliona' + }, + '10000000': { + 'other': '00 miliona' + }, + '100000000': { + 'other': '000 miliona' + }, + '1000000000': { + 'other': '0 milijardi' + }, + '10000000000': { + 'other': '00 milijardi' + }, + '100000000000': { + 'other': '000 milijardi' + }, + '1000000000000': { + 'other': '0 triliona' + }, + '10000000000000': { + 'other': '00 triliona' + }, + '100000000000000': { + 'other': '000 triliona' + } + } +}; + + +/** + * Compact number formatting symbols for locale sr_Latn_ME. + */ +goog.i18n.CompactNumberFormatSymbols_sr_Latn_ME = + goog.i18n.CompactNumberFormatSymbols_sr_Latn; + + +/** + * Compact number formatting symbols for locale sr_Latn_RS. + */ +goog.i18n.CompactNumberFormatSymbols_sr_Latn_RS = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '00\u00A0hilj' + }, + '100000': { + 'other': '000\u00A0hilj' + }, + '1000000': { + 'other': '0\u00A0mil' + }, + '10000000': { + 'other': '00\u00A0mil' + }, + '100000000': { + 'other': '000\u00A0mil' + }, + '1000000000': { + 'other': '0\u00A0mlrd' + }, + '10000000000': { + 'other': '00\u00A0mlrd' + }, + '100000000000': { + 'other': '000\u00A0mlrd' + }, + '1000000000000': { + 'other': '0\u00A0bil' + }, + '10000000000000': { + 'other': '00\u00A0bil' + }, + '100000000000000': { + 'other': '000\u00A0bil' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 hiljada' + }, + '10000': { + 'other': '00 hiljada' + }, + '100000': { + 'other': '000 hiljada' + }, + '1000000': { + 'other': '0 miliona' + }, + '10000000': { + 'other': '00 miliona' + }, + '100000000': { + 'other': '000 miliona' + }, + '1000000000': { + 'other': '0 milijardi' + }, + '10000000000': { + 'other': '00 milijardi' + }, + '100000000000': { + 'other': '000 milijardi' + }, + '1000000000000': { + 'other': '0 triliona' + }, + '10000000000000': { + 'other': '00 triliona' + }, + '100000000000000': { + 'other': '000 triliona' + } + } +}; + + +/** + * Compact number formatting symbols for locale sr_Latn_XK. + */ +goog.i18n.CompactNumberFormatSymbols_sr_Latn_XK = + goog.i18n.CompactNumberFormatSymbols_sr_Latn; + + +/** + * Compact number formatting symbols for locale ss. + */ +goog.i18n.CompactNumberFormatSymbols_ss = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ss_SZ. + */ +goog.i18n.CompactNumberFormatSymbols_ss_SZ = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ss_ZA. + */ +goog.i18n.CompactNumberFormatSymbols_ss_ZA = + goog.i18n.CompactNumberFormatSymbols_ss; + + +/** + * Compact number formatting symbols for locale ssy. + */ +goog.i18n.CompactNumberFormatSymbols_ssy = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ssy_ER. + */ +goog.i18n.CompactNumberFormatSymbols_ssy_ER = + goog.i18n.CompactNumberFormatSymbols_ssy; + + +/** + * Compact number formatting symbols for locale st. + */ +goog.i18n.CompactNumberFormatSymbols_st = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale st_LS. + */ +goog.i18n.CompactNumberFormatSymbols_st_LS = + goog.i18n.CompactNumberFormatSymbols_st; + + +/** + * Compact number formatting symbols for locale st_ZA. + */ +goog.i18n.CompactNumberFormatSymbols_st_ZA = + goog.i18n.CompactNumberFormatSymbols_st; + + +/** + * Compact number formatting symbols for locale sv_AX. + */ +goog.i18n.CompactNumberFormatSymbols_sv_AX = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0tn' + }, + '10000': { + 'other': '00\u00A0tn' + }, + '100000': { + 'other': '000\u00A0tn' + }, + '1000000': { + 'other': '0\u00A0mn' + }, + '10000000': { + 'other': '00\u00A0mn' + }, + '100000000': { + 'other': '000\u00A0mn' + }, + '1000000000': { + 'other': '0\u00A0md' + }, + '10000000000': { + 'other': '00\u00A0md' + }, + '100000000000': { + 'other': '000\u00A0md' + }, + '1000000000000': { + 'other': '0\u00A0bn' + }, + '10000000000000': { + 'other': '00\u00A0bn' + }, + '100000000000000': { + 'other': '000\u00A0bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 tusen' + }, + '10000': { + 'other': '00 tusen' + }, + '100000': { + 'other': '000 tusen' + }, + '1000000': { + 'other': '0 miljoner' + }, + '10000000': { + 'other': '00 miljoner' + }, + '100000000': { + 'other': '000 miljoner' + }, + '1000000000': { + 'other': '0 miljarder' + }, + '10000000000': { + 'other': '00 miljarder' + }, + '100000000000': { + 'other': '000 miljarder' + }, + '1000000000000': { + 'other': '0 biljoner' + }, + '10000000000000': { + 'other': '00 biljoner' + }, + '100000000000000': { + 'other': '000 biljoner' + } + } +}; + + +/** + * Compact number formatting symbols for locale sv_FI. + */ +goog.i18n.CompactNumberFormatSymbols_sv_FI = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0tn' + }, + '10000': { + 'other': '00\u00A0tn' + }, + '100000': { + 'other': '000\u00A0tn' + }, + '1000000': { + 'other': '0\u00A0mn' + }, + '10000000': { + 'other': '00\u00A0mn' + }, + '100000000': { + 'other': '000\u00A0mn' + }, + '1000000000': { + 'other': '0\u00A0md' + }, + '10000000000': { + 'other': '00\u00A0md' + }, + '100000000000': { + 'other': '000\u00A0md' + }, + '1000000000000': { + 'other': '0\u00A0bn' + }, + '10000000000000': { + 'other': '00\u00A0bn' + }, + '100000000000000': { + 'other': '000\u00A0bn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 tusen' + }, + '10000': { + 'other': '00 tusen' + }, + '100000': { + 'other': '000 tusen' + }, + '1000000': { + 'other': '0 miljoner' + }, + '10000000': { + 'other': '00 miljoner' + }, + '100000000': { + 'other': '000 miljoner' + }, + '1000000000': { + 'other': '0 miljarder' + }, + '10000000000': { + 'other': '00 miljarder' + }, + '100000000000': { + 'other': '000 miljarder' + }, + '1000000000000': { + 'other': '0 biljoner' + }, + '10000000000000': { + 'other': '00 biljoner' + }, + '100000000000000': { + 'other': '000 biljoner' + } + } +}; + + +/** + * Compact number formatting symbols for locale sw_KE. + */ +goog.i18n.CompactNumberFormatSymbols_sw_KE = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': 'elfu\u00A00' + }, + '10000': { + 'other': 'elfu\u00A000' + }, + '100000': { + 'other': 'laki0' + }, + '1000000': { + 'other': 'M0' + }, + '10000000': { + 'other': 'M00' + }, + '100000000': { + 'other': 'M000' + }, + '1000000000': { + 'other': 'B0' + }, + '10000000000': { + 'other': 'B00' + }, + '100000000000': { + 'other': 'B000' + }, + '1000000000000': { + 'other': 'T0' + }, + '10000000000000': { + 'other': 'T00' + }, + '100000000000000': { + 'other': 'T000' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': 'Elfu 0' + }, + '10000': { + 'other': 'Elfu 00' + }, + '100000': { + 'other': 'Elfu 000' + }, + '1000000': { + 'other': 'Milioni 0' + }, + '10000000': { + 'other': 'Milioni 00' + }, + '100000000': { + 'other': 'Milioni 000' + }, + '1000000000': { + 'other': 'Bilioni 0' + }, + '10000000000': { + 'other': 'Bilioni 00' + }, + '100000000000': { + 'other': 'Bilioni 000' + }, + '1000000000000': { + 'other': 'Trilioni 0' + }, + '10000000000000': { + 'other': 'Trilioni 00' + }, + '100000000000000': { + 'other': 'Trilioni 000' + } + } +}; + + +/** + * Compact number formatting symbols for locale sw_UG. + */ +goog.i18n.CompactNumberFormatSymbols_sw_UG = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': 'elfu\u00A00' + }, + '10000': { + 'other': 'elfu\u00A000' + }, + '100000': { + 'other': 'laki0' + }, + '1000000': { + 'other': 'M0' + }, + '10000000': { + 'other': 'M00' + }, + '100000000': { + 'other': 'M000' + }, + '1000000000': { + 'other': 'B0' + }, + '10000000000': { + 'other': 'B00' + }, + '100000000000': { + 'other': 'B000' + }, + '1000000000000': { + 'other': 'T0' + }, + '10000000000000': { + 'other': 'T00' + }, + '100000000000000': { + 'other': 'T000' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': 'Elfu 0' + }, + '10000': { + 'other': 'Elfu 00' + }, + '100000': { + 'other': 'Elfu 000' + }, + '1000000': { + 'other': 'Milioni 0' + }, + '10000000': { + 'other': 'Milioni 00' + }, + '100000000': { + 'other': 'Milioni 000' + }, + '1000000000': { + 'other': 'Bilioni 0' + }, + '10000000000': { + 'other': 'Bilioni 00' + }, + '100000000000': { + 'other': 'Bilioni 000' + }, + '1000000000000': { + 'other': 'Trilioni 0' + }, + '10000000000000': { + 'other': 'Trilioni 00' + }, + '100000000000000': { + 'other': 'Trilioni 000' + } + } +}; + + +/** + * Compact number formatting symbols for locale swc. + */ +goog.i18n.CompactNumberFormatSymbols_swc = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale swc_CD. + */ +goog.i18n.CompactNumberFormatSymbols_swc_CD = + goog.i18n.CompactNumberFormatSymbols_swc; + + +/** + * Compact number formatting symbols for locale ta_LK. + */ +goog.i18n.CompactNumberFormatSymbols_ta_LK = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0B86\u0BAF\u0BBF\u0BB0\u0BAE\u0BCD' + }, + '10000': { + 'other': '00 \u0B86\u0BAF\u0BBF\u0BB0\u0BAE\u0BCD' + }, + '100000': { + 'other': '000 \u0B86\u0BAF\u0BBF\u0BB0\u0BAE\u0BCD' + }, + '1000000': { + 'other': '0 \u0BAE\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '10000000': { + 'other': '00 \u0BAE\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '100000000': { + 'other': '000 \u0BAE\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '1000000000': { + 'other': '0 \u0BAA\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '10000000000': { + 'other': '00 \u0BAA\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '100000000000': { + 'other': '000 \u0BAA\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '1000000000000': { + 'other': '0 \u0B9F\u0BBF\u0BB0\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '10000000000000': { + 'other': '00 \u0B9F\u0BBF\u0BB0\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '100000000000000': { + 'other': '000 \u0B9F\u0BBF\u0BB0\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + } + } +}; + + +/** + * Compact number formatting symbols for locale ta_MY. + */ +goog.i18n.CompactNumberFormatSymbols_ta_MY = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0B86\u0BAF\u0BBF\u0BB0\u0BAE\u0BCD' + }, + '10000': { + 'other': '00 \u0B86\u0BAF\u0BBF\u0BB0\u0BAE\u0BCD' + }, + '100000': { + 'other': '000 \u0B86\u0BAF\u0BBF\u0BB0\u0BAE\u0BCD' + }, + '1000000': { + 'other': '0 \u0BAE\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '10000000': { + 'other': '00 \u0BAE\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '100000000': { + 'other': '000 \u0BAE\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '1000000000': { + 'other': '0 \u0BAA\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '10000000000': { + 'other': '00 \u0BAA\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '100000000000': { + 'other': '000 \u0BAA\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '1000000000000': { + 'other': '0 \u0B9F\u0BBF\u0BB0\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '10000000000000': { + 'other': '00 \u0B9F\u0BBF\u0BB0\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '100000000000000': { + 'other': '000 \u0B9F\u0BBF\u0BB0\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + } + } +}; + + +/** + * Compact number formatting symbols for locale ta_SG. + */ +goog.i18n.CompactNumberFormatSymbols_ta_SG = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0B' + }, + '10000000000': { + 'other': '00B' + }, + '100000000000': { + 'other': '000B' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 \u0B86\u0BAF\u0BBF\u0BB0\u0BAE\u0BCD' + }, + '10000': { + 'other': '00 \u0B86\u0BAF\u0BBF\u0BB0\u0BAE\u0BCD' + }, + '100000': { + 'other': '000 \u0B86\u0BAF\u0BBF\u0BB0\u0BAE\u0BCD' + }, + '1000000': { + 'other': '0 \u0BAE\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '10000000': { + 'other': '00 \u0BAE\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '100000000': { + 'other': '000 \u0BAE\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '1000000000': { + 'other': '0 \u0BAA\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '10000000000': { + 'other': '00 \u0BAA\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '100000000000': { + 'other': '000 \u0BAA\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '1000000000000': { + 'other': '0 \u0B9F\u0BBF\u0BB0\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '10000000000000': { + 'other': '00 \u0B9F\u0BBF\u0BB0\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + }, + '100000000000000': { + 'other': '000 \u0B9F\u0BBF\u0BB0\u0BBF\u0BB2\u0BCD\u0BB2\u0BBF\u0BAF\u0BA9\u0BCD' + } + } +}; + + +/** + * Compact number formatting symbols for locale teo. + */ +goog.i18n.CompactNumberFormatSymbols_teo = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale teo_KE. + */ +goog.i18n.CompactNumberFormatSymbols_teo_KE = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale teo_UG. + */ +goog.i18n.CompactNumberFormatSymbols_teo_UG = + goog.i18n.CompactNumberFormatSymbols_teo; + + +/** + * Compact number formatting symbols for locale tg. + */ +goog.i18n.CompactNumberFormatSymbols_tg = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale tg_Cyrl. + */ +goog.i18n.CompactNumberFormatSymbols_tg_Cyrl = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale tg_Cyrl_TJ. + */ +goog.i18n.CompactNumberFormatSymbols_tg_Cyrl_TJ = + goog.i18n.CompactNumberFormatSymbols_tg; + + +/** + * Compact number formatting symbols for locale ti. + */ +goog.i18n.CompactNumberFormatSymbols_ti = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ti_ER. + */ +goog.i18n.CompactNumberFormatSymbols_ti_ER = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ti_ET. + */ +goog.i18n.CompactNumberFormatSymbols_ti_ET = + goog.i18n.CompactNumberFormatSymbols_ti; + + +/** + * Compact number formatting symbols for locale tig. + */ +goog.i18n.CompactNumberFormatSymbols_tig = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale tig_ER. + */ +goog.i18n.CompactNumberFormatSymbols_tig_ER = + goog.i18n.CompactNumberFormatSymbols_tig; + + +/** + * Compact number formatting symbols for locale tn. + */ +goog.i18n.CompactNumberFormatSymbols_tn = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale tn_BW. + */ +goog.i18n.CompactNumberFormatSymbols_tn_BW = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale tn_ZA. + */ +goog.i18n.CompactNumberFormatSymbols_tn_ZA = + goog.i18n.CompactNumberFormatSymbols_tn; + + +/** + * Compact number formatting symbols for locale to. + */ +goog.i18n.CompactNumberFormatSymbols_to = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale to_TO. + */ +goog.i18n.CompactNumberFormatSymbols_to_TO = + goog.i18n.CompactNumberFormatSymbols_to; + + +/** + * Compact number formatting symbols for locale tr_CY. + */ +goog.i18n.CompactNumberFormatSymbols_tr_CY = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '00\u00A0B' + }, + '100000': { + 'other': '000\u00A0B' + }, + '1000000': { + 'other': '0\u00A0Mn' + }, + '10000000': { + 'other': '00\u00A0Mn' + }, + '100000000': { + 'other': '000\u00A0Mn' + }, + '1000000000': { + 'other': '0\u00A0Mr' + }, + '10000000000': { + 'other': '00\u00A0Mr' + }, + '100000000000': { + 'other': '000\u00A0Mr' + }, + '1000000000000': { + 'other': '0\u00A0Tn' + }, + '10000000000000': { + 'other': '00\u00A0Tn' + }, + '100000000000000': { + 'other': '000\u00A0Tn' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0 bin' + }, + '10000': { + 'other': '00 bin' + }, + '100000': { + 'other': '000 bin' + }, + '1000000': { + 'other': '0 milyon' + }, + '10000000': { + 'other': '00 milyon' + }, + '100000000': { + 'other': '000 milyon' + }, + '1000000000': { + 'other': '0 milyar' + }, + '10000000000': { + 'other': '00 milyar' + }, + '100000000000': { + 'other': '000 milyar' + }, + '1000000000000': { + 'other': '0 trilyon' + }, + '10000000000000': { + 'other': '00 trilyon' + }, + '100000000000000': { + 'other': '000 trilyon' + } + } +}; + + +/** + * Compact number formatting symbols for locale ts. + */ +goog.i18n.CompactNumberFormatSymbols_ts = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ts_ZA. + */ +goog.i18n.CompactNumberFormatSymbols_ts_ZA = + goog.i18n.CompactNumberFormatSymbols_ts; + + +/** + * Compact number formatting symbols for locale twq. + */ +goog.i18n.CompactNumberFormatSymbols_twq = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale twq_NE. + */ +goog.i18n.CompactNumberFormatSymbols_twq_NE = + goog.i18n.CompactNumberFormatSymbols_twq; + + +/** + * Compact number formatting symbols for locale tzm. + */ +goog.i18n.CompactNumberFormatSymbols_tzm = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale tzm_Latn. + */ +goog.i18n.CompactNumberFormatSymbols_tzm_Latn = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale tzm_Latn_MA. + */ +goog.i18n.CompactNumberFormatSymbols_tzm_Latn_MA = + goog.i18n.CompactNumberFormatSymbols_tzm; + + +/** + * Compact number formatting symbols for locale ur_IN. + */ +goog.i18n.CompactNumberFormatSymbols_ur_IN = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0\u00A0\u06C1\u0632\u0627\u0631' + }, + '10000': { + 'other': '00\u00A0\u06C1\u0632\u0627\u0631' + }, + '100000': { + 'other': '0\u00A0\u0644\u0627\u06A9\u06BE' + }, + '1000000': { + 'other': '00\u00A0\u0644\u0627\u06A9\u06BE' + }, + '10000000': { + 'other': '0\u00A0\u06A9\u0631\u0648\u0691' + }, + '100000000': { + 'other': '00\u00A0\u06A9\u0631\u0648\u0691' + }, + '1000000000': { + 'other': '0\u00A0\u0627\u0631\u0628' + }, + '10000000000': { + 'other': '00\u00A0\u0627\u0631\u0628' + }, + '100000000000': { + 'other': '0\u00A0\u06A9\u06BE\u0631\u0628' + }, + '1000000000000': { + 'other': '00\u00A0\u06A9\u06BE\u0631\u0628' + }, + '10000000000000': { + 'other': '000\u00A0\u06A9\u06BE\u0631\u0628' + }, + '100000000000000': { + 'other': '0000\u00A0\u06A9\u06BE\u0631\u0628' + } + } +}; + + +/** + * Compact number formatting symbols for locale uz. + */ +goog.i18n.CompactNumberFormatSymbols_uz = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale uz_Arab. + */ +goog.i18n.CompactNumberFormatSymbols_uz_Arab = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale uz_Arab_AF. + */ +goog.i18n.CompactNumberFormatSymbols_uz_Arab_AF = + goog.i18n.CompactNumberFormatSymbols_uz_Arab; + + +/** + * Compact number formatting symbols for locale uz_Cyrl. + */ +goog.i18n.CompactNumberFormatSymbols_uz_Cyrl = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale uz_Cyrl_UZ. + */ +goog.i18n.CompactNumberFormatSymbols_uz_Cyrl_UZ = + goog.i18n.CompactNumberFormatSymbols_uz; + + +/** + * Compact number formatting symbols for locale uz_Latn. + */ +goog.i18n.CompactNumberFormatSymbols_uz_Latn = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale uz_Latn_UZ. + */ +goog.i18n.CompactNumberFormatSymbols_uz_Latn_UZ = + goog.i18n.CompactNumberFormatSymbols_uz; + + +/** + * Compact number formatting symbols for locale vai. + */ +goog.i18n.CompactNumberFormatSymbols_vai = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale vai_Latn. + */ +goog.i18n.CompactNumberFormatSymbols_vai_Latn = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale vai_Latn_LR. + */ +goog.i18n.CompactNumberFormatSymbols_vai_Latn_LR = + goog.i18n.CompactNumberFormatSymbols_vai; + + +/** + * Compact number formatting symbols for locale vai_Vaii. + */ +goog.i18n.CompactNumberFormatSymbols_vai_Vaii = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale vai_Vaii_LR. + */ +goog.i18n.CompactNumberFormatSymbols_vai_Vaii_LR = + goog.i18n.CompactNumberFormatSymbols_vai; + + +/** + * Compact number formatting symbols for locale ve. + */ +goog.i18n.CompactNumberFormatSymbols_ve = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale ve_ZA. + */ +goog.i18n.CompactNumberFormatSymbols_ve_ZA = + goog.i18n.CompactNumberFormatSymbols_ve; + + +/** + * Compact number formatting symbols for locale vo. + */ +goog.i18n.CompactNumberFormatSymbols_vo = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale vun. + */ +goog.i18n.CompactNumberFormatSymbols_vun = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale vun_TZ. + */ +goog.i18n.CompactNumberFormatSymbols_vun_TZ = + goog.i18n.CompactNumberFormatSymbols_vun; + + +/** + * Compact number formatting symbols for locale wae. + */ +goog.i18n.CompactNumberFormatSymbols_wae = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale wae_CH. + */ +goog.i18n.CompactNumberFormatSymbols_wae_CH = + goog.i18n.CompactNumberFormatSymbols_wae; + + +/** + * Compact number formatting symbols for locale wal. + */ +goog.i18n.CompactNumberFormatSymbols_wal = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale wal_ET. + */ +goog.i18n.CompactNumberFormatSymbols_wal_ET = + goog.i18n.CompactNumberFormatSymbols_wal; + + +/** + * Compact number formatting symbols for locale xh. + */ +goog.i18n.CompactNumberFormatSymbols_xh = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale xh_ZA. + */ +goog.i18n.CompactNumberFormatSymbols_xh_ZA = + goog.i18n.CompactNumberFormatSymbols_xh; + + +/** + * Compact number formatting symbols for locale xog. + */ +goog.i18n.CompactNumberFormatSymbols_xog = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale xog_UG. + */ +goog.i18n.CompactNumberFormatSymbols_xog_UG = + goog.i18n.CompactNumberFormatSymbols_xog; + + +/** + * Compact number formatting symbols for locale yav. + */ +goog.i18n.CompactNumberFormatSymbols_yav = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale yav_CM. + */ +goog.i18n.CompactNumberFormatSymbols_yav_CM = + goog.i18n.CompactNumberFormatSymbols_yav; + + +/** + * Compact number formatting symbols for locale yo. + */ +goog.i18n.CompactNumberFormatSymbols_yo = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00T' + }, + '100000000000000': { + 'other': '000T' + } + } +}; + + +/** + * Compact number formatting symbols for locale yo_NG. + */ +goog.i18n.CompactNumberFormatSymbols_yo_NG = + goog.i18n.CompactNumberFormatSymbols_yo; + + +/** + * Compact number formatting symbols for locale zh_Hans. + */ +goog.i18n.CompactNumberFormatSymbols_zh_Hans = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0\u4E07' + }, + '100000': { + 'other': '00\u4E07' + }, + '1000000': { + 'other': '000\u4E07' + }, + '10000000': { + 'other': '0000\u4E07' + }, + '100000000': { + 'other': '0\u4EBF' + }, + '1000000000': { + 'other': '00\u4EBF' + }, + '10000000000': { + 'other': '000\u4EBF' + }, + '100000000000': { + 'other': '0000\u4EBF' + }, + '1000000000000': { + 'other': '0\u4E07\u4EBF' + }, + '10000000000000': { + 'other': '00\u4E07\u4EBF' + }, + '100000000000000': { + 'other': '000\u4E07\u4EBF' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0\u4E07' + }, + '100000': { + 'other': '00\u4E07' + }, + '1000000': { + 'other': '000\u4E07' + }, + '10000000': { + 'other': '0000\u4E07' + }, + '100000000': { + 'other': '0\u4EBF' + }, + '1000000000': { + 'other': '00\u4EBF' + }, + '10000000000': { + 'other': '000\u4EBF' + }, + '100000000000': { + 'other': '0000\u4EBF' + }, + '1000000000000': { + 'other': '0\u4E07\u4EBF' + }, + '10000000000000': { + 'other': '00\u4E07\u4EBF' + }, + '100000000000000': { + 'other': '000\u4E07\u4EBF' + } + } +}; + + +/** + * Compact number formatting symbols for locale zh_Hans_HK. + */ +goog.i18n.CompactNumberFormatSymbols_zh_Hans_HK = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0\u4E07' + }, + '100000': { + 'other': '00\u4E07' + }, + '1000000': { + 'other': '000\u4E07' + }, + '10000000': { + 'other': '0000\u4E07' + }, + '100000000': { + 'other': '0\u4EBF' + }, + '1000000000': { + 'other': '00\u4EBF' + }, + '10000000000': { + 'other': '000\u4EBF' + }, + '100000000000': { + 'other': '0000\u4EBF' + }, + '1000000000000': { + 'other': '0\u4E07\u4EBF' + }, + '10000000000000': { + 'other': '00\u4E07\u4EBF' + }, + '100000000000000': { + 'other': '000\u4E07\u4EBF' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0\u4E07' + }, + '100000': { + 'other': '00\u4E07' + }, + '1000000': { + 'other': '000\u4E07' + }, + '10000000': { + 'other': '0000\u4E07' + }, + '100000000': { + 'other': '0\u4EBF' + }, + '1000000000': { + 'other': '00\u4EBF' + }, + '10000000000': { + 'other': '000\u4EBF' + }, + '100000000000': { + 'other': '0000\u4EBF' + }, + '1000000000000': { + 'other': '0\u4E07\u4EBF' + }, + '10000000000000': { + 'other': '00\u4E07\u4EBF' + }, + '100000000000000': { + 'other': '000\u4E07\u4EBF' + } + } +}; + + +/** + * Compact number formatting symbols for locale zh_Hans_MO. + */ +goog.i18n.CompactNumberFormatSymbols_zh_Hans_MO = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0\u4E07' + }, + '100000': { + 'other': '00\u4E07' + }, + '1000000': { + 'other': '000\u4E07' + }, + '10000000': { + 'other': '0000\u4E07' + }, + '100000000': { + 'other': '0\u4EBF' + }, + '1000000000': { + 'other': '00\u4EBF' + }, + '10000000000': { + 'other': '000\u4EBF' + }, + '100000000000': { + 'other': '0000\u4EBF' + }, + '1000000000000': { + 'other': '0\u4E07\u4EBF' + }, + '10000000000000': { + 'other': '00\u4E07\u4EBF' + }, + '100000000000000': { + 'other': '000\u4E07\u4EBF' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0\u4E07' + }, + '100000': { + 'other': '00\u4E07' + }, + '1000000': { + 'other': '000\u4E07' + }, + '10000000': { + 'other': '0000\u4E07' + }, + '100000000': { + 'other': '0\u4EBF' + }, + '1000000000': { + 'other': '00\u4EBF' + }, + '10000000000': { + 'other': '000\u4EBF' + }, + '100000000000': { + 'other': '0000\u4EBF' + }, + '1000000000000': { + 'other': '0\u4E07\u4EBF' + }, + '10000000000000': { + 'other': '00\u4E07\u4EBF' + }, + '100000000000000': { + 'other': '000\u4E07\u4EBF' + } + } +}; + + +/** + * Compact number formatting symbols for locale zh_Hans_SG. + */ +goog.i18n.CompactNumberFormatSymbols_zh_Hans_SG = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0\u4E07' + }, + '100000': { + 'other': '00\u4E07' + }, + '1000000': { + 'other': '000\u4E07' + }, + '10000000': { + 'other': '0000\u4E07' + }, + '100000000': { + 'other': '0\u4EBF' + }, + '1000000000': { + 'other': '00\u4EBF' + }, + '10000000000': { + 'other': '000\u4EBF' + }, + '100000000000': { + 'other': '0000\u4EBF' + }, + '1000000000000': { + 'other': '0\u4E07\u4EBF' + }, + '10000000000000': { + 'other': '00\u4E07\u4EBF' + }, + '100000000000000': { + 'other': '000\u4E07\u4EBF' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0\u4E07' + }, + '100000': { + 'other': '00\u4E07' + }, + '1000000': { + 'other': '000\u4E07' + }, + '10000000': { + 'other': '0000\u4E07' + }, + '100000000': { + 'other': '0\u4EBF' + }, + '1000000000': { + 'other': '00\u4EBF' + }, + '10000000000': { + 'other': '000\u4EBF' + }, + '100000000000': { + 'other': '0000\u4EBF' + }, + '1000000000000': { + 'other': '0\u4E07\u4EBF' + }, + '10000000000000': { + 'other': '00\u4E07\u4EBF' + }, + '100000000000000': { + 'other': '000\u4E07\u4EBF' + } + } +}; + + +/** + * Compact number formatting symbols for locale zh_Hant. + */ +goog.i18n.CompactNumberFormatSymbols_zh_Hant = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00\u5146' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0\u842C' + }, + '100000': { + 'other': '00\u842C' + }, + '1000000': { + 'other': '000\u842C' + }, + '10000000': { + 'other': '0000\u842C' + }, + '100000000': { + 'other': '0\u5104' + }, + '1000000000': { + 'other': '00\u5104' + }, + '10000000000': { + 'other': '000\u5104' + }, + '100000000000': { + 'other': '0000\u5104' + }, + '1000000000000': { + 'other': '0\u5146' + }, + '10000000000000': { + 'other': '00\u5146' + }, + '100000000000000': { + 'other': '000\u5146' + } + } +}; + + +/** + * Compact number formatting symbols for locale zh_Hant_HK. + */ +goog.i18n.CompactNumberFormatSymbols_zh_Hant_HK = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00\u5146' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0\u842C' + }, + '100000': { + 'other': '00\u842C' + }, + '1000000': { + 'other': '000\u842C' + }, + '10000000': { + 'other': '0000\u842C' + }, + '100000000': { + 'other': '0\u5104' + }, + '1000000000': { + 'other': '00\u5104' + }, + '10000000000': { + 'other': '000\u5104' + }, + '100000000000': { + 'other': '0000\u5104' + }, + '1000000000000': { + 'other': '0\u5146' + }, + '10000000000000': { + 'other': '00\u5146' + }, + '100000000000000': { + 'other': '000\u5146' + } + } +}; + + +/** + * Compact number formatting symbols for locale zh_Hant_MO. + */ +goog.i18n.CompactNumberFormatSymbols_zh_Hant_MO = { + COMPACT_DECIMAL_SHORT_PATTERN: { + '1000': { + 'other': '0K' + }, + '10000': { + 'other': '00K' + }, + '100000': { + 'other': '000K' + }, + '1000000': { + 'other': '0M' + }, + '10000000': { + 'other': '00M' + }, + '100000000': { + 'other': '000M' + }, + '1000000000': { + 'other': '0G' + }, + '10000000000': { + 'other': '00G' + }, + '100000000000': { + 'other': '000G' + }, + '1000000000000': { + 'other': '0T' + }, + '10000000000000': { + 'other': '00\u5146' + }, + '100000000000000': { + 'other': '000T' + } + }, + COMPACT_DECIMAL_LONG_PATTERN: { + '1000': { + 'other': '0' + }, + '10000': { + 'other': '0\u842C' + }, + '100000': { + 'other': '00\u842C' + }, + '1000000': { + 'other': '000\u842C' + }, + '10000000': { + 'other': '0000\u842C' + }, + '100000000': { + 'other': '0\u5104' + }, + '1000000000': { + 'other': '00\u5104' + }, + '10000000000': { + 'other': '000\u5104' + }, + '100000000000': { + 'other': '0000\u5104' + }, + '1000000000000': { + 'other': '0\u5146' + }, + '10000000000000': { + 'other': '00\u5146' + }, + '100000000000000': { + 'other': '000\u5146' + } + } +}; + + +/** + * Compact number formatting symbols for locale zh_Hant_TW. + */ +goog.i18n.CompactNumberFormatSymbols_zh_Hant_TW = + goog.i18n.CompactNumberFormatSymbols_zh_Hant; + + +/** + * Selected compact number formatting symbols by locale. + */ +goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en; + +if (goog.LOCALE == 'aa') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_aa; +} + +if (goog.LOCALE == 'aa_DJ' || goog.LOCALE == 'aa-DJ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_aa_DJ; +} + +if (goog.LOCALE == 'aa_ER' || goog.LOCALE == 'aa-ER') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_aa_ER; +} + +if (goog.LOCALE == 'aa_ET' || goog.LOCALE == 'aa-ET') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_aa; +} + +if (goog.LOCALE == 'af_NA' || goog.LOCALE == 'af-NA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_af_NA; +} + +if (goog.LOCALE == 'agq') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_agq; +} + +if (goog.LOCALE == 'agq_CM' || goog.LOCALE == 'agq-CM') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_agq; +} + +if (goog.LOCALE == 'ak') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ak; +} + +if (goog.LOCALE == 'ak_GH' || goog.LOCALE == 'ak-GH') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ak; +} + +if (goog.LOCALE == 'ar_AE' || goog.LOCALE == 'ar-AE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ar_AE; +} + +if (goog.LOCALE == 'ar_BH' || goog.LOCALE == 'ar-BH') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ar_BH; +} + +if (goog.LOCALE == 'ar_DJ' || goog.LOCALE == 'ar-DJ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ar_DJ; +} + +if (goog.LOCALE == 'ar_DZ' || goog.LOCALE == 'ar-DZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ar_DZ; +} + +if (goog.LOCALE == 'ar_EH' || goog.LOCALE == 'ar-EH') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ar_EH; +} + +if (goog.LOCALE == 'ar_ER' || goog.LOCALE == 'ar-ER') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ar_ER; +} + +if (goog.LOCALE == 'ar_IL' || goog.LOCALE == 'ar-IL') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ar_IL; +} + +if (goog.LOCALE == 'ar_IQ' || goog.LOCALE == 'ar-IQ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ar_IQ; +} + +if (goog.LOCALE == 'ar_JO' || goog.LOCALE == 'ar-JO') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ar_JO; +} + +if (goog.LOCALE == 'ar_KM' || goog.LOCALE == 'ar-KM') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ar_KM; +} + +if (goog.LOCALE == 'ar_KW' || goog.LOCALE == 'ar-KW') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ar_KW; +} + +if (goog.LOCALE == 'ar_LB' || goog.LOCALE == 'ar-LB') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ar_LB; +} + +if (goog.LOCALE == 'ar_LY' || goog.LOCALE == 'ar-LY') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ar_LY; +} + +if (goog.LOCALE == 'ar_MA' || goog.LOCALE == 'ar-MA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ar_MA; +} + +if (goog.LOCALE == 'ar_MR' || goog.LOCALE == 'ar-MR') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ar_MR; +} + +if (goog.LOCALE == 'ar_OM' || goog.LOCALE == 'ar-OM') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ar_OM; +} + +if (goog.LOCALE == 'ar_PS' || goog.LOCALE == 'ar-PS') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ar_PS; +} + +if (goog.LOCALE == 'ar_QA' || goog.LOCALE == 'ar-QA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ar_QA; +} + +if (goog.LOCALE == 'ar_SA' || goog.LOCALE == 'ar-SA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ar_SA; +} + +if (goog.LOCALE == 'ar_SD' || goog.LOCALE == 'ar-SD') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ar_SD; +} + +if (goog.LOCALE == 'ar_SO' || goog.LOCALE == 'ar-SO') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ar_SO; +} + +if (goog.LOCALE == 'ar_SY' || goog.LOCALE == 'ar-SY') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ar_SY; +} + +if (goog.LOCALE == 'ar_TD' || goog.LOCALE == 'ar-TD') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ar_TD; +} + +if (goog.LOCALE == 'ar_TN' || goog.LOCALE == 'ar-TN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ar_TN; +} + +if (goog.LOCALE == 'ar_YE' || goog.LOCALE == 'ar-YE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ar_YE; +} + +if (goog.LOCALE == 'as') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_as; +} + +if (goog.LOCALE == 'as_IN' || goog.LOCALE == 'as-IN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_as; +} + +if (goog.LOCALE == 'asa') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_asa; +} + +if (goog.LOCALE == 'asa_TZ' || goog.LOCALE == 'asa-TZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_asa; +} + +if (goog.LOCALE == 'ast') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ast; +} + +if (goog.LOCALE == 'ast_ES' || goog.LOCALE == 'ast-ES') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ast; +} + +if (goog.LOCALE == 'az') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_az; +} + +if (goog.LOCALE == 'az_Cyrl' || goog.LOCALE == 'az-Cyrl') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_az_Cyrl; +} + +if (goog.LOCALE == 'az_Cyrl_AZ' || goog.LOCALE == 'az-Cyrl-AZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_az; +} + +if (goog.LOCALE == 'az_Latn' || goog.LOCALE == 'az-Latn') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_az_Latn; +} + +if (goog.LOCALE == 'az_Latn_AZ' || goog.LOCALE == 'az-Latn-AZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_az; +} + +if (goog.LOCALE == 'bas') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_bas; +} + +if (goog.LOCALE == 'bas_CM' || goog.LOCALE == 'bas-CM') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_bas; +} + +if (goog.LOCALE == 'be') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_be; +} + +if (goog.LOCALE == 'be_BY' || goog.LOCALE == 'be-BY') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_be; +} + +if (goog.LOCALE == 'bem') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_bem; +} + +if (goog.LOCALE == 'bem_ZM' || goog.LOCALE == 'bem-ZM') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_bem; +} + +if (goog.LOCALE == 'bez') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_bez; +} + +if (goog.LOCALE == 'bez_TZ' || goog.LOCALE == 'bez-TZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_bez; +} + +if (goog.LOCALE == 'bm') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_bm; +} + +if (goog.LOCALE == 'bm_ML' || goog.LOCALE == 'bm-ML') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_bm; +} + +if (goog.LOCALE == 'bn_IN' || goog.LOCALE == 'bn-IN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_bn_IN; +} + +if (goog.LOCALE == 'bo') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_bo; +} + +if (goog.LOCALE == 'bo_CN' || goog.LOCALE == 'bo-CN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_bo; +} + +if (goog.LOCALE == 'bo_IN' || goog.LOCALE == 'bo-IN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_bo_IN; +} + +if (goog.LOCALE == 'brx') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_brx; +} + +if (goog.LOCALE == 'brx_IN' || goog.LOCALE == 'brx-IN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_brx; +} + +if (goog.LOCALE == 'bs') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_bs; +} + +if (goog.LOCALE == 'bs_Cyrl' || goog.LOCALE == 'bs-Cyrl') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_bs_Cyrl; +} + +if (goog.LOCALE == 'bs_Cyrl_BA' || goog.LOCALE == 'bs-Cyrl-BA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_bs_Cyrl_BA; +} + +if (goog.LOCALE == 'bs_Latn' || goog.LOCALE == 'bs-Latn') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_bs_Latn; +} + +if (goog.LOCALE == 'bs_Latn_BA' || goog.LOCALE == 'bs-Latn-BA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_bs; +} + +if (goog.LOCALE == 'byn') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_byn; +} + +if (goog.LOCALE == 'byn_ER' || goog.LOCALE == 'byn-ER') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_byn; +} + +if (goog.LOCALE == 'cgg') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_cgg; +} + +if (goog.LOCALE == 'cgg_UG' || goog.LOCALE == 'cgg-UG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_cgg; +} + +if (goog.LOCALE == 'ckb') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ckb; +} + +if (goog.LOCALE == 'ckb_Arab' || goog.LOCALE == 'ckb-Arab') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ckb_Arab; +} + +if (goog.LOCALE == 'ckb_Arab_IQ' || goog.LOCALE == 'ckb-Arab-IQ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ckb; +} + +if (goog.LOCALE == 'ckb_Arab_IR' || goog.LOCALE == 'ckb-Arab-IR') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ckb_Arab_IR; +} + +if (goog.LOCALE == 'ckb_IQ' || goog.LOCALE == 'ckb-IQ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ckb; +} + +if (goog.LOCALE == 'ckb_IR' || goog.LOCALE == 'ckb-IR') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ckb_IR; +} + +if (goog.LOCALE == 'ckb_Latn' || goog.LOCALE == 'ckb-Latn') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ckb_Latn; +} + +if (goog.LOCALE == 'ckb_Latn_IQ' || goog.LOCALE == 'ckb-Latn-IQ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ckb; +} + +if (goog.LOCALE == 'dav') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_dav; +} + +if (goog.LOCALE == 'dav_KE' || goog.LOCALE == 'dav-KE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_dav; +} + +if (goog.LOCALE == 'de_LI' || goog.LOCALE == 'de-LI') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_de_LI; +} + +if (goog.LOCALE == 'dje') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_dje; +} + +if (goog.LOCALE == 'dje_NE' || goog.LOCALE == 'dje-NE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_dje; +} + +if (goog.LOCALE == 'dua') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_dua; +} + +if (goog.LOCALE == 'dua_CM' || goog.LOCALE == 'dua-CM') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_dua; +} + +if (goog.LOCALE == 'dyo') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_dyo; +} + +if (goog.LOCALE == 'dyo_SN' || goog.LOCALE == 'dyo-SN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_dyo; +} + +if (goog.LOCALE == 'dz') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_dz; +} + +if (goog.LOCALE == 'dz_BT' || goog.LOCALE == 'dz-BT') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_dz; +} + +if (goog.LOCALE == 'ebu') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ebu; +} + +if (goog.LOCALE == 'ebu_KE' || goog.LOCALE == 'ebu-KE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ebu; +} + +if (goog.LOCALE == 'ee') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ee; +} + +if (goog.LOCALE == 'ee_GH' || goog.LOCALE == 'ee-GH') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ee; +} + +if (goog.LOCALE == 'ee_TG' || goog.LOCALE == 'ee-TG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ee_TG; +} + +if (goog.LOCALE == 'el_CY' || goog.LOCALE == 'el-CY') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_el_CY; +} + +if (goog.LOCALE == 'en_150' || goog.LOCALE == 'en-150') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_150; +} + +if (goog.LOCALE == 'en_AG' || goog.LOCALE == 'en-AG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_AG; +} + +if (goog.LOCALE == 'en_BB' || goog.LOCALE == 'en-BB') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_BB; +} + +if (goog.LOCALE == 'en_BE' || goog.LOCALE == 'en-BE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_BE; +} + +if (goog.LOCALE == 'en_BM' || goog.LOCALE == 'en-BM') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_BM; +} + +if (goog.LOCALE == 'en_BS' || goog.LOCALE == 'en-BS') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_BS; +} + +if (goog.LOCALE == 'en_BW' || goog.LOCALE == 'en-BW') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_BW; +} + +if (goog.LOCALE == 'en_BZ' || goog.LOCALE == 'en-BZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_BZ; +} + +if (goog.LOCALE == 'en_CA' || goog.LOCALE == 'en-CA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_CA; +} + +if (goog.LOCALE == 'en_CM' || goog.LOCALE == 'en-CM') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_CM; +} + +if (goog.LOCALE == 'en_DM' || goog.LOCALE == 'en-DM') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_DM; +} + +if (goog.LOCALE == 'en_Dsrt' || goog.LOCALE == 'en-Dsrt') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_Dsrt; +} + +if (goog.LOCALE == 'en_FJ' || goog.LOCALE == 'en-FJ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_FJ; +} + +if (goog.LOCALE == 'en_GD' || goog.LOCALE == 'en-GD') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_GD; +} + +if (goog.LOCALE == 'en_GG' || goog.LOCALE == 'en-GG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_GG; +} + +if (goog.LOCALE == 'en_GH' || goog.LOCALE == 'en-GH') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_GH; +} + +if (goog.LOCALE == 'en_GI' || goog.LOCALE == 'en-GI') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_GI; +} + +if (goog.LOCALE == 'en_GM' || goog.LOCALE == 'en-GM') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_GM; +} + +if (goog.LOCALE == 'en_GY' || goog.LOCALE == 'en-GY') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_GY; +} + +if (goog.LOCALE == 'en_HK' || goog.LOCALE == 'en-HK') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_HK; +} + +if (goog.LOCALE == 'en_IM' || goog.LOCALE == 'en-IM') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_IM; +} + +if (goog.LOCALE == 'en_JE' || goog.LOCALE == 'en-JE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_JE; +} + +if (goog.LOCALE == 'en_JM' || goog.LOCALE == 'en-JM') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_JM; +} + +if (goog.LOCALE == 'en_KE' || goog.LOCALE == 'en-KE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_KE; +} + +if (goog.LOCALE == 'en_KI' || goog.LOCALE == 'en-KI') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_KI; +} + +if (goog.LOCALE == 'en_KN' || goog.LOCALE == 'en-KN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_KN; +} + +if (goog.LOCALE == 'en_KY' || goog.LOCALE == 'en-KY') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_KY; +} + +if (goog.LOCALE == 'en_LC' || goog.LOCALE == 'en-LC') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_LC; +} + +if (goog.LOCALE == 'en_LR' || goog.LOCALE == 'en-LR') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_LR; +} + +if (goog.LOCALE == 'en_LS' || goog.LOCALE == 'en-LS') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_LS; +} + +if (goog.LOCALE == 'en_MG' || goog.LOCALE == 'en-MG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_MG; +} + +if (goog.LOCALE == 'en_MT' || goog.LOCALE == 'en-MT') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_MT; +} + +if (goog.LOCALE == 'en_MU' || goog.LOCALE == 'en-MU') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_MU; +} + +if (goog.LOCALE == 'en_MW' || goog.LOCALE == 'en-MW') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_MW; +} + +if (goog.LOCALE == 'en_NA' || goog.LOCALE == 'en-NA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_NA; +} + +if (goog.LOCALE == 'en_NG' || goog.LOCALE == 'en-NG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_NG; +} + +if (goog.LOCALE == 'en_NZ' || goog.LOCALE == 'en-NZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_NZ; +} + +if (goog.LOCALE == 'en_PG' || goog.LOCALE == 'en-PG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_PG; +} + +if (goog.LOCALE == 'en_PH' || goog.LOCALE == 'en-PH') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_PH; +} + +if (goog.LOCALE == 'en_PK' || goog.LOCALE == 'en-PK') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_PK; +} + +if (goog.LOCALE == 'en_SB' || goog.LOCALE == 'en-SB') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_SB; +} + +if (goog.LOCALE == 'en_SC' || goog.LOCALE == 'en-SC') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_SC; +} + +if (goog.LOCALE == 'en_SL' || goog.LOCALE == 'en-SL') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_SL; +} + +if (goog.LOCALE == 'en_SS' || goog.LOCALE == 'en-SS') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_SS; +} + +if (goog.LOCALE == 'en_SZ' || goog.LOCALE == 'en-SZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_SZ; +} + +if (goog.LOCALE == 'en_TO' || goog.LOCALE == 'en-TO') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_TO; +} + +if (goog.LOCALE == 'en_TT' || goog.LOCALE == 'en-TT') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_TT; +} + +if (goog.LOCALE == 'en_TZ' || goog.LOCALE == 'en-TZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_TZ; +} + +if (goog.LOCALE == 'en_UG' || goog.LOCALE == 'en-UG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_UG; +} + +if (goog.LOCALE == 'en_VC' || goog.LOCALE == 'en-VC') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_VC; +} + +if (goog.LOCALE == 'en_VU' || goog.LOCALE == 'en-VU') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_VU; +} + +if (goog.LOCALE == 'en_WS' || goog.LOCALE == 'en-WS') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_WS; +} + +if (goog.LOCALE == 'en_ZM' || goog.LOCALE == 'en-ZM') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_ZM; +} + +if (goog.LOCALE == 'en_ZW' || goog.LOCALE == 'en-ZW') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_en_ZW; +} + +if (goog.LOCALE == 'eo') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_eo; +} + +if (goog.LOCALE == 'es_AR' || goog.LOCALE == 'es-AR') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_es_AR; +} + +if (goog.LOCALE == 'es_BO' || goog.LOCALE == 'es-BO') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_es_BO; +} + +if (goog.LOCALE == 'es_CL' || goog.LOCALE == 'es-CL') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_es_CL; +} + +if (goog.LOCALE == 'es_CO' || goog.LOCALE == 'es-CO') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_es_CO; +} + +if (goog.LOCALE == 'es_CR' || goog.LOCALE == 'es-CR') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_es_CR; +} + +if (goog.LOCALE == 'es_CU' || goog.LOCALE == 'es-CU') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_es_CU; +} + +if (goog.LOCALE == 'es_DO' || goog.LOCALE == 'es-DO') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_es_DO; +} + +if (goog.LOCALE == 'es_EC' || goog.LOCALE == 'es-EC') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_es_EC; +} + +if (goog.LOCALE == 'es_GQ' || goog.LOCALE == 'es-GQ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_es_GQ; +} + +if (goog.LOCALE == 'es_GT' || goog.LOCALE == 'es-GT') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_es_GT; +} + +if (goog.LOCALE == 'es_HN' || goog.LOCALE == 'es-HN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_es_HN; +} + +if (goog.LOCALE == 'es_MX' || goog.LOCALE == 'es-MX') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_es_MX; +} + +if (goog.LOCALE == 'es_NI' || goog.LOCALE == 'es-NI') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_es_NI; +} + +if (goog.LOCALE == 'es_PA' || goog.LOCALE == 'es-PA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_es_PA; +} + +if (goog.LOCALE == 'es_PE' || goog.LOCALE == 'es-PE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_es_PE; +} + +if (goog.LOCALE == 'es_PH' || goog.LOCALE == 'es-PH') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_es_PH; +} + +if (goog.LOCALE == 'es_PR' || goog.LOCALE == 'es-PR') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_es_PR; +} + +if (goog.LOCALE == 'es_PY' || goog.LOCALE == 'es-PY') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_es_PY; +} + +if (goog.LOCALE == 'es_SV' || goog.LOCALE == 'es-SV') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_es_SV; +} + +if (goog.LOCALE == 'es_US' || goog.LOCALE == 'es-US') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_es_US; +} + +if (goog.LOCALE == 'es_UY' || goog.LOCALE == 'es-UY') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_es_UY; +} + +if (goog.LOCALE == 'es_VE' || goog.LOCALE == 'es-VE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_es_VE; +} + +if (goog.LOCALE == 'ewo') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ewo; +} + +if (goog.LOCALE == 'ewo_CM' || goog.LOCALE == 'ewo-CM') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ewo; +} + +if (goog.LOCALE == 'fa_AF' || goog.LOCALE == 'fa-AF') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fa_AF; +} + +if (goog.LOCALE == 'ff') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ff; +} + +if (goog.LOCALE == 'ff_SN' || goog.LOCALE == 'ff-SN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ff; +} + +if (goog.LOCALE == 'fo') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fo; +} + +if (goog.LOCALE == 'fo_FO' || goog.LOCALE == 'fo-FO') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fo; +} + +if (goog.LOCALE == 'fr_BE' || goog.LOCALE == 'fr-BE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_BE; +} + +if (goog.LOCALE == 'fr_BF' || goog.LOCALE == 'fr-BF') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_BF; +} + +if (goog.LOCALE == 'fr_BI' || goog.LOCALE == 'fr-BI') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_BI; +} + +if (goog.LOCALE == 'fr_BJ' || goog.LOCALE == 'fr-BJ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_BJ; +} + +if (goog.LOCALE == 'fr_CD' || goog.LOCALE == 'fr-CD') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_CD; +} + +if (goog.LOCALE == 'fr_CF' || goog.LOCALE == 'fr-CF') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_CF; +} + +if (goog.LOCALE == 'fr_CG' || goog.LOCALE == 'fr-CG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_CG; +} + +if (goog.LOCALE == 'fr_CH' || goog.LOCALE == 'fr-CH') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_CH; +} + +if (goog.LOCALE == 'fr_CI' || goog.LOCALE == 'fr-CI') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_CI; +} + +if (goog.LOCALE == 'fr_CM' || goog.LOCALE == 'fr-CM') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_CM; +} + +if (goog.LOCALE == 'fr_DJ' || goog.LOCALE == 'fr-DJ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_DJ; +} + +if (goog.LOCALE == 'fr_DZ' || goog.LOCALE == 'fr-DZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_DZ; +} + +if (goog.LOCALE == 'fr_GA' || goog.LOCALE == 'fr-GA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_GA; +} + +if (goog.LOCALE == 'fr_GN' || goog.LOCALE == 'fr-GN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_GN; +} + +if (goog.LOCALE == 'fr_GQ' || goog.LOCALE == 'fr-GQ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_GQ; +} + +if (goog.LOCALE == 'fr_HT' || goog.LOCALE == 'fr-HT') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_HT; +} + +if (goog.LOCALE == 'fr_KM' || goog.LOCALE == 'fr-KM') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_KM; +} + +if (goog.LOCALE == 'fr_LU' || goog.LOCALE == 'fr-LU') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_LU; +} + +if (goog.LOCALE == 'fr_MA' || goog.LOCALE == 'fr-MA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_MA; +} + +if (goog.LOCALE == 'fr_MG' || goog.LOCALE == 'fr-MG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_MG; +} + +if (goog.LOCALE == 'fr_ML' || goog.LOCALE == 'fr-ML') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_ML; +} + +if (goog.LOCALE == 'fr_MR' || goog.LOCALE == 'fr-MR') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_MR; +} + +if (goog.LOCALE == 'fr_MU' || goog.LOCALE == 'fr-MU') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_MU; +} + +if (goog.LOCALE == 'fr_NC' || goog.LOCALE == 'fr-NC') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_NC; +} + +if (goog.LOCALE == 'fr_NE' || goog.LOCALE == 'fr-NE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_NE; +} + +if (goog.LOCALE == 'fr_PF' || goog.LOCALE == 'fr-PF') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_PF; +} + +if (goog.LOCALE == 'fr_RW' || goog.LOCALE == 'fr-RW') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_RW; +} + +if (goog.LOCALE == 'fr_SC' || goog.LOCALE == 'fr-SC') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_SC; +} + +if (goog.LOCALE == 'fr_SN' || goog.LOCALE == 'fr-SN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_SN; +} + +if (goog.LOCALE == 'fr_SY' || goog.LOCALE == 'fr-SY') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_SY; +} + +if (goog.LOCALE == 'fr_TD' || goog.LOCALE == 'fr-TD') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_TD; +} + +if (goog.LOCALE == 'fr_TG' || goog.LOCALE == 'fr-TG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_TG; +} + +if (goog.LOCALE == 'fr_TN' || goog.LOCALE == 'fr-TN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_TN; +} + +if (goog.LOCALE == 'fr_VU' || goog.LOCALE == 'fr-VU') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fr_VU; +} + +if (goog.LOCALE == 'fur') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fur; +} + +if (goog.LOCALE == 'fur_IT' || goog.LOCALE == 'fur-IT') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_fur; +} + +if (goog.LOCALE == 'ga') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ga; +} + +if (goog.LOCALE == 'ga_IE' || goog.LOCALE == 'ga-IE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ga; +} + +if (goog.LOCALE == 'gd') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_gd; +} + +if (goog.LOCALE == 'gd_GB' || goog.LOCALE == 'gd-GB') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_gd; +} + +if (goog.LOCALE == 'guz') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_guz; +} + +if (goog.LOCALE == 'guz_KE' || goog.LOCALE == 'guz-KE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_guz; +} + +if (goog.LOCALE == 'gv') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_gv; +} + +if (goog.LOCALE == 'gv_GB' || goog.LOCALE == 'gv-GB') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_gv; +} + +if (goog.LOCALE == 'ha') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ha; +} + +if (goog.LOCALE == 'ha_Latn' || goog.LOCALE == 'ha-Latn') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ha_Latn; +} + +if (goog.LOCALE == 'ha_Latn_GH' || goog.LOCALE == 'ha-Latn-GH') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ha_Latn_GH; +} + +if (goog.LOCALE == 'ha_Latn_NE' || goog.LOCALE == 'ha-Latn-NE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ha_Latn_NE; +} + +if (goog.LOCALE == 'ha_Latn_NG' || goog.LOCALE == 'ha-Latn-NG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ha; +} + +if (goog.LOCALE == 'hr_BA' || goog.LOCALE == 'hr-BA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_hr_BA; +} + +if (goog.LOCALE == 'hy') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_hy; +} + +if (goog.LOCALE == 'hy_AM' || goog.LOCALE == 'hy-AM') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_hy; +} + +if (goog.LOCALE == 'ia') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ia; +} + +if (goog.LOCALE == 'ia_FR' || goog.LOCALE == 'ia-FR') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ia; +} + +if (goog.LOCALE == 'ig') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ig; +} + +if (goog.LOCALE == 'ig_NG' || goog.LOCALE == 'ig-NG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ig; +} + +if (goog.LOCALE == 'ii') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ii; +} + +if (goog.LOCALE == 'ii_CN' || goog.LOCALE == 'ii-CN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ii; +} + +if (goog.LOCALE == 'it_CH' || goog.LOCALE == 'it-CH') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_it_CH; +} + +if (goog.LOCALE == 'jgo') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_jgo; +} + +if (goog.LOCALE == 'jgo_CM' || goog.LOCALE == 'jgo-CM') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_jgo; +} + +if (goog.LOCALE == 'jmc') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_jmc; +} + +if (goog.LOCALE == 'jmc_TZ' || goog.LOCALE == 'jmc-TZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_jmc; +} + +if (goog.LOCALE == 'ka') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ka; +} + +if (goog.LOCALE == 'ka_GE' || goog.LOCALE == 'ka-GE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ka; +} + +if (goog.LOCALE == 'kab') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_kab; +} + +if (goog.LOCALE == 'kab_DZ' || goog.LOCALE == 'kab-DZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_kab; +} + +if (goog.LOCALE == 'kam') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_kam; +} + +if (goog.LOCALE == 'kam_KE' || goog.LOCALE == 'kam-KE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_kam; +} + +if (goog.LOCALE == 'kde') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_kde; +} + +if (goog.LOCALE == 'kde_TZ' || goog.LOCALE == 'kde-TZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_kde; +} + +if (goog.LOCALE == 'kea') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_kea; +} + +if (goog.LOCALE == 'kea_CV' || goog.LOCALE == 'kea-CV') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_kea; +} + +if (goog.LOCALE == 'khq') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_khq; +} + +if (goog.LOCALE == 'khq_ML' || goog.LOCALE == 'khq-ML') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_khq; +} + +if (goog.LOCALE == 'ki') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ki; +} + +if (goog.LOCALE == 'ki_KE' || goog.LOCALE == 'ki-KE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ki; +} + +if (goog.LOCALE == 'kk') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_kk; +} + +if (goog.LOCALE == 'kk_Cyrl' || goog.LOCALE == 'kk-Cyrl') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_kk_Cyrl; +} + +if (goog.LOCALE == 'kk_Cyrl_KZ' || goog.LOCALE == 'kk-Cyrl-KZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_kk; +} + +if (goog.LOCALE == 'kkj') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_kkj; +} + +if (goog.LOCALE == 'kkj_CM' || goog.LOCALE == 'kkj-CM') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_kkj; +} + +if (goog.LOCALE == 'kl') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_kl; +} + +if (goog.LOCALE == 'kl_GL' || goog.LOCALE == 'kl-GL') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_kl; +} + +if (goog.LOCALE == 'kln') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_kln; +} + +if (goog.LOCALE == 'kln_KE' || goog.LOCALE == 'kln-KE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_kln; +} + +if (goog.LOCALE == 'km') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_km; +} + +if (goog.LOCALE == 'km_KH' || goog.LOCALE == 'km-KH') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_km; +} + +if (goog.LOCALE == 'ko_KP' || goog.LOCALE == 'ko-KP') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ko_KP; +} + +if (goog.LOCALE == 'kok') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_kok; +} + +if (goog.LOCALE == 'kok_IN' || goog.LOCALE == 'kok-IN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_kok; +} + +if (goog.LOCALE == 'ks') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ks; +} + +if (goog.LOCALE == 'ks_Arab' || goog.LOCALE == 'ks-Arab') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ks_Arab; +} + +if (goog.LOCALE == 'ks_Arab_IN' || goog.LOCALE == 'ks-Arab-IN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ks; +} + +if (goog.LOCALE == 'ksb') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ksb; +} + +if (goog.LOCALE == 'ksb_TZ' || goog.LOCALE == 'ksb-TZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ksb; +} + +if (goog.LOCALE == 'ksf') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ksf; +} + +if (goog.LOCALE == 'ksf_CM' || goog.LOCALE == 'ksf-CM') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ksf; +} + +if (goog.LOCALE == 'ksh') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ksh; +} + +if (goog.LOCALE == 'ksh_DE' || goog.LOCALE == 'ksh-DE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ksh; +} + +if (goog.LOCALE == 'kw') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_kw; +} + +if (goog.LOCALE == 'kw_GB' || goog.LOCALE == 'kw-GB') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_kw; +} + +if (goog.LOCALE == 'ky') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ky; +} + +if (goog.LOCALE == 'ky_KG' || goog.LOCALE == 'ky-KG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ky; +} + +if (goog.LOCALE == 'lag') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_lag; +} + +if (goog.LOCALE == 'lag_TZ' || goog.LOCALE == 'lag-TZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_lag; +} + +if (goog.LOCALE == 'lg') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_lg; +} + +if (goog.LOCALE == 'lg_UG' || goog.LOCALE == 'lg-UG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_lg; +} + +if (goog.LOCALE == 'ln_AO' || goog.LOCALE == 'ln-AO') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ln_AO; +} + +if (goog.LOCALE == 'ln_CF' || goog.LOCALE == 'ln-CF') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ln_CF; +} + +if (goog.LOCALE == 'ln_CG' || goog.LOCALE == 'ln-CG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ln_CG; +} + +if (goog.LOCALE == 'lo') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_lo; +} + +if (goog.LOCALE == 'lo_LA' || goog.LOCALE == 'lo-LA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_lo; +} + +if (goog.LOCALE == 'lu') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_lu; +} + +if (goog.LOCALE == 'lu_CD' || goog.LOCALE == 'lu-CD') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_lu; +} + +if (goog.LOCALE == 'luo') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_luo; +} + +if (goog.LOCALE == 'luo_KE' || goog.LOCALE == 'luo-KE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_luo; +} + +if (goog.LOCALE == 'luy') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_luy; +} + +if (goog.LOCALE == 'luy_KE' || goog.LOCALE == 'luy-KE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_luy; +} + +if (goog.LOCALE == 'mas') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_mas; +} + +if (goog.LOCALE == 'mas_KE' || goog.LOCALE == 'mas-KE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_mas; +} + +if (goog.LOCALE == 'mas_TZ' || goog.LOCALE == 'mas-TZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_mas_TZ; +} + +if (goog.LOCALE == 'mer') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_mer; +} + +if (goog.LOCALE == 'mer_KE' || goog.LOCALE == 'mer-KE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_mer; +} + +if (goog.LOCALE == 'mfe') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_mfe; +} + +if (goog.LOCALE == 'mfe_MU' || goog.LOCALE == 'mfe-MU') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_mfe; +} + +if (goog.LOCALE == 'mg') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_mg; +} + +if (goog.LOCALE == 'mg_MG' || goog.LOCALE == 'mg-MG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_mg; +} + +if (goog.LOCALE == 'mgh') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_mgh; +} + +if (goog.LOCALE == 'mgh_MZ' || goog.LOCALE == 'mgh-MZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_mgh; +} + +if (goog.LOCALE == 'mgo') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_mgo; +} + +if (goog.LOCALE == 'mgo_CM' || goog.LOCALE == 'mgo-CM') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_mgo; +} + +if (goog.LOCALE == 'mk') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_mk; +} + +if (goog.LOCALE == 'mk_MK' || goog.LOCALE == 'mk-MK') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_mk; +} + +if (goog.LOCALE == 'mn') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_mn; +} + +if (goog.LOCALE == 'mn_Cyrl' || goog.LOCALE == 'mn-Cyrl') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_mn_Cyrl; +} + +if (goog.LOCALE == 'mn_Cyrl_MN' || goog.LOCALE == 'mn-Cyrl-MN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_mn; +} + +if (goog.LOCALE == 'ms_Latn' || goog.LOCALE == 'ms-Latn') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ms_Latn; +} + +if (goog.LOCALE == 'ms_Latn_BN' || goog.LOCALE == 'ms-Latn-BN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ms_Latn_BN; +} + +if (goog.LOCALE == 'ms_Latn_SG' || goog.LOCALE == 'ms-Latn-SG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ms_Latn_SG; +} + +if (goog.LOCALE == 'mua') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_mua; +} + +if (goog.LOCALE == 'mua_CM' || goog.LOCALE == 'mua-CM') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_mua; +} + +if (goog.LOCALE == 'my') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_my; +} + +if (goog.LOCALE == 'my_MM' || goog.LOCALE == 'my-MM') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_my; +} + +if (goog.LOCALE == 'naq') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_naq; +} + +if (goog.LOCALE == 'naq_NA' || goog.LOCALE == 'naq-NA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_naq; +} + +if (goog.LOCALE == 'nd') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_nd; +} + +if (goog.LOCALE == 'nd_ZW' || goog.LOCALE == 'nd-ZW') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_nd; +} + +if (goog.LOCALE == 'ne') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ne; +} + +if (goog.LOCALE == 'ne_IN' || goog.LOCALE == 'ne-IN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ne_IN; +} + +if (goog.LOCALE == 'ne_NP' || goog.LOCALE == 'ne-NP') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ne; +} + +if (goog.LOCALE == 'nl_AW' || goog.LOCALE == 'nl-AW') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_nl_AW; +} + +if (goog.LOCALE == 'nl_BE' || goog.LOCALE == 'nl-BE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_nl_BE; +} + +if (goog.LOCALE == 'nl_CW' || goog.LOCALE == 'nl-CW') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_nl_CW; +} + +if (goog.LOCALE == 'nl_SR' || goog.LOCALE == 'nl-SR') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_nl_SR; +} + +if (goog.LOCALE == 'nl_SX' || goog.LOCALE == 'nl-SX') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_nl_SX; +} + +if (goog.LOCALE == 'nmg') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_nmg; +} + +if (goog.LOCALE == 'nmg_CM' || goog.LOCALE == 'nmg-CM') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_nmg; +} + +if (goog.LOCALE == 'nn') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_nn; +} + +if (goog.LOCALE == 'nn_NO' || goog.LOCALE == 'nn-NO') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_nn; +} + +if (goog.LOCALE == 'nnh') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_nnh; +} + +if (goog.LOCALE == 'nnh_CM' || goog.LOCALE == 'nnh-CM') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_nnh; +} + +if (goog.LOCALE == 'nr') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_nr; +} + +if (goog.LOCALE == 'nr_ZA' || goog.LOCALE == 'nr-ZA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_nr; +} + +if (goog.LOCALE == 'nso') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_nso; +} + +if (goog.LOCALE == 'nso_ZA' || goog.LOCALE == 'nso-ZA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_nso; +} + +if (goog.LOCALE == 'nus') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_nus; +} + +if (goog.LOCALE == 'nus_SD' || goog.LOCALE == 'nus-SD') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_nus; +} + +if (goog.LOCALE == 'nyn') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_nyn; +} + +if (goog.LOCALE == 'nyn_UG' || goog.LOCALE == 'nyn-UG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_nyn; +} + +if (goog.LOCALE == 'om') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_om; +} + +if (goog.LOCALE == 'om_ET' || goog.LOCALE == 'om-ET') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_om; +} + +if (goog.LOCALE == 'om_KE' || goog.LOCALE == 'om-KE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_om_KE; +} + +if (goog.LOCALE == 'os') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_os; +} + +if (goog.LOCALE == 'os_GE' || goog.LOCALE == 'os-GE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_os; +} + +if (goog.LOCALE == 'os_RU' || goog.LOCALE == 'os-RU') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_os_RU; +} + +if (goog.LOCALE == 'pa') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_pa; +} + +if (goog.LOCALE == 'pa_Arab' || goog.LOCALE == 'pa-Arab') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_pa_Arab; +} + +if (goog.LOCALE == 'pa_Arab_PK' || goog.LOCALE == 'pa-Arab-PK') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_pa_Arab; +} + +if (goog.LOCALE == 'pa_Guru' || goog.LOCALE == 'pa-Guru') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_pa_Guru; +} + +if (goog.LOCALE == 'pa_Guru_IN' || goog.LOCALE == 'pa-Guru-IN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_pa; +} + +if (goog.LOCALE == 'ps') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ps; +} + +if (goog.LOCALE == 'ps_AF' || goog.LOCALE == 'ps-AF') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ps; +} + +if (goog.LOCALE == 'pt_AO' || goog.LOCALE == 'pt-AO') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_pt_AO; +} + +if (goog.LOCALE == 'pt_CV' || goog.LOCALE == 'pt-CV') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_pt_CV; +} + +if (goog.LOCALE == 'pt_GW' || goog.LOCALE == 'pt-GW') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_pt_GW; +} + +if (goog.LOCALE == 'pt_MO' || goog.LOCALE == 'pt-MO') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_pt_MO; +} + +if (goog.LOCALE == 'pt_MZ' || goog.LOCALE == 'pt-MZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_pt_MZ; +} + +if (goog.LOCALE == 'pt_ST' || goog.LOCALE == 'pt-ST') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_pt_ST; +} + +if (goog.LOCALE == 'pt_TL' || goog.LOCALE == 'pt-TL') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_pt_TL; +} + +if (goog.LOCALE == 'rm') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_rm; +} + +if (goog.LOCALE == 'rm_CH' || goog.LOCALE == 'rm-CH') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_rm; +} + +if (goog.LOCALE == 'rn') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_rn; +} + +if (goog.LOCALE == 'rn_BI' || goog.LOCALE == 'rn-BI') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_rn; +} + +if (goog.LOCALE == 'ro_MD' || goog.LOCALE == 'ro-MD') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ro_MD; +} + +if (goog.LOCALE == 'rof') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_rof; +} + +if (goog.LOCALE == 'rof_TZ' || goog.LOCALE == 'rof-TZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_rof; +} + +if (goog.LOCALE == 'ru_BY' || goog.LOCALE == 'ru-BY') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ru_BY; +} + +if (goog.LOCALE == 'ru_KG' || goog.LOCALE == 'ru-KG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ru_KG; +} + +if (goog.LOCALE == 'ru_KZ' || goog.LOCALE == 'ru-KZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ru_KZ; +} + +if (goog.LOCALE == 'ru_MD' || goog.LOCALE == 'ru-MD') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ru_MD; +} + +if (goog.LOCALE == 'ru_UA' || goog.LOCALE == 'ru-UA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ru_UA; +} + +if (goog.LOCALE == 'rw') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_rw; +} + +if (goog.LOCALE == 'rw_RW' || goog.LOCALE == 'rw-RW') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_rw; +} + +if (goog.LOCALE == 'rwk') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_rwk; +} + +if (goog.LOCALE == 'rwk_TZ' || goog.LOCALE == 'rwk-TZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_rwk; +} + +if (goog.LOCALE == 'sah') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sah; +} + +if (goog.LOCALE == 'sah_RU' || goog.LOCALE == 'sah-RU') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sah; +} + +if (goog.LOCALE == 'saq') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_saq; +} + +if (goog.LOCALE == 'saq_KE' || goog.LOCALE == 'saq-KE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_saq; +} + +if (goog.LOCALE == 'sbp') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sbp; +} + +if (goog.LOCALE == 'sbp_TZ' || goog.LOCALE == 'sbp-TZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sbp; +} + +if (goog.LOCALE == 'se') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_se; +} + +if (goog.LOCALE == 'se_FI' || goog.LOCALE == 'se-FI') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_se_FI; +} + +if (goog.LOCALE == 'se_NO' || goog.LOCALE == 'se-NO') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_se; +} + +if (goog.LOCALE == 'seh') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_seh; +} + +if (goog.LOCALE == 'seh_MZ' || goog.LOCALE == 'seh-MZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_seh; +} + +if (goog.LOCALE == 'ses') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ses; +} + +if (goog.LOCALE == 'ses_ML' || goog.LOCALE == 'ses-ML') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ses; +} + +if (goog.LOCALE == 'sg') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sg; +} + +if (goog.LOCALE == 'sg_CF' || goog.LOCALE == 'sg-CF') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sg; +} + +if (goog.LOCALE == 'shi') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_shi; +} + +if (goog.LOCALE == 'shi_Latn' || goog.LOCALE == 'shi-Latn') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_shi_Latn; +} + +if (goog.LOCALE == 'shi_Latn_MA' || goog.LOCALE == 'shi-Latn-MA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_shi; +} + +if (goog.LOCALE == 'shi_Tfng' || goog.LOCALE == 'shi-Tfng') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_shi_Tfng; +} + +if (goog.LOCALE == 'shi_Tfng_MA' || goog.LOCALE == 'shi-Tfng-MA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_shi; +} + +if (goog.LOCALE == 'si') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_si; +} + +if (goog.LOCALE == 'si_LK' || goog.LOCALE == 'si-LK') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_si; +} + +if (goog.LOCALE == 'sn') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sn; +} + +if (goog.LOCALE == 'sn_ZW' || goog.LOCALE == 'sn-ZW') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sn; +} + +if (goog.LOCALE == 'so') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_so; +} + +if (goog.LOCALE == 'so_DJ' || goog.LOCALE == 'so-DJ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_so_DJ; +} + +if (goog.LOCALE == 'so_ET' || goog.LOCALE == 'so-ET') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_so_ET; +} + +if (goog.LOCALE == 'so_KE' || goog.LOCALE == 'so-KE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_so_KE; +} + +if (goog.LOCALE == 'so_SO' || goog.LOCALE == 'so-SO') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_so; +} + +if (goog.LOCALE == 'sq_MK' || goog.LOCALE == 'sq-MK') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sq_MK; +} + +if (goog.LOCALE == 'sq_XK' || goog.LOCALE == 'sq-XK') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sq_XK; +} + +if (goog.LOCALE == 'sr_Cyrl' || goog.LOCALE == 'sr-Cyrl') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sr_Cyrl; +} + +if (goog.LOCALE == 'sr_Cyrl_BA' || goog.LOCALE == 'sr-Cyrl-BA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sr_Cyrl_BA; +} + +if (goog.LOCALE == 'sr_Cyrl_ME' || goog.LOCALE == 'sr-Cyrl-ME') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sr_Cyrl; +} + +if (goog.LOCALE == 'sr_Cyrl_XK' || goog.LOCALE == 'sr-Cyrl-XK') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sr_Cyrl; +} + +if (goog.LOCALE == 'sr_Latn' || goog.LOCALE == 'sr-Latn') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sr_Latn; +} + +if (goog.LOCALE == 'sr_Latn_BA' || goog.LOCALE == 'sr-Latn-BA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sr_Latn_BA; +} + +if (goog.LOCALE == 'sr_Latn_ME' || goog.LOCALE == 'sr-Latn-ME') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sr_Latn; +} + +if (goog.LOCALE == 'sr_Latn_RS' || goog.LOCALE == 'sr-Latn-RS') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sr_Latn_RS; +} + +if (goog.LOCALE == 'sr_Latn_XK' || goog.LOCALE == 'sr-Latn-XK') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sr_Latn; +} + +if (goog.LOCALE == 'ss') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ss; +} + +if (goog.LOCALE == 'ss_SZ' || goog.LOCALE == 'ss-SZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ss_SZ; +} + +if (goog.LOCALE == 'ss_ZA' || goog.LOCALE == 'ss-ZA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ss; +} + +if (goog.LOCALE == 'ssy') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ssy; +} + +if (goog.LOCALE == 'ssy_ER' || goog.LOCALE == 'ssy-ER') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ssy; +} + +if (goog.LOCALE == 'st') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_st; +} + +if (goog.LOCALE == 'st_LS' || goog.LOCALE == 'st-LS') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_st; +} + +if (goog.LOCALE == 'st_ZA' || goog.LOCALE == 'st-ZA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_st; +} + +if (goog.LOCALE == 'sv_AX' || goog.LOCALE == 'sv-AX') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sv_AX; +} + +if (goog.LOCALE == 'sv_FI' || goog.LOCALE == 'sv-FI') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sv_FI; +} + +if (goog.LOCALE == 'sw_KE' || goog.LOCALE == 'sw-KE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sw_KE; +} + +if (goog.LOCALE == 'sw_UG' || goog.LOCALE == 'sw-UG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_sw_UG; +} + +if (goog.LOCALE == 'swc') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_swc; +} + +if (goog.LOCALE == 'swc_CD' || goog.LOCALE == 'swc-CD') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_swc; +} + +if (goog.LOCALE == 'ta_LK' || goog.LOCALE == 'ta-LK') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ta_LK; +} + +if (goog.LOCALE == 'ta_MY' || goog.LOCALE == 'ta-MY') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ta_MY; +} + +if (goog.LOCALE == 'ta_SG' || goog.LOCALE == 'ta-SG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ta_SG; +} + +if (goog.LOCALE == 'teo') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_teo; +} + +if (goog.LOCALE == 'teo_KE' || goog.LOCALE == 'teo-KE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_teo_KE; +} + +if (goog.LOCALE == 'teo_UG' || goog.LOCALE == 'teo-UG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_teo; +} + +if (goog.LOCALE == 'tg') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_tg; +} + +if (goog.LOCALE == 'tg_Cyrl' || goog.LOCALE == 'tg-Cyrl') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_tg_Cyrl; +} + +if (goog.LOCALE == 'tg_Cyrl_TJ' || goog.LOCALE == 'tg-Cyrl-TJ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_tg; +} + +if (goog.LOCALE == 'ti') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ti; +} + +if (goog.LOCALE == 'ti_ER' || goog.LOCALE == 'ti-ER') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ti_ER; +} + +if (goog.LOCALE == 'ti_ET' || goog.LOCALE == 'ti-ET') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ti; +} + +if (goog.LOCALE == 'tig') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_tig; +} + +if (goog.LOCALE == 'tig_ER' || goog.LOCALE == 'tig-ER') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_tig; +} + +if (goog.LOCALE == 'tn') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_tn; +} + +if (goog.LOCALE == 'tn_BW' || goog.LOCALE == 'tn-BW') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_tn_BW; +} + +if (goog.LOCALE == 'tn_ZA' || goog.LOCALE == 'tn-ZA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_tn; +} + +if (goog.LOCALE == 'to') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_to; +} + +if (goog.LOCALE == 'to_TO' || goog.LOCALE == 'to-TO') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_to; +} + +if (goog.LOCALE == 'tr_CY' || goog.LOCALE == 'tr-CY') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_tr_CY; +} + +if (goog.LOCALE == 'ts') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ts; +} + +if (goog.LOCALE == 'ts_ZA' || goog.LOCALE == 'ts-ZA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ts; +} + +if (goog.LOCALE == 'twq') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_twq; +} + +if (goog.LOCALE == 'twq_NE' || goog.LOCALE == 'twq-NE') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_twq; +} + +if (goog.LOCALE == 'tzm') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_tzm; +} + +if (goog.LOCALE == 'tzm_Latn' || goog.LOCALE == 'tzm-Latn') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_tzm_Latn; +} + +if (goog.LOCALE == 'tzm_Latn_MA' || goog.LOCALE == 'tzm-Latn-MA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_tzm; +} + +if (goog.LOCALE == 'ur_IN' || goog.LOCALE == 'ur-IN') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ur_IN; +} + +if (goog.LOCALE == 'uz') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_uz; +} + +if (goog.LOCALE == 'uz_Arab' || goog.LOCALE == 'uz-Arab') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_uz_Arab; +} + +if (goog.LOCALE == 'uz_Arab_AF' || goog.LOCALE == 'uz-Arab-AF') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_uz_Arab; +} + +if (goog.LOCALE == 'uz_Cyrl' || goog.LOCALE == 'uz-Cyrl') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_uz_Cyrl; +} + +if (goog.LOCALE == 'uz_Cyrl_UZ' || goog.LOCALE == 'uz-Cyrl-UZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_uz; +} + +if (goog.LOCALE == 'uz_Latn' || goog.LOCALE == 'uz-Latn') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_uz_Latn; +} + +if (goog.LOCALE == 'uz_Latn_UZ' || goog.LOCALE == 'uz-Latn-UZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_uz; +} + +if (goog.LOCALE == 'vai') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_vai; +} + +if (goog.LOCALE == 'vai_Latn' || goog.LOCALE == 'vai-Latn') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_vai_Latn; +} + +if (goog.LOCALE == 'vai_Latn_LR' || goog.LOCALE == 'vai-Latn-LR') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_vai; +} + +if (goog.LOCALE == 'vai_Vaii' || goog.LOCALE == 'vai-Vaii') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_vai_Vaii; +} + +if (goog.LOCALE == 'vai_Vaii_LR' || goog.LOCALE == 'vai-Vaii-LR') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_vai; +} + +if (goog.LOCALE == 've') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ve; +} + +if (goog.LOCALE == 've_ZA' || goog.LOCALE == 've-ZA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_ve; +} + +if (goog.LOCALE == 'vo') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_vo; +} + +if (goog.LOCALE == 'vun') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_vun; +} + +if (goog.LOCALE == 'vun_TZ' || goog.LOCALE == 'vun-TZ') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_vun; +} + +if (goog.LOCALE == 'wae') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_wae; +} + +if (goog.LOCALE == 'wae_CH' || goog.LOCALE == 'wae-CH') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_wae; +} + +if (goog.LOCALE == 'wal') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_wal; +} + +if (goog.LOCALE == 'wal_ET' || goog.LOCALE == 'wal-ET') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_wal; +} + +if (goog.LOCALE == 'xh') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_xh; +} + +if (goog.LOCALE == 'xh_ZA' || goog.LOCALE == 'xh-ZA') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_xh; +} + +if (goog.LOCALE == 'xog') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_xog; +} + +if (goog.LOCALE == 'xog_UG' || goog.LOCALE == 'xog-UG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_xog; +} + +if (goog.LOCALE == 'yav') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_yav; +} + +if (goog.LOCALE == 'yav_CM' || goog.LOCALE == 'yav-CM') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_yav; +} + +if (goog.LOCALE == 'yo') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_yo; +} + +if (goog.LOCALE == 'yo_NG' || goog.LOCALE == 'yo-NG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_yo; +} + +if (goog.LOCALE == 'zh_Hans' || goog.LOCALE == 'zh-Hans') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_zh_Hans; +} + +if (goog.LOCALE == 'zh_Hans_HK' || goog.LOCALE == 'zh-Hans-HK') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_zh_Hans_HK; +} + +if (goog.LOCALE == 'zh_Hans_MO' || goog.LOCALE == 'zh-Hans-MO') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_zh_Hans_MO; +} + +if (goog.LOCALE == 'zh_Hans_SG' || goog.LOCALE == 'zh-Hans-SG') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_zh_Hans_SG; +} + +if (goog.LOCALE == 'zh_Hant' || goog.LOCALE == 'zh-Hant') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_zh_Hant; +} + +if (goog.LOCALE == 'zh_Hant_HK' || goog.LOCALE == 'zh-Hant-HK') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_zh_Hant_HK; +} + +if (goog.LOCALE == 'zh_Hant_MO' || goog.LOCALE == 'zh-Hant-MO') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_zh_Hant_MO; +} + +if (goog.LOCALE == 'zh_Hant_TW' || goog.LOCALE == 'zh-Hant-TW') { + goog.i18n.CompactNumberFormatSymbols = goog.i18n.CompactNumberFormatSymbols_zh_Hant; +} + diff --git a/master/closure-library/closure/goog/i18n/currency.js b/edit/closure-library/closure/goog/i18n/currency.js similarity index 86% rename from master/closure-library/closure/goog/i18n/currency.js rename to edit/closure-library/closure/goog/i18n/currency.js index a75b2182cb..d50e22bd76 100644 --- a/master/closure-library/closure/goog/i18n/currency.js +++ b/edit/closure-library/closure/goog/i18n/currency.js @@ -16,14 +16,14 @@ /** * @fileoverview A utility to get better currency format pattern. * - * This module implement a new currency format representation model. It + * This module implements a new currency format representation model. It * provides 3 currency representation forms: global, portable and local. Local * format is the most popular format people use to represent currency in its * circulating country without worrying about how it should be distinguished * from other currencies. Global format is a formal representation in context * of multiple currencies in same page, it is ISO 4217 currency code. Portable * format is a compromise between global and local. It looks similar to how - * people would like to see how their currencies is being represented in other + * people would like to see how their currency is being represented in other * media. While at the same time, it should be distinguishable to world's * popular currencies (like USD, EUR) and currencies somewhat relevant in the * area (like CNY in HK, though native currency is HKD). There is no guarantee @@ -33,6 +33,8 @@ goog.provide('goog.i18n.currency'); +goog.provide('goog.i18n.currency.CurrencyInfo'); +goog.provide('goog.i18n.currency.CurrencyInfoTier2'); /** @@ -43,15 +45,14 @@ goog.i18n.currency.PRECISION_MASK_ = 0x07; /** - * If this flag is set, it means the currency sign should position before - * number. + * Whether the currency sign should be positioned after the number. * @private */ goog.i18n.currency.POSITION_FLAG_ = 0x08; /** - * Should a space to inserted between number and currency sign. + * Whether a space should be inserted between the number and currency sign. * @private */ goog.i18n.currency.SPACE_FLAG_ = 0x20; @@ -59,8 +60,8 @@ goog.i18n.currency.SPACE_FLAG_ = 0x20; /** * This function will add tier2 currency support. Be default, only tier1 - * (most popular currencies) are supportted. If an application really need - * to support some of the rarely used currency, it should call this function + * (most popular currencies) are supported. If an application really needs + * to support some of the rarely used currencies, it should call this function * before any other functions in this namespace. */ goog.i18n.currency.addTier2Support = function() { @@ -75,8 +76,8 @@ goog.i18n.currency.addTier2Support = function() { * Global currency pattern always uses ISO-4217 currency code as prefix. Local * currency sign is added if it is different from currency code. Each currency * is unique in this form. The negative side is that ISO code looks weird in - * some countries as poeple normally do not use it. Local currency sign - * alleviate the problem, but also make it a little verbose. + * some countries as people normally do not use it. Local currency sign + * alleviates the problem, but also makes it a little verbose. * * @param {string} currencyCode ISO-4217 3-letter currency code. * @return {string} Global currency pattern string for given currency. @@ -123,6 +124,7 @@ goog.i18n.currency.getLocalCurrencyPattern = function(currencyCode) { /** * Returns local currency sign string for those applications that need to * handle currency sign separately. + * * @param {string} currencyCode ISO-4217 3-letter currency code. * @return {string} Local currency sign for given currency. */ @@ -151,6 +153,7 @@ goog.i18n.currency.getPortableCurrencyPattern = function(currencyCode) { /** * Return portable currency sign string for those applications that need to * handle currency sign themselves. + * * @param {string} currencyCode ISO-4217 3-letter currency code. * @return {string} Portable currency sign for given currency. */ @@ -160,13 +163,13 @@ goog.i18n.currency.getPortableCurrencySign = function(currencyCode) { /** - * This function returns the default currency sign position. Some application + * This function returns the default currency sign position. Some applications * may want to handle currency sign and currency amount separately. This - * function can be used in such situation to position the currency sign - * relative to amount field correctly. + * function can be used in such situations to correctly position the currency + * sign relative to the amount. + * * To match the behavior of ICU, position is not determined by display locale. - * This method will always return true for now (because of the change of - * data) and should be avoided if possible. + * * @param {string} currencyCode ISO-4217 3-letter currency code. * @return {boolean} true if currency should be positioned before amount field. */ @@ -177,13 +180,12 @@ goog.i18n.currency.isPrefixSignPosition = function(currencyCode) { /** - * This function construct the currency pattern. Currency sign is provided. The + * This function constructs the currency pattern. Currency sign is provided. The * pattern information is encoded in patternNum. * * @param {number} patternNum Encoded pattern number that has * currency pattern information. - * @param {string} sign the currency sign that will be used in pattern. - * + * @param {string} sign The currency sign that will be used in pattern. * @return {string} currency pattern string. * @private */ @@ -219,7 +221,6 @@ goog.i18n.currency.getCurrencyPattern_ = function(patternNum, sign) { * * @param {string} pattern currency pattern string. * @param {string} currencyCode 3-letter currency code. - * * @return {string} modified currency pattern string. */ goog.i18n.currency.adjustPrecision = function(pattern, currencyCode) { @@ -238,6 +239,23 @@ goog.i18n.currency.adjustPrecision = function(pattern, currencyCode) { /** * Tier 1 currency information. + * + * The first number in the array is a combination of the precision mask and + * other flags. The precision mask indicates how many decimal places to show for + * the currency. Valid values are [0..7]. The position flag indicates whether + * the currency sign should be positioned after the number. Valid values are 0 + * (before the number) or 16 (after the number). The space flag indicates + * whether a space should be inserted between the currency sign and number. + * Valid values are 0 (no space) and 24 (space). + * + * The number in the array is calculated by adding together the mask and flag + * values. For example: + * + * 0: no precision (0), currency sign first (0), no space (0) + * 2: two decimals precision (2), currency sign first (0), no space (0) + * 18: two decimals precision (2), currency sign last (16), no space (0) + * 42: two decimals precision (2), currency sign last (16), space (24) + * * @type {!Object.} */ goog.i18n.currency.CurrencyInfo = { @@ -273,7 +291,7 @@ goog.i18n.currency.CurrencyInfo = { 'PEN': [2, 'S/.', 'S/.'], 'PHP': [2, '\u20B1', 'Php'], 'PKR': [0, 'Rs', 'PKRs.'], - 'RUB': [2, 'Rup', 'Rup'], + 'RUB': [42, 'руб.', 'руб.'], 'SAR': [2, 'Rial', 'Rial'], 'SEK': [2, 'kr', 'kr'], 'SGD': [2, '$', 'S$'], diff --git a/master/closure-library/closure/goog/i18n/currencycodemap.js b/edit/closure-library/closure/goog/i18n/currencycodemap.js similarity index 99% rename from master/closure-library/closure/goog/i18n/currencycodemap.js rename to edit/closure-library/closure/goog/i18n/currencycodemap.js index 57cbfe42c1..e19302325b 100644 --- a/master/closure-library/closure/goog/i18n/currencycodemap.js +++ b/edit/closure-library/closure/goog/i18n/currencycodemap.js @@ -23,6 +23,7 @@ goog.provide('goog.i18n.currencyCodeMap'); goog.provide('goog.i18n.currencyCodeMapTier2'); + /** * The mapping of currency symbol through intl currency code. * The source of information is mostly from wikipedia and CLDR. Since there is diff --git a/master/closure-library/closure/goog/i18n/datetimeformat.js b/edit/closure-library/closure/goog/i18n/datetimeformat.js similarity index 94% rename from master/closure-library/closure/goog/i18n/datetimeformat.js rename to edit/closure-library/closure/goog/i18n/datetimeformat.js index be1e9100f3..849ea6941b 100644 --- a/master/closure-library/closure/goog/i18n/datetimeformat.js +++ b/edit/closure-library/closure/goog/i18n/datetimeformat.js @@ -24,7 +24,6 @@ goog.provide('goog.i18n.DateTimeFormat'); goog.provide('goog.i18n.DateTimeFormat.Format'); goog.require('goog.asserts'); -goog.require('goog.date.DateLike'); goog.require('goog.i18n.DateTimeSymbols'); goog.require('goog.i18n.TimeZone'); goog.require('goog.string'); @@ -249,8 +248,11 @@ goog.i18n.DateTimeFormat.prototype.applyStandardPattern_ = } else if (formatType < 8) { pattern = goog.i18n.DateTimeSymbols.TIMEFORMATS[formatType - 4]; } else if (formatType < 12) { - pattern = goog.i18n.DateTimeSymbols.DATEFORMATS[formatType - 8] + - ' ' + goog.i18n.DateTimeSymbols.TIMEFORMATS[formatType - 8]; + pattern = goog.i18n.DateTimeSymbols.DATETIMEFORMATS[formatType - 8]; + pattern = pattern.replace('{1}', + goog.i18n.DateTimeSymbols.DATEFORMATS[formatType - 8]); + pattern = pattern.replace('{0}', + goog.i18n.DateTimeSymbols.TIMEFORMATS[formatType - 8]); } else { this.applyStandardPattern_(goog.i18n.DateTimeFormat.Format.MEDIUM_DATETIME); return; @@ -263,11 +265,15 @@ goog.i18n.DateTimeFormat.prototype.applyStandardPattern_ = * Localizes a string potentially containing numbers, replacing ASCII digits * with native digits if specified so by the locale. Leaves other characters. * + * Although this is not private anymore, is should not be used. + * We needed to make it public so that we can use it in goog.date.relative. + * But when CLDR gets better support for relative dates, this will be + * refactored and will become private again. + * * @param {string} input the string to be localized, using ASCII digits. * @return {string} localized string, potentially using native digits. - * @private */ -goog.i18n.DateTimeFormat.prototype.localizeNumbers_ = function(input) { +goog.i18n.DateTimeFormat.prototype.localizeNumbers = function(input) { if (goog.i18n.DateTimeSymbols.ZERODIGIT === undefined) { return input; } @@ -317,7 +323,7 @@ goog.i18n.DateTimeFormat.prototype.formatYear_ = function(count, date) { if (value < 0) { value = -value; } - return this.localizeNumbers_(count == 2 ? + return this.localizeNumbers(count == 2 ? goog.string.padNumber(value % 100, 2) : String(value)); }; @@ -339,7 +345,7 @@ goog.i18n.DateTimeFormat.prototype.formatMonth_ = function(count, date) { case 4: return goog.i18n.DateTimeSymbols.MONTHS[value]; case 3: return goog.i18n.DateTimeSymbols.SHORTMONTHS[value]; default: - return this.localizeNumbers_(goog.string.padNumber(value + 1, count)); + return this.localizeNumbers(goog.string.padNumber(value + 1, count)); } }; @@ -355,7 +361,7 @@ goog.i18n.DateTimeFormat.prototype.formatMonth_ = function(count, date) { */ goog.i18n.DateTimeFormat.prototype.format24Hours_ = function(count, date) { - return this.localizeNumbers_( + return this.localizeNumbers( goog.string.padNumber(date.getHours() || 24, count)); }; @@ -375,7 +381,7 @@ goog.i18n.DateTimeFormat.prototype.formatFractionalSeconds_ = function(count, date) { // Fractional seconds left-justify, append 0 for precision beyond 3 var value = date.getTime() % 1000 / 1000; - return this.localizeNumbers_( + return this.localizeNumbers( value.toFixed(Math.min(3, count)).substr(2) + (count > 3 ? goog.string.padNumber(0, count - 3) : '')); }; @@ -424,7 +430,7 @@ goog.i18n.DateTimeFormat.prototype.formatAmPm_ = function(count, date) { */ goog.i18n.DateTimeFormat.prototype.format1To12Hours_ = function(count, date) { - return this.localizeNumbers_( + return this.localizeNumbers( goog.string.padNumber(date.getHours() % 12 || 12, count)); }; @@ -440,7 +446,7 @@ goog.i18n.DateTimeFormat.prototype.format1To12Hours_ = */ goog.i18n.DateTimeFormat.prototype.format0To11Hours_ = function(count, date) { - return this.localizeNumbers_( + return this.localizeNumbers( goog.string.padNumber(date.getHours() % 12, count)); }; @@ -456,7 +462,7 @@ goog.i18n.DateTimeFormat.prototype.format0To11Hours_ = */ goog.i18n.DateTimeFormat.prototype.format0To23Hours_ = function(count, date) { - return this.localizeNumbers_(goog.string.padNumber(date.getHours(), count)); + return this.localizeNumbers(goog.string.padNumber(date.getHours(), count)); }; @@ -480,7 +486,7 @@ goog.i18n.DateTimeFormat.prototype.formatStandaloneDay_ = case 3: return goog.i18n.DateTimeSymbols.STANDALONESHORTWEEKDAYS[value]; default: - return this.localizeNumbers_(goog.string.padNumber(value, 1)); + return this.localizeNumbers(goog.string.padNumber(value, 1)); } }; @@ -505,7 +511,7 @@ goog.i18n.DateTimeFormat.prototype.formatStandaloneMonth_ = case 3: return goog.i18n.DateTimeSymbols.STANDALONESHORTMONTHS[value]; default: - return this.localizeNumbers_(goog.string.padNumber(value + 1, count)); + return this.localizeNumbers(goog.string.padNumber(value + 1, count)); } }; @@ -537,7 +543,7 @@ goog.i18n.DateTimeFormat.prototype.formatQuarter_ = * @private */ goog.i18n.DateTimeFormat.prototype.formatDate_ = function(count, date) { - return this.localizeNumbers_(goog.string.padNumber(date.getDate(), count)); + return this.localizeNumbers(goog.string.padNumber(date.getDate(), count)); }; @@ -552,7 +558,7 @@ goog.i18n.DateTimeFormat.prototype.formatDate_ = function(count, date) { */ goog.i18n.DateTimeFormat.prototype.formatMinutes_ = function(count, date) { - return this.localizeNumbers_(goog.string.padNumber(date.getMinutes(), count)); + return this.localizeNumbers(goog.string.padNumber(date.getMinutes(), count)); }; @@ -567,7 +573,7 @@ goog.i18n.DateTimeFormat.prototype.formatMinutes_ = */ goog.i18n.DateTimeFormat.prototype.formatSeconds_ = function(count, date) { - return this.localizeNumbers_(goog.string.padNumber(date.getSeconds(), count)); + return this.localizeNumbers(goog.string.padNumber(date.getSeconds(), count)); }; @@ -589,7 +595,7 @@ goog.i18n.DateTimeFormat.prototype.formatTimeZoneRFC_ = // RFC 822 formats should be kept in ASCII, but localized GMT formats may need // to use native digits. return count < 4 ? opt_timeZone.getRFCTimeZoneString(date) : - this.localizeNumbers_(opt_timeZone.getGMTString(date)); + this.localizeNumbers(opt_timeZone.getGMTString(date)); }; diff --git a/master/closure-library/closure/goog/i18n/datetimeparse.js b/edit/closure-library/closure/goog/i18n/datetimeparse.js similarity index 97% rename from master/closure-library/closure/goog/i18n/datetimeparse.js rename to edit/closure-library/closure/goog/i18n/datetimeparse.js index ea31728c87..e8a2bd1e21 100644 --- a/master/closure-library/closure/goog/i18n/datetimeparse.js +++ b/edit/closure-library/closure/goog/i18n/datetimeparse.js @@ -22,7 +22,6 @@ */ goog.provide('goog.i18n.DateTimeParse'); -goog.require('goog.date.DateLike'); goog.require('goog.i18n.DateTimeFormat'); goog.require('goog.i18n.DateTimeSymbols'); @@ -239,8 +238,11 @@ goog.i18n.DateTimeParse.prototype.applyStandardPattern_ = function(formatType) { } else if (formatType < 8) { pattern = goog.i18n.DateTimeSymbols.TIMEFORMATS[formatType - 4]; } else { - pattern = goog.i18n.DateTimeSymbols.DATEFORMATS[formatType - 8] + - ' ' + goog.i18n.DateTimeSymbols.TIMEFORMATS[formatType - 8]; + pattern = goog.i18n.DateTimeSymbols.DATETIMEFORMATS[formatType - 8]; + pattern = pattern.replace('{1}', + goog.i18n.DateTimeSymbols.DATEFORMATS[formatType - 8]); + pattern = pattern.replace('{0}', + goog.i18n.DateTimeSymbols.TIMEFORMATS[formatType - 8]); } this.applyPattern_(pattern); }; @@ -828,7 +830,23 @@ goog.i18n.DateTimeParse.prototype.parseTimeZoneOffset_ = * @private */ goog.i18n.DateTimeParse.prototype.parseInt_ = function(text, pos) { - var m = text.substring(pos[0]).match(/^\d+/); + // Delocalizes the string containing native digits specified by the locale, + // replaces the natvie digits with ASCII digits. Leaves other characters. + // This is the reverse operation of localizeNumbers_ in datetimeformat.js. + if (goog.i18n.DateTimeSymbols.ZERODIGIT) { + var parts = []; + for (var i = pos[0]; i < text.length; i++) { + var c = text.charCodeAt(i) - goog.i18n.DateTimeSymbols.ZERODIGIT; + parts.push((0 <= c && c <= 9) ? + String.fromCharCode(c + 0x30) : + text.charAt(i)); + } + text = parts.join(''); + } else { + text = text.substring(pos[0]); + } + + var m = text.match(/^\d+/); if (!m) { return -1; } diff --git a/master/closure-library/closure/goog/i18n/datetimepatterns.js b/edit/closure-library/closure/goog/i18n/datetimepatterns.js similarity index 84% rename from master/closure-library/closure/goog/i18n/datetimepatterns.js rename to edit/closure-library/closure/goog/i18n/datetimepatterns.js index d34c61ea79..e54548a4bb 100644 --- a/master/closure-library/closure/goog/i18n/datetimepatterns.js +++ b/edit/closure-library/closure/goog/i18n/datetimepatterns.js @@ -35,6 +35,8 @@ * almost all locales thus won't be included here. */ +/* File generated from CLDR ver. 23.0 */ + goog.provide('goog.i18n.DateTimePatterns'); goog.provide('goog.i18n.DateTimePatterns_af'); @@ -42,6 +44,7 @@ goog.provide('goog.i18n.DateTimePatterns_am'); goog.provide('goog.i18n.DateTimePatterns_ar'); goog.provide('goog.i18n.DateTimePatterns_bg'); goog.provide('goog.i18n.DateTimePatterns_bn'); +goog.provide('goog.i18n.DateTimePatterns_br'); goog.provide('goog.i18n.DateTimePatterns_ca'); goog.provide('goog.i18n.DateTimePatterns_chr'); goog.provide('goog.i18n.DateTimePatterns_cs'); @@ -61,6 +64,7 @@ goog.provide('goog.i18n.DateTimePatterns_en_US'); goog.provide('goog.i18n.DateTimePatterns_en_ZA'); goog.provide('goog.i18n.DateTimePatterns_es'); goog.provide('goog.i18n.DateTimePatterns_es_419'); +goog.provide('goog.i18n.DateTimePatterns_es_ES'); goog.provide('goog.i18n.DateTimePatterns_et'); goog.provide('goog.i18n.DateTimePatterns_eu'); goog.provide('goog.i18n.DateTimePatterns_fa'); @@ -92,13 +96,14 @@ goog.provide('goog.i18n.DateTimePatterns_mo'); goog.provide('goog.i18n.DateTimePatterns_mr'); goog.provide('goog.i18n.DateTimePatterns_ms'); goog.provide('goog.i18n.DateTimePatterns_mt'); +goog.provide('goog.i18n.DateTimePatterns_nb'); goog.provide('goog.i18n.DateTimePatterns_nl'); goog.provide('goog.i18n.DateTimePatterns_no'); goog.provide('goog.i18n.DateTimePatterns_or'); goog.provide('goog.i18n.DateTimePatterns_pl'); +goog.provide('goog.i18n.DateTimePatterns_pt'); goog.provide('goog.i18n.DateTimePatterns_pt_BR'); goog.provide('goog.i18n.DateTimePatterns_pt_PT'); -goog.provide('goog.i18n.DateTimePatterns_pt'); goog.provide('goog.i18n.DateTimePatterns_ro'); goog.provide('goog.i18n.DateTimePatterns_ru'); goog.provide('goog.i18n.DateTimePatterns_sk'); @@ -115,10 +120,10 @@ goog.provide('goog.i18n.DateTimePatterns_tr'); goog.provide('goog.i18n.DateTimePatterns_uk'); goog.provide('goog.i18n.DateTimePatterns_ur'); goog.provide('goog.i18n.DateTimePatterns_vi'); -goog.provide('goog.i18n.DateTimePatterns_zh_TW'); +goog.provide('goog.i18n.DateTimePatterns_zh'); goog.provide('goog.i18n.DateTimePatterns_zh_CN'); goog.provide('goog.i18n.DateTimePatterns_zh_HK'); -goog.provide('goog.i18n.DateTimePatterns_zh'); +goog.provide('goog.i18n.DateTimePatterns_zh_TW'); goog.provide('goog.i18n.DateTimePatterns_zu'); @@ -130,9 +135,10 @@ goog.i18n.DateTimePatterns_af = { YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'MMM d', - MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -148,6 +154,7 @@ goog.i18n.DateTimePatterns_am = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -161,8 +168,9 @@ goog.i18n.DateTimePatterns_ar = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd‏/M', + MONTH_DAY_SHORT: 'd/‏M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', DAY_ABBR: 'd' }; @@ -171,13 +179,14 @@ goog.i18n.DateTimePatterns_ar = { * Extended set of localized date/time patterns for locale bg. */ goog.i18n.DateTimePatterns_bg = { - YEAR_FULL: 'y', + YEAR_FULL: 'yyyy \'г\'.', YEAR_MONTH_ABBR: 'MMM y \'г\'.', - YEAR_MONTH_FULL: 'MMMM yyyy \'г\'.', + YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd.M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'd MMM, EEE', DAY_ABBR: 'd' }; @@ -191,8 +200,25 @@ goog.i18n.DateTimePatterns_bn = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd-M', + MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale br. + */ +goog.i18n.DateTimePatterns_br = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'y MMM', + YEAR_MONTH_FULL: 'yyyy MMMM', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'MM-dd', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -203,11 +229,12 @@ goog.i18n.DateTimePatterns_bn = { goog.i18n.DateTimePatterns_ca = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'LLL y', - YEAR_MONTH_FULL: 'LLLL yyyy', + YEAR_MONTH_FULL: 'LLLL \'de\' yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -223,6 +250,7 @@ goog.i18n.DateTimePatterns_chr = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -231,13 +259,14 @@ goog.i18n.DateTimePatterns_chr = { * Extended set of localized date/time patterns for locale cs. */ goog.i18n.DateTimePatterns_cs = { - YEAR_FULL: 'y', - YEAR_MONTH_ABBR: 'LLL y', + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'LLLL y', YEAR_MONTH_FULL: 'LLLL yyyy', - MONTH_DAY_ABBR: 'd. MMM', - MONTH_DAY_FULL: 'dd. MMMM', - MONTH_DAY_SHORT: 'd.M', - MONTH_DAY_MEDIUM: 'd. MMMM', + MONTH_DAY_ABBR: 'd. M.', + MONTH_DAY_FULL: 'dd. M.', + MONTH_DAY_SHORT: 'd. M.', + MONTH_DAY_MEDIUM: 'd. M.', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d. M.', DAY_ABBR: 'd.' }; @@ -253,6 +282,7 @@ goog.i18n.DateTimePatterns_cy = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -261,13 +291,14 @@ goog.i18n.DateTimePatterns_cy = { * Extended set of localized date/time patterns for locale da. */ goog.i18n.DateTimePatterns_da = { - YEAR_FULL: 'y', + YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd. MMM', MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d. MMM', DAY_ABBR: 'd.' }; @@ -276,13 +307,14 @@ goog.i18n.DateTimePatterns_da = { * Extended set of localized date/time patterns for locale de. */ goog.i18n.DateTimePatterns_de = { - YEAR_FULL: 'y', + YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd. MMM', MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'd.M.', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d. MMM', DAY_ABBR: 'd' }; @@ -291,13 +323,14 @@ goog.i18n.DateTimePatterns_de = { * Extended set of localized date/time patterns for locale de_AT. */ goog.i18n.DateTimePatterns_de_AT = { - YEAR_FULL: 'y', + YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd. MMM', MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'd.M.', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d. MMM', DAY_ABBR: 'd' }; @@ -306,13 +339,14 @@ goog.i18n.DateTimePatterns_de_AT = { * Extended set of localized date/time patterns for locale de_CH. */ goog.i18n.DateTimePatterns_de_CH = { - YEAR_FULL: 'y', + YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd. MMM', MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'd.M.', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d. MMM', DAY_ABBR: 'd' }; @@ -321,13 +355,14 @@ goog.i18n.DateTimePatterns_de_CH = { * Extended set of localized date/time patterns for locale el. */ goog.i18n.DateTimePatterns_el = { - YEAR_FULL: 'y', + YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'LLL y', YEAR_MONTH_FULL: 'LLLL yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -343,6 +378,7 @@ goog.i18n.DateTimePatterns_en = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -353,11 +389,12 @@ goog.i18n.DateTimePatterns_en = { goog.i18n.DateTimePatterns_en_AU = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_SHORT: 'dd/MM', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -371,8 +408,9 @@ goog.i18n.DateTimePatterns_en_GB = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_SHORT: 'dd/MM', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -383,11 +421,12 @@ goog.i18n.DateTimePatterns_en_GB = { goog.i18n.DateTimePatterns_en_IE = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -401,8 +440,9 @@ goog.i18n.DateTimePatterns_en_IN = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_SHORT: 'dd/MM', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -416,8 +456,9 @@ goog.i18n.DateTimePatterns_en_SG = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_SHORT: 'dd/MM', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -433,6 +474,7 @@ goog.i18n.DateTimePatterns_en_US = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -448,6 +490,7 @@ goog.i18n.DateTimePatterns_en_ZA = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'MM/dd', MONTH_DAY_MEDIUM: 'dd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE dd MMM', DAY_ABBR: 'd' }; @@ -458,11 +501,12 @@ goog.i18n.DateTimePatterns_en_ZA = { goog.i18n.DateTimePatterns_es = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'd \'de\' MMM', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd \'de\' MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -473,11 +517,28 @@ goog.i18n.DateTimePatterns_es = { goog.i18n.DateTimePatterns_es_419 = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'd \'de\' MMM', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd \'de\' MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale es_ES. + */ +goog.i18n.DateTimePatterns_es_ES = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd \'de\' MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -493,6 +554,7 @@ goog.i18n.DateTimePatterns_et = { MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'd.M', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d. MMM', DAY_ABBR: 'd' }; @@ -508,6 +570,7 @@ goog.i18n.DateTimePatterns_eu = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -516,13 +579,14 @@ goog.i18n.DateTimePatterns_eu = { * Extended set of localized date/time patterns for locale fa. */ goog.i18n.DateTimePatterns_fa = { - YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM yyyy', + YEAR_FULL: 'y G', + YEAR_MONTH_ABBR: 'MMM y G', + YEAR_MONTH_FULL: 'MMMM y G', MONTH_DAY_ABBR: 'd LLL', MONTH_DAY_FULL: 'dd LLLL', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'd LLLL', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d LLL', DAY_ABBR: 'd' }; @@ -538,6 +602,7 @@ goog.i18n.DateTimePatterns_fi = { MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'd.M.', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'ccc d. MMM', DAY_ABBR: 'd' }; @@ -547,12 +612,13 @@ goog.i18n.DateTimePatterns_fi = { */ goog.i18n.DateTimePatterns_fil = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'y MMM', - YEAR_MONTH_FULL: 'yyyy MMMM', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M-d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE MMM d', DAY_ABBR: 'd' }; @@ -568,6 +634,7 @@ goog.i18n.DateTimePatterns_fr = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -583,6 +650,7 @@ goog.i18n.DateTimePatterns_fr_CA = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'M-d', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -596,8 +664,9 @@ goog.i18n.DateTimePatterns_gl = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_SHORT: 'd-M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -606,13 +675,14 @@ goog.i18n.DateTimePatterns_gl = { * Extended set of localized date/time patterns for locale gsw. */ goog.i18n.DateTimePatterns_gsw = { - YEAR_FULL: 'y', + YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd. MMM', MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'd.M.', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d. MMM', DAY_ABBR: 'd' }; @@ -626,8 +696,9 @@ goog.i18n.DateTimePatterns_gu = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd-M', + MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -641,8 +712,9 @@ goog.i18n.DateTimePatterns_haw = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -651,13 +723,14 @@ goog.i18n.DateTimePatterns_haw = { * Extended set of localized date/time patterns for locale he. */ goog.i18n.DateTimePatterns_he = { - YEAR_FULL: 'y', + YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd בMMM', MONTH_DAY_FULL: 'dd בMMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd בMMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d בMMM', DAY_ABBR: 'd' }; @@ -671,8 +744,9 @@ goog.i18n.DateTimePatterns_hi = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd-M', + MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -688,6 +762,7 @@ goog.i18n.DateTimePatterns_hr = { MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'd. M.', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d. MMM', DAY_ABBR: 'd.' }; @@ -701,8 +776,9 @@ goog.i18n.DateTimePatterns_hu = { YEAR_MONTH_FULL: 'yyyy. MMMM', MONTH_DAY_ABBR: 'MMM d.', MONTH_DAY_FULL: 'MMMM dd.', - MONTH_DAY_SHORT: 'M.d.', + MONTH_DAY_SHORT: 'M. d.', MONTH_DAY_MEDIUM: 'MMMM d.', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d., EEE', DAY_ABBR: 'd' }; @@ -718,6 +794,7 @@ goog.i18n.DateTimePatterns_id = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -733,6 +810,7 @@ goog.i18n.DateTimePatterns_in = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -748,6 +826,7 @@ goog.i18n.DateTimePatterns_is = { MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'd.M', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d. MMM', DAY_ABBR: 'd' }; @@ -763,6 +842,7 @@ goog.i18n.DateTimePatterns_it = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -771,13 +851,14 @@ goog.i18n.DateTimePatterns_it = { * Extended set of localized date/time patterns for locale iw. */ goog.i18n.DateTimePatterns_iw = { - YEAR_FULL: 'y', + YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd בMMM', MONTH_DAY_FULL: 'dd בMMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd בMMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d בMMM', DAY_ABBR: 'd' }; @@ -786,13 +867,14 @@ goog.i18n.DateTimePatterns_iw = { * Extended set of localized date/time patterns for locale ja. */ goog.i18n.DateTimePatterns_ja = { - YEAR_FULL: 'y年', + YEAR_FULL: 'yyyy年', YEAR_MONTH_ABBR: 'y年M月', YEAR_MONTH_FULL: 'yyyy年M月', MONTH_DAY_ABBR: 'M月d日', MONTH_DAY_FULL: 'M月dd日', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'M月d日', + WEEKDAY_MONTH_DAY_MEDIUM: 'M月d日(EEE)', DAY_ABBR: 'd日' }; @@ -806,8 +888,9 @@ goog.i18n.DateTimePatterns_kn = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd-M', + MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -821,8 +904,9 @@ goog.i18n.DateTimePatterns_ko = { YEAR_MONTH_FULL: 'yyyy년 MMMM', MONTH_DAY_ABBR: 'MMM d일', MONTH_DAY_FULL: 'MMMM dd일', - MONTH_DAY_SHORT: 'M. d', + MONTH_DAY_SHORT: 'M. d.', MONTH_DAY_MEDIUM: 'MMMM d일', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d일 (EEE)', DAY_ABBR: 'd일' }; @@ -838,6 +922,7 @@ goog.i18n.DateTimePatterns_ln = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -847,12 +932,13 @@ goog.i18n.DateTimePatterns_ln = { */ goog.i18n.DateTimePatterns_lt = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'y MMM', - YEAR_MONTH_FULL: 'yyyy MMMM', - MONTH_DAY_ABBR: 'MMM-d', + YEAR_MONTH_ABBR: 'MMM, y', + YEAR_MONTH_FULL: 'MMMM, yyyy', + MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM-dd', - MONTH_DAY_SHORT: 'M.d', - MONTH_DAY_MEDIUM: 'MMMM-d', + MONTH_DAY_SHORT: 'MM-d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -861,13 +947,14 @@ goog.i18n.DateTimePatterns_lt = { * Extended set of localized date/time patterns for locale lv. */ goog.i18n.DateTimePatterns_lv = { - YEAR_FULL: 'y. \'g\'.', - YEAR_MONTH_ABBR: 'yyyy. \'g\'. MMM', + YEAR_FULL: 'yyyy. \'g\'.', + YEAR_MONTH_ABBR: 'y. \'g\'. MMM', YEAR_MONTH_FULL: 'yyyy. \'g\'. MMMM', MONTH_DAY_ABBR: 'd. MMM', MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'dd.MM.', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d. MMM', DAY_ABBR: 'd' }; @@ -881,8 +968,9 @@ goog.i18n.DateTimePatterns_ml = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'd-M', + MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -896,8 +984,9 @@ goog.i18n.DateTimePatterns_mo = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd.M', + MONTH_DAY_SHORT: 'dd.MM', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -911,8 +1000,9 @@ goog.i18n.DateTimePatterns_mr = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd-M', + MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -928,6 +1018,7 @@ goog.i18n.DateTimePatterns_ms = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd-M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -941,12 +1032,29 @@ goog.i18n.DateTimePatterns_mt = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; +/** + * Extended set of localized date/time patterns for locale nb. + */ +goog.i18n.DateTimePatterns_nb = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd. MMM', + MONTH_DAY_FULL: 'dd. MMMM', + MONTH_DAY_SHORT: 'd.M.', + MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d. MMM', + DAY_ABBR: 'd.' +}; + + /** * Extended set of localized date/time patterns for locale nl. */ @@ -958,6 +1066,7 @@ goog.i18n.DateTimePatterns_nl = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd-M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -973,6 +1082,7 @@ goog.i18n.DateTimePatterns_no = { MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'd.M.', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d. MMM', DAY_ABBR: 'd.' }; @@ -982,12 +1092,13 @@ goog.i18n.DateTimePatterns_no = { */ goog.i18n.DateTimePatterns_or = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM y', + YEAR_MONTH_ABBR: 'y MMM', + YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'd-M', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -1001,38 +1112,9 @@ goog.i18n.DateTimePatterns_pl = { YEAR_MONTH_FULL: 'LLLL yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd.M', + MONTH_DAY_SHORT: 'd.MM', MONTH_DAY_MEDIUM: 'd MMMM', - DAY_ABBR: 'd' -}; - - -/** - * Extended set of localized date/time patterns for locale pt_BR. - */ -goog.i18n.DateTimePatterns_pt_BR = { - YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'MMM \'de\' y', - YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', - MONTH_DAY_ABBR: 'd \'de\' MMM', - MONTH_DAY_FULL: 'dd \'de\' MMMM', - MONTH_DAY_SHORT: 'd/M', - MONTH_DAY_MEDIUM: 'd \'de\' MMMM', - DAY_ABBR: 'd' -}; - - -/** - * Extended set of localized date/time patterns for locale pt_PT. - */ -goog.i18n.DateTimePatterns_pt_PT = { - YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'MM/y', - YEAR_MONTH_FULL: 'MM/yyyy', - MONTH_DAY_ABBR: 'd/MM', - MONTH_DAY_FULL: 'dd/MM', - MONTH_DAY_SHORT: 'd/M', - MONTH_DAY_MEDIUM: 'd/MM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -1048,6 +1130,39 @@ goog.i18n.DateTimePatterns_pt = { MONTH_DAY_FULL: 'dd \'de\' MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d \'de\' MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale pt_BR. + */ +goog.i18n.DateTimePatterns_pt_BR = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM \'de\' y', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd \'de\' MMM', + MONTH_DAY_FULL: 'dd \'de\' MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d \'de\' MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale pt_PT. + */ +goog.i18n.DateTimePatterns_pt_PT = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MM/y', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd/MM', + MONTH_DAY_FULL: 'dd \'de\' MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d/MM', DAY_ABBR: 'd' }; @@ -1061,8 +1176,9 @@ goog.i18n.DateTimePatterns_ro = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd.M', + MONTH_DAY_SHORT: 'dd.MM', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -1071,13 +1187,14 @@ goog.i18n.DateTimePatterns_ro = { * Extended set of localized date/time patterns for locale ru. */ goog.i18n.DateTimePatterns_ru = { - YEAR_FULL: 'y', + YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'LLL y', YEAR_MONTH_FULL: 'LLLL yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd.M', + MONTH_DAY_SHORT: 'dd.MM', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'ccc, d MMM', DAY_ABBR: 'd' }; @@ -1089,10 +1206,11 @@ goog.i18n.DateTimePatterns_sk = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'LLL y', YEAR_MONTH_FULL: 'LLLL yyyy', - MONTH_DAY_ABBR: 'd. MMM', + MONTH_DAY_ABBR: 'd. MMM.', MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'd.M.', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d. MMM.', DAY_ABBR: 'd.' }; @@ -1108,6 +1226,7 @@ goog.i18n.DateTimePatterns_sl = { MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'd. M.', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d. MMM', DAY_ABBR: 'd' }; @@ -1123,6 +1242,7 @@ goog.i18n.DateTimePatterns_sq = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'M-d', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -1131,13 +1251,14 @@ goog.i18n.DateTimePatterns_sq = { * Extended set of localized date/time patterns for locale sr. */ goog.i18n.DateTimePatterns_sr = { - YEAR_FULL: 'y.', - YEAR_MONTH_ABBR: 'MMM. y', - YEAR_MONTH_FULL: 'MMMM. yyyy', - MONTH_DAY_ABBR: 'MMM d.', - MONTH_DAY_FULL: 'MMMM dd.', - MONTH_DAY_SHORT: 'M-d', - MONTH_DAY_MEDIUM: 'MMMM d.', + YEAR_FULL: 'yyyy.', + YEAR_MONTH_ABBR: 'MMM y.', + YEAR_MONTH_FULL: 'MMMM yyyy.', + MONTH_DAY_ABBR: 'd. MMM', + MONTH_DAY_FULL: 'dd. MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d. MMM', DAY_ABBR: 'd' }; @@ -1149,10 +1270,11 @@ goog.i18n.DateTimePatterns_sv = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'd:\'e\' MMM', + MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd:\'e\' MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd:\'e\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -1164,10 +1286,11 @@ goog.i18n.DateTimePatterns_sw = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'MMM d', - MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M/d', - MONTH_DAY_MEDIUM: 'MMMM d', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd-M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -1181,8 +1304,9 @@ goog.i18n.DateTimePatterns_ta = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd-M', + MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -1196,8 +1320,9 @@ goog.i18n.DateTimePatterns_te = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd-M', + MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -1206,13 +1331,14 @@ goog.i18n.DateTimePatterns_te = { * Extended set of localized date/time patterns for locale th. */ goog.i18n.DateTimePatterns_th = { - YEAR_FULL: 'G yyyy', + YEAR_FULL: 'G y', YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM yyyy', + YEAR_MONTH_FULL: 'MMMM y', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -1222,12 +1348,13 @@ goog.i18n.DateTimePatterns_th = { */ goog.i18n.DateTimePatterns_tl = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'y MMM', - YEAR_MONTH_FULL: 'yyyy MMMM', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M-d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE MMM d', DAY_ABBR: 'd' }; @@ -1236,13 +1363,14 @@ goog.i18n.DateTimePatterns_tl = { * Extended set of localized date/time patterns for locale tr. */ goog.i18n.DateTimePatterns_tr = { - YEAR_FULL: 'y', + YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'dd MMM', + MONTH_DAY_ABBR: 'd MMMM', MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'dd/MM', MONTH_DAY_MEDIUM: 'dd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'd MMMM EEE', DAY_ABBR: 'd' }; @@ -1256,8 +1384,9 @@ goog.i18n.DateTimePatterns_uk = { YEAR_MONTH_FULL: 'LLLL yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd.M', + MONTH_DAY_SHORT: 'dd.MM', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -1267,12 +1396,13 @@ goog.i18n.DateTimePatterns_uk = { */ goog.i18n.DateTimePatterns_ur = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'y MMM', - YEAR_MONTH_FULL: 'yyyy MMMM', - MONTH_DAY_ABBR: 'MMM d', - MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', - MONTH_DAY_MEDIUM: 'MMMM d', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', DAY_ABBR: 'd' }; @@ -1281,28 +1411,30 @@ goog.i18n.DateTimePatterns_ur = { * Extended set of localized date/time patterns for locale vi. */ goog.i18n.DateTimePatterns_vi = { - YEAR_FULL: 'y', + YEAR_FULL: '\'Năm\' yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_ABBR: 'dd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd-M', - MONTH_DAY_MEDIUM: 'd MMMM', - DAY_ABBR: '\'Ngày\' d' + MONTH_DAY_SHORT: 'dd-M', + MONTH_DAY_MEDIUM: 'dd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, dd MMM', + DAY_ABBR: '\'Ngày\' dd' }; /** - * Extended set of localized date/time patterns for locale zh_TW. + * Extended set of localized date/time patterns for locale zh. */ -goog.i18n.DateTimePatterns_zh_TW = { - YEAR_FULL: 'y年', +goog.i18n.DateTimePatterns_zh = { + YEAR_FULL: 'yyyy年', YEAR_MONTH_ABBR: 'y年M月', YEAR_MONTH_FULL: 'yyyy年M月', MONTH_DAY_ABBR: 'M月d日', MONTH_DAY_FULL: 'M月dd日', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'M月d日', + WEEKDAY_MONTH_DAY_MEDIUM: 'M月d日EEE', DAY_ABBR: 'd日' }; @@ -1311,13 +1443,14 @@ goog.i18n.DateTimePatterns_zh_TW = { * Extended set of localized date/time patterns for locale zh_CN. */ goog.i18n.DateTimePatterns_zh_CN = { - YEAR_FULL: 'y年', + YEAR_FULL: 'yyyy年', YEAR_MONTH_ABBR: 'y年M月', YEAR_MONTH_FULL: 'yyyy年M月', MONTH_DAY_ABBR: 'M月d日', MONTH_DAY_FULL: 'M月dd日', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'M月d日', + WEEKDAY_MONTH_DAY_MEDIUM: 'M月d日EEE', DAY_ABBR: 'd日' }; @@ -1326,28 +1459,30 @@ goog.i18n.DateTimePatterns_zh_CN = { * Extended set of localized date/time patterns for locale zh_HK. */ goog.i18n.DateTimePatterns_zh_HK = { - YEAR_FULL: 'y年', + YEAR_FULL: 'yyyy年', YEAR_MONTH_ABBR: 'y年M月', YEAR_MONTH_FULL: 'yyyy年M月', MONTH_DAY_ABBR: 'M月d日', MONTH_DAY_FULL: 'M月dd日', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'M月d日', + WEEKDAY_MONTH_DAY_MEDIUM: 'M月d日EEE', DAY_ABBR: 'd日' }; /** - * Extended set of localized date/time patterns for locale zh. + * Extended set of localized date/time patterns for locale zh_TW. */ -goog.i18n.DateTimePatterns_zh = { - YEAR_FULL: 'y年', +goog.i18n.DateTimePatterns_zh_TW = { + YEAR_FULL: 'yyyy年', YEAR_MONTH_ABBR: 'y年M月', YEAR_MONTH_FULL: 'yyyy年M月', MONTH_DAY_ABBR: 'M月d日', MONTH_DAY_FULL: 'M月dd日', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'M月d日', + WEEKDAY_MONTH_DAY_MEDIUM: 'M月d日EEE', DAY_ABBR: 'd日' }; @@ -1356,13 +1491,14 @@ goog.i18n.DateTimePatterns_zh = { * Extended set of localized date/time patterns for locale zu. */ goog.i18n.DateTimePatterns_zu = { - YEAR_FULL: 'yyyy', + YEAR_FULL: 'YYYY', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1392,6 +1528,10 @@ if (goog.LOCALE == 'bn') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_bn; } +if (goog.LOCALE == 'br') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_br; +} + if (goog.LOCALE == 'ca') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ca; } @@ -1468,6 +1608,10 @@ if (goog.LOCALE == 'es_419' || goog.LOCALE == 'es-419') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_es_419; } +if (goog.LOCALE == 'es_ES' || goog.LOCALE == 'es-ES') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_es_ES; +} + if (goog.LOCALE == 'et') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_et; } @@ -1592,6 +1736,10 @@ if (goog.LOCALE == 'mt') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_mt; } +if (goog.LOCALE == 'nb') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_nb; +} + if (goog.LOCALE == 'nl') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_nl; } @@ -1608,6 +1756,10 @@ if (goog.LOCALE == 'pl') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_pl; } +if (goog.LOCALE == 'pt') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_pt; +} + if (goog.LOCALE == 'pt_BR' || goog.LOCALE == 'pt-BR') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_pt_BR; } @@ -1616,10 +1768,6 @@ if (goog.LOCALE == 'pt_PT' || goog.LOCALE == 'pt-PT') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_pt_PT; } -if (goog.LOCALE == 'pt') { - goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_pt; -} - if (goog.LOCALE == 'ro') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ro; } @@ -1684,8 +1832,8 @@ if (goog.LOCALE == 'vi') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_vi; } -if (goog.LOCALE == 'zh_TW' || goog.LOCALE == 'zh-TW') { - goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_zh_TW; +if (goog.LOCALE == 'zh') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_zh; } if (goog.LOCALE == 'zh_CN' || goog.LOCALE == 'zh-CN') { @@ -1696,8 +1844,8 @@ if (goog.LOCALE == 'zh_HK' || goog.LOCALE == 'zh-HK') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_zh_HK; } -if (goog.LOCALE == 'zh') { - goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_zh; +if (goog.LOCALE == 'zh_TW' || goog.LOCALE == 'zh-TW') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_zh_TW; } if (goog.LOCALE == 'zu') { diff --git a/master/closure-library/closure/goog/i18n/datetimepatternsext.js b/edit/closure-library/closure/goog/i18n/datetimepatternsext.js similarity index 71% rename from master/closure-library/closure/goog/i18n/datetimepatternsext.js rename to edit/closure-library/closure/goog/i18n/datetimepatternsext.js index 9ae6eba58c..b8f93fdf13 100644 --- a/master/closure-library/closure/goog/i18n/datetimepatternsext.js +++ b/edit/closure-library/closure/goog/i18n/datetimepatternsext.js @@ -35,6 +35,8 @@ * almost all locales thus won't be included here. */ +/* File generated from CLDR ver. 23.0 */ + goog.provide('goog.i18n.DateTimePatternsExt'); goog.provide('goog.i18n.DateTimePatterns_af_NA'); @@ -44,21 +46,31 @@ goog.provide('goog.i18n.DateTimePatterns_agq_CM'); goog.provide('goog.i18n.DateTimePatterns_ak'); goog.provide('goog.i18n.DateTimePatterns_ak_GH'); goog.provide('goog.i18n.DateTimePatterns_am_ET'); +goog.provide('goog.i18n.DateTimePatterns_ar_001'); goog.provide('goog.i18n.DateTimePatterns_ar_AE'); goog.provide('goog.i18n.DateTimePatterns_ar_BH'); +goog.provide('goog.i18n.DateTimePatterns_ar_DJ'); goog.provide('goog.i18n.DateTimePatterns_ar_DZ'); goog.provide('goog.i18n.DateTimePatterns_ar_EG'); +goog.provide('goog.i18n.DateTimePatterns_ar_EH'); +goog.provide('goog.i18n.DateTimePatterns_ar_ER'); +goog.provide('goog.i18n.DateTimePatterns_ar_IL'); goog.provide('goog.i18n.DateTimePatterns_ar_IQ'); goog.provide('goog.i18n.DateTimePatterns_ar_JO'); +goog.provide('goog.i18n.DateTimePatterns_ar_KM'); goog.provide('goog.i18n.DateTimePatterns_ar_KW'); goog.provide('goog.i18n.DateTimePatterns_ar_LB'); goog.provide('goog.i18n.DateTimePatterns_ar_LY'); goog.provide('goog.i18n.DateTimePatterns_ar_MA'); +goog.provide('goog.i18n.DateTimePatterns_ar_MR'); goog.provide('goog.i18n.DateTimePatterns_ar_OM'); +goog.provide('goog.i18n.DateTimePatterns_ar_PS'); goog.provide('goog.i18n.DateTimePatterns_ar_QA'); goog.provide('goog.i18n.DateTimePatterns_ar_SA'); goog.provide('goog.i18n.DateTimePatterns_ar_SD'); +goog.provide('goog.i18n.DateTimePatterns_ar_SO'); goog.provide('goog.i18n.DateTimePatterns_ar_SY'); +goog.provide('goog.i18n.DateTimePatterns_ar_TD'); goog.provide('goog.i18n.DateTimePatterns_ar_TN'); goog.provide('goog.i18n.DateTimePatterns_ar_YE'); goog.provide('goog.i18n.DateTimePatterns_as'); @@ -86,12 +98,15 @@ goog.provide('goog.i18n.DateTimePatterns_bn_IN'); goog.provide('goog.i18n.DateTimePatterns_bo'); goog.provide('goog.i18n.DateTimePatterns_bo_CN'); goog.provide('goog.i18n.DateTimePatterns_bo_IN'); -goog.provide('goog.i18n.DateTimePatterns_br'); goog.provide('goog.i18n.DateTimePatterns_br_FR'); goog.provide('goog.i18n.DateTimePatterns_brx'); goog.provide('goog.i18n.DateTimePatterns_brx_IN'); goog.provide('goog.i18n.DateTimePatterns_bs'); -goog.provide('goog.i18n.DateTimePatterns_bs_BA'); +goog.provide('goog.i18n.DateTimePatterns_bs_Cyrl'); +goog.provide('goog.i18n.DateTimePatterns_bs_Cyrl_BA'); +goog.provide('goog.i18n.DateTimePatterns_bs_Latn'); +goog.provide('goog.i18n.DateTimePatterns_bs_Latn_BA'); +goog.provide('goog.i18n.DateTimePatterns_ca_AD'); goog.provide('goog.i18n.DateTimePatterns_ca_ES'); goog.provide('goog.i18n.DateTimePatterns_cgg'); goog.provide('goog.i18n.DateTimePatterns_cgg_UG'); @@ -111,6 +126,8 @@ goog.provide('goog.i18n.DateTimePatterns_dua'); goog.provide('goog.i18n.DateTimePatterns_dua_CM'); goog.provide('goog.i18n.DateTimePatterns_dyo'); goog.provide('goog.i18n.DateTimePatterns_dyo_SN'); +goog.provide('goog.i18n.DateTimePatterns_dz'); +goog.provide('goog.i18n.DateTimePatterns_dz_BT'); goog.provide('goog.i18n.DateTimePatterns_ebu'); goog.provide('goog.i18n.DateTimePatterns_ebu_KE'); goog.provide('goog.i18n.DateTimePatterns_ee'); @@ -118,29 +135,70 @@ goog.provide('goog.i18n.DateTimePatterns_ee_GH'); goog.provide('goog.i18n.DateTimePatterns_ee_TG'); goog.provide('goog.i18n.DateTimePatterns_el_CY'); goog.provide('goog.i18n.DateTimePatterns_el_GR'); +goog.provide('goog.i18n.DateTimePatterns_en_150'); +goog.provide('goog.i18n.DateTimePatterns_en_AG'); goog.provide('goog.i18n.DateTimePatterns_en_AS'); goog.provide('goog.i18n.DateTimePatterns_en_BB'); goog.provide('goog.i18n.DateTimePatterns_en_BE'); goog.provide('goog.i18n.DateTimePatterns_en_BM'); +goog.provide('goog.i18n.DateTimePatterns_en_BS'); goog.provide('goog.i18n.DateTimePatterns_en_BW'); goog.provide('goog.i18n.DateTimePatterns_en_BZ'); goog.provide('goog.i18n.DateTimePatterns_en_CA'); +goog.provide('goog.i18n.DateTimePatterns_en_CM'); +goog.provide('goog.i18n.DateTimePatterns_en_DM'); +goog.provide('goog.i18n.DateTimePatterns_en_FJ'); +goog.provide('goog.i18n.DateTimePatterns_en_FM'); +goog.provide('goog.i18n.DateTimePatterns_en_GD'); +goog.provide('goog.i18n.DateTimePatterns_en_GG'); +goog.provide('goog.i18n.DateTimePatterns_en_GH'); +goog.provide('goog.i18n.DateTimePatterns_en_GI'); +goog.provide('goog.i18n.DateTimePatterns_en_GM'); goog.provide('goog.i18n.DateTimePatterns_en_GU'); goog.provide('goog.i18n.DateTimePatterns_en_GY'); goog.provide('goog.i18n.DateTimePatterns_en_HK'); +goog.provide('goog.i18n.DateTimePatterns_en_IM'); +goog.provide('goog.i18n.DateTimePatterns_en_JE'); goog.provide('goog.i18n.DateTimePatterns_en_JM'); +goog.provide('goog.i18n.DateTimePatterns_en_KE'); +goog.provide('goog.i18n.DateTimePatterns_en_KI'); +goog.provide('goog.i18n.DateTimePatterns_en_KN'); +goog.provide('goog.i18n.DateTimePatterns_en_KY'); +goog.provide('goog.i18n.DateTimePatterns_en_LC'); +goog.provide('goog.i18n.DateTimePatterns_en_LR'); +goog.provide('goog.i18n.DateTimePatterns_en_LS'); +goog.provide('goog.i18n.DateTimePatterns_en_MG'); goog.provide('goog.i18n.DateTimePatterns_en_MH'); goog.provide('goog.i18n.DateTimePatterns_en_MP'); goog.provide('goog.i18n.DateTimePatterns_en_MT'); goog.provide('goog.i18n.DateTimePatterns_en_MU'); +goog.provide('goog.i18n.DateTimePatterns_en_MW'); goog.provide('goog.i18n.DateTimePatterns_en_NA'); +goog.provide('goog.i18n.DateTimePatterns_en_NG'); goog.provide('goog.i18n.DateTimePatterns_en_NZ'); +goog.provide('goog.i18n.DateTimePatterns_en_PG'); goog.provide('goog.i18n.DateTimePatterns_en_PH'); goog.provide('goog.i18n.DateTimePatterns_en_PK'); +goog.provide('goog.i18n.DateTimePatterns_en_PR'); +goog.provide('goog.i18n.DateTimePatterns_en_PW'); +goog.provide('goog.i18n.DateTimePatterns_en_SB'); +goog.provide('goog.i18n.DateTimePatterns_en_SC'); +goog.provide('goog.i18n.DateTimePatterns_en_SL'); +goog.provide('goog.i18n.DateTimePatterns_en_SS'); +goog.provide('goog.i18n.DateTimePatterns_en_SZ'); +goog.provide('goog.i18n.DateTimePatterns_en_TC'); +goog.provide('goog.i18n.DateTimePatterns_en_TO'); goog.provide('goog.i18n.DateTimePatterns_en_TT'); +goog.provide('goog.i18n.DateTimePatterns_en_TZ'); +goog.provide('goog.i18n.DateTimePatterns_en_UG'); goog.provide('goog.i18n.DateTimePatterns_en_UM'); goog.provide('goog.i18n.DateTimePatterns_en_US_POSIX'); +goog.provide('goog.i18n.DateTimePatterns_en_VC'); +goog.provide('goog.i18n.DateTimePatterns_en_VG'); goog.provide('goog.i18n.DateTimePatterns_en_VI'); +goog.provide('goog.i18n.DateTimePatterns_en_VU'); +goog.provide('goog.i18n.DateTimePatterns_en_WS'); +goog.provide('goog.i18n.DateTimePatterns_en_ZM'); goog.provide('goog.i18n.DateTimePatterns_en_ZW'); goog.provide('goog.i18n.DateTimePatterns_eo'); goog.provide('goog.i18n.DateTimePatterns_es_AR'); @@ -148,16 +206,19 @@ goog.provide('goog.i18n.DateTimePatterns_es_BO'); goog.provide('goog.i18n.DateTimePatterns_es_CL'); goog.provide('goog.i18n.DateTimePatterns_es_CO'); goog.provide('goog.i18n.DateTimePatterns_es_CR'); +goog.provide('goog.i18n.DateTimePatterns_es_CU'); goog.provide('goog.i18n.DateTimePatterns_es_DO'); +goog.provide('goog.i18n.DateTimePatterns_es_EA'); goog.provide('goog.i18n.DateTimePatterns_es_EC'); -goog.provide('goog.i18n.DateTimePatterns_es_ES'); goog.provide('goog.i18n.DateTimePatterns_es_GQ'); goog.provide('goog.i18n.DateTimePatterns_es_GT'); goog.provide('goog.i18n.DateTimePatterns_es_HN'); +goog.provide('goog.i18n.DateTimePatterns_es_IC'); goog.provide('goog.i18n.DateTimePatterns_es_MX'); goog.provide('goog.i18n.DateTimePatterns_es_NI'); goog.provide('goog.i18n.DateTimePatterns_es_PA'); goog.provide('goog.i18n.DateTimePatterns_es_PE'); +goog.provide('goog.i18n.DateTimePatterns_es_PH'); goog.provide('goog.i18n.DateTimePatterns_es_PR'); goog.provide('goog.i18n.DateTimePatterns_es_PY'); goog.provide('goog.i18n.DateTimePatterns_es_SV'); @@ -188,25 +249,36 @@ goog.provide('goog.i18n.DateTimePatterns_fr_CH'); goog.provide('goog.i18n.DateTimePatterns_fr_CI'); goog.provide('goog.i18n.DateTimePatterns_fr_CM'); goog.provide('goog.i18n.DateTimePatterns_fr_DJ'); +goog.provide('goog.i18n.DateTimePatterns_fr_DZ'); goog.provide('goog.i18n.DateTimePatterns_fr_FR'); goog.provide('goog.i18n.DateTimePatterns_fr_GA'); goog.provide('goog.i18n.DateTimePatterns_fr_GF'); goog.provide('goog.i18n.DateTimePatterns_fr_GN'); goog.provide('goog.i18n.DateTimePatterns_fr_GP'); goog.provide('goog.i18n.DateTimePatterns_fr_GQ'); +goog.provide('goog.i18n.DateTimePatterns_fr_HT'); goog.provide('goog.i18n.DateTimePatterns_fr_KM'); goog.provide('goog.i18n.DateTimePatterns_fr_LU'); +goog.provide('goog.i18n.DateTimePatterns_fr_MA'); goog.provide('goog.i18n.DateTimePatterns_fr_MC'); goog.provide('goog.i18n.DateTimePatterns_fr_MF'); goog.provide('goog.i18n.DateTimePatterns_fr_MG'); goog.provide('goog.i18n.DateTimePatterns_fr_ML'); goog.provide('goog.i18n.DateTimePatterns_fr_MQ'); +goog.provide('goog.i18n.DateTimePatterns_fr_MR'); +goog.provide('goog.i18n.DateTimePatterns_fr_MU'); +goog.provide('goog.i18n.DateTimePatterns_fr_NC'); goog.provide('goog.i18n.DateTimePatterns_fr_NE'); +goog.provide('goog.i18n.DateTimePatterns_fr_PF'); goog.provide('goog.i18n.DateTimePatterns_fr_RE'); goog.provide('goog.i18n.DateTimePatterns_fr_RW'); +goog.provide('goog.i18n.DateTimePatterns_fr_SC'); goog.provide('goog.i18n.DateTimePatterns_fr_SN'); +goog.provide('goog.i18n.DateTimePatterns_fr_SY'); goog.provide('goog.i18n.DateTimePatterns_fr_TD'); goog.provide('goog.i18n.DateTimePatterns_fr_TG'); +goog.provide('goog.i18n.DateTimePatterns_fr_TN'); +goog.provide('goog.i18n.DateTimePatterns_fr_VU'); goog.provide('goog.i18n.DateTimePatterns_fr_YT'); goog.provide('goog.i18n.DateTimePatterns_ga'); goog.provide('goog.i18n.DateTimePatterns_ga_IE'); @@ -225,6 +297,7 @@ goog.provide('goog.i18n.DateTimePatterns_ha_Latn_NG'); goog.provide('goog.i18n.DateTimePatterns_haw_US'); goog.provide('goog.i18n.DateTimePatterns_he_IL'); goog.provide('goog.i18n.DateTimePatterns_hi_IN'); +goog.provide('goog.i18n.DateTimePatterns_hr_BA'); goog.provide('goog.i18n.DateTimePatterns_hr_HR'); goog.provide('goog.i18n.DateTimePatterns_hu_HU'); goog.provide('goog.i18n.DateTimePatterns_hy'); @@ -237,7 +310,10 @@ goog.provide('goog.i18n.DateTimePatterns_ii_CN'); goog.provide('goog.i18n.DateTimePatterns_is_IS'); goog.provide('goog.i18n.DateTimePatterns_it_CH'); goog.provide('goog.i18n.DateTimePatterns_it_IT'); +goog.provide('goog.i18n.DateTimePatterns_it_SM'); goog.provide('goog.i18n.DateTimePatterns_ja_JP'); +goog.provide('goog.i18n.DateTimePatterns_jgo'); +goog.provide('goog.i18n.DateTimePatterns_jgo_CM'); goog.provide('goog.i18n.DateTimePatterns_jmc'); goog.provide('goog.i18n.DateTimePatterns_jmc_TZ'); goog.provide('goog.i18n.DateTimePatterns_ka'); @@ -264,9 +340,13 @@ goog.provide('goog.i18n.DateTimePatterns_kln_KE'); goog.provide('goog.i18n.DateTimePatterns_km'); goog.provide('goog.i18n.DateTimePatterns_km_KH'); goog.provide('goog.i18n.DateTimePatterns_kn_IN'); +goog.provide('goog.i18n.DateTimePatterns_ko_KP'); goog.provide('goog.i18n.DateTimePatterns_ko_KR'); goog.provide('goog.i18n.DateTimePatterns_kok'); goog.provide('goog.i18n.DateTimePatterns_kok_IN'); +goog.provide('goog.i18n.DateTimePatterns_ks'); +goog.provide('goog.i18n.DateTimePatterns_ks_Arab'); +goog.provide('goog.i18n.DateTimePatterns_ks_Arab_IN'); goog.provide('goog.i18n.DateTimePatterns_ksb'); goog.provide('goog.i18n.DateTimePatterns_ksb_TZ'); goog.provide('goog.i18n.DateTimePatterns_ksf'); @@ -277,8 +357,12 @@ goog.provide('goog.i18n.DateTimePatterns_lag'); goog.provide('goog.i18n.DateTimePatterns_lag_TZ'); goog.provide('goog.i18n.DateTimePatterns_lg'); goog.provide('goog.i18n.DateTimePatterns_lg_UG'); +goog.provide('goog.i18n.DateTimePatterns_ln_AO'); goog.provide('goog.i18n.DateTimePatterns_ln_CD'); +goog.provide('goog.i18n.DateTimePatterns_ln_CF'); goog.provide('goog.i18n.DateTimePatterns_ln_CG'); +goog.provide('goog.i18n.DateTimePatterns_lo'); +goog.provide('goog.i18n.DateTimePatterns_lo_LA'); goog.provide('goog.i18n.DateTimePatterns_lt_LT'); goog.provide('goog.i18n.DateTimePatterns_lu'); goog.provide('goog.i18n.DateTimePatterns_lu_CD'); @@ -298,12 +382,19 @@ goog.provide('goog.i18n.DateTimePatterns_mg'); goog.provide('goog.i18n.DateTimePatterns_mg_MG'); goog.provide('goog.i18n.DateTimePatterns_mgh'); goog.provide('goog.i18n.DateTimePatterns_mgh_MZ'); +goog.provide('goog.i18n.DateTimePatterns_mgo'); +goog.provide('goog.i18n.DateTimePatterns_mgo_CM'); goog.provide('goog.i18n.DateTimePatterns_mk'); goog.provide('goog.i18n.DateTimePatterns_mk_MK'); goog.provide('goog.i18n.DateTimePatterns_ml_IN'); +goog.provide('goog.i18n.DateTimePatterns_mn'); +goog.provide('goog.i18n.DateTimePatterns_mn_Cyrl'); +goog.provide('goog.i18n.DateTimePatterns_mn_Cyrl_MN'); goog.provide('goog.i18n.DateTimePatterns_mr_IN'); -goog.provide('goog.i18n.DateTimePatterns_ms_BN'); -goog.provide('goog.i18n.DateTimePatterns_ms_MY'); +goog.provide('goog.i18n.DateTimePatterns_ms_Latn'); +goog.provide('goog.i18n.DateTimePatterns_ms_Latn_BN'); +goog.provide('goog.i18n.DateTimePatterns_ms_Latn_MY'); +goog.provide('goog.i18n.DateTimePatterns_ms_Latn_SG'); goog.provide('goog.i18n.DateTimePatterns_mt_MT'); goog.provide('goog.i18n.DateTimePatterns_mua'); goog.provide('goog.i18n.DateTimePatterns_mua_CM'); @@ -311,7 +402,6 @@ goog.provide('goog.i18n.DateTimePatterns_my'); goog.provide('goog.i18n.DateTimePatterns_my_MM'); goog.provide('goog.i18n.DateTimePatterns_naq'); goog.provide('goog.i18n.DateTimePatterns_naq_NA'); -goog.provide('goog.i18n.DateTimePatterns_nb'); goog.provide('goog.i18n.DateTimePatterns_nb_NO'); goog.provide('goog.i18n.DateTimePatterns_nd'); goog.provide('goog.i18n.DateTimePatterns_nd_ZW'); @@ -320,7 +410,10 @@ goog.provide('goog.i18n.DateTimePatterns_ne_IN'); goog.provide('goog.i18n.DateTimePatterns_ne_NP'); goog.provide('goog.i18n.DateTimePatterns_nl_AW'); goog.provide('goog.i18n.DateTimePatterns_nl_BE'); +goog.provide('goog.i18n.DateTimePatterns_nl_CW'); goog.provide('goog.i18n.DateTimePatterns_nl_NL'); +goog.provide('goog.i18n.DateTimePatterns_nl_SR'); +goog.provide('goog.i18n.DateTimePatterns_nl_SX'); goog.provide('goog.i18n.DateTimePatterns_nmg'); goog.provide('goog.i18n.DateTimePatterns_nmg_CM'); goog.provide('goog.i18n.DateTimePatterns_nn'); @@ -342,9 +435,12 @@ goog.provide('goog.i18n.DateTimePatterns_pl_PL'); goog.provide('goog.i18n.DateTimePatterns_ps'); goog.provide('goog.i18n.DateTimePatterns_ps_AF'); goog.provide('goog.i18n.DateTimePatterns_pt_AO'); +goog.provide('goog.i18n.DateTimePatterns_pt_CV'); goog.provide('goog.i18n.DateTimePatterns_pt_GW'); +goog.provide('goog.i18n.DateTimePatterns_pt_MO'); goog.provide('goog.i18n.DateTimePatterns_pt_MZ'); goog.provide('goog.i18n.DateTimePatterns_pt_ST'); +goog.provide('goog.i18n.DateTimePatterns_pt_TL'); goog.provide('goog.i18n.DateTimePatterns_rm'); goog.provide('goog.i18n.DateTimePatterns_rm_CH'); goog.provide('goog.i18n.DateTimePatterns_rn'); @@ -353,6 +449,9 @@ goog.provide('goog.i18n.DateTimePatterns_ro_MD'); goog.provide('goog.i18n.DateTimePatterns_ro_RO'); goog.provide('goog.i18n.DateTimePatterns_rof'); goog.provide('goog.i18n.DateTimePatterns_rof_TZ'); +goog.provide('goog.i18n.DateTimePatterns_ru_BY'); +goog.provide('goog.i18n.DateTimePatterns_ru_KG'); +goog.provide('goog.i18n.DateTimePatterns_ru_KZ'); goog.provide('goog.i18n.DateTimePatterns_ru_MD'); goog.provide('goog.i18n.DateTimePatterns_ru_RU'); goog.provide('goog.i18n.DateTimePatterns_ru_UA'); @@ -387,6 +486,7 @@ goog.provide('goog.i18n.DateTimePatterns_so_ET'); goog.provide('goog.i18n.DateTimePatterns_so_KE'); goog.provide('goog.i18n.DateTimePatterns_so_SO'); goog.provide('goog.i18n.DateTimePatterns_sq_AL'); +goog.provide('goog.i18n.DateTimePatterns_sq_MK'); goog.provide('goog.i18n.DateTimePatterns_sr_Cyrl'); goog.provide('goog.i18n.DateTimePatterns_sr_Cyrl_BA'); goog.provide('goog.i18n.DateTimePatterns_sr_Cyrl_ME'); @@ -395,14 +495,18 @@ goog.provide('goog.i18n.DateTimePatterns_sr_Latn'); goog.provide('goog.i18n.DateTimePatterns_sr_Latn_BA'); goog.provide('goog.i18n.DateTimePatterns_sr_Latn_ME'); goog.provide('goog.i18n.DateTimePatterns_sr_Latn_RS'); +goog.provide('goog.i18n.DateTimePatterns_sv_AX'); goog.provide('goog.i18n.DateTimePatterns_sv_FI'); goog.provide('goog.i18n.DateTimePatterns_sv_SE'); goog.provide('goog.i18n.DateTimePatterns_sw_KE'); goog.provide('goog.i18n.DateTimePatterns_sw_TZ'); +goog.provide('goog.i18n.DateTimePatterns_sw_UG'); goog.provide('goog.i18n.DateTimePatterns_swc'); goog.provide('goog.i18n.DateTimePatterns_swc_CD'); goog.provide('goog.i18n.DateTimePatterns_ta_IN'); goog.provide('goog.i18n.DateTimePatterns_ta_LK'); +goog.provide('goog.i18n.DateTimePatterns_ta_MY'); +goog.provide('goog.i18n.DateTimePatterns_ta_SG'); goog.provide('goog.i18n.DateTimePatterns_te_IN'); goog.provide('goog.i18n.DateTimePatterns_teo'); goog.provide('goog.i18n.DateTimePatterns_teo_KE'); @@ -413,6 +517,7 @@ goog.provide('goog.i18n.DateTimePatterns_ti_ER'); goog.provide('goog.i18n.DateTimePatterns_ti_ET'); goog.provide('goog.i18n.DateTimePatterns_to'); goog.provide('goog.i18n.DateTimePatterns_to_TO'); +goog.provide('goog.i18n.DateTimePatterns_tr_CY'); goog.provide('goog.i18n.DateTimePatterns_tr_TR'); goog.provide('goog.i18n.DateTimePatterns_twq'); goog.provide('goog.i18n.DateTimePatterns_twq_NE'); @@ -465,9 +570,10 @@ goog.i18n.DateTimePatterns_af_NA = { YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'MMM d', - MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -480,9 +586,10 @@ goog.i18n.DateTimePatterns_af_ZA = { YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'MMM d', - MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -498,6 +605,7 @@ goog.i18n.DateTimePatterns_agq = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -513,6 +621,7 @@ goog.i18n.DateTimePatterns_agq_CM = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -522,12 +631,13 @@ goog.i18n.DateTimePatterns_agq_CM = { */ goog.i18n.DateTimePatterns_ak = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'MMM yyyy', + YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -537,12 +647,13 @@ goog.i18n.DateTimePatterns_ak = { */ goog.i18n.DateTimePatterns_ak_GH = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'MMM yyyy', + YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -558,6 +669,23 @@ goog.i18n.DateTimePatterns_am_ET = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale ar_001. + */ +goog.i18n.DateTimePatterns_ar_001 = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/‏M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', DAY_ABBR: 'd' }; @@ -571,8 +699,9 @@ goog.i18n.DateTimePatterns_ar_AE = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd‏/M', + MONTH_DAY_SHORT: 'd/‏M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', DAY_ABBR: 'd' }; @@ -586,8 +715,25 @@ goog.i18n.DateTimePatterns_ar_BH = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd‏/M', + MONTH_DAY_SHORT: 'd/‏M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale ar_DJ. + */ +goog.i18n.DateTimePatterns_ar_DJ = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/‏M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', DAY_ABBR: 'd' }; @@ -603,6 +749,7 @@ goog.i18n.DateTimePatterns_ar_DZ = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', DAY_ABBR: 'd' }; @@ -616,8 +763,57 @@ goog.i18n.DateTimePatterns_ar_EG = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd‏/M', + MONTH_DAY_SHORT: 'd/‏M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale ar_EH. + */ +goog.i18n.DateTimePatterns_ar_EH = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/‏M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale ar_ER. + */ +goog.i18n.DateTimePatterns_ar_ER = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/‏M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale ar_IL. + */ +goog.i18n.DateTimePatterns_ar_IL = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/‏M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', DAY_ABBR: 'd' }; @@ -631,8 +827,9 @@ goog.i18n.DateTimePatterns_ar_IQ = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd‏/M', + MONTH_DAY_SHORT: 'd/‏M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', DAY_ABBR: 'd' }; @@ -646,8 +843,25 @@ goog.i18n.DateTimePatterns_ar_JO = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd‏/M', + MONTH_DAY_SHORT: 'd/‏M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale ar_KM. + */ +goog.i18n.DateTimePatterns_ar_KM = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/‏M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', DAY_ABBR: 'd' }; @@ -661,8 +875,9 @@ goog.i18n.DateTimePatterns_ar_KW = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd‏/M', + MONTH_DAY_SHORT: 'd/‏M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', DAY_ABBR: 'd' }; @@ -676,8 +891,9 @@ goog.i18n.DateTimePatterns_ar_LB = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd‏/M', + MONTH_DAY_SHORT: 'd/‏M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', DAY_ABBR: 'd' }; @@ -691,8 +907,9 @@ goog.i18n.DateTimePatterns_ar_LY = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd‏/M', + MONTH_DAY_SHORT: 'd/‏M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', DAY_ABBR: 'd' }; @@ -708,6 +925,23 @@ goog.i18n.DateTimePatterns_ar_MA = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale ar_MR. + */ +goog.i18n.DateTimePatterns_ar_MR = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/‏M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', DAY_ABBR: 'd' }; @@ -721,8 +955,25 @@ goog.i18n.DateTimePatterns_ar_OM = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd‏/M', + MONTH_DAY_SHORT: 'd/‏M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale ar_PS. + */ +goog.i18n.DateTimePatterns_ar_PS = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/‏M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', DAY_ABBR: 'd' }; @@ -736,8 +987,9 @@ goog.i18n.DateTimePatterns_ar_QA = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd‏/M', + MONTH_DAY_SHORT: 'd/‏M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', DAY_ABBR: 'd' }; @@ -751,8 +1003,9 @@ goog.i18n.DateTimePatterns_ar_SA = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd‏/M', + MONTH_DAY_SHORT: 'd/‏M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', DAY_ABBR: 'd' }; @@ -766,8 +1019,25 @@ goog.i18n.DateTimePatterns_ar_SD = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd‏/M', + MONTH_DAY_SHORT: 'd/‏M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale ar_SO. + */ +goog.i18n.DateTimePatterns_ar_SO = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/‏M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', DAY_ABBR: 'd' }; @@ -781,8 +1051,25 @@ goog.i18n.DateTimePatterns_ar_SY = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd‏/M', + MONTH_DAY_SHORT: 'd/‏M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale ar_TD. + */ +goog.i18n.DateTimePatterns_ar_TD = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/‏M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', DAY_ABBR: 'd' }; @@ -798,6 +1085,7 @@ goog.i18n.DateTimePatterns_ar_TN = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', DAY_ABBR: 'd' }; @@ -811,8 +1099,9 @@ goog.i18n.DateTimePatterns_ar_YE = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd‏/M', + MONTH_DAY_SHORT: 'd/‏M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', DAY_ABBR: 'd' }; @@ -826,8 +1115,9 @@ goog.i18n.DateTimePatterns_as = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -841,8 +1131,9 @@ goog.i18n.DateTimePatterns_as_IN = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -858,6 +1149,7 @@ goog.i18n.DateTimePatterns_asa = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -873,6 +1165,7 @@ goog.i18n.DateTimePatterns_asa_TZ = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -886,8 +1179,9 @@ goog.i18n.DateTimePatterns_az = { YEAR_MONTH_FULL: 'MMMM, yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d, MMM', DAY_ABBR: 'd' }; @@ -901,8 +1195,9 @@ goog.i18n.DateTimePatterns_az_Cyrl = { YEAR_MONTH_FULL: 'MMMM, yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d, MMM', DAY_ABBR: 'd' }; @@ -916,8 +1211,9 @@ goog.i18n.DateTimePatterns_az_Cyrl_AZ = { YEAR_MONTH_FULL: 'MMMM, yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d, MMM', DAY_ABBR: 'd' }; @@ -931,8 +1227,9 @@ goog.i18n.DateTimePatterns_az_Latn = { YEAR_MONTH_FULL: 'MMMM, yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d, MMM', DAY_ABBR: 'd' }; @@ -946,8 +1243,9 @@ goog.i18n.DateTimePatterns_az_Latn_AZ = { YEAR_MONTH_FULL: 'MMMM, yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d, MMM', DAY_ABBR: 'd' }; @@ -963,6 +1261,7 @@ goog.i18n.DateTimePatterns_bas = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -978,6 +1277,7 @@ goog.i18n.DateTimePatterns_bas_CM = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -989,10 +1289,11 @@ goog.i18n.DateTimePatterns_be = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -1004,10 +1305,11 @@ goog.i18n.DateTimePatterns_be_BY = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -1023,6 +1325,7 @@ goog.i18n.DateTimePatterns_bem = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1038,6 +1341,7 @@ goog.i18n.DateTimePatterns_bem_ZM = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1053,6 +1357,7 @@ goog.i18n.DateTimePatterns_bez = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1068,6 +1373,7 @@ goog.i18n.DateTimePatterns_bez_TZ = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1076,13 +1382,14 @@ goog.i18n.DateTimePatterns_bez_TZ = { * Extended set of localized date/time patterns for locale bg_BG. */ goog.i18n.DateTimePatterns_bg_BG = { - YEAR_FULL: 'y', + YEAR_FULL: 'yyyy \'г\'.', YEAR_MONTH_ABBR: 'MMM y \'г\'.', - YEAR_MONTH_FULL: 'MMMM yyyy \'г\'.', + YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd.M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'd MMM, EEE', DAY_ABBR: 'd' }; @@ -1098,6 +1405,7 @@ goog.i18n.DateTimePatterns_bm = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -1113,6 +1421,7 @@ goog.i18n.DateTimePatterns_bm_ML = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -1126,8 +1435,9 @@ goog.i18n.DateTimePatterns_bn_BD = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd-M', + MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -1141,8 +1451,9 @@ goog.i18n.DateTimePatterns_bn_IN = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd-M', + MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -1156,8 +1467,9 @@ goog.i18n.DateTimePatterns_bo = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -1171,8 +1483,9 @@ goog.i18n.DateTimePatterns_bo_CN = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -1186,23 +1499,9 @@ goog.i18n.DateTimePatterns_bo_IN = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', - MONTH_DAY_MEDIUM: 'MMMM d', - DAY_ABBR: 'd' -}; - - -/** - * Extended set of localized date/time patterns for locale br. - */ -goog.i18n.DateTimePatterns_br = { - YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'y MMM', - YEAR_MONTH_FULL: 'yyyy MMMM', - MONTH_DAY_ABBR: 'MMM d', - MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -1216,8 +1515,9 @@ goog.i18n.DateTimePatterns_br_FR = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -1227,12 +1527,13 @@ goog.i18n.DateTimePatterns_br_FR = { */ goog.i18n.DateTimePatterns_brx = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'MMM yyyy', + YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_ABBR: 'd-MMM', MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1242,12 +1543,13 @@ goog.i18n.DateTimePatterns_brx = { */ goog.i18n.DateTimePatterns_brx_IN = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'MMM yyyy', + YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_ABBR: 'd-MMM', MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1263,14 +1565,15 @@ goog.i18n.DateTimePatterns_bs = { MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'dd.MM.', MONTH_DAY_MEDIUM: 'dd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, dd. MMM', DAY_ABBR: 'd' }; /** - * Extended set of localized date/time patterns for locale bs_BA. + * Extended set of localized date/time patterns for locale bs_Cyrl. */ -goog.i18n.DateTimePatterns_bs_BA = { +goog.i18n.DateTimePatterns_bs_Cyrl = { YEAR_FULL: 'yyyy.', YEAR_MONTH_ABBR: 'MMM y.', YEAR_MONTH_FULL: 'MMMM yyyy.', @@ -1278,6 +1581,71 @@ goog.i18n.DateTimePatterns_bs_BA = { MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'dd.MM.', MONTH_DAY_MEDIUM: 'dd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, dd. MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale bs_Cyrl_BA. + */ +goog.i18n.DateTimePatterns_bs_Cyrl_BA = { + YEAR_FULL: 'yyyy.', + YEAR_MONTH_ABBR: 'MMM y.', + YEAR_MONTH_FULL: 'MMMM yyyy.', + MONTH_DAY_ABBR: 'dd. MMM', + MONTH_DAY_FULL: 'dd. MMMM', + MONTH_DAY_SHORT: 'dd.MM.', + MONTH_DAY_MEDIUM: 'dd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, dd. MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale bs_Latn. + */ +goog.i18n.DateTimePatterns_bs_Latn = { + YEAR_FULL: 'yyyy.', + YEAR_MONTH_ABBR: 'MMM y.', + YEAR_MONTH_FULL: 'MMMM yyyy.', + MONTH_DAY_ABBR: 'dd. MMM', + MONTH_DAY_FULL: 'dd. MMMM', + MONTH_DAY_SHORT: 'dd.MM.', + MONTH_DAY_MEDIUM: 'dd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, dd. MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale bs_Latn_BA. + */ +goog.i18n.DateTimePatterns_bs_Latn_BA = { + YEAR_FULL: 'yyyy.', + YEAR_MONTH_ABBR: 'MMM y.', + YEAR_MONTH_FULL: 'MMMM yyyy.', + MONTH_DAY_ABBR: 'dd. MMM', + MONTH_DAY_FULL: 'dd. MMMM', + MONTH_DAY_SHORT: 'dd.MM.', + MONTH_DAY_MEDIUM: 'dd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, dd. MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale ca_AD. + */ +goog.i18n.DateTimePatterns_ca_AD = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'LLL y', + YEAR_MONTH_FULL: 'LLLL \'de\' yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -1288,11 +1656,12 @@ goog.i18n.DateTimePatterns_bs_BA = { goog.i18n.DateTimePatterns_ca_ES = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'LLL y', - YEAR_MONTH_FULL: 'LLLL yyyy', + YEAR_MONTH_FULL: 'LLLL \'de\' yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -1308,6 +1677,7 @@ goog.i18n.DateTimePatterns_cgg = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1323,6 +1693,7 @@ goog.i18n.DateTimePatterns_cgg_UG = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1338,6 +1709,7 @@ goog.i18n.DateTimePatterns_chr_US = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -1346,13 +1718,14 @@ goog.i18n.DateTimePatterns_chr_US = { * Extended set of localized date/time patterns for locale cs_CZ. */ goog.i18n.DateTimePatterns_cs_CZ = { - YEAR_FULL: 'y', - YEAR_MONTH_ABBR: 'LLL y', + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'LLLL y', YEAR_MONTH_FULL: 'LLLL yyyy', - MONTH_DAY_ABBR: 'd. MMM', - MONTH_DAY_FULL: 'dd. MMMM', - MONTH_DAY_SHORT: 'd.M', - MONTH_DAY_MEDIUM: 'd. MMMM', + MONTH_DAY_ABBR: 'd. M.', + MONTH_DAY_FULL: 'dd. M.', + MONTH_DAY_SHORT: 'd. M.', + MONTH_DAY_MEDIUM: 'd. M.', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d. M.', DAY_ABBR: 'd.' }; @@ -1368,6 +1741,7 @@ goog.i18n.DateTimePatterns_cy_GB = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -1376,13 +1750,14 @@ goog.i18n.DateTimePatterns_cy_GB = { * Extended set of localized date/time patterns for locale da_DK. */ goog.i18n.DateTimePatterns_da_DK = { - YEAR_FULL: 'y', + YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd. MMM', MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d. MMM', DAY_ABBR: 'd.' }; @@ -1398,6 +1773,7 @@ goog.i18n.DateTimePatterns_dav = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1413,6 +1789,7 @@ goog.i18n.DateTimePatterns_dav_KE = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1421,13 +1798,14 @@ goog.i18n.DateTimePatterns_dav_KE = { * Extended set of localized date/time patterns for locale de_BE. */ goog.i18n.DateTimePatterns_de_BE = { - YEAR_FULL: 'y', + YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd. MMM', MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'd.M.', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d. MMM', DAY_ABBR: 'd' }; @@ -1436,13 +1814,14 @@ goog.i18n.DateTimePatterns_de_BE = { * Extended set of localized date/time patterns for locale de_DE. */ goog.i18n.DateTimePatterns_de_DE = { - YEAR_FULL: 'y', + YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd. MMM', MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'd.M.', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d. MMM', DAY_ABBR: 'd' }; @@ -1451,13 +1830,14 @@ goog.i18n.DateTimePatterns_de_DE = { * Extended set of localized date/time patterns for locale de_LI. */ goog.i18n.DateTimePatterns_de_LI = { - YEAR_FULL: 'y', + YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd. MMM', MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'd.M.', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d. MMM', DAY_ABBR: 'd' }; @@ -1466,13 +1846,14 @@ goog.i18n.DateTimePatterns_de_LI = { * Extended set of localized date/time patterns for locale de_LU. */ goog.i18n.DateTimePatterns_de_LU = { - YEAR_FULL: 'y', + YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd. MMM', MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'd.M.', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d. MMM', DAY_ABBR: 'd' }; @@ -1488,6 +1869,7 @@ goog.i18n.DateTimePatterns_dje = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -1503,6 +1885,7 @@ goog.i18n.DateTimePatterns_dje_NE = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -1518,6 +1901,7 @@ goog.i18n.DateTimePatterns_dua = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -1533,6 +1917,7 @@ goog.i18n.DateTimePatterns_dua_CM = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -1548,6 +1933,7 @@ goog.i18n.DateTimePatterns_dyo = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -1563,6 +1949,39 @@ goog.i18n.DateTimePatterns_dyo_SN = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale dz. + */ +goog.i18n.DateTimePatterns_dz = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'y སྤྱི་ཟླ་MMM', + YEAR_MONTH_FULL: 'yyyy སྤྱི་ཟླ་MMMM', + MONTH_DAY_ABBR: 'སྤྱི་LLL ཚེ་d', + MONTH_DAY_FULL: 'སྤྱི་LLLL ཚེ་dd', + MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_MEDIUM: 'སྤྱི་LLLL ཚེ་d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, སྤྱི་LLL ཚེ་d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale dz_BT. + */ +goog.i18n.DateTimePatterns_dz_BT = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'y སྤྱི་ཟླ་MMM', + YEAR_MONTH_FULL: 'yyyy སྤྱི་ཟླ་MMMM', + MONTH_DAY_ABBR: 'སྤྱི་LLL ཚེ་d', + MONTH_DAY_FULL: 'སྤྱི་LLLL ཚེ་dd', + MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_MEDIUM: 'སྤྱི་LLLL ཚེ་d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, སྤྱི་LLL ཚེ་d', DAY_ABBR: 'd' }; @@ -1578,6 +1997,7 @@ goog.i18n.DateTimePatterns_ebu = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1593,6 +2013,7 @@ goog.i18n.DateTimePatterns_ebu_KE = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1604,10 +2025,11 @@ goog.i18n.DateTimePatterns_ee = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'MMM d', - MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_ABBR: 'MMM d \'lia\'', + MONTH_DAY_FULL: 'MMMM dd \'lia\'', MONTH_DAY_SHORT: 'M/d', - MONTH_DAY_MEDIUM: 'MMMM d', + MONTH_DAY_MEDIUM: 'MMMM d \'lia\'', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d \'lia\'', DAY_ABBR: 'd' }; @@ -1619,10 +2041,11 @@ goog.i18n.DateTimePatterns_ee_GH = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'MMM d', - MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_ABBR: 'MMM d \'lia\'', + MONTH_DAY_FULL: 'MMMM dd \'lia\'', MONTH_DAY_SHORT: 'M/d', - MONTH_DAY_MEDIUM: 'MMMM d', + MONTH_DAY_MEDIUM: 'MMMM d \'lia\'', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d \'lia\'', DAY_ABBR: 'd' }; @@ -1634,10 +2057,11 @@ goog.i18n.DateTimePatterns_ee_TG = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'MMM d', - MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_ABBR: 'MMM d \'lia\'', + MONTH_DAY_FULL: 'MMMM dd \'lia\'', MONTH_DAY_SHORT: 'M/d', - MONTH_DAY_MEDIUM: 'MMMM d', + MONTH_DAY_MEDIUM: 'MMMM d \'lia\'', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d \'lia\'', DAY_ABBR: 'd' }; @@ -1646,13 +2070,14 @@ goog.i18n.DateTimePatterns_ee_TG = { * Extended set of localized date/time patterns for locale el_CY. */ goog.i18n.DateTimePatterns_el_CY = { - YEAR_FULL: 'y', + YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'LLL y', YEAR_MONTH_FULL: 'LLLL yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -1661,13 +2086,46 @@ goog.i18n.DateTimePatterns_el_CY = { * Extended set of localized date/time patterns for locale el_GR. */ goog.i18n.DateTimePatterns_el_GR = { - YEAR_FULL: 'y', + YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'LLL y', YEAR_MONTH_FULL: 'LLLL yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_150. + */ +goog.i18n.DateTimePatterns_en_150 = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_AG. + */ +goog.i18n.DateTimePatterns_en_AG = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1683,6 +2141,7 @@ goog.i18n.DateTimePatterns_en_AS = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1698,6 +2157,7 @@ goog.i18n.DateTimePatterns_en_BB = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1713,6 +2173,7 @@ goog.i18n.DateTimePatterns_en_BE = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -1728,6 +2189,23 @@ goog.i18n.DateTimePatterns_en_BM = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_BS. + */ +goog.i18n.DateTimePatterns_en_BS = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1743,6 +2221,7 @@ goog.i18n.DateTimePatterns_en_BW = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'dd/MM', MONTH_DAY_MEDIUM: 'dd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE dd MMM', DAY_ABBR: 'd' }; @@ -1758,6 +2237,7 @@ goog.i18n.DateTimePatterns_en_BZ = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'dd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE dd MMM', DAY_ABBR: 'd' }; @@ -1767,12 +2247,157 @@ goog.i18n.DateTimePatterns_en_BZ = { */ goog.i18n.DateTimePatterns_en_CA = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'MMM-y', - YEAR_MONTH_FULL: 'MMMM-yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_CM. + */ +goog.i18n.DateTimePatterns_en_CM = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_DM. + */ +goog.i18n.DateTimePatterns_en_DM = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_FJ. + */ +goog.i18n.DateTimePatterns_en_FJ = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_FM. + */ +goog.i18n.DateTimePatterns_en_FM = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_GD. + */ +goog.i18n.DateTimePatterns_en_GD = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_GG. + */ +goog.i18n.DateTimePatterns_en_GG = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'dd/MM', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_GH. + */ +goog.i18n.DateTimePatterns_en_GH = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_GI. + */ +goog.i18n.DateTimePatterns_en_GI = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'dd/MM', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_GM. + */ +goog.i18n.DateTimePatterns_en_GM = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1788,6 +2413,7 @@ goog.i18n.DateTimePatterns_en_GU = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1803,6 +2429,7 @@ goog.i18n.DateTimePatterns_en_GY = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1816,8 +2443,41 @@ goog.i18n.DateTimePatterns_en_HK = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_SHORT: 'dd/MM', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_IM. + */ +goog.i18n.DateTimePatterns_en_IM = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'dd/MM', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_JE. + */ +goog.i18n.DateTimePatterns_en_JE = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'dd/MM', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -1833,6 +2493,135 @@ goog.i18n.DateTimePatterns_en_JM = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_KE. + */ +goog.i18n.DateTimePatterns_en_KE = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_KI. + */ +goog.i18n.DateTimePatterns_en_KI = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_KN. + */ +goog.i18n.DateTimePatterns_en_KN = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_KY. + */ +goog.i18n.DateTimePatterns_en_KY = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_LC. + */ +goog.i18n.DateTimePatterns_en_LC = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_LR. + */ +goog.i18n.DateTimePatterns_en_LR = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_LS. + */ +goog.i18n.DateTimePatterns_en_LS = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_MG. + */ +goog.i18n.DateTimePatterns_en_MG = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1848,6 +2637,7 @@ goog.i18n.DateTimePatterns_en_MH = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1863,6 +2653,7 @@ goog.i18n.DateTimePatterns_en_MP = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1877,7 +2668,8 @@ goog.i18n.DateTimePatterns_en_MT = { MONTH_DAY_ABBR: 'dd MMM', MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'dd/MM', - MONTH_DAY_MEDIUM: 'dd MMMM', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -1893,6 +2685,23 @@ goog.i18n.DateTimePatterns_en_MU = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_MW. + */ +goog.i18n.DateTimePatterns_en_MW = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1908,6 +2717,23 @@ goog.i18n.DateTimePatterns_en_NA = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_NG. + */ +goog.i18n.DateTimePatterns_en_NG = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1918,11 +2744,28 @@ goog.i18n.DateTimePatterns_en_NA = { goog.i18n.DateTimePatterns_en_NZ = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_PG. + */ +goog.i18n.DateTimePatterns_en_PG = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1938,6 +2781,7 @@ goog.i18n.DateTimePatterns_en_PH = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1951,8 +2795,153 @@ goog.i18n.DateTimePatterns_en_PK = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_SHORT: 'dd/MM', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_PR. + */ +goog.i18n.DateTimePatterns_en_PR = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_PW. + */ +goog.i18n.DateTimePatterns_en_PW = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_SB. + */ +goog.i18n.DateTimePatterns_en_SB = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_SC. + */ +goog.i18n.DateTimePatterns_en_SC = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_SL. + */ +goog.i18n.DateTimePatterns_en_SL = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_SS. + */ +goog.i18n.DateTimePatterns_en_SS = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_SZ. + */ +goog.i18n.DateTimePatterns_en_SZ = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_TC. + */ +goog.i18n.DateTimePatterns_en_TC = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_TO. + */ +goog.i18n.DateTimePatterns_en_TO = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1968,6 +2957,39 @@ goog.i18n.DateTimePatterns_en_TT = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_TZ. + */ +goog.i18n.DateTimePatterns_en_TZ = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_UG. + */ +goog.i18n.DateTimePatterns_en_UG = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1983,6 +3005,7 @@ goog.i18n.DateTimePatterns_en_UM = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -1998,6 +3021,39 @@ goog.i18n.DateTimePatterns_en_US_POSIX = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_VC. + */ +goog.i18n.DateTimePatterns_en_VC = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_VG. + */ +goog.i18n.DateTimePatterns_en_VG = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -2013,6 +3069,55 @@ goog.i18n.DateTimePatterns_en_VI = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_VU. + */ +goog.i18n.DateTimePatterns_en_VU = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_WS. + */ +goog.i18n.DateTimePatterns_en_WS = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale en_ZM. + */ +goog.i18n.DateTimePatterns_en_ZM = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -2028,6 +3133,7 @@ goog.i18n.DateTimePatterns_en_ZW = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'dd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE dd MMM', DAY_ABBR: 'd' }; @@ -2041,8 +3147,9 @@ goog.i18n.DateTimePatterns_eo = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -2053,11 +3160,12 @@ goog.i18n.DateTimePatterns_eo = { goog.i18n.DateTimePatterns_es_AR = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'd \'de\' MMM', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd \'de\' MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2068,11 +3176,12 @@ goog.i18n.DateTimePatterns_es_AR = { goog.i18n.DateTimePatterns_es_BO = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'd \'de\' MMM', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd \'de\' MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2083,11 +3192,12 @@ goog.i18n.DateTimePatterns_es_BO = { goog.i18n.DateTimePatterns_es_CL = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'd \'de\' MMM', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd \'de\' MMMM', MONTH_DAY_SHORT: 'dd-MM', MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2098,11 +3208,12 @@ goog.i18n.DateTimePatterns_es_CL = { goog.i18n.DateTimePatterns_es_CO = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'd \'de\' MMM', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd \'de\' MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2113,11 +3224,28 @@ goog.i18n.DateTimePatterns_es_CO = { goog.i18n.DateTimePatterns_es_CR = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'd \'de\' MMM', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd \'de\' MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale es_CU. + */ +goog.i18n.DateTimePatterns_es_CU = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd \'de\' MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2128,11 +3256,28 @@ goog.i18n.DateTimePatterns_es_CR = { goog.i18n.DateTimePatterns_es_DO = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'd \'de\' MMM', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd \'de\' MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale es_EA. + */ +goog.i18n.DateTimePatterns_es_EA = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd \'de\' MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2143,26 +3288,12 @@ goog.i18n.DateTimePatterns_es_DO = { goog.i18n.DateTimePatterns_es_EC = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'd \'de\' MMM', - MONTH_DAY_FULL: 'dd \'de\' MMMM', - MONTH_DAY_SHORT: 'd/M', - MONTH_DAY_MEDIUM: 'd \'de\' MMMM', - DAY_ABBR: 'd' -}; - - -/** - * Extended set of localized date/time patterns for locale es_ES. - */ -goog.i18n.DateTimePatterns_es_ES = { - YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'd \'de\' MMM', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd \'de\' MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2173,11 +3304,12 @@ goog.i18n.DateTimePatterns_es_ES = { goog.i18n.DateTimePatterns_es_GQ = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'd \'de\' MMM', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd \'de\' MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2188,11 +3320,12 @@ goog.i18n.DateTimePatterns_es_GQ = { goog.i18n.DateTimePatterns_es_GT = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'd \'de\' MMM', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd \'de\' MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2203,11 +3336,28 @@ goog.i18n.DateTimePatterns_es_GT = { goog.i18n.DateTimePatterns_es_HN = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'd \'de\' MMM', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd \'de\' MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale es_IC. + */ +goog.i18n.DateTimePatterns_es_IC = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd \'de\' MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2218,11 +3368,12 @@ goog.i18n.DateTimePatterns_es_HN = { goog.i18n.DateTimePatterns_es_MX = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'd \'de\' MMM', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd \'de\' MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2233,11 +3384,12 @@ goog.i18n.DateTimePatterns_es_MX = { goog.i18n.DateTimePatterns_es_NI = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'd \'de\' MMM', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd \'de\' MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2248,11 +3400,12 @@ goog.i18n.DateTimePatterns_es_NI = { goog.i18n.DateTimePatterns_es_PA = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'd \'de\' MMM', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd \'de\' MMMM', MONTH_DAY_SHORT: 'MM/dd', MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2263,11 +3416,28 @@ goog.i18n.DateTimePatterns_es_PA = { goog.i18n.DateTimePatterns_es_PE = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'd \'de\' MMM', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd \'de\' MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale es_PH. + */ +goog.i18n.DateTimePatterns_es_PH = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd \'de\' MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2278,11 +3448,12 @@ goog.i18n.DateTimePatterns_es_PE = { goog.i18n.DateTimePatterns_es_PR = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'd \'de\' MMM', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd \'de\' MMMM', MONTH_DAY_SHORT: 'MM/dd', MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2293,11 +3464,12 @@ goog.i18n.DateTimePatterns_es_PR = { goog.i18n.DateTimePatterns_es_PY = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'd \'de\' MMM', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd \'de\' MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2308,11 +3480,12 @@ goog.i18n.DateTimePatterns_es_PY = { goog.i18n.DateTimePatterns_es_SV = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'd \'de\' MMM', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd \'de\' MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2323,11 +3496,12 @@ goog.i18n.DateTimePatterns_es_SV = { goog.i18n.DateTimePatterns_es_US = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM yyyy', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', MONTH_DAY_ABBR: 'MMM d', - MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_FULL: 'dd \'de\' MMMM', MONTH_DAY_SHORT: 'M/d', - MONTH_DAY_MEDIUM: 'MMMM d', + MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -2338,11 +3512,12 @@ goog.i18n.DateTimePatterns_es_US = { goog.i18n.DateTimePatterns_es_UY = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'd \'de\' MMM', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd \'de\' MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2353,11 +3528,12 @@ goog.i18n.DateTimePatterns_es_UY = { goog.i18n.DateTimePatterns_es_VE = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'd \'de\' MMM', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd \'de\' MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2373,6 +3549,7 @@ goog.i18n.DateTimePatterns_et_EE = { MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'd.M', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d. MMM', DAY_ABBR: 'd' }; @@ -2388,6 +3565,7 @@ goog.i18n.DateTimePatterns_eu_ES = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -2403,6 +3581,7 @@ goog.i18n.DateTimePatterns_ewo = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2418,6 +3597,7 @@ goog.i18n.DateTimePatterns_ewo_CM = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2426,13 +3606,14 @@ goog.i18n.DateTimePatterns_ewo_CM = { * Extended set of localized date/time patterns for locale fa_AF. */ goog.i18n.DateTimePatterns_fa_AF = { - YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM yyyy', + YEAR_FULL: 'y G', + YEAR_MONTH_ABBR: 'MMM y G', + YEAR_MONTH_FULL: 'MMMM y G', MONTH_DAY_ABBR: 'd LLL', MONTH_DAY_FULL: 'dd LLLL', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'd LLLL', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d LLL', DAY_ABBR: 'd' }; @@ -2441,13 +3622,14 @@ goog.i18n.DateTimePatterns_fa_AF = { * Extended set of localized date/time patterns for locale fa_IR. */ goog.i18n.DateTimePatterns_fa_IR = { - YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM yyyy', + YEAR_FULL: 'y G', + YEAR_MONTH_ABBR: 'MMM y G', + YEAR_MONTH_FULL: 'MMMM y G', MONTH_DAY_ABBR: 'd LLL', MONTH_DAY_FULL: 'dd LLLL', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'd LLLL', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d LLL', DAY_ABBR: 'd' }; @@ -2463,6 +3645,7 @@ goog.i18n.DateTimePatterns_ff = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2478,6 +3661,7 @@ goog.i18n.DateTimePatterns_ff_SN = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2493,6 +3677,7 @@ goog.i18n.DateTimePatterns_fi_FI = { MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'd.M.', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'ccc d. MMM', DAY_ABBR: 'd' }; @@ -2502,12 +3687,13 @@ goog.i18n.DateTimePatterns_fi_FI = { */ goog.i18n.DateTimePatterns_fil_PH = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'y MMM', - YEAR_MONTH_FULL: 'yyyy MMMM', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M-d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE MMM d', DAY_ABBR: 'd' }; @@ -2521,8 +3707,9 @@ goog.i18n.DateTimePatterns_fo = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -2536,8 +3723,9 @@ goog.i18n.DateTimePatterns_fo_FO = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -2553,6 +3741,7 @@ goog.i18n.DateTimePatterns_fr_BE = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2568,6 +3757,7 @@ goog.i18n.DateTimePatterns_fr_BF = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2583,6 +3773,7 @@ goog.i18n.DateTimePatterns_fr_BI = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2598,6 +3789,7 @@ goog.i18n.DateTimePatterns_fr_BJ = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2613,6 +3805,7 @@ goog.i18n.DateTimePatterns_fr_BL = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2628,6 +3821,7 @@ goog.i18n.DateTimePatterns_fr_CD = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2643,6 +3837,7 @@ goog.i18n.DateTimePatterns_fr_CF = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2658,6 +3853,7 @@ goog.i18n.DateTimePatterns_fr_CG = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2673,6 +3869,7 @@ goog.i18n.DateTimePatterns_fr_CH = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2688,6 +3885,7 @@ goog.i18n.DateTimePatterns_fr_CI = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2703,6 +3901,7 @@ goog.i18n.DateTimePatterns_fr_CM = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2718,6 +3917,23 @@ goog.i18n.DateTimePatterns_fr_DJ = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale fr_DZ. + */ +goog.i18n.DateTimePatterns_fr_DZ = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2733,6 +3949,7 @@ goog.i18n.DateTimePatterns_fr_FR = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2748,6 +3965,7 @@ goog.i18n.DateTimePatterns_fr_GA = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2763,6 +3981,7 @@ goog.i18n.DateTimePatterns_fr_GF = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2778,6 +3997,7 @@ goog.i18n.DateTimePatterns_fr_GN = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2793,6 +4013,7 @@ goog.i18n.DateTimePatterns_fr_GP = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2808,6 +4029,23 @@ goog.i18n.DateTimePatterns_fr_GQ = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale fr_HT. + */ +goog.i18n.DateTimePatterns_fr_HT = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2823,6 +4061,7 @@ goog.i18n.DateTimePatterns_fr_KM = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2838,6 +4077,23 @@ goog.i18n.DateTimePatterns_fr_LU = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale fr_MA. + */ +goog.i18n.DateTimePatterns_fr_MA = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2853,6 +4109,7 @@ goog.i18n.DateTimePatterns_fr_MC = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2868,6 +4125,7 @@ goog.i18n.DateTimePatterns_fr_MF = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2883,6 +4141,7 @@ goog.i18n.DateTimePatterns_fr_MG = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2898,6 +4157,7 @@ goog.i18n.DateTimePatterns_fr_ML = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2913,6 +4173,55 @@ goog.i18n.DateTimePatterns_fr_MQ = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale fr_MR. + */ +goog.i18n.DateTimePatterns_fr_MR = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale fr_MU. + */ +goog.i18n.DateTimePatterns_fr_MU = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale fr_NC. + */ +goog.i18n.DateTimePatterns_fr_NC = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2928,6 +4237,23 @@ goog.i18n.DateTimePatterns_fr_NE = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale fr_PF. + */ +goog.i18n.DateTimePatterns_fr_PF = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2943,6 +4269,7 @@ goog.i18n.DateTimePatterns_fr_RE = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2958,6 +4285,23 @@ goog.i18n.DateTimePatterns_fr_RW = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale fr_SC. + */ +goog.i18n.DateTimePatterns_fr_SC = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2973,6 +4317,23 @@ goog.i18n.DateTimePatterns_fr_SN = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale fr_SY. + */ +goog.i18n.DateTimePatterns_fr_SY = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -2988,6 +4349,7 @@ goog.i18n.DateTimePatterns_fr_TD = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -3003,6 +4365,39 @@ goog.i18n.DateTimePatterns_fr_TG = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale fr_TN. + */ +goog.i18n.DateTimePatterns_fr_TN = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale fr_VU. + */ +goog.i18n.DateTimePatterns_fr_VU = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -3018,6 +4413,7 @@ goog.i18n.DateTimePatterns_fr_YT = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -3031,8 +4427,9 @@ goog.i18n.DateTimePatterns_ga = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -3046,8 +4443,9 @@ goog.i18n.DateTimePatterns_ga_IE = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -3061,8 +4459,9 @@ goog.i18n.DateTimePatterns_gl_ES = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_SHORT: 'd-M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -3071,13 +4470,14 @@ goog.i18n.DateTimePatterns_gl_ES = { * Extended set of localized date/time patterns for locale gsw_CH. */ goog.i18n.DateTimePatterns_gsw_CH = { - YEAR_FULL: 'y', + YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd. MMM', MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'd.M.', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d. MMM', DAY_ABBR: 'd' }; @@ -3091,8 +4491,9 @@ goog.i18n.DateTimePatterns_gu_IN = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd-M', + MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -3108,6 +4509,7 @@ goog.i18n.DateTimePatterns_guz = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -3123,6 +4525,7 @@ goog.i18n.DateTimePatterns_guz_KE = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -3136,8 +4539,9 @@ goog.i18n.DateTimePatterns_gv = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -3151,8 +4555,9 @@ goog.i18n.DateTimePatterns_gv_GB = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -3168,6 +4573,7 @@ goog.i18n.DateTimePatterns_ha = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -3183,6 +4589,7 @@ goog.i18n.DateTimePatterns_ha_Latn = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -3198,6 +4605,7 @@ goog.i18n.DateTimePatterns_ha_Latn_GH = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -3213,6 +4621,7 @@ goog.i18n.DateTimePatterns_ha_Latn_NE = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -3228,6 +4637,7 @@ goog.i18n.DateTimePatterns_ha_Latn_NG = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -3241,8 +4651,9 @@ goog.i18n.DateTimePatterns_haw_US = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -3251,13 +4662,14 @@ goog.i18n.DateTimePatterns_haw_US = { * Extended set of localized date/time patterns for locale he_IL. */ goog.i18n.DateTimePatterns_he_IL = { - YEAR_FULL: 'y', + YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd בMMM', MONTH_DAY_FULL: 'dd בMMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd בMMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d בMMM', DAY_ABBR: 'd' }; @@ -3271,12 +4683,29 @@ goog.i18n.DateTimePatterns_hi_IN = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd-M', + MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; +/** + * Extended set of localized date/time patterns for locale hr_BA. + */ +goog.i18n.DateTimePatterns_hr_BA = { + YEAR_FULL: 'yyyy.', + YEAR_MONTH_ABBR: 'LLL y.', + YEAR_MONTH_FULL: 'LLLL yyyy.', + MONTH_DAY_ABBR: 'd. MMM', + MONTH_DAY_FULL: 'dd. MMMM', + MONTH_DAY_SHORT: 'd. M.', + MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d. MMM', + DAY_ABBR: 'd.' +}; + + /** * Extended set of localized date/time patterns for locale hr_HR. */ @@ -3288,6 +4717,7 @@ goog.i18n.DateTimePatterns_hr_HR = { MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'd. M.', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d. MMM', DAY_ABBR: 'd.' }; @@ -3301,8 +4731,9 @@ goog.i18n.DateTimePatterns_hu_HU = { YEAR_MONTH_FULL: 'yyyy. MMMM', MONTH_DAY_ABBR: 'MMM d.', MONTH_DAY_FULL: 'MMMM dd.', - MONTH_DAY_SHORT: 'M.d.', + MONTH_DAY_SHORT: 'M. d.', MONTH_DAY_MEDIUM: 'MMMM d.', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d., EEE', DAY_ABBR: 'd' }; @@ -3312,12 +4743,13 @@ goog.i18n.DateTimePatterns_hu_HU = { */ goog.i18n.DateTimePatterns_hy = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'y MMM', - YEAR_MONTH_FULL: 'yyyy MMMM', - MONTH_DAY_ABBR: 'MMM d', - MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', - MONTH_DAY_MEDIUM: 'MMMM d', + YEAR_MONTH_ABBR: 'y թ. LLL', + YEAR_MONTH_FULL: 'yyyy թ. LLLL', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'dd.MM', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'd MMM, EEE', DAY_ABBR: 'd' }; @@ -3327,12 +4759,13 @@ goog.i18n.DateTimePatterns_hy = { */ goog.i18n.DateTimePatterns_hy_AM = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'y MMM', - YEAR_MONTH_FULL: 'yyyy MMMM', - MONTH_DAY_ABBR: 'MMM d', - MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', - MONTH_DAY_MEDIUM: 'MMMM d', + YEAR_MONTH_ABBR: 'y թ. LLL', + YEAR_MONTH_FULL: 'yyyy թ. LLLL', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'dd.MM', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'd MMM, EEE', DAY_ABBR: 'd' }; @@ -3348,6 +4781,7 @@ goog.i18n.DateTimePatterns_id_ID = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -3363,6 +4797,7 @@ goog.i18n.DateTimePatterns_ig = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -3378,6 +4813,7 @@ goog.i18n.DateTimePatterns_ig_NG = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -3391,8 +4827,9 @@ goog.i18n.DateTimePatterns_ii = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -3406,8 +4843,9 @@ goog.i18n.DateTimePatterns_ii_CN = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -3423,6 +4861,7 @@ goog.i18n.DateTimePatterns_is_IS = { MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'd.M', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d. MMM', DAY_ABBR: 'd' }; @@ -3438,6 +4877,7 @@ goog.i18n.DateTimePatterns_it_CH = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -3453,6 +4893,23 @@ goog.i18n.DateTimePatterns_it_IT = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale it_SM. + */ +goog.i18n.DateTimePatterns_it_SM = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -3461,17 +4918,50 @@ goog.i18n.DateTimePatterns_it_IT = { * Extended set of localized date/time patterns for locale ja_JP. */ goog.i18n.DateTimePatterns_ja_JP = { - YEAR_FULL: 'y年', + YEAR_FULL: 'yyyy年', YEAR_MONTH_ABBR: 'y年M月', YEAR_MONTH_FULL: 'yyyy年M月', MONTH_DAY_ABBR: 'M月d日', MONTH_DAY_FULL: 'M月dd日', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'M月d日', + WEEKDAY_MONTH_DAY_MEDIUM: 'M月d日(EEE)', DAY_ABBR: 'd日' }; +/** + * Extended set of localized date/time patterns for locale jgo. + */ +goog.i18n.DateTimePatterns_jgo = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'y MMM', + YEAR_MONTH_FULL: 'yyyy MMMM', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'd.M', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale jgo_CM. + */ +goog.i18n.DateTimePatterns_jgo_CM = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'y MMM', + YEAR_MONTH_FULL: 'yyyy MMMM', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'd.M', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', + DAY_ABBR: 'd' +}; + + /** * Extended set of localized date/time patterns for locale jmc. */ @@ -3483,6 +4973,7 @@ goog.i18n.DateTimePatterns_jmc = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -3498,6 +4989,7 @@ goog.i18n.DateTimePatterns_jmc_TZ = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -3507,12 +4999,13 @@ goog.i18n.DateTimePatterns_jmc_TZ = { */ goog.i18n.DateTimePatterns_ka = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'y MMM', - YEAR_MONTH_FULL: 'yyyy MMMM', + YEAR_MONTH_ABBR: 'MMM, y', + YEAR_MONTH_FULL: 'MMMM, yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd.M.', + MONTH_DAY_SHORT: 'd.M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -3522,12 +5015,13 @@ goog.i18n.DateTimePatterns_ka = { */ goog.i18n.DateTimePatterns_ka_GE = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'y MMM', - YEAR_MONTH_FULL: 'yyyy MMMM', + YEAR_MONTH_ABBR: 'MMM, y', + YEAR_MONTH_FULL: 'MMMM, yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd.M.', + MONTH_DAY_SHORT: 'd.M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -3543,6 +5037,7 @@ goog.i18n.DateTimePatterns_kab = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -3558,6 +5053,7 @@ goog.i18n.DateTimePatterns_kab_DZ = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -3573,6 +5069,7 @@ goog.i18n.DateTimePatterns_kam = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -3588,6 +5085,7 @@ goog.i18n.DateTimePatterns_kam_KE = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -3603,6 +5101,7 @@ goog.i18n.DateTimePatterns_kde = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -3618,6 +5117,7 @@ goog.i18n.DateTimePatterns_kde_TZ = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -3629,10 +5129,11 @@ goog.i18n.DateTimePatterns_kea = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM \'di\' y', YEAR_MONTH_FULL: 'MMMM \'di\' yyyy', - MONTH_DAY_ABBR: 'd \'di\' MMM', + MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd \'di\' MMMM', - MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_SHORT: 'dd/MM', MONTH_DAY_MEDIUM: 'd \'di\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -3644,10 +5145,11 @@ goog.i18n.DateTimePatterns_kea_CV = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM \'di\' y', YEAR_MONTH_FULL: 'MMMM \'di\' yyyy', - MONTH_DAY_ABBR: 'd \'di\' MMM', + MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd \'di\' MMMM', - MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_SHORT: 'dd/MM', MONTH_DAY_MEDIUM: 'd \'di\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -3663,6 +5165,7 @@ goog.i18n.DateTimePatterns_khq = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -3678,6 +5181,7 @@ goog.i18n.DateTimePatterns_khq_ML = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -3693,6 +5197,7 @@ goog.i18n.DateTimePatterns_ki = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -3708,6 +5213,7 @@ goog.i18n.DateTimePatterns_ki_KE = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -3721,8 +5227,9 @@ goog.i18n.DateTimePatterns_kk = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -3736,8 +5243,9 @@ goog.i18n.DateTimePatterns_kk_Cyrl = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -3751,8 +5259,9 @@ goog.i18n.DateTimePatterns_kk_Cyrl_KZ = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -3766,8 +5275,9 @@ goog.i18n.DateTimePatterns_kl = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -3781,8 +5291,9 @@ goog.i18n.DateTimePatterns_kl_GL = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -3798,6 +5309,7 @@ goog.i18n.DateTimePatterns_kln = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -3813,6 +5325,7 @@ goog.i18n.DateTimePatterns_kln_KE = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -3822,12 +5335,13 @@ goog.i18n.DateTimePatterns_kln_KE = { */ goog.i18n.DateTimePatterns_km = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'y MMM', - YEAR_MONTH_FULL: 'yyyy MMMM', - MONTH_DAY_ABBR: 'MMM d', - MONTH_DAY_FULL: 'MMMM dd', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'M-d', - MONTH_DAY_MEDIUM: 'MMMM d', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -3837,12 +5351,13 @@ goog.i18n.DateTimePatterns_km = { */ goog.i18n.DateTimePatterns_km_KH = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'y MMM', - YEAR_MONTH_FULL: 'yyyy MMMM', - MONTH_DAY_ABBR: 'MMM d', - MONTH_DAY_FULL: 'MMMM dd', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'M-d', - MONTH_DAY_MEDIUM: 'MMMM d', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -3856,12 +5371,29 @@ goog.i18n.DateTimePatterns_kn_IN = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd-M', + MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; +/** + * Extended set of localized date/time patterns for locale ko_KP. + */ +goog.i18n.DateTimePatterns_ko_KP = { + YEAR_FULL: 'yyyy년', + YEAR_MONTH_ABBR: 'y년 MMM', + YEAR_MONTH_FULL: 'yyyy년 MMMM', + MONTH_DAY_ABBR: 'MMM d일', + MONTH_DAY_FULL: 'MMMM dd일', + MONTH_DAY_SHORT: 'M. d.', + MONTH_DAY_MEDIUM: 'MMMM d일', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d일 (EEE)', + DAY_ABBR: 'd일' +}; + + /** * Extended set of localized date/time patterns for locale ko_KR. */ @@ -3871,8 +5403,9 @@ goog.i18n.DateTimePatterns_ko_KR = { YEAR_MONTH_FULL: 'yyyy년 MMMM', MONTH_DAY_ABBR: 'MMM d일', MONTH_DAY_FULL: 'MMMM dd일', - MONTH_DAY_SHORT: 'M. d', + MONTH_DAY_SHORT: 'M. d.', MONTH_DAY_MEDIUM: 'MMMM d일', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d일 (EEE)', DAY_ABBR: 'd일' }; @@ -3886,8 +5419,9 @@ goog.i18n.DateTimePatterns_kok = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -3901,8 +5435,57 @@ goog.i18n.DateTimePatterns_kok_IN = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale ks. + */ +goog.i18n.DateTimePatterns_ks = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd-MMM', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale ks_Arab. + */ +goog.i18n.DateTimePatterns_ks_Arab = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd-MMM', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale ks_Arab_IN. + */ +goog.i18n.DateTimePatterns_ks_Arab_IN = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd-MMM', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M/d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -3918,6 +5501,7 @@ goog.i18n.DateTimePatterns_ksb = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -3933,6 +5517,7 @@ goog.i18n.DateTimePatterns_ksb_TZ = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -3948,6 +5533,7 @@ goog.i18n.DateTimePatterns_ksf = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -3963,6 +5549,7 @@ goog.i18n.DateTimePatterns_ksf_CM = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -3976,8 +5563,9 @@ goog.i18n.DateTimePatterns_kw = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -3991,8 +5579,9 @@ goog.i18n.DateTimePatterns_kw_GB = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -4008,6 +5597,7 @@ goog.i18n.DateTimePatterns_lag = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -4023,6 +5613,7 @@ goog.i18n.DateTimePatterns_lag_TZ = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -4038,6 +5629,7 @@ goog.i18n.DateTimePatterns_lg = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -4053,6 +5645,23 @@ goog.i18n.DateTimePatterns_lg_UG = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale ln_AO. + */ +goog.i18n.DateTimePatterns_ln_AO = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -4068,6 +5677,23 @@ goog.i18n.DateTimePatterns_ln_CD = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale ln_CF. + */ +goog.i18n.DateTimePatterns_ln_CF = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -4083,6 +5709,39 @@ goog.i18n.DateTimePatterns_ln_CG = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale lo. + */ +goog.i18n.DateTimePatterns_lo = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'y MMM', + YEAR_MONTH_FULL: 'yyyy MMMM', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale lo_LA. + */ +goog.i18n.DateTimePatterns_lo_LA = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'y MMM', + YEAR_MONTH_FULL: 'yyyy MMMM', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE MMM d', DAY_ABBR: 'd' }; @@ -4092,12 +5751,13 @@ goog.i18n.DateTimePatterns_ln_CG = { */ goog.i18n.DateTimePatterns_lt_LT = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'y MMM', - YEAR_MONTH_FULL: 'yyyy MMMM', - MONTH_DAY_ABBR: 'MMM-d', + YEAR_MONTH_ABBR: 'MMM, y', + YEAR_MONTH_FULL: 'MMMM, yyyy', + MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM-dd', - MONTH_DAY_SHORT: 'M.d', - MONTH_DAY_MEDIUM: 'MMMM-d', + MONTH_DAY_SHORT: 'MM-d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -4113,6 +5773,7 @@ goog.i18n.DateTimePatterns_lu = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -4128,6 +5789,7 @@ goog.i18n.DateTimePatterns_lu_CD = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -4143,6 +5805,7 @@ goog.i18n.DateTimePatterns_luo = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -4158,6 +5821,7 @@ goog.i18n.DateTimePatterns_luo_KE = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -4173,6 +5837,7 @@ goog.i18n.DateTimePatterns_luy = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -4188,6 +5853,7 @@ goog.i18n.DateTimePatterns_luy_KE = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -4196,13 +5862,14 @@ goog.i18n.DateTimePatterns_luy_KE = { * Extended set of localized date/time patterns for locale lv_LV. */ goog.i18n.DateTimePatterns_lv_LV = { - YEAR_FULL: 'y. \'g\'.', - YEAR_MONTH_ABBR: 'yyyy. \'g\'. MMM', + YEAR_FULL: 'yyyy. \'g\'.', + YEAR_MONTH_ABBR: 'y. \'g\'. MMM', YEAR_MONTH_FULL: 'yyyy. \'g\'. MMMM', MONTH_DAY_ABBR: 'd. MMM', MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'dd.MM.', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d. MMM', DAY_ABBR: 'd' }; @@ -4218,6 +5885,7 @@ goog.i18n.DateTimePatterns_mas = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -4233,6 +5901,7 @@ goog.i18n.DateTimePatterns_mas_KE = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -4248,6 +5917,7 @@ goog.i18n.DateTimePatterns_mas_TZ = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -4263,6 +5933,7 @@ goog.i18n.DateTimePatterns_mer = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -4278,6 +5949,7 @@ goog.i18n.DateTimePatterns_mer_KE = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -4293,6 +5965,7 @@ goog.i18n.DateTimePatterns_mfe = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -4308,6 +5981,7 @@ goog.i18n.DateTimePatterns_mfe_MU = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -4323,6 +5997,7 @@ goog.i18n.DateTimePatterns_mg = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -4338,6 +6013,7 @@ goog.i18n.DateTimePatterns_mg_MG = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -4353,6 +6029,7 @@ goog.i18n.DateTimePatterns_mgh = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -4368,6 +6045,39 @@ goog.i18n.DateTimePatterns_mgh_MZ = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale mgo. + */ +goog.i18n.DateTimePatterns_mgo = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'y MMM', + YEAR_MONTH_FULL: 'yyyy MMMM', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'MM-dd', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale mgo_CM. + */ +goog.i18n.DateTimePatterns_mgo_CM = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'y MMM', + YEAR_MONTH_FULL: 'yyyy MMMM', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'MM-dd', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -4380,9 +6090,10 @@ goog.i18n.DateTimePatterns_mk = { YEAR_MONTH_ABBR: 'y MMM', YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', - MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'M-d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE MMM d', DAY_ABBR: 'd' }; @@ -4395,9 +6106,10 @@ goog.i18n.DateTimePatterns_mk_MK = { YEAR_MONTH_ABBR: 'y MMM', YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', - MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'M-d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE MMM d', DAY_ABBR: 'd' }; @@ -4411,8 +6123,57 @@ goog.i18n.DateTimePatterns_ml_IN = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'd-M', + MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale mn. + */ +goog.i18n.DateTimePatterns_mn = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'y MMM', + YEAR_MONTH_FULL: 'yyyy MMMM', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale mn_Cyrl. + */ +goog.i18n.DateTimePatterns_mn_Cyrl = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'y MMM', + YEAR_MONTH_FULL: 'yyyy MMMM', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale mn_Cyrl_MN. + */ +goog.i18n.DateTimePatterns_mn_Cyrl_MN = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'y MMM', + YEAR_MONTH_FULL: 'yyyy MMMM', + MONTH_DAY_ABBR: 'MMM d', + MONTH_DAY_FULL: 'MMMM dd', + MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE MMM d', DAY_ABBR: 'd' }; @@ -4426,16 +6187,17 @@ goog.i18n.DateTimePatterns_mr_IN = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd-M', + MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; /** - * Extended set of localized date/time patterns for locale ms_BN. + * Extended set of localized date/time patterns for locale ms_Latn. */ -goog.i18n.DateTimePatterns_ms_BN = { +goog.i18n.DateTimePatterns_ms_Latn = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', @@ -4443,14 +6205,15 @@ goog.i18n.DateTimePatterns_ms_BN = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd-M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; /** - * Extended set of localized date/time patterns for locale ms_MY. + * Extended set of localized date/time patterns for locale ms_Latn_BN. */ -goog.i18n.DateTimePatterns_ms_MY = { +goog.i18n.DateTimePatterns_ms_Latn_BN = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', @@ -4458,6 +6221,39 @@ goog.i18n.DateTimePatterns_ms_MY = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd-M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale ms_Latn_MY. + */ +goog.i18n.DateTimePatterns_ms_Latn_MY = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd-M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale ms_Latn_SG. + */ +goog.i18n.DateTimePatterns_ms_Latn_SG = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd-M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -4471,8 +6267,9 @@ goog.i18n.DateTimePatterns_mt_MT = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -4488,6 +6285,7 @@ goog.i18n.DateTimePatterns_mua = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -4503,6 +6301,7 @@ goog.i18n.DateTimePatterns_mua_CM = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -4518,6 +6317,7 @@ goog.i18n.DateTimePatterns_my = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -4533,6 +6333,7 @@ goog.i18n.DateTimePatterns_my_MM = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -4548,6 +6349,7 @@ goog.i18n.DateTimePatterns_naq = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -4563,25 +6365,11 @@ goog.i18n.DateTimePatterns_naq_NA = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; -/** - * Extended set of localized date/time patterns for locale nb. - */ -goog.i18n.DateTimePatterns_nb = { - YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'd. MMM', - MONTH_DAY_FULL: 'dd. MMMM', - MONTH_DAY_SHORT: 'd.M.', - MONTH_DAY_MEDIUM: 'd. MMMM', - DAY_ABBR: 'd.' -}; - - /** * Extended set of localized date/time patterns for locale nb_NO. */ @@ -4593,6 +6381,7 @@ goog.i18n.DateTimePatterns_nb_NO = { MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'd.M.', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d. MMM', DAY_ABBR: 'd.' }; @@ -4608,6 +6397,7 @@ goog.i18n.DateTimePatterns_nd = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -4623,6 +6413,7 @@ goog.i18n.DateTimePatterns_nd_ZW = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -4636,8 +6427,9 @@ goog.i18n.DateTimePatterns_ne = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -4651,8 +6443,9 @@ goog.i18n.DateTimePatterns_ne_IN = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -4666,8 +6459,9 @@ goog.i18n.DateTimePatterns_ne_NP = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -4683,6 +6477,7 @@ goog.i18n.DateTimePatterns_nl_AW = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd-M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -4698,6 +6493,23 @@ goog.i18n.DateTimePatterns_nl_BE = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd-M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale nl_CW. + */ +goog.i18n.DateTimePatterns_nl_CW = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd-M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -4713,6 +6525,39 @@ goog.i18n.DateTimePatterns_nl_NL = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd-M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale nl_SR. + */ +goog.i18n.DateTimePatterns_nl_SR = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd-M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale nl_SX. + */ +goog.i18n.DateTimePatterns_nl_SX = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd-M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -4728,6 +6573,7 @@ goog.i18n.DateTimePatterns_nmg = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -4743,6 +6589,7 @@ goog.i18n.DateTimePatterns_nmg_CM = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -4756,8 +6603,9 @@ goog.i18n.DateTimePatterns_nn = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd. MMM', MONTH_DAY_FULL: 'dd. MMMM', - MONTH_DAY_SHORT: 'd.M', + MONTH_DAY_SHORT: 'd.M.', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d. MMM', DAY_ABBR: 'd.' }; @@ -4771,8 +6619,9 @@ goog.i18n.DateTimePatterns_nn_NO = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd. MMM', MONTH_DAY_FULL: 'dd. MMMM', - MONTH_DAY_SHORT: 'd.M', + MONTH_DAY_SHORT: 'd.M.', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d. MMM', DAY_ABBR: 'd.' }; @@ -4788,6 +6637,7 @@ goog.i18n.DateTimePatterns_nus = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -4803,6 +6653,7 @@ goog.i18n.DateTimePatterns_nus_SD = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -4818,6 +6669,7 @@ goog.i18n.DateTimePatterns_nyn = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -4833,6 +6685,7 @@ goog.i18n.DateTimePatterns_nyn_UG = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -4842,12 +6695,13 @@ goog.i18n.DateTimePatterns_nyn_UG = { */ goog.i18n.DateTimePatterns_om = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM y', - MONTH_DAY_ABBR: 'd MMM', + YEAR_MONTH_ABBR: 'y MMM', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -4857,12 +6711,13 @@ goog.i18n.DateTimePatterns_om = { */ goog.i18n.DateTimePatterns_om_ET = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM y', - MONTH_DAY_ABBR: 'd MMM', + YEAR_MONTH_ABBR: 'y MMM', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -4872,12 +6727,13 @@ goog.i18n.DateTimePatterns_om_ET = { */ goog.i18n.DateTimePatterns_om_KE = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM y', - MONTH_DAY_ABBR: 'd MMM', + YEAR_MONTH_ABBR: 'y MMM', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -4887,12 +6743,13 @@ goog.i18n.DateTimePatterns_om_KE = { */ goog.i18n.DateTimePatterns_or_IN = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM y', + YEAR_MONTH_ABBR: 'y MMM', + YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'd-M', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -4908,6 +6765,7 @@ goog.i18n.DateTimePatterns_pa = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -4923,6 +6781,7 @@ goog.i18n.DateTimePatterns_pa_Arab = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -4938,6 +6797,7 @@ goog.i18n.DateTimePatterns_pa_Arab_PK = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -4953,6 +6813,7 @@ goog.i18n.DateTimePatterns_pa_Guru = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -4968,6 +6829,7 @@ goog.i18n.DateTimePatterns_pa_Guru_IN = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -4981,8 +6843,9 @@ goog.i18n.DateTimePatterns_pl_PL = { YEAR_MONTH_FULL: 'LLLL yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd.M', + MONTH_DAY_SHORT: 'd.MM', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -4992,12 +6855,13 @@ goog.i18n.DateTimePatterns_pl_PL = { */ goog.i18n.DateTimePatterns_ps = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'y MMM', - YEAR_MONTH_FULL: 'yyyy MMMM', + YEAR_MONTH_ABBR: 'G y MMM', + YEAR_MONTH_FULL: 'G y MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -5007,12 +6871,13 @@ goog.i18n.DateTimePatterns_ps = { */ goog.i18n.DateTimePatterns_ps_AF = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'y MMM', - YEAR_MONTH_FULL: 'yyyy MMMM', + YEAR_MONTH_ABBR: 'G y MMM', + YEAR_MONTH_FULL: 'G y MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -5023,11 +6888,28 @@ goog.i18n.DateTimePatterns_ps_AF = { goog.i18n.DateTimePatterns_pt_AO = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MM/y', - YEAR_MONTH_FULL: 'MM/yyyy', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', MONTH_DAY_ABBR: 'd/MM', - MONTH_DAY_FULL: 'dd/MM', + MONTH_DAY_FULL: 'dd \'de\' MMMM', MONTH_DAY_SHORT: 'd/M', - MONTH_DAY_MEDIUM: 'd/MM', + MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d/MM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale pt_CV. + */ +goog.i18n.DateTimePatterns_pt_CV = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MM/y', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd/MM', + MONTH_DAY_FULL: 'dd \'de\' MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d/MM', DAY_ABBR: 'd' }; @@ -5038,11 +6920,28 @@ goog.i18n.DateTimePatterns_pt_AO = { goog.i18n.DateTimePatterns_pt_GW = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MM/y', - YEAR_MONTH_FULL: 'MM/yyyy', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', MONTH_DAY_ABBR: 'd/MM', - MONTH_DAY_FULL: 'dd/MM', + MONTH_DAY_FULL: 'dd \'de\' MMMM', MONTH_DAY_SHORT: 'd/M', - MONTH_DAY_MEDIUM: 'd/MM', + MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d/MM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale pt_MO. + */ +goog.i18n.DateTimePatterns_pt_MO = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MM/y', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd/MM', + MONTH_DAY_FULL: 'dd \'de\' MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d/MM', DAY_ABBR: 'd' }; @@ -5053,11 +6952,12 @@ goog.i18n.DateTimePatterns_pt_GW = { goog.i18n.DateTimePatterns_pt_MZ = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MM/y', - YEAR_MONTH_FULL: 'MM/yyyy', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', MONTH_DAY_ABBR: 'd/MM', - MONTH_DAY_FULL: 'dd/MM', + MONTH_DAY_FULL: 'dd \'de\' MMMM', MONTH_DAY_SHORT: 'd/M', - MONTH_DAY_MEDIUM: 'd/MM', + MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d/MM', DAY_ABBR: 'd' }; @@ -5068,11 +6968,28 @@ goog.i18n.DateTimePatterns_pt_MZ = { goog.i18n.DateTimePatterns_pt_ST = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MM/y', - YEAR_MONTH_FULL: 'MM/yyyy', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', MONTH_DAY_ABBR: 'd/MM', - MONTH_DAY_FULL: 'dd/MM', + MONTH_DAY_FULL: 'dd \'de\' MMMM', MONTH_DAY_SHORT: 'd/M', - MONTH_DAY_MEDIUM: 'd/MM', + MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d/MM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale pt_TL. + */ +goog.i18n.DateTimePatterns_pt_TL = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MM/y', + YEAR_MONTH_FULL: 'MMMM \'de\' yyyy', + MONTH_DAY_ABBR: 'd/MM', + MONTH_DAY_FULL: 'dd \'de\' MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd \'de\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d/MM', DAY_ABBR: 'd' }; @@ -5081,13 +6998,14 @@ goog.i18n.DateTimePatterns_pt_ST = { * Extended set of localized date/time patterns for locale rm. */ goog.i18n.DateTimePatterns_rm = { - YEAR_FULL: 'y', + YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd. MMM', MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'd.M.', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d. MMM', DAY_ABBR: 'd' }; @@ -5096,13 +7014,14 @@ goog.i18n.DateTimePatterns_rm = { * Extended set of localized date/time patterns for locale rm_CH. */ goog.i18n.DateTimePatterns_rm_CH = { - YEAR_FULL: 'y', + YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd. MMM', MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'd.M.', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d. MMM', DAY_ABBR: 'd' }; @@ -5118,6 +7037,7 @@ goog.i18n.DateTimePatterns_rn = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -5133,6 +7053,7 @@ goog.i18n.DateTimePatterns_rn_BI = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -5146,8 +7067,9 @@ goog.i18n.DateTimePatterns_ro_MD = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd.M', + MONTH_DAY_SHORT: 'dd.MM', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -5161,8 +7083,9 @@ goog.i18n.DateTimePatterns_ro_RO = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd.M', + MONTH_DAY_SHORT: 'dd.MM', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -5178,6 +7101,7 @@ goog.i18n.DateTimePatterns_rof = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -5193,6 +7117,55 @@ goog.i18n.DateTimePatterns_rof_TZ = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale ru_BY. + */ +goog.i18n.DateTimePatterns_ru_BY = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'LLL y', + YEAR_MONTH_FULL: 'LLLL yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'dd.MM', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'ccc, d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale ru_KG. + */ +goog.i18n.DateTimePatterns_ru_KG = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'LLL y', + YEAR_MONTH_FULL: 'LLLL yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'dd.MM', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'ccc, d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale ru_KZ. + */ +goog.i18n.DateTimePatterns_ru_KZ = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'LLL y', + YEAR_MONTH_FULL: 'LLLL yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'dd.MM', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'ccc, d MMM', DAY_ABBR: 'd' }; @@ -5201,13 +7174,14 @@ goog.i18n.DateTimePatterns_rof_TZ = { * Extended set of localized date/time patterns for locale ru_MD. */ goog.i18n.DateTimePatterns_ru_MD = { - YEAR_FULL: 'y', + YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'LLL y', YEAR_MONTH_FULL: 'LLLL yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd.M', + MONTH_DAY_SHORT: 'dd.MM', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'ccc, d MMM', DAY_ABBR: 'd' }; @@ -5216,13 +7190,14 @@ goog.i18n.DateTimePatterns_ru_MD = { * Extended set of localized date/time patterns for locale ru_RU. */ goog.i18n.DateTimePatterns_ru_RU = { - YEAR_FULL: 'y', + YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'LLL y', YEAR_MONTH_FULL: 'LLLL yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd.M', + MONTH_DAY_SHORT: 'dd.MM', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'ccc, d MMM', DAY_ABBR: 'd' }; @@ -5231,13 +7206,14 @@ goog.i18n.DateTimePatterns_ru_RU = { * Extended set of localized date/time patterns for locale ru_UA. */ goog.i18n.DateTimePatterns_ru_UA = { - YEAR_FULL: 'y', + YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'LLL y', YEAR_MONTH_FULL: 'LLLL yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd.M', + MONTH_DAY_SHORT: 'dd.MM', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'ccc, d MMM', DAY_ABBR: 'd' }; @@ -5251,8 +7227,9 @@ goog.i18n.DateTimePatterns_rw = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -5266,8 +7243,9 @@ goog.i18n.DateTimePatterns_rw_RW = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -5283,6 +7261,7 @@ goog.i18n.DateTimePatterns_rwk = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -5298,6 +7277,7 @@ goog.i18n.DateTimePatterns_rwk_TZ = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -5313,6 +7293,7 @@ goog.i18n.DateTimePatterns_saq = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -5328,6 +7309,7 @@ goog.i18n.DateTimePatterns_saq_KE = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -5343,6 +7325,7 @@ goog.i18n.DateTimePatterns_sbp = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -5358,6 +7341,7 @@ goog.i18n.DateTimePatterns_sbp_TZ = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -5373,6 +7357,7 @@ goog.i18n.DateTimePatterns_seh = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -5388,6 +7373,7 @@ goog.i18n.DateTimePatterns_seh_MZ = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -5403,6 +7389,7 @@ goog.i18n.DateTimePatterns_ses = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -5418,6 +7405,7 @@ goog.i18n.DateTimePatterns_ses_ML = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -5433,6 +7421,7 @@ goog.i18n.DateTimePatterns_sg = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -5448,6 +7437,7 @@ goog.i18n.DateTimePatterns_sg_CF = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -5463,6 +7453,7 @@ goog.i18n.DateTimePatterns_shi = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -5478,6 +7469,7 @@ goog.i18n.DateTimePatterns_shi_Latn = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -5493,6 +7485,7 @@ goog.i18n.DateTimePatterns_shi_Latn_MA = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -5508,6 +7501,7 @@ goog.i18n.DateTimePatterns_shi_Tfng = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -5523,6 +7517,7 @@ goog.i18n.DateTimePatterns_shi_Tfng_MA = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -5538,6 +7533,7 @@ goog.i18n.DateTimePatterns_si = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M-d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d EEE', DAY_ABBR: 'd' }; @@ -5553,6 +7549,7 @@ goog.i18n.DateTimePatterns_si_LK = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M-d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d EEE', DAY_ABBR: 'd' }; @@ -5564,10 +7561,11 @@ goog.i18n.DateTimePatterns_sk_SK = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'LLL y', YEAR_MONTH_FULL: 'LLLL yyyy', - MONTH_DAY_ABBR: 'd. MMM', + MONTH_DAY_ABBR: 'd. MMM.', MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'd.M.', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d. MMM.', DAY_ABBR: 'd.' }; @@ -5583,6 +7581,7 @@ goog.i18n.DateTimePatterns_sl_SI = { MONTH_DAY_FULL: 'dd. MMMM', MONTH_DAY_SHORT: 'd. M.', MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d. MMM', DAY_ABBR: 'd' }; @@ -5598,6 +7597,7 @@ goog.i18n.DateTimePatterns_sn = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -5613,6 +7613,7 @@ goog.i18n.DateTimePatterns_sn_ZW = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -5628,6 +7629,7 @@ goog.i18n.DateTimePatterns_so = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -5643,6 +7645,7 @@ goog.i18n.DateTimePatterns_so_DJ = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -5658,6 +7661,7 @@ goog.i18n.DateTimePatterns_so_ET = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -5673,6 +7677,7 @@ goog.i18n.DateTimePatterns_so_KE = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -5688,6 +7693,7 @@ goog.i18n.DateTimePatterns_so_SO = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -5703,6 +7709,23 @@ goog.i18n.DateTimePatterns_sq_AL = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'M-d', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale sq_MK. + */ +goog.i18n.DateTimePatterns_sq_MK = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -5711,13 +7734,14 @@ goog.i18n.DateTimePatterns_sq_AL = { * Extended set of localized date/time patterns for locale sr_Cyrl. */ goog.i18n.DateTimePatterns_sr_Cyrl = { - YEAR_FULL: 'y.', - YEAR_MONTH_ABBR: 'MMM. y', - YEAR_MONTH_FULL: 'MMMM. yyyy', - MONTH_DAY_ABBR: 'MMM d.', - MONTH_DAY_FULL: 'MMMM dd.', - MONTH_DAY_SHORT: 'M-d', - MONTH_DAY_MEDIUM: 'MMMM d.', + YEAR_FULL: 'yyyy.', + YEAR_MONTH_ABBR: 'MMM y.', + YEAR_MONTH_FULL: 'MMMM yyyy.', + MONTH_DAY_ABBR: 'd. MMM', + MONTH_DAY_FULL: 'dd. MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d. MMM', DAY_ABBR: 'd' }; @@ -5726,13 +7750,14 @@ goog.i18n.DateTimePatterns_sr_Cyrl = { * Extended set of localized date/time patterns for locale sr_Cyrl_BA. */ goog.i18n.DateTimePatterns_sr_Cyrl_BA = { - YEAR_FULL: 'y.', - YEAR_MONTH_ABBR: 'MMM. y', - YEAR_MONTH_FULL: 'MMMM. yyyy', - MONTH_DAY_ABBR: 'MMM d.', - MONTH_DAY_FULL: 'MMMM dd.', - MONTH_DAY_SHORT: 'M-d', - MONTH_DAY_MEDIUM: 'MMMM d.', + YEAR_FULL: 'yyyy.', + YEAR_MONTH_ABBR: 'MMM y.', + YEAR_MONTH_FULL: 'MMMM yyyy.', + MONTH_DAY_ABBR: 'd. MMM', + MONTH_DAY_FULL: 'dd. MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d. MMM', DAY_ABBR: 'd' }; @@ -5741,13 +7766,14 @@ goog.i18n.DateTimePatterns_sr_Cyrl_BA = { * Extended set of localized date/time patterns for locale sr_Cyrl_ME. */ goog.i18n.DateTimePatterns_sr_Cyrl_ME = { - YEAR_FULL: 'y.', - YEAR_MONTH_ABBR: 'MMM. y', - YEAR_MONTH_FULL: 'MMMM. yyyy', - MONTH_DAY_ABBR: 'MMM d.', - MONTH_DAY_FULL: 'MMMM dd.', - MONTH_DAY_SHORT: 'M-d', - MONTH_DAY_MEDIUM: 'MMMM d.', + YEAR_FULL: 'yyyy.', + YEAR_MONTH_ABBR: 'MMM y.', + YEAR_MONTH_FULL: 'MMMM yyyy.', + MONTH_DAY_ABBR: 'd. MMM', + MONTH_DAY_FULL: 'dd. MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d. MMM', DAY_ABBR: 'd' }; @@ -5756,13 +7782,14 @@ goog.i18n.DateTimePatterns_sr_Cyrl_ME = { * Extended set of localized date/time patterns for locale sr_Cyrl_RS. */ goog.i18n.DateTimePatterns_sr_Cyrl_RS = { - YEAR_FULL: 'y.', - YEAR_MONTH_ABBR: 'MMM. y', - YEAR_MONTH_FULL: 'MMMM. yyyy', - MONTH_DAY_ABBR: 'MMM d.', - MONTH_DAY_FULL: 'MMMM dd.', - MONTH_DAY_SHORT: 'M-d', - MONTH_DAY_MEDIUM: 'MMMM d.', + YEAR_FULL: 'yyyy.', + YEAR_MONTH_ABBR: 'MMM y.', + YEAR_MONTH_FULL: 'MMMM yyyy.', + MONTH_DAY_ABBR: 'd. MMM', + MONTH_DAY_FULL: 'dd. MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d. MMM', DAY_ABBR: 'd' }; @@ -5771,13 +7798,14 @@ goog.i18n.DateTimePatterns_sr_Cyrl_RS = { * Extended set of localized date/time patterns for locale sr_Latn. */ goog.i18n.DateTimePatterns_sr_Latn = { - YEAR_FULL: 'y.', - YEAR_MONTH_ABBR: 'y MMM', - YEAR_MONTH_FULL: 'yyyy MMMM', - MONTH_DAY_ABBR: 'dd. MMM', + YEAR_FULL: 'yyyy.', + YEAR_MONTH_ABBR: 'MMM y.', + YEAR_MONTH_FULL: 'MMMM yyyy.', + MONTH_DAY_ABBR: 'd. MMM', MONTH_DAY_FULL: 'dd. MMMM', - MONTH_DAY_SHORT: 'M-d', - MONTH_DAY_MEDIUM: 'dd. MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d. MMM', DAY_ABBR: 'd' }; @@ -5786,13 +7814,14 @@ goog.i18n.DateTimePatterns_sr_Latn = { * Extended set of localized date/time patterns for locale sr_Latn_BA. */ goog.i18n.DateTimePatterns_sr_Latn_BA = { - YEAR_FULL: 'y.', - YEAR_MONTH_ABBR: 'y MMM', - YEAR_MONTH_FULL: 'yyyy MMMM', - MONTH_DAY_ABBR: 'dd. MMM', + YEAR_FULL: 'yyyy.', + YEAR_MONTH_ABBR: 'MMM y.', + YEAR_MONTH_FULL: 'MMMM yyyy.', + MONTH_DAY_ABBR: 'd. MMM', MONTH_DAY_FULL: 'dd. MMMM', - MONTH_DAY_SHORT: 'M-d', - MONTH_DAY_MEDIUM: 'dd. MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d. MMM', DAY_ABBR: 'd' }; @@ -5801,13 +7830,14 @@ goog.i18n.DateTimePatterns_sr_Latn_BA = { * Extended set of localized date/time patterns for locale sr_Latn_ME. */ goog.i18n.DateTimePatterns_sr_Latn_ME = { - YEAR_FULL: 'y.', - YEAR_MONTH_ABBR: 'y MMM', - YEAR_MONTH_FULL: 'yyyy MMMM', - MONTH_DAY_ABBR: 'dd. MMM', + YEAR_FULL: 'yyyy.', + YEAR_MONTH_ABBR: 'MMM y.', + YEAR_MONTH_FULL: 'MMMM yyyy.', + MONTH_DAY_ABBR: 'd. MMM', MONTH_DAY_FULL: 'dd. MMMM', - MONTH_DAY_SHORT: 'M-d', - MONTH_DAY_MEDIUM: 'dd. MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d. MMM', DAY_ABBR: 'd' }; @@ -5816,13 +7846,30 @@ goog.i18n.DateTimePatterns_sr_Latn_ME = { * Extended set of localized date/time patterns for locale sr_Latn_RS. */ goog.i18n.DateTimePatterns_sr_Latn_RS = { - YEAR_FULL: 'y.', - YEAR_MONTH_ABBR: 'y MMM', - YEAR_MONTH_FULL: 'yyyy MMMM', - MONTH_DAY_ABBR: 'dd. MMM', + YEAR_FULL: 'yyyy.', + YEAR_MONTH_ABBR: 'MMM y.', + YEAR_MONTH_FULL: 'MMMM yyyy.', + MONTH_DAY_ABBR: 'd. MMM', MONTH_DAY_FULL: 'dd. MMMM', - MONTH_DAY_SHORT: 'M-d', - MONTH_DAY_MEDIUM: 'dd. MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd. MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d. MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale sv_AX. + */ +goog.i18n.DateTimePatterns_sv_AX = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd:\'e\' MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd:\'e\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -5834,10 +7881,11 @@ goog.i18n.DateTimePatterns_sv_FI = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'd:\'e\' MMM', + MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd:\'e\' MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd:\'e\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -5849,10 +7897,11 @@ goog.i18n.DateTimePatterns_sv_SE = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'd:\'e\' MMM', + MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd:\'e\' MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd:\'e\' MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -5864,10 +7913,11 @@ goog.i18n.DateTimePatterns_sw_KE = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'MMM d', - MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M/d', - MONTH_DAY_MEDIUM: 'MMMM d', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd-M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -5879,10 +7929,27 @@ goog.i18n.DateTimePatterns_sw_TZ = { YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'MMM d', - MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M/d', - MONTH_DAY_MEDIUM: 'MMMM d', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd-M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale sw_UG. + */ +goog.i18n.DateTimePatterns_sw_UG = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd-M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -5898,6 +7965,7 @@ goog.i18n.DateTimePatterns_swc = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -5913,6 +7981,7 @@ goog.i18n.DateTimePatterns_swc_CD = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -5926,8 +7995,9 @@ goog.i18n.DateTimePatterns_ta_IN = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd-M', + MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -5941,8 +8011,41 @@ goog.i18n.DateTimePatterns_ta_LK = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd-M', + MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale ta_MY. + */ +goog.i18n.DateTimePatterns_ta_MY = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale ta_SG. + */ +goog.i18n.DateTimePatterns_ta_SG = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -5956,8 +8059,9 @@ goog.i18n.DateTimePatterns_te_IN = { YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd-M', + MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -5973,6 +8077,7 @@ goog.i18n.DateTimePatterns_teo = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -5988,6 +8093,7 @@ goog.i18n.DateTimePatterns_teo_KE = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -6003,6 +8109,7 @@ goog.i18n.DateTimePatterns_teo_UG = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -6011,13 +8118,14 @@ goog.i18n.DateTimePatterns_teo_UG = { * Extended set of localized date/time patterns for locale th_TH. */ goog.i18n.DateTimePatterns_th_TH = { - YEAR_FULL: 'G yyyy', + YEAR_FULL: 'G y', YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM yyyy', + YEAR_MONTH_FULL: 'MMMM y', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -6027,12 +8135,13 @@ goog.i18n.DateTimePatterns_th_TH = { */ goog.i18n.DateTimePatterns_ti = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM y', - MONTH_DAY_ABBR: 'd MMM', + YEAR_MONTH_ABBR: 'y MMM', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -6042,12 +8151,13 @@ goog.i18n.DateTimePatterns_ti = { */ goog.i18n.DateTimePatterns_ti_ER = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM y', - MONTH_DAY_ABBR: 'd MMM', + YEAR_MONTH_ABBR: 'y MMM', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -6057,12 +8167,13 @@ goog.i18n.DateTimePatterns_ti_ER = { */ goog.i18n.DateTimePatterns_ti_ET = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'MMM y', - YEAR_MONTH_FULL: 'MMMM y', - MONTH_DAY_ABBR: 'd MMM', + YEAR_MONTH_ABBR: 'y MMM', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -6078,6 +8189,7 @@ goog.i18n.DateTimePatterns_to = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -6093,6 +8205,23 @@ goog.i18n.DateTimePatterns_to_TO = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', + DAY_ABBR: 'd' +}; + + +/** + * Extended set of localized date/time patterns for locale tr_CY. + */ +goog.i18n.DateTimePatterns_tr_CY = { + YEAR_FULL: 'yyyy', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'dd/MM', + MONTH_DAY_MEDIUM: 'dd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'd MMMM EEE', DAY_ABBR: 'd' }; @@ -6101,13 +8230,14 @@ goog.i18n.DateTimePatterns_to_TO = { * Extended set of localized date/time patterns for locale tr_TR. */ goog.i18n.DateTimePatterns_tr_TR = { - YEAR_FULL: 'y', + YEAR_FULL: 'yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'dd MMM', + MONTH_DAY_ABBR: 'd MMMM', MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'dd/MM', MONTH_DAY_MEDIUM: 'dd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'd MMMM EEE', DAY_ABBR: 'd' }; @@ -6123,6 +8253,7 @@ goog.i18n.DateTimePatterns_twq = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -6138,6 +8269,7 @@ goog.i18n.DateTimePatterns_twq_NE = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -6153,6 +8285,7 @@ goog.i18n.DateTimePatterns_tzm = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -6168,6 +8301,7 @@ goog.i18n.DateTimePatterns_tzm_Latn = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -6183,6 +8317,7 @@ goog.i18n.DateTimePatterns_tzm_Latn_MA = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -6196,8 +8331,9 @@ goog.i18n.DateTimePatterns_uk_UA = { YEAR_MONTH_FULL: 'LLLL yyyy', MONTH_DAY_ABBR: 'd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd.M', + MONTH_DAY_SHORT: 'dd.MM', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, d MMM', DAY_ABBR: 'd' }; @@ -6207,12 +8343,13 @@ goog.i18n.DateTimePatterns_uk_UA = { */ goog.i18n.DateTimePatterns_ur_IN = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'y MMM', - YEAR_MONTH_FULL: 'yyyy MMMM', - MONTH_DAY_ABBR: 'MMM d', - MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', - MONTH_DAY_MEDIUM: 'MMMM d', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', DAY_ABBR: 'd' }; @@ -6222,12 +8359,13 @@ goog.i18n.DateTimePatterns_ur_IN = { */ goog.i18n.DateTimePatterns_ur_PK = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'y MMM', - YEAR_MONTH_FULL: 'yyyy MMMM', - MONTH_DAY_ABBR: 'MMM d', - MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', - MONTH_DAY_MEDIUM: 'MMMM d', + YEAR_MONTH_ABBR: 'MMM y', + YEAR_MONTH_FULL: 'MMMM yyyy', + MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_FULL: 'dd MMMM', + MONTH_DAY_SHORT: 'd/M', + MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE، d MMM', DAY_ABBR: 'd' }; @@ -6241,8 +8379,9 @@ goog.i18n.DateTimePatterns_uz = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -6256,8 +8395,9 @@ goog.i18n.DateTimePatterns_uz_Arab = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -6266,13 +8406,14 @@ goog.i18n.DateTimePatterns_uz_Arab = { * Extended set of localized date/time patterns for locale uz_Arab_AF. */ goog.i18n.DateTimePatterns_uz_Arab_AF = { - YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'y MMM', - YEAR_MONTH_FULL: 'yyyy MMMM', + YEAR_FULL: 'G y', + YEAR_MONTH_ABBR: 'G y MMM', + YEAR_MONTH_FULL: 'G y MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -6286,8 +8427,9 @@ goog.i18n.DateTimePatterns_uz_Cyrl = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -6301,8 +8443,9 @@ goog.i18n.DateTimePatterns_uz_Cyrl_UZ = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -6316,8 +8459,9 @@ goog.i18n.DateTimePatterns_uz_Latn = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -6331,8 +8475,9 @@ goog.i18n.DateTimePatterns_uz_Latn_UZ = { YEAR_MONTH_FULL: 'yyyy MMMM', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'MM-dd', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'MMM d, EEE', DAY_ABBR: 'd' }; @@ -6342,12 +8487,13 @@ goog.i18n.DateTimePatterns_uz_Latn_UZ = { */ goog.i18n.DateTimePatterns_vai = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'MMM yyyy', + YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -6363,6 +8509,7 @@ goog.i18n.DateTimePatterns_vai_Latn = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -6378,6 +8525,7 @@ goog.i18n.DateTimePatterns_vai_Latn_LR = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -6387,12 +8535,13 @@ goog.i18n.DateTimePatterns_vai_Latn_LR = { */ goog.i18n.DateTimePatterns_vai_Vaii = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'MMM yyyy', + YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -6402,12 +8551,13 @@ goog.i18n.DateTimePatterns_vai_Vaii = { */ goog.i18n.DateTimePatterns_vai_Vaii_LR = { YEAR_FULL: 'yyyy', - YEAR_MONTH_ABBR: 'MMM yyyy', + YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -6416,14 +8566,15 @@ goog.i18n.DateTimePatterns_vai_Vaii_LR = { * Extended set of localized date/time patterns for locale vi_VN. */ goog.i18n.DateTimePatterns_vi_VN = { - YEAR_FULL: 'y', + YEAR_FULL: '\'Năm\' yyyy', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', - MONTH_DAY_ABBR: 'd MMM', + MONTH_DAY_ABBR: 'dd MMM', MONTH_DAY_FULL: 'dd MMMM', - MONTH_DAY_SHORT: 'd-M', - MONTH_DAY_MEDIUM: 'd MMMM', - DAY_ABBR: '\'Ngày\' d' + MONTH_DAY_SHORT: 'dd-M', + MONTH_DAY_MEDIUM: 'dd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, dd MMM', + DAY_ABBR: '\'Ngày\' dd' }; @@ -6438,6 +8589,7 @@ goog.i18n.DateTimePatterns_vun = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -6453,6 +8605,7 @@ goog.i18n.DateTimePatterns_vun_TZ = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -6468,6 +8621,7 @@ goog.i18n.DateTimePatterns_xog = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -6483,6 +8637,7 @@ goog.i18n.DateTimePatterns_xog_UG = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -6498,6 +8653,7 @@ goog.i18n.DateTimePatterns_yav = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -6513,6 +8669,7 @@ goog.i18n.DateTimePatterns_yav_CM = { MONTH_DAY_FULL: 'dd MMMM', MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'd MMMM', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE d MMM', DAY_ABBR: 'd' }; @@ -6528,6 +8685,7 @@ goog.i18n.DateTimePatterns_yo = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -6543,6 +8701,7 @@ goog.i18n.DateTimePatterns_yo_NG = { MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -6551,13 +8710,14 @@ goog.i18n.DateTimePatterns_yo_NG = { * Extended set of localized date/time patterns for locale zh_Hans. */ goog.i18n.DateTimePatterns_zh_Hans = { - YEAR_FULL: 'y年', + YEAR_FULL: 'yyyy年', YEAR_MONTH_ABBR: 'y年M月', YEAR_MONTH_FULL: 'yyyy年M月', MONTH_DAY_ABBR: 'M月d日', MONTH_DAY_FULL: 'M月dd日', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'M月d日', + WEEKDAY_MONTH_DAY_MEDIUM: 'M月d日EEE', DAY_ABBR: 'd日' }; @@ -6566,13 +8726,14 @@ goog.i18n.DateTimePatterns_zh_Hans = { * Extended set of localized date/time patterns for locale zh_Hans_CN. */ goog.i18n.DateTimePatterns_zh_Hans_CN = { - YEAR_FULL: 'y年', + YEAR_FULL: 'yyyy年', YEAR_MONTH_ABBR: 'y年M月', YEAR_MONTH_FULL: 'yyyy年M月', MONTH_DAY_ABBR: 'M月d日', MONTH_DAY_FULL: 'M月dd日', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'M月d日', + WEEKDAY_MONTH_DAY_MEDIUM: 'M月d日EEE', DAY_ABBR: 'd日' }; @@ -6581,13 +8742,14 @@ goog.i18n.DateTimePatterns_zh_Hans_CN = { * Extended set of localized date/time patterns for locale zh_Hans_HK. */ goog.i18n.DateTimePatterns_zh_Hans_HK = { - YEAR_FULL: 'y年', + YEAR_FULL: 'yyyy年', YEAR_MONTH_ABBR: 'y年M月', YEAR_MONTH_FULL: 'yyyy年M月', MONTH_DAY_ABBR: 'M月d日', - MONTH_DAY_FULL: 'M月dd日', + MONTH_DAY_FULL: 'M月d日', MONTH_DAY_SHORT: 'M-d', MONTH_DAY_MEDIUM: 'M月d日', + WEEKDAY_MONTH_DAY_MEDIUM: 'M月d日EEE', DAY_ABBR: 'd日' }; @@ -6603,6 +8765,7 @@ goog.i18n.DateTimePatterns_zh_Hans_MO = { MONTH_DAY_FULL: 'M月d日', MONTH_DAY_SHORT: 'M-d', MONTH_DAY_MEDIUM: 'M月d日', + WEEKDAY_MONTH_DAY_MEDIUM: 'M月d日EEE', DAY_ABBR: 'd日' }; @@ -6618,6 +8781,7 @@ goog.i18n.DateTimePatterns_zh_Hans_SG = { MONTH_DAY_FULL: 'M月d日', MONTH_DAY_SHORT: 'M-d', MONTH_DAY_MEDIUM: 'M月d日', + WEEKDAY_MONTH_DAY_MEDIUM: 'M月d日EEE', DAY_ABBR: 'd日' }; @@ -6626,13 +8790,14 @@ goog.i18n.DateTimePatterns_zh_Hans_SG = { * Extended set of localized date/time patterns for locale zh_Hant. */ goog.i18n.DateTimePatterns_zh_Hant = { - YEAR_FULL: 'y年', + YEAR_FULL: 'yyyy年', YEAR_MONTH_ABBR: 'y年M月', YEAR_MONTH_FULL: 'yyyy年M月', MONTH_DAY_ABBR: 'M月d日', MONTH_DAY_FULL: 'M月dd日', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'M月d日', + WEEKDAY_MONTH_DAY_MEDIUM: 'M月d日EEE', DAY_ABBR: 'd日' }; @@ -6641,13 +8806,14 @@ goog.i18n.DateTimePatterns_zh_Hant = { * Extended set of localized date/time patterns for locale zh_Hant_HK. */ goog.i18n.DateTimePatterns_zh_Hant_HK = { - YEAR_FULL: 'y年', + YEAR_FULL: 'yyyy年', YEAR_MONTH_ABBR: 'y年M月', YEAR_MONTH_FULL: 'yyyy年M月', MONTH_DAY_ABBR: 'M月d日', MONTH_DAY_FULL: 'M月dd日', - MONTH_DAY_SHORT: 'M-d', + MONTH_DAY_SHORT: 'd/M', MONTH_DAY_MEDIUM: 'M月d日', + WEEKDAY_MONTH_DAY_MEDIUM: 'M月d日EEE', DAY_ABBR: 'd日' }; @@ -6656,13 +8822,14 @@ goog.i18n.DateTimePatterns_zh_Hant_HK = { * Extended set of localized date/time patterns for locale zh_Hant_MO. */ goog.i18n.DateTimePatterns_zh_Hant_MO = { - YEAR_FULL: 'y年', + YEAR_FULL: 'yyyy年', YEAR_MONTH_ABBR: 'y年M月', YEAR_MONTH_FULL: 'yyyy年M月', MONTH_DAY_ABBR: 'M月d日', MONTH_DAY_FULL: 'M月dd日', - MONTH_DAY_SHORT: 'd-M', + MONTH_DAY_SHORT: 'M-d', MONTH_DAY_MEDIUM: 'M月d日', + WEEKDAY_MONTH_DAY_MEDIUM: 'M月d日EEE', DAY_ABBR: 'd日' }; @@ -6671,13 +8838,14 @@ goog.i18n.DateTimePatterns_zh_Hant_MO = { * Extended set of localized date/time patterns for locale zh_Hant_TW. */ goog.i18n.DateTimePatterns_zh_Hant_TW = { - YEAR_FULL: 'y年', + YEAR_FULL: 'yyyy年', YEAR_MONTH_ABBR: 'y年M月', YEAR_MONTH_FULL: 'yyyy年M月', MONTH_DAY_ABBR: 'M月d日', MONTH_DAY_FULL: 'M月dd日', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'M月d日', + WEEKDAY_MONTH_DAY_MEDIUM: 'M月d日EEE', DAY_ABBR: 'd日' }; @@ -6686,13 +8854,14 @@ goog.i18n.DateTimePatterns_zh_Hant_TW = { * Extended set of localized date/time patterns for locale zu_ZA. */ goog.i18n.DateTimePatterns_zu_ZA = { - YEAR_FULL: 'yyyy', + YEAR_FULL: 'YYYY', YEAR_MONTH_ABBR: 'MMM y', YEAR_MONTH_FULL: 'MMMM yyyy', MONTH_DAY_ABBR: 'MMM d', MONTH_DAY_FULL: 'MMMM dd', MONTH_DAY_SHORT: 'M/d', MONTH_DAY_MEDIUM: 'MMMM d', + WEEKDAY_MONTH_DAY_MEDIUM: 'EEE, MMM d', DAY_ABBR: 'd' }; @@ -6728,6 +8897,10 @@ if (goog.LOCALE == 'am_ET' || goog.LOCALE == 'am-ET') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_am_ET; } +if (goog.LOCALE == 'ar_001' || goog.LOCALE == 'ar-001') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ar_001; +} + if (goog.LOCALE == 'ar_AE' || goog.LOCALE == 'ar-AE') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ar_AE; } @@ -6736,6 +8909,10 @@ if (goog.LOCALE == 'ar_BH' || goog.LOCALE == 'ar-BH') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ar_BH; } +if (goog.LOCALE == 'ar_DJ' || goog.LOCALE == 'ar-DJ') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ar_DJ; +} + if (goog.LOCALE == 'ar_DZ' || goog.LOCALE == 'ar-DZ') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ar_DZ; } @@ -6744,6 +8921,18 @@ if (goog.LOCALE == 'ar_EG' || goog.LOCALE == 'ar-EG') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ar_EG; } +if (goog.LOCALE == 'ar_EH' || goog.LOCALE == 'ar-EH') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ar_EH; +} + +if (goog.LOCALE == 'ar_ER' || goog.LOCALE == 'ar-ER') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ar_ER; +} + +if (goog.LOCALE == 'ar_IL' || goog.LOCALE == 'ar-IL') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ar_IL; +} + if (goog.LOCALE == 'ar_IQ' || goog.LOCALE == 'ar-IQ') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ar_IQ; } @@ -6752,6 +8941,10 @@ if (goog.LOCALE == 'ar_JO' || goog.LOCALE == 'ar-JO') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ar_JO; } +if (goog.LOCALE == 'ar_KM' || goog.LOCALE == 'ar-KM') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ar_KM; +} + if (goog.LOCALE == 'ar_KW' || goog.LOCALE == 'ar-KW') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ar_KW; } @@ -6768,10 +8961,18 @@ if (goog.LOCALE == 'ar_MA' || goog.LOCALE == 'ar-MA') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ar_MA; } +if (goog.LOCALE == 'ar_MR' || goog.LOCALE == 'ar-MR') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ar_MR; +} + if (goog.LOCALE == 'ar_OM' || goog.LOCALE == 'ar-OM') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ar_OM; } +if (goog.LOCALE == 'ar_PS' || goog.LOCALE == 'ar-PS') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ar_PS; +} + if (goog.LOCALE == 'ar_QA' || goog.LOCALE == 'ar-QA') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ar_QA; } @@ -6784,10 +8985,18 @@ if (goog.LOCALE == 'ar_SD' || goog.LOCALE == 'ar-SD') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ar_SD; } +if (goog.LOCALE == 'ar_SO' || goog.LOCALE == 'ar-SO') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ar_SO; +} + if (goog.LOCALE == 'ar_SY' || goog.LOCALE == 'ar-SY') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ar_SY; } +if (goog.LOCALE == 'ar_TD' || goog.LOCALE == 'ar-TD') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ar_TD; +} + if (goog.LOCALE == 'ar_TN' || goog.LOCALE == 'ar-TN') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ar_TN; } @@ -6896,10 +9105,6 @@ if (goog.LOCALE == 'bo_IN' || goog.LOCALE == 'bo-IN') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_bo_IN; } -if (goog.LOCALE == 'br') { - goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_br; -} - if (goog.LOCALE == 'br_FR' || goog.LOCALE == 'br-FR') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_br_FR; } @@ -6916,8 +9121,24 @@ if (goog.LOCALE == 'bs') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_bs; } -if (goog.LOCALE == 'bs_BA' || goog.LOCALE == 'bs-BA') { - goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_bs_BA; +if (goog.LOCALE == 'bs_Cyrl' || goog.LOCALE == 'bs-Cyrl') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_bs_Cyrl; +} + +if (goog.LOCALE == 'bs_Cyrl_BA' || goog.LOCALE == 'bs-Cyrl-BA') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_bs_Cyrl_BA; +} + +if (goog.LOCALE == 'bs_Latn' || goog.LOCALE == 'bs-Latn') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_bs_Latn; +} + +if (goog.LOCALE == 'bs_Latn_BA' || goog.LOCALE == 'bs-Latn-BA') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_bs_Latn_BA; +} + +if (goog.LOCALE == 'ca_AD' || goog.LOCALE == 'ca-AD') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ca_AD; } if (goog.LOCALE == 'ca_ES' || goog.LOCALE == 'ca-ES') { @@ -6996,6 +9217,14 @@ if (goog.LOCALE == 'dyo_SN' || goog.LOCALE == 'dyo-SN') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_dyo_SN; } +if (goog.LOCALE == 'dz') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_dz; +} + +if (goog.LOCALE == 'dz_BT' || goog.LOCALE == 'dz-BT') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_dz_BT; +} + if (goog.LOCALE == 'ebu') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ebu; } @@ -7024,6 +9253,14 @@ if (goog.LOCALE == 'el_GR' || goog.LOCALE == 'el-GR') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_el_GR; } +if (goog.LOCALE == 'en_150' || goog.LOCALE == 'en-150') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_150; +} + +if (goog.LOCALE == 'en_AG' || goog.LOCALE == 'en-AG') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_AG; +} + if (goog.LOCALE == 'en_AS' || goog.LOCALE == 'en-AS') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_AS; } @@ -7040,6 +9277,10 @@ if (goog.LOCALE == 'en_BM' || goog.LOCALE == 'en-BM') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_BM; } +if (goog.LOCALE == 'en_BS' || goog.LOCALE == 'en-BS') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_BS; +} + if (goog.LOCALE == 'en_BW' || goog.LOCALE == 'en-BW') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_BW; } @@ -7052,6 +9293,42 @@ if (goog.LOCALE == 'en_CA' || goog.LOCALE == 'en-CA') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_CA; } +if (goog.LOCALE == 'en_CM' || goog.LOCALE == 'en-CM') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_CM; +} + +if (goog.LOCALE == 'en_DM' || goog.LOCALE == 'en-DM') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_DM; +} + +if (goog.LOCALE == 'en_FJ' || goog.LOCALE == 'en-FJ') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_FJ; +} + +if (goog.LOCALE == 'en_FM' || goog.LOCALE == 'en-FM') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_FM; +} + +if (goog.LOCALE == 'en_GD' || goog.LOCALE == 'en-GD') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_GD; +} + +if (goog.LOCALE == 'en_GG' || goog.LOCALE == 'en-GG') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_GG; +} + +if (goog.LOCALE == 'en_GH' || goog.LOCALE == 'en-GH') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_GH; +} + +if (goog.LOCALE == 'en_GI' || goog.LOCALE == 'en-GI') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_GI; +} + +if (goog.LOCALE == 'en_GM' || goog.LOCALE == 'en-GM') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_GM; +} + if (goog.LOCALE == 'en_GU' || goog.LOCALE == 'en-GU') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_GU; } @@ -7064,10 +9341,50 @@ if (goog.LOCALE == 'en_HK' || goog.LOCALE == 'en-HK') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_HK; } +if (goog.LOCALE == 'en_IM' || goog.LOCALE == 'en-IM') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_IM; +} + +if (goog.LOCALE == 'en_JE' || goog.LOCALE == 'en-JE') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_JE; +} + if (goog.LOCALE == 'en_JM' || goog.LOCALE == 'en-JM') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_JM; } +if (goog.LOCALE == 'en_KE' || goog.LOCALE == 'en-KE') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_KE; +} + +if (goog.LOCALE == 'en_KI' || goog.LOCALE == 'en-KI') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_KI; +} + +if (goog.LOCALE == 'en_KN' || goog.LOCALE == 'en-KN') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_KN; +} + +if (goog.LOCALE == 'en_KY' || goog.LOCALE == 'en-KY') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_KY; +} + +if (goog.LOCALE == 'en_LC' || goog.LOCALE == 'en-LC') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_LC; +} + +if (goog.LOCALE == 'en_LR' || goog.LOCALE == 'en-LR') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_LR; +} + +if (goog.LOCALE == 'en_LS' || goog.LOCALE == 'en-LS') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_LS; +} + +if (goog.LOCALE == 'en_MG' || goog.LOCALE == 'en-MG') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_MG; +} + if (goog.LOCALE == 'en_MH' || goog.LOCALE == 'en-MH') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_MH; } @@ -7084,14 +9401,26 @@ if (goog.LOCALE == 'en_MU' || goog.LOCALE == 'en-MU') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_MU; } +if (goog.LOCALE == 'en_MW' || goog.LOCALE == 'en-MW') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_MW; +} + if (goog.LOCALE == 'en_NA' || goog.LOCALE == 'en-NA') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_NA; } +if (goog.LOCALE == 'en_NG' || goog.LOCALE == 'en-NG') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_NG; +} + if (goog.LOCALE == 'en_NZ' || goog.LOCALE == 'en-NZ') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_NZ; } +if (goog.LOCALE == 'en_PG' || goog.LOCALE == 'en-PG') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_PG; +} + if (goog.LOCALE == 'en_PH' || goog.LOCALE == 'en-PH') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_PH; } @@ -7100,10 +9429,54 @@ if (goog.LOCALE == 'en_PK' || goog.LOCALE == 'en-PK') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_PK; } +if (goog.LOCALE == 'en_PR' || goog.LOCALE == 'en-PR') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_PR; +} + +if (goog.LOCALE == 'en_PW' || goog.LOCALE == 'en-PW') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_PW; +} + +if (goog.LOCALE == 'en_SB' || goog.LOCALE == 'en-SB') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_SB; +} + +if (goog.LOCALE == 'en_SC' || goog.LOCALE == 'en-SC') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_SC; +} + +if (goog.LOCALE == 'en_SL' || goog.LOCALE == 'en-SL') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_SL; +} + +if (goog.LOCALE == 'en_SS' || goog.LOCALE == 'en-SS') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_SS; +} + +if (goog.LOCALE == 'en_SZ' || goog.LOCALE == 'en-SZ') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_SZ; +} + +if (goog.LOCALE == 'en_TC' || goog.LOCALE == 'en-TC') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_TC; +} + +if (goog.LOCALE == 'en_TO' || goog.LOCALE == 'en-TO') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_TO; +} + if (goog.LOCALE == 'en_TT' || goog.LOCALE == 'en-TT') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_TT; } +if (goog.LOCALE == 'en_TZ' || goog.LOCALE == 'en-TZ') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_TZ; +} + +if (goog.LOCALE == 'en_UG' || goog.LOCALE == 'en-UG') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_UG; +} + if (goog.LOCALE == 'en_UM' || goog.LOCALE == 'en-UM') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_UM; } @@ -7112,10 +9485,30 @@ if (goog.LOCALE == 'en_US_POSIX' || goog.LOCALE == 'en-US-POSIX') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_US_POSIX; } +if (goog.LOCALE == 'en_VC' || goog.LOCALE == 'en-VC') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_VC; +} + +if (goog.LOCALE == 'en_VG' || goog.LOCALE == 'en-VG') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_VG; +} + if (goog.LOCALE == 'en_VI' || goog.LOCALE == 'en-VI') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_VI; } +if (goog.LOCALE == 'en_VU' || goog.LOCALE == 'en-VU') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_VU; +} + +if (goog.LOCALE == 'en_WS' || goog.LOCALE == 'en-WS') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_WS; +} + +if (goog.LOCALE == 'en_ZM' || goog.LOCALE == 'en-ZM') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_ZM; +} + if (goog.LOCALE == 'en_ZW' || goog.LOCALE == 'en-ZW') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_en_ZW; } @@ -7144,16 +9537,20 @@ if (goog.LOCALE == 'es_CR' || goog.LOCALE == 'es-CR') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_es_CR; } +if (goog.LOCALE == 'es_CU' || goog.LOCALE == 'es-CU') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_es_CU; +} + if (goog.LOCALE == 'es_DO' || goog.LOCALE == 'es-DO') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_es_DO; } -if (goog.LOCALE == 'es_EC' || goog.LOCALE == 'es-EC') { - goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_es_EC; +if (goog.LOCALE == 'es_EA' || goog.LOCALE == 'es-EA') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_es_EA; } -if (goog.LOCALE == 'es_ES' || goog.LOCALE == 'es-ES') { - goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_es_ES; +if (goog.LOCALE == 'es_EC' || goog.LOCALE == 'es-EC') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_es_EC; } if (goog.LOCALE == 'es_GQ' || goog.LOCALE == 'es-GQ') { @@ -7168,6 +9565,10 @@ if (goog.LOCALE == 'es_HN' || goog.LOCALE == 'es-HN') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_es_HN; } +if (goog.LOCALE == 'es_IC' || goog.LOCALE == 'es-IC') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_es_IC; +} + if (goog.LOCALE == 'es_MX' || goog.LOCALE == 'es-MX') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_es_MX; } @@ -7184,6 +9585,10 @@ if (goog.LOCALE == 'es_PE' || goog.LOCALE == 'es-PE') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_es_PE; } +if (goog.LOCALE == 'es_PH' || goog.LOCALE == 'es-PH') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_es_PH; +} + if (goog.LOCALE == 'es_PR' || goog.LOCALE == 'es-PR') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_es_PR; } @@ -7304,6 +9709,10 @@ if (goog.LOCALE == 'fr_DJ' || goog.LOCALE == 'fr-DJ') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_fr_DJ; } +if (goog.LOCALE == 'fr_DZ' || goog.LOCALE == 'fr-DZ') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_fr_DZ; +} + if (goog.LOCALE == 'fr_FR' || goog.LOCALE == 'fr-FR') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_fr_FR; } @@ -7328,6 +9737,10 @@ if (goog.LOCALE == 'fr_GQ' || goog.LOCALE == 'fr-GQ') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_fr_GQ; } +if (goog.LOCALE == 'fr_HT' || goog.LOCALE == 'fr-HT') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_fr_HT; +} + if (goog.LOCALE == 'fr_KM' || goog.LOCALE == 'fr-KM') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_fr_KM; } @@ -7336,6 +9749,10 @@ if (goog.LOCALE == 'fr_LU' || goog.LOCALE == 'fr-LU') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_fr_LU; } +if (goog.LOCALE == 'fr_MA' || goog.LOCALE == 'fr-MA') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_fr_MA; +} + if (goog.LOCALE == 'fr_MC' || goog.LOCALE == 'fr-MC') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_fr_MC; } @@ -7356,10 +9773,26 @@ if (goog.LOCALE == 'fr_MQ' || goog.LOCALE == 'fr-MQ') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_fr_MQ; } +if (goog.LOCALE == 'fr_MR' || goog.LOCALE == 'fr-MR') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_fr_MR; +} + +if (goog.LOCALE == 'fr_MU' || goog.LOCALE == 'fr-MU') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_fr_MU; +} + +if (goog.LOCALE == 'fr_NC' || goog.LOCALE == 'fr-NC') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_fr_NC; +} + if (goog.LOCALE == 'fr_NE' || goog.LOCALE == 'fr-NE') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_fr_NE; } +if (goog.LOCALE == 'fr_PF' || goog.LOCALE == 'fr-PF') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_fr_PF; +} + if (goog.LOCALE == 'fr_RE' || goog.LOCALE == 'fr-RE') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_fr_RE; } @@ -7368,10 +9801,18 @@ if (goog.LOCALE == 'fr_RW' || goog.LOCALE == 'fr-RW') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_fr_RW; } +if (goog.LOCALE == 'fr_SC' || goog.LOCALE == 'fr-SC') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_fr_SC; +} + if (goog.LOCALE == 'fr_SN' || goog.LOCALE == 'fr-SN') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_fr_SN; } +if (goog.LOCALE == 'fr_SY' || goog.LOCALE == 'fr-SY') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_fr_SY; +} + if (goog.LOCALE == 'fr_TD' || goog.LOCALE == 'fr-TD') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_fr_TD; } @@ -7380,6 +9821,14 @@ if (goog.LOCALE == 'fr_TG' || goog.LOCALE == 'fr-TG') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_fr_TG; } +if (goog.LOCALE == 'fr_TN' || goog.LOCALE == 'fr-TN') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_fr_TN; +} + +if (goog.LOCALE == 'fr_VU' || goog.LOCALE == 'fr-VU') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_fr_VU; +} + if (goog.LOCALE == 'fr_YT' || goog.LOCALE == 'fr-YT') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_fr_YT; } @@ -7452,6 +9901,10 @@ if (goog.LOCALE == 'hi_IN' || goog.LOCALE == 'hi-IN') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_hi_IN; } +if (goog.LOCALE == 'hr_BA' || goog.LOCALE == 'hr-BA') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_hr_BA; +} + if (goog.LOCALE == 'hr_HR' || goog.LOCALE == 'hr-HR') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_hr_HR; } @@ -7500,10 +9953,22 @@ if (goog.LOCALE == 'it_IT' || goog.LOCALE == 'it-IT') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_it_IT; } +if (goog.LOCALE == 'it_SM' || goog.LOCALE == 'it-SM') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_it_SM; +} + if (goog.LOCALE == 'ja_JP' || goog.LOCALE == 'ja-JP') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ja_JP; } +if (goog.LOCALE == 'jgo') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_jgo; +} + +if (goog.LOCALE == 'jgo_CM' || goog.LOCALE == 'jgo-CM') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_jgo_CM; +} + if (goog.LOCALE == 'jmc') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_jmc; } @@ -7608,6 +10073,10 @@ if (goog.LOCALE == 'kn_IN' || goog.LOCALE == 'kn-IN') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_kn_IN; } +if (goog.LOCALE == 'ko_KP' || goog.LOCALE == 'ko-KP') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ko_KP; +} + if (goog.LOCALE == 'ko_KR' || goog.LOCALE == 'ko-KR') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ko_KR; } @@ -7620,6 +10089,18 @@ if (goog.LOCALE == 'kok_IN' || goog.LOCALE == 'kok-IN') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_kok_IN; } +if (goog.LOCALE == 'ks') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ks; +} + +if (goog.LOCALE == 'ks_Arab' || goog.LOCALE == 'ks-Arab') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ks_Arab; +} + +if (goog.LOCALE == 'ks_Arab_IN' || goog.LOCALE == 'ks-Arab-IN') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ks_Arab_IN; +} + if (goog.LOCALE == 'ksb') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ksb; } @@ -7660,14 +10141,30 @@ if (goog.LOCALE == 'lg_UG' || goog.LOCALE == 'lg-UG') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_lg_UG; } +if (goog.LOCALE == 'ln_AO' || goog.LOCALE == 'ln-AO') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ln_AO; +} + if (goog.LOCALE == 'ln_CD' || goog.LOCALE == 'ln-CD') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ln_CD; } +if (goog.LOCALE == 'ln_CF' || goog.LOCALE == 'ln-CF') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ln_CF; +} + if (goog.LOCALE == 'ln_CG' || goog.LOCALE == 'ln-CG') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ln_CG; } +if (goog.LOCALE == 'lo') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_lo; +} + +if (goog.LOCALE == 'lo_LA' || goog.LOCALE == 'lo-LA') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_lo_LA; +} + if (goog.LOCALE == 'lt_LT' || goog.LOCALE == 'lt-LT') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_lt_LT; } @@ -7744,6 +10241,14 @@ if (goog.LOCALE == 'mgh_MZ' || goog.LOCALE == 'mgh-MZ') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_mgh_MZ; } +if (goog.LOCALE == 'mgo') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_mgo; +} + +if (goog.LOCALE == 'mgo_CM' || goog.LOCALE == 'mgo-CM') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_mgo_CM; +} + if (goog.LOCALE == 'mk') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_mk; } @@ -7756,16 +10261,36 @@ if (goog.LOCALE == 'ml_IN' || goog.LOCALE == 'ml-IN') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ml_IN; } +if (goog.LOCALE == 'mn') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_mn; +} + +if (goog.LOCALE == 'mn_Cyrl' || goog.LOCALE == 'mn-Cyrl') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_mn_Cyrl; +} + +if (goog.LOCALE == 'mn_Cyrl_MN' || goog.LOCALE == 'mn-Cyrl-MN') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_mn_Cyrl_MN; +} + if (goog.LOCALE == 'mr_IN' || goog.LOCALE == 'mr-IN') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_mr_IN; } -if (goog.LOCALE == 'ms_BN' || goog.LOCALE == 'ms-BN') { - goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ms_BN; +if (goog.LOCALE == 'ms_Latn' || goog.LOCALE == 'ms-Latn') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ms_Latn; } -if (goog.LOCALE == 'ms_MY' || goog.LOCALE == 'ms-MY') { - goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ms_MY; +if (goog.LOCALE == 'ms_Latn_BN' || goog.LOCALE == 'ms-Latn-BN') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ms_Latn_BN; +} + +if (goog.LOCALE == 'ms_Latn_MY' || goog.LOCALE == 'ms-Latn-MY') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ms_Latn_MY; +} + +if (goog.LOCALE == 'ms_Latn_SG' || goog.LOCALE == 'ms-Latn-SG') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ms_Latn_SG; } if (goog.LOCALE == 'mt_MT' || goog.LOCALE == 'mt-MT') { @@ -7796,10 +10321,6 @@ if (goog.LOCALE == 'naq_NA' || goog.LOCALE == 'naq-NA') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_naq_NA; } -if (goog.LOCALE == 'nb') { - goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_nb; -} - if (goog.LOCALE == 'nb_NO' || goog.LOCALE == 'nb-NO') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_nb_NO; } @@ -7832,10 +10353,22 @@ if (goog.LOCALE == 'nl_BE' || goog.LOCALE == 'nl-BE') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_nl_BE; } +if (goog.LOCALE == 'nl_CW' || goog.LOCALE == 'nl-CW') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_nl_CW; +} + if (goog.LOCALE == 'nl_NL' || goog.LOCALE == 'nl-NL') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_nl_NL; } +if (goog.LOCALE == 'nl_SR' || goog.LOCALE == 'nl-SR') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_nl_SR; +} + +if (goog.LOCALE == 'nl_SX' || goog.LOCALE == 'nl-SX') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_nl_SX; +} + if (goog.LOCALE == 'nmg') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_nmg; } @@ -7920,10 +10453,18 @@ if (goog.LOCALE == 'pt_AO' || goog.LOCALE == 'pt-AO') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_pt_AO; } +if (goog.LOCALE == 'pt_CV' || goog.LOCALE == 'pt-CV') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_pt_CV; +} + if (goog.LOCALE == 'pt_GW' || goog.LOCALE == 'pt-GW') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_pt_GW; } +if (goog.LOCALE == 'pt_MO' || goog.LOCALE == 'pt-MO') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_pt_MO; +} + if (goog.LOCALE == 'pt_MZ' || goog.LOCALE == 'pt-MZ') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_pt_MZ; } @@ -7932,6 +10473,10 @@ if (goog.LOCALE == 'pt_ST' || goog.LOCALE == 'pt-ST') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_pt_ST; } +if (goog.LOCALE == 'pt_TL' || goog.LOCALE == 'pt-TL') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_pt_TL; +} + if (goog.LOCALE == 'rm') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_rm; } @@ -7964,6 +10509,18 @@ if (goog.LOCALE == 'rof_TZ' || goog.LOCALE == 'rof-TZ') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_rof_TZ; } +if (goog.LOCALE == 'ru_BY' || goog.LOCALE == 'ru-BY') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ru_BY; +} + +if (goog.LOCALE == 'ru_KG' || goog.LOCALE == 'ru-KG') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ru_KG; +} + +if (goog.LOCALE == 'ru_KZ' || goog.LOCALE == 'ru-KZ') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ru_KZ; +} + if (goog.LOCALE == 'ru_MD' || goog.LOCALE == 'ru-MD') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ru_MD; } @@ -8100,6 +10657,10 @@ if (goog.LOCALE == 'sq_AL' || goog.LOCALE == 'sq-AL') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_sq_AL; } +if (goog.LOCALE == 'sq_MK' || goog.LOCALE == 'sq-MK') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_sq_MK; +} + if (goog.LOCALE == 'sr_Cyrl' || goog.LOCALE == 'sr-Cyrl') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_sr_Cyrl; } @@ -8132,6 +10693,10 @@ if (goog.LOCALE == 'sr_Latn_RS' || goog.LOCALE == 'sr-Latn-RS') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_sr_Latn_RS; } +if (goog.LOCALE == 'sv_AX' || goog.LOCALE == 'sv-AX') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_sv_AX; +} + if (goog.LOCALE == 'sv_FI' || goog.LOCALE == 'sv-FI') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_sv_FI; } @@ -8148,6 +10713,10 @@ if (goog.LOCALE == 'sw_TZ' || goog.LOCALE == 'sw-TZ') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_sw_TZ; } +if (goog.LOCALE == 'sw_UG' || goog.LOCALE == 'sw-UG') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_sw_UG; +} + if (goog.LOCALE == 'swc') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_swc; } @@ -8164,6 +10733,14 @@ if (goog.LOCALE == 'ta_LK' || goog.LOCALE == 'ta-LK') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ta_LK; } +if (goog.LOCALE == 'ta_MY' || goog.LOCALE == 'ta-MY') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ta_MY; +} + +if (goog.LOCALE == 'ta_SG' || goog.LOCALE == 'ta-SG') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_ta_SG; +} + if (goog.LOCALE == 'te_IN' || goog.LOCALE == 'te-IN') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_te_IN; } @@ -8204,6 +10781,10 @@ if (goog.LOCALE == 'to_TO' || goog.LOCALE == 'to-TO') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_to_TO; } +if (goog.LOCALE == 'tr_CY' || goog.LOCALE == 'tr-CY') { + goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_tr_CY; +} + if (goog.LOCALE == 'tr_TR' || goog.LOCALE == 'tr-TR') { goog.i18n.DateTimePatterns = goog.i18n.DateTimePatterns_tr_TR; } diff --git a/master/closure-library/closure/goog/i18n/datetimesymbols.js b/edit/closure-library/closure/goog/i18n/datetimesymbols.js similarity index 65% rename from master/closure-library/closure/goog/i18n/datetimesymbols.js rename to edit/closure-library/closure/goog/i18n/datetimesymbols.js index 7d3e66145d..137a1b7139 100644 --- a/master/closure-library/closure/goog/i18n/datetimesymbols.js +++ b/edit/closure-library/closure/goog/i18n/datetimesymbols.js @@ -16,7 +16,8 @@ * @fileoverview Date/time formatting symbols for all locales. * * This file is autogenerated by script. See - * http://go/generate_datetime_constants.py using the --for_closure flag. + * http://go/generate_datetime_constants.py using --for_closure + * File generated from CLDR ver. 23 * * To reduce the file size (which may cause issues in some JS * developing environments), this file will only contain locales @@ -28,6 +29,9 @@ * to incorporate changes before we could correct CLDR. All manual * modification must be documented in this section, and should be * removed after those changes land to CLDR. + * + * May 9, 2013 - Manually added dot for italian era ('a.D.' vs. 'd.C') + * cldr bug #6062 */ goog.provide('goog.i18n.DateTimeSymbols'); @@ -36,6 +40,7 @@ goog.provide('goog.i18n.DateTimeSymbols_am'); goog.provide('goog.i18n.DateTimeSymbols_ar'); goog.provide('goog.i18n.DateTimeSymbols_bg'); goog.provide('goog.i18n.DateTimeSymbols_bn'); +goog.provide('goog.i18n.DateTimeSymbols_br'); goog.provide('goog.i18n.DateTimeSymbols_ca'); goog.provide('goog.i18n.DateTimeSymbols_chr'); goog.provide('goog.i18n.DateTimeSymbols_cs'); @@ -56,6 +61,7 @@ goog.provide('goog.i18n.DateTimeSymbols_en_US'); goog.provide('goog.i18n.DateTimeSymbols_en_ZA'); goog.provide('goog.i18n.DateTimeSymbols_es'); goog.provide('goog.i18n.DateTimeSymbols_es_419'); +goog.provide('goog.i18n.DateTimeSymbols_es_ES'); goog.provide('goog.i18n.DateTimeSymbols_et'); goog.provide('goog.i18n.DateTimeSymbols_eu'); goog.provide('goog.i18n.DateTimeSymbols_fa'); @@ -86,6 +92,7 @@ goog.provide('goog.i18n.DateTimeSymbols_ml'); goog.provide('goog.i18n.DateTimeSymbols_mr'); goog.provide('goog.i18n.DateTimeSymbols_ms'); goog.provide('goog.i18n.DateTimeSymbols_mt'); +goog.provide('goog.i18n.DateTimeSymbols_nb'); goog.provide('goog.i18n.DateTimeSymbols_nl'); goog.provide('goog.i18n.DateTimeSymbols_no'); goog.provide('goog.i18n.DateTimeSymbols_or'); @@ -124,19 +131,19 @@ goog.i18n.DateTimeSymbols_en_ISO = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -146,6 +153,8 @@ goog.i18n.DateTimeSymbols_en_ISO = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, y MMMM dd', 'y MMMM d', 'y MMM d', 'yyyy-MM-dd'], TIMEFORMATS: ['HH:mm:ss v', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', + '{1}, {0}', '{1}, {0}'], AVAILABLEFORMATS: {'Md': 'M/d', 'MMMMd': 'MMMM d', 'MMMd': 'MMM d'}, FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], @@ -161,19 +170,19 @@ goog.i18n.DateTimeSymbols_af = { ERANAMES: ['voor Christus', 'na Christus'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Januarie', 'Februarie', 'Maart', 'April', 'Mei', 'Junie', 'Julie', - 'Augustus', 'September', 'Oktober', 'November', 'Desember'], + 'Augustus', 'September', 'Oktober', 'November', 'Desember'], STANDALONEMONTHS: ['Januarie', 'Februarie', 'Maart', 'April', 'Mei', 'Junie', - 'Julie', 'Augustus', 'September', 'Oktober', 'November', 'Desember'], + 'Julie', 'Augustus', 'September', 'Oktober', 'November', 'Desember'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Aug', 'Sep', - 'Okt', 'Nov', 'Des'], + 'Okt', 'Nov', 'Des'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', - 'Aug', 'Sep', 'Okt', 'Nov', 'Des'], + 'Aug', 'Sep', 'Okt', 'Nov', 'Des'], WEEKDAYS: ['Sondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrydag', - 'Saterdag'], + 'Saterdag'], STANDALONEWEEKDAYS: ['Sondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', - 'Vrydag', 'Saterdag'], + 'Vrydag', 'Saterdag'], SHORTWEEKDAYS: ['So', 'Ma', 'Di', 'Wo', 'Do', 'Vr', 'Sa'], STANDALONESHORTWEEKDAYS: ['So', 'Ma', 'Di', 'Wo', 'Do', 'Vr', 'Sa'], NARROWWEEKDAYS: ['S', 'M', 'D', 'W', 'D', 'V', 'S'], @@ -181,8 +190,9 @@ goog.i18n.DateTimeSymbols_af = { SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], QUARTERS: ['1ste kwartaal', '2de kwartaal', '3de kwartaal', '4de kwartaal'], AMPMS: ['vm.', 'nm.'], - DATEFORMATS: ['EEEE dd MMMM y', 'dd MMMM y', 'dd MMM y', 'yyyy-MM-dd'], + DATEFORMATS: ['EEEE dd MMMM y', 'dd MMMM y', 'dd MMM y', 'y-MM-dd'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -196,38 +206,39 @@ goog.i18n.DateTimeSymbols_am = { ERAS: ['ዓ/ዓ', 'ዓ/ም'], ERANAMES: ['ዓመተ ዓለም', 'ዓመተ ምሕረት'], NARROWMONTHS: ['ጃ', 'ፌ', 'ማ', 'ኤ', 'ሜ', 'ጁ', 'ጁ', 'ኦ', 'ሴ', - 'ኦ', 'ኖ', 'ዲ'], + 'ኦ', 'ኖ', 'ዲ'], STANDALONENARROWMONTHS: ['ጃ', 'ፌ', 'ማ', 'ኤ', 'ሜ', 'ጁ', 'ጁ', - 'ኦ', 'ሴ', 'ኦ', 'ኖ', 'ዲ'], - MONTHS: ['ጃንዩወሪ', 'ፌብሩወሪ', 'ማርች', 'ኤፕረል', - 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', 'ሴፕቴምበር', - 'ኦክተውበር', 'ኖቬምበር', 'ዲሴምበር'], + 'ኦ', 'ሴ', 'ኦ', 'ኖ', 'ዲ'], + MONTHS: ['ጃንዩወሪ', 'ፌብሩወሪ', 'ማርች', 'ኤፕሪል', + 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', 'ሴፕቴምበር', + 'ኦክተውበር', 'ኖቬምበር', 'ዲሴምበር'], STANDALONEMONTHS: ['ጃንዩወሪ', 'ፌብሩወሪ', 'ማርች', - 'ኤፕረል', 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', - 'ሴፕቴምበር', 'ኦክተውበር', 'ኖቬምበር', - 'ዲሴምበር'], - SHORTMONTHS: ['ጃንዩ', 'ፌብሩ', 'ማርች', 'ኤፕረ', 'ሜይ', - 'ጁን', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', 'ኖቬም', - 'ዲሴም'], - STANDALONESHORTMONTHS: ['ጃንዩ', 'ፌብሩ', 'ማርች', 'ኤፕረ', - 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', - 'ኖቬም', 'ዲሴም'], + 'ኤፕሪል', 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', + 'ሴፕቴምበር', 'ኦክቶበር', 'ኖቬምበር', + 'ዲሴምበር'], + SHORTMONTHS: ['ጃንዩ', 'ፌብሩ', 'ማርች', 'ኤፕሪ', 'ሜይ', + 'ጁን', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', 'ኖቬም', + 'ዲሴም'], + STANDALONESHORTMONTHS: ['ጃንዩ', 'ፌብሩ', 'ማርች', 'ኤፕሪ', + 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክቶ', + 'ኖቬም', 'ዲሴም'], WEEKDAYS: ['እሑድ', 'ሰኞ', 'ማክሰኞ', 'ረቡዕ', 'ሐሙስ', - 'ዓርብ', 'ቅዳሜ'], + 'ዓርብ', 'ቅዳሜ'], STANDALONEWEEKDAYS: ['እሑድ', 'ሰኞ', 'ማክሰኞ', 'ረቡዕ', - 'ሐሙስ', 'ዓርብ', 'ቅዳሜ'], + 'ሐሙስ', 'ዓርብ', 'ቅዳሜ'], SHORTWEEKDAYS: ['እሑድ', 'ሰኞ', 'ማክሰ', 'ረቡዕ', 'ሐሙስ', - 'ዓርብ', 'ቅዳሜ'], + 'ዓርብ', 'ቅዳሜ'], STANDALONESHORTWEEKDAYS: ['እሑድ', 'ሰኞ', 'ማክሰ', 'ረቡዕ', - 'ሐሙስ', 'ዓርብ', 'ቅዳሜ'], + 'ሐሙስ', 'ዓርብ', 'ቅዳሜ'], NARROWWEEKDAYS: ['እ', 'ሰ', 'ማ', 'ረ', 'ሐ', 'ዓ', 'ቅ'], STANDALONENARROWWEEKDAYS: ['እ', 'ሰ', 'ማ', 'ረ', 'ሐ', 'ዓ', 'ቅ'], - SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + SHORTQUARTERS: ['ሩብ1', 'ሩብ2', 'ሩብ3', 'ሩብ4'], QUARTERS: ['1ኛው ሩብ', 'ሁለተኛው ሩብ', '3ኛው ሩብ', - '4ኛው ሩብ'], - AMPMS: ['ጡዋት', 'ከሳዓት'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + '4ኛው ሩብ'], + AMPMS: ['ጥዋት', 'ከሰዓት'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -242,39 +253,40 @@ goog.i18n.DateTimeSymbols_ar = { ERAS: ['ق.م', 'م'], ERANAMES: ['قبل الميلاد', 'ميلادي'], NARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', 'ك', - 'ب', 'د'], + 'ب', 'د'], STANDALONENARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', - 'ك', 'ب', 'د'], + 'ك', 'ب', 'د'], MONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', - 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', - 'نوفمبر', 'ديسمبر'], + 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', + 'نوفمبر', 'ديسمبر'], STANDALONEMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], SHORTMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], STANDALONESHORTMONTHS: ['يناير', 'فبراير', 'مارس', - 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', - 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', + 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], WEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONEWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], SHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONESHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], NARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], STANDALONENARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], SHORTQUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], QUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], AMPMS: ['ص', 'م'], - DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/yyyy', - 'd‏/M‏/yyyy'], - TIMEFORMATS: ['zzzz h:mm:ss a', 'z h:mm:ss a', 'h:mm:ss a', 'h:mm a'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/y', + 'd‏/M‏/y'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 5, WEEKENDRANGE: [4, 5], FIRSTWEEKCUTOFFDAY: 4 @@ -288,37 +300,38 @@ goog.i18n.DateTimeSymbols_bg = { ERAS: ['пр. н. е.', 'от н. е.'], ERANAMES: ['пр.Хр.', 'сл.Хр.'], NARROWMONTHS: ['я', 'ф', 'м', 'а', 'м', 'ю', 'ю', 'а', 'с', 'о', - 'н', 'д'], + 'н', 'д'], STANDALONENARROWMONTHS: ['я', 'ф', 'м', 'а', 'м', 'ю', 'ю', 'а', 'с', - 'о', 'н', 'д'], + 'о', 'н', 'д'], MONTHS: ['януари', 'февруари', 'март', 'април', - 'май', 'юни', 'юли', 'август', 'септември', - 'октомври', 'ноември', 'декември'], + 'май', 'юни', 'юли', 'август', 'септември', + 'октомври', 'ноември', 'декември'], STANDALONEMONTHS: ['януари', 'февруари', 'март', - 'април', 'май', 'юни', 'юли', 'август', - 'септември', 'октомври', 'ноември', - 'декември'], + 'април', 'май', 'юни', 'юли', 'август', + 'септември', 'октомври', 'ноември', + 'декември'], SHORTMONTHS: ['ян.', 'февр.', 'март', 'апр.', 'май', 'юни', - 'юли', 'авг.', 'септ.', 'окт.', 'ноем.', 'дек.'], + 'юли', 'авг.', 'септ.', 'окт.', 'ноем.', 'дек.'], STANDALONESHORTMONTHS: ['ян.', 'февр.', 'март', 'апр.', 'май', - 'юни', 'юли', 'авг.', 'септ.', 'окт.', 'ноем.', - 'дек.'], + 'юни', 'юли', 'авг.', 'септ.', 'окт.', 'ноем.', + 'дек.'], WEEKDAYS: ['неделя', 'понеделник', 'вторник', - 'сряда', 'четвъртък', 'петък', 'събота'], + 'сряда', 'четвъртък', 'петък', 'събота'], STANDALONEWEEKDAYS: ['неделя', 'понеделник', 'вторник', - 'сряда', 'четвъртък', 'петък', 'събота'], + 'сряда', 'четвъртък', 'петък', 'събота'], SHORTWEEKDAYS: ['нд', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'], STANDALONESHORTWEEKDAYS: ['нд', 'пн', 'вт', 'ср', 'чт', 'пт', - 'сб'], + 'сб'], NARROWWEEKDAYS: ['н', 'п', 'в', 'с', 'ч', 'п', 'с'], STANDALONENARROWWEEKDAYS: ['н', 'п', 'в', 'с', 'ч', 'п', 'с'], SHORTQUARTERS: ['I трим.', 'II трим.', 'III трим.', - 'IV трим.'], + 'IV трим.'], QUARTERS: ['1-во тримесечие', '2-ро тримесечие', - '3-то тримесечие', '4-то тримесечие'], + '3-то тримесечие', '4-то тримесечие'], AMPMS: ['пр. об.', 'сл. об.'], - DATEFORMATS: ['dd MMMM y, EEEE', 'dd MMMM y', 'dd.MM.yyyy', 'dd.MM.yy'], + DATEFORMATS: ['dd MMMM y, EEEE', 'dd MMMM y', 'dd.MM.y', 'dd.MM.yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1}, {0}', '{1}, {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -333,96 +346,135 @@ goog.i18n.DateTimeSymbols_bn = { ERAS: ['খৃষ্টপূর্ব', 'খৃষ্টাব্দ'], ERANAMES: ['খৃষ্টপূর্ব', 'খৃষ্টাব্দ'], NARROWMONTHS: ['জা', 'ফে', 'মা', 'এ', 'মে', 'জুন', - 'জু', 'আ', 'সে', 'অ', 'ন', 'ডি'], + 'জু', 'আ', 'সে', 'অ', 'ন', 'ডি'], STANDALONENARROWMONTHS: ['জা', 'ফে', 'মা', 'এ', 'মে', - 'জুন', 'জু', 'আ', 'সে', 'অ', 'ন', 'ডি'], + 'জুন', 'জু', 'আ', 'সে', 'অ', 'ন', 'ডি'], MONTHS: ['জানুয়ারী', 'ফেব্রুয়ারী', - 'মার্চ', 'এপ্রিল', 'মে', 'জুন', - 'জুলাই', 'আগস্ট', 'সেপ্টেম্বর', - 'অক্টোবর', 'নভেম্বর', - 'ডিসেম্বর'], + 'মার্চ', 'এপ্রিল', 'মে', 'জুন', + 'জুলাই', 'আগস্ট', 'সেপ্টেম্বর', + 'অক্টোবর', 'নভেম্বর', + 'ডিসেম্বর'], STANDALONEMONTHS: ['জানুয়ারী', - 'ফেব্রুয়ারী', 'মার্চ', - 'এপ্রিল', 'মে', 'জুন', 'জুলাই', - 'আগস্ট', 'সেপ্টেম্বর', - 'অক্টোবর', 'নভেম্বর', - 'ডিসেম্বর'], + 'ফেব্রুয়ারী', 'মার্চ', + 'এপ্রিল', 'মে', 'জুন', 'জুলাই', + 'আগস্ট', 'সেপ্টেম্বর', + 'অক্টোবর', 'নভেম্বর', + 'ডিসেম্বর'], SHORTMONTHS: ['জানুয়ারী', - 'ফেব্রুয়ারী', 'মার্চ', - 'এপ্রিল', 'মে', 'জুন', 'জুলাই', - 'আগস্ট', 'সেপ্টেম্বর', - 'অক্টোবর', 'নভেম্বর', - 'ডিসেম্বর'], + 'ফেব্রুয়ারী', 'মার্চ', + 'এপ্রিল', 'মে', 'জুন', 'জুলাই', + 'আগস্ট', 'সেপ্টেম্বর', + 'অক্টোবর', 'নভেম্বর', + 'ডিসেম্বর'], STANDALONESHORTMONTHS: ['জানুয়ারী', - 'ফেব্রুয়ারী', 'মার্চ', - 'এপ্রিল', 'মে', 'জুন', 'জুলাই', - 'আগস্ট', 'সেপ্টেম্বর', - 'অক্টোবর', 'নভেম্বর', - 'ডিসেম্বর'], + 'ফেব্রুয়ারী', 'মার্চ', + 'এপ্রিল', 'মে', 'জুন', 'জুলাই', + 'আগস্ট', 'সেপ্টেম্বর', + 'অক্টোবর', 'নভেম্বর', + 'ডিসেম্বর'], WEEKDAYS: ['রবিবার', 'সোমবার', - 'মঙ্গলবার', 'বুধবার', - 'বৃহষ্পতিবার', 'শুক্রবার', - 'শনিবার'], + 'মঙ্গলবার', 'বুধবার', + 'বৃহষ্পতিবার', 'শুক্রবার', + 'শনিবার'], STANDALONEWEEKDAYS: ['রবিবার', 'সোমবার', - 'মঙ্গলবার', 'বুধবার', - 'বৃহষ্পতিবার', 'শুক্রবার', - 'শনিবার'], + 'মঙ্গলবার', 'বুধবার', + 'বৃহষ্পতিবার', 'শুক্রবার', + 'শনিবার'], SHORTWEEKDAYS: ['রবি', 'সোম', 'মঙ্গল', 'বুধ', - 'বৃহস্পতি', 'শুক্র', 'শনি'], + 'বৃহস্পতি', 'শুক্র', 'শনি'], STANDALONESHORTWEEKDAYS: ['রবি', 'সোম', 'মঙ্গল', - 'বুধ', 'বৃহস্পতি', 'শুক্র', 'শনি'], + 'বুধ', 'বৃহস্পতি', 'শুক্র', 'শনি'], NARROWWEEKDAYS: ['র', 'সো', 'ম', 'বু', 'বৃ', 'শু', 'শ'], STANDALONENARROWWEEKDAYS: ['র', 'সো', 'ম', 'বু', 'বৃ', - 'শু', 'শ'], + 'শু', 'শ'], SHORTQUARTERS: ['চতুর্থাংশ ১', - 'চতুর্থাংশ ২', 'চতুর্থাংশ ৩', - 'চতুর্থাংশ ৪'], + 'চতুর্থাংশ ২', 'চতুর্থাংশ ৩', + 'চতুর্থাংশ ৪'], QUARTERS: ['প্রথম চতুর্থাংশ', - 'দ্বিতীয় চতুর্থাংশ', - 'তৃতীয় চতুর্থাংশ', - 'চতুর্থ চতুর্থাংশ'], + 'দ্বিতীয় চতুর্থাংশ', + 'তৃতীয় চতুর্থাংশ', + 'চতুর্থ চতুর্থাংশ'], AMPMS: ['am', 'pm'], DATEFORMATS: ['EEEE, d MMMM, y', 'd MMMM, y', 'd MMM, y', 'd/M/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 4, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 }; +/** + * Date/time formatting symbols for locale br. + */ +goog.i18n.DateTimeSymbols_br = { + ERAS: ['BCE', 'CE'], + ERANAMES: ['BCE', 'CE'], + NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], + STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', + '11', '12'], + MONTHS: ['Genver', 'Cʼhwevrer', 'Meurzh', 'Ebrel', 'Mae', 'Mezheven', + 'Gouere', 'Eost', 'Gwengolo', 'Here', 'Du', 'Kerzu'], + STANDALONEMONTHS: ['Genver', 'Cʼhwevrer', 'Meurzh', 'Ebrel', 'Mae', + 'Mezheven', 'Gouere', 'Eost', 'Gwengolo', 'Here', 'Du', 'Kerzu'], + SHORTMONTHS: ['Gen', 'Cʼhwe', 'Meur', 'Ebr', 'Mae', 'Mezh', 'Goue', 'Eost', + 'Gwen', 'Here', 'Du', 'Ker'], + STANDALONESHORTMONTHS: ['Gen', 'Cʼhwe', 'Meur', 'Ebr', 'Mae', 'Mezh', 'Goue', + 'Eost', 'Gwen', 'Here', 'Du', 'Ker'], + WEEKDAYS: ['Sul', 'Lun', 'Meurzh', 'Mercʼher', 'Yaou', 'Gwener', 'Sadorn'], + STANDALONEWEEKDAYS: ['Sul', 'Lun', 'Meurzh', 'Mercʼher', 'Yaou', 'Gwener', + 'Sadorn'], + SHORTWEEKDAYS: ['sul', 'lun', 'meu.', 'mer.', 'yaou', 'gwe.', 'sad.'], + STANDALONESHORTWEEKDAYS: ['sul', 'lun', 'meu.', 'mer.', 'yaou', 'gwe.', + 'sad.'], + NARROWWEEKDAYS: ['su', 'lu', 'mz', 'mc', 'ya', 'gw', 'sa'], + STANDALONENARROWWEEKDAYS: ['su', 'lu', 'mz', 'mc', 'ya', 'gw', 'sa'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['y MMMM d, EEEE', 'y MMMM d', 'y MMM d', 'y-MM-dd'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + /** * Date/time formatting symbols for locale ca. */ goog.i18n.DateTimeSymbols_ca = { ERAS: ['aC', 'dC'], ERANAMES: ['abans de Crist', 'després de Crist'], - NARROWMONTHS: ['G', 'F', 'M', 'A', 'M', 'J', 'G', 'A', 'S', 'O', 'N', 'D'], + NARROWMONTHS: ['G', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['g', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', - 'n', 'd'], + 'n', 'd'], MONTHS: ['de gener', 'de febrer', 'de març', 'd’abril', 'de maig', - 'de juny', 'de juliol', 'd’agost', 'de setembre', 'd’octubre', - 'de novembre', 'de desembre'], + 'de juny', 'de juliol', 'd’agost', 'de setembre', 'd’octubre', + 'de novembre', 'de desembre'], STANDALONEMONTHS: ['gener', 'febrer', 'març', 'abril', 'maig', 'juny', - 'juliol', 'agost', 'setembre', 'octubre', 'novembre', 'desembre'], + 'juliol', 'agost', 'setembre', 'octubre', 'novembre', 'desembre'], SHORTMONTHS: ['de gen.', 'de febr.', 'de març', 'd’abr.', 'de maig', - 'de juny', 'de jul.', 'd’ag.', 'de set.', 'd’oct.', 'de nov.', - 'de des.'], + 'de juny', 'de jul.', 'd’ag.', 'de set.', 'd’oct.', 'de nov.', + 'de des.'], STANDALONESHORTMONTHS: ['gen.', 'febr.', 'març', 'abr.', 'maig', 'juny', - 'jul.', 'ag.', 'set.', 'oct.', 'nov.', 'des.'], + 'jul.', 'ag.', 'set.', 'oct.', 'nov.', 'des.'], WEEKDAYS: ['diumenge', 'dilluns', 'dimarts', 'dimecres', 'dijous', - 'divendres', 'dissabte'], + 'divendres', 'dissabte'], STANDALONEWEEKDAYS: ['Diumenge', 'Dilluns', 'Dimarts', 'Dimecres', 'Dijous', - 'Divendres', 'Dissabte'], + 'Divendres', 'Dissabte'], SHORTWEEKDAYS: ['dg.', 'dl.', 'dt.', 'dc.', 'dj.', 'dv.', 'ds.'], STANDALONESHORTWEEKDAYS: ['dg', 'dl', 'dt', 'dc', 'dj', 'dv', 'ds'], - NARROWWEEKDAYS: ['G', 'l', 'T', 'C', 'J', 'V', 'S'], - STANDALONENARROWWEEKDAYS: ['g', 'l', 't', 'c', 'j', 'v', 's'], + NARROWWEEKDAYS: ['dg', 'dl', 'dt', 'dc', 'dj', 'dv', 'ds'], + STANDALONENARROWWEEKDAYS: ['dg', 'dl', 'dt', 'dc', 'dj', 'dv', 'ds'], SHORTQUARTERS: ['1T', '2T', '3T', '4T'], QUARTERS: ['1r trimestre', '2n trimestre', '3r trimestre', '4t trimestre'], AMPMS: ['a.m.', 'p.m.'], - DATEFORMATS: ['EEEE d MMMM \'de\' y', 'd MMMM \'de\' y', 'dd/MM/yyyy', - 'dd/MM/yy'], - TIMEFORMATS: ['H:mm:ss zzzz', 'H:mm:ss z', 'H:mm:ss', 'H:mm'], + DATEFORMATS: ['EEEE d MMMM \'de\' y', 'd MMMM \'de\' y', 'dd/MM/y', + 'dd/MM/yy'], + TIMEFORMATS: ['H.mm.ss zzzz', 'H.mm.ss z', 'H.mm.ss', 'H.mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -435,31 +487,31 @@ goog.i18n.DateTimeSymbols_ca = { goog.i18n.DateTimeSymbols_chr = { ERAS: ['ᎤᏓᎷᎸ', 'ᎤᎶᏐᏅ'], ERANAMES: ['Ꮟ ᏥᏌ ᎾᏕᎲᏍᎬᎾ', - 'ᎠᎩᏃᎮᎵᏓᏍᏗᏱ ᎠᏕᏘᏱᏍᎬ ᏱᎰᏩ ᏧᏓᏂᎸᎢᏍᏗ'], + 'ᎠᎩᏃᎮᎵᏓᏍᏗᏱ ᎠᏕᏘᏱᏍᎬ ᏱᎰᏩ ᏧᏓᏂᎸᎢᏍᏗ'], NARROWMONTHS: ['Ꭴ', 'Ꭷ', 'Ꭰ', 'Ꭷ', 'Ꭰ', 'Ꮥ', 'Ꭻ', 'Ꭶ', 'Ꮪ', - 'Ꮪ', 'Ꮕ', 'Ꭴ'], + 'Ꮪ', 'Ꮕ', 'Ꭴ'], STANDALONENARROWMONTHS: ['Ꭴ', 'Ꭷ', 'Ꭰ', 'Ꭷ', 'Ꭰ', 'Ꮥ', 'Ꭻ', - 'Ꭶ', 'Ꮪ', 'Ꮪ', 'Ꮕ', 'Ꭴ'], + 'Ꭶ', 'Ꮪ', 'Ꮪ', 'Ꮕ', 'Ꭴ'], MONTHS: ['ᎤᏃᎸᏔᏅ', 'ᎧᎦᎵ', 'ᎠᏅᏱ', 'ᎧᏬᏂ', - 'ᎠᏂᏍᎬᏘ', 'ᏕᎭᎷᏱ', 'ᎫᏰᏉᏂ', 'ᎦᎶᏂ', - 'ᏚᎵᏍᏗ', 'ᏚᏂᏅᏗ', 'ᏅᏓᏕᏆ', 'ᎤᏍᎩᏱ'], + 'ᎠᏂᏍᎬᏘ', 'ᏕᎭᎷᏱ', 'ᎫᏰᏉᏂ', 'ᎦᎶᏂ', + 'ᏚᎵᏍᏗ', 'ᏚᏂᏅᏗ', 'ᏅᏓᏕᏆ', 'ᎤᏍᎩᏱ'], STANDALONEMONTHS: ['ᎤᏃᎸᏔᏅ', 'ᎧᎦᎵ', 'ᎠᏅᏱ', 'ᎧᏬᏂ', - 'ᎠᏂᏍᎬᏘ', 'ᏕᎭᎷᏱ', 'ᎫᏰᏉᏂ', 'ᎦᎶᏂ', - 'ᏚᎵᏍᏗ', 'ᏚᏂᏅᏗ', 'ᏅᏓᏕᏆ', 'ᎤᏍᎩᏱ'], + 'ᎠᏂᏍᎬᏘ', 'ᏕᎭᎷᏱ', 'ᎫᏰᏉᏂ', 'ᎦᎶᏂ', + 'ᏚᎵᏍᏗ', 'ᏚᏂᏅᏗ', 'ᏅᏓᏕᏆ', 'ᎤᏍᎩᏱ'], SHORTMONTHS: ['ᎤᏃ', 'ᎧᎦ', 'ᎠᏅ', 'ᎧᏬ', 'ᎠᏂ', 'ᏕᎭ', - 'ᎫᏰ', 'ᎦᎶ', 'ᏚᎵ', 'ᏚᏂ', 'ᏅᏓ', 'ᎤᏍ'], + 'ᎫᏰ', 'ᎦᎶ', 'ᏚᎵ', 'ᏚᏂ', 'ᏅᏓ', 'ᎤᏍ'], STANDALONESHORTMONTHS: ['ᎤᏃ', 'ᎧᎦ', 'ᎠᏅ', 'ᎧᏬ', 'ᎠᏂ', - 'ᏕᎭ', 'ᎫᏰ', 'ᎦᎶ', 'ᏚᎵ', 'ᏚᏂ', 'ᏅᏓ', 'ᎤᏍ'], + 'ᏕᎭ', 'ᎫᏰ', 'ᎦᎶ', 'ᏚᎵ', 'ᏚᏂ', 'ᏅᏓ', 'ᎤᏍ'], WEEKDAYS: ['ᎤᎾᏙᏓᏆᏍᎬ', 'ᎤᎾᏙᏓᏉᏅᎯ', - 'ᏔᎵᏁᎢᎦ', 'ᏦᎢᏁᎢᎦ', 'ᏅᎩᏁᎢᎦ', - 'ᏧᎾᎩᎶᏍᏗ', 'ᎤᎾᏙᏓᏈᏕᎾ'], + 'ᏔᎵᏁᎢᎦ', 'ᏦᎢᏁᎢᎦ', 'ᏅᎩᏁᎢᎦ', + 'ᏧᎾᎩᎶᏍᏗ', 'ᎤᎾᏙᏓᏈᏕᎾ'], STANDALONEWEEKDAYS: ['ᎤᎾᏙᏓᏆᏍᎬ', 'ᎤᎾᏙᏓᏉᏅᎯ', - 'ᏔᎵᏁᎢᎦ', 'ᏦᎢᏁᎢᎦ', 'ᏅᎩᏁᎢᎦ', - 'ᏧᎾᎩᎶᏍᏗ', 'ᎤᎾᏙᏓᏈᏕᎾ'], + 'ᏔᎵᏁᎢᎦ', 'ᏦᎢᏁᎢᎦ', 'ᏅᎩᏁᎢᎦ', + 'ᏧᎾᎩᎶᏍᏗ', 'ᎤᎾᏙᏓᏈᏕᎾ'], SHORTWEEKDAYS: ['ᏆᏍᎬ', 'ᏉᏅᎯ', 'ᏔᎵᏁ', 'ᏦᎢᏁ', - 'ᏅᎩᏁ', 'ᏧᎾᎩ', 'ᏈᏕᎾ'], + 'ᏅᎩᏁ', 'ᏧᎾᎩ', 'ᏈᏕᎾ'], STANDALONESHORTWEEKDAYS: ['ᏆᏍᎬ', 'ᏉᏅᎯ', 'ᏔᎵᏁ', 'ᏦᎢᏁ', - 'ᏅᎩᏁ', 'ᏧᎾᎩ', 'ᏈᏕᎾ'], + 'ᏅᎩᏁ', 'ᏧᎾᎩ', 'ᏈᏕᎾ'], NARROWWEEKDAYS: ['Ꮖ', 'Ꮙ', 'Ꮤ', 'Ꮶ', 'Ꮕ', 'Ꮷ', 'Ꭴ'], STANDALONENARROWWEEKDAYS: ['Ꮖ', 'Ꮙ', 'Ꮤ', 'Ꮶ', 'Ꮕ', 'Ꮷ', 'Ꭴ'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], @@ -467,6 +519,7 @@ goog.i18n.DateTimeSymbols_chr = { AMPMS: ['ᏌᎾᎴ', 'ᏒᎯᏱᎢᏗᏢ'], DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -481,29 +534,30 @@ goog.i18n.DateTimeSymbols_cs = { ERANAMES: ['př. n. l.', 'n. l.'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['l', 'ú', 'b', 'd', 'k', 'č', 'č', 's', 'z', 'ř', - 'l', 'p'], + 'l', 'p'], MONTHS: ['ledna', 'února', 'března', 'dubna', 'května', 'června', - 'července', 'srpna', 'září', 'října', 'listopadu', 'prosince'], + 'července', 'srpna', 'září', 'října', 'listopadu', 'prosince'], STANDALONEMONTHS: ['leden', 'únor', 'březen', 'duben', 'květen', 'červen', - 'červenec', 'srpen', 'září', 'říjen', 'listopad', 'prosinec'], - SHORTMONTHS: ['Led', 'Úno', 'Bře', 'Dub', 'Kvě', 'Čer', 'Čvc', 'Srp', - 'Zář', 'Říj', 'Lis', 'Pro'], - STANDALONESHORTMONTHS: ['1.', '2.', '3.', '4.', '5.', '6.', '7.', '8.', '9.', - '10.', '11.', '12.'], + 'červenec', 'srpen', 'září', 'říjen', 'listopad', 'prosinec'], + SHORTMONTHS: ['led', 'úno', 'bře', 'dub', 'kvě', 'čvn', 'čvc', 'srp', + 'zář', 'říj', 'lis', 'pro'], + STANDALONESHORTMONTHS: ['led', 'úno', 'bře', 'dub', 'kvě', 'čvn', 'čvc', + 'srp', 'zář', 'říj', 'lis', 'pro'], WEEKDAYS: ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', - 'sobota'], + 'sobota'], STANDALONEWEEKDAYS: ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', - 'pátek', 'sobota'], + 'pátek', 'sobota'], SHORTWEEKDAYS: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'], STANDALONESHORTWEEKDAYS: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'], NARROWWEEKDAYS: ['N', 'P', 'Ú', 'S', 'Č', 'P', 'S'], STANDALONENARROWWEEKDAYS: ['N', 'P', 'Ú', 'S', 'Č', 'P', 'S'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['1. čtvrtletí', '2. čtvrtletí', '3. čtvrtletí', - '4. čtvrtletí'], + '4. čtvrtletí'], AMPMS: ['dop.', 'odp.'], - DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'd. M. yyyy', 'dd.MM.yy'], + DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'd. M. y', 'dd.MM.yy'], TIMEFORMATS: ['H:mm:ss zzzz', 'H:mm:ss z', 'H:mm:ss', 'H:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -516,30 +570,31 @@ goog.i18n.DateTimeSymbols_cs = { goog.i18n.DateTimeSymbols_cy = { ERAS: ['CC', 'OC'], ERANAMES: ['Cyn Crist', 'Oed Crist'], - NARROWMONTHS: ['I', 'C', 'M', 'E', 'M', 'M', 'G', 'A', 'M', 'H', 'T', 'R'], - STANDALONENARROWMONTHS: ['I', 'C', 'M', 'E', 'M', 'M', 'G', 'A', 'M', 'H', - 'T', 'R'], + NARROWMONTHS: ['I', 'Ch', 'M', 'E', 'M', 'M', 'G', 'A', 'M', 'H', 'T', 'Rh'], + STANDALONENARROWMONTHS: ['I', 'Ch', 'M', 'E', 'M', 'M', 'G', 'A', 'M', 'H', + 'T', 'Rh'], MONTHS: ['Ionawr', 'Chwefror', 'Mawrth', 'Ebrill', 'Mai', 'Mehefin', - 'Gorffenaf', 'Awst', 'Medi', 'Hydref', 'Tachwedd', 'Rhagfyr'], + 'Gorffennaf', 'Awst', 'Medi', 'Hydref', 'Tachwedd', 'Rhagfyr'], STANDALONEMONTHS: ['Ionawr', 'Chwefror', 'Mawrth', 'Ebrill', 'Mai', 'Mehefin', - 'Gorffennaf', 'Awst', 'Medi', 'Hydref', 'Tachwedd', 'Rhagfyr'], + 'Gorffennaf', 'Awst', 'Medi', 'Hydref', 'Tachwedd', 'Rhagfyr'], SHORTMONTHS: ['Ion', 'Chwef', 'Mawrth', 'Ebrill', 'Mai', 'Meh', 'Gorff', - 'Awst', 'Medi', 'Hyd', 'Tach', 'Rhag'], - STANDALONESHORTMONTHS: ['Ion', 'Chwe', 'Maw', 'Ebr', 'Mai', 'Meh', 'Gor', - 'Awst', 'Medi', 'Hyd', 'Tach', 'Rhag'], + 'Awst', 'Medi', 'Hyd', 'Tach', 'Rhag'], + STANDALONESHORTMONTHS: ['Ion', 'Chw', 'Maw', 'Ebr', 'Mai', 'Meh', 'Gor', + 'Awst', 'Medi', 'Hyd', 'Tach', 'Rhag'], WEEKDAYS: ['Dydd Sul', 'Dydd Llun', 'Dydd Mawrth', 'Dydd Mercher', 'Dydd Iau', - 'Dydd Gwener', 'Dydd Sadwrn'], + 'Dydd Gwener', 'Dydd Sadwrn'], STANDALONEWEEKDAYS: ['Dydd Sul', 'Dydd Llun', 'Dydd Mawrth', 'Dydd Mercher', - 'Dydd Iau', 'Dydd Gwener', 'Dydd Sadwrn'], + 'Dydd Iau', 'Dydd Gwener', 'Dydd Sadwrn'], SHORTWEEKDAYS: ['Sul', 'Llun', 'Maw', 'Mer', 'Iau', 'Gwen', 'Sad'], STANDALONESHORTWEEKDAYS: ['Sul', 'Llun', 'Maw', 'Mer', 'Iau', 'Gwe', 'Sad'], - NARROWWEEKDAYS: ['S', 'L', 'M', 'M', 'I', 'G', 'S'], - STANDALONENARROWWEEKDAYS: ['S', 'L', 'M', 'M', 'I', 'G', 'S'], + NARROWWEEKDAYS: ['S', 'Ll', 'M', 'M', 'I', 'G', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'Ll', 'M', 'M', 'I', 'G', 'S'], SHORTQUARTERS: ['Ch1', 'Ch2', 'Ch3', 'Ch4'], QUARTERS: ['Chwarter 1af', '2il chwarter', '3ydd chwarter', '4ydd chwarter'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -554,28 +609,29 @@ goog.i18n.DateTimeSymbols_da = { ERANAMES: ['f.Kr.', 'e.Kr.'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['januar', 'februar', 'marts', 'april', 'maj', 'juni', 'juli', - 'august', 'september', 'oktober', 'november', 'december'], + 'august', 'september', 'oktober', 'november', 'december'], STANDALONEMONTHS: ['januar', 'februar', 'marts', 'april', 'maj', 'juni', - 'juli', 'august', 'september', 'oktober', 'november', 'december'], + 'juli', 'august', 'september', 'oktober', 'november', 'december'], SHORTMONTHS: ['jan.', 'feb.', 'mar.', 'apr.', 'maj', 'jun.', 'jul.', 'aug.', - 'sep.', 'okt.', 'nov.', 'dec.'], + 'sep.', 'okt.', 'nov.', 'dec.'], STANDALONESHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', - 'aug', 'sep', 'okt', 'nov', 'dec'], + 'aug', 'sep', 'okt', 'nov', 'dec'], WEEKDAYS: ['søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', - 'lørdag'], + 'lørdag'], STANDALONEWEEKDAYS: ['søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', - 'fredag', 'lørdag'], - SHORTWEEKDAYS: ['søn', 'man', 'tir', 'ons', 'tor', 'fre', 'lør'], + 'fredag', 'lørdag'], + SHORTWEEKDAYS: ['søn.', 'man.', 'tir.', 'ons.', 'tor.', 'fre.', 'lør.'], STANDALONESHORTWEEKDAYS: ['søn', 'man', 'tir', 'ons', 'tor', 'fre', 'lør'], NARROWWEEKDAYS: ['S', 'M', 'T', 'O', 'T', 'F', 'L'], STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'O', 'T', 'F', 'L'], SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], QUARTERS: ['1. kvartal', '2. kvartal', '3. kvartal', '4. kvartal'], - AMPMS: ['f.m.', 'e.m.'], - DATEFORMATS: ['EEEE \'den\' d. MMMM y', 'd. MMM y', 'dd/MM/yyyy', 'dd/MM/yy'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE \'den\' d. MMMM y', 'd. MMM y', 'dd/MM/y', 'dd/MM/yy'], TIMEFORMATS: ['HH.mm.ss zzzz', 'HH.mm.ss z', 'HH.mm.ss', 'HH.mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -590,19 +646,19 @@ goog.i18n.DateTimeSymbols_de = { ERANAMES: ['v. Chr.', 'n. Chr.'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', - 'August', 'September', 'Oktober', 'November', 'Dezember'], + 'August', 'September', 'Oktober', 'November', 'Dezember'], STANDALONEMONTHS: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', - 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'], - SHORTMONTHS: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', - 'Okt', 'Nov', 'Dez'], + 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'], + SHORTMONTHS: ['Jan.', 'Feb.', 'Mär.', 'Apr.', 'Mai', 'Juni', 'Juli', 'Aug.', + 'Sep.', 'Okt.', 'Nov.', 'Dez.'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', - 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'], + 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'], WEEKDAYS: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', - 'Freitag', 'Samstag'], + 'Freitag', 'Samstag'], STANDALONEWEEKDAYS: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', - 'Donnerstag', 'Freitag', 'Samstag'], + 'Donnerstag', 'Freitag', 'Samstag'], SHORTWEEKDAYS: ['So.', 'Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.'], STANDALONESHORTWEEKDAYS: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'], NARROWWEEKDAYS: ['S', 'M', 'D', 'M', 'D', 'F', 'S'], @@ -610,8 +666,9 @@ goog.i18n.DateTimeSymbols_de = { SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['1. Quartal', '2. Quartal', '3. Quartal', '4. Quartal'], AMPMS: ['vorm.', 'nachm.'], - DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'dd.MM.yyyy', 'dd.MM.yy'], + DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'dd.MM.y', 'dd.MM.yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -626,19 +683,19 @@ goog.i18n.DateTimeSymbols_de_AT = { ERANAMES: ['v. Chr.', 'n. Chr.'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Jänner', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', - 'August', 'September', 'Oktober', 'November', 'Dezember'], - STANDALONEMONTHS: ['Jänner', 'Februar', 'März', 'April', 'Mai', 'Juni', - 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'], - SHORTMONTHS: ['Jän', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', - 'Okt', 'Nov', 'Dez'], + 'August', 'September', 'Oktober', 'November', 'Dezember'], + STANDALONEMONTHS: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', + 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'], + SHORTMONTHS: ['Jän', 'Feb.', 'Mär.', 'Apr.', 'Mai', 'Juni', 'Juli', 'Aug.', + 'Sep.', 'Okt.', 'Nov.', 'Dez.'], STANDALONESHORTMONTHS: ['Jän', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', - 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'], + 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'], WEEKDAYS: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', - 'Freitag', 'Samstag'], + 'Freitag', 'Samstag'], STANDALONEWEEKDAYS: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', - 'Donnerstag', 'Freitag', 'Samstag'], + 'Donnerstag', 'Freitag', 'Samstag'], SHORTWEEKDAYS: ['So.', 'Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.'], STANDALONESHORTWEEKDAYS: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'], NARROWWEEKDAYS: ['S', 'M', 'D', 'M', 'D', 'F', 'S'], @@ -646,8 +703,9 @@ goog.i18n.DateTimeSymbols_de_AT = { SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['1. Quartal', '2. Quartal', '3. Quartal', '4. Quartal'], AMPMS: ['vorm.', 'nachm.'], - DATEFORMATS: ['EEEE, dd. MMMM y', 'dd. MMMM y', 'dd.MM.yyyy', 'dd.MM.yy'], + DATEFORMATS: ['EEEE, dd. MMMM y', 'dd. MMMM y', 'dd.MM.y', 'dd.MM.yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -667,37 +725,38 @@ goog.i18n.DateTimeSymbols_el = { ERAS: ['π.Χ.', 'μ.Χ.'], ERANAMES: ['π.Χ.', 'μ.Χ.'], NARROWMONTHS: ['Ι', 'Φ', 'Μ', 'Α', 'Μ', 'Ι', 'Ι', 'Α', 'Σ', 'Ο', - 'Ν', 'Δ'], + 'Ν', 'Δ'], STANDALONENARROWMONTHS: ['Ι', 'Φ', 'Μ', 'Α', 'Μ', 'Ι', 'Ι', 'Α', 'Σ', - 'Ο', 'Ν', 'Δ'], + 'Ο', 'Ν', 'Δ'], MONTHS: ['Ιανουαρίου', 'Φεβρουαρίου', 'Μαρτίου', - 'Απριλίου', 'Μαΐου', 'Ιουνίου', 'Ιουλίου', - 'Αυγούστου', 'Σεπτεμβρίου', 'Οκτωβρίου', - 'Νοεμβρίου', 'Δεκεμβρίου'], + 'Απριλίου', 'Μαΐου', 'Ιουνίου', 'Ιουλίου', + 'Αυγούστου', 'Σεπτεμβρίου', 'Οκτωβρίου', + 'Νοεμβρίου', 'Δεκεμβρίου'], STANDALONEMONTHS: ['Ιανουάριος', 'Φεβρουάριος', - 'Μάρτιος', 'Απρίλιος', 'Μάιος', 'Ιούνιος', - 'Ιούλιος', 'Αύγουστος', 'Σεπτέμβριος', - 'Οκτώβριος', 'Νοέμβριος', 'Δεκέμβριος'], + 'Μάρτιος', 'Απρίλιος', 'Μάιος', 'Ιούνιος', + 'Ιούλιος', 'Αύγουστος', 'Σεπτέμβριος', + 'Οκτώβριος', 'Νοέμβριος', 'Δεκέμβριος'], SHORTMONTHS: ['Ιαν', 'Φεβ', 'Μαρ', 'Απρ', 'Μαϊ', 'Ιουν', - 'Ιουλ', 'Αυγ', 'Σεπ', 'Οκτ', 'Νοε', 'Δεκ'], + 'Ιουλ', 'Αυγ', 'Σεπ', 'Οκτ', 'Νοε', 'Δεκ'], STANDALONESHORTMONTHS: ['Ιαν', 'Φεβ', 'Μάρ', 'Απρ', 'Μάι', - 'Ιούν', 'Ιούλ', 'Αυγ', 'Σεπ', 'Οκτ', 'Νοέ', 'Δεκ'], + 'Ιούν', 'Ιούλ', 'Αύγ', 'Σεπ', 'Οκτ', 'Νοέ', 'Δεκ'], WEEKDAYS: ['Κυριακή', 'Δευτέρα', 'Τρίτη', 'Τετάρτη', - 'Πέμπτη', 'Παρασκευή', 'Σάββατο'], + 'Πέμπτη', 'Παρασκευή', 'Σάββατο'], STANDALONEWEEKDAYS: ['Κυριακή', 'Δευτέρα', 'Τρίτη', - 'Τετάρτη', 'Πέμπτη', 'Παρασκευή', 'Σάββατο'], - SHORTWEEKDAYS: ['Κυρ', 'Δευ', 'Τρι', 'Τετ', 'Πεμ', 'Παρ', - 'Σαβ'], + 'Τετάρτη', 'Πέμπτη', 'Παρασκευή', 'Σάββατο'], + SHORTWEEKDAYS: ['Κυρ', 'Δευ', 'Τρί', 'Τετ', 'Πέμ', 'Παρ', + 'Σάβ'], STANDALONESHORTWEEKDAYS: ['Κυρ', 'Δευ', 'Τρί', 'Τετ', 'Πέμ', - 'Παρ', 'Σάβ'], + 'Παρ', 'Σάβ'], NARROWWEEKDAYS: ['Κ', 'Δ', 'Τ', 'Τ', 'Π', 'Π', 'Σ'], STANDALONENARROWWEEKDAYS: ['Κ', 'Δ', 'Τ', 'Τ', 'Π', 'Π', 'Σ'], SHORTQUARTERS: ['Τ1', 'Τ2', 'Τ3', 'Τ4'], QUARTERS: ['1ο τρίμηνο', '2ο τρίμηνο', '3ο τρίμηνο', - '4ο τρίμηνο'], + '4ο τρίμηνο'], AMPMS: ['π.μ.', 'μ.μ.'], DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} - {0}', '{1} - {0}', '{1} - {0}', '{1} - {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -712,19 +771,19 @@ goog.i18n.DateTimeSymbols_en = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -734,6 +793,7 @@ goog.i18n.DateTimeSymbols_en = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -748,19 +808,19 @@ goog.i18n.DateTimeSymbols_en_AU = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -768,8 +828,9 @@ goog.i18n.DateTimeSymbols_en_AU = { SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'dd/MM/yyyy', 'd/MM/yy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'dd/MM/y', 'd/MM/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -784,28 +845,29 @@ goog.i18n.DateTimeSymbols_en_GB = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], - AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + AMPMS: ['am', 'pm'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -820,19 +882,19 @@ goog.i18n.DateTimeSymbols_en_IE = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -840,11 +902,12 @@ goog.i18n.DateTimeSymbols_en_IE = { SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], AMPMS: ['a.m.', 'p.m.'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], - FIRSTDAYOFWEEK: 0, + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], - FIRSTWEEKCUTOFFDAY: 3 + FIRSTWEEKCUTOFFDAY: 2 }; @@ -856,19 +919,19 @@ goog.i18n.DateTimeSymbols_en_IN = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -878,6 +941,7 @@ goog.i18n.DateTimeSymbols_en_IN = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'dd-MMM-y', 'dd/MM/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [6, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -892,19 +956,19 @@ goog.i18n.DateTimeSymbols_en_SG = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -914,6 +978,7 @@ goog.i18n.DateTimeSymbols_en_SG = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, d MMMM, y', 'd MMMM, y', 'd MMM, y', 'd/M/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -934,19 +999,19 @@ goog.i18n.DateTimeSymbols_en_ZA = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -954,8 +1019,9 @@ goog.i18n.DateTimeSymbols_en_ZA = { SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE dd MMMM y', 'dd MMMM y', 'dd MMM y', 'yyyy/MM/dd'], + DATEFORMATS: ['EEEE dd MMMM y', 'dd MMMM y', 'dd MMM y', 'y/MM/dd'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -970,33 +1036,34 @@ goog.i18n.DateTimeSymbols_es = { ERANAMES: ['antes de Cristo', 'anno Dómini'], NARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', - 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], STANDALONEMONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', - 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], SHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', - 'oct', 'nov', 'dic'], + 'oct', 'nov', 'dic'], STANDALONESHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'mayo', 'jun', 'jul', - 'ago', 'sep', 'oct', 'nov', 'dic'], + 'ago', 'sep', 'oct', 'nov', 'dic'], WEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', - 'sábado'], + 'sábado'], STANDALONEWEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', - 'viernes', 'sábado'], + 'viernes', 'sábado'], SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], NARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2º trimestre', '3er trimestre', - '4º trimestre'], + '4º trimestre'], AMPMS: ['a.m.', 'p.m.'], DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', - 'dd/MM/yyyy', 'dd/MM/yy'], + 'dd/MM/y', 'dd/MM/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], - FIRSTDAYOFWEEK: 6, + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], - FIRSTWEEKCUTOFFDAY: 5 + FIRSTWEEKCUTOFFDAY: 3 }; @@ -1008,36 +1075,43 @@ goog.i18n.DateTimeSymbols_es_419 = { ERANAMES: ['antes de Cristo', 'anno Dómini'], NARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', - 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], STANDALONEMONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', - 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], SHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', - 'oct', 'nov', 'dic'], + 'oct', 'nov', 'dic'], STANDALONESHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'mayo', 'jun', 'jul', - 'ago', 'sep', 'oct', 'nov', 'dic'], + 'ago', 'sep', 'oct', 'nov', 'dic'], WEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', - 'sábado'], + 'sábado'], STANDALONEWEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', - 'viernes', 'sábado'], + 'viernes', 'sábado'], SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2º trimestre', '3er trimestre', - '4º trimestre'], + '4º trimestre'], AMPMS: ['a.m.', 'p.m.'], DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', - 'dd/MM/yyyy', 'dd/MM/yy'], + 'dd/MM/y', 'dd/MM/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], - FIRSTDAYOFWEEK: 6, + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], - FIRSTWEEKCUTOFFDAY: 5 + FIRSTWEEKCUTOFFDAY: 3 }; +/** + * Date/time formatting symbols for locale es_ES. + */ +goog.i18n.DateTimeSymbols_es_ES = goog.i18n.DateTimeSymbols_es; + + /** * Date/time formatting symbols for locale et. */ @@ -1046,28 +1120,29 @@ goog.i18n.DateTimeSymbols_et = { ERANAMES: ['enne meie aega', 'meie aja järgi'], NARROWMONTHS: ['J', 'V', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'V', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['jaanuar', 'veebruar', 'märts', 'aprill', 'mai', 'juuni', 'juuli', - 'august', 'september', 'oktoober', 'november', 'detsember'], + 'august', 'september', 'oktoober', 'november', 'detsember'], STANDALONEMONTHS: ['jaanuar', 'veebruar', 'märts', 'aprill', 'mai', 'juuni', - 'juuli', 'august', 'september', 'oktoober', 'november', 'detsember'], + 'juuli', 'august', 'september', 'oktoober', 'november', 'detsember'], SHORTMONTHS: ['jaan', 'veebr', 'märts', 'apr', 'mai', 'juuni', 'juuli', - 'aug', 'sept', 'okt', 'nov', 'dets'], + 'aug', 'sept', 'okt', 'nov', 'dets'], STANDALONESHORTMONTHS: ['jaan', 'veebr', 'märts', 'apr', 'mai', 'juuni', - 'juuli', 'aug', 'sept', 'okt', 'nov', 'dets'], + 'juuli', 'aug', 'sept', 'okt', 'nov', 'dets'], WEEKDAYS: ['pühapäev', 'esmaspäev', 'teisipäev', 'kolmapäev', - 'neljapäev', 'reede', 'laupäev'], + 'neljapäev', 'reede', 'laupäev'], STANDALONEWEEKDAYS: ['pühapäev', 'esmaspäev', 'teisipäev', 'kolmapäev', - 'neljapäev', 'reede', 'laupäev'], + 'neljapäev', 'reede', 'laupäev'], SHORTWEEKDAYS: ['P', 'E', 'T', 'K', 'N', 'R', 'L'], STANDALONESHORTWEEKDAYS: ['P', 'E', 'T', 'K', 'N', 'R', 'L'], NARROWWEEKDAYS: ['P', 'E', 'T', 'K', 'N', 'R', 'L'], STANDALONENARROWWEEKDAYS: ['P', 'E', 'T', 'K', 'N', 'R', 'L'], SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], QUARTERS: ['1. kvartal', '2. kvartal', '3. kvartal', '4. kvartal'], - AMPMS: ['enne keskpäeva', 'pärast keskpäeva'], - DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'dd.MM.yyyy', 'dd.MM.yy'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'dd.MM.y', 'dd.MM.yy'], TIMEFORMATS: ['H:mm.ss zzzz', 'H:mm.ss z', 'H:mm.ss', 'H:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -1082,30 +1157,30 @@ goog.i18n.DateTimeSymbols_eu = { ERANAMES: ['K.a.', 'K.o.'], NARROWMONTHS: ['U', 'O', 'M', 'A', 'M', 'E', 'U', 'A', 'I', 'U', 'A', 'A'], STANDALONENARROWMONTHS: ['U', 'O', 'M', 'A', 'M', 'E', 'U', 'A', 'I', 'U', - 'A', 'A'], + 'A', 'A'], MONTHS: ['urtarrila', 'otsaila', 'martxoa', 'apirila', 'maiatza', 'ekaina', - 'uztaila', 'abuztua', 'iraila', 'urria', 'azaroa', 'abendua'], + 'uztaila', 'abuztua', 'iraila', 'urria', 'azaroa', 'abendua'], STANDALONEMONTHS: ['urtarrila', 'otsaila', 'martxoa', 'apirila', 'maiatza', - 'ekaina', 'uztaila', 'abuztua', 'iraila', 'urria', 'azaroa', 'abendua'], + 'ekaina', 'uztaila', 'abuztua', 'iraila', 'urria', 'azaroa', 'abendua'], SHORTMONTHS: ['urt', 'ots', 'mar', 'api', 'mai', 'eka', 'uzt', 'abu', 'ira', - 'urr', 'aza', 'abe'], + 'urr', 'aza', 'abe'], STANDALONESHORTMONTHS: ['urt', 'ots', 'mar', 'api', 'mai', 'eka', 'uzt', - 'abu', 'ira', 'urr', 'aza', 'abe'], + 'abu', 'ira', 'urr', 'aza', 'abe'], WEEKDAYS: ['igandea', 'astelehena', 'asteartea', 'asteazkena', 'osteguna', - 'ostirala', 'larunbata'], + 'ostirala', 'larunbata'], STANDALONEWEEKDAYS: ['igandea', 'astelehena', 'asteartea', 'asteazkena', - 'osteguna', 'ostirala', 'larunbata'], + 'osteguna', 'ostirala', 'larunbata'], SHORTWEEKDAYS: ['ig', 'al', 'as', 'az', 'og', 'or', 'lr'], STANDALONESHORTWEEKDAYS: ['ig', 'al', 'as', 'az', 'og', 'or', 'lr'], NARROWWEEKDAYS: ['I', 'M', 'A', 'A', 'A', 'O', 'I'], STANDALONENARROWWEEKDAYS: ['I', 'M', 'A', 'L', 'A', 'O', 'I'], SHORTQUARTERS: ['1Hh', '2Hh', '3Hh', '4Hh'], QUARTERS: ['1. hiruhilekoa', '2. hiruhilekoa', '3. hiruhilekoa', - '4. hiruhilekoa'], + '4. hiruhilekoa'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, y\'eko\' MMMM\'ren\' dd\'a\'', - 'y\'eko\' MMM\'ren\' dd\'a\'', 'y MMM d', 'yyyy-MM-dd'], + DATEFORMATS: ['EEEE, y MMMM dd', 'y MMMM d', 'y MMM d', 'y-MM-dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -1120,37 +1195,39 @@ goog.i18n.DateTimeSymbols_fa = { ERAS: ['ق.م.', 'م.'], ERANAMES: ['قبل از میلاد', 'میلادی'], NARROWMONTHS: ['ژ', 'ف', 'م', 'آ', 'م', 'ژ', 'ژ', 'ا', 'س', 'ا', - 'ن', 'د'], + 'ن', 'د'], STANDALONENARROWMONTHS: ['ژ', 'ف', 'م', 'آ', 'م', 'ژ', 'ژ', 'ا', 'س', - 'ا', 'ن', 'د'], + 'ا', 'ن', 'د'], MONTHS: ['ژانویهٔ', 'فوریهٔ', 'مارس', 'آوریل', 'مهٔ', - 'ژوئن', 'ژوئیهٔ', 'اوت', 'سپتامبر', 'اکتبر', - 'نوامبر', 'دسامبر'], + 'ژوئن', 'ژوئیهٔ', 'اوت', 'سپتامبر', 'اکتبر', + 'نوامبر', 'دسامبر'], STANDALONEMONTHS: ['ژانویه', 'فوریه', 'مارس', 'آوریل', - 'مه', 'ژوئن', 'ژوئیه', 'اوت', 'سپتامبر', - 'اکتبر', 'نوامبر', 'دسامبر'], + 'مه', 'ژوئن', 'ژوئیه', 'اوت', 'سپتامبر', 'اکتبر', + 'نوامبر', 'دسامبر'], SHORTMONTHS: ['ژانویهٔ', 'فوریهٔ', 'مارس', 'آوریل', - 'مهٔ', 'ژوئن', 'ژوئیهٔ', 'اوت', 'سپتامبر', - 'اکتبر', 'نوامبر', 'دسامبر'], + 'مهٔ', 'ژوئن', 'ژوئیهٔ', 'اوت', 'سپتامبر', + 'اکتبر', 'نوامبر', 'دسامبر'], STANDALONESHORTMONTHS: ['ژانویه', 'فوریه', 'مارس', - 'آوریل', 'مه', 'ژوئن', 'ژوئیه', 'اوت', - 'سپتامبر', 'اکتبر', 'نوامبر', 'دسامبر'], + 'آوریل', 'مه', 'ژوئن', 'ژوئیه', 'اوت', 'سپتامبر', + 'اکتبر', 'نوامبر', 'دسامبر'], WEEKDAYS: ['یکشنبه', 'دوشنبه', 'سه‌شنبه', - 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], + 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], STANDALONEWEEKDAYS: ['یکشنبه', 'دوشنبه', 'سه‌شنبه', - 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], + 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], SHORTWEEKDAYS: ['یکشنبه', 'دوشنبه', 'سه‌شنبه', - 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], + 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], STANDALONESHORTWEEKDAYS: ['یکشنبه', 'دوشنبه', 'سه‌شنبه', - 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], + 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], NARROWWEEKDAYS: ['ی', 'د', 'س', 'چ', 'پ', 'ج', 'ش'], STANDALONENARROWWEEKDAYS: ['ی', 'د', 'س', 'چ', 'پ', 'ج', 'ش'], SHORTQUARTERS: ['س‌م۱', 'س‌م۲', 'س‌م۳', 'س‌م۴'], QUARTERS: ['سه‌ماههٔ اول', 'سه‌ماههٔ دوم', - 'سه‌ماههٔ سوم', 'سه‌ماههٔ چهارم'], + 'سه‌ماههٔ سوم', 'سه‌ماههٔ چهارم'], AMPMS: ['قبل‌ازظهر', 'بعدازظهر'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'yyyy/M/d'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'y/M/d'], TIMEFORMATS: ['H:mm:ss (zzzz)', 'H:mm:ss (z)', 'H:mm:ss', 'H:mm'], + DATETIMEFORMATS: ['{1}، ساعت {0}', '{1}، ساعت {0}', '{1}،‏ {0}', + '{1}،‏ {0}'], FIRSTDAYOFWEEK: 5, WEEKENDRANGE: [3, 4], FIRSTWEEKCUTOFFDAY: 4 @@ -1165,32 +1242,33 @@ goog.i18n.DateTimeSymbols_fi = { ERANAMES: ['ennen Kristuksen syntymää', 'jälkeen Kristuksen syntymän'], NARROWMONTHS: ['T', 'H', 'M', 'H', 'T', 'K', 'H', 'E', 'S', 'L', 'M', 'J'], STANDALONENARROWMONTHS: ['T', 'H', 'M', 'H', 'T', 'K', 'H', 'E', 'S', 'L', - 'M', 'J'], + 'M', 'J'], MONTHS: ['tammikuuta', 'helmikuuta', 'maaliskuuta', 'huhtikuuta', - 'toukokuuta', 'kesäkuuta', 'heinäkuuta', 'elokuuta', 'syyskuuta', - 'lokakuuta', 'marraskuuta', 'joulukuuta'], + 'toukokuuta', 'kesäkuuta', 'heinäkuuta', 'elokuuta', 'syyskuuta', + 'lokakuuta', 'marraskuuta', 'joulukuuta'], STANDALONEMONTHS: ['tammikuu', 'helmikuu', 'maaliskuu', 'huhtikuu', - 'toukokuu', 'kesäkuu', 'heinäkuu', 'elokuu', 'syyskuu', 'lokakuu', - 'marraskuu', 'joulukuu'], + 'toukokuu', 'kesäkuu', 'heinäkuu', 'elokuu', 'syyskuu', 'lokakuu', + 'marraskuu', 'joulukuu'], SHORTMONTHS: ['tammikuuta', 'helmikuuta', 'maaliskuuta', 'huhtikuuta', - 'toukokuuta', 'kesäkuuta', 'heinäkuuta', 'elokuuta', 'syyskuuta', - 'lokakuuta', 'marraskuuta', 'joulukuuta'], + 'toukokuuta', 'kesäkuuta', 'heinäkuuta', 'elokuuta', 'syyskuuta', + 'lokakuuta', 'marraskuuta', 'joulukuuta'], STANDALONESHORTMONTHS: ['tammi', 'helmi', 'maalis', 'huhti', 'touko', 'kesä', - 'heinä', 'elo', 'syys', 'loka', 'marras', 'joulu'], + 'heinä', 'elo', 'syys', 'loka', 'marras', 'joulu'], WEEKDAYS: ['sunnuntaina', 'maanantaina', 'tiistaina', 'keskiviikkona', - 'torstaina', 'perjantaina', 'lauantaina'], + 'torstaina', 'perjantaina', 'lauantaina'], STANDALONEWEEKDAYS: ['sunnuntai', 'maanantai', 'tiistai', 'keskiviikko', - 'torstai', 'perjantai', 'lauantai'], + 'torstai', 'perjantai', 'lauantai'], SHORTWEEKDAYS: ['su', 'ma', 'ti', 'ke', 'to', 'pe', 'la'], STANDALONESHORTWEEKDAYS: ['su', 'ma', 'ti', 'ke', 'to', 'pe', 'la'], NARROWWEEKDAYS: ['S', 'M', 'T', 'K', 'T', 'P', 'L'], STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'K', 'T', 'P', 'L'], SHORTQUARTERS: ['1. nelj.', '2. nelj.', '3. nelj.', '4. nelj.'], QUARTERS: ['1. neljännes', '2. neljännes', '3. neljännes', - '4. neljännes'], + '4. neljännes'], AMPMS: ['ap.', 'ip.'], - DATEFORMATS: ['cccc, d. MMMM y', 'd. MMMM y', 'd.M.yyyy', 'd.M.yyyy'], + DATEFORMATS: ['cccc d. MMMM y', 'd. MMMM y', 'd.M.y', 'd.M.y'], TIMEFORMATS: ['H.mm.ss zzzz', 'H.mm.ss z', 'H.mm.ss', 'H.mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -1205,29 +1283,30 @@ goog.i18n.DateTimeSymbols_fil = { ERANAMES: ['BC', 'AD'], NARROWMONTHS: ['E', 'P', 'M', 'A', 'M', 'H', 'H', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['E', 'P', 'M', 'A', 'M', 'H', 'H', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Enero', 'Pebrero', 'Marso', 'Abril', 'Mayo', 'Hunyo', 'Hulyo', - 'Agosto', 'Setyembre', 'Oktubre', 'Nobyembre', 'Disyembre'], + 'Agosto', 'Setyembre', 'Oktubre', 'Nobyembre', 'Disyembre'], STANDALONEMONTHS: ['Enero', 'Pebrero', 'Marso', 'Abril', 'Mayo', 'Hunyo', - 'Hulyo', 'Agosto', 'Setyembre', 'Oktubre', 'Nobyembre', 'Disyembre'], + 'Hulyo', 'Agosto', 'Setyembre', 'Oktubre', 'Nobyembre', 'Disyembre'], SHORTMONTHS: ['Ene', 'Peb', 'Mar', 'Abr', 'May', 'Hun', 'Hul', 'Ago', 'Set', - 'Okt', 'Nob', 'Dis'], + 'Okt', 'Nob', 'Dis'], STANDALONESHORTMONTHS: ['Ene', 'Peb', 'Mar', 'Abr', 'May', 'Hun', 'Hul', - 'Ago', 'Set', 'Okt', 'Nob', 'Dis'], + 'Ago', 'Set', 'Okt', 'Nob', 'Dis'], WEEKDAYS: ['Linggo', 'Lunes', 'Martes', 'Miyerkules', 'Huwebes', 'Biyernes', - 'Sabado'], + 'Sabado'], STANDALONEWEEKDAYS: ['Linggo', 'Lunes', 'Martes', 'Miyerkules', 'Huwebes', - 'Biyernes', 'Sabado'], + 'Biyernes', 'Sabado'], SHORTWEEKDAYS: ['Lin', 'Lun', 'Mar', 'Mye', 'Huw', 'Bye', 'Sab'], STANDALONESHORTWEEKDAYS: ['Lin', 'Lun', 'Mar', 'Miy', 'Huw', 'Biy', 'Sab'], NARROWWEEKDAYS: ['L', 'L', 'M', 'M', 'H', 'B', 'S'], STANDALONENARROWWEEKDAYS: ['L', 'L', 'M', 'M', 'H', 'B', 'S'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['ika-1 sangkapat', 'ika-2 sangkapat', 'ika-3 quarter', - 'ika-4 na quarter'], + 'ika-4 na quarter'], AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, MMMM dd y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -1242,29 +1321,30 @@ goog.i18n.DateTimeSymbols_fr = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -1279,30 +1359,31 @@ goog.i18n.DateTimeSymbols_fr_CA = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'yyyy-MM-dd', 'yy-MM-dd'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'y-MM-dd', 'yy-MM-dd'], TIMEFORMATS: ['HH \'h\' mm \'min\' ss \'s\' zzzz', 'HH:mm:ss z', 'HH:mm:ss', - 'HH:mm'], + 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -1317,19 +1398,19 @@ goog.i18n.DateTimeSymbols_gl = { ERANAMES: ['antes de Cristo', 'despois de Cristo'], NARROWMONTHS: ['X', 'F', 'M', 'A', 'M', 'X', 'X', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['X', 'F', 'M', 'A', 'M', 'X', 'X', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Xaneiro', 'Febreiro', 'Marzo', 'Abril', 'Maio', 'Xuño', 'Xullo', - 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Decembro'], + 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Decembro'], STANDALONEMONTHS: ['Xaneiro', 'Febreiro', 'Marzo', 'Abril', 'Maio', 'Xuño', - 'Xullo', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Decembro'], + 'Xullo', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Decembro'], SHORTMONTHS: ['Xan', 'Feb', 'Mar', 'Abr', 'Mai', 'Xuñ', 'Xul', 'Ago', 'Set', - 'Out', 'Nov', 'Dec'], + 'Out', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Xan', 'Feb', 'Mar', 'Abr', 'Mai', 'Xuñ', 'Xul', - 'Ago', 'Set', 'Out', 'Nov', 'Dec'], + 'Ago', 'Set', 'Out', 'Nov', 'Dec'], WEEKDAYS: ['Domingo', 'Luns', 'Martes', 'Mércores', 'Xoves', 'Venres', - 'Sábado'], + 'Sábado'], STANDALONEWEEKDAYS: ['Domingo', 'Luns', 'Martes', 'Mércores', 'Xoves', - 'Venres', 'Sábado'], + 'Venres', 'Sábado'], SHORTWEEKDAYS: ['Dom', 'Lun', 'Mar', 'Mér', 'Xov', 'Ven', 'Sáb'], STANDALONESHORTWEEKDAYS: ['Dom', 'Lun', 'Mar', 'Mér', 'Xov', 'Ven', 'Sáb'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'X', 'V', 'S'], @@ -1339,6 +1420,7 @@ goog.i18n.DateTimeSymbols_gl = { AMPMS: ['a.m.', 'p.m.'], DATEFORMATS: ['EEEE dd MMMM y', 'dd MMMM y', 'd MMM, y', 'dd/MM/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -1353,19 +1435,19 @@ goog.i18n.DateTimeSymbols_gsw = { ERANAMES: ['v. Chr.', 'n. Chr.'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', - 'Auguscht', 'Septämber', 'Oktoober', 'Novämber', 'Dezämber'], + 'Auguscht', 'Septämber', 'Oktoober', 'Novämber', 'Dezämber'], STANDALONEMONTHS: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', - 'Juli', 'Auguscht', 'Septämber', 'Oktoober', 'Novämber', 'Dezämber'], + 'Juli', 'Auguscht', 'Septämber', 'Oktoober', 'Novämber', 'Dezämber'], SHORTMONTHS: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', - 'Okt', 'Nov', 'Dez'], + 'Okt', 'Nov', 'Dez'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', - 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'], + 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'], WEEKDAYS: ['Sunntig', 'Määntig', 'Ziischtig', 'Mittwuch', 'Dunschtig', - 'Friitig', 'Samschtig'], + 'Friitig', 'Samschtig'], STANDALONEWEEKDAYS: ['Sunntig', 'Määntig', 'Ziischtig', 'Mittwuch', - 'Dunschtig', 'Friitig', 'Samschtig'], + 'Dunschtig', 'Friitig', 'Samschtig'], SHORTWEEKDAYS: ['Su.', 'Mä.', 'Zi.', 'Mi.', 'Du.', 'Fr.', 'Sa.'], STANDALONESHORTWEEKDAYS: ['Su.', 'Mä.', 'Zi.', 'Mi.', 'Du.', 'Fr.', 'Sa.'], NARROWWEEKDAYS: ['S', 'M', 'D', 'M', 'D', 'F', 'S'], @@ -1373,11 +1455,12 @@ goog.i18n.DateTimeSymbols_gsw = { SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['1. Quartal', '2. Quartal', '3. Quartal', '4. Quartal'], AMPMS: ['vorm.', 'nam.'], - DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'dd.MM.yyyy', 'dd.MM.yy'], + DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'dd.MM.y', 'dd.MM.yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], - FIRSTWEEKCUTOFFDAY: 6 + FIRSTWEEKCUTOFFDAY: 3 }; @@ -1386,51 +1469,51 @@ goog.i18n.DateTimeSymbols_gsw = { */ goog.i18n.DateTimeSymbols_gu = { ERAS: ['ઈલુના જન્મ પહેસાં', - 'ઇસવીસન'], + 'ઇસવીસન'], ERANAMES: ['ઈસવીસન પૂર્વે', 'ઇસવીસન'], NARROWMONTHS: ['જા', 'ફે', 'મા', 'એ', 'મે', 'જૂ', - 'જુ', 'ઑ', 'સ', 'ઑ', 'ન', 'ડિ'], + 'જુ', 'ઑ', 'સ', 'ઑ', 'ન', 'ડિ'], STANDALONENARROWMONTHS: ['જા', 'ફે', 'મા', 'એ', 'મે', - 'જૂ', 'જુ', 'ઑ', 'સ', 'ઑ', 'ન', 'ડિ'], + 'જૂ', 'જુ', 'ઑ', 'સ', 'ઑ', 'ન', 'ડિ'], MONTHS: ['જાન્યુઆરી', 'ફેબ્રુઆરી', - 'માર્ચ', 'એપ્રિલ', 'મે', 'જૂન', - 'જુલાઈ', 'ઑગસ્ટ', 'સપ્ટેમ્બર', - 'ઑક્ટોબર', 'નવેમ્બર', - 'ડિસેમ્બર'], + 'માર્ચ', 'એપ્રિલ', 'મે', 'જૂન', + 'જુલાઈ', 'ઑગસ્ટ', 'સપ્ટેમ્બર', + 'ઑક્ટોબર', 'નવેમ્બર', + 'ડિસેમ્બર'], STANDALONEMONTHS: ['જાન્યુઆરી', - 'ફેબ્રુઆરી', 'માર્ચ', 'એપ્રિલ', - 'મે', 'જૂન', 'જુલાઈ', 'ઑગસ્ટ', - 'સપ્ટેમ્બર', 'ઑક્ટોબર', - 'નવેમ્બર', 'ડિસેમ્બર'], + 'ફેબ્રુઆરી', 'માર્ચ', 'એપ્રિલ', + 'મે', 'જૂન', 'જુલાઈ', 'ઑગસ્ટ', + 'સપ્ટેમ્બર', 'ઑક્ટોબર', + 'નવેમ્બર', 'ડિસેમ્બર'], SHORTMONTHS: ['જાન્યુ', 'ફેબ્રુ', 'માર્ચ', - 'એપ્રિલ', 'મે', 'જૂન', 'જુલાઈ', - 'ઑગસ્ટ', 'સપ્ટે', 'ઑક્ટો', 'નવે', - 'ડિસે'], + 'એપ્રિલ', 'મે', 'જૂન', 'જુલાઈ', + 'ઑગસ્ટ', 'સપ્ટે', 'ઑક્ટો', 'નવે', + 'ડિસે'], STANDALONESHORTMONTHS: ['જાન્યુ', 'ફેબ્રુ', - 'માર્ચ', 'એપ્રિલ', 'મે', 'જૂન', - 'જુલાઈ', 'ઑગસ્ટ', 'સપ્ટે', - 'ઑક્ટો', 'નવે', 'ડિસે'], + 'માર્ચ', 'એપ્રિલ', 'મે', 'જૂન', + 'જુલાઈ', 'ઑગ', 'સપ્ટે', 'ઑક્ટો', + 'નવે', 'ડિસે'], WEEKDAYS: ['રવિવાર', 'સોમવાર', - 'મંગળવાર', 'બુધવાર', 'ગુરુવાર', - 'શુક્રવાર', 'શનિવાર'], + 'મંગળવાર', 'બુધવાર', 'ગુરુવાર', + 'શુક્રવાર', 'શનિવાર'], STANDALONEWEEKDAYS: ['રવિવાર', 'સોમવાર', - 'મંગળવાર', 'બુધવાર', 'ગુરુવાર', - 'શુક્રવાર', 'શનિવાર'], + 'મંગળવાર', 'બુધવાર', 'ગુરુવાર', + 'શુક્રવાર', 'શનિવાર'], SHORTWEEKDAYS: ['રવિ', 'સોમ', 'મંગળ', 'બુધ', - 'ગુરુ', 'શુક્ર', 'શનિ'], + 'ગુરુ', 'શુક્ર', 'શનિ'], STANDALONESHORTWEEKDAYS: ['રવિ', 'સોમ', 'મંગળ', - 'બુધ', 'ગુરુ', 'શુક્ર', 'શનિ'], + 'બુધ', 'ગુરુ', 'શુક્ર', 'શનિ'], NARROWWEEKDAYS: ['ર', 'સો', 'મં', 'બુ', 'ગુ', 'શુ', - 'શ'], + 'શ'], STANDALONENARROWWEEKDAYS: ['ર', 'સો', 'મં', 'બુ', 'ગુ', - 'શુ', 'શ'], - SHORTQUARTERS: ['પેહલા હંત 1', 'Q2', 'Q3', - 'ચૌતા હંત 4'], - QUARTERS: ['પેહલા હંત 1', 'ડૂસઋા હંત 2', - 'તીસઋા હંત 3', 'ચૌતા હંત 4'], - AMPMS: ['am', 'pm'], + 'શુ', 'શ'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['પહેલો હંત', 'બીજો હંત', + 'ત્રીજો હંત', 'ચોથો હંત'], + AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, d MMMM, y', 'd MMMM, y', 'd MMM, y', 'd-MM-yy'], TIMEFORMATS: ['hh:mm:ss a zzzz', 'hh:mm:ss a z', 'hh:mm:ss a', 'hh:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [6, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -1445,29 +1528,30 @@ goog.i18n.DateTimeSymbols_haw = { ERANAMES: ['BCE', 'CE'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['Ianuali', 'Pepeluali', 'Malaki', 'ʻApelila', 'Mei', 'Iune', - 'Iulai', 'ʻAukake', 'Kepakemapa', 'ʻOkakopa', 'Nowemapa', 'Kekemapa'], + 'Iulai', 'ʻAukake', 'Kepakemapa', 'ʻOkakopa', 'Nowemapa', 'Kekemapa'], STANDALONEMONTHS: ['Ianuali', 'Pepeluali', 'Malaki', 'ʻApelila', 'Mei', - 'Iune', 'Iulai', 'ʻAukake', 'Kepakemapa', 'ʻOkakopa', 'Nowemapa', - 'Kekemapa'], + 'Iune', 'Iulai', 'ʻAukake', 'Kepakemapa', 'ʻOkakopa', 'Nowemapa', + 'Kekemapa'], SHORTMONTHS: ['Ian.', 'Pep.', 'Mal.', 'ʻAp.', 'Mei', 'Iun.', 'Iul.', 'ʻAu.', - 'Kep.', 'ʻOk.', 'Now.', 'Kek.'], + 'Kep.', 'ʻOk.', 'Now.', 'Kek.'], STANDALONESHORTMONTHS: ['Ian.', 'Pep.', 'Mal.', 'ʻAp.', 'Mei', 'Iun.', - 'Iul.', 'ʻAu.', 'Kep.', 'ʻOk.', 'Now.', 'Kek.'], + 'Iul.', 'ʻAu.', 'Kep.', 'ʻOk.', 'Now.', 'Kek.'], WEEKDAYS: ['Lāpule', 'Poʻakahi', 'Poʻalua', 'Poʻakolu', 'Poʻahā', - 'Poʻalima', 'Poʻaono'], + 'Poʻalima', 'Poʻaono'], STANDALONEWEEKDAYS: ['Lāpule', 'Poʻakahi', 'Poʻalua', 'Poʻakolu', - 'Poʻahā', 'Poʻalima', 'Poʻaono'], + 'Poʻahā', 'Poʻalima', 'Poʻaono'], SHORTWEEKDAYS: ['LP', 'P1', 'P2', 'P3', 'P4', 'P5', 'P6'], STANDALONESHORTWEEKDAYS: ['LP', 'P1', 'P2', 'P3', 'P4', 'P5', 'P6'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -1482,36 +1566,38 @@ goog.i18n.DateTimeSymbols_he = { ERANAMES: ['לפני הספירה', 'לספירה'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['ינואר', 'פברואר', 'מרץ', 'אפריל', 'מאי', - 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', 'אוקטובר', - 'נובמבר', 'דצמבר'], + 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', 'אוקטובר', + 'נובמבר', 'דצמבר'], STANDALONEMONTHS: ['ינואר', 'פברואר', 'מרץ', 'אפריל', - 'מאי', 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', - 'אוקטובר', 'נובמבר', 'דצמבר'], + 'מאי', 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', + 'אוקטובר', 'נובמבר', 'דצמבר'], SHORTMONTHS: ['ינו', 'פבר', 'מרץ', 'אפר', 'מאי', 'יונ', - 'יול', 'אוג', 'ספט', 'אוק', 'נוב', 'דצמ'], + 'יול', 'אוג', 'ספט', 'אוק', 'נוב', 'דצמ'], STANDALONESHORTMONTHS: ['ינו׳', 'פבר׳', 'מרץ', 'אפר׳', - 'מאי', 'יונ׳', 'יול׳', 'אוג׳', 'ספט׳', 'אוק׳', - 'נוב׳', 'דצמ׳'], + 'מאי', 'יונ׳', 'יול׳', 'אוג׳', 'ספט׳', 'אוק׳', + 'נוב׳', 'דצמ׳'], WEEKDAYS: ['יום ראשון', 'יום שני', 'יום שלישי', - 'יום רביעי', 'יום חמישי', 'יום שישי', - 'יום שבת'], + 'יום רביעי', 'יום חמישי', 'יום שישי', + 'יום שבת'], STANDALONEWEEKDAYS: ['יום ראשון', 'יום שני', - 'יום שלישי', 'יום רביעי', 'יום חמישי', - 'יום שישי', 'יום שבת'], + 'יום שלישי', 'יום רביעי', 'יום חמישי', + 'יום שישי', 'יום שבת'], SHORTWEEKDAYS: ['יום א׳', 'יום ב׳', 'יום ג׳', 'יום ד׳', - 'יום ה׳', 'יום ו׳', 'שבת'], + 'יום ה׳', 'יום ו׳', 'שבת'], STANDALONESHORTWEEKDAYS: ['יום א׳', 'יום ב׳', 'יום ג׳', - 'יום ד׳', 'יום ה׳', 'יום ו׳', 'שבת'], - NARROWWEEKDAYS: ['א', 'ב', 'ג', 'ד', 'ה', 'ו', 'ש'], - STANDALONENARROWWEEKDAYS: ['א', 'ב', 'ג', 'ד', 'ה', 'ו', 'ש'], + 'יום ד׳', 'יום ה׳', 'יום ו׳', 'שבת'], + NARROWWEEKDAYS: ['א\'', 'ב\'', 'ג\'', 'ד\'', 'ה\'', 'ו׳', 'ש׳'], + STANDALONENARROWWEEKDAYS: ['א׳', 'ב׳', 'ג׳', 'ד׳', 'ה׳', 'ו', + 'ש'], SHORTQUARTERS: ['רבעון 1', 'רבעון 2', 'רבעון 3', - 'רבעון 4'], + 'רבעון 4'], QUARTERS: ['רבעון 1', 'רבעון 2', 'רבעון 3', 'רבעון 4'], AMPMS: ['לפנה״צ', 'אחה״צ'], - DATEFORMATS: ['EEEE, d בMMMM y', 'd בMMMM y', 'd בMMM yyyy', 'dd/MM/yy'], + DATEFORMATS: ['EEEE, d בMMMM y', 'd בMMMM y', 'd בMMM y', 'dd/MM/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [4, 5], FIRSTWEEKCUTOFFDAY: 5 @@ -1525,48 +1611,49 @@ goog.i18n.DateTimeSymbols_hi = { ERAS: ['ईसापूर्व', 'सन'], ERANAMES: ['ईसापूर्व', 'सन'], NARROWMONTHS: ['ज', 'फ़', 'मा', 'अ', 'म', 'जू', 'जु', - 'अ', 'सि', 'अ', 'न', 'दि'], + 'अ', 'सि', 'अ', 'न', 'दि'], STANDALONENARROWMONTHS: ['ज', 'फ़', 'मा', 'अ', 'म', 'जू', - 'जु', 'अ', 'सि', 'अ', 'न', 'दि'], + 'जु', 'अ', 'सि', 'अ', 'न', 'दि'], MONTHS: ['जनवरी', 'फरवरी', 'मार्च', - 'अप्रैल', 'मई', 'जून', 'जुलाई', - 'अगस्त', 'सितम्बर', 'अक्तूबर', - 'नवम्बर', 'दिसम्बर'], + 'अप्रैल', 'मई', 'जून', 'जुलाई', + 'अगस्त', 'सितम्बर', 'अक्तूबर', + 'नवम्बर', 'दिसम्बर'], STANDALONEMONTHS: ['जनवरी', 'फरवरी', 'मार्च', - 'अप्रैल', 'मई', 'जून', 'जुलाई', - 'अगस्त', 'सितम्बर', 'अक्तूबर', - 'नवम्बर', 'दिसम्बर'], + 'अप्रैल', 'मई', 'जून', 'जुलाई', + 'अगस्त', 'सितम्बर', 'अक्तूबर', + 'नवम्बर', 'दिसम्बर'], SHORTMONTHS: ['जनवरी', 'फरवरी', 'मार्च', - 'अप्रैल', 'मई', 'जून', 'जुलाई', - 'अगस्त', 'सितम्बर', 'अक्तूबर', - 'नवम्बर', 'दिसम्बर'], + 'अप्रैल', 'मई', 'जून', 'जुलाई', + 'अगस्त', 'सितम्बर', 'अक्तूबर', + 'नवम्बर', 'दिसम्बर'], STANDALONESHORTMONTHS: ['जनवरी', 'फरवरी', - 'मार्च', 'अप्रैल', 'मई', 'जून', - 'जुलाई', 'अगस्त', 'सितम्बर', - 'अक्तूबर', 'नवम्बर', 'दिसम्बर'], + 'मार्च', 'अप्रैल', 'मई', 'जून', + 'जुलाई', 'अगस्त', 'सितम्बर', + 'अक्तूबर', 'नवम्बर', 'दिसम्बर'], WEEKDAYS: ['रविवार', 'सोमवार', - 'मंगलवार', 'बुधवार', - 'बृहस्पतिवार', 'शुक्रवार', - 'शनिवार'], + 'मंगलवार', 'बुधवार', + 'बृहस्पतिवार', 'शुक्रवार', + 'शनिवार'], STANDALONEWEEKDAYS: ['रविवार', 'सोमवार', - 'मंगलवार', 'बुधवार', - 'बृहस्पतिवार', 'शुक्रवार', - 'शनिवार'], + 'मंगलवार', 'बुधवार', + 'बृहस्पतिवार', 'शुक्रवार', + 'शनिवार'], SHORTWEEKDAYS: ['रवि.', 'सोम.', 'मंगल.', 'बुध.', - 'बृह.', 'शुक्र.', 'शनि.'], + 'बृह.', 'शुक्र.', 'शनि.'], STANDALONESHORTWEEKDAYS: ['रवि.', 'सोम.', 'मंगल.', - 'बुध.', 'बृह.', 'शुक्र.', 'शनि.'], + 'बुध.', 'बृह.', 'शुक्र.', 'शनि.'], NARROWWEEKDAYS: ['र', 'सो', 'मं', 'बु', 'गु', 'शु', - 'श'], + 'श'], STANDALONENARROWWEEKDAYS: ['र', 'सो', 'मं', 'बु', 'गु', - 'शु', 'श'], + 'शु', 'श'], SHORTQUARTERS: ['तिमाही', 'दूसरी तिमाही', - 'तीसरी तिमाही', 'चौथी तिमाही'], + 'तीसरी तिमाही', 'चौथी तिमाही'], QUARTERS: ['तिमाही', 'दूसरी तिमाही', - 'तीसरी तिमाही', 'चौथी तिमाही'], + 'तीसरी तिमाही', 'चौथी तिमाही'], AMPMS: ['am', 'pm'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'dd-MM-yyyy', 'd-M-yy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'dd-MM-y', 'd-M-yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [6, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -1580,22 +1667,21 @@ goog.i18n.DateTimeSymbols_hr = { ERAS: ['p. n. e.', 'A. D.'], ERANAMES: ['Prije Krista', 'Poslije Krista'], NARROWMONTHS: ['1.', '2.', '3.', '4.', '5.', '6.', '7.', '8.', '9.', '10.', - '11.', '12.'], + '11.', '12.'], STANDALONENARROWMONTHS: ['1.', '2.', '3.', '4.', '5.', '6.', '7.', '8.', '9.', - '10.', '11.', '12.'], + '10.', '11.', '12.'], MONTHS: ['siječnja', 'veljače', 'ožujka', 'travnja', 'svibnja', 'lipnja', - 'srpnja', 'kolovoza', 'rujna', 'listopada', 'studenoga', 'prosinca'], + 'srpnja', 'kolovoza', 'rujna', 'listopada', 'studenoga', 'prosinca'], STANDALONEMONTHS: ['siječanj', 'veljača', 'ožujak', 'travanj', 'svibanj', - 'lipanj', 'srpanj', 'kolovoz', 'rujan', 'listopad', 'studeni', - 'prosinac'], + 'lipanj', 'srpanj', 'kolovoz', 'rujan', 'listopad', 'studeni', 'prosinac'], SHORTMONTHS: ['sij', 'velj', 'ožu', 'tra', 'svi', 'lip', 'srp', 'kol', 'ruj', - 'lis', 'stu', 'pro'], + 'lis', 'stu', 'pro'], STANDALONESHORTMONTHS: ['sij', 'velj', 'ožu', 'tra', 'svi', 'lip', 'srp', - 'kol', 'ruj', 'lis', 'stu', 'pro'], + 'kol', 'ruj', 'lis', 'stu', 'pro'], WEEKDAYS: ['nedjelja', 'ponedjeljak', 'utorak', 'srijeda', 'četvrtak', - 'petak', 'subota'], + 'petak', 'subota'], STANDALONEWEEKDAYS: ['nedjelja', 'ponedjeljak', 'utorak', 'srijeda', - 'četvrtak', 'petak', 'subota'], + 'četvrtak', 'petak', 'subota'], SHORTWEEKDAYS: ['ned', 'pon', 'uto', 'sri', 'čet', 'pet', 'sub'], STANDALONESHORTWEEKDAYS: ['ned', 'pon', 'uto', 'sri', 'čet', 'pet', 'sub'], NARROWWEEKDAYS: ['N', 'P', 'U', 'S', 'Č', 'P', 'S'], @@ -1605,6 +1691,7 @@ goog.i18n.DateTimeSymbols_hr = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, d. MMMM y.', 'd. MMMM y.', 'd. M. y.', 'd.M.y.'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -1619,30 +1706,31 @@ goog.i18n.DateTimeSymbols_hu = { ERANAMES: ['időszámításunk előtt', 'időszámításunk szerint'], NARROWMONTHS: ['J', 'F', 'M', 'Á', 'M', 'J', 'J', 'Á', 'Sz', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'Á', 'M', 'J', 'J', 'A', 'Sz', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['január', 'február', 'március', 'április', 'május', 'június', - 'július', 'augusztus', 'szeptember', 'október', 'november', 'december'], + 'július', 'augusztus', 'szeptember', 'október', 'november', 'december'], STANDALONEMONTHS: ['január', 'február', 'március', 'április', 'május', - 'június', 'július', 'augusztus', 'szeptember', 'október', 'november', - 'december'], + 'június', 'július', 'augusztus', 'szeptember', 'október', 'november', + 'december'], SHORTMONTHS: ['jan.', 'febr.', 'márc.', 'ápr.', 'máj.', 'jún.', 'júl.', - 'aug.', 'szept.', 'okt.', 'nov.', 'dec.'], + 'aug.', 'szept.', 'okt.', 'nov.', 'dec.'], STANDALONESHORTMONTHS: ['jan.', 'febr.', 'márc.', 'ápr.', 'máj.', 'jún.', - 'júl.', 'aug.', 'szept.', 'okt.', 'nov.', 'dec.'], + 'júl.', 'aug.', 'szept.', 'okt.', 'nov.', 'dec.'], WEEKDAYS: ['vasárnap', 'hétfő', 'kedd', 'szerda', 'csütörtök', - 'péntek', 'szombat'], + 'péntek', 'szombat'], STANDALONEWEEKDAYS: ['vasárnap', 'hétfő', 'kedd', 'szerda', 'csütörtök', - 'péntek', 'szombat'], + 'péntek', 'szombat'], SHORTWEEKDAYS: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'], STANDALONESHORTWEEKDAYS: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'], NARROWWEEKDAYS: ['V', 'H', 'K', 'Sz', 'Cs', 'P', 'Sz'], STANDALONENARROWWEEKDAYS: ['V', 'H', 'K', 'Sz', 'Cs', 'P', 'Sz'], SHORTQUARTERS: ['N1', 'N2', 'N3', 'N4'], QUARTERS: ['I. negyedév', 'II. negyedév', 'III. negyedév', - 'IV. negyedév'], + 'IV. negyedév'], AMPMS: ['de.', 'du.'], - DATEFORMATS: ['y. MMMM d., EEEE', 'y. MMMM d.', 'yyyy.MM.dd.', 'yyyy.MM.dd.'], + DATEFORMATS: ['y. MMMM d., EEEE', 'y. MMMM d.', 'y.MM.dd.', 'y.MM.dd.'], TIMEFORMATS: ['H:mm:ss zzzz', 'H:mm:ss z', 'H:mm:ss', 'H:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -1657,28 +1745,28 @@ goog.i18n.DateTimeSymbols_id = { ERANAMES: ['SM', 'M'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', - 'Agustus', 'September', 'Oktober', 'November', 'Desember'], + 'Agustus', 'September', 'Oktober', 'November', 'Desember'], STANDALONEMONTHS: ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', - 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember'], + 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Agt', 'Sep', - 'Okt', 'Nov', 'Des'], + 'Okt', 'Nov', 'Des'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', - 'Agt', 'Sep', 'Okt', 'Nov', 'Des'], + 'Agt', 'Sep', 'Okt', 'Nov', 'Des'], WEEKDAYS: ['Minggu', 'Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', 'Sabtu'], STANDALONEWEEKDAYS: ['Minggu', 'Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', - 'Sabtu'], + 'Sabtu'], SHORTWEEKDAYS: ['Min', 'Sen', 'Sel', 'Rab', 'Kam', 'Jum', 'Sab'], STANDALONESHORTWEEKDAYS: ['Min', 'Sen', 'Sel', 'Rab', 'Kam', 'Jum', 'Sab'], NARROWWEEKDAYS: ['M', 'S', 'S', 'R', 'K', 'J', 'S'], STANDALONENARROWWEEKDAYS: ['M', 'S', 'S', 'R', 'K', 'J', 'S'], SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], - QUARTERS: ['kuartal pertama', 'kuartal kedua', 'kuartal ketiga', - 'kuartal keempat'], + QUARTERS: ['Kuartal ke-1', 'Kuartal ke-2', 'Kuartal ke-3', 'Kuartal ke-4'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, dd MMMM yyyy', 'd MMMM yyyy', 'd MMM yyyy', 'dd/MM/yy'], - TIMEFORMATS: ['H:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATEFORMATS: ['EEEE, dd MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + TIMEFORMATS: ['HH.mm.ss zzzz', 'HH.mm.ss z', 'HH.mm.ss', 'HH.mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -1693,28 +1781,28 @@ goog.i18n.DateTimeSymbols_in = { ERANAMES: ['SM', 'M'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', - 'Agustus', 'September', 'Oktober', 'November', 'Desember'], + 'Agustus', 'September', 'Oktober', 'November', 'Desember'], STANDALONEMONTHS: ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', - 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember'], + 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Agt', 'Sep', - 'Okt', 'Nov', 'Des'], + 'Okt', 'Nov', 'Des'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', - 'Agt', 'Sep', 'Okt', 'Nov', 'Des'], + 'Agt', 'Sep', 'Okt', 'Nov', 'Des'], WEEKDAYS: ['Minggu', 'Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', 'Sabtu'], STANDALONEWEEKDAYS: ['Minggu', 'Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', - 'Sabtu'], + 'Sabtu'], SHORTWEEKDAYS: ['Min', 'Sen', 'Sel', 'Rab', 'Kam', 'Jum', 'Sab'], STANDALONESHORTWEEKDAYS: ['Min', 'Sen', 'Sel', 'Rab', 'Kam', 'Jum', 'Sab'], NARROWWEEKDAYS: ['M', 'S', 'S', 'R', 'K', 'J', 'S'], STANDALONENARROWWEEKDAYS: ['M', 'S', 'S', 'R', 'K', 'J', 'S'], SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], - QUARTERS: ['kuartal pertama', 'kuartal kedua', 'kuartal ketiga', - 'kuartal keempat'], + QUARTERS: ['Kuartal ke-1', 'Kuartal ke-2', 'Kuartal ke-3', 'Kuartal ke-4'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, dd MMMM yyyy', 'd MMMM yyyy', 'd MMM yyyy', 'dd/MM/yy'], - TIMEFORMATS: ['H:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATEFORMATS: ['EEEE, dd MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + TIMEFORMATS: ['HH.mm.ss zzzz', 'HH.mm.ss z', 'HH.mm.ss', 'HH.mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -1725,34 +1813,35 @@ goog.i18n.DateTimeSymbols_in = { * Date/time formatting symbols for locale is. */ goog.i18n.DateTimeSymbols_is = { - ERAS: ['fyrir Krist', 'eftir Krist'], + ERAS: ['f.Kr.', 'e.Kr.'], ERANAMES: ['fyrir Krist', 'eftir Krist'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'Á', 'L', 'O', 'N', 'D'], - STANDALONENARROWMONTHS: ['j', 'f', 'm', 'a', 'm', 'j', 'j', 'á', 's', 'o', - 'n', 'd'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'Á', 'S', 'O', + 'N', 'D'], MONTHS: ['janúar', 'febrúar', 'mars', 'apríl', 'maí', 'júní', 'júlí', - 'ágúst', 'september', 'október', 'nóvember', 'desember'], + 'ágúst', 'september', 'október', 'nóvember', 'desember'], STANDALONEMONTHS: ['janúar', 'febrúar', 'mars', 'apríl', 'maí', 'júní', - 'júlí', 'ágúst', 'september', 'október', 'nóvember', 'desember'], + 'júlí', 'ágúst', 'september', 'október', 'nóvember', 'desember'], SHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'maí', 'jún', 'júl', 'ágú', - 'sep', 'okt', 'nóv', 'des'], + 'sep', 'okt', 'nóv', 'des'], STANDALONESHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'maí', 'jún', 'júl', - 'ágú', 'sep', 'okt', 'nóv', 'des'], + 'ágú', 'sep', 'okt', 'nóv', 'des'], WEEKDAYS: ['sunnudagur', 'mánudagur', 'þriðjudagur', 'miðvikudagur', - 'fimmtudagur', 'föstudagur', 'laugardagur'], + 'fimmtudagur', 'föstudagur', 'laugardagur'], STANDALONEWEEKDAYS: ['sunnudagur', 'mánudagur', 'þriðjudagur', - 'miðvikudagur', 'fimmtudagur', 'föstudagur', 'laugardagur'], + 'miðvikudagur', 'fimmtudagur', 'föstudagur', 'laugardagur'], SHORTWEEKDAYS: ['sun', 'mán', 'þri', 'mið', 'fim', 'fös', 'lau'], STANDALONESHORTWEEKDAYS: ['sun', 'mán', 'þri', 'mið', 'fim', 'fös', - 'lau'], + 'lau'], NARROWWEEKDAYS: ['S', 'M', 'Þ', 'M', 'F', 'F', 'L'], - STANDALONENARROWWEEKDAYS: ['s', 'm', 'þ', 'm', 'f', 'f', 'l'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'þ', 'M', 'F', 'F', 'L'], SHORTQUARTERS: ['F1', 'F2', 'F3', 'F4'], - QUARTERS: ['1st fjórðungur', '2nd fjórðungur', '3rd fjórðungur', - '4th fjórðungur'], + QUARTERS: ['1. fjórðungur', '2. fjórðungur', '3. fjórðungur', + '4. fjórðungur'], AMPMS: ['f.h.', 'e.h.'], - DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'd.M.yyyy', 'd.M.yyyy'], + DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'd.M.y', 'd.M.y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -1764,32 +1853,33 @@ goog.i18n.DateTimeSymbols_is = { */ goog.i18n.DateTimeSymbols_it = { ERAS: ['aC', 'dC'], - ERANAMES: ['a.C.', 'd.C'], + ERANAMES: ['a.C.', 'd.C.'], /* manual fix */ NARROWMONTHS: ['G', 'F', 'M', 'A', 'M', 'G', 'L', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['G', 'F', 'M', 'A', 'M', 'G', 'L', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['gennaio', 'febbraio', 'marzo', 'aprile', 'maggio', 'giugno', - 'luglio', 'agosto', 'settembre', 'ottobre', 'novembre', 'dicembre'], + 'luglio', 'agosto', 'settembre', 'ottobre', 'novembre', 'dicembre'], STANDALONEMONTHS: ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', - 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', - 'Dicembre'], + 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', + 'Dicembre'], SHORTMONTHS: ['gen', 'feb', 'mar', 'apr', 'mag', 'giu', 'lug', 'ago', 'set', - 'ott', 'nov', 'dic'], + 'ott', 'nov', 'dic'], STANDALONESHORTMONTHS: ['gen', 'feb', 'mar', 'apr', 'mag', 'giu', 'lug', - 'ago', 'set', 'ott', 'nov', 'dic'], + 'ago', 'set', 'ott', 'nov', 'dic'], WEEKDAYS: ['domenica', 'lunedì', 'martedì', 'mercoledì', 'giovedì', - 'venerdì', 'sabato'], + 'venerdì', 'sabato'], STANDALONEWEEKDAYS: ['Domenica', 'Lunedì', 'Martedì', 'Mercoledì', - 'Giovedì', 'Venerdì', 'Sabato'], + 'Giovedì', 'Venerdì', 'Sabato'], SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab'], STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'G', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'G', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1o trimestre', '2o trimestre', '3o trimestre', '4o trimestre'], - AMPMS: ['m.', 'p.'], + AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE d MMMM y', 'dd MMMM y', 'dd/MMM/y', 'dd/MM/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -1804,36 +1894,38 @@ goog.i18n.DateTimeSymbols_iw = { ERANAMES: ['לפני הספירה', 'לספירה'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['ינואר', 'פברואר', 'מרץ', 'אפריל', 'מאי', - 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', 'אוקטובר', - 'נובמבר', 'דצמבר'], + 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', 'אוקטובר', + 'נובמבר', 'דצמבר'], STANDALONEMONTHS: ['ינואר', 'פברואר', 'מרץ', 'אפריל', - 'מאי', 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', - 'אוקטובר', 'נובמבר', 'דצמבר'], + 'מאי', 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', + 'אוקטובר', 'נובמבר', 'דצמבר'], SHORTMONTHS: ['ינו', 'פבר', 'מרץ', 'אפר', 'מאי', 'יונ', - 'יול', 'אוג', 'ספט', 'אוק', 'נוב', 'דצמ'], + 'יול', 'אוג', 'ספט', 'אוק', 'נוב', 'דצמ'], STANDALONESHORTMONTHS: ['ינו׳', 'פבר׳', 'מרץ', 'אפר׳', - 'מאי', 'יונ׳', 'יול׳', 'אוג׳', 'ספט׳', 'אוק׳', - 'נוב׳', 'דצמ׳'], + 'מאי', 'יונ׳', 'יול׳', 'אוג׳', 'ספט׳', 'אוק׳', + 'נוב׳', 'דצמ׳'], WEEKDAYS: ['יום ראשון', 'יום שני', 'יום שלישי', - 'יום רביעי', 'יום חמישי', 'יום שישי', - 'יום שבת'], + 'יום רביעי', 'יום חמישי', 'יום שישי', + 'יום שבת'], STANDALONEWEEKDAYS: ['יום ראשון', 'יום שני', - 'יום שלישי', 'יום רביעי', 'יום חמישי', - 'יום שישי', 'יום שבת'], + 'יום שלישי', 'יום רביעי', 'יום חמישי', + 'יום שישי', 'יום שבת'], SHORTWEEKDAYS: ['יום א׳', 'יום ב׳', 'יום ג׳', 'יום ד׳', - 'יום ה׳', 'יום ו׳', 'שבת'], + 'יום ה׳', 'יום ו׳', 'שבת'], STANDALONESHORTWEEKDAYS: ['יום א׳', 'יום ב׳', 'יום ג׳', - 'יום ד׳', 'יום ה׳', 'יום ו׳', 'שבת'], - NARROWWEEKDAYS: ['א', 'ב', 'ג', 'ד', 'ה', 'ו', 'ש'], - STANDALONENARROWWEEKDAYS: ['א', 'ב', 'ג', 'ד', 'ה', 'ו', 'ש'], + 'יום ד׳', 'יום ה׳', 'יום ו׳', 'שבת'], + NARROWWEEKDAYS: ['א\'', 'ב\'', 'ג\'', 'ד\'', 'ה\'', 'ו׳', 'ש׳'], + STANDALONENARROWWEEKDAYS: ['א׳', 'ב׳', 'ג׳', 'ד׳', 'ה׳', 'ו', + 'ש'], SHORTQUARTERS: ['רבעון 1', 'רבעון 2', 'רבעון 3', - 'רבעון 4'], + 'רבעון 4'], QUARTERS: ['רבעון 1', 'רבעון 2', 'רבעון 3', 'רבעון 4'], AMPMS: ['לפנה״צ', 'אחה״צ'], - DATEFORMATS: ['EEEE, d בMMMM y', 'd בMMMM y', 'd בMMM yyyy', 'dd/MM/yy'], + DATEFORMATS: ['EEEE, d בMMMM y', 'd בMMMM y', 'd בMMM y', 'dd/MM/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [4, 5], FIRSTWEEKCUTOFFDAY: 5 @@ -1848,29 +1940,30 @@ goog.i18n.DateTimeSymbols_ja = { ERANAMES: ['紀元前', '西暦'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', - '9月', '10月', '11月', '12月'], + '9月', '10月', '11月', '12月'], STANDALONEMONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', - '8月', '9月', '10月', '11月', '12月'], + '8月', '9月', '10月', '11月', '12月'], SHORTMONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', - '9月', '10月', '11月', '12月'], + '9月', '10月', '11月', '12月'], STANDALONESHORTMONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', - '7月', '8月', '9月', '10月', '11月', '12月'], + '7月', '8月', '9月', '10月', '11月', '12月'], WEEKDAYS: ['日曜日', '月曜日', '火曜日', '水曜日', '木曜日', - '金曜日', '土曜日'], + '金曜日', '土曜日'], STANDALONEWEEKDAYS: ['日曜日', '月曜日', '火曜日', '水曜日', - '木曜日', '金曜日', '土曜日'], + '木曜日', '金曜日', '土曜日'], SHORTWEEKDAYS: ['日', '月', '火', '水', '木', '金', '土'], STANDALONESHORTWEEKDAYS: ['日', '月', '火', '水', '木', '金', '土'], NARROWWEEKDAYS: ['日', '月', '火', '水', '木', '金', '土'], STANDALONENARROWWEEKDAYS: ['日', '月', '火', '水', '木', '金', '土'], - SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + SHORTQUARTERS: ['1Q', '2Q', '3Q', '4Q'], QUARTERS: ['第1四半期', '第2四半期', '第3四半期', - '第4四半期'], + '第4四半期'], AMPMS: ['午前', '午後'], - DATEFORMATS: ['y年M月d日EEEE', 'y年M月d日', 'yyyy/MM/dd', 'yyyy/MM/dd'], + DATEFORMATS: ['y年M月d日EEEE', 'y年M月d日', 'y/MM/dd', 'y/MM/dd'], TIMEFORMATS: ['H時mm分ss秒 zzzz', 'H:mm:ss z', 'H:mm:ss', 'H:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -1883,51 +1976,50 @@ goog.i18n.DateTimeSymbols_ja = { goog.i18n.DateTimeSymbols_kn = { ERAS: ['ಕ್ರಿ.ಪೂ', 'ಜಾಹೀ'], ERANAMES: ['ಈಸಪೂವ೯.', 'ಕ್ರಿಸ್ತ ಶಕ'], - NARROWMONTHS: ['ಜ', 'ಫೆ', 'ಮಾ', 'ಎ', 'ಮೇ', 'ಜೂ', 'ಜು', - 'ಆ', 'ಸೆ', 'ಅ', 'ನ', 'ಡಿ'], + NARROWMONTHS: ['ಜ', 'ಫೆ', 'ಮಾ', 'ಏ', 'ಮೇ', 'ಜೂ', 'ಜು', + 'ಆ', 'ಸೆ', 'ಅ', 'ನ', 'ಡಿ'], STANDALONENARROWMONTHS: ['ಜ', 'ಫೆ', 'ಮಾ', 'ಎ', 'ಮೇ', 'ಜೂ', - 'ಜು', 'ಆ', 'ಸೆ', 'ಅ', 'ನ', 'ಡಿ'], + 'ಜು', 'ಆ', 'ಸೆ', 'ಅ', 'ನ', 'ಡಿ'], MONTHS: ['ಜನವರೀ', 'ಫೆಬ್ರವರೀ', 'ಮಾರ್ಚ್', - 'ಎಪ್ರಿಲ್', 'ಮೆ', 'ಜೂನ್', 'ಜುಲೈ', - 'ಆಗಸ್ಟ್', 'ಸಪ್ಟೆಂಬರ್', - 'ಅಕ್ಟೋಬರ್', 'ನವೆಂಬರ್', - 'ಡಿಸೆಂಬರ್'], + 'ಎಪ್ರಿಲ್', 'ಮೆ', 'ಜೂನ್', 'ಜುಲೈ', + 'ಆಗಸ್ಟ್', 'ಸಪ್ಟೆಂಬರ್', + 'ಅಕ್ಟೋಬರ್', 'ನವೆಂಬರ್', + 'ಡಿಸೆಂಬರ್'], STANDALONEMONTHS: ['ಜನವರೀ', 'ಫೆಬ್ರವರೀ', - 'ಮಾರ್ಚ್', 'ಎಪ್ರಿಲ್', 'ಮೆ', 'ಜೂನ್', - 'ಜುಲೈ', 'ಆಗಸ್ಟ್', 'ಸಪ್ಟೆಂಬರ್', - 'ಅಕ್ಟೋಬರ್', 'ನವೆಂಬರ್', - 'ಡಿಸೆಂಬರ್'], - SHORTMONTHS: ['ಜನವರೀ', 'ಫೆಬ್ರವರೀ', - 'ಮಾರ್ಚ್', 'ಎಪ್ರಿಲ್', 'ಮೆ', 'ಜೂನ್', - 'ಜುಲೈ', 'ಆಗಸ್ಟ್', 'ಸಪ್ಟೆಂಬರ್', - 'ಅಕ್ಟೋಬರ್', 'ನವೆಂಬರ್', - 'ಡಿಸೆಂಬರ್'], - STANDALONESHORTMONTHS: ['ಜನವರೀ', 'ಫೆಬ್ರವರೀ', - 'ಮಾರ್ಚ್', 'ಎಪ್ರಿಲ್', 'ಮೆ', 'ಜೂನ್', - 'ಜುಲೈ', 'ಆಗಸ್ಟ್', 'ಸಪ್ಟೆಂಬರ್', - 'ಅಕ್ಟೋಬರ್', 'ನವೆಂಬರ್', - 'ಡಿಸೆಂಬರ್'], + 'ಮಾರ್ಚ್', 'ಎಪ್ರಿಲ್', 'ಮೆ', 'ಜೂನ್', + 'ಜುಲೈ', 'ಆಗಸ್ಟ್', 'ಸಪ್ಟೆಂಬರ್', + 'ಅಕ್ಟೋಬರ್', 'ನವೆಂಬರ್', + 'ಡಿಸೆಂಬರ್'], + SHORTMONTHS: ['ಜನವರಿ', 'ಫೆಬ್ರುವರಿ', + 'ಮಾರ್ಚ್', 'ಏಪ್ರಿಲ್‌‌', 'ಮೇ', + 'ಜೂನ್', 'ಜುಲೈ', 'ಆಗಸ್ಟ್', + 'ಸೆಪ್ಟೆಂಬರ್‌', 'ಅಕ್ಟೋಬರ್', + 'ನವೆಂಬರ್', 'ಡಿಸೆಂಬರ್'], + STANDALONESHORTMONTHS: ['ಜನವರಿ', 'ಫೆಬ್ರುವರಿ', + 'ಮಾರ್ಚ್', 'ಏಪ್ರಿಲ್‌‌', 'ಮೇ', + 'ಜೂನ್', 'ಜುಲೈ', 'ಆಗಸ್ಟ್', + 'ಸೆಪ್ಟೆಂಬರ್‌', 'ಅಕ್ಟೋಬರ್', + 'ನವೆಂಬರ್', 'ಡಿಸೆಂಬರ್'], WEEKDAYS: ['ರವಿವಾರ', 'ಸೋಮವಾರ', - 'ಮಂಗಳವಾರ', 'ಬುಧವಾರ', 'ಗುರುವಾರ', - 'ಶುಕ್ರವಾರ', 'ಶನಿವಾರ'], + 'ಮಂಗಳವಾರ', 'ಬುಧವಾರ', 'ಗುರುವಾರ', + 'ಶುಕ್ರವಾರ', 'ಶನಿವಾರ'], STANDALONEWEEKDAYS: ['ರವಿವಾರ', 'ಸೋಮವಾರ', - 'ಮಂಗಳವಾರ', 'ಬುಧವಾರ', 'ಗುರುವಾರ', - 'ಶುಕ್ರವಾರ', 'ಶನಿವಾರ'], + 'ಮಂಗಳವಾರ', 'ಬುಧವಾರ', 'ಗುರುವಾರ', + 'ಶುಕ್ರವಾರ', 'ಶನಿವಾರ'], SHORTWEEKDAYS: ['ರ.', 'ಸೋ.', 'ಮಂ.', 'ಬು.', 'ಗು.', 'ಶು.', - 'ಶನಿ.'], + 'ಶನಿ.'], STANDALONESHORTWEEKDAYS: ['ರ.', 'ಸೋ.', 'ಮಂ.', 'ಬು.', 'ಗು.', - 'ಶು.', 'ಶನಿ.'], + 'ಶು.', 'ಶನಿ.'], NARROWWEEKDAYS: ['ರ', 'ಸೋ', 'ಮಂ', 'ಬು', 'ಗು', 'ಶು', - 'ಶ'], + 'ಶ'], STANDALONENARROWWEEKDAYS: ['ರ', 'ಸೋ', 'ಮಂ', 'ಬು', 'ಗು', - 'ಶು', 'ಶ'], - SHORTQUARTERS: ['ಒಂದು 1', 'ಎರಡು 2', 'ಮೂರು 3', - 'ನಾಲೃಕ 4'], - QUARTERS: ['ಒಂದು 1', 'ಎರಡು 2', 'ಮೂರು 3', - 'ನಾಲೃಕ 4'], - AMPMS: ['am', 'pm'], + 'ಶು', 'ಶ'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd-M-yy'], TIMEFORMATS: ['hh:mm:ss a zzzz', 'hh:mm:ss a z', 'hh:mm:ss a', 'hh:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [6, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -1941,33 +2033,34 @@ goog.i18n.DateTimeSymbols_ko = { ERAS: ['기원전', '서기'], ERANAMES: ['서력기원전', '서력기원'], NARROWMONTHS: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', - '9월', '10월', '11월', '12월'], + '9월', '10월', '11월', '12월'], STANDALONENARROWMONTHS: ['1월', '2월', '3월', '4월', '5월', '6월', - '7월', '8월', '9월', '10월', '11월', '12월'], + '7월', '8월', '9월', '10월', '11월', '12월'], MONTHS: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', - '9월', '10월', '11월', '12월'], + '9월', '10월', '11월', '12월'], STANDALONEMONTHS: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', - '8월', '9월', '10월', '11월', '12월'], + '8월', '9월', '10월', '11월', '12월'], SHORTMONTHS: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', - '9월', '10월', '11월', '12월'], + '9월', '10월', '11월', '12월'], STANDALONESHORTMONTHS: ['1월', '2월', '3월', '4월', '5월', '6월', - '7월', '8월', '9월', '10월', '11월', '12월'], + '7월', '8월', '9월', '10월', '11월', '12월'], WEEKDAYS: ['일요일', '월요일', '화요일', '수요일', '목요일', - '금요일', '토요일'], + '금요일', '토요일'], STANDALONEWEEKDAYS: ['일요일', '월요일', '화요일', '수요일', - '목요일', '금요일', '토요일'], + '목요일', '금요일', '토요일'], SHORTWEEKDAYS: ['일', '월', '화', '수', '목', '금', '토'], STANDALONESHORTWEEKDAYS: ['일', '월', '화', '수', '목', '금', '토'], NARROWWEEKDAYS: ['일', '월', '화', '수', '목', '금', '토'], STANDALONENARROWWEEKDAYS: ['일', '월', '화', '수', '목', '금', '토'], SHORTQUARTERS: ['1분기', '2분기', '3분기', '4분기'], QUARTERS: ['제 1/4분기', '제 2/4분기', '제 3/4분기', - '제 4/4분기'], + '제 4/4분기'], AMPMS: ['오전', '오후'], - DATEFORMATS: ['y년 M월 d일 EEEE', 'y년 M월 d일', 'yyyy. M. d.', - 'yy. M. d.'], + DATEFORMATS: ['y년 M월 d일 EEEE', 'y년 M월 d일', 'y. M. d.', + 'yy. M. d.'], TIMEFORMATS: ['a h시 m분 s초 zzzz', 'a h시 m분 s초 z', 'a h:mm:ss', - 'a h:mm'], + 'a h:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -1982,37 +2075,38 @@ goog.i18n.DateTimeSymbols_ln = { ERANAMES: ['Yambo ya Yézu Krís', 'Nsima ya Yézu Krís'], NARROWMONTHS: ['y', 'f', 'm', 'a', 'm', 'y', 'y', 'a', 's', 'ɔ', 'n', 'd'], STANDALONENARROWMONTHS: ['y', 'f', 'm', 'a', 'm', 'y', 'y', 'a', 's', 'ɔ', - 'n', 'd'], + 'n', 'd'], MONTHS: ['sánzá ya yambo', 'sánzá ya míbalé', 'sánzá ya mísáto', - 'sánzá ya mínei', 'sánzá ya mítáno', 'sánzá ya motóbá', - 'sánzá ya nsambo', 'sánzá ya mwambe', 'sánzá ya libwa', - 'sánzá ya zómi', 'sánzá ya zómi na mɔ̌kɔ́', - 'sánzá ya zómi na míbalé'], + 'sánzá ya mínei', 'sánzá ya mítáno', 'sánzá ya motóbá', + 'sánzá ya nsambo', 'sánzá ya mwambe', 'sánzá ya libwa', + 'sánzá ya zómi', 'sánzá ya zómi na mɔ̌kɔ́', + 'sánzá ya zómi na míbalé'], STANDALONEMONTHS: ['sánzá ya yambo', 'sánzá ya míbalé', - 'sánzá ya mísáto', 'sánzá ya mínei', 'sánzá ya mítáno', - 'sánzá ya motóbá', 'sánzá ya nsambo', 'sánzá ya mwambe', - 'sánzá ya libwa', 'sánzá ya zómi', 'sánzá ya zómi na mɔ̌kɔ́', - 'sánzá ya zómi na míbalé'], + 'sánzá ya mísáto', 'sánzá ya mínei', 'sánzá ya mítáno', + 'sánzá ya motóbá', 'sánzá ya nsambo', 'sánzá ya mwambe', + 'sánzá ya libwa', 'sánzá ya zómi', 'sánzá ya zómi na mɔ̌kɔ́', + 'sánzá ya zómi na míbalé'], SHORTMONTHS: ['yan', 'fbl', 'msi', 'apl', 'mai', 'yun', 'yul', 'agt', 'stb', - 'ɔtb', 'nvb', 'dsb'], + 'ɔtb', 'nvb', 'dsb'], STANDALONESHORTMONTHS: ['yan', 'fbl', 'msi', 'apl', 'mai', 'yun', 'yul', - 'agt', 'stb', 'ɔtb', 'nvb', 'dsb'], + 'agt', 'stb', 'ɔtb', 'nvb', 'dsb'], WEEKDAYS: ['eyenga', 'mokɔlɔ mwa yambo', 'mokɔlɔ mwa míbalé', - 'mokɔlɔ mwa mísáto', 'mokɔlɔ ya mínéi', 'mokɔlɔ ya mítáno', - 'mpɔ́sɔ'], + 'mokɔlɔ mwa mísáto', 'mokɔlɔ ya mínéi', 'mokɔlɔ ya mítáno', + 'mpɔ́sɔ'], STANDALONEWEEKDAYS: ['eyenga', 'mokɔlɔ mwa yambo', 'mokɔlɔ mwa míbalé', - 'mokɔlɔ mwa mísáto', 'mokɔlɔ ya mínéi', 'mokɔlɔ ya mítáno', - 'mpɔ́sɔ'], + 'mokɔlɔ mwa mísáto', 'mokɔlɔ ya mínéi', 'mokɔlɔ ya mítáno', + 'mpɔ́sɔ'], SHORTWEEKDAYS: ['eye', 'ybo', 'mbl', 'mst', 'min', 'mtn', 'mps'], STANDALONESHORTWEEKDAYS: ['eye', 'ybo', 'mbl', 'mst', 'min', 'mtn', 'mps'], NARROWWEEKDAYS: ['e', 'y', 'm', 'm', 'm', 'm', 'p'], STANDALONENARROWWEEKDAYS: ['e', 'y', 'm', 'm', 'm', 'm', 'p'], SHORTQUARTERS: ['SM1', 'SM2', 'SM3', 'SM4'], QUARTERS: ['sánzá mísáto ya yambo', 'sánzá mísáto ya míbalé', - 'sánzá mísáto ya mísáto', 'sánzá mísáto ya mínei'], + 'sánzá mísáto ya mísáto', 'sánzá mísáto ya mínei'], AMPMS: ['ntɔ́ngɔ́', 'mpókwa'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/yyyy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -2027,30 +2121,31 @@ goog.i18n.DateTimeSymbols_lt = { ERANAMES: ['prieš Kristų', 'po Kristaus'], NARROWMONTHS: ['S', 'V', 'K', 'B', 'G', 'B', 'L', 'R', 'R', 'S', 'L', 'G'], STANDALONENARROWMONTHS: ['S', 'V', 'K', 'B', 'G', 'B', 'L', 'R', 'R', 'S', - 'L', 'G'], - MONTHS: ['sausio', 'vasaris', 'kovas', 'balandis', 'gegužė', 'birželis', - 'liepa', 'rugpjūtis', 'rugsėjis', 'spalis', 'lapkritis', 'gruodis'], - STANDALONEMONTHS: ['Sausis', 'Vasaris', 'Kovas', 'Balandis', 'Gegužė', - 'Birželis', 'Liepa', 'Rugpjūtis', 'Rugsėjis', 'Spalis', 'Lapkritis', - 'Gruodis'], - SHORTMONTHS: ['Saus.', 'Vas', 'Kov.', 'Bal.', 'Geg.', 'Bir.', 'Liep.', - 'Rugp.', 'Rugs.', 'Spal.', 'Lapkr.', 'Gruod.'], - STANDALONESHORTMONTHS: ['Saus.', 'Vas.', 'Kov.', 'Bal.', 'Geg.', 'Bir.', - 'Liep.', 'Rugp.', 'Rugs.', 'Spal.', 'Lapkr.', 'Gruod.'], + 'L', 'G'], + MONTHS: ['sausis', 'vasaris', 'kovas', 'balandis', 'gegužė', 'birželis', + 'liepa', 'rugpjūtis', 'rugsėjis', 'spalis', 'lapkritis', 'gruodis'], + STANDALONEMONTHS: ['sausis', 'vasaris', 'kovas', 'balandis', 'gegužė', + 'birželis', 'liepa', 'rugpjūtis', 'rugsėjis', 'spalis', 'lapkritis', + 'gruodis'], + SHORTMONTHS: ['saus.', 'vas.', 'kov.', 'bal.', 'geg.', 'birž.', 'liep.', + 'rugp.', 'rugs.', 'spal.', 'lapkr.', 'gruod.'], + STANDALONESHORTMONTHS: ['saus.', 'vas.', 'kov.', 'bal.', 'geg.', 'birž.', + 'liep.', 'rugp.', 'rugs.', 'spal.', 'lapkr.', 'gruod.'], WEEKDAYS: ['sekmadienis', 'pirmadienis', 'antradienis', 'trečiadienis', - 'ketvirtadienis', 'penktadienis', 'šeštadienis'], + 'ketvirtadienis', 'penktadienis', 'šeštadienis'], STANDALONEWEEKDAYS: ['sekmadienis', 'pirmadienis', 'antradienis', - 'trečiadienis', 'ketvirtadienis', 'penktadienis', 'šeštadienis'], - SHORTWEEKDAYS: ['Sk', 'Pr', 'An', 'Tr', 'Kt', 'Pn', 'Št'], - STANDALONESHORTWEEKDAYS: ['Sk', 'Pr', 'An', 'Tr', 'Kt', 'Pn', 'Št'], + 'trečiadienis', 'ketvirtadienis', 'penktadienis', 'šeštadienis'], + SHORTWEEKDAYS: ['sk', 'pr', 'an', 'tr', 'kt', 'pn', 'št'], + STANDALONESHORTWEEKDAYS: ['sk', 'pr', 'an', 'tr', 'kt', 'pn', 'št'], NARROWWEEKDAYS: ['S', 'P', 'A', 'T', 'K', 'P', 'Š'], STANDALONENARROWWEEKDAYS: ['S', 'P', 'A', 'T', 'K', 'P', 'Š'], - SHORTQUARTERS: ['I k.', 'II k.', 'III k.', 'IV ketv.'], + SHORTQUARTERS: ['I k.', 'II k.', 'III k.', 'IV k.'], QUARTERS: ['I ketvirtis', 'II ketvirtis', 'III ketvirtis', 'IV ketvirtis'], AMPMS: ['priešpiet', 'popiet'], DATEFORMATS: ['y \'m\'. MMMM d \'d\'., EEEE', 'y \'m\'. MMMM d \'d\'.', - 'y MMM d', 'yyyy-MM-dd'], + 'y MMM d', 'y-MM-dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -2065,31 +2160,32 @@ goog.i18n.DateTimeSymbols_lv = { ERANAMES: ['pirms mūsu ēras', 'mūsu ērā'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvāris', 'februāris', 'marts', 'aprīlis', 'maijs', 'jūnijs', - 'jūlijs', 'augusts', 'septembris', 'oktobris', 'novembris', 'decembris'], - STANDALONEMONTHS: ['janvāris', 'februāris', 'marts', 'aprīlis', 'maijs', - 'jūnijs', 'jūlijs', 'augusts', 'septembris', 'oktobris', 'novembris', - 'decembris'], + 'jūlijs', 'augusts', 'septembris', 'oktobris', 'novembris', 'decembris'], + STANDALONEMONTHS: ['Janvāris', 'Februāris', 'Marts', 'Aprīlis', 'Maijs', + 'Jūnijs', 'Jūlijs', 'Augusts', 'Septembris', 'Oktobris', 'Novembris', + 'Decembris'], SHORTMONTHS: ['janv.', 'febr.', 'marts', 'apr.', 'maijs', 'jūn.', 'jūl.', - 'aug.', 'sept.', 'okt.', 'nov.', 'dec.'], - STANDALONESHORTMONTHS: ['janv.', 'febr.', 'marts', 'apr.', 'maijs', 'jūn.', - 'jūl.', 'aug.', 'sept.', 'okt.', 'nov.', 'dec.'], + 'aug.', 'sept.', 'okt.', 'nov.', 'dec.'], + STANDALONESHORTMONTHS: ['Janv.', 'Febr.', 'Marts', 'Apr.', 'Maijs', 'Jūn.', + 'Jūl.', 'Aug.', 'Sept.', 'Okt.', 'Nov.', 'Dec.'], WEEKDAYS: ['svētdiena', 'pirmdiena', 'otrdiena', 'trešdiena', 'ceturtdiena', - 'piektdiena', 'sestdiena'], - STANDALONEWEEKDAYS: ['svētdiena', 'pirmdiena', 'otrdiena', 'trešdiena', - 'ceturtdiena', 'piektdiena', 'sestdiena'], + 'piektdiena', 'sestdiena'], + STANDALONEWEEKDAYS: ['Svētdiena', 'Pirmdiena', 'Otrdiena', 'Trešdiena', + 'Ceturtdiena', 'Piektdiena', 'Sestdiena'], SHORTWEEKDAYS: ['Sv', 'Pr', 'Ot', 'Tr', 'Ce', 'Pk', 'Se'], STANDALONESHORTWEEKDAYS: ['Sv', 'Pr', 'Ot', 'Tr', 'Ce', 'Pk', 'Se'], NARROWWEEKDAYS: ['S', 'P', 'O', 'T', 'C', 'P', 'S'], STANDALONENARROWWEEKDAYS: ['S', 'P', 'O', 'T', 'C', 'P', 'S'], SHORTQUARTERS: ['C1', 'C2', 'C3', 'C4'], QUARTERS: ['1. ceturksnis', '2. ceturksnis', '3. ceturksnis', - '4. ceturksnis'], + '4. ceturksnis'], AMPMS: ['priekšpusdienā', 'pēcpusdienā'], DATEFORMATS: ['EEEE, y. \'gada\' d. MMMM', 'y. \'gada\' d. MMMM', - 'y. \'gada\' d. MMM', 'dd.MM.yy'], + 'y. \'gada\' d. MMM', 'dd.MM.yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -2102,54 +2198,52 @@ goog.i18n.DateTimeSymbols_lv = { goog.i18n.DateTimeSymbols_ml = { ERAS: ['ക്രി.മൂ', 'ക്രി.പി.'], ERANAMES: ['ക്രിസ്തുവിനു് മുമ്പ്‌', - 'ക്രിസ്തുവിന് പിന്‍പ്'], + 'ക്രിസ്തുവിന് പിൻപ്'], NARROWMONTHS: ['ജ', 'ഫെ', 'മാ', 'ഏ', 'മേ', 'ജൂ', 'ജൂ', - 'ഓ', 'സെ', 'ഒ', 'ന', 'ഡി'], + 'ഓ', 'സെ', 'ഒ', 'ന', 'ഡി'], STANDALONENARROWMONTHS: ['ജ', 'ഫെ', 'മാ', 'ഏ', 'മേ', 'ജൂ', - 'ജൂ', 'ഓ', 'സെ', 'ഒ', 'ന', 'ഡി'], + 'ജൂ', 'ഓ', 'സെ', 'ഒ', 'ന', 'ഡി'], MONTHS: ['ജനുവരി', 'ഫെബ്രുവരി', - 'മാര്‍ച്ച്', 'ഏപ്രില്‍', 'മേയ്', - 'ജൂണ്‍', 'ജൂലൈ', 'ആഗസ്റ്റ്', - 'സെപ്റ്റംബര്‍', 'ഒക്ടോബര്‍', - 'നവംബര്‍', 'ഡിസംബര്‍'], + 'മാർച്ച്', 'ഏപ്രിൽ', 'മേയ്', 'ജൂൺ', + 'ജൂലൈ', 'ആഗസ്റ്റ്', + 'സെപ്റ്റംബർ', 'ഒക്ടോബർ', + 'നവംബർ', 'ഡിസംബർ'], STANDALONEMONTHS: ['ജനുവരി', 'ഫെബ്രുവരി', - 'മാര്‍ച്ച്', 'ഏപ്രില്‍', 'മേയ്', - 'ജൂണ്‍', 'ജൂലൈ', 'ആഗസ്റ്റ്', - 'സെപ്റ്റംബര്‍', 'ഒക്ടോബര്‍', - 'നവംബര്‍', 'ഡിസംബര്‍'], - SHORTMONTHS: ['ജനു', 'ഫെബ്രു', 'മാര്‍', - 'ഏപ്രി', 'മേയ്', 'ജൂണ്‍', 'ജൂലൈ', - 'ഓഗ', 'സെപ്റ്റം', 'ഒക്ടോ', 'നവം', - 'ഡിസം'], - STANDALONESHORTMONTHS: ['ജനു', 'ഫെബ്രു', 'മാര്‍', - 'ഏപ്രി', 'മേയ്', 'ജൂണ്‍', 'ജൂലൈ', - 'ഓഗ', 'സെപ്റ്റം', 'ഒക്ടോ', 'നവം', - 'ഡിസം'], + 'മാർച്ച്', 'ഏപ്രിൽ', 'മേയ്', 'ജൂൺ', + 'ജൂലൈ', 'ആഗസ്റ്റ്', + 'സെപ്റ്റംബർ', 'ഒക്ടോബർ', + 'നവംബർ', 'ഡിസംബർ'], + SHORTMONTHS: ['ജനു', 'ഫെബ്രു', 'മാർ', + 'ഏപ്രി', 'മേയ്', 'ജൂൺ', 'ജൂലൈ', 'ഓഗ', + 'സെപ്റ്റം', 'ഒക്ടോ', 'നവം', 'ഡിസം'], + STANDALONESHORTMONTHS: ['ജനു', 'ഫെബ്രു', 'മാർ', + 'ഏപ്രി', 'മേയ്', 'ജൂൺ', 'ജൂലൈ', 'ഓഗ', + 'സെപ്റ്റം', 'ഒക്ടോ', 'നവം', 'ഡിസം'], WEEKDAYS: ['ഞായറാഴ്ച', 'തിങ്കളാഴ്ച', - 'ചൊവ്വാഴ്ച', 'ബുധനാഴ്ച', - 'വ്യാഴാഴ്ച', 'വെള്ളിയാഴ്ച', - 'ശനിയാഴ്ച'], + 'ചൊവ്വാഴ്ച', 'ബുധനാഴ്ച', + 'വ്യാഴാഴ്ച', 'വെള്ളിയാഴ്ച', + 'ശനിയാഴ്ച'], STANDALONEWEEKDAYS: ['ഞായറാഴ്ച', - 'തിങ്കളാഴ്ച', 'ചൊവ്വാഴ്ച', - 'ബുധനാഴ്ച', 'വ്യാഴാഴ്ച', - 'വെള്ളിയാഴ്ച', 'ശനിയാഴ്ച'], - SHORTWEEKDAYS: ['ഞായര്‍', 'തിങ്കള്‍', - 'ചൊവ്വ', 'ബുധന്‍', 'വ്യാഴം', - 'വെള്ളി', 'ശനി'], - STANDALONESHORTWEEKDAYS: ['ഞായര്‍', 'തിങ്കള്‍', - 'ചൊവ്വ', 'ബുധന്‍', 'വ്യാഴം', - 'വെള്ളി', 'ശനി'], + 'തിങ്കളാഴ്ച', 'ചൊവ്വാഴ്ച', + 'ബുധനാഴ്ച', 'വ്യാഴാഴ്ച', + 'വെള്ളിയാഴ്ച', 'ശനിയാഴ്ച'], + SHORTWEEKDAYS: ['ഞായർ', 'തിങ്കൾ', 'ചൊവ്വ', + 'ബുധൻ', 'വ്യാഴം', 'വെള്ളി', 'ശനി'], + STANDALONESHORTWEEKDAYS: ['ഞായർ', 'തിങ്കൾ', + 'ചൊവ്വ', 'ബുധൻ', 'വ്യാഴം', + 'വെള്ളി', 'ശനി'], NARROWWEEKDAYS: ['ഞാ', 'തി', 'ചൊ', 'ബു', 'വ്യാ', - 'വെ', 'ശ'], + 'വെ', 'ശ'], STANDALONENARROWWEEKDAYS: ['ഞാ', 'തി', 'ചൊ', 'ബു', - 'വ്യാ', 'വെ', 'ശ'], + 'വ്യാ', 'വെ', 'ശ'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['ഒന്നാം പാദം', - 'രണ്ടാം പാദം', 'മൂന്നാം പാദം', - 'നാലാം പാദം'], - AMPMS: ['am', 'pm'], + 'രണ്ടാം പാദം', 'മൂന്നാം പാദം', + 'നാലാം പാദം'], + AMPMS: ['AM', 'PM'], DATEFORMATS: ['y, MMMM d, EEEE', 'y, MMMM d', 'y, MMM d', 'dd/MM/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [6, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -2160,53 +2254,54 @@ goog.i18n.DateTimeSymbols_ml = { * Date/time formatting symbols for locale mr. */ goog.i18n.DateTimeSymbols_mr = { + ZERODIGIT: 0x0966, ERAS: ['ईसापूर्व', 'सन'], ERANAMES: ['ईसवीसनपूर्व', 'ईसवीसन'], NARROWMONTHS: ['जा', 'फे', 'मा', 'ए', 'मे', 'जू', - 'जु', 'ऑ', 'स', 'ऑ', 'नो', 'डि'], + 'जु', 'ऑ', 'स', 'ऑ', 'नो', 'डि'], STANDALONENARROWMONTHS: ['जा', 'फे', 'मा', 'ए', 'मे', - 'जू', 'जु', 'ऑ', 'स', 'ऑ', 'नो', 'डि'], + 'जू', 'जु', 'ऑ', 'स', 'ऑ', 'नो', 'डि'], MONTHS: ['जानेवारी', 'फेब्रुवारी', - 'मार्च', 'एप्रिल', 'मे', 'जून', - 'जुलै', 'ऑगस्ट', 'सप्टेंबर', - 'ऑक्टोबर', 'नोव्हेंबर', - 'डिसेंबर'], + 'मार्च', 'एप्रिल', 'मे', 'जून', + 'जुलै', 'ऑगस्ट', 'सप्टेंबर', + 'ऑक्टोबर', 'नोव्हेंबर', + 'डिसेंबर'], STANDALONEMONTHS: ['जानेवारी', - 'फेब्रुवारी', 'मार्च', 'एप्रिल', - 'मे', 'जून', 'जुलै', 'ऑगस्ट', - 'सप्टेंबर', 'ऑक्टोबर', - 'नोव्हेंबर', 'डिसेंबर'], + 'फेब्रुवारी', 'मार्च', 'एप्रिल', + 'मे', 'जून', 'जुलै', 'ऑगस्ट', + 'सप्टेंबर', 'ऑक्टोबर', + 'नोव्हेंबर', 'डिसेंबर'], SHORTMONTHS: ['जाने', 'फेब्रु', 'मार्च', - 'एप्रि', 'मे', 'जून', 'जुलै', 'ऑग', - 'सेप्टें', 'ऑक्टोबर', 'नोव्हें', - 'डिसें'], + 'एप्रि', 'मे', 'जून', 'जुलै', 'ऑग', + 'सेप्टें', 'ऑक्ट', 'नोव्हें', + 'डिसें'], STANDALONESHORTMONTHS: ['जाने', 'फेब्रु', - 'मार्च', 'एप्रि', 'मे', 'जून', - 'जुलै', 'ऑग', 'सेप्टें', - 'ऑक्टोबर', 'नोव्हें', 'डिसें'], + 'मार्च', 'एप्रि', 'मे', 'जून', 'जुलै', + 'ऑग', 'सेप्टें', 'ऑक्ट', 'नोव्हें', + 'डिसें'], WEEKDAYS: ['रविवार', 'सोमवार', - 'मंगळवार', 'बुधवार', 'गुरुवार', - 'शुक्रवार', 'शनिवार'], + 'मंगळवार', 'बुधवार', 'गुरुवार', + 'शुक्रवार', 'शनिवार'], STANDALONEWEEKDAYS: ['रविवार', 'सोमवार', - 'मंगळवार', 'बुधवार', 'गुरुवार', - 'शुक्रवार', 'शनिवार'], + 'मंगळवार', 'बुधवार', 'गुरुवार', + 'शुक्रवार', 'शनिवार'], SHORTWEEKDAYS: ['रवि', 'सोम', 'मंगळ', 'बुध', - 'गुरु', 'शुक्र', 'शनि'], + 'गुरु', 'शुक्र', 'शनि'], STANDALONESHORTWEEKDAYS: ['रवि', 'सोम', 'मंगळ', - 'बुध', 'गुरु', 'शुक्र', 'शनि'], + 'बुध', 'गुरु', 'शुक्र', 'शनि'], NARROWWEEKDAYS: ['र', 'सो', 'मं', 'बु', 'गु', 'शु', - 'श'], + 'श'], STANDALONENARROWWEEKDAYS: ['र', 'सो', 'मं', 'बु', 'गु', - 'शु', 'श'], - SHORTQUARTERS: ['ति 1', '2 री तिमाही', 'ति 3', - 'ति 4'], + 'शु', 'श'], + SHORTQUARTERS: ['ति 1', 'ति 2', 'ति 3', 'ति 4'], QUARTERS: ['प्रथम तिमाही', - 'द्वितीय तिमाही', - 'तृतीय तिमाही', - 'चतुर्थ तिमाही'], - AMPMS: ['am', 'pm'], + 'द्वितीय तिमाही', + 'तृतीय तिमाही', + 'चतुर्थ तिमाही'], + AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd-M-yy'], TIMEFORMATS: ['h-mm-ss a zzzz', 'h-mm-ss a z', 'h-mm-ss a', 'h-mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [6, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -2221,18 +2316,18 @@ goog.i18n.DateTimeSymbols_ms = { ERANAMES: ['S.M.', 'TM'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'O', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'O', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Januari', 'Februari', 'Mac', 'April', 'Mei', 'Jun', 'Julai', 'Ogos', - 'September', 'Oktober', 'November', 'Disember'], + 'September', 'Oktober', 'November', 'Disember'], STANDALONEMONTHS: ['Januari', 'Februari', 'Mac', 'April', 'Mei', 'Jun', - 'Julai', 'Ogos', 'September', 'Oktober', 'November', 'Disember'], + 'Julai', 'Ogos', 'September', 'Oktober', 'November', 'Disember'], SHORTMONTHS: ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ogos', 'Sep', - 'Okt', 'Nov', 'Dis'], + 'Okt', 'Nov', 'Dis'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', - 'Ogos', 'Sep', 'Okt', 'Nov', 'Dis'], + 'Ogos', 'Sep', 'Okt', 'Nov', 'Dis'], WEEKDAYS: ['Ahad', 'Isnin', 'Selasa', 'Rabu', 'Khamis', 'Jumaat', 'Sabtu'], STANDALONEWEEKDAYS: ['Ahad', 'Isnin', 'Selasa', 'Rabu', 'Khamis', 'Jumaat', - 'Sabtu'], + 'Sabtu'], SHORTWEEKDAYS: ['Ahd', 'Isn', 'Sel', 'Rab', 'Kha', 'Jum', 'Sab'], STANDALONESHORTWEEKDAYS: ['Ahd', 'Isn', 'Sel', 'Rab', 'Kha', 'Jum', 'Sab'], NARROWWEEKDAYS: ['A', 'I', 'S', 'R', 'K', 'J', 'S'], @@ -2240,8 +2335,9 @@ goog.i18n.DateTimeSymbols_ms = { SHORTQUARTERS: ['Suku 1', 'Suku Ke-2', 'Suku Ke-3', 'Suku Ke-4'], QUARTERS: ['Suku pertama', 'Suku Ke-2', 'Suku Ke-3', 'Suku Ke-4'], AMPMS: ['PG', 'PTG'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'dd/MM/yyyy', 'd/MM/yy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'dd/MM/y', 'd/MM/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -2256,19 +2352,19 @@ goog.i18n.DateTimeSymbols_mt = { ERANAMES: ['Qabel Kristu', 'Wara Kristu'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'Ġ', 'L', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'Ġ', 'L', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Jannar', 'Frar', 'Marzu', 'April', 'Mejju', 'Ġunju', 'Lulju', - 'Awwissu', 'Settembru', 'Ottubru', 'Novembru', 'Diċembru'], + 'Awwissu', 'Settembru', 'Ottubru', 'Novembru', 'Diċembru'], STANDALONEMONTHS: ['Jannar', 'Frar', 'Marzu', 'April', 'Mejju', 'Ġunju', - 'Lulju', 'Awwissu', 'Settembru', 'Ottubru', 'Novembru', 'Diċembru'], + 'Lulju', 'Awwissu', 'Settembru', 'Ottubru', 'Novembru', 'Diċembru'], SHORTMONTHS: ['Jan', 'Fra', 'Mar', 'Apr', 'Mej', 'Ġun', 'Lul', 'Aww', 'Set', - 'Ott', 'Nov', 'Diċ'], + 'Ott', 'Nov', 'Diċ'], STANDALONESHORTMONTHS: ['Jan', 'Fra', 'Mar', 'Apr', 'Mej', 'Ġun', 'Lul', - 'Aww', 'Set', 'Ott', 'Nov', 'Diċ'], + 'Aww', 'Set', 'Ott', 'Nov', 'Diċ'], WEEKDAYS: ['Il-Ħadd', 'It-Tnejn', 'It-Tlieta', 'L-Erbgħa', 'Il-Ħamis', - 'Il-Ġimgħa', 'Is-Sibt'], + 'Il-Ġimgħa', 'Is-Sibt'], STANDALONEWEEKDAYS: ['Il-Ħadd', 'It-Tnejn', 'It-Tlieta', 'L-Erbgħa', - 'Il-Ħamis', 'Il-Ġimgħa', 'Is-Sibt'], + 'Il-Ħamis', 'Il-Ġimgħa', 'Is-Sibt'], SHORTWEEKDAYS: ['Ħad', 'Tne', 'Tli', 'Erb', 'Ħam', 'Ġim', 'Sib'], STANDALONESHORTWEEKDAYS: ['Ħad', 'Tne', 'Tli', 'Erb', 'Ħam', 'Ġim', 'Sib'], NARROWWEEKDAYS: ['Ħ', 'T', 'T', 'E', 'Ħ', 'Ġ', 'S'], @@ -2277,35 +2373,73 @@ goog.i18n.DateTimeSymbols_mt = { QUARTERS: ['K1', 'K2', 'K3', 'K4'], AMPMS: ['QN', 'WN'], DATEFORMATS: ['EEEE, d \'ta\'’ MMMM y', 'd \'ta\'’ MMMM y', 'dd MMM y', - 'dd/MM/yyyy'], + 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 }; +/** + * Date/time formatting symbols for locale nb. + */ +goog.i18n.DateTimeSymbols_nb = { + ERAS: ['f.Kr.', 'e.Kr.'], + ERANAMES: ['f.Kr.', 'e.Kr.'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['januar', 'februar', 'mars', 'april', 'mai', 'juni', 'juli', + 'august', 'september', 'oktober', 'november', 'desember'], + STANDALONEMONTHS: ['januar', 'februar', 'mars', 'april', 'mai', 'juni', + 'juli', 'august', 'september', 'oktober', 'november', 'desember'], + SHORTMONTHS: ['jan.', 'feb.', 'mars', 'apr.', 'mai', 'juni', 'juli', 'aug.', + 'sep.', 'okt.', 'nov.', 'des.'], + STANDALONESHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'mai', 'jun', 'jul', + 'aug', 'sep', 'okt', 'nov', 'des'], + WEEKDAYS: ['søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', + 'lørdag'], + STANDALONEWEEKDAYS: ['søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', + 'fredag', 'lørdag'], + SHORTWEEKDAYS: ['søn.', 'man.', 'tir.', 'ons.', 'tor.', 'fre.', 'lør.'], + STANDALONESHORTWEEKDAYS: ['sø.', 'ma.', 'ti.', 'on.', 'to.', 'fr.', 'lø.'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'O', 'T', 'F', 'L'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'O', 'T', 'F', 'L'], + SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], + QUARTERS: ['1. kvartal', '2. kvartal', '3. kvartal', '4. kvartal'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE d. MMMM y', 'd. MMMM y', 'd. MMM y', 'dd.MM.yy'], + TIMEFORMATS: ['\'kl\'. HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} \'kl.\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 3 +}; + + /** * Date/time formatting symbols for locale nl. */ goog.i18n.DateTimeSymbols_nl = { - ERAS: ['v. Chr.', 'n. Chr.'], + ERAS: ['v.Chr.', 'n.Chr.'], ERANAMES: ['Voor Christus', 'na Christus'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', - 'augustus', 'september', 'oktober', 'november', 'december'], + 'augustus', 'september', 'oktober', 'november', 'december'], STANDALONEMONTHS: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', - 'juli', 'augustus', 'september', 'oktober', 'november', 'december'], + 'juli', 'augustus', 'september', 'oktober', 'november', 'december'], SHORTMONTHS: ['jan.', 'feb.', 'mrt.', 'apr.', 'mei', 'jun.', 'jul.', 'aug.', - 'sep.', 'okt.', 'nov.', 'dec.'], + 'sep.', 'okt.', 'nov.', 'dec.'], STANDALONESHORTMONTHS: ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', - 'aug', 'sep', 'okt', 'nov', 'dec'], + 'aug', 'sep', 'okt', 'nov', 'dec'], WEEKDAYS: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', - 'zaterdag'], + 'zaterdag'], STANDALONEWEEKDAYS: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', - 'vrijdag', 'zaterdag'], + 'vrijdag', 'zaterdag'], SHORTWEEKDAYS: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], STANDALONESHORTWEEKDAYS: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], NARROWWEEKDAYS: ['Z', 'M', 'D', 'W', 'D', 'V', 'Z'], @@ -2315,6 +2449,7 @@ goog.i18n.DateTimeSymbols_nl = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd-MM-yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -2329,19 +2464,19 @@ goog.i18n.DateTimeSymbols_no = { ERANAMES: ['f.Kr.', 'e.Kr.'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['januar', 'februar', 'mars', 'april', 'mai', 'juni', 'juli', - 'august', 'september', 'oktober', 'november', 'desember'], + 'august', 'september', 'oktober', 'november', 'desember'], STANDALONEMONTHS: ['januar', 'februar', 'mars', 'april', 'mai', 'juni', - 'juli', 'august', 'september', 'oktober', 'november', 'desember'], + 'juli', 'august', 'september', 'oktober', 'november', 'desember'], SHORTMONTHS: ['jan.', 'feb.', 'mars', 'apr.', 'mai', 'juni', 'juli', 'aug.', - 'sep.', 'okt.', 'nov.', 'des.'], + 'sep.', 'okt.', 'nov.', 'des.'], STANDALONESHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'mai', 'jun', 'jul', - 'aug', 'sep', 'okt', 'nov', 'des'], + 'aug', 'sep', 'okt', 'nov', 'des'], WEEKDAYS: ['søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', - 'lørdag'], + 'lørdag'], STANDALONEWEEKDAYS: ['søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', - 'fredag', 'lørdag'], + 'fredag', 'lørdag'], SHORTWEEKDAYS: ['søn.', 'man.', 'tir.', 'ons.', 'tor.', 'fre.', 'lør.'], STANDALONESHORTWEEKDAYS: ['sø.', 'ma.', 'ti.', 'on.', 'to.', 'fr.', 'lø.'], NARROWWEEKDAYS: ['S', 'M', 'T', 'O', 'T', 'F', 'L'], @@ -2351,6 +2486,7 @@ goog.i18n.DateTimeSymbols_no = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE d. MMMM y', 'd. MMMM y', 'd. MMM y', 'dd.MM.yy'], TIMEFORMATS: ['\'kl\'. HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} \'kl.\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -2364,48 +2500,49 @@ goog.i18n.DateTimeSymbols_or = { ERAS: ['BCE', 'CE'], ERANAMES: ['BCE', 'CE'], NARROWMONTHS: ['ଜା', 'ଫେ', 'ମା', 'ଅ', 'ମେ', 'ଜୁ', - 'ଜୁ', 'ଅ', 'ସେ', 'ଅ', 'ନ', 'ଡି'], + 'ଜୁ', 'ଅ', 'ସେ', 'ଅ', 'ନ', 'ଡି'], STANDALONENARROWMONTHS: ['ଜା', 'ଫେ', 'ମା', 'ଅ', 'ମେ', - 'ଜୁ', 'ଜୁ', 'ଅ', 'ସେ', 'ଅ', 'ନ', 'ଡି'], + 'ଜୁ', 'ଜୁ', 'ଅ', 'ସେ', 'ଅ', 'ନ', 'ଡି'], MONTHS: ['ଜାନୁଆରୀ', 'ଫେବ୍ରୁୟାରୀ', - 'ମାର୍ଚ୍ଚ', 'ଅପ୍ରେଲ', 'ମେ', 'ଜୁନ', - 'ଜୁଲାଇ', 'ଅଗଷ୍ଟ', 'ସେପ୍ଟେମ୍ବର', - 'ଅକ୍ଟୋବର', 'ନଭେମ୍ବର', - 'ଡିସେମ୍ବର'], + 'ମାର୍ଚ୍ଚ', 'ଅପ୍ରେଲ', 'ମେ', 'ଜୁନ', + 'ଜୁଲାଇ', 'ଅଗଷ୍ଟ', 'ସେପ୍ଟେମ୍ବର', + 'ଅକ୍ଟୋବର', 'ନଭେମ୍ବର', + 'ଡିସେମ୍ବର'], STANDALONEMONTHS: ['ଜାନୁଆରୀ', 'ଫେବ୍ରୁୟାରୀ', - 'ମାର୍ଚ୍ଚ', 'ଅପ୍ରେଲ', 'ମେ', 'ଜୁନ', - 'ଜୁଲାଇ', 'ଅଗଷ୍ଟ', 'ସେପ୍ଟେମ୍ବର', - 'ଅକ୍ଟୋବର', 'ନଭେମ୍ବର', - 'ଡିସେମ୍ବର'], + 'ମାର୍ଚ୍ଚ', 'ଅପ୍ରେଲ', 'ମେ', 'ଜୁନ', + 'ଜୁଲାଇ', 'ଅଗଷ୍ଟ', 'ସେପ୍ଟେମ୍ବର', + 'ଅକ୍ଟୋବର', 'ନଭେମ୍ବର', + 'ଡିସେମ୍ବର'], SHORTMONTHS: ['ଜାନୁଆରୀ', 'ଫେବ୍ରୁୟାରୀ', - 'ମାର୍ଚ୍ଚ', 'ଅପ୍ରେଲ', 'ମେ', 'ଜୁନ', - 'ଜୁଲାଇ', 'ଅଗଷ୍ଟ', 'ସେପ୍ଟେମ୍ବର', - 'ଅକ୍ଟୋବର', 'ନଭେମ୍ବର', - 'ଡିସେମ୍ବର'], + 'ମାର୍ଚ୍ଚ', 'ଅପ୍ରେଲ', 'ମେ', 'ଜୁନ', + 'ଜୁଲାଇ', 'ଅଗଷ୍ଟ', 'ସେପ୍ଟେମ୍ବର', + 'ଅକ୍ଟୋବର', 'ନଭେମ୍ବର', + 'ଡିସେମ୍ବର'], STANDALONESHORTMONTHS: ['ଜାନୁଆରୀ', - 'ଫେବ୍ରୁୟାରୀ', 'ମାର୍ଚ୍ଚ', - 'ଅପ୍ରେଲ', 'ମେ', 'ଜୁନ', 'ଜୁଲାଇ', - 'ଅଗଷ୍ଟ', 'ସେପ୍ଟେମ୍ବର', - 'ଅକ୍ଟୋବର', 'ନଭେମ୍ବର', - 'ଡିସେମ୍ବର'], + 'ଫେବ୍ରୁୟାରୀ', 'ମାର୍ଚ୍ଚ', + 'ଅପ୍ରେଲ', 'ମେ', 'ଜୁନ', 'ଜୁଲାଇ', + 'ଅଗଷ୍ଟ', 'ସେପ୍ଟେମ୍ବର', + 'ଅକ୍ଟୋବର', 'ନଭେମ୍ବର', + 'ଡିସେମ୍ବର'], WEEKDAYS: ['ରବିବାର', 'ସୋମବାର', - 'ମଙ୍ଗଳବାର', 'ବୁଧବାର', 'ଗୁରୁବାର', - 'ଶୁକ୍ରବାର', 'ଶନିବାର'], + 'ମଙ୍ଗଳବାର', 'ବୁଧବାର', 'ଗୁରୁବାର', + 'ଶୁକ୍ରବାର', 'ଶନିବାର'], STANDALONEWEEKDAYS: ['ରବିବାର', 'ସୋମବାର', - 'ମଙ୍ଗଳବାର', 'ବୁଧବାର', 'ଗୁରୁବାର', - 'ଶୁକ୍ରବାର', 'ଶନିବାର'], + 'ମଙ୍ଗଳବାର', 'ବୁଧବାର', 'ଗୁରୁବାର', + 'ଶୁକ୍ରବାର', 'ଶନିବାର'], SHORTWEEKDAYS: ['ରବି', 'ସୋମ', 'ମଙ୍ଗଳ', 'ବୁଧ', - 'ଗୁରୁ', 'ଶୁକ୍ର', 'ଶନି'], + 'ଗୁରୁ', 'ଶୁକ୍ର', 'ଶନି'], STANDALONESHORTWEEKDAYS: ['ରବି', 'ସୋମ', 'ମଙ୍ଗଳ', - 'ବୁଧ', 'ଗୁରୁ', 'ଶୁକ୍ର', 'ଶନି'], + 'ବୁଧ', 'ଗୁରୁ', 'ଶୁକ୍ର', 'ଶନି'], NARROWWEEKDAYS: ['ର', 'ସୋ', 'ମ', 'ବୁ', 'ଗୁ', 'ଶୁ', 'ଶ'], STANDALONENARROWWEEKDAYS: ['ର', 'ସୋ', 'ମ', 'ବୁ', 'ଗୁ', - 'ଶୁ', 'ଶ'], + 'ଶୁ', 'ଶ'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['am', 'pm'], DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'd-M-yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [6, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -2420,31 +2557,31 @@ goog.i18n.DateTimeSymbols_pl = { ERANAMES: ['p.n.e.', 'n.e.'], NARROWMONTHS: ['s', 'l', 'm', 'k', 'm', 'c', 'l', 's', 'w', 'p', 'l', 'g'], STANDALONENARROWMONTHS: ['s', 'l', 'm', 'k', 'm', 'c', 'l', 's', 'w', 'p', - 'l', 'g'], + 'l', 'g'], MONTHS: ['stycznia', 'lutego', 'marca', 'kwietnia', 'maja', 'czerwca', - 'lipca', 'sierpnia', 'września', 'października', 'listopada', - 'grudnia'], + 'lipca', 'sierpnia', 'września', 'października', 'listopada', 'grudnia'], STANDALONEMONTHS: ['styczeń', 'luty', 'marzec', 'kwiecień', 'maj', - 'czerwiec', 'lipiec', 'sierpień', 'wrzesień', 'październik', - 'listopad', 'grudzień'], + 'czerwiec', 'lipiec', 'sierpień', 'wrzesień', 'październik', 'listopad', + 'grudzień'], SHORTMONTHS: ['sty', 'lut', 'mar', 'kwi', 'maj', 'cze', 'lip', 'sie', 'wrz', - 'paź', 'lis', 'gru'], + 'paź', 'lis', 'gru'], STANDALONESHORTMONTHS: ['sty', 'lut', 'mar', 'kwi', 'maj', 'cze', 'lip', - 'sie', 'wrz', 'paź', 'lis', 'gru'], + 'sie', 'wrz', 'paź', 'lis', 'gru'], WEEKDAYS: ['niedziela', 'poniedziałek', 'wtorek', 'środa', 'czwartek', - 'piątek', 'sobota'], + 'piątek', 'sobota'], STANDALONEWEEKDAYS: ['niedziela', 'poniedziałek', 'wtorek', 'środa', - 'czwartek', 'piątek', 'sobota'], + 'czwartek', 'piątek', 'sobota'], SHORTWEEKDAYS: ['niedz.', 'pon.', 'wt.', 'śr.', 'czw.', 'pt.', 'sob.'], STANDALONESHORTWEEKDAYS: ['niedz.', 'pon.', 'wt.', 'śr.', 'czw.', 'pt.', - 'sob.'], + 'sob.'], NARROWWEEKDAYS: ['N', 'P', 'W', 'Ś', 'C', 'P', 'S'], STANDALONENARROWWEEKDAYS: ['N', 'P', 'W', 'Ś', 'C', 'P', 'S'], SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], QUARTERS: ['I kwartał', 'II kwartał', 'III kwartał', 'IV kwartał'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd.MM.yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd.MM.y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -2459,31 +2596,31 @@ goog.i18n.DateTimeSymbols_pt = { ERANAMES: ['Antes de Cristo', 'Ano do Senhor'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', - 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'], + 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'], STANDALONEMONTHS: ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', - 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'], + 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'], SHORTMONTHS: ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', - 'out', 'nov', 'dez'], + 'out', 'nov', 'dez'], STANDALONESHORTMONTHS: ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', - 'ago', 'set', 'out', 'nov', 'dez'], + 'ago', 'set', 'out', 'nov', 'dez'], WEEKDAYS: ['domingo', 'segunda-feira', 'terça-feira', 'quarta-feira', - 'quinta-feira', 'sexta-feira', 'sábado'], + 'quinta-feira', 'sexta-feira', 'sábado'], STANDALONEWEEKDAYS: ['domingo', 'segunda-feira', 'terça-feira', - 'quarta-feira', 'quinta-feira', 'sexta-feira', 'sábado'], + 'quarta-feira', 'quinta-feira', 'sexta-feira', 'sábado'], SHORTWEEKDAYS: ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'], STANDALONESHORTWEEKDAYS: ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'], NARROWWEEKDAYS: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1º trimestre', '2º trimestre', '3º trimestre', - '4º trimestre'], + '4º trimestre'], AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', - 'dd/MM/yyyy', 'dd/MM/yy'], - TIMEFORMATS: ['HH\'h\'mm\'min\'ss\'s\' zzzz', 'HH\'h\'mm\'min\'ss\'s\' z', - 'HH:mm:ss', 'HH:mm'], + 'dd/MM/y', 'dd/MM/yy'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -2504,30 +2641,32 @@ goog.i18n.DateTimeSymbols_pt_PT = { ERANAMES: ['Antes de Cristo', 'Ano do Senhor'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', - 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'], + 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'], STANDALONEMONTHS: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', - 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'], + 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'], SHORTMONTHS: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', - 'Out', 'Nov', 'Dez'], + 'Out', 'Nov', 'Dez'], STANDALONESHORTMONTHS: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', - 'Ago', 'Set', 'Out', 'Nov', 'Dez'], + 'Ago', 'Set', 'Out', 'Nov', 'Dez'], WEEKDAYS: ['Domingo', 'Segunda-feira', 'Terça-feira', 'Quarta-feira', - 'Quinta-feira', 'Sexta-feira', 'Sábado'], + 'Quinta-feira', 'Sexta-feira', 'Sábado'], STANDALONEWEEKDAYS: ['Domingo', 'Segunda-feira', 'Terça-feira', - 'Quarta-feira', 'Quinta-feira', 'Sexta-feira', 'Sábado'], + 'Quarta-feira', 'Quinta-feira', 'Sexta-feira', 'Sábado'], SHORTWEEKDAYS: ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'], STANDALONESHORTWEEKDAYS: ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'], NARROWWEEKDAYS: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1.º trimestre', '2.º trimestre', '3.º trimestre', - '4.º trimestre'], - AMPMS: ['a.m.', 'p.m.'], + '4.º trimestre'], + AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', - 'dd/MM/yyyy', 'dd/MM/yy'], - TIMEFORMATS: ['H:mm:ss zzzz', 'H:mm:ss z', 'HH:mm:ss', 'HH:mm'], + 'dd/MM/y', 'dd/MM/yy'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} \'às\' {0}', '{1} \'às\' {0}', '{1}, {0}', + '{1}, {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -2542,30 +2681,31 @@ goog.i18n.DateTimeSymbols_ro = { ERANAMES: ['înainte de Hristos', 'după Hristos'], NARROWMONTHS: ['I', 'F', 'M', 'A', 'M', 'I', 'I', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['I', 'F', 'M', 'A', 'M', 'I', 'I', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['ianuarie', 'februarie', 'martie', 'aprilie', 'mai', 'iunie', - 'iulie', 'august', 'septembrie', 'octombrie', 'noiembrie', 'decembrie'], + 'iulie', 'august', 'septembrie', 'octombrie', 'noiembrie', 'decembrie'], STANDALONEMONTHS: ['ianuarie', 'februarie', 'martie', 'aprilie', 'mai', - 'iunie', 'iulie', 'august', 'septembrie', 'octombrie', 'noiembrie', - 'decembrie'], + 'iunie', 'iulie', 'august', 'septembrie', 'octombrie', 'noiembrie', + 'decembrie'], SHORTMONTHS: ['ian.', 'feb.', 'mar.', 'apr.', 'mai', 'iun.', 'iul.', 'aug.', - 'sept.', 'oct.', 'nov.', 'dec.'], + 'sept.', 'oct.', 'nov.', 'dec.'], STANDALONESHORTMONTHS: ['ian.', 'feb.', 'mar.', 'apr.', 'mai', 'iun.', 'iul.', - 'aug.', 'sept.', 'oct.', 'nov.', 'dec.'], + 'aug.', 'sept.', 'oct.', 'nov.', 'dec.'], WEEKDAYS: ['duminică', 'luni', 'marți', 'miercuri', 'joi', 'vineri', - 'sâmbătă'], + 'sâmbătă'], STANDALONEWEEKDAYS: ['duminică', 'luni', 'marți', 'miercuri', 'joi', - 'vineri', 'sâmbătă'], + 'vineri', 'sâmbătă'], SHORTWEEKDAYS: ['Du', 'Lu', 'Ma', 'Mi', 'Jo', 'Vi', 'Sâ'], STANDALONESHORTWEEKDAYS: ['Du', 'Lu', 'Ma', 'Mi', 'Jo', 'Vi', 'Sâ'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['trim. I', 'trim. II', 'trim. III', 'trim. IV'], QUARTERS: ['trimestrul I', 'trimestrul al II-lea', 'trimestrul al III-lea', - 'trimestrul al IV-lea'], + 'trimestrul al IV-lea'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'dd.MM.yyyy', 'dd.MM.yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'dd.MM.y', 'dd.MM.y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1}, {0}', '{1}, {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -2579,39 +2719,40 @@ goog.i18n.DateTimeSymbols_ru = { ERAS: ['до н.э.', 'н.э.'], ERANAMES: ['до н.э.', 'н.э.'], NARROWMONTHS: ['Я', 'Ф', 'М', 'А', 'М', 'И', 'И', 'А', 'С', 'О', - 'Н', 'Д'], + 'Н', 'Д'], STANDALONENARROWMONTHS: ['Я', 'Ф', 'М', 'А', 'М', 'И', 'И', 'А', 'С', - 'О', 'Н', 'Д'], + 'О', 'Н', 'Д'], MONTHS: ['января', 'февраля', 'марта', 'апреля', - 'мая', 'июня', 'июля', 'августа', 'сентября', - 'октября', 'ноября', 'декабря'], + 'мая', 'июня', 'июля', 'августа', 'сентября', + 'октября', 'ноября', 'декабря'], STANDALONEMONTHS: ['Январь', 'Февраль', 'Март', - 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', - 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'], + 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', + 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'], SHORTMONTHS: ['янв.', 'февр.', 'марта', 'апр.', 'мая', - 'июня', 'июля', 'авг.', 'сент.', 'окт.', 'нояб.', - 'дек.'], + 'июня', 'июля', 'авг.', 'сент.', 'окт.', 'нояб.', + 'дек.'], STANDALONESHORTMONTHS: ['Янв.', 'Февр.', 'Март', 'Апр.', - 'Май', 'Июнь', 'Июль', 'Авг.', 'Сент.', 'Окт.', - 'Нояб.', 'Дек.'], + 'Май', 'Июнь', 'Июль', 'Авг.', 'Сент.', 'Окт.', + 'Нояб.', 'Дек.'], WEEKDAYS: ['воскресенье', 'понедельник', - 'вторник', 'среда', 'четверг', 'пятница', - 'суббота'], + 'вторник', 'среда', 'четверг', 'пятница', + 'суббота'], STANDALONEWEEKDAYS: ['Воскресенье', 'Понедельник', - 'Вторник', 'Среда', 'Четверг', 'Пятница', - 'Суббота'], + 'Вторник', 'Среда', 'Четверг', 'Пятница', + 'Суббота'], SHORTWEEKDAYS: ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'], STANDALONESHORTWEEKDAYS: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', - 'Сб'], - NARROWWEEKDAYS: ['В', 'Пн', 'Вт', 'С', 'Ч', 'П', 'С'], + 'Сб'], + NARROWWEEKDAYS: ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'], STANDALONENARROWWEEKDAYS: ['В', 'П', 'В', 'С', 'Ч', 'П', 'С'], SHORTQUARTERS: ['1-й кв.', '2-й кв.', '3-й кв.', '4-й кв.'], QUARTERS: ['1-й квартал', '2-й квартал', - '3-й квартал', '4-й квартал'], + '3-й квартал', '4-й квартал'], AMPMS: ['до полудня', 'после полудня'], - DATEFORMATS: ['EEEE, d MMMM y \'г\'.', 'd MMMM y \'г\'.', 'dd.MM.yyyy', - 'dd.MM.yy'], + DATEFORMATS: ['EEEE, d MMMM y \'г\'.', 'd MMMM y \'г\'.', + 'dd MMM y \'г\'.', 'dd.MM.yy'], TIMEFORMATS: ['H:mm:ss zzzz', 'H:mm:ss z', 'H:mm:ss', 'H:mm'], + DATETIMEFORMATS: ['{1}, {0}', '{1}, {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -2626,29 +2767,30 @@ goog.i18n.DateTimeSymbols_sk = { ERANAMES: ['pred n.l.', 'n.l.'], NARROWMONTHS: ['j', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', 'n', 'd'], STANDALONENARROWMONTHS: ['j', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', - 'n', 'd'], + 'n', 'd'], MONTHS: ['januára', 'februára', 'marca', 'apríla', 'mája', 'júna', - 'júla', 'augusta', 'septembra', 'októbra', 'novembra', 'decembra'], + 'júla', 'augusta', 'septembra', 'októbra', 'novembra', 'decembra'], STANDALONEMONTHS: ['január', 'február', 'marec', 'apríl', 'máj', 'jún', - 'júl', 'august', 'september', 'október', 'november', 'december'], + 'júl', 'august', 'september', 'október', 'november', 'december'], SHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'máj', 'jún', 'júl', 'aug', - 'sep', 'okt', 'nov', 'dec'], + 'sep', 'okt', 'nov', 'dec'], STANDALONESHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'máj', 'jún', 'júl', - 'aug', 'sep', 'okt', 'nov', 'dec'], + 'aug', 'sep', 'okt', 'nov', 'dec'], WEEKDAYS: ['nedeľa', 'pondelok', 'utorok', 'streda', 'štvrtok', 'piatok', - 'sobota'], + 'sobota'], STANDALONEWEEKDAYS: ['nedeľa', 'pondelok', 'utorok', 'streda', 'štvrtok', - 'piatok', 'sobota'], + 'piatok', 'sobota'], SHORTWEEKDAYS: ['ne', 'po', 'ut', 'st', 'št', 'pi', 'so'], STANDALONESHORTWEEKDAYS: ['ne', 'po', 'ut', 'st', 'št', 'pi', 'so'], NARROWWEEKDAYS: ['N', 'P', 'U', 'S', 'Š', 'P', 'S'], STANDALONENARROWWEEKDAYS: ['N', 'P', 'U', 'S', 'Š', 'P', 'S'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['1. štvrťrok', '2. štvrťrok', '3. štvrťrok', - '4. štvrťrok'], + '4. štvrťrok'], AMPMS: ['dopoludnia', 'popoludní'], - DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'd.M.yyyy', 'd.M.yyyy'], + DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'd.M.y', 'd.M.y'], TIMEFORMATS: ['H:mm:ss zzzz', 'H:mm:ss z', 'H:mm:ss', 'H:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -2663,29 +2805,30 @@ goog.i18n.DateTimeSymbols_sl = { ERANAMES: ['pred našim štetjem', 'naše štetje'], NARROWMONTHS: ['j', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', 'n', 'd'], STANDALONENARROWMONTHS: ['j', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', - 'n', 'd'], + 'n', 'd'], MONTHS: ['januar', 'februar', 'marec', 'april', 'maj', 'junij', 'julij', - 'avgust', 'september', 'oktober', 'november', 'december'], + 'avgust', 'september', 'oktober', 'november', 'december'], STANDALONEMONTHS: ['januar', 'februar', 'marec', 'april', 'maj', 'junij', - 'julij', 'avgust', 'september', 'oktober', 'november', 'december'], + 'julij', 'avgust', 'september', 'oktober', 'november', 'december'], SHORTMONTHS: ['jan.', 'feb.', 'mar.', 'apr.', 'maj', 'jun.', 'jul.', 'avg.', - 'sep.', 'okt.', 'nov.', 'dec.'], + 'sep.', 'okt.', 'nov.', 'dec.'], STANDALONESHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', - 'avg', 'sep', 'okt', 'nov', 'dec'], + 'avg', 'sep', 'okt', 'nov', 'dec'], WEEKDAYS: ['nedelja', 'ponedeljek', 'torek', 'sreda', 'četrtek', 'petek', - 'sobota'], + 'sobota'], STANDALONEWEEKDAYS: ['nedelja', 'ponedeljek', 'torek', 'sreda', 'četrtek', - 'petek', 'sobota'], + 'petek', 'sobota'], SHORTWEEKDAYS: ['ned.', 'pon.', 'tor.', 'sre.', 'čet.', 'pet.', 'sob.'], STANDALONESHORTWEEKDAYS: ['ned', 'pon', 'tor', 'sre', 'čet', 'pet', 'sob'], NARROWWEEKDAYS: ['n', 'p', 't', 's', 'č', 'p', 's'], STANDALONENARROWWEEKDAYS: ['n', 'p', 't', 's', 'č', 'p', 's'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['1. četrtletje', '2. četrtletje', '3. četrtletje', - '4. četrtletje'], + '4. četrtletje'], AMPMS: ['dop.', 'pop.'], - DATEFORMATS: ['EEEE, dd. MMMM y', 'dd. MMMM y', 'd. MMM yyyy', 'd. MM. yy'], + DATEFORMATS: ['EEEE, dd. MMMM y', 'dd. MMMM y', 'd. MMM y', 'd. MM. yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -2700,19 +2843,19 @@ goog.i18n.DateTimeSymbols_sq = { ERANAMES: ['p.e.r.', 'n.e.r.'], NARROWMONTHS: ['J', 'S', 'M', 'P', 'M', 'Q', 'K', 'G', 'S', 'T', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'S', 'M', 'P', 'M', 'Q', 'K', 'G', 'S', 'T', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janar', 'shkurt', 'mars', 'prill', 'maj', 'qershor', 'korrik', - 'gusht', 'shtator', 'tetor', 'nëntor', 'dhjetor'], + 'gusht', 'shtator', 'tetor', 'nëntor', 'dhjetor'], STANDALONEMONTHS: ['janar', 'shkurt', 'mars', 'prill', 'maj', 'qershor', - 'korrik', 'gusht', 'shtator', 'tetor', 'nëntor', 'dhjetor'], + 'korrik', 'gusht', 'shtator', 'tetor', 'nëntor', 'dhjetor'], SHORTMONTHS: ['Jan', 'Shk', 'Mar', 'Pri', 'Maj', 'Qer', 'Kor', 'Gsh', 'Sht', - 'Tet', 'Nën', 'Dhj'], + 'Tet', 'Nën', 'Dhj'], STANDALONESHORTMONTHS: ['Jan', 'Shk', 'Mar', 'Pri', 'Maj', 'Qer', 'Kor', - 'Gsh', 'Sht', 'Tet', 'Nën', 'Dhj'], + 'Gsh', 'Sht', 'Tet', 'Nën', 'Dhj'], WEEKDAYS: ['e diel', 'e hënë', 'e martë', 'e mërkurë', 'e enjte', - 'e premte', 'e shtunë'], + 'e premte', 'e shtunë'], STANDALONEWEEKDAYS: ['e diel', 'e hënë', 'e martë', 'e mërkurë', - 'e enjte', 'e premte', 'e shtunë'], + 'e enjte', 'e premte', 'e shtunë'], SHORTWEEKDAYS: ['Die', 'Hën', 'Mar', 'Mër', 'Enj', 'Pre', 'Sht'], STANDALONESHORTWEEKDAYS: ['Die', 'Hën', 'Mar', 'Mër', 'Enj', 'Pre', 'Sht'], NARROWWEEKDAYS: ['D', 'H', 'M', 'M', 'E', 'P', 'S'], @@ -2720,8 +2863,9 @@ goog.i18n.DateTimeSymbols_sq = { SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['PD', 'MD'], - DATEFORMATS: ['EEEE, dd MMMM y', 'dd MMMM y', 'yyyy-MM-dd', 'yy-MM-dd'], + DATEFORMATS: ['EEEE, dd MMMM y', 'dd MMMM y', 'y-MM-dd', 'yy-MM-dd'], TIMEFORMATS: ['h.mm.ss.a zzzz', 'h.mm.ss.a z', 'h.mm.ss.a', 'h.mm.a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -2735,35 +2879,36 @@ goog.i18n.DateTimeSymbols_sr = { ERAS: ['п. н. е.', 'н. е.'], ERANAMES: ['Пре нове ере', 'Нове ере'], NARROWMONTHS: ['ј', 'ф', 'м', 'а', 'м', 'ј', 'ј', 'а', 'с', 'о', - 'н', 'д'], + 'н', 'д'], STANDALONENARROWMONTHS: ['ј', 'ф', 'м', 'а', 'м', 'ј', 'ј', 'а', 'с', - 'о', 'н', 'д'], + 'о', 'н', 'д'], MONTHS: ['јануар', 'фебруар', 'март', 'април', 'мај', - 'јун', 'јул', 'август', 'септембар', - 'октобар', 'новембар', 'децембар'], + 'јун', 'јул', 'август', 'септембар', 'октобар', + 'новембар', 'децембар'], STANDALONEMONTHS: ['јануар', 'фебруар', 'март', 'април', - 'мај', 'јун', 'јул', 'август', 'септембар', - 'октобар', 'новембар', 'децембар'], + 'мај', 'јун', 'јул', 'август', 'септембар', + 'октобар', 'новембар', 'децембар'], SHORTMONTHS: ['јан', 'феб', 'мар', 'апр', 'мај', 'јун', - 'јул', 'авг', 'сеп', 'окт', 'нов', 'дец'], + 'јул', 'авг', 'сеп', 'окт', 'нов', 'дец'], STANDALONESHORTMONTHS: ['јан', 'феб', 'мар', 'апр', 'мај', - 'јун', 'јул', 'авг', 'сеп', 'окт', 'нов', 'дец'], + 'јун', 'јул', 'авг', 'сеп', 'окт', 'нов', 'дец'], WEEKDAYS: ['недеља', 'понедељак', 'уторак', 'среда', - 'четвртак', 'петак', 'субота'], + 'четвртак', 'петак', 'субота'], STANDALONEWEEKDAYS: ['недеља', 'понедељак', 'уторак', - 'среда', 'четвртак', 'петак', 'субота'], + 'среда', 'четвртак', 'петак', 'субота'], SHORTWEEKDAYS: ['нед', 'пон', 'уто', 'сре', 'чет', 'пет', - 'суб'], + 'суб'], STANDALONESHORTWEEKDAYS: ['нед', 'пон', 'уто', 'сре', 'чет', - 'пет', 'суб'], + 'пет', 'суб'], NARROWWEEKDAYS: ['н', 'п', 'у', 'с', 'ч', 'п', 'с'], STANDALONENARROWWEEKDAYS: ['н', 'п', 'у', 'с', 'ч', 'п', 'с'], SHORTQUARTERS: ['К1', 'К2', 'К3', 'К4'], QUARTERS: ['Прво тромесечје', 'Друго тромесечје', - 'Треће тромесечје', 'Четврто тромесечје'], + 'Треће тромесечје', 'Четврто тромесечје'], AMPMS: ['пре подне', 'поподне'], DATEFORMATS: ['EEEE, dd. MMMM y.', 'dd. MMMM y.', 'dd.MM.y.', 'd.M.yy.'], TIMEFORMATS: ['HH.mm.ss zzzz', 'HH.mm.ss z', 'HH.mm.ss', 'HH.mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -2778,30 +2923,31 @@ goog.i18n.DateTimeSymbols_sv = { ERANAMES: ['före Kristus', 'efter Kristus'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['januari', 'februari', 'mars', 'april', 'maj', 'juni', 'juli', - 'augusti', 'september', 'oktober', 'november', 'december'], - STANDALONEMONTHS: ['januari', 'februari', 'mars', 'april', 'maj', 'juni', - 'juli', 'augusti', 'september', 'oktober', 'november', 'december'], + 'augusti', 'september', 'oktober', 'november', 'december'], + STANDALONEMONTHS: ['Januari', 'Februari', 'Mars', 'April', 'Maj', 'Juni', + 'Juli', 'Augusti', 'September', 'Oktober', 'November', 'December'], SHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'aug', 'sep', - 'okt', 'nov', 'dec'], - STANDALONESHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', - 'aug', 'sep', 'okt', 'nov', 'dec'], + 'okt', 'nov', 'dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', + 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'], WEEKDAYS: ['söndag', 'måndag', 'tisdag', 'onsdag', 'torsdag', 'fredag', - 'lördag'], - STANDALONEWEEKDAYS: ['söndag', 'måndag', 'tisdag', 'onsdag', 'torsdag', - 'fredag', 'lördag'], + 'lördag'], + STANDALONEWEEKDAYS: ['Söndag', 'Måndag', 'Tisdag', 'Onsdag', 'Torsdag', + 'Fredag', 'Lördag'], SHORTWEEKDAYS: ['sön', 'mån', 'tis', 'ons', 'tors', 'fre', 'lör'], - STANDALONESHORTWEEKDAYS: ['sön', 'mån', 'tis', 'ons', 'tor', 'fre', 'lör'], + STANDALONESHORTWEEKDAYS: ['Sön', 'Mån', 'Tis', 'Ons', 'Tor', 'Fre', 'Lör'], NARROWWEEKDAYS: ['S', 'M', 'T', 'O', 'T', 'F', 'L'], STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'O', 'T', 'F', 'L'], SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], QUARTERS: ['1:a kvartalet', '2:a kvartalet', '3:e kvartalet', - '4:e kvartalet'], + '4:e kvartalet'], AMPMS: ['fm', 'em'], DATEFORMATS: ['EEEE\'en\' \'den\' d:\'e\' MMMM y', 'd MMMM y', 'd MMM y', - 'yyyy-MM-dd'], + 'y-MM-dd'], TIMEFORMATS: ['\'kl\'. HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -2816,28 +2962,29 @@ goog.i18n.DateTimeSymbols_sw = { ERANAMES: ['Kabla ya Kristo', 'Baada ya Kristo'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Januari', 'Februari', 'Machi', 'Aprili', 'Mei', 'Juni', 'Julai', - 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], STANDALONEMONTHS: ['Januari', 'Februari', 'Machi', 'Aprili', 'Mei', 'Juni', - 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], SHORTMONTHS: ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', - 'Okt', 'Nov', 'Des'], + 'Okt', 'Nov', 'Des'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', - 'Ago', 'Sep', 'Okt', 'Nov', 'Des'], + 'Ago', 'Sep', 'Okt', 'Nov', 'Des'], WEEKDAYS: ['Jumapili', 'Jumatatu', 'Jumanne', 'Jumatano', 'Alhamisi', - 'Ijumaa', 'Jumamosi'], + 'Ijumaa', 'Jumamosi'], STANDALONEWEEKDAYS: ['Jumapili', 'Jumatatu', 'Jumanne', 'Jumatano', - 'Alhamisi', 'Ijumaa', 'Jumamosi'], + 'Alhamisi', 'Ijumaa', 'Jumamosi'], SHORTWEEKDAYS: ['J2', 'J3', 'J4', 'J5', 'Alh', 'Ij', 'J1'], STANDALONESHORTWEEKDAYS: ['J2', 'J3', 'J4', 'J5', 'Alh', 'Ij', 'J1'], NARROWWEEKDAYS: ['2', '3', '4', '5', 'A', 'I', '1'], STANDALONENARROWWEEKDAYS: ['2', '3', '4', '5', 'A', 'I', '1'], - SHORTQUARTERS: ['R1', 'R2', 'R3', 'R4'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Robo 1', 'Robo 2', 'Robo 3', 'Robo 4'], AMPMS: ['asubuhi', 'alasiri'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -2850,50 +2997,51 @@ goog.i18n.DateTimeSymbols_sw = { goog.i18n.DateTimeSymbols_ta = { ERAS: ['கி.மு.', 'கி.பி.'], ERANAMES: ['கிறிஸ்துவுக்கு முன்', - 'அனோ டோமினி'], + 'அனோ டோமினி'], NARROWMONTHS: ['ஜ', 'பி', 'மா', 'ஏ', 'மே', 'ஜூ', 'ஜூ', - 'ஆ', 'செ', 'அ', 'ந', 'டி'], + 'ஆ', 'செ', 'அ', 'ந', 'டி'], STANDALONENARROWMONTHS: ['ஜ', 'பி', 'மா', 'ஏ', 'மே', 'ஜூ', - 'ஜூ', 'ஆ', 'செ', 'அ', 'ந', 'டி'], + 'ஜூ', 'ஆ', 'செ', 'அ', 'ந', 'டி'], MONTHS: ['ஜனவரி', 'பிப்ரவரி', 'மார்ச்', - 'ஏப்ரல்', 'மே', 'ஜூன்', 'ஜூலை', - 'ஆகஸ்ட்', 'செப்டம்பர்', - 'அக்டோபர்', 'நவம்பர்', - 'டிசம்பர்'], + 'ஏப்ரல்', 'மே', 'ஜூன்', 'ஜூலை', + 'ஆகஸ்ட்', 'செப்டம்பர்', + 'அக்டோபர்', 'நவம்பர்', + 'டிசம்பர்'], STANDALONEMONTHS: ['ஜனவரி', 'பிப்ரவரி', - 'மார்ச்', 'ஏப்ரல்', 'மே', 'ஜூன்', - 'ஜூலை', 'ஆகஸ்டு', 'செப்டம்பர்', - 'அக்டோபர்', 'நவம்பர்', - 'டிசம்பர்'], + 'மார்ச்', 'ஏப்ரல்', 'மே', 'ஜூன்', + 'ஜூலை', 'ஆகஸ்டு', 'செப்டம்பர்', + 'அக்டோபர்', 'நவம்பர்', + 'டிசம்பர்'], SHORTMONTHS: ['ஜன.', 'பிப்.', 'மார்.', 'ஏப்.', - 'மே', 'ஜூன்', 'ஜூலை', 'ஆக.', 'செப்.', - 'அக்.', 'நவ.', 'டிச.'], + 'மே', 'ஜூன்', 'ஜூலை', 'ஆக.', 'செப்.', + 'அக்.', 'நவ.', 'டிச.'], STANDALONESHORTMONTHS: ['ஜன.', 'பிப்.', 'மார்.', - 'ஏப்.', 'மே', 'ஜூன்', 'ஜூலை', 'ஆக.', - 'செப்.', 'அக்.', 'நவ.', 'டிச.'], + 'ஏப்.', 'மே', 'ஜூன்', 'ஜூலை', 'ஆக.', + 'செப்.', 'அக்.', 'நவ.', 'டிச.'], WEEKDAYS: ['ஞாயிறு', 'திங்கள்', - 'செவ்வாய்', 'புதன்', 'வியாழன்', - 'வெள்ளி', 'சனி'], + 'செவ்வாய்', 'புதன்', 'வியாழன்', + 'வெள்ளி', 'சனி'], STANDALONEWEEKDAYS: ['ஞாயிறு', 'திங்கள்', - 'செவ்வாய்', 'புதன்', 'வியாழன்', - 'வெள்ளி', 'சனி'], + 'செவ்வாய்', 'புதன்', 'வியாழன்', + 'வெள்ளி', 'சனி'], SHORTWEEKDAYS: ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', - 'ச'], + 'ச'], STANDALONESHORTWEEKDAYS: ['ஞா', 'தி', 'செ', 'பு', 'வி', - 'வெ', 'ச'], + 'வெ', 'ச'], NARROWWEEKDAYS: ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', - 'ச'], + 'ச'], STANDALONENARROWWEEKDAYS: ['ஞா', 'தி', 'செ', 'பு', 'வி', - 'வெ', 'ச'], + 'வெ', 'ச'], SHORTQUARTERS: ['காலாண்டு1', 'காலாண்டு2', - 'காலாண்டு3', 'காலாண்டு4'], + 'காலாண்டு3', 'காலாண்டு4'], QUARTERS: ['முதல் காலாண்டு', - 'இரண்டாம் காலாண்டு', - 'மூன்றாம் காலாண்டு', - 'நான்காம் காலாண்டு'], - AMPMS: ['am', 'pm'], + 'இரண்டாம் காலாண்டு', + 'மூன்றாம் காலாண்டு', + 'நான்காம் காலாண்டு'], + AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, d MMMM, y', 'd MMMM, y', 'd MMM, y', 'd-M-yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [6, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -2904,54 +3052,54 @@ goog.i18n.DateTimeSymbols_ta = { * Date/time formatting symbols for locale te. */ goog.i18n.DateTimeSymbols_te = { - ERAS: ['ఈసాపూర్వ.', 'సన్.'], + ERAS: ['క్రీపూ', 'క్రీశ'], ERANAMES: ['ఈసాపూర్వ.', 'సన్.'], - NARROWMONTHS: ['జ', 'ఫి', 'మా', 'ఏ', 'మె', 'జు', 'జు', - 'ఆ', 'సె', 'అ', 'న', 'డి'], - STANDALONENARROWMONTHS: ['జ', 'ఫి', 'మ', 'ఎ', 'మె', 'జు', - 'జు', 'ఆ', 'సె', 'అ', 'న', 'డి'], + NARROWMONTHS: ['జ', 'ఫి', 'మా', 'ఏ', 'మే', 'జూ', 'జు', + 'ఆ', 'సె', 'అ', 'న', 'డి'], + STANDALONENARROWMONTHS: ['జ', 'ఫి', 'మా', 'ఏ', 'మే', 'జు', + 'జు', 'ఆ', 'సె', 'అ', 'న', 'డి'], MONTHS: ['జనవరి', 'ఫిబ్రవరి', 'మార్చి', - 'ఎప్రిల్', 'మే', 'జూన్', 'జూలై', - 'ఆగస్టు', 'సెప్టెంబర్', - 'అక్టోబర్', 'నవంబర్', - 'డిసెంబర్'], + 'ఎప్రిల్', 'మే', 'జూన్', 'జూలై', + 'ఆగస్టు', 'సెప్టెంబర్', + 'అక్టోబర్', 'నవంబర్', + 'డిసెంబర్'], STANDALONEMONTHS: ['జనవరి', 'ఫిబ్రవరి', - 'మార్చి', 'ఎప్రిల్', 'మే', 'జూన్', - 'జూలై', 'ఆగస్టు', 'సెప్టెంబర్', - 'అక్టోబర్', 'నవంబర్', - 'డిసెంబర్'], + 'మార్చి', 'ఎప్రిల్', 'మే', 'జూన్', + 'జూలై', 'ఆగస్టు', 'సెప్టెంబర్', + 'అక్టోబర్', 'నవంబర్', + 'డిసెంబర్'], SHORTMONTHS: ['జన', 'ఫిబ్ర', 'మార్చి', - 'ఏప్రి', 'మే', 'జూన్', 'జూలై', - 'ఆగస్టు', 'సెప్టెంబర్', - 'అక్టోబర్', 'నవంబర్', - 'డిసెంబర్'], + 'ఏప్రి', 'మే', 'జూన్', 'జూలై', + 'ఆగస్టు', 'సెప్టెంబర్', + 'అక్టోబర్', 'నవంబర్', + 'డిసెంబర్'], STANDALONESHORTMONTHS: ['జన', 'ఫిబ్ర', 'మార్చి', - 'ఏప్రి', 'మే', 'జూన్', 'జూలై', - 'ఆగస్టు', 'సెప్టెంబర్', - 'అక్టోబర్', 'నవంబర్', - 'డిసెంబర్'], + 'ఏప్రి', 'మే', 'జూన్', 'జూలై', + 'ఆగస్టు', 'సెప్టెం', 'అక్టో', + 'నవం', 'డిసెం'], WEEKDAYS: ['ఆదివారం', 'సోమవారం', - 'మంగళవారం', 'బుధవారం', - 'గురువారం', 'శుక్రవారం', - 'శనివారం'], + 'మంగళవారం', 'బుధవారం', + 'గురువారం', 'శుక్రవారం', + 'శనివారం'], STANDALONEWEEKDAYS: ['ఆదివారం', 'సోమవారం', - 'మంగళవారం', 'బుధవారం', - 'గురువారం', 'శుక్రవారం', - 'శనివారం'], + 'మంగళవారం', 'బుధవారం', + 'గురువారం', 'శుక్రవారం', + 'శనివారం'], SHORTWEEKDAYS: ['ఆది', 'సోమ', 'మంగళ', 'బుధ', - 'గురు', 'శుక్ర', 'శని'], + 'గురు', 'శుక్ర', 'శని'], STANDALONESHORTWEEKDAYS: ['ఆది', 'సోమ', 'మంగళ', - 'బుధ', 'గురు', 'శుక్ర', 'శని'], + 'బుధ', 'గురు', 'శుక్ర', 'శని'], NARROWWEEKDAYS: ['ఆ', 'సో', 'మ', 'బు', 'గు', 'శు', 'శ'], STANDALONENARROWWEEKDAYS: ['ఆ', 'సో', 'మ', 'బు', 'గు', - 'శు', 'శ'], - SHORTQUARTERS: ['ఒకటి 1', 'రెండు 2', 'మూడు 3', - 'నాలుగు 4'], - QUARTERS: ['ఒకటి 1', 'రెండు 2', 'మూడు 3', - 'నాలుగు 4'], - AMPMS: ['am', 'pm'], + 'శు', 'శ'], + SHORTQUARTERS: ['త్రై1', 'త్రై2', 'త్రై3', + 'త్రై4'], + QUARTERS: ['1వ త్రైమాసం', '2వ త్రైమాసం', + '3వ త్రైమాసం', '4వ త్రైమాసం'], + AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd-MM-yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [6, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -2964,51 +3112,55 @@ goog.i18n.DateTimeSymbols_te = { goog.i18n.DateTimeSymbols_th = { ERAS: ['ปีก่อน ค.ศ.', 'ค.ศ.'], ERANAMES: ['ปีก่อนคริสต์ศักราช', - 'คริสต์ศักราช'], + 'คริสต์ศักราช'], NARROWMONTHS: ['ม.ค.', 'ก.พ.', 'มี.ค.', 'เม.ย.', - 'พ.ค.', 'มิ.ย', 'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', - 'พ.ย.', 'ธ.ค.'], + 'พ.ค.', 'มิ.ย', 'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', + 'พ.ย.', 'ธ.ค.'], STANDALONENARROWMONTHS: ['ม.ค.', 'ก.พ.', 'มี.ค.', 'เม.ย.', - 'พ.ค.', 'มิ.ย.', 'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', - 'พ.ย.', 'ธ.ค.'], + 'พ.ค.', 'มิ.ย.', 'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', + 'พ.ย.', 'ธ.ค.'], MONTHS: ['มกราคม', 'กุมภาพันธ์', - 'มีนาคม', 'เมษายน', 'พฤษภาคม', - 'มิถุนายน', 'กรกฎาคม', - 'สิงหาคม', 'กันยายน', 'ตุลาคม', - 'พฤศจิกายน', 'ธันวาคม'], + 'มีนาคม', 'เมษายน', 'พฤษภาคม', + 'มิถุนายน', 'กรกฎาคม', + 'สิงหาคม', 'กันยายน', 'ตุลาคม', + 'พฤศจิกายน', 'ธันวาคม'], STANDALONEMONTHS: ['มกราคม', 'กุมภาพันธ์', - 'มีนาคม', 'เมษายน', 'พฤษภาคม', - 'มิถุนายน', 'กรกฎาคม', - 'สิงหาคม', 'กันยายน', 'ตุลาคม', - 'พฤศจิกายน', 'ธันวาคม'], + 'มีนาคม', 'เมษายน', 'พฤษภาคม', + 'มิถุนายน', 'กรกฎาคม', + 'สิงหาคม', 'กันยายน', 'ตุลาคม', + 'พฤศจิกายน', 'ธันวาคม'], SHORTMONTHS: ['ม.ค.', 'ก.พ.', 'มี.ค.', 'เม.ย.', - 'พ.ค.', 'มิ.ย.', 'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', - 'พ.ย.', 'ธ.ค.'], + 'พ.ค.', 'มิ.ย.', 'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', + 'พ.ย.', 'ธ.ค.'], STANDALONESHORTMONTHS: ['ม.ค.', 'ก.พ.', 'มี.ค.', 'เม.ย.', - 'พ.ค.', 'มิ.ย.', 'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', - 'พ.ย.', 'ธ.ค.'], + 'พ.ค.', 'มิ.ย.', 'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', + 'พ.ย.', 'ธ.ค.'], WEEKDAYS: ['วันอาทิตย์', 'วันจันทร์', - 'วันอังคาร', 'วันพุธ', - 'วันพฤหัสบดี', 'วันศุกร์', - 'วันเสาร์'], + 'วันอังคาร', 'วันพุธ', + 'วันพฤหัสบดี', 'วันศุกร์', + 'วันเสาร์'], STANDALONEWEEKDAYS: ['วันอาทิตย์', - 'วันจันทร์', 'วันอังคาร', - 'วันพุธ', 'วันพฤหัสบดี', - 'วันศุกร์', 'วันเสาร์'], + 'วันจันทร์', 'วันอังคาร', + 'วันพุธ', 'วันพฤหัสบดี', + 'วันศุกร์', 'วันเสาร์'], SHORTWEEKDAYS: ['อา.', 'จ.', 'อ.', 'พ.', 'พฤ.', 'ศ.', 'ส.'], STANDALONESHORTWEEKDAYS: ['อา.', 'จ.', 'อ.', 'พ.', 'พฤ.', - 'ศ.', 'ส.'], - NARROWWEEKDAYS: ['อ', 'จ', 'อ', 'พ', 'พ', 'ศ', 'ส'], - STANDALONENARROWWEEKDAYS: ['อ', 'จ', 'อ', 'พ', 'พ', 'ศ', 'ส'], - SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + 'ศ.', 'ส.'], + NARROWWEEKDAYS: ['อา.', 'จ.', 'อ.', 'พ.', 'พฤ.', 'ศ.', + 'ส.'], + STANDALONENARROWWEEKDAYS: ['อา.', 'จ.', 'อ.', 'พ.', 'พฤ.', + 'ศ.', 'ส.'], + SHORTQUARTERS: ['ไตรมาส 1', 'ไตรมาส 2', + 'ไตรมาส 3', 'ไตรมาส 4'], QUARTERS: ['ไตรมาส 1', 'ไตรมาส 2', - 'ไตรมาส 3', 'ไตรมาส 4'], + 'ไตรมาส 3', 'ไตรมาส 4'], AMPMS: ['ก่อนเที่ยง', 'หลังเที่ยง'], - DATEFORMATS: ['EEEEที่ d MMMM G y', 'd MMMM y', 'd MMM y', 'd/M/yyyy'], + DATEFORMATS: ['EEEEที่ d MMMM G y', 'd MMMM y', 'd MMM y', 'd/M/yy'], TIMEFORMATS: [ - 'H นาฬิกา m นาที ss วินาที zzzz', - 'H นาฬิกา m นาที ss วินาที z', 'H:mm:ss', - 'H:mm'], + 'H นาฬิกา mm นาที ss วินาที zzzz', + 'H นาฬิกา mm นาที ss วินาที z', 'HH:mm:ss', + 'HH:mm'], + DATETIMEFORMATS: ['{1}, {0}', '{1}, {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -3023,29 +3175,30 @@ goog.i18n.DateTimeSymbols_tl = { ERANAMES: ['BC', 'AD'], NARROWMONTHS: ['E', 'P', 'M', 'A', 'M', 'H', 'H', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['E', 'P', 'M', 'A', 'M', 'H', 'H', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Enero', 'Pebrero', 'Marso', 'Abril', 'Mayo', 'Hunyo', 'Hulyo', - 'Agosto', 'Setyembre', 'Oktubre', 'Nobyembre', 'Disyembre'], + 'Agosto', 'Setyembre', 'Oktubre', 'Nobyembre', 'Disyembre'], STANDALONEMONTHS: ['Enero', 'Pebrero', 'Marso', 'Abril', 'Mayo', 'Hunyo', - 'Hulyo', 'Agosto', 'Setyembre', 'Oktubre', 'Nobyembre', 'Disyembre'], + 'Hulyo', 'Agosto', 'Setyembre', 'Oktubre', 'Nobyembre', 'Disyembre'], SHORTMONTHS: ['Ene', 'Peb', 'Mar', 'Abr', 'May', 'Hun', 'Hul', 'Ago', 'Set', - 'Okt', 'Nob', 'Dis'], + 'Okt', 'Nob', 'Dis'], STANDALONESHORTMONTHS: ['Ene', 'Peb', 'Mar', 'Abr', 'May', 'Hun', 'Hul', - 'Ago', 'Set', 'Okt', 'Nob', 'Dis'], + 'Ago', 'Set', 'Okt', 'Nob', 'Dis'], WEEKDAYS: ['Linggo', 'Lunes', 'Martes', 'Miyerkules', 'Huwebes', 'Biyernes', - 'Sabado'], + 'Sabado'], STANDALONEWEEKDAYS: ['Linggo', 'Lunes', 'Martes', 'Miyerkules', 'Huwebes', - 'Biyernes', 'Sabado'], + 'Biyernes', 'Sabado'], SHORTWEEKDAYS: ['Lin', 'Lun', 'Mar', 'Mye', 'Huw', 'Bye', 'Sab'], STANDALONESHORTWEEKDAYS: ['Lin', 'Lun', 'Mar', 'Miy', 'Huw', 'Biy', 'Sab'], NARROWWEEKDAYS: ['L', 'L', 'M', 'M', 'H', 'B', 'S'], STANDALONENARROWWEEKDAYS: ['L', 'L', 'M', 'M', 'H', 'B', 'S'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['ika-1 sangkapat', 'ika-2 sangkapat', 'ika-3 quarter', - 'ika-4 na quarter'], + 'ika-4 na quarter'], AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, MMMM dd y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -3060,28 +3213,29 @@ goog.i18n.DateTimeSymbols_tr = { ERANAMES: ['Milattan Önce', 'Milattan Sonra'], NARROWMONTHS: ['O', 'Ş', 'M', 'N', 'M', 'H', 'T', 'A', 'E', 'E', 'K', 'A'], STANDALONENARROWMONTHS: ['O', 'Ş', 'M', 'N', 'M', 'H', 'T', 'A', 'E', 'E', - 'K', 'A'], + 'K', 'A'], MONTHS: ['Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', 'Temmuz', - 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık'], + 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık'], STANDALONEMONTHS: ['Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', - 'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık'], + 'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık'], SHORTMONTHS: ['Oca', 'Şub', 'Mar', 'Nis', 'May', 'Haz', 'Tem', 'Ağu', 'Eyl', - 'Eki', 'Kas', 'Ara'], + 'Eki', 'Kas', 'Ara'], STANDALONESHORTMONTHS: ['Oca', 'Şub', 'Mar', 'Nis', 'May', 'Haz', 'Tem', - 'Ağu', 'Eyl', 'Eki', 'Kas', 'Ara'], + 'Ağu', 'Eyl', 'Eki', 'Kas', 'Ara'], WEEKDAYS: ['Pazar', 'Pazartesi', 'Salı', 'Çarşamba', 'Perşembe', 'Cuma', - 'Cumartesi'], + 'Cumartesi'], STANDALONEWEEKDAYS: ['Pazar', 'Pazartesi', 'Salı', 'Çarşamba', 'Perşembe', - 'Cuma', 'Cumartesi'], + 'Cuma', 'Cumartesi'], SHORTWEEKDAYS: ['Paz', 'Pzt', 'Sal', 'Çar', 'Per', 'Cum', 'Cmt'], STANDALONESHORTWEEKDAYS: ['Paz', 'Pzt', 'Sal', 'Çar', 'Per', 'Cum', 'Cmt'], NARROWWEEKDAYS: ['P', 'P', 'S', 'Ç', 'P', 'C', 'C'], STANDALONENARROWWEEKDAYS: ['P', 'P', 'S', 'Ç', 'P', 'C', 'C'], SHORTQUARTERS: ['Ç1', 'Ç2', 'Ç3', 'Ç4'], QUARTERS: ['1. çeyrek', '2. çeyrek', '3. çeyrek', '4. çeyrek'], - AMPMS: ['AM', 'PM'], - DATEFORMATS: ['d MMMM y EEEE', 'd MMMM y', 'd MMM y', 'dd MM yyyy'], + AMPMS: ['ÖÖ', 'ÖS'], + DATEFORMATS: ['d MMMM y EEEE', 'd MMMM y', 'd MMM y', 'd MM y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -3095,37 +3249,38 @@ goog.i18n.DateTimeSymbols_uk = { ERAS: ['до н.е.', 'н.е.'], ERANAMES: ['до нашої ери', 'нашої ери'], NARROWMONTHS: ['С', 'Л', 'Б', 'К', 'Т', 'Ч', 'Л', 'С', 'В', 'Ж', - 'Л', 'Г'], + 'Л', 'Г'], STANDALONENARROWMONTHS: ['С', 'Л', 'Б', 'К', 'Т', 'Ч', 'Л', 'С', 'В', - 'Ж', 'Л', 'Г'], + 'Ж', 'Л', 'Г'], MONTHS: ['січня', 'лютого', 'березня', 'квітня', - 'травня', 'червня', 'липня', 'серпня', - 'вересня', 'жовтня', 'листопада', 'грудня'], + 'травня', 'червня', 'липня', 'серпня', + 'вересня', 'жовтня', 'листопада', 'грудня'], STANDALONEMONTHS: ['Січень', 'Лютий', 'Березень', - 'Квітень', 'Травень', 'Червень', 'Липень', - 'Серпень', 'Вересень', 'Жовтень', - 'Листопад', 'Грудень'], + 'Квітень', 'Травень', 'Червень', 'Липень', + 'Серпень', 'Вересень', 'Жовтень', 'Листопад', + 'Грудень'], SHORTMONTHS: ['січ.', 'лют.', 'бер.', 'квіт.', 'трав.', - 'черв.', 'лип.', 'серп.', 'вер.', 'жовт.', 'лист.', - 'груд.'], + 'черв.', 'лип.', 'серп.', 'вер.', 'жовт.', 'лист.', + 'груд.'], STANDALONESHORTMONTHS: ['Січ', 'Лют', 'Бер', 'Кві', 'Тра', - 'Чер', 'Лип', 'Сер', 'Вер', 'Жов', 'Лис', 'Гру'], + 'Чер', 'Лип', 'Сер', 'Вер', 'Жов', 'Лис', 'Гру'], WEEKDAYS: ['Неділя', 'Понеділок', 'Вівторок', - 'Середа', 'Четвер', 'Пʼятниця', 'Субота'], + 'Середа', 'Четвер', 'Пʼятниця', 'Субота'], STANDALONEWEEKDAYS: ['Неділя', 'Понеділок', 'Вівторок', - 'Середа', 'Четвер', 'Пʼятниця', 'Субота'], + 'Середа', 'Четвер', 'Пʼятниця', 'Субота'], SHORTWEEKDAYS: ['Нд', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'], STANDALONESHORTWEEKDAYS: ['Нд', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', - 'Сб'], + 'Сб'], NARROWWEEKDAYS: ['Н', 'П', 'В', 'С', 'Ч', 'П', 'С'], STANDALONENARROWWEEKDAYS: ['Н', 'П', 'В', 'С', 'Ч', 'П', 'С'], SHORTQUARTERS: ['I кв.', 'II кв.', 'III кв.', 'IV кв.'], QUARTERS: ['I квартал', 'II квартал', 'III квартал', - 'IV квартал'], + 'IV квартал'], AMPMS: ['дп', 'пп'], DATEFORMATS: ['EEEE, d MMMM y \'р\'.', 'd MMMM y \'р\'.', 'd MMM y', - 'dd.MM.yy'], + 'dd.MM.yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -3136,40 +3291,41 @@ goog.i18n.DateTimeSymbols_uk = { * Date/time formatting symbols for locale ur. */ goog.i18n.DateTimeSymbols_ur = { - ERAS: ['ق م', 'عيسوی سن'], - ERANAMES: ['قبل مسيح', 'عيسوی سن'], - NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], - STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], - MONTHS: ['جنوری', 'فروری', 'مارچ', 'اپريل', 'مئ', - 'جون', 'جولائ', 'اگست', 'ستمبر', 'اکتوبر', - 'نومبر', 'دسمبر'], - STANDALONEMONTHS: ['جنوری', 'فروری', 'مارچ', 'اپريل', - 'مئ', 'جون', 'جولائ', 'اگست', 'ستمبر', 'اکتوبر', - 'نومبر', 'دسمبر'], - SHORTMONTHS: ['جنوری', 'فروری', 'مارچ', 'اپريل', 'مئ', - 'جون', 'جولائ', 'اگست', 'ستمبر', 'اکتوبر', - 'نومبر', 'دسمبر'], - STANDALONESHORTMONTHS: ['جنوری', 'فروری', 'مارچ', 'اپريل', - 'مئ', 'جون', 'جولائ', 'اگست', 'ستمبر', 'اکتوبر', - 'نومبر', 'دسمبر'], - WEEKDAYS: ['اتوار', 'پير', 'منگل', 'بده', 'جمعرات', - 'جمعہ', 'ہفتہ'], - STANDALONEWEEKDAYS: ['اتوار', 'پير', 'منگل', 'بده', - 'جمعرات', 'جمعہ', 'ہفتہ'], - SHORTWEEKDAYS: ['اتوار', 'پير', 'منگل', 'بده', 'جمعرات', - 'جمعہ', 'ہفتہ'], - STANDALONESHORTWEEKDAYS: ['اتوار', 'پير', 'منگل', 'بده', - 'جمعرات', 'جمعہ', 'ہفتہ'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + ERAS: ['ق م', 'عیسوی سن'], + ERANAMES: ['قبل مسیح', 'عیسوی سن'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئ', + 'جون', 'جولائ', 'اگست', 'ستمبر', 'اکتوبر', + 'نومبر', 'دسمبر'], + STANDALONEMONTHS: ['جنوری', 'فروری', 'مارچ', 'اپریل', + 'مئ', 'جون', 'جولائ', 'اگست', 'ستمبر', 'اکتوبر', + 'نومبر', 'دسمبر'], + SHORTMONTHS: ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئ', + 'جون', 'جولائ', 'اگست', 'ستمبر', 'اکتوبر', + 'نومبر', 'دسمبر'], + STANDALONESHORTMONTHS: ['جنوری', 'فروری', 'مارچ', 'اپریل', + 'مئ', 'جون', 'جولائ', 'اگست', 'ستمبر', 'اکتوبر', + 'نومبر', 'دسمبر'], + WEEKDAYS: ['اتوار', 'پیر', 'منگل', 'بده', 'جمعرات', + 'جمعہ', 'ہفتہ'], + STANDALONEWEEKDAYS: ['اتوار', 'پیر', 'منگل', 'بده', + 'جمعرات', 'جمعہ', 'ہفتہ'], + SHORTWEEKDAYS: ['اتوار', 'پیر', 'منگل', 'بده', 'جمعرات', + 'جمعہ', 'ہفتہ'], + STANDALONESHORTWEEKDAYS: ['اتوار', 'پیر', 'منگل', 'بده', + 'جمعرات', 'جمعہ', 'ہفتہ'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['پہلی سہ ماہی', 'دوسری سہ ماہی', - 'تيسری سہ ماہی', 'چوتهی سہ ماہی'], + 'تیسری سہ ماہی', 'چوتهی سہ ماہی'], QUARTERS: ['پہلی سہ ماہی', 'دوسری سہ ماہی', - 'تيسری سہ ماہی', 'چوتهی سہ ماہی'], - AMPMS: ['دن', 'رات'], - DATEFORMATS: ['EEEE؍ d؍ MMMM y', 'd؍ MMMM y', 'd؍ MMM y', 'd/M/yy'], + 'تیسری سہ ماہی', 'چوتهی سہ ماہی'], + AMPMS: ['قبل دوپہر', 'بعد دوپہر'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'd MMM، y', 'd/M/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -3184,34 +3340,33 @@ goog.i18n.DateTimeSymbols_vi = { ERANAMES: ['tr. CN', 'sau CN'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['tháng một', 'tháng hai', 'tháng ba', 'tháng tư', - 'tháng năm', 'tháng sáu', 'tháng bảy', 'tháng tám', - 'tháng chín', 'tháng mười', 'tháng mười một', - 'tháng mười hai'], + 'tháng năm', 'tháng sáu', 'tháng bảy', 'tháng tám', 'tháng chín', + 'tháng mười', 'tháng mười một', 'tháng mười hai'], STANDALONEMONTHS: ['tháng một', 'tháng hai', 'tháng ba', 'tháng tư', - 'tháng năm', 'tháng sáu', 'tháng bảy', 'tháng tám', - 'tháng chín', 'tháng mười', 'tháng mười một', - 'tháng mười hai'], + 'tháng năm', 'tháng sáu', 'tháng bảy', 'tháng tám', 'tháng chín', + 'tháng mười', 'tháng mười một', 'tháng mười hai'], SHORTMONTHS: ['thg 1', 'thg 2', 'thg 3', 'thg 4', 'thg 5', 'thg 6', 'thg 7', - 'thg 8', 'thg 9', 'thg 10', 'thg 11', 'thg 12'], + 'thg 8', 'thg 9', 'thg 10', 'thg 11', 'thg 12'], STANDALONESHORTMONTHS: ['thg 1', 'thg 2', 'thg 3', 'thg 4', 'thg 5', 'thg 6', - 'thg 7', 'thg 8', 'thg 9', 'thg 10', 'thg 11', 'thg 12'], + 'thg 7', 'thg 8', 'thg 9', 'thg 10', 'thg 11', 'thg 12'], WEEKDAYS: ['Chủ nhật', 'Thứ hai', 'Thứ ba', 'Thứ tư', 'Thứ năm', - 'Thứ sáu', 'Thứ bảy'], + 'Thứ sáu', 'Thứ bảy'], STANDALONEWEEKDAYS: ['Chủ nhật', 'Thứ hai', 'Thứ ba', 'Thứ tư', - 'Thứ năm', 'Thứ sáu', 'Thứ bảy'], + 'Thứ năm', 'Thứ sáu', 'Thứ bảy'], SHORTWEEKDAYS: ['CN', 'Th 2', 'Th 3', 'Th 4', 'Th 5', 'Th 6', 'Th 7'], STANDALONESHORTWEEKDAYS: ['CN', 'Th 2', 'Th 3', 'Th 4', 'Th 5', 'Th 6', - 'Th 7'], + 'Th 7'], NARROWWEEKDAYS: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'], STANDALONENARROWWEEKDAYS: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Quý 1', 'Quý 2', 'Quý 3', 'Quý 4'], AMPMS: ['SA', 'CH'], DATEFORMATS: ['EEEE, \'ngày\' dd MMMM \'năm\' y', - '\'Ngày\' dd \'tháng\' M \'năm\' y', 'dd-MM-yyyy', 'dd/MM/yyyy'], + '\'Ngày\' dd \'tháng\' M \'năm\' y', 'dd-MM-y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{0} {1}', '{0} {1}', '{0} {1}', '{0} {1}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -3225,32 +3380,32 @@ goog.i18n.DateTimeSymbols_zh = { ERAS: ['公元前', '公元'], ERANAMES: ['公元前', '公元'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], - STANDALONENARROWMONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', - '7月', '8月', '9月', '10月', '11月', '12月'], - MONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', - '9月', '10月', '11月', '12月'], + STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', + '11', '12'], + MONTHS: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', + '八月', '九月', '十月', '十一月', '十二月'], STANDALONEMONTHS: ['一月', '二月', '三月', '四月', '五月', '六月', - '七月', '八月', '九月', '十月', '十一月', '十二月'], + '七月', '八月', '九月', '十月', '十一月', '十二月'], SHORTMONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', - '9月', '10月', '11月', '12月'], - STANDALONESHORTMONTHS: ['一月', '二月', '三月', '四月', '五月', - '六月', '七月', '八月', '九月', '十月', '十一月', - '十二月'], + '9月', '10月', '11月', '12月'], + STANDALONESHORTMONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', + '7月', '8月', '9月', '10月', '11月', '12月'], WEEKDAYS: ['星期日', '星期一', '星期二', '星期三', '星期四', - '星期五', '星期六'], + '星期五', '星期六'], STANDALONEWEEKDAYS: ['星期日', '星期一', '星期二', '星期三', - '星期四', '星期五', '星期六'], + '星期四', '星期五', '星期六'], SHORTWEEKDAYS: ['周日', '周一', '周二', '周三', '周四', '周五', - '周六'], + '周六'], STANDALONESHORTWEEKDAYS: ['周日', '周一', '周二', '周三', '周四', - '周五', '周六'], + '周五', '周六'], NARROWWEEKDAYS: ['日', '一', '二', '三', '四', '五', '六'], STANDALONENARROWWEEKDAYS: ['日', '一', '二', '三', '四', '五', '六'], - SHORTQUARTERS: ['1季', '2季', '3季', '4季'], - QUARTERS: ['第1季度', '第2季度', '第3季度', '第4季度'], + SHORTQUARTERS: ['1季度', '2季度', '3季度', '4季度'], + QUARTERS: ['第一季度', '第二季度', '第三季度', '第四季度'], AMPMS: ['上午', '下午'], - DATEFORMATS: ['y年M月d日EEEE', 'y年M月d日', 'yyyy-M-d', 'yy-M-d'], - TIMEFORMATS: ['zzzzah时mm分ss秒', 'zah时mm分ss秒', 'ah:mm:ss', 'ah:mm'], + DATEFORMATS: ['y年M月d日EEEE', 'y年M月d日', 'y年M月d日', 'yy-M-d'], + TIMEFORMATS: ['zzzzah:mm:ss', 'zah:mm:ss', 'ah:mm:ss', 'ah:mm'], + DATETIMEFORMATS: ['{1}{0}', '{1}{0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -3268,34 +3423,34 @@ goog.i18n.DateTimeSymbols_zh_CN = goog.i18n.DateTimeSymbols_zh; */ goog.i18n.DateTimeSymbols_zh_HK = { ERAS: ['西元前', '西元'], - ERANAMES: ['西元前', '西元'], + ERANAMES: ['公元前', '公元'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', - '9月', '10月', '11月', '12月'], + '9月', '10月', '11月', '12月'], STANDALONEMONTHS: ['一月', '二月', '三月', '四月', '五月', '六月', - '七月', '八月', '九月', '十月', '十一月', '十二月'], + '七月', '八月', '九月', '十月', '十一月', '十二月'], SHORTMONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', - '9月', '10月', '11月', '12月'], + '9月', '10月', '11月', '12月'], STANDALONESHORTMONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', - '7月', '8月', '9月', '10月', '11月', '12月'], + '7月', '8月', '9月', '10月', '11月', '12月'], WEEKDAYS: ['星期日', '星期一', '星期二', '星期三', '星期四', - '星期五', '星期六'], + '星期五', '星期六'], STANDALONEWEEKDAYS: ['星期日', '星期一', '星期二', '星期三', - '星期四', '星期五', '星期六'], + '星期四', '星期五', '星期六'], SHORTWEEKDAYS: ['週日', '週一', '週二', '週三', '週四', '週五', - '週六'], + '週六'], STANDALONESHORTWEEKDAYS: ['周日', '周一', '周二', '周三', '周四', - '周五', '周六'], + '周五', '周六'], NARROWWEEKDAYS: ['日', '一', '二', '三', '四', '五', '六'], STANDALONENARROWWEEKDAYS: ['日', '一', '二', '三', '四', '五', '六'], SHORTQUARTERS: ['1季', '2季', '3季', '4季'], QUARTERS: ['第1季', '第2季', '第3季', '第4季'], AMPMS: ['上午', '下午'], - DATEFORMATS: ['y年M月d日EEEE', 'y年M月d日', 'y年M月d日', - 'yy年M月d日'], + DATEFORMATS: ['y年M月d日EEEE', 'y年M月d日', 'y年M月d日', 'd/M/yy'], TIMEFORMATS: ['ah:mm:ss [zzzz]', 'ah:mm:ss [z]', 'ahh:mm:ss', 'ah:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1}{0}', '{1}{0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -3307,33 +3462,34 @@ goog.i18n.DateTimeSymbols_zh_HK = { */ goog.i18n.DateTimeSymbols_zh_TW = { ERAS: ['西元前', '西元'], - ERANAMES: ['西元前', '西元'], + ERANAMES: ['公元前', '公元'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', - '9月', '10月', '11月', '12月'], + '9月', '10月', '11月', '12月'], STANDALONEMONTHS: ['一月', '二月', '三月', '四月', '五月', '六月', - '七月', '八月', '九月', '十月', '十一月', '十二月'], + '七月', '八月', '九月', '十月', '十一月', '十二月'], SHORTMONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', - '9月', '10月', '11月', '12月'], + '9月', '10月', '11月', '12月'], STANDALONESHORTMONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', - '7月', '8月', '9月', '10月', '11月', '12月'], + '7月', '8月', '9月', '10月', '11月', '12月'], WEEKDAYS: ['星期日', '星期一', '星期二', '星期三', '星期四', - '星期五', '星期六'], + '星期五', '星期六'], STANDALONEWEEKDAYS: ['星期日', '星期一', '星期二', '星期三', - '星期四', '星期五', '星期六'], + '星期四', '星期五', '星期六'], SHORTWEEKDAYS: ['週日', '週一', '週二', '週三', '週四', '週五', - '週六'], + '週六'], STANDALONESHORTWEEKDAYS: ['周日', '周一', '周二', '周三', '周四', - '周五', '周六'], + '周五', '周六'], NARROWWEEKDAYS: ['日', '一', '二', '三', '四', '五', '六'], STANDALONENARROWWEEKDAYS: ['日', '一', '二', '三', '四', '五', '六'], SHORTQUARTERS: ['1季', '2季', '3季', '4季'], QUARTERS: ['第1季', '第2季', '第3季', '第4季'], AMPMS: ['上午', '下午'], - DATEFORMATS: ['y年M月d日EEEE', 'y年M月d日', 'yyyy/M/d', 'y/M/d'], + DATEFORMATS: ['y年M月d日EEEE', 'y年M月d日', 'y/M/d', 'y/M/d'], TIMEFORMATS: ['zzzzah時mm分ss秒', 'zah時mm分ss秒', 'ah:mm:ss', 'ah:mm'], + DATETIMEFORMATS: ['{1}{0}', '{1}{0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -3348,29 +3504,30 @@ goog.i18n.DateTimeSymbols_zu = { ERANAMES: ['BC', 'AD'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Januwari', 'Februwari', 'Mashi', 'Apreli', 'Meyi', 'Juni', 'Julayi', - 'Agasti', 'Septhemba', 'Okthoba', 'Novemba', 'Disemba'], + 'Agasti', 'Septhemba', 'Okthoba', 'Novemba', 'Disemba'], STANDALONEMONTHS: ['uJanuwari', 'uFebruwari', 'uMashi', 'u-Apreli', 'uMeyi', - 'uJuni', 'uJulayi', 'uAgasti', 'uSepthemba', 'u-Okthoba', 'uNovemba', - 'uDisemba'], + 'uJuni', 'uJulayi', 'uAgasti', 'uSepthemba', 'u-Okthoba', 'uNovemba', + 'uDisemba'], SHORTMONTHS: ['Jan', 'Feb', 'Mas', 'Apr', 'Mey', 'Jun', 'Jul', 'Aga', 'Sep', - 'Okt', 'Nov', 'Dis'], + 'Okt', 'Nov', 'Dis'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mas', 'Apr', 'Mey', 'Jun', 'Jul', - 'Aga', 'Sep', 'Okt', 'Nov', 'Dis'], + 'Aga', 'Sep', 'Okt', 'Nov', 'Dis'], WEEKDAYS: ['Sonto', 'Msombuluko', 'Lwesibili', 'Lwesithathu', 'uLwesine', - 'Lwesihlanu', 'Mgqibelo'], + 'Lwesihlanu', 'Mgqibelo'], STANDALONEWEEKDAYS: ['Sonto', 'Msombuluko', 'Lwesibili', 'Lwesithathu', - 'uLwesine', 'Lwesihlanu', 'Mgqibelo'], + 'uLwesine', 'Lwesihlanu', 'Mgqibelo'], SHORTWEEKDAYS: ['Son', 'Mso', 'Bil', 'Tha', 'Sin', 'Hla', 'Mgq'], STANDALONESHORTWEEKDAYS: ['Son', 'Mso', 'Bil', 'Tha', 'Sin', 'Hla', 'Mgq'], NARROWWEEKDAYS: ['S', 'M', 'B', 'T', 'S', 'H', 'M'], STANDALONENARROWWEEKDAYS: ['S', 'M', 'B', 'T', 'S', 'H', 'M'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['ikota yoku-1', 'ikota yesi-2', 'ikota yesi-3', 'ikota yesi-4'], - AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE dd MMMM y', 'd MMMM y', 'd MMM y', 'yyyy-MM-dd'], + AMPMS: ['Ekuseni', 'Ntambama'], + DATEFORMATS: ['EEEE dd MMMM y', 'd MMMM y', 'd MMM y', 'y-MM-dd'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -3391,6 +3548,8 @@ if (goog.LOCALE == 'af') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_bg; } else if (goog.LOCALE == 'bn') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_bn; +} else if (goog.LOCALE == 'br') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_br; } else if (goog.LOCALE == 'ca') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ca; } else if (goog.LOCALE == 'chr') { @@ -3429,6 +3588,8 @@ if (goog.LOCALE == 'af') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_es; } else if (goog.LOCALE == 'es_419' || goog.LOCALE == 'es-419') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_es_419; +} else if (goog.LOCALE == 'es_ES' || goog.LOCALE == 'es-ES') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_es; } else if (goog.LOCALE == 'et') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_et; } else if (goog.LOCALE == 'eu') { @@ -3489,6 +3650,8 @@ if (goog.LOCALE == 'af') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ms; } else if (goog.LOCALE == 'mt') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_mt; +} else if (goog.LOCALE == 'nb') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_nb; } else if (goog.LOCALE == 'nl') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_nl; } else if (goog.LOCALE == 'no') { @@ -3548,4 +3711,3 @@ if (goog.LOCALE == 'af') { } else { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en; } - diff --git a/master/closure-library/closure/goog/i18n/datetimesymbolsext.js b/edit/closure-library/closure/goog/i18n/datetimesymbolsext.js similarity index 55% rename from master/closure-library/closure/goog/i18n/datetimesymbolsext.js rename to edit/closure-library/closure/goog/i18n/datetimesymbolsext.js index 315e66d984..d0496d3017 100644 --- a/master/closure-library/closure/goog/i18n/datetimesymbolsext.js +++ b/edit/closure-library/closure/goog/i18n/datetimesymbolsext.js @@ -17,6 +17,7 @@ * * This file is autogenerated by scripts * i18n/tools/generate_datetime_constants.py --for_closure + * File generated from CLDR ver. 23 * * This file contains symbols for locales that are not covered by * datetimesymbols.js. @@ -24,6 +25,9 @@ * to incorporate changes before we could correct CLDR. All manual * modification must be documented in this section, and should be * removed after those changes lands to CLDR. + * + * May 9, 2013 - Manually added dot for italian era ('a.D.' vs. 'd.C') + * cldr bug #6062 */ goog.provide('goog.i18n.DateTimeSymbolsExt'); @@ -38,27 +42,39 @@ goog.provide('goog.i18n.DateTimeSymbols_agq_CM'); goog.provide('goog.i18n.DateTimeSymbols_ak'); goog.provide('goog.i18n.DateTimeSymbols_ak_GH'); goog.provide('goog.i18n.DateTimeSymbols_am_ET'); +goog.provide('goog.i18n.DateTimeSymbols_ar_001'); goog.provide('goog.i18n.DateTimeSymbols_ar_AE'); goog.provide('goog.i18n.DateTimeSymbols_ar_BH'); +goog.provide('goog.i18n.DateTimeSymbols_ar_DJ'); goog.provide('goog.i18n.DateTimeSymbols_ar_DZ'); goog.provide('goog.i18n.DateTimeSymbols_ar_EG'); +goog.provide('goog.i18n.DateTimeSymbols_ar_EH'); +goog.provide('goog.i18n.DateTimeSymbols_ar_ER'); +goog.provide('goog.i18n.DateTimeSymbols_ar_IL'); goog.provide('goog.i18n.DateTimeSymbols_ar_IQ'); goog.provide('goog.i18n.DateTimeSymbols_ar_JO'); +goog.provide('goog.i18n.DateTimeSymbols_ar_KM'); goog.provide('goog.i18n.DateTimeSymbols_ar_KW'); goog.provide('goog.i18n.DateTimeSymbols_ar_LB'); goog.provide('goog.i18n.DateTimeSymbols_ar_LY'); goog.provide('goog.i18n.DateTimeSymbols_ar_MA'); +goog.provide('goog.i18n.DateTimeSymbols_ar_MR'); goog.provide('goog.i18n.DateTimeSymbols_ar_OM'); +goog.provide('goog.i18n.DateTimeSymbols_ar_PS'); goog.provide('goog.i18n.DateTimeSymbols_ar_QA'); goog.provide('goog.i18n.DateTimeSymbols_ar_SA'); goog.provide('goog.i18n.DateTimeSymbols_ar_SD'); +goog.provide('goog.i18n.DateTimeSymbols_ar_SO'); goog.provide('goog.i18n.DateTimeSymbols_ar_SY'); +goog.provide('goog.i18n.DateTimeSymbols_ar_TD'); goog.provide('goog.i18n.DateTimeSymbols_ar_TN'); goog.provide('goog.i18n.DateTimeSymbols_ar_YE'); goog.provide('goog.i18n.DateTimeSymbols_as'); goog.provide('goog.i18n.DateTimeSymbols_as_IN'); goog.provide('goog.i18n.DateTimeSymbols_asa'); goog.provide('goog.i18n.DateTimeSymbols_asa_TZ'); +goog.provide('goog.i18n.DateTimeSymbols_ast'); +goog.provide('goog.i18n.DateTimeSymbols_ast_ES'); goog.provide('goog.i18n.DateTimeSymbols_az'); goog.provide('goog.i18n.DateTimeSymbols_az_Cyrl'); goog.provide('goog.i18n.DateTimeSymbols_az_Cyrl_AZ'); @@ -80,14 +96,17 @@ goog.provide('goog.i18n.DateTimeSymbols_bn_IN'); goog.provide('goog.i18n.DateTimeSymbols_bo'); goog.provide('goog.i18n.DateTimeSymbols_bo_CN'); goog.provide('goog.i18n.DateTimeSymbols_bo_IN'); -goog.provide('goog.i18n.DateTimeSymbols_br'); goog.provide('goog.i18n.DateTimeSymbols_br_FR'); goog.provide('goog.i18n.DateTimeSymbols_brx'); goog.provide('goog.i18n.DateTimeSymbols_brx_IN'); goog.provide('goog.i18n.DateTimeSymbols_bs'); -goog.provide('goog.i18n.DateTimeSymbols_bs_BA'); +goog.provide('goog.i18n.DateTimeSymbols_bs_Cyrl'); +goog.provide('goog.i18n.DateTimeSymbols_bs_Cyrl_BA'); +goog.provide('goog.i18n.DateTimeSymbols_bs_Latn'); +goog.provide('goog.i18n.DateTimeSymbols_bs_Latn_BA'); goog.provide('goog.i18n.DateTimeSymbols_byn'); goog.provide('goog.i18n.DateTimeSymbols_byn_ER'); +goog.provide('goog.i18n.DateTimeSymbols_ca_AD'); goog.provide('goog.i18n.DateTimeSymbols_ca_ES'); goog.provide('goog.i18n.DateTimeSymbols_cgg'); goog.provide('goog.i18n.DateTimeSymbols_cgg_UG'); @@ -124,30 +143,71 @@ goog.provide('goog.i18n.DateTimeSymbols_ee_GH'); goog.provide('goog.i18n.DateTimeSymbols_ee_TG'); goog.provide('goog.i18n.DateTimeSymbols_el_CY'); goog.provide('goog.i18n.DateTimeSymbols_el_GR'); +goog.provide('goog.i18n.DateTimeSymbols_en_150'); +goog.provide('goog.i18n.DateTimeSymbols_en_AG'); goog.provide('goog.i18n.DateTimeSymbols_en_AS'); goog.provide('goog.i18n.DateTimeSymbols_en_BB'); goog.provide('goog.i18n.DateTimeSymbols_en_BE'); goog.provide('goog.i18n.DateTimeSymbols_en_BM'); +goog.provide('goog.i18n.DateTimeSymbols_en_BS'); goog.provide('goog.i18n.DateTimeSymbols_en_BW'); goog.provide('goog.i18n.DateTimeSymbols_en_BZ'); goog.provide('goog.i18n.DateTimeSymbols_en_CA'); +goog.provide('goog.i18n.DateTimeSymbols_en_CM'); +goog.provide('goog.i18n.DateTimeSymbols_en_DM'); goog.provide('goog.i18n.DateTimeSymbols_en_Dsrt'); goog.provide('goog.i18n.DateTimeSymbols_en_Dsrt_US'); +goog.provide('goog.i18n.DateTimeSymbols_en_FJ'); +goog.provide('goog.i18n.DateTimeSymbols_en_FM'); +goog.provide('goog.i18n.DateTimeSymbols_en_GD'); +goog.provide('goog.i18n.DateTimeSymbols_en_GG'); +goog.provide('goog.i18n.DateTimeSymbols_en_GH'); +goog.provide('goog.i18n.DateTimeSymbols_en_GI'); +goog.provide('goog.i18n.DateTimeSymbols_en_GM'); goog.provide('goog.i18n.DateTimeSymbols_en_GU'); goog.provide('goog.i18n.DateTimeSymbols_en_GY'); goog.provide('goog.i18n.DateTimeSymbols_en_HK'); +goog.provide('goog.i18n.DateTimeSymbols_en_IM'); +goog.provide('goog.i18n.DateTimeSymbols_en_JE'); goog.provide('goog.i18n.DateTimeSymbols_en_JM'); +goog.provide('goog.i18n.DateTimeSymbols_en_KE'); +goog.provide('goog.i18n.DateTimeSymbols_en_KI'); +goog.provide('goog.i18n.DateTimeSymbols_en_KN'); +goog.provide('goog.i18n.DateTimeSymbols_en_KY'); +goog.provide('goog.i18n.DateTimeSymbols_en_LC'); +goog.provide('goog.i18n.DateTimeSymbols_en_LR'); +goog.provide('goog.i18n.DateTimeSymbols_en_LS'); +goog.provide('goog.i18n.DateTimeSymbols_en_MG'); goog.provide('goog.i18n.DateTimeSymbols_en_MH'); goog.provide('goog.i18n.DateTimeSymbols_en_MP'); goog.provide('goog.i18n.DateTimeSymbols_en_MT'); goog.provide('goog.i18n.DateTimeSymbols_en_MU'); +goog.provide('goog.i18n.DateTimeSymbols_en_MW'); goog.provide('goog.i18n.DateTimeSymbols_en_NA'); +goog.provide('goog.i18n.DateTimeSymbols_en_NG'); goog.provide('goog.i18n.DateTimeSymbols_en_NZ'); +goog.provide('goog.i18n.DateTimeSymbols_en_PG'); goog.provide('goog.i18n.DateTimeSymbols_en_PH'); goog.provide('goog.i18n.DateTimeSymbols_en_PK'); +goog.provide('goog.i18n.DateTimeSymbols_en_PR'); +goog.provide('goog.i18n.DateTimeSymbols_en_PW'); +goog.provide('goog.i18n.DateTimeSymbols_en_SB'); +goog.provide('goog.i18n.DateTimeSymbols_en_SC'); +goog.provide('goog.i18n.DateTimeSymbols_en_SL'); +goog.provide('goog.i18n.DateTimeSymbols_en_SS'); +goog.provide('goog.i18n.DateTimeSymbols_en_SZ'); +goog.provide('goog.i18n.DateTimeSymbols_en_TC'); +goog.provide('goog.i18n.DateTimeSymbols_en_TO'); goog.provide('goog.i18n.DateTimeSymbols_en_TT'); +goog.provide('goog.i18n.DateTimeSymbols_en_TZ'); +goog.provide('goog.i18n.DateTimeSymbols_en_UG'); goog.provide('goog.i18n.DateTimeSymbols_en_UM'); +goog.provide('goog.i18n.DateTimeSymbols_en_VC'); +goog.provide('goog.i18n.DateTimeSymbols_en_VG'); goog.provide('goog.i18n.DateTimeSymbols_en_VI'); +goog.provide('goog.i18n.DateTimeSymbols_en_VU'); +goog.provide('goog.i18n.DateTimeSymbols_en_WS'); +goog.provide('goog.i18n.DateTimeSymbols_en_ZM'); goog.provide('goog.i18n.DateTimeSymbols_en_ZW'); goog.provide('goog.i18n.DateTimeSymbols_eo'); goog.provide('goog.i18n.DateTimeSymbols_es_AR'); @@ -155,16 +215,19 @@ goog.provide('goog.i18n.DateTimeSymbols_es_BO'); goog.provide('goog.i18n.DateTimeSymbols_es_CL'); goog.provide('goog.i18n.DateTimeSymbols_es_CO'); goog.provide('goog.i18n.DateTimeSymbols_es_CR'); +goog.provide('goog.i18n.DateTimeSymbols_es_CU'); goog.provide('goog.i18n.DateTimeSymbols_es_DO'); +goog.provide('goog.i18n.DateTimeSymbols_es_EA'); goog.provide('goog.i18n.DateTimeSymbols_es_EC'); -goog.provide('goog.i18n.DateTimeSymbols_es_ES'); goog.provide('goog.i18n.DateTimeSymbols_es_GQ'); goog.provide('goog.i18n.DateTimeSymbols_es_GT'); goog.provide('goog.i18n.DateTimeSymbols_es_HN'); +goog.provide('goog.i18n.DateTimeSymbols_es_IC'); goog.provide('goog.i18n.DateTimeSymbols_es_MX'); goog.provide('goog.i18n.DateTimeSymbols_es_NI'); goog.provide('goog.i18n.DateTimeSymbols_es_PA'); goog.provide('goog.i18n.DateTimeSymbols_es_PE'); +goog.provide('goog.i18n.DateTimeSymbols_es_PH'); goog.provide('goog.i18n.DateTimeSymbols_es_PR'); goog.provide('goog.i18n.DateTimeSymbols_es_PY'); goog.provide('goog.i18n.DateTimeSymbols_es_SV'); @@ -195,30 +258,43 @@ goog.provide('goog.i18n.DateTimeSymbols_fr_CH'); goog.provide('goog.i18n.DateTimeSymbols_fr_CI'); goog.provide('goog.i18n.DateTimeSymbols_fr_CM'); goog.provide('goog.i18n.DateTimeSymbols_fr_DJ'); +goog.provide('goog.i18n.DateTimeSymbols_fr_DZ'); goog.provide('goog.i18n.DateTimeSymbols_fr_FR'); goog.provide('goog.i18n.DateTimeSymbols_fr_GA'); goog.provide('goog.i18n.DateTimeSymbols_fr_GF'); goog.provide('goog.i18n.DateTimeSymbols_fr_GN'); goog.provide('goog.i18n.DateTimeSymbols_fr_GP'); goog.provide('goog.i18n.DateTimeSymbols_fr_GQ'); +goog.provide('goog.i18n.DateTimeSymbols_fr_HT'); goog.provide('goog.i18n.DateTimeSymbols_fr_KM'); goog.provide('goog.i18n.DateTimeSymbols_fr_LU'); +goog.provide('goog.i18n.DateTimeSymbols_fr_MA'); goog.provide('goog.i18n.DateTimeSymbols_fr_MC'); goog.provide('goog.i18n.DateTimeSymbols_fr_MF'); goog.provide('goog.i18n.DateTimeSymbols_fr_MG'); goog.provide('goog.i18n.DateTimeSymbols_fr_ML'); goog.provide('goog.i18n.DateTimeSymbols_fr_MQ'); +goog.provide('goog.i18n.DateTimeSymbols_fr_MR'); +goog.provide('goog.i18n.DateTimeSymbols_fr_MU'); +goog.provide('goog.i18n.DateTimeSymbols_fr_NC'); goog.provide('goog.i18n.DateTimeSymbols_fr_NE'); +goog.provide('goog.i18n.DateTimeSymbols_fr_PF'); goog.provide('goog.i18n.DateTimeSymbols_fr_RE'); goog.provide('goog.i18n.DateTimeSymbols_fr_RW'); +goog.provide('goog.i18n.DateTimeSymbols_fr_SC'); goog.provide('goog.i18n.DateTimeSymbols_fr_SN'); +goog.provide('goog.i18n.DateTimeSymbols_fr_SY'); goog.provide('goog.i18n.DateTimeSymbols_fr_TD'); goog.provide('goog.i18n.DateTimeSymbols_fr_TG'); +goog.provide('goog.i18n.DateTimeSymbols_fr_TN'); +goog.provide('goog.i18n.DateTimeSymbols_fr_VU'); goog.provide('goog.i18n.DateTimeSymbols_fr_YT'); goog.provide('goog.i18n.DateTimeSymbols_fur'); goog.provide('goog.i18n.DateTimeSymbols_fur_IT'); goog.provide('goog.i18n.DateTimeSymbols_ga'); goog.provide('goog.i18n.DateTimeSymbols_ga_IE'); +goog.provide('goog.i18n.DateTimeSymbols_gd'); +goog.provide('goog.i18n.DateTimeSymbols_gd_GB'); goog.provide('goog.i18n.DateTimeSymbols_gl_ES'); goog.provide('goog.i18n.DateTimeSymbols_gsw_CH'); goog.provide('goog.i18n.DateTimeSymbols_gu_IN'); @@ -234,11 +310,13 @@ goog.provide('goog.i18n.DateTimeSymbols_ha_Latn_NG'); goog.provide('goog.i18n.DateTimeSymbols_haw_US'); goog.provide('goog.i18n.DateTimeSymbols_he_IL'); goog.provide('goog.i18n.DateTimeSymbols_hi_IN'); +goog.provide('goog.i18n.DateTimeSymbols_hr_BA'); goog.provide('goog.i18n.DateTimeSymbols_hr_HR'); goog.provide('goog.i18n.DateTimeSymbols_hu_HU'); goog.provide('goog.i18n.DateTimeSymbols_hy'); goog.provide('goog.i18n.DateTimeSymbols_hy_AM'); goog.provide('goog.i18n.DateTimeSymbols_ia'); +goog.provide('goog.i18n.DateTimeSymbols_ia_FR'); goog.provide('goog.i18n.DateTimeSymbols_id_ID'); goog.provide('goog.i18n.DateTimeSymbols_ig'); goog.provide('goog.i18n.DateTimeSymbols_ig_NG'); @@ -247,7 +325,10 @@ goog.provide('goog.i18n.DateTimeSymbols_ii_CN'); goog.provide('goog.i18n.DateTimeSymbols_is_IS'); goog.provide('goog.i18n.DateTimeSymbols_it_CH'); goog.provide('goog.i18n.DateTimeSymbols_it_IT'); +goog.provide('goog.i18n.DateTimeSymbols_it_SM'); goog.provide('goog.i18n.DateTimeSymbols_ja_JP'); +goog.provide('goog.i18n.DateTimeSymbols_jgo'); +goog.provide('goog.i18n.DateTimeSymbols_jgo_CM'); goog.provide('goog.i18n.DateTimeSymbols_jmc'); goog.provide('goog.i18n.DateTimeSymbols_jmc_TZ'); goog.provide('goog.i18n.DateTimeSymbols_ka'); @@ -267,6 +348,8 @@ goog.provide('goog.i18n.DateTimeSymbols_ki_KE'); goog.provide('goog.i18n.DateTimeSymbols_kk'); goog.provide('goog.i18n.DateTimeSymbols_kk_Cyrl'); goog.provide('goog.i18n.DateTimeSymbols_kk_Cyrl_KZ'); +goog.provide('goog.i18n.DateTimeSymbols_kkj'); +goog.provide('goog.i18n.DateTimeSymbols_kkj_CM'); goog.provide('goog.i18n.DateTimeSymbols_kl'); goog.provide('goog.i18n.DateTimeSymbols_kl_GL'); goog.provide('goog.i18n.DateTimeSymbols_kln'); @@ -274,23 +357,30 @@ goog.provide('goog.i18n.DateTimeSymbols_kln_KE'); goog.provide('goog.i18n.DateTimeSymbols_km'); goog.provide('goog.i18n.DateTimeSymbols_km_KH'); goog.provide('goog.i18n.DateTimeSymbols_kn_IN'); +goog.provide('goog.i18n.DateTimeSymbols_ko_KP'); goog.provide('goog.i18n.DateTimeSymbols_ko_KR'); goog.provide('goog.i18n.DateTimeSymbols_kok'); goog.provide('goog.i18n.DateTimeSymbols_kok_IN'); +goog.provide('goog.i18n.DateTimeSymbols_ks'); +goog.provide('goog.i18n.DateTimeSymbols_ks_Arab'); +goog.provide('goog.i18n.DateTimeSymbols_ks_Arab_IN'); goog.provide('goog.i18n.DateTimeSymbols_ksb'); goog.provide('goog.i18n.DateTimeSymbols_ksb_TZ'); goog.provide('goog.i18n.DateTimeSymbols_ksf'); goog.provide('goog.i18n.DateTimeSymbols_ksf_CM'); goog.provide('goog.i18n.DateTimeSymbols_ksh'); goog.provide('goog.i18n.DateTimeSymbols_ksh_DE'); -goog.provide('goog.i18n.DateTimeSymbols_ku'); goog.provide('goog.i18n.DateTimeSymbols_kw'); goog.provide('goog.i18n.DateTimeSymbols_kw_GB'); +goog.provide('goog.i18n.DateTimeSymbols_ky'); +goog.provide('goog.i18n.DateTimeSymbols_ky_KG'); goog.provide('goog.i18n.DateTimeSymbols_lag'); goog.provide('goog.i18n.DateTimeSymbols_lag_TZ'); goog.provide('goog.i18n.DateTimeSymbols_lg'); goog.provide('goog.i18n.DateTimeSymbols_lg_UG'); +goog.provide('goog.i18n.DateTimeSymbols_ln_AO'); goog.provide('goog.i18n.DateTimeSymbols_ln_CD'); +goog.provide('goog.i18n.DateTimeSymbols_ln_CF'); goog.provide('goog.i18n.DateTimeSymbols_ln_CG'); goog.provide('goog.i18n.DateTimeSymbols_lo'); goog.provide('goog.i18n.DateTimeSymbols_lo_LA'); @@ -313,12 +403,19 @@ goog.provide('goog.i18n.DateTimeSymbols_mg'); goog.provide('goog.i18n.DateTimeSymbols_mg_MG'); goog.provide('goog.i18n.DateTimeSymbols_mgh'); goog.provide('goog.i18n.DateTimeSymbols_mgh_MZ'); +goog.provide('goog.i18n.DateTimeSymbols_mgo'); +goog.provide('goog.i18n.DateTimeSymbols_mgo_CM'); goog.provide('goog.i18n.DateTimeSymbols_mk'); goog.provide('goog.i18n.DateTimeSymbols_mk_MK'); goog.provide('goog.i18n.DateTimeSymbols_ml_IN'); +goog.provide('goog.i18n.DateTimeSymbols_mn'); +goog.provide('goog.i18n.DateTimeSymbols_mn_Cyrl'); +goog.provide('goog.i18n.DateTimeSymbols_mn_Cyrl_MN'); goog.provide('goog.i18n.DateTimeSymbols_mr_IN'); -goog.provide('goog.i18n.DateTimeSymbols_ms_BN'); -goog.provide('goog.i18n.DateTimeSymbols_ms_MY'); +goog.provide('goog.i18n.DateTimeSymbols_ms_Latn'); +goog.provide('goog.i18n.DateTimeSymbols_ms_Latn_BN'); +goog.provide('goog.i18n.DateTimeSymbols_ms_Latn_MY'); +goog.provide('goog.i18n.DateTimeSymbols_ms_Latn_SG'); goog.provide('goog.i18n.DateTimeSymbols_mt_MT'); goog.provide('goog.i18n.DateTimeSymbols_mua'); goog.provide('goog.i18n.DateTimeSymbols_mua_CM'); @@ -326,7 +423,6 @@ goog.provide('goog.i18n.DateTimeSymbols_my'); goog.provide('goog.i18n.DateTimeSymbols_my_MM'); goog.provide('goog.i18n.DateTimeSymbols_naq'); goog.provide('goog.i18n.DateTimeSymbols_naq_NA'); -goog.provide('goog.i18n.DateTimeSymbols_nb'); goog.provide('goog.i18n.DateTimeSymbols_nb_NO'); goog.provide('goog.i18n.DateTimeSymbols_nd'); goog.provide('goog.i18n.DateTimeSymbols_nd_ZW'); @@ -335,11 +431,16 @@ goog.provide('goog.i18n.DateTimeSymbols_ne_IN'); goog.provide('goog.i18n.DateTimeSymbols_ne_NP'); goog.provide('goog.i18n.DateTimeSymbols_nl_AW'); goog.provide('goog.i18n.DateTimeSymbols_nl_BE'); +goog.provide('goog.i18n.DateTimeSymbols_nl_CW'); goog.provide('goog.i18n.DateTimeSymbols_nl_NL'); +goog.provide('goog.i18n.DateTimeSymbols_nl_SR'); +goog.provide('goog.i18n.DateTimeSymbols_nl_SX'); goog.provide('goog.i18n.DateTimeSymbols_nmg'); goog.provide('goog.i18n.DateTimeSymbols_nmg_CM'); goog.provide('goog.i18n.DateTimeSymbols_nn'); goog.provide('goog.i18n.DateTimeSymbols_nn_NO'); +goog.provide('goog.i18n.DateTimeSymbols_nnh'); +goog.provide('goog.i18n.DateTimeSymbols_nnh_CM'); goog.provide('goog.i18n.DateTimeSymbols_nr'); goog.provide('goog.i18n.DateTimeSymbols_nr_ZA'); goog.provide('goog.i18n.DateTimeSymbols_nso'); @@ -352,6 +453,9 @@ goog.provide('goog.i18n.DateTimeSymbols_om'); goog.provide('goog.i18n.DateTimeSymbols_om_ET'); goog.provide('goog.i18n.DateTimeSymbols_om_KE'); goog.provide('goog.i18n.DateTimeSymbols_or_IN'); +goog.provide('goog.i18n.DateTimeSymbols_os'); +goog.provide('goog.i18n.DateTimeSymbols_os_GE'); +goog.provide('goog.i18n.DateTimeSymbols_os_RU'); goog.provide('goog.i18n.DateTimeSymbols_pa'); goog.provide('goog.i18n.DateTimeSymbols_pa_Arab'); goog.provide('goog.i18n.DateTimeSymbols_pa_Arab_PK'); @@ -361,9 +465,12 @@ goog.provide('goog.i18n.DateTimeSymbols_pl_PL'); goog.provide('goog.i18n.DateTimeSymbols_ps'); goog.provide('goog.i18n.DateTimeSymbols_ps_AF'); goog.provide('goog.i18n.DateTimeSymbols_pt_AO'); +goog.provide('goog.i18n.DateTimeSymbols_pt_CV'); goog.provide('goog.i18n.DateTimeSymbols_pt_GW'); +goog.provide('goog.i18n.DateTimeSymbols_pt_MO'); goog.provide('goog.i18n.DateTimeSymbols_pt_MZ'); goog.provide('goog.i18n.DateTimeSymbols_pt_ST'); +goog.provide('goog.i18n.DateTimeSymbols_pt_TL'); goog.provide('goog.i18n.DateTimeSymbols_rm'); goog.provide('goog.i18n.DateTimeSymbols_rm_CH'); goog.provide('goog.i18n.DateTimeSymbols_rn'); @@ -372,6 +479,9 @@ goog.provide('goog.i18n.DateTimeSymbols_ro_MD'); goog.provide('goog.i18n.DateTimeSymbols_ro_RO'); goog.provide('goog.i18n.DateTimeSymbols_rof'); goog.provide('goog.i18n.DateTimeSymbols_rof_TZ'); +goog.provide('goog.i18n.DateTimeSymbols_ru_BY'); +goog.provide('goog.i18n.DateTimeSymbols_ru_KG'); +goog.provide('goog.i18n.DateTimeSymbols_ru_KZ'); goog.provide('goog.i18n.DateTimeSymbols_ru_MD'); goog.provide('goog.i18n.DateTimeSymbols_ru_RU'); goog.provide('goog.i18n.DateTimeSymbols_ru_UA'); @@ -411,14 +521,18 @@ goog.provide('goog.i18n.DateTimeSymbols_so_ET'); goog.provide('goog.i18n.DateTimeSymbols_so_KE'); goog.provide('goog.i18n.DateTimeSymbols_so_SO'); goog.provide('goog.i18n.DateTimeSymbols_sq_AL'); +goog.provide('goog.i18n.DateTimeSymbols_sq_MK'); +goog.provide('goog.i18n.DateTimeSymbols_sq_XK'); goog.provide('goog.i18n.DateTimeSymbols_sr_Cyrl'); goog.provide('goog.i18n.DateTimeSymbols_sr_Cyrl_BA'); goog.provide('goog.i18n.DateTimeSymbols_sr_Cyrl_ME'); goog.provide('goog.i18n.DateTimeSymbols_sr_Cyrl_RS'); +goog.provide('goog.i18n.DateTimeSymbols_sr_Cyrl_XK'); goog.provide('goog.i18n.DateTimeSymbols_sr_Latn'); goog.provide('goog.i18n.DateTimeSymbols_sr_Latn_BA'); goog.provide('goog.i18n.DateTimeSymbols_sr_Latn_ME'); goog.provide('goog.i18n.DateTimeSymbols_sr_Latn_RS'); +goog.provide('goog.i18n.DateTimeSymbols_sr_Latn_XK'); goog.provide('goog.i18n.DateTimeSymbols_ss'); goog.provide('goog.i18n.DateTimeSymbols_ss_SZ'); goog.provide('goog.i18n.DateTimeSymbols_ss_ZA'); @@ -427,14 +541,18 @@ goog.provide('goog.i18n.DateTimeSymbols_ssy_ER'); goog.provide('goog.i18n.DateTimeSymbols_st'); goog.provide('goog.i18n.DateTimeSymbols_st_LS'); goog.provide('goog.i18n.DateTimeSymbols_st_ZA'); +goog.provide('goog.i18n.DateTimeSymbols_sv_AX'); goog.provide('goog.i18n.DateTimeSymbols_sv_FI'); goog.provide('goog.i18n.DateTimeSymbols_sv_SE'); goog.provide('goog.i18n.DateTimeSymbols_sw_KE'); goog.provide('goog.i18n.DateTimeSymbols_sw_TZ'); +goog.provide('goog.i18n.DateTimeSymbols_sw_UG'); goog.provide('goog.i18n.DateTimeSymbols_swc'); goog.provide('goog.i18n.DateTimeSymbols_swc_CD'); goog.provide('goog.i18n.DateTimeSymbols_ta_IN'); goog.provide('goog.i18n.DateTimeSymbols_ta_LK'); +goog.provide('goog.i18n.DateTimeSymbols_ta_MY'); +goog.provide('goog.i18n.DateTimeSymbols_ta_SG'); goog.provide('goog.i18n.DateTimeSymbols_te_IN'); goog.provide('goog.i18n.DateTimeSymbols_teo'); goog.provide('goog.i18n.DateTimeSymbols_teo_KE'); @@ -449,9 +567,11 @@ goog.provide('goog.i18n.DateTimeSymbols_ti_ET'); goog.provide('goog.i18n.DateTimeSymbols_tig'); goog.provide('goog.i18n.DateTimeSymbols_tig_ER'); goog.provide('goog.i18n.DateTimeSymbols_tn'); +goog.provide('goog.i18n.DateTimeSymbols_tn_BW'); goog.provide('goog.i18n.DateTimeSymbols_tn_ZA'); goog.provide('goog.i18n.DateTimeSymbols_to'); goog.provide('goog.i18n.DateTimeSymbols_to_TO'); +goog.provide('goog.i18n.DateTimeSymbols_tr_CY'); goog.provide('goog.i18n.DateTimeSymbols_tr_TR'); goog.provide('goog.i18n.DateTimeSymbols_ts'); goog.provide('goog.i18n.DateTimeSymbols_ts_ZA'); @@ -478,6 +598,7 @@ goog.provide('goog.i18n.DateTimeSymbols_vai_Vaii_LR'); goog.provide('goog.i18n.DateTimeSymbols_ve'); goog.provide('goog.i18n.DateTimeSymbols_ve_ZA'); goog.provide('goog.i18n.DateTimeSymbols_vi_VN'); +goog.provide('goog.i18n.DateTimeSymbols_vo'); goog.provide('goog.i18n.DateTimeSymbols_vun'); goog.provide('goog.i18n.DateTimeSymbols_vun_TZ'); goog.provide('goog.i18n.DateTimeSymbols_wae'); @@ -513,21 +634,21 @@ goog.i18n.DateTimeSymbols_aa = { ERANAMES: ['Yaasuusuk Duma', 'Yaasuusuk Wadir'], NARROWMONTHS: ['Q', 'N', 'C', 'A', 'C', 'Q', 'Q', 'L', 'W', 'D', 'X', 'K'], STANDALONENARROWMONTHS: ['Q', 'N', 'C', 'A', 'C', 'Q', 'Q', 'L', 'W', 'D', - 'X', 'K'], + 'X', 'K'], MONTHS: ['Qunxa Garablu', 'Kudo', 'Ciggilta Kudo', 'Agda Baxis', 'Caxah Alsa', - 'Qasa Dirri', 'Qado Dirri', 'Liiqen', 'Waysu', 'Diteli', 'Ximoli', - 'Kaxxa Garablu'], + 'Qasa Dirri', 'Qado Dirri', 'Liiqen', 'Waysu', 'Diteli', 'Ximoli', + 'Kaxxa Garablu'], STANDALONEMONTHS: ['Qunxa Garablu', 'Kudo', 'Ciggilta Kudo', 'Agda Baxis', - 'Caxah Alsa', 'Qasa Dirri', 'Qado Dirri', 'Liiqen', 'Waysu', 'Diteli', - 'Ximoli', 'Kaxxa Garablu'], + 'Caxah Alsa', 'Qasa Dirri', 'Qado Dirri', 'Liiqen', 'Waysu', 'Diteli', + 'Ximoli', 'Kaxxa Garablu'], SHORTMONTHS: ['Qun', 'Nah', 'Cig', 'Agd', 'Cax', 'Qas', 'Qad', 'Leq', 'Way', - 'Dit', 'Xim', 'Kax'], + 'Dit', 'Xim', 'Kax'], STANDALONESHORTMONTHS: ['Qun', 'Nah', 'Cig', 'Agd', 'Cax', 'Qas', 'Qad', - 'Leq', 'Way', 'Dit', 'Xim', 'Kax'], + 'Leq', 'Way', 'Dit', 'Xim', 'Kax'], WEEKDAYS: ['Acaada', 'Etleeni', 'Talaata', 'Arbaqa', 'Kamiisi', 'Gumqata', - 'Sabti'], + 'Sabti'], STANDALONEWEEKDAYS: ['Acaada', 'Etleeni', 'Talaata', 'Arbaqa', 'Kamiisi', - 'Gumqata', 'Sabti'], + 'Gumqata', 'Sabti'], SHORTWEEKDAYS: ['Aca', 'Etl', 'Tal', 'Arb', 'Kam', 'Gum', 'Sab'], STANDALONESHORTWEEKDAYS: ['Aca', 'Etl', 'Tal', 'Arb', 'Kam', 'Gum', 'Sab'], NARROWWEEKDAYS: ['A', 'E', 'T', 'A', 'K', 'G', 'S'], @@ -537,6 +658,7 @@ goog.i18n.DateTimeSymbols_aa = { AMPMS: ['saaku', 'carra'], DATEFORMATS: ['EEEE, MMMM dd, y', 'dd MMMM y', 'dd-MMM-y', 'dd/MM/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -551,21 +673,21 @@ goog.i18n.DateTimeSymbols_aa_DJ = { ERANAMES: ['Yaasuusuk Duma', 'Yaasuusuk Wadir'], NARROWMONTHS: ['Q', 'N', 'C', 'A', 'C', 'Q', 'Q', 'L', 'W', 'D', 'X', 'K'], STANDALONENARROWMONTHS: ['Q', 'N', 'C', 'A', 'C', 'Q', 'Q', 'L', 'W', 'D', - 'X', 'K'], + 'X', 'K'], MONTHS: ['Qunxa Garablu', 'Kudo', 'Ciggilta Kudo', 'Agda Baxis', 'Caxah Alsa', - 'Qasa Dirri', 'Qado Dirri', 'Leqeeni', 'Waysu', 'Diteli', 'Ximoli', - 'Kaxxa Garablu'], + 'Qasa Dirri', 'Qado Dirri', 'Leqeeni', 'Waysu', 'Diteli', 'Ximoli', + 'Kaxxa Garablu'], STANDALONEMONTHS: ['Qunxa Garablu', 'Kudo', 'Ciggilta Kudo', 'Agda Baxis', - 'Caxah Alsa', 'Qasa Dirri', 'Qado Dirri', 'Leqeeni', 'Waysu', 'Diteli', - 'Ximoli', 'Kaxxa Garablu'], + 'Caxah Alsa', 'Qasa Dirri', 'Qado Dirri', 'Leqeeni', 'Waysu', 'Diteli', + 'Ximoli', 'Kaxxa Garablu'], SHORTMONTHS: ['Qun', 'Nah', 'Cig', 'Agd', 'Cax', 'Qas', 'Qad', 'Leq', 'Way', - 'Dit', 'Xim', 'Kax'], + 'Dit', 'Xim', 'Kax'], STANDALONESHORTMONTHS: ['Qun', 'Nah', 'Cig', 'Agd', 'Cax', 'Qas', 'Qad', - 'Leq', 'Way', 'Dit', 'Xim', 'Kax'], + 'Leq', 'Way', 'Dit', 'Xim', 'Kax'], WEEKDAYS: ['Acaada', 'Etleeni', 'Talaata', 'Arbaqa', 'Kamiisi', 'Gumqata', - 'Sabti'], + 'Sabti'], STANDALONEWEEKDAYS: ['Acaada', 'Etleeni', 'Talaata', 'Arbaqa', 'Kamiisi', - 'Gumqata', 'Sabti'], + 'Gumqata', 'Sabti'], SHORTWEEKDAYS: ['Aca', 'Etl', 'Tal', 'Arb', 'Kam', 'Gum', 'Sab'], STANDALONESHORTWEEKDAYS: ['Aca', 'Etl', 'Tal', 'Arb', 'Kam', 'Gum', 'Sab'], NARROWWEEKDAYS: ['A', 'E', 'T', 'A', 'K', 'G', 'S'], @@ -575,6 +697,7 @@ goog.i18n.DateTimeSymbols_aa_DJ = { AMPMS: ['saaku', 'carra'], DATEFORMATS: ['EEEE, MMMM dd, y', 'dd MMMM y', 'dd-MMM-y', 'dd/MM/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 5, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 4 @@ -601,19 +724,19 @@ goog.i18n.DateTimeSymbols_af_NA = { ERANAMES: ['voor Christus', 'na Christus'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Januarie', 'Februarie', 'Maart', 'April', 'Mei', 'Junie', 'Julie', - 'Augustus', 'September', 'Oktober', 'November', 'Desember'], + 'Augustus', 'September', 'Oktober', 'November', 'Desember'], STANDALONEMONTHS: ['Januarie', 'Februarie', 'Maart', 'April', 'Mei', 'Junie', - 'Julie', 'Augustus', 'September', 'Oktober', 'November', 'Desember'], + 'Julie', 'Augustus', 'September', 'Oktober', 'November', 'Desember'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Aug', 'Sep', - 'Okt', 'Nov', 'Des'], + 'Okt', 'Nov', 'Des'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', - 'Aug', 'Sep', 'Okt', 'Nov', 'Des'], + 'Aug', 'Sep', 'Okt', 'Nov', 'Des'], WEEKDAYS: ['Sondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrydag', - 'Saterdag'], + 'Saterdag'], STANDALONEWEEKDAYS: ['Sondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', - 'Vrydag', 'Saterdag'], + 'Vrydag', 'Saterdag'], SHORTWEEKDAYS: ['So', 'Ma', 'Di', 'Wo', 'Do', 'Vr', 'Sa'], STANDALONESHORTWEEKDAYS: ['So', 'Ma', 'Di', 'Wo', 'Do', 'Vr', 'Sa'], NARROWWEEKDAYS: ['S', 'M', 'D', 'W', 'D', 'V', 'S'], @@ -621,8 +744,9 @@ goog.i18n.DateTimeSymbols_af_NA = { SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], QUARTERS: ['1ste kwartaal', '2de kwartaal', '3de kwartaal', '4de kwartaal'], AMPMS: ['vm.', 'nm.'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'yyyy-MM-dd'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'y-MM-dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -637,19 +761,19 @@ goog.i18n.DateTimeSymbols_af_ZA = { ERANAMES: ['voor Christus', 'na Christus'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Januarie', 'Februarie', 'Maart', 'April', 'Mei', 'Junie', 'Julie', - 'Augustus', 'September', 'Oktober', 'November', 'Desember'], + 'Augustus', 'September', 'Oktober', 'November', 'Desember'], STANDALONEMONTHS: ['Januarie', 'Februarie', 'Maart', 'April', 'Mei', 'Junie', - 'Julie', 'Augustus', 'September', 'Oktober', 'November', 'Desember'], + 'Julie', 'Augustus', 'September', 'Oktober', 'November', 'Desember'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Aug', 'Sep', - 'Okt', 'Nov', 'Des'], + 'Okt', 'Nov', 'Des'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', - 'Aug', 'Sep', 'Okt', 'Nov', 'Des'], + 'Aug', 'Sep', 'Okt', 'Nov', 'Des'], WEEKDAYS: ['Sondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrydag', - 'Saterdag'], + 'Saterdag'], STANDALONEWEEKDAYS: ['Sondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', - 'Vrydag', 'Saterdag'], + 'Vrydag', 'Saterdag'], SHORTWEEKDAYS: ['So', 'Ma', 'Di', 'Wo', 'Do', 'Vr', 'Sa'], STANDALONESHORTWEEKDAYS: ['So', 'Ma', 'Di', 'Wo', 'Do', 'Vr', 'Sa'], NARROWWEEKDAYS: ['S', 'M', 'D', 'W', 'D', 'V', 'S'], @@ -657,8 +781,9 @@ goog.i18n.DateTimeSymbols_af_ZA = { SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], QUARTERS: ['1ste kwartaal', '2de kwartaal', '3de kwartaal', '4de kwartaal'], AMPMS: ['vm.', 'nm.'], - DATEFORMATS: ['EEEE dd MMMM y', 'dd MMMM y', 'dd MMM y', 'yyyy-MM-dd'], + DATEFORMATS: ['EEEE dd MMMM y', 'dd MMMM y', 'dd MMM y', 'y-MM-dd'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -673,27 +798,27 @@ goog.i18n.DateTimeSymbols_agq = { ERANAMES: ['Sěe Kɨ̀lesto', 'Bǎa Kɨ̀lesto'], NARROWMONTHS: ['n', 'k', 't', 't', 's', 'z', 'k', 'f', 'd', 'l', 'c', 'f'], STANDALONENARROWMONTHS: ['n', 'k', 't', 't', 's', 'z', 'k', 'f', 'd', 'l', - 'c', 'f'], + 'c', 'f'], MONTHS: ['ndzɔ̀ŋɔ̀nùm', 'ndzɔ̀ŋɔ̀kƗ̀zùʔ', - 'ndzɔ̀ŋɔ̀tƗ̀dʉ̀ghà', 'ndzɔ̀ŋɔ̀tǎafʉ̄ghā', - 'ndzɔ̀ŋèsèe', 'ndzɔ̀ŋɔ̀nzùghò', 'ndzɔ̀ŋɔ̀dùmlo', - 'ndzɔ̀ŋɔ̀kwîfɔ̀e', 'ndzɔ̀ŋɔ̀tƗ̀fʉ̀ghàdzughù', - 'ndzɔ̀ŋɔ̀ghǔuwelɔ̀m', 'ndzɔ̀ŋɔ̀chwaʔàkaa wo', - 'ndzɔ̀ŋèfwòo'], + 'ndzɔ̀ŋɔ̀tƗ̀dʉ̀ghà', 'ndzɔ̀ŋɔ̀tǎafʉ̄ghā', + 'ndzɔ̀ŋèsèe', 'ndzɔ̀ŋɔ̀nzùghò', 'ndzɔ̀ŋɔ̀dùmlo', + 'ndzɔ̀ŋɔ̀kwîfɔ̀e', 'ndzɔ̀ŋɔ̀tƗ̀fʉ̀ghàdzughù', + 'ndzɔ̀ŋɔ̀ghǔuwelɔ̀m', 'ndzɔ̀ŋɔ̀chwaʔàkaa wo', + 'ndzɔ̀ŋèfwòo'], STANDALONEMONTHS: ['ndzɔ̀ŋɔ̀nùm', 'ndzɔ̀ŋɔ̀kƗ̀zùʔ', - 'ndzɔ̀ŋɔ̀tƗ̀dʉ̀ghà', 'ndzɔ̀ŋɔ̀tǎafʉ̄ghā', - 'ndzɔ̀ŋèsèe', 'ndzɔ̀ŋɔ̀nzùghò', 'ndzɔ̀ŋɔ̀dùmlo', - 'ndzɔ̀ŋɔ̀kwîfɔ̀e', 'ndzɔ̀ŋɔ̀tƗ̀fʉ̀ghàdzughù', - 'ndzɔ̀ŋɔ̀ghǔuwelɔ̀m', 'ndzɔ̀ŋɔ̀chwaʔàkaa wo', - 'ndzɔ̀ŋèfwòo'], + 'ndzɔ̀ŋɔ̀tƗ̀dʉ̀ghà', 'ndzɔ̀ŋɔ̀tǎafʉ̄ghā', + 'ndzɔ̀ŋèsèe', 'ndzɔ̀ŋɔ̀nzùghò', 'ndzɔ̀ŋɔ̀dùmlo', + 'ndzɔ̀ŋɔ̀kwîfɔ̀e', 'ndzɔ̀ŋɔ̀tƗ̀fʉ̀ghàdzughù', + 'ndzɔ̀ŋɔ̀ghǔuwelɔ̀m', 'ndzɔ̀ŋɔ̀chwaʔàkaa wo', + 'ndzɔ̀ŋèfwòo'], SHORTMONTHS: ['nùm', 'kɨz', 'tɨd', 'taa', 'see', 'nzu', 'dum', 'fɔe', - 'dzu', 'lɔm', 'kaa', 'fwo'], + 'dzu', 'lɔm', 'kaa', 'fwo'], STANDALONESHORTMONTHS: ['nùm', 'kɨz', 'tɨd', 'taa', 'see', 'nzu', 'dum', - 'fɔe', 'dzu', 'lɔm', 'kaa', 'fwo'], + 'fɔe', 'dzu', 'lɔm', 'kaa', 'fwo'], WEEKDAYS: ['tsuʔntsɨ', 'tsuʔukpà', 'tsuʔughɔe', 'tsuʔutɔ̀mlò', - 'tsuʔumè', 'tsuʔughɨ̂m', 'tsuʔndzɨkɔʔɔ'], + 'tsuʔumè', 'tsuʔughɨ̂m', 'tsuʔndzɨkɔʔɔ'], STANDALONEWEEKDAYS: ['tsuʔntsɨ', 'tsuʔukpà', 'tsuʔughɔe', - 'tsuʔutɔ̀mlò', 'tsuʔumè', 'tsuʔughɨ̂m', 'tsuʔndzɨkɔʔɔ'], + 'tsuʔutɔ̀mlò', 'tsuʔumè', 'tsuʔughɨ̂m', 'tsuʔndzɨkɔʔɔ'], SHORTWEEKDAYS: ['nts', 'kpa', 'ghɔ', 'tɔm', 'ume', 'ghɨ', 'dzk'], STANDALONESHORTWEEKDAYS: ['nts', 'kpa', 'ghɔ', 'tɔm', 'ume', 'ghɨ', 'dzk'], NARROWWEEKDAYS: ['n', 'k', 'g', 't', 'u', 'g', 'd'], @@ -701,8 +826,9 @@ goog.i18n.DateTimeSymbols_agq = { SHORTQUARTERS: ['kɨbâ kɨ 1', 'ugbâ u 2', 'ugbâ u 3', 'ugbâ u 4'], QUARTERS: ['kɨbâ kɨ 1', 'ugbâ u 2', 'ugbâ u 3', 'ugbâ u 4'], AMPMS: ['a.g', 'a.k'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM, y', 'd/M/yyyy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM, y', 'd/M/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -723,25 +849,23 @@ goog.i18n.DateTimeSymbols_ak = { ERANAMES: ['Ansa Kristo', 'Kristo Ekyiri'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['Sanda-Ɔpɛpɔn', 'Kwakwar-Ɔgyefuo', 'Ebɔw-Ɔbenem', - 'Ebɔbira-Oforisuo', 'Esusow Aketseaba-Kɔtɔnimba', - 'Obirade-Ayɛwohomumu', 'Ayɛwoho-Kitawonsa', 'Difuu-Ɔsandaa', - 'Fankwa-Ɛbɔ', 'Ɔbɛsɛ-Ahinime', 'Ɔberɛfɛw-Obubuo', - 'Mumu-Ɔpɛnimba'], + 'Ebɔbira-Oforisuo', 'Esusow Aketseaba-Kɔtɔnimba', 'Obirade-Ayɛwohomumu', + 'Ayɛwoho-Kitawonsa', 'Difuu-Ɔsandaa', 'Fankwa-Ɛbɔ', 'Ɔbɛsɛ-Ahinime', + 'Ɔberɛfɛw-Obubuo', 'Mumu-Ɔpɛnimba'], STANDALONEMONTHS: ['Sanda-Ɔpɛpɔn', 'Kwakwar-Ɔgyefuo', 'Ebɔw-Ɔbenem', - 'Ebɔbira-Oforisuo', 'Esusow Aketseaba-Kɔtɔnimba', - 'Obirade-Ayɛwohomumu', 'Ayɛwoho-Kitawonsa', 'Difuu-Ɔsandaa', - 'Fankwa-Ɛbɔ', 'Ɔbɛsɛ-Ahinime', 'Ɔberɛfɛw-Obubuo', - 'Mumu-Ɔpɛnimba'], + 'Ebɔbira-Oforisuo', 'Esusow Aketseaba-Kɔtɔnimba', 'Obirade-Ayɛwohomumu', + 'Ayɛwoho-Kitawonsa', 'Difuu-Ɔsandaa', 'Fankwa-Ɛbɔ', 'Ɔbɛsɛ-Ahinime', + 'Ɔberɛfɛw-Obubuo', 'Mumu-Ɔpɛnimba'], SHORTMONTHS: ['S-Ɔ', 'K-Ɔ', 'E-Ɔ', 'E-O', 'E-K', 'O-A', 'A-K', 'D-Ɔ', - 'F-Ɛ', 'Ɔ-A', 'Ɔ-O', 'M-Ɔ'], + 'F-Ɛ', 'Ɔ-A', 'Ɔ-O', 'M-Ɔ'], STANDALONESHORTMONTHS: ['S-Ɔ', 'K-Ɔ', 'E-Ɔ', 'E-O', 'E-K', 'O-A', 'A-K', - 'D-Ɔ', 'F-Ɛ', 'Ɔ-A', 'Ɔ-O', 'M-Ɔ'], + 'D-Ɔ', 'F-Ɛ', 'Ɔ-A', 'Ɔ-O', 'M-Ɔ'], WEEKDAYS: ['Kwesida', 'Dwowda', 'Benada', 'Wukuda', 'Yawda', 'Fida', - 'Memeneda'], + 'Memeneda'], STANDALONEWEEKDAYS: ['Kwesida', 'Dwowda', 'Benada', 'Wukuda', 'Yawda', 'Fida', - 'Memeneda'], + 'Memeneda'], SHORTWEEKDAYS: ['Kwe', 'Dwo', 'Ben', 'Wuk', 'Yaw', 'Fia', 'Mem'], STANDALONESHORTWEEKDAYS: ['Kwe', 'Dwo', 'Ben', 'Wuk', 'Yaw', 'Fia', 'Mem'], NARROWWEEKDAYS: ['K', 'D', 'B', 'W', 'Y', 'F', 'M'], @@ -751,6 +875,7 @@ goog.i18n.DateTimeSymbols_ak = { AMPMS: ['AN', 'EW'], DATEFORMATS: ['EEEE, y MMMM dd', 'y MMMM d', 'y MMM d', 'yy/MM/dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -770,44 +895,93 @@ goog.i18n.DateTimeSymbols_am_ET = { ERAS: ['ዓ/ዓ', 'ዓ/ም'], ERANAMES: ['ዓመተ ዓለም', 'ዓመተ ምሕረት'], NARROWMONTHS: ['ጃ', 'ፌ', 'ማ', 'ኤ', 'ሜ', 'ጁ', 'ጁ', 'ኦ', 'ሴ', - 'ኦ', 'ኖ', 'ዲ'], + 'ኦ', 'ኖ', 'ዲ'], STANDALONENARROWMONTHS: ['ጃ', 'ፌ', 'ማ', 'ኤ', 'ሜ', 'ጁ', 'ጁ', - 'ኦ', 'ሴ', 'ኦ', 'ኖ', 'ዲ'], - MONTHS: ['ጃንዩወሪ', 'ፌብሩወሪ', 'ማርች', 'ኤፕረል', - 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', 'ሴፕቴምበር', - 'ኦክተውበር', 'ኖቬምበር', 'ዲሴምበር'], + 'ኦ', 'ሴ', 'ኦ', 'ኖ', 'ዲ'], + MONTHS: ['ጃንዩወሪ', 'ፌብሩወሪ', 'ማርች', 'ኤፕሪል', + 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', 'ሴፕቴምበር', + 'ኦክተውበር', 'ኖቬምበር', 'ዲሴምበር'], STANDALONEMONTHS: ['ጃንዩወሪ', 'ፌብሩወሪ', 'ማርች', - 'ኤፕረል', 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', - 'ሴፕቴምበር', 'ኦክተውበር', 'ኖቬምበር', - 'ዲሴምበር'], - SHORTMONTHS: ['ጃንዩ', 'ፌብሩ', 'ማርች', 'ኤፕረ', 'ሜይ', - 'ጁን', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', 'ኖቬም', - 'ዲሴም'], - STANDALONESHORTMONTHS: ['ጃንዩ', 'ፌብሩ', 'ማርች', 'ኤፕረ', - 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', - 'ኖቬም', 'ዲሴም'], + 'ኤፕሪል', 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', + 'ሴፕቴምበር', 'ኦክቶበር', 'ኖቬምበር', + 'ዲሴምበር'], + SHORTMONTHS: ['ጃንዩ', 'ፌብሩ', 'ማርች', 'ኤፕሪ', 'ሜይ', + 'ጁን', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', 'ኖቬም', + 'ዲሴም'], + STANDALONESHORTMONTHS: ['ጃንዩ', 'ፌብሩ', 'ማርች', 'ኤፕሪ', + 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክቶ', + 'ኖቬም', 'ዲሴም'], WEEKDAYS: ['እሑድ', 'ሰኞ', 'ማክሰኞ', 'ረቡዕ', 'ሐሙስ', - 'ዓርብ', 'ቅዳሜ'], + 'ዓርብ', 'ቅዳሜ'], STANDALONEWEEKDAYS: ['እሑድ', 'ሰኞ', 'ማክሰኞ', 'ረቡዕ', - 'ሐሙስ', 'ዓርብ', 'ቅዳሜ'], + 'ሐሙስ', 'ዓርብ', 'ቅዳሜ'], SHORTWEEKDAYS: ['እሑድ', 'ሰኞ', 'ማክሰ', 'ረቡዕ', 'ሐሙስ', - 'ዓርብ', 'ቅዳሜ'], + 'ዓርብ', 'ቅዳሜ'], STANDALONESHORTWEEKDAYS: ['እሑድ', 'ሰኞ', 'ማክሰ', 'ረቡዕ', - 'ሐሙስ', 'ዓርብ', 'ቅዳሜ'], + 'ሐሙስ', 'ዓርብ', 'ቅዳሜ'], NARROWWEEKDAYS: ['እ', 'ሰ', 'ማ', 'ረ', 'ሐ', 'ዓ', 'ቅ'], STANDALONENARROWWEEKDAYS: ['እ', 'ሰ', 'ማ', 'ረ', 'ሐ', 'ዓ', 'ቅ'], - SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + SHORTQUARTERS: ['ሩብ1', 'ሩብ2', 'ሩብ3', 'ሩብ4'], QUARTERS: ['1ኛው ሩብ', 'ሁለተኛው ሩብ', '3ኛው ሩብ', - '4ኛው ሩብ'], - AMPMS: ['ጡዋት', 'ከሳዓት'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + '4ኛው ሩብ'], + AMPMS: ['ጥዋት', 'ከሰዓት'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 }; +/** + * Date/time formatting symbols for locale ar_001. + */ +goog.i18n.DateTimeSymbols_ar_001 = { + ZERODIGIT: 0x0660, + ERAS: ['ق.م', 'م'], + ERANAMES: ['قبل الميلاد', 'ميلادي'], + NARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', 'ك', + 'ب', 'د'], + STANDALONENARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', + 'ك', 'ب', 'د'], + MONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', + 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', + 'نوفمبر', 'ديسمبر'], + STANDALONEMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], + SHORTMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], + STANDALONESHORTMONTHS: ['يناير', 'فبراير', 'مارس', + 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', + 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + WEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + STANDALONEWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + SHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + STANDALONESHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + NARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + STANDALONENARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + SHORTQUARTERS: ['الربع الأول', 'الربع الثاني', + 'الربع الثالث', 'الربع الرابع'], + QUARTERS: ['الربع الأول', 'الربع الثاني', + 'الربع الثالث', 'الربع الرابع'], + AMPMS: ['ص', 'م'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/y', + 'd‏/M‏/y'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 5, + WEEKENDRANGE: [4, 5], + FIRSTWEEKCUTOFFDAY: 4 +}; + + /** * Date/time formatting symbols for locale ar_AE. */ @@ -816,39 +990,40 @@ goog.i18n.DateTimeSymbols_ar_AE = { ERAS: ['ق.م', 'م'], ERANAMES: ['قبل الميلاد', 'ميلادي'], NARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', 'ك', - 'ب', 'د'], + 'ب', 'د'], STANDALONENARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', - 'ك', 'ب', 'د'], + 'ك', 'ب', 'د'], MONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', - 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', - 'نوفمبر', 'ديسمبر'], + 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', + 'نوفمبر', 'ديسمبر'], STANDALONEMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], SHORTMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], STANDALONESHORTMONTHS: ['يناير', 'فبراير', 'مارس', - 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', - 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', + 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], WEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONEWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], SHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONESHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], NARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], STANDALONENARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], SHORTQUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], QUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], AMPMS: ['ص', 'م'], - DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/yyyy', - 'd‏/M‏/yyyy'], - TIMEFORMATS: ['zzzz h:mm:ss a', 'z h:mm:ss a', 'h:mm:ss a', 'h:mm a'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/y', + 'd‏/M‏/y'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 5, WEEKENDRANGE: [4, 5], FIRSTWEEKCUTOFFDAY: 4 @@ -863,84 +1038,134 @@ goog.i18n.DateTimeSymbols_ar_BH = { ERAS: ['ق.م', 'م'], ERANAMES: ['قبل الميلاد', 'ميلادي'], NARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', 'ك', - 'ب', 'د'], + 'ب', 'د'], STANDALONENARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', - 'ك', 'ب', 'د'], + 'ك', 'ب', 'د'], MONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', - 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', - 'نوفمبر', 'ديسمبر'], + 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', + 'نوفمبر', 'ديسمبر'], STANDALONEMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], SHORTMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], STANDALONESHORTMONTHS: ['يناير', 'فبراير', 'مارس', - 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', - 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', + 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], WEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONEWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], SHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONESHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], NARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], STANDALONENARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], SHORTQUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], QUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], AMPMS: ['ص', 'م'], - DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/yyyy', - 'd‏/M‏/yyyy'], - TIMEFORMATS: ['zzzz h:mm:ss a', 'z h:mm:ss a', 'h:mm:ss a', 'h:mm a'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/y', + 'd‏/M‏/y'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 5, WEEKENDRANGE: [4, 5], FIRSTWEEKCUTOFFDAY: 4 }; +/** + * Date/time formatting symbols for locale ar_DJ. + */ +goog.i18n.DateTimeSymbols_ar_DJ = { + ZERODIGIT: 0x0660, + ERAS: ['ق.م', 'م'], + ERANAMES: ['قبل الميلاد', 'ميلادي'], + NARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', 'ك', + 'ب', 'د'], + STANDALONENARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', + 'ك', 'ب', 'د'], + MONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', + 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', + 'نوفمبر', 'ديسمبر'], + STANDALONEMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], + SHORTMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], + STANDALONESHORTMONTHS: ['يناير', 'فبراير', 'مارس', + 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', + 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + WEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + STANDALONEWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + SHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + STANDALONESHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + NARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + STANDALONENARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + SHORTQUARTERS: ['الربع الأول', 'الربع الثاني', + 'الربع الثالث', 'الربع الرابع'], + QUARTERS: ['الربع الأول', 'الربع الثاني', + 'الربع الثالث', 'الربع الرابع'], + AMPMS: ['ص', 'م'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/y', + 'd‏/M‏/y'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 5, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 4 +}; + + /** * Date/time formatting symbols for locale ar_DZ. */ goog.i18n.DateTimeSymbols_ar_DZ = { ERAS: ['ق.م', 'م'], ERANAMES: ['قبل الميلاد', 'ميلادي'], - NARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', 'ك', - 'ب', 'د'], - STANDALONENARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', - 'ك', 'ب', 'د'], - MONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', - 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', - 'نوفمبر', 'ديسمبر'], - STANDALONEMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], - SHORTMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], - STANDALONESHORTMONTHS: ['يناير', 'فبراير', 'مارس', - 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', - 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + NARROWMONTHS: ['ج', 'ف', 'م', 'أ', 'م', 'ج', 'ج', 'أ', 'س', 'أ', + 'ن', 'د'], + STANDALONENARROWMONTHS: ['ج', 'ف', 'م', 'أ', 'م', 'ج', 'ج', 'أ', 'س', + 'أ', 'ن', 'د'], + MONTHS: ['جانفي', 'فيفري', 'مارس', 'أفريل', 'ماي', + 'جوان', 'جويلية', 'أوت', 'سبتمبر', 'أكتوبر', + 'نوفمبر', 'ديسمبر'], + STANDALONEMONTHS: ['جانفي', 'فيفري', 'مارس', 'أفريل', + 'ماي', 'جوان', 'جويلية', 'أوت', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], + SHORTMONTHS: ['جانفي', 'فيفري', 'مارس', 'أفريل', 'ماي', + 'جوان', 'جويلية', 'أوت', 'سبتمبر', 'أكتوبر', + 'نوفمبر', 'ديسمبر'], + STANDALONESHORTMONTHS: ['جانفي', 'فيفري', 'مارس', 'أفريل', + 'ماي', 'جوان', 'جويلية', 'أوت', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], WEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONEWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], SHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONESHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], NARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], STANDALONENARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], SHORTQUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], QUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], AMPMS: ['ص', 'م'], - DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'yyyy/MM/dd', 'yyyy/M/d'], - TIMEFORMATS: ['zzzz h:mm:ss a', 'z h:mm:ss a', 'h:mm:ss a', 'h:mm a'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'y/MM/dd', 'y/M/d'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 5, WEEKENDRANGE: [3, 4], FIRSTWEEKCUTOFFDAY: 4 @@ -955,45 +1180,189 @@ goog.i18n.DateTimeSymbols_ar_EG = { ERAS: ['ق.م', 'م'], ERANAMES: ['قبل الميلاد', 'ميلادي'], NARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', 'ك', - 'ب', 'د'], + 'ب', 'د'], STANDALONENARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', - 'ك', 'ب', 'د'], + 'ك', 'ب', 'د'], MONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', - 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', - 'نوفمبر', 'ديسمبر'], + 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', + 'نوفمبر', 'ديسمبر'], STANDALONEMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], SHORTMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], STANDALONESHORTMONTHS: ['يناير', 'فبراير', 'مارس', - 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', - 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', + 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], WEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONEWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], SHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONESHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], NARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], STANDALONENARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], SHORTQUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], QUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], AMPMS: ['ص', 'م'], - DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/yyyy', - 'd‏/M‏/yyyy'], - TIMEFORMATS: ['zzzz h:mm:ss a', 'z h:mm:ss a', 'h:mm:ss a', 'h:mm a'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/y', + 'd‏/M‏/y'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 5, WEEKENDRANGE: [4, 5], FIRSTWEEKCUTOFFDAY: 4 }; +/** + * Date/time formatting symbols for locale ar_EH. + */ +goog.i18n.DateTimeSymbols_ar_EH = { + ERAS: ['ق.م', 'م'], + ERANAMES: ['قبل الميلاد', 'ميلادي'], + NARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', 'ك', + 'ب', 'د'], + STANDALONENARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', + 'ك', 'ب', 'د'], + MONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', + 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', + 'نوفمبر', 'ديسمبر'], + STANDALONEMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], + SHORTMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], + STANDALONESHORTMONTHS: ['يناير', 'فبراير', 'مارس', + 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', + 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + WEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + STANDALONEWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + SHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + STANDALONESHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + NARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + STANDALONENARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + SHORTQUARTERS: ['الربع الأول', 'الربع الثاني', + 'الربع الثالث', 'الربع الرابع'], + QUARTERS: ['الربع الأول', 'الربع الثاني', + 'الربع الثالث', 'الربع الرابع'], + AMPMS: ['ص', 'م'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/y', + 'd‏/M‏/y'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale ar_ER. + */ +goog.i18n.DateTimeSymbols_ar_ER = { + ZERODIGIT: 0x0660, + ERAS: ['ق.م', 'م'], + ERANAMES: ['قبل الميلاد', 'ميلادي'], + NARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', 'ك', + 'ب', 'د'], + STANDALONENARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', + 'ك', 'ب', 'د'], + MONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', + 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', + 'نوفمبر', 'ديسمبر'], + STANDALONEMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], + SHORTMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], + STANDALONESHORTMONTHS: ['يناير', 'فبراير', 'مارس', + 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', + 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + WEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + STANDALONEWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + SHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + STANDALONESHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + NARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + STANDALONENARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + SHORTQUARTERS: ['الربع الأول', 'الربع الثاني', + 'الربع الثالث', 'الربع الرابع'], + QUARTERS: ['الربع الأول', 'الربع الثاني', + 'الربع الثالث', 'الربع الرابع'], + AMPMS: ['ص', 'م'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/y', + 'd‏/M‏/y'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale ar_IL. + */ +goog.i18n.DateTimeSymbols_ar_IL = { + ZERODIGIT: 0x0660, + ERAS: ['ق.م', 'م'], + ERANAMES: ['قبل الميلاد', 'ميلادي'], + NARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', 'ك', + 'ب', 'د'], + STANDALONENARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', + 'ك', 'ب', 'د'], + MONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', + 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', + 'نوفمبر', 'ديسمبر'], + STANDALONEMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], + SHORTMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], + STANDALONESHORTMONTHS: ['يناير', 'فبراير', 'مارس', + 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', + 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + WEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + STANDALONEWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + SHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + STANDALONESHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + NARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + STANDALONENARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + SHORTQUARTERS: ['الربع الأول', 'الربع الثاني', + 'الربع الثالث', 'الربع الرابع'], + QUARTERS: ['الربع الأول', 'الربع الثاني', + 'الربع الثالث', 'الربع الرابع'], + AMPMS: ['ص', 'م'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/y', + 'd‏/M‏/y'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: [4, 5], + FIRSTWEEKCUTOFFDAY: 5 +}; + + /** * Date/time formatting symbols for locale ar_IQ. */ @@ -1001,40 +1370,45 @@ goog.i18n.DateTimeSymbols_ar_IQ = { ZERODIGIT: 0x0660, ERAS: ['ق.م', 'م'], ERANAMES: ['قبل الميلاد', 'ميلادي'], - NARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', 'ك', - 'ب', 'د'], - STANDALONENARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', - 'ك', 'ب', 'د'], - MONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', - 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', - 'نوفمبر', 'ديسمبر'], - STANDALONEMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], - SHORTMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], - STANDALONESHORTMONTHS: ['يناير', 'فبراير', 'مارس', - 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', - 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + NARROWMONTHS: ['ك', 'ش', 'آ', 'ن', 'أ', 'ح', 'ت', 'آ', 'أ', 'ت', + 'ت', 'ك'], + STANDALONENARROWMONTHS: ['ك', 'ش', 'آ', 'ن', 'أ', 'ح', 'ت', 'آ', 'أ', + 'ت', 'ت', 'ك'], + MONTHS: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', + 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', + 'تشرين الأول', 'تشرين الثاني', + 'كانون الأول'], + STANDALONEMONTHS: ['كانون الثاني', 'شباط', 'آذار', + 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', + 'تشرين الأول', 'تشرين الثاني', + 'كانون الأول'], + SHORTMONTHS: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', + 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', + 'تشرین الأول', 'تشرين الثاني', + 'كانون الأول'], + STANDALONESHORTMONTHS: ['كانون الثاني', 'شباط', 'آذار', + 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', + 'تشرين الأول', 'تشرين الثاني', + 'كانون الأول'], WEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONEWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], SHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONESHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], NARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], STANDALONENARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], SHORTQUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], QUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], AMPMS: ['ص', 'م'], - DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/yyyy', - 'd‏/M‏/yyyy'], - TIMEFORMATS: ['zzzz h:mm:ss a', 'z h:mm:ss a', 'h:mm:ss a', 'h:mm a'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/y', + 'd‏/M‏/y'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 5, WEEKENDRANGE: [4, 5], FIRSTWEEKCUTOFFDAY: 4 @@ -1049,49 +1423,95 @@ goog.i18n.DateTimeSymbols_ar_JO = { ERAS: ['ق.م', 'م'], ERANAMES: ['قبل الميلاد', 'ميلادي'], NARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', 'ك', - 'ب', 'د'], + 'ب', 'د'], STANDALONENARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', - 'ك', 'ب', 'د'], + 'ك', 'ب', 'د'], MONTHS: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', - 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', - 'تشرين الأول', 'تشرين الثاني', - 'كانون الأول'], - STANDALONEMONTHS: ['كانون الثاني', 'شباط', 'آذار', - 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', - 'أيلول', 'تشرين الأول', 'تشرين الثاني', - 'كانون الأول'], - SHORTMONTHS: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', - 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', - 'تشرين الأول', 'تشرين الثاني', - 'كانون الأول'], - STANDALONESHORTMONTHS: ['كانون الثاني', 'شباط', 'آذار', - 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', - 'أيلول', 'تشرين الأول', 'تشرين الثاني', - 'كانون الأول'], + 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', + 'تشرين الأول', 'تشرين الثاني', + 'كانون الأول'], + STANDALONEMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], + SHORTMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], + STANDALONESHORTMONTHS: ['يناير', 'فبراير', 'مارس', + 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', + 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], WEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONEWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], SHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONESHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], NARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], STANDALONENARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], SHORTQUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], QUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], AMPMS: ['ص', 'م'], - DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/yyyy', - 'd‏/M‏/yyyy'], - TIMEFORMATS: ['zzzz h:mm:ss a', 'z h:mm:ss a', 'h:mm:ss a', 'h:mm a'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/y', + 'd‏/M‏/y'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 5, WEEKENDRANGE: [4, 5], FIRSTWEEKCUTOFFDAY: 4 }; +/** + * Date/time formatting symbols for locale ar_KM. + */ +goog.i18n.DateTimeSymbols_ar_KM = { + ZERODIGIT: 0x0660, + ERAS: ['ق.م', 'م'], + ERANAMES: ['قبل الميلاد', 'ميلادي'], + NARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', 'ك', + 'ب', 'د'], + STANDALONENARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', + 'ك', 'ب', 'د'], + MONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', + 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', + 'نوفمبر', 'ديسمبر'], + STANDALONEMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], + SHORTMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], + STANDALONESHORTMONTHS: ['يناير', 'فبراير', 'مارس', + 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', + 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + WEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + STANDALONEWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + SHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + STANDALONESHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + NARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + STANDALONENARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + SHORTQUARTERS: ['الربع الأول', 'الربع الثاني', + 'الربع الثالث', 'الربع الرابع'], + QUARTERS: ['الربع الأول', 'الربع الثاني', + 'الربع الثالث', 'الربع الرابع'], + AMPMS: ['ص', 'م'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/y', + 'd‏/M‏/y'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + /** * Date/time formatting symbols for locale ar_KW. */ @@ -1100,39 +1520,40 @@ goog.i18n.DateTimeSymbols_ar_KW = { ERAS: ['ق.م', 'م'], ERANAMES: ['قبل الميلاد', 'ميلادي'], NARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', 'ك', - 'ب', 'د'], + 'ب', 'د'], STANDALONENARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', - 'ك', 'ب', 'د'], + 'ك', 'ب', 'د'], MONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', - 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', - 'نوفمبر', 'ديسمبر'], + 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', + 'نوفمبر', 'ديسمبر'], STANDALONEMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], SHORTMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], STANDALONESHORTMONTHS: ['يناير', 'فبراير', 'مارس', - 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', - 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', + 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], WEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONEWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], SHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONESHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], NARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], STANDALONENARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], SHORTQUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], QUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], AMPMS: ['ص', 'م'], - DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/yyyy', - 'd‏/M‏/yyyy'], - TIMEFORMATS: ['zzzz h:mm:ss a', 'z h:mm:ss a', 'h:mm:ss a', 'h:mm a'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/y', + 'd‏/M‏/y'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 5, WEEKENDRANGE: [4, 5], FIRSTWEEKCUTOFFDAY: 4 @@ -1147,43 +1568,41 @@ goog.i18n.DateTimeSymbols_ar_LB = { ERAS: ['ق.م', 'م'], ERANAMES: ['قبل الميلاد', 'ميلادي'], NARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', 'ك', - 'ب', 'د'], + 'ب', 'د'], STANDALONENARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', - 'ك', 'ب', 'د'], + 'ك', 'ب', 'د'], MONTHS: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', - 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', - 'تشرين الأول', 'تشرين الثاني', - 'كانون الأول'], - STANDALONEMONTHS: ['كانون الثاني', 'شباط', 'آذار', - 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', - 'أيلول', 'تشرين الأول', 'تشرين الثاني', - 'كانون الأول'], - SHORTMONTHS: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', - 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', - 'تشرين الأول', 'تشرين الثاني', - 'كانون الأول'], - STANDALONESHORTMONTHS: ['كانون الثاني', 'شباط', 'آذار', - 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', - 'أيلول', 'تشرين الأول', 'تشرين الثاني', - 'كانون الأول'], + 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', + 'تشرين الأول', 'تشرين الثاني', + 'كانون الأول'], + STANDALONEMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], + SHORTMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], + STANDALONESHORTMONTHS: ['يناير', 'فبراير', 'مارس', + 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', + 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], WEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONEWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], SHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONESHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], NARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], STANDALONENARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], SHORTQUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], QUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], AMPMS: ['ص', 'م'], - DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/yyyy', - 'd‏/M‏/yyyy'], - TIMEFORMATS: ['zzzz h:mm:ss a', 'z h:mm:ss a', 'h:mm:ss a', 'h:mm a'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/y', + 'd‏/M‏/y'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -1194,43 +1613,43 @@ goog.i18n.DateTimeSymbols_ar_LB = { * Date/time formatting symbols for locale ar_LY. */ goog.i18n.DateTimeSymbols_ar_LY = { - ZERODIGIT: 0x0660, ERAS: ['ق.م', 'م'], ERANAMES: ['قبل الميلاد', 'ميلادي'], NARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', 'ك', - 'ب', 'د'], + 'ب', 'د'], STANDALONENARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', - 'ك', 'ب', 'د'], + 'ك', 'ب', 'د'], MONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', - 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', - 'نوفمبر', 'ديسمبر'], + 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', + 'نوفمبر', 'ديسمبر'], STANDALONEMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], SHORTMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], STANDALONESHORTMONTHS: ['يناير', 'فبراير', 'مارس', - 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', - 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', + 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], WEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONEWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], SHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONESHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], NARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], STANDALONENARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], SHORTQUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], QUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], AMPMS: ['ص', 'م'], - DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/yyyy', - 'd‏/M‏/yyyy'], - TIMEFORMATS: ['zzzz h:mm:ss a', 'z h:mm:ss a', 'h:mm:ss a', 'h:mm a'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/y', + 'd‏/M‏/y'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 5, WEEKENDRANGE: [4, 5], FIRSTWEEKCUTOFFDAY: 4 @@ -1243,45 +1662,94 @@ goog.i18n.DateTimeSymbols_ar_LY = { goog.i18n.DateTimeSymbols_ar_MA = { ERAS: ['ق.م', 'م'], ERANAMES: ['قبل الميلاد', 'ميلادي'], - NARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', 'ك', - 'ب', 'د'], - STANDALONENARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', - 'ك', 'ب', 'د'], - MONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', - 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', - 'نوفمبر', 'ديسمبر'], - STANDALONEMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], - SHORTMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], + NARROWMONTHS: ['ي', 'ف', 'م', 'ﺃ', 'م', 'ﻥ', 'ﻝ', 'غ', 'ش', 'ﻙ', + 'ﺏ', 'ﺩ'], + STANDALONENARROWMONTHS: ['ي', 'ف', 'م', 'إ', 'م', 'ﻥ', 'ﻝ', 'غ', + 'ش', 'ﻙ', 'ﺏ', 'ﺩ'], + MONTHS: ['يناير', 'فبراير', 'مارس', 'إبريل', 'ماي', + 'يونيو', 'يوليو', 'غشت', 'سبتمبر', 'أكتوبر', + 'نونبر', 'ديسمبر'], + STANDALONEMONTHS: ['يناير', 'فبراير', 'مارس', 'ﺄبﺮيﻟ', + 'ماي', 'يونيو', 'يوليو', 'غشت', 'سبتمبر', + 'أكتوبر', 'نونبر', 'ديسمبر'], + SHORTMONTHS: ['يناير', 'فبراير', 'مارس', 'ﺄبﺮيﻟ', + 'ماي', 'يونيو', 'يوليو', 'غشت', 'سبتمبر', + 'أكتوبر', 'نونبر', 'ديسمبر'], STANDALONESHORTMONTHS: ['يناير', 'فبراير', 'مارس', - 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', - 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'أبريل', 'ماي', 'يونيو', 'يوليو', 'غشت', + 'سبتمبر', 'أكتوبر', 'نونبر', 'ديسمبر'], WEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONEWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], SHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONESHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], NARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], STANDALONENARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], SHORTQUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], QUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], AMPMS: ['ص', 'م'], - DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'yyyy/MM/dd', 'yyyy/M/d'], - TIMEFORMATS: ['zzzz h:mm:ss a', 'z h:mm:ss a', 'h:mm:ss a', 'h:mm a'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'y/MM/dd', 'y/M/d'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 5, WEEKENDRANGE: [4, 5], FIRSTWEEKCUTOFFDAY: 4 }; +/** + * Date/time formatting symbols for locale ar_MR. + */ +goog.i18n.DateTimeSymbols_ar_MR = { + ZERODIGIT: 0x0660, + ERAS: ['ق.م', 'م'], + ERANAMES: ['قبل الميلاد', 'ميلادي'], + NARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', 'ك', + 'ب', 'د'], + STANDALONENARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', + 'ك', 'ب', 'د'], + MONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', + 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', + 'نوفمبر', 'ديسمبر'], + STANDALONEMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], + SHORTMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], + STANDALONESHORTMONTHS: ['يناير', 'فبراير', 'مارس', + 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', + 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + WEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + STANDALONEWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + SHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + STANDALONESHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + NARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + STANDALONENARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + SHORTQUARTERS: ['الربع الأول', 'الربع الثاني', + 'الربع الثالث', 'الربع الرابع'], + QUARTERS: ['الربع الأول', 'الربع الثاني', + 'الربع الثالث', 'الربع الرابع'], + AMPMS: ['ص', 'م'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/y', + 'd‏/M‏/y'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + /** * Date/time formatting symbols for locale ar_OM. */ @@ -1290,45 +1758,94 @@ goog.i18n.DateTimeSymbols_ar_OM = { ERAS: ['ق.م', 'م'], ERANAMES: ['قبل الميلاد', 'ميلادي'], NARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', 'ك', - 'ب', 'د'], + 'ب', 'د'], STANDALONENARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', - 'ك', 'ب', 'د'], + 'ك', 'ب', 'د'], MONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', - 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', - 'نوفمبر', 'ديسمبر'], + 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', + 'نوفمبر', 'ديسمبر'], STANDALONEMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], SHORTMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], STANDALONESHORTMONTHS: ['يناير', 'فبراير', 'مارس', - 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', - 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', + 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], WEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONEWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], SHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONESHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], NARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], STANDALONENARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], SHORTQUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], QUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], AMPMS: ['ص', 'م'], - DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/yyyy', - 'd‏/M‏/yyyy'], - TIMEFORMATS: ['zzzz h:mm:ss a', 'z h:mm:ss a', 'h:mm:ss a', 'h:mm a'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/y', + 'd‏/M‏/y'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 5, WEEKENDRANGE: [3, 4], FIRSTWEEKCUTOFFDAY: 4 }; +/** + * Date/time formatting symbols for locale ar_PS. + */ +goog.i18n.DateTimeSymbols_ar_PS = { + ZERODIGIT: 0x0660, + ERAS: ['ق.م', 'م'], + ERANAMES: ['قبل الميلاد', 'ميلادي'], + NARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', 'ك', + 'ب', 'د'], + STANDALONENARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', + 'ك', 'ب', 'د'], + MONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', + 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', + 'نوفمبر', 'ديسمبر'], + STANDALONEMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], + SHORTMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], + STANDALONESHORTMONTHS: ['يناير', 'فبراير', 'مارس', + 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', + 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + WEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + STANDALONEWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + SHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + STANDALONESHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + NARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + STANDALONENARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + SHORTQUARTERS: ['الربع الأول', 'الربع الثاني', + 'الربع الثالث', 'الربع الرابع'], + QUARTERS: ['الربع الأول', 'الربع الثاني', + 'الربع الثالث', 'الربع الرابع'], + AMPMS: ['ص', 'م'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/y', + 'd‏/M‏/y'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + /** * Date/time formatting symbols for locale ar_QA. */ @@ -1337,39 +1854,40 @@ goog.i18n.DateTimeSymbols_ar_QA = { ERAS: ['ق.م', 'م'], ERANAMES: ['قبل الميلاد', 'ميلادي'], NARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', 'ك', - 'ب', 'د'], + 'ب', 'د'], STANDALONENARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', - 'ك', 'ب', 'د'], + 'ك', 'ب', 'د'], MONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', - 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', - 'نوفمبر', 'ديسمبر'], + 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', + 'نوفمبر', 'ديسمبر'], STANDALONEMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], SHORTMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], STANDALONESHORTMONTHS: ['يناير', 'فبراير', 'مارس', - 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', - 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', + 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], WEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONEWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], SHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONESHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], NARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], STANDALONENARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], SHORTQUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], QUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], AMPMS: ['ص', 'م'], - DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/yyyy', - 'd‏/M‏/yyyy'], - TIMEFORMATS: ['zzzz h:mm:ss a', 'z h:mm:ss a', 'h:mm:ss a', 'h:mm a'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/y', + 'd‏/M‏/y'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 5, WEEKENDRANGE: [4, 5], FIRSTWEEKCUTOFFDAY: 4 @@ -1384,39 +1902,40 @@ goog.i18n.DateTimeSymbols_ar_SA = { ERAS: ['ق.م', 'م'], ERANAMES: ['قبل الميلاد', 'ميلادي'], NARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', 'ك', - 'ب', 'د'], + 'ب', 'د'], STANDALONENARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', - 'ك', 'ب', 'د'], + 'ك', 'ب', 'د'], MONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', - 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', - 'نوفمبر', 'ديسمبر'], + 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', + 'نوفمبر', 'ديسمبر'], STANDALONEMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], SHORTMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], STANDALONESHORTMONTHS: ['يناير', 'فبراير', 'مارس', - 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', - 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', + 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], WEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONEWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], SHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONESHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], NARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], STANDALONENARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], SHORTQUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], QUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], AMPMS: ['ص', 'م'], - DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/yyyy', - 'd‏/M‏/yyyy'], - TIMEFORMATS: ['zzzz h:mm:ss a', 'z h:mm:ss a', 'h:mm:ss a', 'h:mm a'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/y', + 'd‏/M‏/y'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 5, WEEKENDRANGE: [3, 4], FIRSTWEEKCUTOFFDAY: 4 @@ -1431,45 +1950,94 @@ goog.i18n.DateTimeSymbols_ar_SD = { ERAS: ['ق.م', 'م'], ERANAMES: ['قبل الميلاد', 'ميلادي'], NARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', 'ك', - 'ب', 'د'], + 'ب', 'د'], STANDALONENARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', - 'ك', 'ب', 'د'], + 'ك', 'ب', 'د'], MONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', - 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', - 'نوفمبر', 'ديسمبر'], + 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', + 'نوفمبر', 'ديسمبر'], STANDALONEMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], SHORTMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], STANDALONESHORTMONTHS: ['يناير', 'فبراير', 'مارس', - 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', - 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', + 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], WEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONEWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], SHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONESHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], NARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], STANDALONENARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], SHORTQUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], QUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], AMPMS: ['ص', 'م'], - DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/yyyy', - 'd‏/M‏/yyyy'], - TIMEFORMATS: ['zzzz h:mm:ss a', 'z h:mm:ss a', 'h:mm:ss a', 'h:mm a'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/y', + 'd‏/M‏/y'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 5, WEEKENDRANGE: [4, 5], FIRSTWEEKCUTOFFDAY: 4 }; +/** + * Date/time formatting symbols for locale ar_SO. + */ +goog.i18n.DateTimeSymbols_ar_SO = { + ZERODIGIT: 0x0660, + ERAS: ['ق.م', 'م'], + ERANAMES: ['قبل الميلاد', 'ميلادي'], + NARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', 'ك', + 'ب', 'د'], + STANDALONENARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', + 'ك', 'ب', 'د'], + MONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', + 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', + 'نوفمبر', 'ديسمبر'], + STANDALONEMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], + SHORTMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], + STANDALONESHORTMONTHS: ['يناير', 'فبراير', 'مارس', + 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', + 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + WEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + STANDALONEWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + SHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + STANDALONESHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + NARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + STANDALONENARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + SHORTQUARTERS: ['الربع الأول', 'الربع الثاني', + 'الربع الثالث', 'الربع الرابع'], + QUARTERS: ['الربع الأول', 'الربع الثاني', + 'الربع الثالث', 'الربع الرابع'], + AMPMS: ['ص', 'م'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/y', + 'd‏/M‏/y'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + /** * Date/time formatting symbols for locale ar_SY. */ @@ -1478,88 +2046,135 @@ goog.i18n.DateTimeSymbols_ar_SY = { ERAS: ['ق.م', 'م'], ERANAMES: ['قبل الميلاد', 'ميلادي'], NARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', 'ك', - 'ب', 'د'], + 'ب', 'د'], STANDALONENARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', - 'ك', 'ب', 'د'], + 'ك', 'ب', 'د'], MONTHS: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', - 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', - 'تشرين الأول', 'تشرين الثاني', - 'كانون الأول'], - STANDALONEMONTHS: ['كانون الثاني', 'شباط', 'آذار', - 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', - 'أيلول', 'تشرين الأول', 'تشرين الثاني', - 'كانون الأول'], - SHORTMONTHS: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', - 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', - 'تشرين الأول', 'تشرين الثاني', - 'كانون الأول'], - STANDALONESHORTMONTHS: ['كانون الثاني', 'شباط', 'آذار', - 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', - 'أيلول', 'تشرين الأول', 'تشرين الثاني', - 'كانون الأول'], + 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', + 'تشرين الأول', 'تشرين الثاني', + 'كانون الأول'], + STANDALONEMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], + SHORTMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], + STANDALONESHORTMONTHS: ['يناير', 'فبراير', 'مارس', + 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', + 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], WEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONEWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], SHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONESHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], NARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], STANDALONENARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], SHORTQUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], QUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], AMPMS: ['ص', 'م'], - DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/yyyy', - 'd‏/M‏/yyyy'], - TIMEFORMATS: ['zzzz h:mm:ss a', 'z h:mm:ss a', 'h:mm:ss a', 'h:mm a'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/y', + 'd‏/M‏/y'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 5, WEEKENDRANGE: [4, 5], FIRSTWEEKCUTOFFDAY: 4 }; +/** + * Date/time formatting symbols for locale ar_TD. + */ +goog.i18n.DateTimeSymbols_ar_TD = { + ZERODIGIT: 0x0660, + ERAS: ['ق.م', 'م'], + ERANAMES: ['قبل الميلاد', 'ميلادي'], + NARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', 'ك', + 'ب', 'د'], + STANDALONENARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', + 'ك', 'ب', 'د'], + MONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', + 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', + 'نوفمبر', 'ديسمبر'], + STANDALONEMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], + SHORTMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], + STANDALONESHORTMONTHS: ['يناير', 'فبراير', 'مارس', + 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', + 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + WEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + STANDALONEWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + SHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + STANDALONESHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + NARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + STANDALONENARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], + SHORTQUARTERS: ['الربع الأول', 'الربع الثاني', + 'الربع الثالث', 'الربع الرابع'], + QUARTERS: ['الربع الأول', 'الربع الثاني', + 'الربع الثالث', 'الربع الرابع'], + AMPMS: ['ص', 'م'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/y', + 'd‏/M‏/y'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + /** * Date/time formatting symbols for locale ar_TN. */ goog.i18n.DateTimeSymbols_ar_TN = { ERAS: ['ق.م', 'م'], ERANAMES: ['قبل الميلاد', 'ميلادي'], - NARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', 'ك', - 'ب', 'د'], - STANDALONENARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', - 'ك', 'ب', 'د'], - MONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', - 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', - 'نوفمبر', 'ديسمبر'], - STANDALONEMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], - SHORTMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], - STANDALONESHORTMONTHS: ['يناير', 'فبراير', 'مارس', - 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', - 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + NARROWMONTHS: ['ج', 'ف', 'م', 'أ', 'م', 'ج', 'ج', 'أ', 'س', 'أ', + 'ن', 'د'], + STANDALONENARROWMONTHS: ['ج', 'ف', 'م', 'أ', 'م', 'ج', 'ج', 'أ', 'س', + 'أ', 'ن', 'د'], + MONTHS: ['جانفي', 'فيفري', 'مارس', 'أفريل', 'ماي', + 'جوان', 'جويلية', 'أوت', 'سبتمبر', 'أكتوبر', + 'نوفمبر', 'ديسمبر'], + STANDALONEMONTHS: ['جانفي', 'فيفري', 'مارس', 'أفريل', + 'ماي', 'جوان', 'جويلية', 'أوت', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], + SHORTMONTHS: ['جانفي', 'فيفري', 'مارس', 'أفريل', 'ماي', + 'جوان', 'جويلية', 'أوت', 'سبتمبر', 'أكتوبر', + 'نوفمبر', 'ديسمبر'], + STANDALONESHORTMONTHS: ['جانفي', 'فيفري', 'مارس', 'أفريل', + 'ماي', 'جوان', 'جويلية', 'أوت', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], WEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONEWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], SHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONESHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], NARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], STANDALONENARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], SHORTQUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], QUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], AMPMS: ['ص', 'م'], - DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'yyyy/MM/dd', 'yyyy/M/d'], - TIMEFORMATS: ['zzzz h:mm:ss a', 'z h:mm:ss a', 'h:mm:ss a', 'h:mm a'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'y/MM/dd', 'y/M/d'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [4, 5], FIRSTWEEKCUTOFFDAY: 5 @@ -1574,39 +2189,40 @@ goog.i18n.DateTimeSymbols_ar_YE = { ERAS: ['ق.م', 'م'], ERANAMES: ['قبل الميلاد', 'ميلادي'], NARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', 'ك', - 'ب', 'د'], + 'ب', 'د'], STANDALONENARROWMONTHS: ['ي', 'ف', 'م', 'أ', 'و', 'ن', 'ل', 'غ', 'س', - 'ك', 'ب', 'د'], + 'ك', 'ب', 'د'], MONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', - 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', - 'نوفمبر', 'ديسمبر'], + 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', + 'نوفمبر', 'ديسمبر'], STANDALONEMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], SHORTMONTHS: ['يناير', 'فبراير', 'مارس', 'أبريل', - 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', - 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', + 'أكتوبر', 'نوفمبر', 'ديسمبر'], STANDALONESHORTMONTHS: ['يناير', 'فبراير', 'مارس', - 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', - 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', + 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], WEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONEWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], SHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], STANDALONESHORTWEEKDAYS: ['الأحد', 'الاثنين', 'الثلاثاء', - 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], NARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], STANDALONENARROWWEEKDAYS: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], SHORTQUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], QUARTERS: ['الربع الأول', 'الربع الثاني', - 'الربع الثالث', 'الربع الرابع'], + 'الربع الثالث', 'الربع الرابع'], AMPMS: ['ص', 'م'], - DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/yyyy', - 'd‏/M‏/yyyy'], - TIMEFORMATS: ['zzzz h:mm:ss a', 'z h:mm:ss a', 'h:mm:ss a', 'h:mm a'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'dd‏/MM‏/y', + 'd‏/M‏/y'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 5, WEEKENDRANGE: [3, 4], FIRSTWEEKCUTOFFDAY: 4 @@ -1622,49 +2238,48 @@ goog.i18n.DateTimeSymbols_as = { ERANAMES: ['BCE', 'CE'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['জানুৱাৰী', 'ফেব্ৰুৱাৰী', - 'মাৰ্চ', 'এপ্ৰিল', 'মে', 'জুন', - 'জুলাই', 'আগষ্ট', 'ছেপ্তেম্বৰ', - 'অক্টোবৰ', 'নৱেম্বৰ', - 'ডিচেম্বৰ'], + 'মাৰ্চ', 'এপ্ৰিল', 'মে', 'জুন', + 'জুলাই', 'আগষ্ট', 'ছেপ্তেম্বৰ', + 'অক্টোবৰ', 'নৱেম্বৰ', + 'ডিচেম্বৰ'], STANDALONEMONTHS: ['জানুৱাৰী', - 'ফেব্ৰুৱাৰী', 'মাৰ্চ', 'এপ্ৰিল', - 'মে', 'জুন', 'জুলাই', 'আগষ্ট', - 'ছেপ্তেম্বৰ', 'অক্টোবৰ', - 'নৱেম্বৰ', 'ডিচেম্বৰ'], + 'ফেব্ৰুৱাৰী', 'মাৰ্চ', 'এপ্ৰিল', + 'মে', 'জুন', 'জুলাই', 'আগষ্ট', + 'ছেপ্তেম্বৰ', 'অক্টোবৰ', + 'নৱেম্বৰ', 'ডিচেম্বৰ'], SHORTMONTHS: ['জানু', 'ফেব্ৰু', 'মাৰ্চ', - 'এপ্ৰিল', 'মে', 'জুন', 'জুলাই', 'আগ', - 'সেপ্ট', 'অক্টো', 'নভে', 'ডিসে'], + 'এপ্ৰিল', 'মে', 'জুন', 'জুলাই', 'আগ', + 'সেপ্ট', 'অক্টো', 'নভে', 'ডিসে'], STANDALONESHORTMONTHS: ['জানু', 'ফেব্ৰু', - 'মাৰ্চ', 'এপ্ৰিল', 'মে', 'জুন', - 'জুলাই', 'আগ', 'সেপ্ট', 'অক্টো', - 'নভে', 'ডিসে'], + 'মাৰ্চ', 'এপ্ৰিল', 'মে', 'জুন', + 'জুলাই', 'আগ', 'সেপ্ট', 'অক্টো', + 'নভে', 'ডিসে'], WEEKDAYS: ['দেওবাৰ', 'সোমবাৰ', - 'মঙ্গলবাৰ', 'বুধবাৰ', - 'বৃহষ্পতিবাৰ', 'শুক্ৰবাৰ', - 'শনিবাৰ'], + 'মঙ্গলবাৰ', 'বুধবাৰ', + 'বৃহষ্পতিবাৰ', 'শুক্ৰবাৰ', + 'শনিবাৰ'], STANDALONEWEEKDAYS: ['দেওবাৰ', 'সোমবাৰ', - 'মঙ্গলবাৰ', 'বুধবাৰ', - 'বৃহষ্পতিবাৰ', 'শুক্ৰবাৰ', - 'শনিবাৰ'], + 'মঙ্গলবাৰ', 'বুধবাৰ', + 'বৃহষ্পতিবাৰ', 'শুক্ৰবাৰ', + 'শনিবাৰ'], SHORTWEEKDAYS: ['ৰবি', 'সোম', 'মঙ্গল', 'বুধ', - 'বৃহষ্পতি', 'শুক্ৰ', 'শনি'], + 'বৃহষ্পতি', 'শুক্ৰ', 'শনি'], STANDALONESHORTWEEKDAYS: ['ৰবি', 'সোম', 'মঙ্গল', - 'বুধ', 'বৃহষ্পতি', 'শুক্ৰ', 'শনি'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + 'বুধ', 'বৃহষ্পতি', 'শুক্ৰ', 'শনি'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['প্ৰথম প্ৰহৰ', - 'দ্বিতীয় প্ৰহৰ', - 'তৃতীয় প্ৰহৰ', - 'চতুৰ্থ প্ৰহৰ'], + 'দ্বিতীয় প্ৰহৰ', + 'তৃতীয় প্ৰহৰ', 'চতুৰ্থ প্ৰহৰ'], QUARTERS: ['প্ৰথম প্ৰহৰ', - 'দ্বিতীয় প্ৰহৰ', - 'তৃতীয় প্ৰহৰ', - 'চতুৰ্থ প্ৰহৰ'], + 'দ্বিতীয় প্ৰহৰ', + 'তৃতীয় প্ৰহৰ', 'চতুৰ্থ প্ৰহৰ'], AMPMS: ['পূৰ্বাহ্ণ', 'অপৰাহ্ণ'], - DATEFORMATS: ['EEEE, d MMMM, y', 'd MMMM, y', 'dd-MM-yyyy', 'd-M-yyyy'], + DATEFORMATS: ['EEEE, d MMMM, y', 'd MMMM, y', 'dd-MM-y', 'd-M-y'], TIMEFORMATS: ['h.mm.ss a zzzz', 'h.mm.ss a z', 'h.mm.ss a', 'h.mm. a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [6, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -1685,19 +2300,19 @@ goog.i18n.DateTimeSymbols_asa = { ERANAMES: ['Kabla yakwe Yethu', 'Baada yakwe Yethu'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Januari', 'Februari', 'Machi', 'Aprili', 'Mei', 'Juni', 'Julai', - 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], STANDALONEMONTHS: ['Januari', 'Februari', 'Machi', 'Aprili', 'Mei', 'Juni', - 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], SHORTMONTHS: ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', - 'Okt', 'Nov', 'Dec'], + 'Okt', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', - 'Ago', 'Sep', 'Okt', 'Nov', 'Dec'], + 'Ago', 'Sep', 'Okt', 'Nov', 'Dec'], WEEKDAYS: ['Jumapili', 'Jumatatu', 'Jumanne', 'Jumatano', 'Alhamisi', - 'Ijumaa', 'Jumamosi'], + 'Ijumaa', 'Jumamosi'], STANDALONEWEEKDAYS: ['Jumapili', 'Jumatatu', 'Jumanne', 'Jumatano', - 'Alhamisi', 'Ijumaa', 'Jumamosi'], + 'Alhamisi', 'Ijumaa', 'Jumamosi'], SHORTWEEKDAYS: ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Ijm', 'Jmo'], STANDALONESHORTWEEKDAYS: ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Ijm', 'Jmo'], NARROWWEEKDAYS: ['J', 'J', 'J', 'J', 'A', 'I', 'J'], @@ -1705,8 +2320,9 @@ goog.i18n.DateTimeSymbols_asa = { SHORTQUARTERS: ['R1', 'R2', 'R3', 'R4'], QUARTERS: ['Robo 1', 'Robo 2', 'Robo 3', 'Robo 4'], AMPMS: ['icheheavo', 'ichamthi'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -1719,6 +2335,51 @@ goog.i18n.DateTimeSymbols_asa = { goog.i18n.DateTimeSymbols_asa_TZ = goog.i18n.DateTimeSymbols_asa; +/** + * Date/time formatting symbols for locale ast. + */ +goog.i18n.DateTimeSymbols_ast = { + ERAS: ['a.C.', 'd.C.'], + ERANAMES: ['a.C.', 'd.C.'], + NARROWMONTHS: ['X', 'F', 'M', 'A', 'M', 'X', 'X', 'A', 'S', 'O', 'P', 'A'], + STANDALONENARROWMONTHS: ['X', 'F', 'M', 'A', 'M', 'X', 'X', 'A', 'S', 'O', + 'P', 'A'], + MONTHS: ['de xineru', 'de febreru', 'de marzu', 'd\'abril', 'de mayu', + 'de xunu', 'de xunetu', 'd\'agostu', 'de setiembre', 'd\'ochobre', + 'de payares', 'd\'avientu'], + STANDALONEMONTHS: ['xineru', 'febreru', 'marzu', 'abril', 'mayu', 'xunu', + 'xunetu', 'agostu', 'setiembre', 'ochobre', 'payares', 'avientu'], + SHORTMONTHS: ['xin', 'feb', 'mar', 'abr', 'may', 'xun', 'xnt', 'ago', 'set', + 'och', 'pay', 'avi'], + STANDALONESHORTMONTHS: ['Xin', 'Feb', 'Mar', 'Abr', 'May', 'Xun', 'Xnt', + 'Ago', 'Set', 'Och', 'Pay', 'Avi'], + WEEKDAYS: ['domingu', 'llunes', 'martes', 'miércoles', 'xueves', 'vienres', + 'sábadu'], + STANDALONEWEEKDAYS: ['domingu', 'llunes', 'martes', 'miércoles', 'xueves', + 'vienres', 'sábadu'], + SHORTWEEKDAYS: ['dom', 'llu', 'mar', 'mie', 'xue', 'vie', 'sab'], + STANDALONESHORTWEEKDAYS: ['dom', 'llu', 'mar', 'mie', 'xue', 'vie', 'sab'], + NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'X', 'V', 'S'], + STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'X', 'V', 'S'], + SHORTQUARTERS: ['1T', '2T', '3T', '4T'], + QUARTERS: ['1er trimestre', '2u trimestre', '3er trimestre', '4u trimestre'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, dd MMMM \'de\' y', 'd MMMM \'de\' y', 'd MMM y', + 'd/M/yy'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 3 +}; + + +/** + * Date/time formatting symbols for locale ast_ES. + */ +goog.i18n.DateTimeSymbols_ast_ES = goog.i18n.DateTimeSymbols_ast; + + /** * Date/time formatting symbols for locale az. */ @@ -1727,19 +2388,19 @@ goog.i18n.DateTimeSymbols_az = { ERANAMES: ['eramızdan əvvəl', 'bizim eramızın'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['Yanvar', 'Fevral', 'Mart', 'Aprel', 'May', 'İyun', 'İyul', - 'Avqust', 'Sentyabr', 'Oktyabr', 'Noyabr', 'Dekabr'], + 'Avqust', 'Sentyabr', 'Oktyabr', 'Noyabr', 'Dekabr'], STANDALONEMONTHS: ['Yanvar', 'Fevral', 'Mart', 'Aprel', 'May', 'İyun', - 'İyul', 'Avqust', 'Sentyabr', 'Oktyabr', 'Noyabr', 'Dekabr'], + 'İyul', 'Avqust', 'Sentyabr', 'Oktyabr', 'Noyabr', 'Dekabr'], SHORTMONTHS: ['yan', 'fev', 'mar', 'apr', 'may', 'iyn', 'iyl', 'avq', 'sen', - 'okt', 'noy', 'dek'], + 'okt', 'noy', 'dek'], STANDALONESHORTMONTHS: ['yan', 'fev', 'mar', 'apr', 'may', 'iyn', 'iyl', - 'avq', 'sen', 'okt', 'noy', 'dek'], + 'avq', 'sen', 'okt', 'noy', 'dek'], WEEKDAYS: ['bazar', 'bazar ertəsi', 'çərşənbə axşamı', - 'çərşənbə', 'cümə axşamı', 'cümə', 'şənbə'], + 'çərşənbə', 'cümə axşamı', 'cümə', 'şənbə'], STANDALONEWEEKDAYS: ['bazar', 'bazar ertəsi', 'çərşənbə axşamı', - 'çərşənbə', 'cümə axşamı', 'cümə', 'şənbə'], + 'çərşənbə', 'cümə axşamı', 'cümə', 'şənbə'], SHORTWEEKDAYS: ['B.', 'B.E.', 'Ç.A.', 'Ç.', 'C.A.', 'C', 'Ş.'], STANDALONESHORTWEEKDAYS: ['B.', 'B.E.', 'Ç.A.', 'Ç.', 'C.A.', 'C', 'Ş.'], NARROWWEEKDAYS: ['7', '1', '2', '3', '4', '5', '6'], @@ -1749,6 +2410,7 @@ goog.i18n.DateTimeSymbols_az = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, d, MMMM, y', 'd MMMM , y', 'd MMM, y', 'yy/MM/dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -1763,23 +2425,23 @@ goog.i18n.DateTimeSymbols_az_Cyrl = { ERANAMES: ['eramızdan əvvəl', 'bizim eramızın'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['јанвар', 'феврал', 'март', 'апрел', 'май', - 'ијун', 'ијул', 'август', 'сентјабр', - 'октјабр', 'нојабр', 'декабр'], + 'ијун', 'ијул', 'август', 'сентјабр', + 'октјабр', 'нојабр', 'декабр'], STANDALONEMONTHS: ['јанвар', 'феврал', 'март', 'апрел', - 'май', 'ијун', 'ијул', 'август', 'сентјабр', - 'октјабр', 'нојабр', 'декабр'], + 'май', 'ијун', 'ијул', 'август', 'сентјабр', + 'октјабр', 'нојабр', 'декабр'], SHORTMONTHS: ['yan', 'fev', 'mar', 'apr', 'may', 'iyn', 'iyl', 'avq', 'sen', - 'okt', 'noy', 'dek'], + 'okt', 'noy', 'dek'], STANDALONESHORTMONTHS: ['yan', 'fev', 'mar', 'apr', 'may', 'iyn', 'iyl', - 'avq', 'sen', 'okt', 'noy', 'dek'], + 'avq', 'sen', 'okt', 'noy', 'dek'], WEEKDAYS: ['базар', 'базар ертәси', - 'чәршәнбә ахшамы', 'чәршәнбә', - 'ҹүмә ахшамы', 'ҹүмә', 'шәнбә'], + 'чәршәнбә ахшамы', 'чәршәнбә', + 'ҹүмә ахшамы', 'ҹүмә', 'шәнбә'], STANDALONEWEEKDAYS: ['базар', 'базар ертәси', - 'чәршәнбә ахшамы', 'чәршәнбә', - 'ҹүмә ахшамы', 'ҹүмә', 'шәнбә'], + 'чәршәнбә ахшамы', 'чәршәнбә', + 'ҹүмә ахшамы', 'ҹүмә', 'шәнбә'], SHORTWEEKDAYS: ['B.', 'B.E.', 'Ç.A.', 'Ç.', 'C.A.', 'C', 'Ş.'], STANDALONESHORTWEEKDAYS: ['B.', 'B.E.', 'Ç.A.', 'Ç.', 'C.A.', 'C', 'Ş.'], NARROWWEEKDAYS: ['7', '1', '2', '3', '4', '5', '6'], @@ -1789,6 +2451,7 @@ goog.i18n.DateTimeSymbols_az_Cyrl = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, d, MMMM, y', 'd MMMM , y', 'd MMM, y', 'yy/MM/dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -1821,32 +2484,33 @@ goog.i18n.DateTimeSymbols_bas = { ERANAMES: ['bisū bi Yesù Krǐstò', 'i mbūs Yesù Krǐstò'], NARROWMONTHS: ['k', 'm', 'm', 'm', 'm', 'h', 'n', 'h', 'd', 'b', 'm', 'l'], STANDALONENARROWMONTHS: ['k', 'm', 'm', 'm', 'm', 'h', 'n', 'h', 'd', 'b', - 'm', 'l'], + 'm', 'l'], MONTHS: ['Kɔndɔŋ', 'Màcɛ̂l', 'Màtùmb', 'Màtop', 'M̀puyɛ', - 'Hìlòndɛ̀', 'Njèbà', 'Hìkaŋ', 'Dìpɔ̀s', 'Bìòôm', - 'Màyɛsèp', 'Lìbuy li ńyèe'], + 'Hìlòndɛ̀', 'Njèbà', 'Hìkaŋ', 'Dìpɔ̀s', 'Bìòôm', 'Màyɛsèp', + 'Lìbuy li ńyèe'], STANDALONEMONTHS: ['Kɔndɔŋ', 'Màcɛ̂l', 'Màtùmb', 'Màtop', 'M̀puyɛ', - 'Hìlòndɛ̀', 'Njèbà', 'Hìkaŋ', 'Dìpɔ̀s', 'Bìòôm', - 'Màyɛsèp', 'Lìbuy li ńyèe'], + 'Hìlòndɛ̀', 'Njèbà', 'Hìkaŋ', 'Dìpɔ̀s', 'Bìòôm', 'Màyɛsèp', + 'Lìbuy li ńyèe'], SHORTMONTHS: ['kɔn', 'mac', 'mat', 'mto', 'mpu', 'hil', 'nje', 'hik', 'dip', - 'bio', 'may', 'liɓ'], + 'bio', 'may', 'liɓ'], STANDALONESHORTMONTHS: ['kɔn', 'mac', 'mat', 'mto', 'mpu', 'hil', 'nje', - 'hik', 'dip', 'bio', 'may', 'liɓ'], + 'hik', 'dip', 'bio', 'may', 'liɓ'], WEEKDAYS: ['ŋgwà nɔ̂y', 'ŋgwà njaŋgumba', 'ŋgwà ûm', 'ŋgwà ŋgê', - 'ŋgwà mbɔk', 'ŋgwà kɔɔ', 'ŋgwà jôn'], + 'ŋgwà mbɔk', 'ŋgwà kɔɔ', 'ŋgwà jôn'], STANDALONEWEEKDAYS: ['ŋgwà nɔ̂y', 'ŋgwà njaŋgumba', 'ŋgwà ûm', - 'ŋgwà ŋgê', 'ŋgwà mbɔk', 'ŋgwà kɔɔ', 'ŋgwà jôn'], + 'ŋgwà ŋgê', 'ŋgwà mbɔk', 'ŋgwà kɔɔ', 'ŋgwà jôn'], SHORTWEEKDAYS: ['nɔy', 'nja', 'uum', 'ŋge', 'mbɔ', 'kɔɔ', 'jon'], STANDALONESHORTWEEKDAYS: ['nɔy', 'nja', 'uum', 'ŋge', 'mbɔ', 'kɔɔ', - 'jon'], + 'jon'], NARROWWEEKDAYS: ['n', 'n', 'u', 'ŋ', 'm', 'k', 'j'], STANDALONENARROWWEEKDAYS: ['n', 'n', 'u', 'ŋ', 'm', 'k', 'j'], SHORTQUARTERS: ['K1s3', 'K2s3', 'K3s3', 'K4s3'], QUARTERS: ['Kèk bisu i soŋ iaâ', 'Kèk i ńyonos biɓaà i soŋ iaâ', - 'Kèk i ńyonos biaâ i soŋ iaâ', 'Kèk i ńyonos binâ i soŋ iaâ'], + 'Kèk i ńyonos biaâ i soŋ iaâ', 'Kèk i ńyonos binâ i soŋ iaâ'], AMPMS: ['I bikɛ̂glà', 'I ɓugajɔp'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM, y', 'd/M/yyyy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM, y', 'd/M/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -1866,38 +2530,39 @@ goog.i18n.DateTimeSymbols_be = { ERAS: ['да н.э.', 'н.э.'], ERANAMES: ['да н.э.', 'н.э.'], NARROWMONTHS: ['с', 'л', 'с', 'к', 'т', 'ч', 'л', 'ж', 'в', 'к', - 'л', 'с'], + 'л', 'с'], STANDALONENARROWMONTHS: ['с', 'л', 'с', 'к', 'м', 'ч', 'л', 'ж', 'в', - 'к', 'л', 'с'], + 'к', 'л', 'с'], MONTHS: ['студзень', 'люты', 'сакавік', 'красавік', - 'май', 'чэрвень', 'ліпень', 'жнівень', - 'верасень', 'кастрычнік', 'лістапад', - 'снежань'], + 'май', 'чэрвень', 'ліпень', 'жнівень', + 'верасень', 'кастрычнік', 'лістапад', + 'снежань'], STANDALONEMONTHS: ['студзень', 'люты', 'сакавік', - 'красавік', 'травень', 'чэрвень', 'ліпень', - 'жнівень', 'верасень', 'кастрычнік', - 'лістапад', 'снежань'], + 'красавік', 'травень', 'чэрвень', 'ліпень', + 'жнівень', 'верасень', 'кастрычнік', + 'лістапад', 'снежань'], SHORTMONTHS: ['сту', 'лют', 'сак', 'кра', 'май', 'чэр', - 'ліп', 'жні', 'вер', 'кас', 'ліс', 'сне'], + 'ліп', 'жні', 'вер', 'кас', 'ліс', 'сне'], STANDALONESHORTMONTHS: ['сту', 'лют', 'сак', 'кра', 'тра', - 'чэр', 'ліп', 'жні', 'вер', 'кас', 'ліс', 'сне'], + 'чэр', 'ліп', 'жні', 'вер', 'кас', 'ліс', 'сне'], WEEKDAYS: ['нядзеля', 'панядзелак', 'аўторак', - 'серада', 'чацвер', 'пятніца', 'субота'], + 'серада', 'чацвер', 'пятніца', 'субота'], STANDALONEWEEKDAYS: ['нядзеля', 'панядзелак', - 'аўторак', 'серада', 'чацвер', 'пятніца', - 'субота'], + 'аўторак', 'серада', 'чацвер', 'пятніца', + 'субота'], SHORTWEEKDAYS: ['нд', 'пн', 'аў', 'ср', 'чц', 'пт', 'сб'], STANDALONESHORTWEEKDAYS: ['нд', 'пн', 'аў', 'ср', 'чц', 'пт', - 'сб'], + 'сб'], NARROWWEEKDAYS: ['н', 'п', 'а', 'с', 'ч', 'п', 'с'], STANDALONENARROWWEEKDAYS: ['н', 'п', 'а', 'с', 'ч', 'п', 'с'], SHORTQUARTERS: ['1-шы кв.', '2-гі кв.', '3-ці кв.', - '4-ты кв.'], + '4-ты кв.'], QUARTERS: ['1-шы квартал', '2-гі квартал', - '3-ці квартал', '4-ты квартал'], + '3-ці квартал', '4-ты квартал'], AMPMS: ['да палудня', 'пасля палудня'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd.M.yyyy', 'd.M.yy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd.M.y', 'd.M.yy'], TIMEFORMATS: ['HH.mm.ss zzzz', 'HH.mm.ss z', 'HH.mm.ss', 'HH.mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -1918,30 +2583,31 @@ goog.i18n.DateTimeSymbols_bem = { ERANAMES: ['Before Yesu', 'After Yesu'], NARROWMONTHS: ['J', 'F', 'M', 'E', 'M', 'J', 'J', 'O', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'E', 'M', 'J', 'J', 'O', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Januari', 'Februari', 'Machi', 'Epreo', 'Mei', 'Juni', 'Julai', - 'Ogasti', 'Septemba', 'Oktoba', 'Novemba', 'Disemba'], + 'Ogasti', 'Septemba', 'Oktoba', 'Novemba', 'Disemba'], STANDALONEMONTHS: ['Januari', 'Februari', 'Machi', 'Epreo', 'Mei', 'Juni', - 'Julai', 'Ogasti', 'Septemba', 'Oktoba', 'Novemba', 'Disemba'], + 'Julai', 'Ogasti', 'Septemba', 'Oktoba', 'Novemba', 'Disemba'], SHORTMONTHS: ['Jan', 'Feb', 'Mac', 'Epr', 'Mei', 'Jun', 'Jul', 'Oga', 'Sep', - 'Okt', 'Nov', 'Dis'], + 'Okt', 'Nov', 'Dis'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mac', 'Epr', 'Mei', 'Jun', 'Jul', - 'Oga', 'Sep', 'Okt', 'Nov', 'Dis'], + 'Oga', 'Sep', 'Okt', 'Nov', 'Dis'], WEEKDAYS: ['Pa Mulungu', 'Palichimo', 'Palichibuli', 'Palichitatu', - 'Palichine', 'Palichisano', 'Pachibelushi'], + 'Palichine', 'Palichisano', 'Pachibelushi'], STANDALONEWEEKDAYS: ['Pa Mulungu', 'Palichimo', 'Palichibuli', 'Palichitatu', - 'Palichine', 'Palichisano', 'Pachibelushi'], + 'Palichine', 'Palichisano', 'Pachibelushi'], SHORTWEEKDAYS: ['Pa Mulungu', 'Palichimo', 'Palichibuli', 'Palichitatu', - 'Palichine', 'Palichisano', 'Pachibelushi'], + 'Palichine', 'Palichisano', 'Pachibelushi'], STANDALONESHORTWEEKDAYS: ['Pa Mulungu', 'Palichimo', 'Palichibuli', - 'Palichitatu', 'Palichine', 'Palichisano', 'Pachibelushi'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + 'Palichitatu', 'Palichine', 'Palichisano', 'Pachibelushi'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['uluchelo', 'akasuba'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -1962,25 +2628,25 @@ goog.i18n.DateTimeSymbols_bez = { ERANAMES: ['Kabla ya Mtwaa', 'Baada ya Mtwaa'], NARROWMONTHS: ['H', 'V', 'D', 'T', 'H', 'S', 'S', 'N', 'T', 'K', 'K', 'K'], STANDALONENARROWMONTHS: ['H', 'V', 'D', 'T', 'H', 'S', 'S', 'N', 'T', 'K', - 'K', 'K'], + 'K', 'K'], MONTHS: ['pa mwedzi gwa hutala', 'pa mwedzi gwa wuvili', - 'pa mwedzi gwa wudatu', 'pa mwedzi gwa wutai', 'pa mwedzi gwa wuhanu', - 'pa mwedzi gwa sita', 'pa mwedzi gwa saba', 'pa mwedzi gwa nane', - 'pa mwedzi gwa tisa', 'pa mwedzi gwa kumi', 'pa mwedzi gwa kumi na moja', - 'pa mwedzi gwa kumi na mbili'], + 'pa mwedzi gwa wudatu', 'pa mwedzi gwa wutai', 'pa mwedzi gwa wuhanu', + 'pa mwedzi gwa sita', 'pa mwedzi gwa saba', 'pa mwedzi gwa nane', + 'pa mwedzi gwa tisa', 'pa mwedzi gwa kumi', 'pa mwedzi gwa kumi na moja', + 'pa mwedzi gwa kumi na mbili'], STANDALONEMONTHS: ['pa mwedzi gwa hutala', 'pa mwedzi gwa wuvili', - 'pa mwedzi gwa wudatu', 'pa mwedzi gwa wutai', 'pa mwedzi gwa wuhanu', - 'pa mwedzi gwa sita', 'pa mwedzi gwa saba', 'pa mwedzi gwa nane', - 'pa mwedzi gwa tisa', 'pa mwedzi gwa kumi', 'pa mwedzi gwa kumi na moja', - 'pa mwedzi gwa kumi na mbili'], + 'pa mwedzi gwa wudatu', 'pa mwedzi gwa wutai', 'pa mwedzi gwa wuhanu', + 'pa mwedzi gwa sita', 'pa mwedzi gwa saba', 'pa mwedzi gwa nane', + 'pa mwedzi gwa tisa', 'pa mwedzi gwa kumi', 'pa mwedzi gwa kumi na moja', + 'pa mwedzi gwa kumi na mbili'], SHORTMONTHS: ['Hut', 'Vil', 'Dat', 'Tai', 'Han', 'Sit', 'Sab', 'Nan', 'Tis', - 'Kum', 'Kmj', 'Kmb'], + 'Kum', 'Kmj', 'Kmb'], STANDALONESHORTMONTHS: ['Hut', 'Vil', 'Dat', 'Tai', 'Han', 'Sit', 'Sab', - 'Nan', 'Tis', 'Kum', 'Kmj', 'Kmb'], + 'Nan', 'Tis', 'Kum', 'Kmj', 'Kmb'], WEEKDAYS: ['pa mulungu', 'pa shahuviluha', 'pa hivili', 'pa hidatu', - 'pa hitayi', 'pa hihanu', 'pa shahulembela'], + 'pa hitayi', 'pa hihanu', 'pa shahulembela'], STANDALONEWEEKDAYS: ['pa mulungu', 'pa shahuviluha', 'pa hivili', 'pa hidatu', - 'pa hitayi', 'pa hihanu', 'pa shahulembela'], + 'pa hitayi', 'pa hihanu', 'pa shahulembela'], SHORTWEEKDAYS: ['Mul', 'Vil', 'Hiv', 'Hid', 'Hit', 'Hih', 'Lem'], STANDALONESHORTWEEKDAYS: ['Mul', 'Vil', 'Hiv', 'Hid', 'Hit', 'Hih', 'Lem'], NARROWWEEKDAYS: ['M', 'J', 'H', 'H', 'H', 'W', 'J'], @@ -1988,8 +2654,9 @@ goog.i18n.DateTimeSymbols_bez = { SHORTQUARTERS: ['L1', 'L2', 'L3', 'L4'], QUARTERS: ['Lobo 1', 'Lobo 2', 'Lobo 3', 'Lobo 4'], AMPMS: ['pamilau', 'pamunyi'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -2009,37 +2676,38 @@ goog.i18n.DateTimeSymbols_bg_BG = { ERAS: ['пр. н. е.', 'от н. е.'], ERANAMES: ['пр.Хр.', 'сл.Хр.'], NARROWMONTHS: ['я', 'ф', 'м', 'а', 'м', 'ю', 'ю', 'а', 'с', 'о', - 'н', 'д'], + 'н', 'д'], STANDALONENARROWMONTHS: ['я', 'ф', 'м', 'а', 'м', 'ю', 'ю', 'а', 'с', - 'о', 'н', 'д'], + 'о', 'н', 'д'], MONTHS: ['януари', 'февруари', 'март', 'април', - 'май', 'юни', 'юли', 'август', 'септември', - 'октомври', 'ноември', 'декември'], + 'май', 'юни', 'юли', 'август', 'септември', + 'октомври', 'ноември', 'декември'], STANDALONEMONTHS: ['януари', 'февруари', 'март', - 'април', 'май', 'юни', 'юли', 'август', - 'септември', 'октомври', 'ноември', - 'декември'], + 'април', 'май', 'юни', 'юли', 'август', + 'септември', 'октомври', 'ноември', + 'декември'], SHORTMONTHS: ['ян.', 'февр.', 'март', 'апр.', 'май', 'юни', - 'юли', 'авг.', 'септ.', 'окт.', 'ноем.', 'дек.'], + 'юли', 'авг.', 'септ.', 'окт.', 'ноем.', 'дек.'], STANDALONESHORTMONTHS: ['ян.', 'февр.', 'март', 'апр.', 'май', - 'юни', 'юли', 'авг.', 'септ.', 'окт.', 'ноем.', - 'дек.'], + 'юни', 'юли', 'авг.', 'септ.', 'окт.', 'ноем.', + 'дек.'], WEEKDAYS: ['неделя', 'понеделник', 'вторник', - 'сряда', 'четвъртък', 'петък', 'събота'], + 'сряда', 'четвъртък', 'петък', 'събота'], STANDALONEWEEKDAYS: ['неделя', 'понеделник', 'вторник', - 'сряда', 'четвъртък', 'петък', 'събота'], + 'сряда', 'четвъртък', 'петък', 'събота'], SHORTWEEKDAYS: ['нд', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'], STANDALONESHORTWEEKDAYS: ['нд', 'пн', 'вт', 'ср', 'чт', 'пт', - 'сб'], + 'сб'], NARROWWEEKDAYS: ['н', 'п', 'в', 'с', 'ч', 'п', 'с'], STANDALONENARROWWEEKDAYS: ['н', 'п', 'в', 'с', 'ч', 'п', 'с'], SHORTQUARTERS: ['I трим.', 'II трим.', 'III трим.', - 'IV трим.'], + 'IV трим.'], QUARTERS: ['1-во тримесечие', '2-ро тримесечие', - '3-то тримесечие', '4-то тримесечие'], + '3-то тримесечие', '4-то тримесечие'], AMPMS: ['пр. об.', 'сл. об.'], - DATEFORMATS: ['dd MMMM y, EEEE', 'dd MMMM y', 'dd.MM.yyyy', 'dd.MM.yy'], + DATEFORMATS: ['dd MMMM y, EEEE', 'dd MMMM y', 'dd.MM.y', 'dd.MM.yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1}, {0}', '{1}, {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -2054,29 +2722,30 @@ goog.i18n.DateTimeSymbols_bm = { ERANAMES: ['jezu krisiti ɲɛ', 'jezu krisiti minkɛ'], NARROWMONTHS: ['Z', 'F', 'M', 'A', 'M', 'Z', 'Z', 'U', 'S', 'Ɔ', 'N', 'D'], STANDALONENARROWMONTHS: ['Z', 'F', 'M', 'A', 'M', 'Z', 'Z', 'U', 'S', 'Ɔ', - 'N', 'D'], + 'N', 'D'], MONTHS: ['zanwuye', 'feburuye', 'marisi', 'awirili', 'mɛ', 'zuwɛn', - 'zuluye', 'uti', 'sɛtanburu', 'ɔkutɔburu', 'nowanburu', 'desanburu'], + 'zuluye', 'uti', 'sɛtanburu', 'ɔkutɔburu', 'nowanburu', 'desanburu'], STANDALONEMONTHS: ['zanwuye', 'feburuye', 'marisi', 'awirili', 'mɛ', - 'zuwɛn', 'zuluye', 'uti', 'sɛtanburu', 'ɔkutɔburu', 'nowanburu', - 'desanburu'], - SHORTMONTHS: ['zan', 'feb', 'nar', 'awi', 'mɛ', 'zuw', 'zul', 'uti', 'sɛt', - 'ɔku', 'now', 'des'], - STANDALONESHORTMONTHS: ['zan', 'feb', 'nar', 'awi', 'mɛ', 'zuw', 'zul', - 'uti', 'sɛt', 'ɔku', 'now', 'des'], + 'zuwɛn', 'zuluye', 'uti', 'sɛtanburu', 'ɔkutɔburu', 'nowanburu', + 'desanburu'], + SHORTMONTHS: ['zan', 'feb', 'mar', 'awi', 'mɛ', 'zuw', 'zul', 'uti', 'sɛt', + 'ɔku', 'now', 'des'], + STANDALONESHORTMONTHS: ['zan', 'feb', 'mar', 'awi', 'mɛ', 'zuw', 'zul', + 'uti', 'sɛt', 'ɔku', 'now', 'des'], WEEKDAYS: ['kari', 'ntɛnɛ', 'tarata', 'araba', 'alamisa', 'juma', 'sibiri'], STANDALONEWEEKDAYS: ['kari', 'ntɛnɛ', 'tarata', 'araba', 'alamisa', 'juma', - 'sibiri'], + 'sibiri'], SHORTWEEKDAYS: ['kar', 'ntɛ', 'tar', 'ara', 'ala', 'jum', 'sib'], STANDALONESHORTWEEKDAYS: ['kar', 'ntɛ', 'tar', 'ara', 'ala', 'jum', 'sib'], NARROWWEEKDAYS: ['K', 'N', 'T', 'A', 'A', 'J', 'S'], STANDALONENARROWWEEKDAYS: ['K', 'N', 'T', 'A', 'A', 'J', 'S'], SHORTQUARTERS: ['KS1', 'KS2', 'KS3', 'KS4'], QUARTERS: ['kalo saba fɔlɔ', 'kalo saba filanan', 'kalo saba sabanan', - 'kalo saba naaninan'], + 'kalo saba naaninan'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM, y', 'd/M/yyyy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM, y', 'd/M/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -2097,57 +2766,58 @@ goog.i18n.DateTimeSymbols_bn_BD = { ERAS: ['খৃষ্টপূর্ব', 'খৃষ্টাব্দ'], ERANAMES: ['খৃষ্টপূর্ব', 'খৃষ্টাব্দ'], NARROWMONTHS: ['জা', 'ফে', 'মা', 'এ', 'মে', 'জুন', - 'জু', 'আ', 'সে', 'অ', 'ন', 'ডি'], + 'জু', 'আ', 'সে', 'অ', 'ন', 'ডি'], STANDALONENARROWMONTHS: ['জা', 'ফে', 'মা', 'এ', 'মে', - 'জুন', 'জু', 'আ', 'সে', 'অ', 'ন', 'ডি'], + 'জুন', 'জু', 'আ', 'সে', 'অ', 'ন', 'ডি'], MONTHS: ['জানুয়ারী', 'ফেব্রুয়ারী', - 'মার্চ', 'এপ্রিল', 'মে', 'জুন', - 'জুলাই', 'আগস্ট', 'সেপ্টেম্বর', - 'অক্টোবর', 'নভেম্বর', - 'ডিসেম্বর'], + 'মার্চ', 'এপ্রিল', 'মে', 'জুন', + 'জুলাই', 'আগস্ট', 'সেপ্টেম্বর', + 'অক্টোবর', 'নভেম্বর', + 'ডিসেম্বর'], STANDALONEMONTHS: ['জানুয়ারী', - 'ফেব্রুয়ারী', 'মার্চ', - 'এপ্রিল', 'মে', 'জুন', 'জুলাই', - 'আগস্ট', 'সেপ্টেম্বর', - 'অক্টোবর', 'নভেম্বর', - 'ডিসেম্বর'], + 'ফেব্রুয়ারী', 'মার্চ', + 'এপ্রিল', 'মে', 'জুন', 'জুলাই', + 'আগস্ট', 'সেপ্টেম্বর', + 'অক্টোবর', 'নভেম্বর', + 'ডিসেম্বর'], SHORTMONTHS: ['জানুয়ারী', - 'ফেব্রুয়ারী', 'মার্চ', - 'এপ্রিল', 'মে', 'জুন', 'জুলাই', - 'আগস্ট', 'সেপ্টেম্বর', - 'অক্টোবর', 'নভেম্বর', - 'ডিসেম্বর'], + 'ফেব্রুয়ারী', 'মার্চ', + 'এপ্রিল', 'মে', 'জুন', 'জুলাই', + 'আগস্ট', 'সেপ্টেম্বর', + 'অক্টোবর', 'নভেম্বর', + 'ডিসেম্বর'], STANDALONESHORTMONTHS: ['জানুয়ারী', - 'ফেব্রুয়ারী', 'মার্চ', - 'এপ্রিল', 'মে', 'জুন', 'জুলাই', - 'আগস্ট', 'সেপ্টেম্বর', - 'অক্টোবর', 'নভেম্বর', - 'ডিসেম্বর'], + 'ফেব্রুয়ারী', 'মার্চ', + 'এপ্রিল', 'মে', 'জুন', 'জুলাই', + 'আগস্ট', 'সেপ্টেম্বর', + 'অক্টোবর', 'নভেম্বর', + 'ডিসেম্বর'], WEEKDAYS: ['রবিবার', 'সোমবার', - 'মঙ্গলবার', 'বুধবার', - 'বৃহষ্পতিবার', 'শুক্রবার', - 'শনিবার'], + 'মঙ্গলবার', 'বুধবার', + 'বৃহষ্পতিবার', 'শুক্রবার', + 'শনিবার'], STANDALONEWEEKDAYS: ['রবিবার', 'সোমবার', - 'মঙ্গলবার', 'বুধবার', - 'বৃহষ্পতিবার', 'শুক্রবার', - 'শনিবার'], + 'মঙ্গলবার', 'বুধবার', + 'বৃহষ্পতিবার', 'শুক্রবার', + 'শনিবার'], SHORTWEEKDAYS: ['রবি', 'সোম', 'মঙ্গল', 'বুধ', - 'বৃহস্পতি', 'শুক্র', 'শনি'], + 'বৃহস্পতি', 'শুক্র', 'শনি'], STANDALONESHORTWEEKDAYS: ['রবি', 'সোম', 'মঙ্গল', - 'বুধ', 'বৃহস্পতি', 'শুক্র', 'শনি'], + 'বুধ', 'বৃহস্পতি', 'শুক্র', 'শনি'], NARROWWEEKDAYS: ['র', 'সো', 'ম', 'বু', 'বৃ', 'শু', 'শ'], STANDALONENARROWWEEKDAYS: ['র', 'সো', 'ম', 'বু', 'বৃ', - 'শু', 'শ'], + 'শু', 'শ'], SHORTQUARTERS: ['চতুর্থাংশ ১', - 'চতুর্থাংশ ২', 'চতুর্থাংশ ৩', - 'চতুর্থাংশ ৪'], + 'চতুর্থাংশ ২', 'চতুর্থাংশ ৩', + 'চতুর্থাংশ ৪'], QUARTERS: ['প্রথম চতুর্থাংশ', - 'দ্বিতীয় চতুর্থাংশ', - 'তৃতীয় চতুর্থাংশ', - 'চতুর্থ চতুর্থাংশ'], + 'দ্বিতীয় চতুর্থাংশ', + 'তৃতীয় চতুর্থাংশ', + 'চতুর্থ চতুর্থাংশ'], AMPMS: ['am', 'pm'], DATEFORMATS: ['EEEE, d MMMM, y', 'd MMMM, y', 'd MMM, y', 'd/M/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 4, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -2162,55 +2832,55 @@ goog.i18n.DateTimeSymbols_bn_IN = { ERAS: ['খৃষ্টপূর্ব', 'খৃষ্টাব্দ'], ERANAMES: ['খৃষ্টপূর্ব', 'খৃষ্টাব্দ'], NARROWMONTHS: ['জা', 'ফে', 'মা', 'এ', 'মে', 'জুন', - 'জু', 'আ', 'সে', 'অ', 'ন', 'ডি'], + 'জু', 'আ', 'সে', 'অ', 'ন', 'ডি'], STANDALONENARROWMONTHS: ['জা', 'ফে', 'মা', 'এ', 'মে', - 'জুন', 'জু', 'আ', 'সে', 'অ', 'ন', 'ডি'], + 'জুন', 'জু', 'আ', 'সে', 'অ', 'ন', 'ডি'], MONTHS: ['জানুয়ারী', 'ফেব্রুয়ারী', - 'মার্চ', 'এপ্রিল', 'মে', 'জুন', - 'জুলাই', 'আগস্ট', 'সেপ্টেম্বর', - 'অক্টোবর', 'নভেম্বর', - 'ডিসেম্বর'], + 'মার্চ', 'এপ্রিল', 'মে', 'জুন', + 'জুলাই', 'আগস্ট', 'সেপ্টেম্বর', + 'অক্টোবর', 'নভেম্বর', + 'ডিসেম্বর'], STANDALONEMONTHS: ['জানুয়ারী', - 'ফেব্রুয়ারী', 'মার্চ', - 'এপ্রিল', 'মে', 'জুন', 'জুলাই', - 'আগস্ট', 'সেপ্টেম্বর', - 'অক্টোবর', 'নভেম্বর', - 'ডিসেম্বর'], + 'ফেব্রুয়ারী', 'মার্চ', + 'এপ্রিল', 'মে', 'জুন', 'জুলাই', + 'আগস্ট', 'সেপ্টেম্বর', + 'অক্টোবর', 'নভেম্বর', + 'ডিসেম্বর'], SHORTMONTHS: ['জানুয়ারী', - 'ফেব্রুয়ারী', 'মার্চ', - 'এপ্রিল', 'মে', 'জুন', 'জুলাই', - 'আগস্ট', 'সেপ্টেম্বর', - 'অক্টোবর', 'নভেম্বর', - 'ডিসেম্বর'], + 'ফেব্রুয়ারী', 'মার্চ', + 'এপ্রিল', 'মে', 'জুন', 'জুলাই', + 'আগস্ট', 'সেপ্টেম্বর', + 'অক্টোবর', 'নভেম্বর', + 'ডিসেম্বর'], STANDALONESHORTMONTHS: ['জানুয়ারী', - 'ফেব্রুয়ারী', 'মার্চ', - 'এপ্রিল', 'মে', 'জুন', 'জুলাই', - 'আগস্ট', 'সেপ্টেম্বর', - 'অক্টোবর', 'নভেম্বর', - 'ডিসেম্বর'], + 'ফেব্রুয়ারী', 'মার্চ', + 'এপ্রিল', 'মে', 'জুন', 'জুলাই', + 'আগস্ট', 'সেপ্টেম্বর', + 'অক্টোবর', 'নভেম্বর', + 'ডিসেম্বর'], WEEKDAYS: ['রবিবার', 'সোমবার', - 'মঙ্গলবার', 'বুধবার', - 'বৃহষ্পতিবার', 'শুক্রবার', - 'শনিবার'], + 'মঙ্গলবার', 'বুধবার', + 'বৃহষ্পতিবার', 'শুক্রবার', + 'শনিবার'], STANDALONEWEEKDAYS: ['রবিবার', 'সোমবার', - 'মঙ্গলবার', 'বুধবার', - 'বৃহষ্পতিবার', 'শুক্রবার', - 'শনিবার'], + 'মঙ্গলবার', 'বুধবার', + 'বৃহষ্পতিবার', 'শুক্রবার', + 'শনিবার'], SHORTWEEKDAYS: ['রবি', 'সোম', 'মঙ্গল', 'বুধ', - 'বৃহস্পতি', 'শুক্র', 'শনি'], + 'বৃহস্পতি', 'শুক্র', 'শনি'], STANDALONESHORTWEEKDAYS: ['রবি', 'সোম', 'মঙ্গল', - 'বুধ', 'বৃহস্পতি', 'শুক্র', 'শনি'], + 'বুধ', 'বৃহস্পতি', 'শুক্র', 'শনি'], NARROWWEEKDAYS: ['র', 'সো', 'ম', 'বু', 'বৃ', 'শু', 'শ'], STANDALONENARROWWEEKDAYS: ['র', 'সো', 'ম', 'বু', 'বৃ', - 'শু', 'শ'], + 'শু', 'শ'], SHORTQUARTERS: ['ত্রৈমাসিক', 'ষাণ্মাসিক', - 'চতুর্থাংশ ৩', 'বার্ষিক'], + 'চতুর্থাংশ ৩', 'বার্ষিক'], QUARTERS: ['ত্রৈমাসিক', 'ষাণ্মাসিক', - 'তৃতীয় চতুর্থাংশ', - 'বার্ষিক'], + 'তৃতীয় চতুর্থাংশ', 'বার্ষিক'], AMPMS: ['am', 'pm'], DATEFORMATS: ['EEEE, d MMMM, y', 'd MMMM, y', 'd MMM, y', 'd/M/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [6, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -2223,66 +2893,67 @@ goog.i18n.DateTimeSymbols_bn_IN = { goog.i18n.DateTimeSymbols_bo = { ERAS: ['སྤྱི་ལོ་སྔོན།', 'སྤྱི་ལོ།'], ERANAMES: ['སྤྱི་ལོ་སྔོན།', - 'སྤྱི་ལོ།'], + 'སྤྱི་ལོ།'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['ཟླ་བ་དང་པོ་', - 'ཟླ་བ་གཉིས་པ་', - 'ཟླ་བ་སུམ་པ་', 'ཟླ་བ་བཞི་པ་', - 'ཟླ་བ་ལྔ་པ་', 'ཟླ་བ་དྲུག་པ་', - 'ཟླ་བ་བདུན་པ་', - 'ཟླ་བ་བརྒྱད་པ་', - 'ཟླ་བ་དགུ་པ་', 'ཟླ་བ་བཅུ་པ་', - 'ཟླ་བ་བཅུ་གཅིག་པ་', - 'ཟླ་བ་བཅུ་གཉིས་པ་'], + 'ཟླ་བ་གཉིས་པ་', 'ཟླ་བ་སུམ་པ་', + 'ཟླ་བ་བཞི་པ་', 'ཟླ་བ་ལྔ་པ་', + 'ཟླ་བ་དྲུག་པ་', + 'ཟླ་བ་བདུན་པ་', + 'ཟླ་བ་བརྒྱད་པ་', + 'ཟླ་བ་དགུ་པ་', 'ཟླ་བ་བཅུ་པ་', + 'ཟླ་བ་བཅུ་གཅིག་པ་', + 'ཟླ་བ་བཅུ་གཉིས་པ་'], STANDALONEMONTHS: ['ཟླ་བ་དང་པོ་', - 'ཟླ་བ་གཉིས་པ་', - 'ཟླ་བ་སུམ་པ་', 'ཟླ་བ་བཞི་པ་', - 'ཟླ་བ་ལྔ་པ་', 'ཟླ་བ་དྲུག་པ་', - 'ཟླ་བ་བདུན་པ་', - 'ཟླ་བ་བརྒྱད་པ་', - 'ཟླ་བ་དགུ་པ་', 'ཟླ་བ་བཅུ་པ་', - 'ཟླ་བ་བཅུ་གཅིག་པ་', - 'ཟླ་བ་བཅུ་གཉིས་པ་'], + 'ཟླ་བ་གཉིས་པ་', 'ཟླ་བ་སུམ་པ་', + 'ཟླ་བ་བཞི་པ་', 'ཟླ་བ་ལྔ་པ་', + 'ཟླ་བ་དྲུག་པ་', + 'ཟླ་བ་བདུན་པ་', + 'ཟླ་བ་བརྒྱད་པ་', + 'ཟླ་བ་དགུ་པ་', 'ཟླ་བ་བཅུ་པ་', + 'ཟླ་བ་བཅུ་གཅིག་པ་', + 'ཟླ་བ་བཅུ་གཉིས་པ་'], SHORTMONTHS: ['ཟླ་༡', 'ཟླ་༢', 'ཟླ་༣', 'ཟླ་༤', - 'ཟླ་༥', 'ཟླ་༦', 'ཟླ་༧', 'ཟླ་༨', - 'ཟླ་༩', 'ཟླ་༡༠', 'ཟླ་༡༡', 'ཟླ་༡༢'], + 'ཟླ་༥', 'ཟླ་༦', 'ཟླ་༧', 'ཟླ་༨', + 'ཟླ་༩', 'ཟླ་༡༠', 'ཟླ་༡༡', 'ཟླ་༡༢'], STANDALONESHORTMONTHS: ['ཟླ་༡', 'ཟླ་༢', 'ཟླ་༣', - 'ཟླ་༤', 'ཟླ་༥', 'ཟླ་༦', 'ཟླ་༧', - 'ཟླ་༨', 'ཟླ་༩', 'ཟླ་༡༠', 'ཟླ་༡༡', - 'ཟླ་༡༢'], + 'ཟླ་༤', 'ཟླ་༥', 'ཟླ་༦', 'ཟླ་༧', + 'ཟླ་༨', 'ཟླ་༩', 'ཟླ་༡༠', 'ཟླ་༡༡', + 'ཟླ་༡༢'], WEEKDAYS: ['གཟའ་ཉི་མ་', 'གཟའ་ཟླ་བ་', - 'གཟའ་མིག་དམར་', 'གཟའ་ཧླག་པ་', - 'གཟའ་ཕུར་བུ་', 'གཟའ་སངས་', - 'གཟའ་སྤེན་པ་'], + 'གཟའ་མིག་དམར་', 'གཟའ་ཧླག་པ་', + 'གཟའ་ཕུར་བུ་', 'གཟའ་སངས་', + 'གཟའ་སྤེན་པ་'], STANDALONEWEEKDAYS: ['གཟའ་ཉི་མ་', - 'གཟའ་ཟླ་བ་', 'གཟའ་མིག་དམར་', - 'གཟའ་ལྷག་པ་', 'གཟའ་ཕུར་བུ་', - 'གཟའ་པ་སངས་', 'གཟའ་སྤེན་པ་'], + 'གཟའ་ཟླ་བ་', 'གཟའ་མིག་དམར་', + 'གཟའ་ཧླག་པ་', 'གཟའ་ཕུར་བུ་', + 'གཟའ་སངས་', 'གཟའ་སྤེན་པ་'], SHORTWEEKDAYS: ['ཉི་མ་', 'ཟླ་བ་', - 'མིག་དམར་', 'ཧླག་པ་', 'ཕུར་བུ་', - 'སངས་', 'སྤེན་པ་'], + 'མིག་དམར་', 'ཧླག་པ་', 'ཕུར་བུ་', + 'སངས་', 'སྤེན་པ་'], STANDALONESHORTWEEKDAYS: ['ཉི་མ་', 'ཟླ་བ་', - 'མིག་དམར་', 'ལྷག་པ་', 'ཕུར་བུ་', - 'པ་སངས་', 'སྤེན་པ་'], + 'མིག་དམར་', 'ཧླག་པ་', 'ཕུར་བུ་', + 'སངས་', 'སྤེན་པ་'], NARROWWEEKDAYS: ['ཉི', 'ཟླ', 'མི', 'ཧླག', 'ཕུ', 'ས', - 'སྤེ'], + 'སྤེ'], STANDALONENARROWWEEKDAYS: ['ཉི', 'ཟླ', 'མི', 'ཧླ', 'ཕུ', - 'ས', 'སྤེ'], + 'ས', 'སྤེ'], SHORTQUARTERS: ['དུས་ཚིགས་དང་པོ།', - 'དུས་ཚིགས་གཉིས་པ།', - '་དུས་ཚིགས་གསུམ་པ།', - 'དུས་ཚིགས་བཞི་པ།'], + 'དུས་ཚིགས་གཉིས་པ།', + '་དུས་ཚིགས་གསུམ་པ།', + 'དུས་ཚིགས་བཞི་པ།'], QUARTERS: ['དུས་ཚིགས་དང་པོ།', - 'དུས་ཚིགས་གཉིས་པ།', - '་དུས་ཚིགས་གསུམ་པ།', - 'དུས་ཚིགས་བཞི་པ།'], + 'དུས་ཚིགས་གཉིས་པ།', + '་དུས་ཚིགས་གསུམ་པ།', + 'དུས་ཚིགས་བཞི་པ།'], AMPMS: ['སྔ་དྲོ་', 'ཕྱི་དྲོ་'], - DATEFORMATS: ['EEEE, y MMMM dd', - 'སྦྱི་ལོ་y MMMMའི་ཙེས་dད', - 'y ལོ་འི་MMMཙེས་d', 'yyyy-MM-dd'], + DATEFORMATS: ['y MMMM d, EEEE', + 'སྦྱི་ལོ་y MMMMའི་ཙེས་dད', + 'y ལོ་འི་MMMཙེས་d', 'y-MM-dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -2302,47 +2973,42 @@ goog.i18n.DateTimeSymbols_bo_IN = goog.i18n.DateTimeSymbols_bo; /** - * Date/time formatting symbols for locale br. + * Date/time formatting symbols for locale br_FR. */ -goog.i18n.DateTimeSymbols_br = { +goog.i18n.DateTimeSymbols_br_FR = { ERAS: ['BCE', 'CE'], ERANAMES: ['BCE', 'CE'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['Genver', 'Cʼhwevrer', 'Meurzh', 'Ebrel', 'Mae', 'Mezheven', - 'Gouere', 'Eost', 'Gwengolo', 'Here', 'Du', 'Kerzu'], + 'Gouere', 'Eost', 'Gwengolo', 'Here', 'Du', 'Kerzu'], STANDALONEMONTHS: ['Genver', 'Cʼhwevrer', 'Meurzh', 'Ebrel', 'Mae', - 'Mezheven', 'Gouere', 'Eost', 'Gwengolo', 'Here', 'Du', 'Kerzu'], + 'Mezheven', 'Gouere', 'Eost', 'Gwengolo', 'Here', 'Du', 'Kerzu'], SHORTMONTHS: ['Gen', 'Cʼhwe', 'Meur', 'Ebr', 'Mae', 'Mezh', 'Goue', 'Eost', - 'Gwen', 'Here', 'Du', 'Ker'], + 'Gwen', 'Here', 'Du', 'Ker'], STANDALONESHORTMONTHS: ['Gen', 'Cʼhwe', 'Meur', 'Ebr', 'Mae', 'Mezh', 'Goue', - 'Eost', 'Gwen', 'Here', 'Du', 'Ker'], + 'Eost', 'Gwen', 'Here', 'Du', 'Ker'], WEEKDAYS: ['Sul', 'Lun', 'Meurzh', 'Mercʼher', 'Yaou', 'Gwener', 'Sadorn'], STANDALONEWEEKDAYS: ['Sul', 'Lun', 'Meurzh', 'Mercʼher', 'Yaou', 'Gwener', - 'Sadorn'], + 'Sadorn'], SHORTWEEKDAYS: ['sul', 'lun', 'meu.', 'mer.', 'yaou', 'gwe.', 'sad.'], STANDALONESHORTWEEKDAYS: ['sul', 'lun', 'meu.', 'mer.', 'yaou', 'gwe.', - 'sad.'], + 'sad.'], NARROWWEEKDAYS: ['su', 'lu', 'mz', 'mc', 'ya', 'gw', 'sa'], STANDALONENARROWWEEKDAYS: ['su', 'lu', 'mz', 'mc', 'ya', 'gw', 'sa'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, y MMMM dd', 'y MMMM d', 'y MMM d', 'yyyy-MM-dd'], + DATEFORMATS: ['y MMMM d, EEEE', 'y MMMM d', 'y MMM d', 'y-MM-dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], - FIRSTWEEKCUTOFFDAY: 6 + FIRSTWEEKCUTOFFDAY: 3 }; -/** - * Date/time formatting symbols for locale br_FR. - */ -goog.i18n.DateTimeSymbols_br_FR = goog.i18n.DateTimeSymbols_br; - - /** * Date/time formatting symbols for locale brx. */ @@ -2350,56 +3016,57 @@ goog.i18n.DateTimeSymbols_brx = { ERAS: ['ईसा.पूर्व', 'सन'], ERANAMES: ['ईसा.पूर्व', 'सन'], NARROWMONTHS: ['ज', 'फे', 'मा', 'ए', 'मे', 'जु', 'जु', - 'आ', 'से', 'अ', 'न', 'दि'], + 'आ', 'से', 'अ', 'न', 'दि'], STANDALONENARROWMONTHS: ['ज', 'फे', 'मा', 'ए', 'मे', 'जु', - 'जु', 'आ', 'से', 'अ', 'न', 'दि'], + 'जु', 'आ', 'से', 'अ', 'न', 'दि'], MONTHS: ['जानुवारी', 'फेब्रुवारी', - 'मार्स', 'एफ्रिल', 'मे', 'जुन', - 'जुलाइ', 'आगस्थ', 'सेबथेज्ब़र', - 'अखथबर', 'नबेज्ब़र', - 'दिसेज्ब़र'], + 'मार्स', 'एफ्रिल', 'मे', 'जुन', + 'जुलाइ', 'आगस्थ', 'सेबथेज्ब़र', + 'अखथबर', 'नबेज्ब़र', + 'दिसेज्ब़र'], STANDALONEMONTHS: ['जानुवारी', - 'फेब्रुवारी', 'मार्स', 'एफ्रिल', - 'मे', 'जुन', 'जुलाइ', 'आगस्थ', - 'सेबथेज्ब़र', 'अखथबर', - 'नबेज्ब़र', 'दिसेज्ब़र'], + 'फेब्रुवारी', 'मार्स', 'एफ्रिल', + 'मे', 'जुन', 'जुलाइ', 'आगस्थ', + 'सेबथेज्ब़र', 'अखथबर', + 'नबेज्ब़र', 'दिसेज्ब़र'], SHORTMONTHS: ['जानुवारी', 'फेब्रुवारी', - 'मार्स', 'एफ्रिल', 'मे', 'जुन', - 'जुलाइ', 'आगस्थ', 'सेबथेज्ब़र', - 'अखथबर', 'नबेज्ब़र', - 'दिसेज्ब़र'], + 'मार्स', 'एफ्रिल', 'मे', 'जुन', + 'जुलाइ', 'आगस्थ', 'सेबथेज्ब़र', + 'अखथबर', 'नबेज्ब़र', + 'दिसेज्ब़र'], STANDALONESHORTMONTHS: ['जानुवारी', - 'फेब्रुवारी', 'मार्स', 'एफ्रिल', - 'मे', 'जुन', 'जुलाइ', 'आगस्थ', - 'सेबथेज्ब़र', 'अखथबर', - 'नबेज्ब़र', 'दिसेज्ब़र'], + 'फेब्रुवारी', 'मार्स', 'एफ्रिल', + 'मे', 'जुन', 'जुलाइ', 'आगस्थ', + 'सेबथेज्ब़र', 'अखथबर', + 'नबेज्ब़र', 'दिसेज्ब़र'], WEEKDAYS: ['रबिबार', 'समबार', 'मंगलबार', - 'बुदबार', 'बिसथिबार', - 'सुखुरबार', 'सुनिबार'], + 'बुदबार', 'बिसथिबार', + 'सुखुरबार', 'सुनिबार'], STANDALONEWEEKDAYS: ['रबिबार', 'समबार', - 'मंगलबार', 'बुदबार', 'बिसथिबार', - 'सुखुरबार', 'सुनिबार'], + 'मंगलबार', 'बुदबार', 'बिसथिबार', + 'सुखुरबार', 'सुनिबार'], SHORTWEEKDAYS: ['रबि', 'सम', 'मंगल', 'बुद', - 'बिसथि', 'सुखुर', 'सुनि'], + 'बिसथि', 'सुखुर', 'सुनि'], STANDALONESHORTWEEKDAYS: ['रबि', 'सम', 'मंगल', 'बुद', - 'बिसथि', 'सुखुर', 'सुनि'], + 'बिसथि', 'सुखुर', 'सुनि'], NARROWWEEKDAYS: ['र', 'स', 'मं', 'बु', 'बि', 'सु', - 'सु'], + 'सु'], STANDALONENARROWWEEKDAYS: ['र', 'स', 'मं', 'बु', 'बि', - 'सु', 'सु'], + 'सु', 'सु'], SHORTQUARTERS: [ - 'सिथासे/खोन्दोसे/बाहागोसे', - 'खावसे/खोन्दोनै/बाहागोनै', - 'खावथाम/खोन्दोथाम/बाहागोथाम', - 'खावब्रै/खोन्दोब्रै/फुरा/आबुं'], + 'सिथासे/खोन्दोसे/बाहागोसे', + 'खावसे/खोन्दोनै/बाहागोनै', + 'खावथाम/खोन्दोथाम/बाहागोथाम', + 'खावब्रै/खोन्दोब्रै/फुरा/आबुं'], QUARTERS: [ - 'सिथासे/खोन्दोसे/बाहागोसे', - 'खावसे/खोन्दोनै/बाहागोनै', - 'खावथाम/खोन्दोथाम/बाहागोथाम', - 'खावब्रै/खोन्दोब्रै/फुरा/आबुं'], + 'सिथासे/खोन्दोसे/बाहागोसे', + 'खावसे/खोन्दोनै/बाहागोनै', + 'खावथाम/खोन्दोथाम/बाहागोथाम', + 'खावब्रै/खोन्दोब्रै/फुरा/आबुं'], AMPMS: ['फुं', 'बेलासे'], DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -2420,29 +3087,30 @@ goog.i18n.DateTimeSymbols_bs = { ERANAMES: ['Pre nove ere', 'Nove ere'], NARROWMONTHS: ['j', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', 'n', 'd'], STANDALONENARROWMONTHS: ['j', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', - 'n', 'd'], + 'n', 'd'], MONTHS: ['januar', 'februar', 'mart', 'april', 'maj', 'juni', 'juli', - 'avgust', 'septembar', 'oktobar', 'novembar', 'decembar'], + 'avgust', 'septembar', 'oktobar', 'novembar', 'decembar'], STANDALONEMONTHS: ['januar', 'februar', 'mart', 'april', 'maj', 'juni', - 'juli', 'avgust', 'septembar', 'oktobar', 'novembar', 'decembar'], + 'juli', 'avgust', 'septembar', 'oktobar', 'novembar', 'decembar'], SHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'avg', 'sep', - 'okt', 'nov', 'dec'], + 'okt', 'nov', 'dec'], STANDALONESHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', - 'avg', 'sep', 'okt', 'nov', 'dec'], + 'avg', 'sep', 'okt', 'nov', 'dec'], WEEKDAYS: ['nedjelja', 'ponedjeljak', 'utorak', 'srijeda', 'četvrtak', - 'petak', 'subota'], + 'petak', 'subota'], STANDALONEWEEKDAYS: ['nedjelja', 'ponedjeljak', 'utorak', 'srijeda', - 'četvrtak', 'petak', 'subota'], + 'četvrtak', 'petak', 'subota'], SHORTWEEKDAYS: ['ned', 'pon', 'uto', 'sri', 'čet', 'pet', 'sub'], STANDALONESHORTWEEKDAYS: ['ned', 'pon', 'uto', 'sri', 'čet', 'pet', 'sub'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], QUARTERS: ['Prvi kvartal', 'Drugi kvartal', 'Treći kvartal', - 'Četvrti kvartal'], + 'Četvrti kvartal'], AMPMS: ['pre podne', 'popodne'], DATEFORMATS: ['EEEE, dd. MMMM y.', 'dd. MMMM y.', 'dd.MM.y.', 'dd.MM.yy.'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -2450,9 +3118,64 @@ goog.i18n.DateTimeSymbols_bs = { /** - * Date/time formatting symbols for locale bs_BA. + * Date/time formatting symbols for locale bs_Cyrl. */ -goog.i18n.DateTimeSymbols_bs_BA = goog.i18n.DateTimeSymbols_bs; +goog.i18n.DateTimeSymbols_bs_Cyrl = { + ERAS: ['п. н. е.', 'н. е.'], + ERANAMES: ['Пре нове ере', 'Нове ере'], + NARROWMONTHS: ['ј', 'ф', 'м', 'а', 'м', 'ј', 'ј', 'а', 'с', 'о', + 'н', 'д'], + STANDALONENARROWMONTHS: ['ј', 'ф', 'м', 'а', 'м', 'ј', 'ј', 'а', 'с', + 'о', 'н', 'д'], + MONTHS: ['јануар', 'фебруар', 'март', 'април', 'мај', + 'јуни', 'јули', 'август', 'септембар', + 'октобар', 'новембар', 'децембар'], + STANDALONEMONTHS: ['јануар', 'фебруар', 'март', 'април', + 'мај', 'јуни', 'јули', 'август', 'септембар', + 'октобар', 'новембар', 'децембар'], + SHORTMONTHS: ['јан', 'феб', 'мар', 'апр', 'мај', 'јун', + 'јул', 'авг', 'сеп', 'окт', 'нов', 'дец'], + STANDALONESHORTMONTHS: ['јан', 'феб', 'мар', 'апр', 'мај', + 'јун', 'јул', 'авг', 'сеп', 'окт', 'нов', 'дец'], + WEEKDAYS: ['недеља', 'понедељак', 'уторак', + 'сриједа', 'четвртак', 'петак', 'субота'], + STANDALONEWEEKDAYS: ['недеља', 'понедељак', 'уторак', + 'сриједа', 'четвртак', 'петак', 'субота'], + SHORTWEEKDAYS: ['нед', 'пон', 'уто', 'сри', 'чет', 'пет', + 'суб'], + STANDALONESHORTWEEKDAYS: ['нед', 'пон', 'уто', 'сри', 'чет', + 'пет', 'суб'], + NARROWWEEKDAYS: ['н', 'п', 'у', 'с', 'ч', 'п', 'с'], + STANDALONENARROWWEEKDAYS: ['н', 'п', 'у', 'с', 'ч', 'п', 'с'], + SHORTQUARTERS: ['К1', 'К2', 'К3', 'К4'], + QUARTERS: ['Прво тромесечје', 'Друго тромесечје', + 'Треће тромесечје', 'Четврто тромесечје'], + AMPMS: ['пре подне', 'поподне'], + DATEFORMATS: ['EEEE, dd. MMMM y.', 'dd. MMMM y.', 'dd.MM.y.', 'd.M.yy.'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale bs_Cyrl_BA. + */ +goog.i18n.DateTimeSymbols_bs_Cyrl_BA = goog.i18n.DateTimeSymbols_bs_Cyrl; + + +/** + * Date/time formatting symbols for locale bs_Latn. + */ +goog.i18n.DateTimeSymbols_bs_Latn = goog.i18n.DateTimeSymbols_bs; + + +/** + * Date/time formatting symbols for locale bs_Latn_BA. + */ +goog.i18n.DateTimeSymbols_bs_Latn_BA = goog.i18n.DateTimeSymbols_bs; /** @@ -2462,41 +3185,42 @@ goog.i18n.DateTimeSymbols_byn = { ERAS: ['ይጅ', 'ኣድ'], ERANAMES: ['ይጅ', 'ኣድ'], NARROWMONTHS: ['ል', 'ካ', 'ክ', 'ፋ', 'ክ', 'ም', 'ኰ', 'ማ', 'ያ', - 'መ', 'ም', 'ተ'], + 'መ', 'ም', 'ተ'], STANDALONENARROWMONTHS: ['ል', 'ካ', 'ክ', 'ፋ', 'ክ', 'ም', 'ኰ', - 'ማ', 'ያ', 'መ', 'ም', 'ተ'], + 'ማ', 'ያ', 'መ', 'ም', 'ተ'], MONTHS: ['ልደትሪ', 'ካብኽብቲ', 'ክብላ', 'ፋጅኺሪ', - 'ክቢቅሪ', 'ምኪኤል ትጟኒሪ', 'ኰርኩ', - 'ማርያም ትሪ', 'ያኸኒ መሳቅለሪ', 'መተሉ', - 'ምኪኤል መሽወሪ', 'ተሕሳስሪ'], + 'ክቢቅሪ', 'ምኪኤል ትጟኒሪ', 'ኰርኩ', + 'ማርያም ትሪ', 'ያኸኒ መሳቅለሪ', 'መተሉ', + 'ምኪኤል መሽወሪ', 'ተሕሳስሪ'], STANDALONEMONTHS: ['ልደትሪ', 'ካብኽብቲ', 'ክብላ', - 'ፋጅኺሪ', 'ክቢቅሪ', 'ምኪኤል ትጟኒሪ', 'ኰርኩ', - 'ማርያም ትሪ', 'ያኸኒ መሳቅለሪ', 'መተሉ', - 'ምኪኤል መሽወሪ', 'ተሕሳስሪ'], + 'ፋጅኺሪ', 'ክቢቅሪ', 'ምኪኤል ትጟኒሪ', 'ኰርኩ', + 'ማርያም ትሪ', 'ያኸኒ መሳቅለሪ', 'መተሉ', + 'ምኪኤል መሽወሪ', 'ተሕሳስሪ'], SHORTMONTHS: ['ልደት', 'ካብኽ', 'ክብላ', 'ፋጅኺ', 'ክቢቅ', - 'ም/ት', 'ኰር', 'ማርያ', 'ያኸኒ', 'መተሉ', 'ም/ም', - 'ተሕሳ'], + 'ም/ት', 'ኰር', 'ማርያ', 'ያኸኒ', 'መተሉ', 'ም/ም', + 'ተሕሳ'], STANDALONESHORTMONTHS: ['ልደት', 'ካብኽ', 'ክብላ', 'ፋጅኺ', - 'ክቢቅ', 'ም/ት', 'ኰር', 'ማርያ', 'ያኸኒ', 'መተሉ', - 'ም/ም', 'ተሕሳ'], + 'ክቢቅ', 'ም/ት', 'ኰር', 'ማርያ', 'ያኸኒ', 'መተሉ', + 'ም/ም', 'ተሕሳ'], WEEKDAYS: ['ሰንበር ቅዳዅ', 'ሰኑ', 'ሰሊጝ', - 'ለጓ ወሪ ለብዋ', 'ኣምድ', 'ኣርብ', - 'ሰንበር ሽጓዅ'], + 'ለጓ ወሪ ለብዋ', 'ኣምድ', 'ኣርብ', + 'ሰንበር ሽጓዅ'], STANDALONEWEEKDAYS: ['ሰንበር ቅዳዅ', 'ሰኑ', 'ሰሊጝ', - 'ለጓ ወሪ ለብዋ', 'ኣምድ', 'ኣርብ', - 'ሰንበር ሽጓዅ'], + 'ለጓ ወሪ ለብዋ', 'ኣምድ', 'ኣርብ', + 'ሰንበር ሽጓዅ'], SHORTWEEKDAYS: ['ሰ/ቅ', 'ሰኑ', 'ሰሊጝ', 'ለጓ', 'ኣምድ', - 'ኣርብ', 'ሰ/ሽ'], + 'ኣርብ', 'ሰ/ሽ'], STANDALONESHORTWEEKDAYS: ['ሰ/ቅ', 'ሰኑ', 'ሰሊጝ', 'ለጓ', - 'ኣምድ', 'ኣርብ', 'ሰ/ሽ'], + 'ኣምድ', 'ኣርብ', 'ሰ/ሽ'], NARROWWEEKDAYS: ['ሰ', 'ሰ', 'ሰ', 'ለ', 'ኣ', 'ኣ', 'ሰ'], STANDALONENARROWWEEKDAYS: ['ሰ', 'ሰ', 'ሰ', 'ለ', 'ኣ', 'ኣ', 'ሰ'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['ፋዱስ ጃብ', 'ፋዱስ ደምቢ'], DATEFORMATS: ['EEEE፡ dd MMMM ግርጋ y G', 'dd MMMM y', 'dd-MMM-y', - 'dd/MM/yy'], + 'dd/MM/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -2509,39 +3233,80 @@ goog.i18n.DateTimeSymbols_byn = { goog.i18n.DateTimeSymbols_byn_ER = goog.i18n.DateTimeSymbols_byn; +/** + * Date/time formatting symbols for locale ca_AD. + */ +goog.i18n.DateTimeSymbols_ca_AD = { + ERAS: ['aC', 'dC'], + ERANAMES: ['abans de Crist', 'després de Crist'], + NARROWMONTHS: ['G', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['g', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', + 'n', 'd'], + MONTHS: ['de gener', 'de febrer', 'de març', 'd’abril', 'de maig', + 'de juny', 'de juliol', 'd’agost', 'de setembre', 'd’octubre', + 'de novembre', 'de desembre'], + STANDALONEMONTHS: ['gener', 'febrer', 'març', 'abril', 'maig', 'juny', + 'juliol', 'agost', 'setembre', 'octubre', 'novembre', 'desembre'], + SHORTMONTHS: ['de gen.', 'de febr.', 'de març', 'd’abr.', 'de maig', + 'de juny', 'de jul.', 'd’ag.', 'de set.', 'd’oct.', 'de nov.', + 'de des.'], + STANDALONESHORTMONTHS: ['gen.', 'febr.', 'març', 'abr.', 'maig', 'juny', + 'jul.', 'ag.', 'set.', 'oct.', 'nov.', 'des.'], + WEEKDAYS: ['diumenge', 'dilluns', 'dimarts', 'dimecres', 'dijous', + 'divendres', 'dissabte'], + STANDALONEWEEKDAYS: ['Diumenge', 'Dilluns', 'Dimarts', 'Dimecres', 'Dijous', + 'Divendres', 'Dissabte'], + SHORTWEEKDAYS: ['dg.', 'dl.', 'dt.', 'dc.', 'dj.', 'dv.', 'ds.'], + STANDALONESHORTWEEKDAYS: ['dg', 'dl', 'dt', 'dc', 'dj', 'dv', 'ds'], + NARROWWEEKDAYS: ['dg', 'dl', 'dt', 'dc', 'dj', 'dv', 'ds'], + STANDALONENARROWWEEKDAYS: ['dg', 'dl', 'dt', 'dc', 'dj', 'dv', 'ds'], + SHORTQUARTERS: ['1T', '2T', '3T', '4T'], + QUARTERS: ['1r trimestre', '2n trimestre', '3r trimestre', '4t trimestre'], + AMPMS: ['a.m.', 'p.m.'], + DATEFORMATS: ['EEEE d MMMM \'de\' y', 'd MMMM \'de\' y', 'dd/MM/y', + 'dd/MM/yy'], + TIMEFORMATS: ['H.mm.ss zzzz', 'H.mm.ss z', 'H.mm.ss', 'H.mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 3 +}; + + /** * Date/time formatting symbols for locale ca_ES. */ goog.i18n.DateTimeSymbols_ca_ES = { ERAS: ['aC', 'dC'], ERANAMES: ['abans de Crist', 'després de Crist'], - NARROWMONTHS: ['G', 'F', 'M', 'A', 'M', 'J', 'G', 'A', 'S', 'O', 'N', 'D'], + NARROWMONTHS: ['G', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['g', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', - 'n', 'd'], + 'n', 'd'], MONTHS: ['de gener', 'de febrer', 'de març', 'd’abril', 'de maig', - 'de juny', 'de juliol', 'd’agost', 'de setembre', 'd’octubre', - 'de novembre', 'de desembre'], + 'de juny', 'de juliol', 'd’agost', 'de setembre', 'd’octubre', + 'de novembre', 'de desembre'], STANDALONEMONTHS: ['gener', 'febrer', 'març', 'abril', 'maig', 'juny', - 'juliol', 'agost', 'setembre', 'octubre', 'novembre', 'desembre'], + 'juliol', 'agost', 'setembre', 'octubre', 'novembre', 'desembre'], SHORTMONTHS: ['de gen.', 'de febr.', 'de març', 'd’abr.', 'de maig', - 'de juny', 'de jul.', 'd’ag.', 'de set.', 'd’oct.', 'de nov.', - 'de des.'], + 'de juny', 'de jul.', 'd’ag.', 'de set.', 'd’oct.', 'de nov.', + 'de des.'], STANDALONESHORTMONTHS: ['gen.', 'febr.', 'març', 'abr.', 'maig', 'juny', - 'jul.', 'ag.', 'set.', 'oct.', 'nov.', 'des.'], + 'jul.', 'ag.', 'set.', 'oct.', 'nov.', 'des.'], WEEKDAYS: ['diumenge', 'dilluns', 'dimarts', 'dimecres', 'dijous', - 'divendres', 'dissabte'], + 'divendres', 'dissabte'], STANDALONEWEEKDAYS: ['Diumenge', 'Dilluns', 'Dimarts', 'Dimecres', 'Dijous', - 'Divendres', 'Dissabte'], + 'Divendres', 'Dissabte'], SHORTWEEKDAYS: ['dg.', 'dl.', 'dt.', 'dc.', 'dj.', 'dv.', 'ds.'], STANDALONESHORTWEEKDAYS: ['dg', 'dl', 'dt', 'dc', 'dj', 'dv', 'ds'], - NARROWWEEKDAYS: ['G', 'l', 'T', 'C', 'J', 'V', 'S'], - STANDALONENARROWWEEKDAYS: ['g', 'l', 't', 'c', 'j', 'v', 's'], + NARROWWEEKDAYS: ['dg', 'dl', 'dt', 'dc', 'dj', 'dv', 'ds'], + STANDALONENARROWWEEKDAYS: ['dg', 'dl', 'dt', 'dc', 'dj', 'dv', 'ds'], SHORTQUARTERS: ['1T', '2T', '3T', '4T'], QUARTERS: ['1r trimestre', '2n trimestre', '3r trimestre', '4t trimestre'], AMPMS: ['a.m.', 'p.m.'], - DATEFORMATS: ['EEEE d MMMM \'de\' y', 'd MMMM \'de\' y', 'dd/MM/yyyy', - 'dd/MM/yy'], - TIMEFORMATS: ['H:mm:ss zzzz', 'H:mm:ss z', 'H:mm:ss', 'H:mm'], + DATEFORMATS: ['EEEE d MMMM \'de\' y', 'd MMMM \'de\' y', 'dd/MM/y', + 'dd/MM/yy'], + TIMEFORMATS: ['H.mm.ss zzzz', 'H.mm.ss z', 'H.mm.ss', 'H.mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -2556,21 +3321,21 @@ goog.i18n.DateTimeSymbols_cgg = { ERANAMES: ['Kurisito Atakaijire', 'Kurisito Yaijire'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Okwokubanza', 'Okwakabiri', 'Okwakashatu', 'Okwakana', - 'Okwakataana', 'Okwamukaaga', 'Okwamushanju', 'Okwamunaana', 'Okwamwenda', - 'Okwaikumi', 'Okwaikumi na kumwe', 'Okwaikumi na ibiri'], + 'Okwakataana', 'Okwamukaaga', 'Okwamushanju', 'Okwamunaana', 'Okwamwenda', + 'Okwaikumi', 'Okwaikumi na kumwe', 'Okwaikumi na ibiri'], STANDALONEMONTHS: ['Okwokubanza', 'Okwakabiri', 'Okwakashatu', 'Okwakana', - 'Okwakataana', 'Okwamukaaga', 'Okwamushanju', 'Okwamunaana', 'Okwamwenda', - 'Okwaikumi', 'Okwaikumi na kumwe', 'Okwaikumi na ibiri'], + 'Okwakataana', 'Okwamukaaga', 'Okwamushanju', 'Okwamunaana', 'Okwamwenda', + 'Okwaikumi', 'Okwaikumi na kumwe', 'Okwaikumi na ibiri'], SHORTMONTHS: ['KBZ', 'KBR', 'KST', 'KKN', 'KTN', 'KMK', 'KMS', 'KMN', 'KMW', - 'KKM', 'KNK', 'KNB'], + 'KKM', 'KNK', 'KNB'], STANDALONESHORTMONTHS: ['KBZ', 'KBR', 'KST', 'KKN', 'KTN', 'KMK', 'KMS', - 'KMN', 'KMW', 'KKM', 'KNK', 'KNB'], + 'KMN', 'KMW', 'KKM', 'KNK', 'KNB'], WEEKDAYS: ['Sande', 'Orwokubanza', 'Orwakabiri', 'Orwakashatu', 'Orwakana', - 'Orwakataano', 'Orwamukaaga'], + 'Orwakataano', 'Orwamukaaga'], STANDALONEWEEKDAYS: ['Sande', 'Orwokubanza', 'Orwakabiri', 'Orwakashatu', - 'Orwakana', 'Orwakataano', 'Orwamukaaga'], + 'Orwakana', 'Orwakataano', 'Orwamukaaga'], SHORTWEEKDAYS: ['SAN', 'ORK', 'OKB', 'OKS', 'OKN', 'OKT', 'OMK'], STANDALONESHORTWEEKDAYS: ['SAN', 'ORK', 'OKB', 'OKS', 'OKN', 'OKT', 'OMK'], NARROWWEEKDAYS: ['S', 'K', 'R', 'S', 'N', 'T', 'M'], @@ -2578,8 +3343,9 @@ goog.i18n.DateTimeSymbols_cgg = { SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], QUARTERS: ['KWOTA 1', 'KWOTA 2', 'KWOTA 3', 'KWOTA 4'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -2598,31 +3364,31 @@ goog.i18n.DateTimeSymbols_cgg_UG = goog.i18n.DateTimeSymbols_cgg; goog.i18n.DateTimeSymbols_chr_US = { ERAS: ['ᎤᏓᎷᎸ', 'ᎤᎶᏐᏅ'], ERANAMES: ['Ꮟ ᏥᏌ ᎾᏕᎲᏍᎬᎾ', - 'ᎠᎩᏃᎮᎵᏓᏍᏗᏱ ᎠᏕᏘᏱᏍᎬ ᏱᎰᏩ ᏧᏓᏂᎸᎢᏍᏗ'], + 'ᎠᎩᏃᎮᎵᏓᏍᏗᏱ ᎠᏕᏘᏱᏍᎬ ᏱᎰᏩ ᏧᏓᏂᎸᎢᏍᏗ'], NARROWMONTHS: ['Ꭴ', 'Ꭷ', 'Ꭰ', 'Ꭷ', 'Ꭰ', 'Ꮥ', 'Ꭻ', 'Ꭶ', 'Ꮪ', - 'Ꮪ', 'Ꮕ', 'Ꭴ'], + 'Ꮪ', 'Ꮕ', 'Ꭴ'], STANDALONENARROWMONTHS: ['Ꭴ', 'Ꭷ', 'Ꭰ', 'Ꭷ', 'Ꭰ', 'Ꮥ', 'Ꭻ', - 'Ꭶ', 'Ꮪ', 'Ꮪ', 'Ꮕ', 'Ꭴ'], + 'Ꭶ', 'Ꮪ', 'Ꮪ', 'Ꮕ', 'Ꭴ'], MONTHS: ['ᎤᏃᎸᏔᏅ', 'ᎧᎦᎵ', 'ᎠᏅᏱ', 'ᎧᏬᏂ', - 'ᎠᏂᏍᎬᏘ', 'ᏕᎭᎷᏱ', 'ᎫᏰᏉᏂ', 'ᎦᎶᏂ', - 'ᏚᎵᏍᏗ', 'ᏚᏂᏅᏗ', 'ᏅᏓᏕᏆ', 'ᎤᏍᎩᏱ'], + 'ᎠᏂᏍᎬᏘ', 'ᏕᎭᎷᏱ', 'ᎫᏰᏉᏂ', 'ᎦᎶᏂ', + 'ᏚᎵᏍᏗ', 'ᏚᏂᏅᏗ', 'ᏅᏓᏕᏆ', 'ᎤᏍᎩᏱ'], STANDALONEMONTHS: ['ᎤᏃᎸᏔᏅ', 'ᎧᎦᎵ', 'ᎠᏅᏱ', 'ᎧᏬᏂ', - 'ᎠᏂᏍᎬᏘ', 'ᏕᎭᎷᏱ', 'ᎫᏰᏉᏂ', 'ᎦᎶᏂ', - 'ᏚᎵᏍᏗ', 'ᏚᏂᏅᏗ', 'ᏅᏓᏕᏆ', 'ᎤᏍᎩᏱ'], + 'ᎠᏂᏍᎬᏘ', 'ᏕᎭᎷᏱ', 'ᎫᏰᏉᏂ', 'ᎦᎶᏂ', + 'ᏚᎵᏍᏗ', 'ᏚᏂᏅᏗ', 'ᏅᏓᏕᏆ', 'ᎤᏍᎩᏱ'], SHORTMONTHS: ['ᎤᏃ', 'ᎧᎦ', 'ᎠᏅ', 'ᎧᏬ', 'ᎠᏂ', 'ᏕᎭ', - 'ᎫᏰ', 'ᎦᎶ', 'ᏚᎵ', 'ᏚᏂ', 'ᏅᏓ', 'ᎤᏍ'], + 'ᎫᏰ', 'ᎦᎶ', 'ᏚᎵ', 'ᏚᏂ', 'ᏅᏓ', 'ᎤᏍ'], STANDALONESHORTMONTHS: ['ᎤᏃ', 'ᎧᎦ', 'ᎠᏅ', 'ᎧᏬ', 'ᎠᏂ', - 'ᏕᎭ', 'ᎫᏰ', 'ᎦᎶ', 'ᏚᎵ', 'ᏚᏂ', 'ᏅᏓ', 'ᎤᏍ'], + 'ᏕᎭ', 'ᎫᏰ', 'ᎦᎶ', 'ᏚᎵ', 'ᏚᏂ', 'ᏅᏓ', 'ᎤᏍ'], WEEKDAYS: ['ᎤᎾᏙᏓᏆᏍᎬ', 'ᎤᎾᏙᏓᏉᏅᎯ', - 'ᏔᎵᏁᎢᎦ', 'ᏦᎢᏁᎢᎦ', 'ᏅᎩᏁᎢᎦ', - 'ᏧᎾᎩᎶᏍᏗ', 'ᎤᎾᏙᏓᏈᏕᎾ'], + 'ᏔᎵᏁᎢᎦ', 'ᏦᎢᏁᎢᎦ', 'ᏅᎩᏁᎢᎦ', + 'ᏧᎾᎩᎶᏍᏗ', 'ᎤᎾᏙᏓᏈᏕᎾ'], STANDALONEWEEKDAYS: ['ᎤᎾᏙᏓᏆᏍᎬ', 'ᎤᎾᏙᏓᏉᏅᎯ', - 'ᏔᎵᏁᎢᎦ', 'ᏦᎢᏁᎢᎦ', 'ᏅᎩᏁᎢᎦ', - 'ᏧᎾᎩᎶᏍᏗ', 'ᎤᎾᏙᏓᏈᏕᎾ'], + 'ᏔᎵᏁᎢᎦ', 'ᏦᎢᏁᎢᎦ', 'ᏅᎩᏁᎢᎦ', + 'ᏧᎾᎩᎶᏍᏗ', 'ᎤᎾᏙᏓᏈᏕᎾ'], SHORTWEEKDAYS: ['ᏆᏍᎬ', 'ᏉᏅᎯ', 'ᏔᎵᏁ', 'ᏦᎢᏁ', - 'ᏅᎩᏁ', 'ᏧᎾᎩ', 'ᏈᏕᎾ'], + 'ᏅᎩᏁ', 'ᏧᎾᎩ', 'ᏈᏕᎾ'], STANDALONESHORTWEEKDAYS: ['ᏆᏍᎬ', 'ᏉᏅᎯ', 'ᏔᎵᏁ', 'ᏦᎢᏁ', - 'ᏅᎩᏁ', 'ᏧᎾᎩ', 'ᏈᏕᎾ'], + 'ᏅᎩᏁ', 'ᏧᎾᎩ', 'ᏈᏕᎾ'], NARROWWEEKDAYS: ['Ꮖ', 'Ꮙ', 'Ꮤ', 'Ꮶ', 'Ꮕ', 'Ꮷ', 'Ꭴ'], STANDALONENARROWWEEKDAYS: ['Ꮖ', 'Ꮙ', 'Ꮤ', 'Ꮶ', 'Ꮕ', 'Ꮷ', 'Ꭴ'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], @@ -2630,6 +3396,7 @@ goog.i18n.DateTimeSymbols_chr_US = { AMPMS: ['ᏌᎾᎴ', 'ᏒᎯᏱᎢᏗᏢ'], DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -2645,41 +3412,42 @@ goog.i18n.DateTimeSymbols_ckb = { ERANAMES: ['پێش زایین', 'زایینی'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', 'D'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', 'D'], + '11', 'D'], MONTHS: ['کانوونی دووەم', 'شوبات', 'ئازار', - 'نیسان', 'ئایار', 'حوزەیران', 'تەمووز', 'ئاب', - 'ئەیلوول', 'تشرینی یەکەم', 'تشرینی دووەم', - 'کانونی یەکەم'], + 'نیسان', 'ئایار', 'حوزەیران', 'تەمووز', 'ئاب', + 'ئەیلوول', 'تشرینی یەکەم', 'تشرینی دووەم', + 'کانونی یەکەم'], STANDALONEMONTHS: ['کانوونی دووەم', 'شوبات', 'ئازار', - 'نیسان', 'ئایار', 'حوزەیران', 'تەمووز', 'ئاب', - 'ئەیلوول', 'تشرینی یەکەم', 'تشرینی دووەم', - 'کانونی یەکەم'], + 'نیسان', 'ئایار', 'حوزەیران', 'تەمووز', 'ئاب', + 'ئەیلوول', 'تشرینی یەکەم', 'تشرینی دووەم', + 'کانونی یەکەم'], SHORTMONTHS: ['کانوونی دووەم', 'شوبات', 'ئازار', - 'نیسان', 'ئایار', 'حوزەیران', 'تەمووز', 'ئاب', - 'ئەیلوول', 'تشرینی یەکەم', 'تشرینی دووەم', - 'کانونی یەکەم'], + 'نیسان', 'ئایار', 'حوزەیران', 'تەمووز', 'ئاب', + 'ئەیلوول', 'تشرینی یەکەم', 'تشرینی دووەم', + 'کانونی یەکەم'], STANDALONESHORTMONTHS: ['کانوونی دووەم', 'شوبات', - 'ئازار', 'نیسان', 'ئایار', 'حوزەیران', - 'تەمووز', 'ئاب', 'ئەیلوول', 'تشرینی یەکەم', - 'تشرینی دووەم', 'کانونی یەکەم'], + 'ئازار', 'نیسان', 'ئایار', 'حوزەیران', + 'تەمووز', 'ئاب', 'ئەیلوول', 'تشرینی یەکەم', + 'تشرینی دووەم', 'کانونی یەکەم'], WEEKDAYS: ['یەکشەممە', 'دووشەممە', 'سێشەممە', - 'چوارشەممە', 'پێنجشەممە', 'ھەینی', 'شەممە'], + 'چوارشەممە', 'پێنجشەممە', 'ھەینی', 'شەممە'], STANDALONEWEEKDAYS: ['یەکشەممە', 'دووشەممە', 'سێشەممە', - 'چوارشەممە', 'پێنجشەممە', 'ھەینی', 'شەممە'], + 'چوارشەممە', 'پێنجشەممە', 'ھەینی', 'شەممە'], SHORTWEEKDAYS: ['یەکشەممە', 'دووشەممە', 'سێشەممە', - 'چوارشەممە', 'پێنجشەممە', 'ھەینی', 'شەممە'], + 'چوارشەممە', 'پێنجشەممە', 'ھەینی', 'شەممە'], STANDALONESHORTWEEKDAYS: ['یەکشەممە', 'دووشەممە', - 'سێشەممە', 'چوارشەممە', 'پێنجشەممە', - 'ھەینی', 'شەممە'], + 'سێشەممە', 'چوارشەممە', 'پێنجشەممە', 'ھەینی', + 'شەممە'], NARROWWEEKDAYS: ['ی', 'د', 'س', 'چ', 'پ', 'ھ', 'ش'], STANDALONENARROWWEEKDAYS: ['ی', 'د', 'س', 'چ', 'پ', 'ھ', 'ش'], SHORTQUARTERS: ['چارەکی یەکەم', 'چارەکی دووەم', - 'چارەکی سێەم', 'چارەکی چوارەم'], + 'چارەکی سێەم', 'چارەکی چوارەم'], QUARTERS: ['چارەکی یەکەم', 'چارەکی دووەم', - 'چارەکی سێەم', 'چارەکی چوارەم'], + 'چارەکی سێەم', 'چارەکی چوارەم'], AMPMS: ['ب.ن', 'د.ن'], - DATEFORMATS: ['EEEE, y MMMM dd', 'dی MMMMی y', 'y MMM d', 'yyyy-MM-dd'], + DATEFORMATS: ['y MMMM d, EEEE', 'dی MMMMی y', 'y MMM d', 'y-MM-dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 5, WEEKENDRANGE: [4, 5], FIRSTWEEKCUTOFFDAY: 4 @@ -2736,29 +3504,30 @@ goog.i18n.DateTimeSymbols_cs_CZ = { ERANAMES: ['př. n. l.', 'n. l.'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['l', 'ú', 'b', 'd', 'k', 'č', 'č', 's', 'z', 'ř', - 'l', 'p'], + 'l', 'p'], MONTHS: ['ledna', 'února', 'března', 'dubna', 'května', 'června', - 'července', 'srpna', 'září', 'října', 'listopadu', 'prosince'], + 'července', 'srpna', 'září', 'října', 'listopadu', 'prosince'], STANDALONEMONTHS: ['leden', 'únor', 'březen', 'duben', 'květen', 'červen', - 'červenec', 'srpen', 'září', 'říjen', 'listopad', 'prosinec'], - SHORTMONTHS: ['Led', 'Úno', 'Bře', 'Dub', 'Kvě', 'Čer', 'Čvc', 'Srp', - 'Zář', 'Říj', 'Lis', 'Pro'], - STANDALONESHORTMONTHS: ['1.', '2.', '3.', '4.', '5.', '6.', '7.', '8.', '9.', - '10.', '11.', '12.'], + 'červenec', 'srpen', 'září', 'říjen', 'listopad', 'prosinec'], + SHORTMONTHS: ['led', 'úno', 'bře', 'dub', 'kvě', 'čvn', 'čvc', 'srp', + 'zář', 'říj', 'lis', 'pro'], + STANDALONESHORTMONTHS: ['led', 'úno', 'bře', 'dub', 'kvě', 'čvn', 'čvc', + 'srp', 'zář', 'říj', 'lis', 'pro'], WEEKDAYS: ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', - 'sobota'], + 'sobota'], STANDALONEWEEKDAYS: ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', - 'pátek', 'sobota'], + 'pátek', 'sobota'], SHORTWEEKDAYS: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'], STANDALONESHORTWEEKDAYS: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'], NARROWWEEKDAYS: ['N', 'P', 'Ú', 'S', 'Č', 'P', 'S'], STANDALONENARROWWEEKDAYS: ['N', 'P', 'Ú', 'S', 'Č', 'P', 'S'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['1. čtvrtletí', '2. čtvrtletí', '3. čtvrtletí', - '4. čtvrtletí'], + '4. čtvrtletí'], AMPMS: ['dop.', 'odp.'], - DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'd. M. yyyy', 'dd.MM.yy'], + DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'd. M. y', 'dd.MM.yy'], TIMEFORMATS: ['H:mm:ss zzzz', 'H:mm:ss z', 'H:mm:ss', 'H:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -2771,30 +3540,31 @@ goog.i18n.DateTimeSymbols_cs_CZ = { goog.i18n.DateTimeSymbols_cy_GB = { ERAS: ['CC', 'OC'], ERANAMES: ['Cyn Crist', 'Oed Crist'], - NARROWMONTHS: ['I', 'C', 'M', 'E', 'M', 'M', 'G', 'A', 'M', 'H', 'T', 'R'], - STANDALONENARROWMONTHS: ['I', 'C', 'M', 'E', 'M', 'M', 'G', 'A', 'M', 'H', - 'T', 'R'], + NARROWMONTHS: ['I', 'Ch', 'M', 'E', 'M', 'M', 'G', 'A', 'M', 'H', 'T', 'Rh'], + STANDALONENARROWMONTHS: ['I', 'Ch', 'M', 'E', 'M', 'M', 'G', 'A', 'M', 'H', + 'T', 'Rh'], MONTHS: ['Ionawr', 'Chwefror', 'Mawrth', 'Ebrill', 'Mai', 'Mehefin', - 'Gorffenaf', 'Awst', 'Medi', 'Hydref', 'Tachwedd', 'Rhagfyr'], + 'Gorffennaf', 'Awst', 'Medi', 'Hydref', 'Tachwedd', 'Rhagfyr'], STANDALONEMONTHS: ['Ionawr', 'Chwefror', 'Mawrth', 'Ebrill', 'Mai', 'Mehefin', - 'Gorffennaf', 'Awst', 'Medi', 'Hydref', 'Tachwedd', 'Rhagfyr'], + 'Gorffennaf', 'Awst', 'Medi', 'Hydref', 'Tachwedd', 'Rhagfyr'], SHORTMONTHS: ['Ion', 'Chwef', 'Mawrth', 'Ebrill', 'Mai', 'Meh', 'Gorff', - 'Awst', 'Medi', 'Hyd', 'Tach', 'Rhag'], - STANDALONESHORTMONTHS: ['Ion', 'Chwe', 'Maw', 'Ebr', 'Mai', 'Meh', 'Gor', - 'Awst', 'Medi', 'Hyd', 'Tach', 'Rhag'], + 'Awst', 'Medi', 'Hyd', 'Tach', 'Rhag'], + STANDALONESHORTMONTHS: ['Ion', 'Chw', 'Maw', 'Ebr', 'Mai', 'Meh', 'Gor', + 'Awst', 'Medi', 'Hyd', 'Tach', 'Rhag'], WEEKDAYS: ['Dydd Sul', 'Dydd Llun', 'Dydd Mawrth', 'Dydd Mercher', 'Dydd Iau', - 'Dydd Gwener', 'Dydd Sadwrn'], + 'Dydd Gwener', 'Dydd Sadwrn'], STANDALONEWEEKDAYS: ['Dydd Sul', 'Dydd Llun', 'Dydd Mawrth', 'Dydd Mercher', - 'Dydd Iau', 'Dydd Gwener', 'Dydd Sadwrn'], + 'Dydd Iau', 'Dydd Gwener', 'Dydd Sadwrn'], SHORTWEEKDAYS: ['Sul', 'Llun', 'Maw', 'Mer', 'Iau', 'Gwen', 'Sad'], STANDALONESHORTWEEKDAYS: ['Sul', 'Llun', 'Maw', 'Mer', 'Iau', 'Gwe', 'Sad'], - NARROWWEEKDAYS: ['S', 'L', 'M', 'M', 'I', 'G', 'S'], - STANDALONENARROWWEEKDAYS: ['S', 'L', 'M', 'M', 'I', 'G', 'S'], + NARROWWEEKDAYS: ['S', 'Ll', 'M', 'M', 'I', 'G', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'Ll', 'M', 'M', 'I', 'G', 'S'], SHORTQUARTERS: ['Ch1', 'Ch2', 'Ch3', 'Ch4'], QUARTERS: ['Chwarter 1af', '2il chwarter', '3ydd chwarter', '4ydd chwarter'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -2809,28 +3579,29 @@ goog.i18n.DateTimeSymbols_da_DK = { ERANAMES: ['f.Kr.', 'e.Kr.'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['januar', 'februar', 'marts', 'april', 'maj', 'juni', 'juli', - 'august', 'september', 'oktober', 'november', 'december'], + 'august', 'september', 'oktober', 'november', 'december'], STANDALONEMONTHS: ['januar', 'februar', 'marts', 'april', 'maj', 'juni', - 'juli', 'august', 'september', 'oktober', 'november', 'december'], + 'juli', 'august', 'september', 'oktober', 'november', 'december'], SHORTMONTHS: ['jan.', 'feb.', 'mar.', 'apr.', 'maj', 'jun.', 'jul.', 'aug.', - 'sep.', 'okt.', 'nov.', 'dec.'], + 'sep.', 'okt.', 'nov.', 'dec.'], STANDALONESHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', - 'aug', 'sep', 'okt', 'nov', 'dec'], + 'aug', 'sep', 'okt', 'nov', 'dec'], WEEKDAYS: ['søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', - 'lørdag'], + 'lørdag'], STANDALONEWEEKDAYS: ['søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', - 'fredag', 'lørdag'], - SHORTWEEKDAYS: ['søn', 'man', 'tir', 'ons', 'tor', 'fre', 'lør'], + 'fredag', 'lørdag'], + SHORTWEEKDAYS: ['søn.', 'man.', 'tir.', 'ons.', 'tor.', 'fre.', 'lør.'], STANDALONESHORTWEEKDAYS: ['søn', 'man', 'tir', 'ons', 'tor', 'fre', 'lør'], NARROWWEEKDAYS: ['S', 'M', 'T', 'O', 'T', 'F', 'L'], STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'O', 'T', 'F', 'L'], SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], QUARTERS: ['1. kvartal', '2. kvartal', '3. kvartal', '4. kvartal'], - AMPMS: ['f.m.', 'e.m.'], - DATEFORMATS: ['EEEE \'den\' d. MMMM y', 'd. MMM y', 'dd/MM/yyyy', 'dd/MM/yy'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE \'den\' d. MMMM y', 'd. MMM y', 'dd/MM/y', 'dd/MM/yy'], TIMEFORMATS: ['HH.mm.ss zzzz', 'HH.mm.ss z', 'HH.mm.ss', 'HH.mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -2845,33 +3616,34 @@ goog.i18n.DateTimeSymbols_dav = { ERANAMES: ['Kabla ya Kristo', 'Baada ya Kristo'], NARROWMONTHS: ['I', 'K', 'K', 'K', 'K', 'K', 'M', 'W', 'I', 'I', 'I', 'I'], STANDALONENARROWMONTHS: ['I', 'K', 'K', 'K', 'K', 'K', 'M', 'W', 'I', 'I', - 'I', 'I'], + 'I', 'I'], MONTHS: ['Mori ghwa imbiri', 'Mori ghwa kawi', 'Mori ghwa kadadu', - 'Mori ghwa kana', 'Mori ghwa kasanu', 'Mori ghwa karandadu', - 'Mori ghwa mfungade', 'Mori ghwa wunyanya', 'Mori ghwa ikenda', - 'Mori ghwa ikumi', 'Mori ghwa ikumi na imweri', 'Mori ghwa ikumi na iwi'], + 'Mori ghwa kana', 'Mori ghwa kasanu', 'Mori ghwa karandadu', + 'Mori ghwa mfungade', 'Mori ghwa wunyanya', 'Mori ghwa ikenda', + 'Mori ghwa ikumi', 'Mori ghwa ikumi na imweri', 'Mori ghwa ikumi na iwi'], STANDALONEMONTHS: ['Mori ghwa imbiri', 'Mori ghwa kawi', 'Mori ghwa kadadu', - 'Mori ghwa kana', 'Mori ghwa kasanu', 'Mori ghwa karandadu', - 'Mori ghwa mfungade', 'Mori ghwa wunyanya', 'Mori ghwa ikenda', - 'Mori ghwa ikumi', 'Mori ghwa ikumi na imweri', 'Mori ghwa ikumi na iwi'], + 'Mori ghwa kana', 'Mori ghwa kasanu', 'Mori ghwa karandadu', + 'Mori ghwa mfungade', 'Mori ghwa wunyanya', 'Mori ghwa ikenda', + 'Mori ghwa ikumi', 'Mori ghwa ikumi na imweri', 'Mori ghwa ikumi na iwi'], SHORTMONTHS: ['Imb', 'Kaw', 'Kad', 'Kan', 'Kas', 'Kar', 'Mfu', 'Wun', 'Ike', - 'Iku', 'Imw', 'Iwi'], + 'Iku', 'Imw', 'Iwi'], STANDALONESHORTMONTHS: ['Imb', 'Kaw', 'Kad', 'Kan', 'Kas', 'Kar', 'Mfu', - 'Wun', 'Ike', 'Iku', 'Imw', 'Iwi'], + 'Wun', 'Ike', 'Iku', 'Imw', 'Iwi'], WEEKDAYS: ['Ituku ja jumwa', 'Kuramuka jimweri', 'Kuramuka kawi', - 'Kuramuka kadadu', 'Kuramuka kana', 'Kuramuka kasanu', 'Kifula nguwo'], + 'Kuramuka kadadu', 'Kuramuka kana', 'Kuramuka kasanu', 'Kifula nguwo'], STANDALONEWEEKDAYS: ['Ituku ja jumwa', 'Kuramuka jimweri', 'Kuramuka kawi', - 'Kuramuka kadadu', 'Kuramuka kana', 'Kuramuka kasanu', 'Kifula nguwo'], + 'Kuramuka kadadu', 'Kuramuka kana', 'Kuramuka kasanu', 'Kifula nguwo'], SHORTWEEKDAYS: ['Jum', 'Jim', 'Kaw', 'Kad', 'Kan', 'Kas', 'Ngu'], STANDALONESHORTWEEKDAYS: ['Jum', 'Jim', 'Kaw', 'Kad', 'Kan', 'Kas', 'Ngu'], NARROWWEEKDAYS: ['J', 'J', 'K', 'K', 'K', 'K', 'N'], STANDALONENARROWWEEKDAYS: ['J', 'J', 'K', 'K', 'K', 'K', 'N'], SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], QUARTERS: ['Kimu cha imbiri', 'Kimu cha kawi', 'Kimu cha kadadu', - 'Kimu cha kana'], + 'Kimu cha kana'], AMPMS: ['Luma lwa K', 'luma lwa p'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -2892,19 +3664,19 @@ goog.i18n.DateTimeSymbols_de_BE = { ERANAMES: ['v. Chr.', 'n. Chr.'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', - 'August', 'September', 'Oktober', 'November', 'Dezember'], + 'August', 'September', 'Oktober', 'November', 'Dezember'], STANDALONEMONTHS: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', - 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'], - SHORTMONTHS: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', - 'Okt', 'Nov', 'Dez'], + 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'], + SHORTMONTHS: ['Jan.', 'Feb.', 'Mär.', 'Apr.', 'Mai', 'Juni', 'Juli', 'Aug.', + 'Sep.', 'Okt.', 'Nov.', 'Dez.'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', - 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'], + 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'], WEEKDAYS: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', - 'Freitag', 'Samstag'], + 'Freitag', 'Samstag'], STANDALONEWEEKDAYS: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', - 'Donnerstag', 'Freitag', 'Samstag'], + 'Donnerstag', 'Freitag', 'Samstag'], SHORTWEEKDAYS: ['So.', 'Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.'], STANDALONESHORTWEEKDAYS: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'], NARROWWEEKDAYS: ['S', 'M', 'D', 'M', 'D', 'F', 'S'], @@ -2912,8 +3684,9 @@ goog.i18n.DateTimeSymbols_de_BE = { SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['1. Quartal', '2. Quartal', '3. Quartal', '4. Quartal'], AMPMS: ['vorm.', 'nachm.'], - DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'dd.MM.yyyy', 'dd.MM.yy'], + DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'dd.MM.y', 'dd.MM.yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -2928,19 +3701,19 @@ goog.i18n.DateTimeSymbols_de_DE = { ERANAMES: ['v. Chr.', 'n. Chr.'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', - 'August', 'September', 'Oktober', 'November', 'Dezember'], + 'August', 'September', 'Oktober', 'November', 'Dezember'], STANDALONEMONTHS: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', - 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'], - SHORTMONTHS: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', - 'Okt', 'Nov', 'Dez'], + 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'], + SHORTMONTHS: ['Jan.', 'Feb.', 'Mär.', 'Apr.', 'Mai', 'Juni', 'Juli', 'Aug.', + 'Sep.', 'Okt.', 'Nov.', 'Dez.'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', - 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'], + 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'], WEEKDAYS: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', - 'Freitag', 'Samstag'], + 'Freitag', 'Samstag'], STANDALONEWEEKDAYS: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', - 'Donnerstag', 'Freitag', 'Samstag'], + 'Donnerstag', 'Freitag', 'Samstag'], SHORTWEEKDAYS: ['So.', 'Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.'], STANDALONESHORTWEEKDAYS: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'], NARROWWEEKDAYS: ['S', 'M', 'D', 'M', 'D', 'F', 'S'], @@ -2948,8 +3721,9 @@ goog.i18n.DateTimeSymbols_de_DE = { SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['1. Quartal', '2. Quartal', '3. Quartal', '4. Quartal'], AMPMS: ['vorm.', 'nachm.'], - DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'dd.MM.yyyy', 'dd.MM.yy'], + DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'dd.MM.y', 'dd.MM.yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -2964,19 +3738,19 @@ goog.i18n.DateTimeSymbols_de_LI = { ERANAMES: ['v. Chr.', 'n. Chr.'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', - 'August', 'September', 'Oktober', 'November', 'Dezember'], + 'August', 'September', 'Oktober', 'November', 'Dezember'], STANDALONEMONTHS: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', - 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'], - SHORTMONTHS: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', - 'Okt', 'Nov', 'Dez'], + 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'], + SHORTMONTHS: ['Jan.', 'Feb.', 'Mär.', 'Apr.', 'Mai', 'Juni', 'Juli', 'Aug.', + 'Sep.', 'Okt.', 'Nov.', 'Dez.'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', - 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'], + 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'], WEEKDAYS: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', - 'Freitag', 'Samstag'], + 'Freitag', 'Samstag'], STANDALONEWEEKDAYS: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', - 'Donnerstag', 'Freitag', 'Samstag'], + 'Donnerstag', 'Freitag', 'Samstag'], SHORTWEEKDAYS: ['So.', 'Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.'], STANDALONESHORTWEEKDAYS: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'], NARROWWEEKDAYS: ['S', 'M', 'D', 'M', 'D', 'F', 'S'], @@ -2984,8 +3758,9 @@ goog.i18n.DateTimeSymbols_de_LI = { SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['1. Quartal', '2. Quartal', '3. Quartal', '4. Quartal'], AMPMS: ['vorm.', 'nachm.'], - DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'dd.MM.yyyy', 'dd.MM.yy'], + DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'dd.MM.y', 'dd.MM.yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -3000,19 +3775,19 @@ goog.i18n.DateTimeSymbols_de_LU = { ERANAMES: ['v. Chr.', 'n. Chr.'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', - 'August', 'September', 'Oktober', 'November', 'Dezember'], + 'August', 'September', 'Oktober', 'November', 'Dezember'], STANDALONEMONTHS: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', - 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'], - SHORTMONTHS: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', - 'Okt', 'Nov', 'Dez'], + 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'], + SHORTMONTHS: ['Jan.', 'Feb.', 'Mär.', 'Apr.', 'Mai', 'Juni', 'Juli', 'Aug.', + 'Sep.', 'Okt.', 'Nov.', 'Dez.'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', - 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'], + 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'], WEEKDAYS: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', - 'Freitag', 'Samstag'], + 'Freitag', 'Samstag'], STANDALONEWEEKDAYS: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', - 'Donnerstag', 'Freitag', 'Samstag'], + 'Donnerstag', 'Freitag', 'Samstag'], SHORTWEEKDAYS: ['So.', 'Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.'], STANDALONESHORTWEEKDAYS: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'], NARROWWEEKDAYS: ['S', 'M', 'D', 'M', 'D', 'F', 'S'], @@ -3020,8 +3795,9 @@ goog.i18n.DateTimeSymbols_de_LU = { SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['1. Quartal', '2. Quartal', '3. Quartal', '4. Quartal'], AMPMS: ['vorm.', 'nachm.'], - DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'dd.MM.yyyy', 'dd.MM.yy'], + DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'dd.MM.y', 'dd.MM.yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -3036,20 +3812,20 @@ goog.i18n.DateTimeSymbols_dje = { ERANAMES: ['Isaa jine', 'Isaa zamanoo'], NARROWMONTHS: ['Ž', 'F', 'M', 'A', 'M', 'Ž', 'Ž', 'U', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['Ž', 'F', 'M', 'A', 'M', 'Ž', 'Ž', 'U', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Žanwiye', 'Feewiriye', 'Marsi', 'Awiril', 'Me', 'Žuweŋ', - 'Žuyye', 'Ut', 'Sektanbur', 'Oktoobur', 'Noowanbur', 'Deesanbur'], + 'Žuyye', 'Ut', 'Sektanbur', 'Oktoobur', 'Noowanbur', 'Deesanbur'], STANDALONEMONTHS: ['Žanwiye', 'Feewiriye', 'Marsi', 'Awiril', 'Me', - 'Žuweŋ', 'Žuyye', 'Ut', 'Sektanbur', 'Oktoobur', 'Noowanbur', - 'Deesanbur'], + 'Žuweŋ', 'Žuyye', 'Ut', 'Sektanbur', 'Oktoobur', 'Noowanbur', + 'Deesanbur'], SHORTMONTHS: ['Žan', 'Fee', 'Mar', 'Awi', 'Me', 'Žuw', 'Žuy', 'Ut', 'Sek', - 'Okt', 'Noo', 'Dee'], + 'Okt', 'Noo', 'Dee'], STANDALONESHORTMONTHS: ['Žan', 'Fee', 'Mar', 'Awi', 'Me', 'Žuw', 'Žuy', - 'Ut', 'Sek', 'Okt', 'Noo', 'Dee'], + 'Ut', 'Sek', 'Okt', 'Noo', 'Dee'], WEEKDAYS: ['Alhadi', 'Atinni', 'Atalaata', 'Alarba', 'Alhamisi', 'Alzuma', - 'Asibti'], + 'Asibti'], STANDALONEWEEKDAYS: ['Alhadi', 'Atinni', 'Atalaata', 'Alarba', 'Alhamisi', - 'Alzuma', 'Asibti'], + 'Alzuma', 'Asibti'], SHORTWEEKDAYS: ['Alh', 'Ati', 'Ata', 'Ala', 'Alm', 'Alz', 'Asi'], STANDALONESHORTWEEKDAYS: ['Alh', 'Ati', 'Ata', 'Ala', 'Alm', 'Alz', 'Asi'], NARROWWEEKDAYS: ['H', 'T', 'T', 'L', 'M', 'Z', 'S'], @@ -3057,8 +3833,9 @@ goog.i18n.DateTimeSymbols_dje = { SHORTQUARTERS: ['A1', 'A2', 'A3', 'A4'], QUARTERS: ['Arrubu 1', 'Arrubu 2', 'Arrubu 3', 'Arrubu 4'], AMPMS: ['Subbaahi', 'Zaarikay b'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM, y', 'd/M/yyyy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM, y', 'd/M/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -3079,32 +3856,33 @@ goog.i18n.DateTimeSymbols_dua = { ERANAMES: ['ɓoso ɓwá yáɓe lá', 'mbúsa kwédi a Yés'], NARROWMONTHS: ['d', 'ŋ', 's', 'd', 'e', 'e', 'm', 'd', 'n', 'm', 't', 'e'], STANDALONENARROWMONTHS: ['d', 'ŋ', 's', 'd', 'e', 'e', 'm', 'd', 'n', 'm', - 't', 'e'], + 't', 'e'], MONTHS: ['dimɔ́di', 'ŋgɔndɛ', 'sɔŋɛ', 'diɓáɓá', 'emiasele', - 'esɔpɛsɔpɛ', 'madiɓɛ́díɓɛ́', 'diŋgindi', 'nyɛtɛki', - 'mayésɛ́', 'tiníní', 'eláŋgɛ́'], + 'esɔpɛsɔpɛ', 'madiɓɛ́díɓɛ́', 'diŋgindi', 'nyɛtɛki', + 'mayésɛ́', 'tiníní', 'eláŋgɛ́'], STANDALONEMONTHS: ['dimɔ́di', 'ŋgɔndɛ', 'sɔŋɛ', 'diɓáɓá', - 'emiasele', 'esɔpɛsɔpɛ', 'madiɓɛ́díɓɛ́', 'diŋgindi', - 'nyɛtɛki', 'mayésɛ́', 'tiníní', 'eláŋgɛ́'], + 'emiasele', 'esɔpɛsɔpɛ', 'madiɓɛ́díɓɛ́', 'diŋgindi', + 'nyɛtɛki', 'mayésɛ́', 'tiníní', 'eláŋgɛ́'], SHORTMONTHS: ['di', 'ŋgɔn', 'sɔŋ', 'diɓ', 'emi', 'esɔ', 'mad', 'diŋ', - 'nyɛt', 'may', 'tin', 'elá'], + 'nyɛt', 'may', 'tin', 'elá'], STANDALONESHORTMONTHS: ['di', 'ŋgɔn', 'sɔŋ', 'diɓ', 'emi', 'esɔ', 'mad', - 'diŋ', 'nyɛt', 'may', 'tin', 'elá'], + 'diŋ', 'nyɛt', 'may', 'tin', 'elá'], WEEKDAYS: ['éti', 'mɔ́sú', 'kwasú', 'mukɔ́sú', 'ŋgisú', - 'ɗónɛsú', 'esaɓasú'], + 'ɗónɛsú', 'esaɓasú'], STANDALONEWEEKDAYS: ['éti', 'mɔ́sú', 'kwasú', 'mukɔ́sú', 'ŋgisú', - 'ɗónɛsú', 'esaɓasú'], + 'ɗónɛsú', 'esaɓasú'], SHORTWEEKDAYS: ['ét', 'mɔ́s', 'kwa', 'muk', 'ŋgi', 'ɗón', 'esa'], STANDALONESHORTWEEKDAYS: ['ét', 'mɔ́s', 'kwa', 'muk', 'ŋgi', 'ɗón', - 'esa'], + 'esa'], NARROWWEEKDAYS: ['e', 'm', 'k', 'm', 'ŋ', 'ɗ', 'e'], STANDALONENARROWWEEKDAYS: ['e', 'm', 'k', 'm', 'ŋ', 'ɗ', 'e'], SHORTQUARTERS: ['ndu1', 'ndu2', 'ndu3', 'ndu4'], QUARTERS: ['ndúmbū nyá ɓosó', 'ndúmbū ní lóndɛ́ íɓaá', - 'ndúmbū ní lóndɛ́ ílálo', 'ndúmbū ní lóndɛ́ ínɛ́y'], + 'ndúmbū ní lóndɛ́ ílálo', 'ndúmbū ní lóndɛ́ ínɛ́y'], AMPMS: ['idiɓa', 'ebyámu'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/yyyy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -3125,19 +3903,19 @@ goog.i18n.DateTimeSymbols_dyo = { ERANAMES: ['Ariŋuu Yeesu', 'Atooŋe Yeesu'], NARROWMONTHS: ['S', 'F', 'M', 'A', 'M', 'S', 'S', 'U', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['S', 'F', 'M', 'A', 'M', 'S', 'S', 'U', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Sanvie', 'Fébirie', 'Mars', 'Aburil', 'Mee', 'Sueŋ', 'Súuyee', - 'Ut', 'Settembar', 'Oktobar', 'Novembar', 'Disambar'], + 'Ut', 'Settembar', 'Oktobar', 'Novembar', 'Disambar'], STANDALONEMONTHS: ['Sanvie', 'Fébirie', 'Mars', 'Aburil', 'Mee', 'Sueŋ', - 'Súuyee', 'Ut', 'Settembar', 'Oktobar', 'Novembar', 'Disambar'], + 'Súuyee', 'Ut', 'Settembar', 'Oktobar', 'Novembar', 'Disambar'], SHORTMONTHS: ['Sa', 'Fe', 'Ma', 'Ab', 'Me', 'Su', 'Sú', 'Ut', 'Se', 'Ok', - 'No', 'De'], + 'No', 'De'], STANDALONESHORTMONTHS: ['Sa', 'Fe', 'Ma', 'Ab', 'Me', 'Su', 'Sú', 'Ut', 'Se', - 'Ok', 'No', 'De'], + 'Ok', 'No', 'De'], WEEKDAYS: ['Dimas', 'Teneŋ', 'Talata', 'Alarbay', 'Aramisay', 'Arjuma', - 'Sibiti'], + 'Sibiti'], STANDALONEWEEKDAYS: ['Dimas', 'Teneŋ', 'Talata', 'Alarbay', 'Aramisay', - 'Arjuma', 'Sibiti'], + 'Arjuma', 'Sibiti'], SHORTWEEKDAYS: ['Dim', 'Ten', 'Tal', 'Ala', 'Ara', 'Arj', 'Sib'], STANDALONESHORTWEEKDAYS: ['Dim', 'Ten', 'Tal', 'Ala', 'Ara', 'Arj', 'Sib'], NARROWWEEKDAYS: ['D', 'T', 'T', 'A', 'A', 'A', 'S'], @@ -3145,8 +3923,9 @@ goog.i18n.DateTimeSymbols_dyo = { SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/yyyy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -3163,72 +3942,69 @@ goog.i18n.DateTimeSymbols_dyo_SN = goog.i18n.DateTimeSymbols_dyo; * Date/time formatting symbols for locale dz. */ goog.i18n.DateTimeSymbols_dz = { + ZERODIGIT: 0x0F20, ERAS: ['BCE', 'CE'], ERANAMES: ['BCE', 'CE'], - NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], - STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], - MONTHS: ['སྤྱི་ཟླཝ་དངཔ་', - 'སྤྱི་ཟླཝ་གཉིས་པ་', - 'སྤྱི་ཟླཝ་གསུམ་པ་', - 'སྤྱི་ཟླཝ་བཞི་པ་', - 'སྤྱི་ཟླཝ་ལྔ་པ་', - 'སྤྱི་ཟླཝ་དྲུག་པ་', - 'སྤྱི་ཟླཝ་བདུན་པ་', - 'སྤྱི་ཟླཝ་བརྒྱད་པ་', - 'སྤྱི་ཟླཝ་དགུ་པ་', - 'སྤྱི་ཟླཝ་བཅུ་པ་', - 'སྤྱི་ཟླཝ་བཅུ་གཅིག་པ་', - 'སྤྱི་ཟླཝ་བཅུ་གཉིས་པ་'], - STANDALONEMONTHS: ['སྤྱི་ཟླཝ་དངཔ་', - 'སྤྱི་ཟླཝ་གཉིས་པ་', - 'སྤྱི་ཟླཝ་གསུམ་པ་', - 'སྤྱི་ཟླཝ་བཞི་པ་', - 'སྤྱི་ཟླཝ་ལྔ་པ་', - 'སྤྱི་ཟླཝ་དྲུག་པ་', - 'སྤྱི་ཟླཝ་བདུན་པ་', - 'སྤྱི་ཟླཝ་བརྒྱད་པ་', - 'སྤྱི་ཟླཝ་དགུ་པ་', - 'སྤྱི་ཟླཝ་བཅུ་པ་', - 'སྤྱི་ཟླཝ་བཅུ་གཅིག་པ་', - 'སྤྱི་ཟླཝ་བཅུ་གཉིས་པ་'], - SHORTMONTHS: ['ཟླ་ ༡', 'ཟླ་ ༢', 'ཟླ་ ༣', - 'ཟླ་ ༤', 'ཟླ་ ༥', 'ཟླ་ ༦', 'ཟླ་ ༧', - 'ཟླ་ ༨', 'ཟླ་ ༩', 'ཟླ་ ༡༠', 'ཟླ་ ༡༡', - 'ཟླ་ ༡༢'], - STANDALONESHORTMONTHS: ['ཟླ་ ༡', 'ཟླ་ ༢', 'ཟླ་ ༣', - 'ཟླ་ ༤', 'ཟླ་ ༥', 'ཟླ་ ༦', 'ཟླ་ ༧', - 'ཟླ་ ༨', 'ཟླ་ ༩', 'ཟླ་ ༡༠', 'ཟླ་ ༡༡', - 'ཟླ་ ༡༢'], + NARROWMONTHS: ['༡', '༢', '༣', '4', '༥', '༦', '༧', '༨', '9', + '༡༠', '༡༡', '༡༢'], + STANDALONENARROWMONTHS: ['༡', '༢', '༣', '༤', '༥', '༦', '༧', + '༨', '༩', '༡༠', '༡༡', '༡༢'], + MONTHS: ['ཟླ་དངཔ་', 'ཟླ་གཉིས་པ་', + 'ཟླ་གསུམ་པ་', 'ཟླ་བཞི་པ་', + 'ཟླ་ལྔ་པ་', 'ཟླ་དྲུག་པ', + 'ཟླ་བདུན་པ་', 'ཟླ་བརྒྱད་པ་', + 'ཟླ་དགུ་པ་', 'ཟླ་བཅུ་པ་', + 'ཟླ་བཅུ་གཅིག་པ་', + 'ཟླ་བཅུ་གཉིས་པ་'], + STANDALONEMONTHS: ['སྤྱི་ཟླ་དངཔ་', + 'སྤྱི་ཟླ་གཉིས་པ་', + 'སྤྱི་ཟླ་གསུམ་པ་', + 'སྤྱི་ཟླ་བཞི་པ', + 'སྤྱི་ཟླ་ལྔ་པ་', + 'སྤྱི་ཟླ་དྲུག་པ', + 'སྤྱི་ཟླ་བདུན་པ་', + 'སྤྱི་ཟླ་བརྒྱད་པ་', + 'སྤྱི་ཟླ་དགུ་པ་', + 'སྤྱི་ཟླ་བཅུ་པ་', + 'སྤྱི་ཟླ་བཅུ་གཅིག་པ་', + 'སྤྱི་ཟླ་བཅུ་གཉིས་པ་'], + SHORTMONTHS: ['༡', '༢', '༣', '༤', '༥', '༦', '༧', '༨', '༩', + '༡༠', '༡༡', '12'], + STANDALONESHORTMONTHS: ['ཟླ་༡', 'ཟླ་༢', 'ཟླ་༣', + 'ཟླ་༤', 'ཟླ་༥', 'ཟླ་༦', 'ཟླ་༧', + 'ཟླ་༨', 'ཟླ་༩', 'ཟླ་༡༠', 'ཟླ་༡༡', + 'ཟླ་༡༢'], WEEKDAYS: ['གཟའ་ཟླ་བ་', - 'གཟའ་མིག་དམར་', 'གཟའ་ལྷག་པ་', - 'གཟའ་ཕུར་བུ་', 'གཟའ་པ་སངས་', - 'གཟའ་སྤེན་པ་', 'གཟའ་ཉི་མ་'], + 'གཟའ་མིག་དམར་', 'གཟའ་ལྷག་པ་', + 'གཟའ་ཕུར་བུ་', 'གཟའ་པ་སངས་', + 'གཟའ་སྤེན་པ་', 'གཟའ་ཉི་མ་'], STANDALONEWEEKDAYS: ['གཟའ་ཟླ་བ་', - 'གཟའ་མིག་དམར་', 'གཟའ་ལྷག་པ་', - 'གཟའ་ཕུར་བུ་', 'གཟའ་པ་སངས་', - 'གཟའ་སྤེན་པ་', 'གཟའ་ཉི་མ་'], + 'གཟའ་མིག་དམར་', 'གཟའ་ལྷག་པ་', + 'གཟའ་ཕུར་བུ་', 'གཟའ་པ་སངས་', + 'གཟའ་སྤེན་པ་', 'གཟའ་ཉི་མ་'], SHORTWEEKDAYS: ['ཟླ་', 'མིར་', 'ལྷག་', 'ཕུར་', - 'སངས་', 'སྤེན་', 'ཉི་'], + 'སངས་', 'སྤེན་', 'ཉི་'], STANDALONESHORTWEEKDAYS: ['ཟླ་', 'མིར་', 'ལྷག་', - 'ཕུར་', 'སངས་', 'སྤེན་', 'ཉི་'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + 'ཕུར་', 'སངས་', 'སྤེན་', 'ཉི་'], + NARROWWEEKDAYS: ['ཟླ', 'མིར', 'ལྷག', 'ཕུར', 'སངྶ', + 'སྤེན', 'ཉི'], + STANDALONENARROWWEEKDAYS: ['ཟླ', 'མིར', 'ལྷག', 'ཕུར', + 'སངྶ', 'སྤེན', 'ཉི'], SHORTQUARTERS: ['བཞི་དཔྱ་༡', 'བཞི་དཔྱ་༢', - 'བཞི་དཔྱ་༣', 'བཞི་དཔྱ་༤'], + 'བཞི་དཔྱ་༣', 'བཞི་དཔྱ་༤'], QUARTERS: ['བཞི་དཔྱ་དང་པ་', - 'བཞི་དཔྱ་གཉིས་པ་', - 'བཞི་དཔྱ་གསུམ་པ་', - 'བཞི་དཔྱ་བཞི་པ་'], + 'བཞི་དཔྱ་གཉིས་པ་', + 'བཞི་དཔྱ་གསུམ་པ་', + 'བཞི་དཔྱ་བཞི་པ་'], AMPMS: ['སྔ་ཆ་', 'ཕྱི་ཆ་'], - DATEFORMATS: ['སྤྱི་ལོ་y ཟླ་ MMMM ཚེས་ dd', - 'སྤྱི་ལོ་y ཟླ་ MMMM ཚེས་ dd', - 'སྤྱི་ལོ་y ཟླ་ MMM ཚེས་ dd', 'yyyy-MM-dd'], - TIMEFORMATS: [ - 'ཆུ་ཚོད་ h སྐར་མ་ mm སྐར་ཆཱ་ ss a zzzz', - 'ཆུ་ཚོད་ h སྐར་མ་ mm སྐར་ཆཱ་ ss a z', - 'ཆུ་ཚོད་h:mm:ss a', - 'ཆུ་ཚོད་ h སྐར་མ་ mm a'], + DATEFORMATS: ['EEEE, སྤྱི་ལོ་y MMMM ཚེས་dd', + 'སྤྱི་ལོ་y MMMM ཚེས་ dd', + 'སྤྱི་ལོ་y ཟླ་MMM ཚེས་dd', 'y-MM-dd'], + TIMEFORMATS: ['ཆུ་ཚོད་ h སྐར་མ་ mm:ss a zzzz', + 'ཆུ་ཚོད་ h སྐར་མ་ mm:ss a z', + 'ཆུ་ཚོད་h:mm:ss a', + 'ཆུ་ཚོད་ h སྐར་མ་ mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -3249,35 +4025,36 @@ goog.i18n.DateTimeSymbols_ebu = { ERANAMES: ['Mbere ya Kristo', 'Thutha wa Kristo'], NARROWMONTHS: ['M', 'K', 'K', 'K', 'G', 'G', 'M', 'K', 'K', 'I', 'I', 'I'], STANDALONENARROWMONTHS: ['M', 'K', 'K', 'K', 'G', 'G', 'M', 'K', 'K', 'I', - 'I', 'I'], + 'I', 'I'], MONTHS: ['Mweri wa mbere', 'Mweri wa kaĩri', 'Mweri wa kathatũ', - 'Mweri wa kana', 'Mweri wa gatano', 'Mweri wa gatantatũ', - 'Mweri wa mũgwanja', 'Mweri wa kanana', 'Mweri wa kenda', - 'Mweri wa ikũmi', 'Mweri wa ikũmi na ũmwe', - 'Mweri wa ikũmi na Kaĩrĩ'], + 'Mweri wa kana', 'Mweri wa gatano', 'Mweri wa gatantatũ', + 'Mweri wa mũgwanja', 'Mweri wa kanana', 'Mweri wa kenda', + 'Mweri wa ikũmi', 'Mweri wa ikũmi na ũmwe', + 'Mweri wa ikũmi na Kaĩrĩ'], STANDALONEMONTHS: ['Mweri wa mbere', 'Mweri wa kaĩri', 'Mweri wa kathatũ', - 'Mweri wa kana', 'Mweri wa gatano', 'Mweri wa gatantatũ', - 'Mweri wa mũgwanja', 'Mweri wa kanana', 'Mweri wa kenda', - 'Mweri wa ikũmi', 'Mweri wa ikũmi na ũmwe', - 'Mweri wa ikũmi na Kaĩrĩ'], + 'Mweri wa kana', 'Mweri wa gatano', 'Mweri wa gatantatũ', + 'Mweri wa mũgwanja', 'Mweri wa kanana', 'Mweri wa kenda', + 'Mweri wa ikũmi', 'Mweri wa ikũmi na ũmwe', + 'Mweri wa ikũmi na Kaĩrĩ'], SHORTMONTHS: ['Mbe', 'Kai', 'Kat', 'Kan', 'Gat', 'Gan', 'Mug', 'Knn', 'Ken', - 'Iku', 'Imw', 'Igi'], + 'Iku', 'Imw', 'Igi'], STANDALONESHORTMONTHS: ['Mbe', 'Kai', 'Kat', 'Kan', 'Gat', 'Gan', 'Mug', - 'Knn', 'Ken', 'Iku', 'Imw', 'Igi'], + 'Knn', 'Ken', 'Iku', 'Imw', 'Igi'], WEEKDAYS: ['Kiumia', 'Njumatatu', 'Njumaine', 'Njumatano', 'Aramithi', - 'Njumaa', 'NJumamothii'], + 'Njumaa', 'NJumamothii'], STANDALONEWEEKDAYS: ['Kiumia', 'Njumatatu', 'Njumaine', 'Njumatano', - 'Aramithi', 'Njumaa', 'NJumamothii'], + 'Aramithi', 'Njumaa', 'NJumamothii'], SHORTWEEKDAYS: ['Kma', 'Tat', 'Ine', 'Tan', 'Arm', 'Maa', 'NMM'], STANDALONESHORTWEEKDAYS: ['Kma', 'Tat', 'Ine', 'Tan', 'Arm', 'Maa', 'NMM'], NARROWWEEKDAYS: ['K', 'N', 'N', 'N', 'A', 'M', 'N'], STANDALONENARROWWEEKDAYS: ['K', 'N', 'N', 'N', 'A', 'M', 'N'], SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], QUARTERS: ['Kuota ya mbere', 'Kuota ya Kaĩrĩ', 'Kuota ya kathatu', - 'Kuota ya kana'], + 'Kuota ya kana'], AMPMS: ['KI', 'UT'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -3298,29 +4075,32 @@ goog.i18n.DateTimeSymbols_ee = { ERANAMES: ['Hafi Yesu Va Do ŋgɔ', 'Yesu Ŋɔli'], NARROWMONTHS: ['d', 'd', 't', 'a', 'd', 'm', 's', 'd', 'a', 'k', 'a', 'd'], STANDALONENARROWMONTHS: ['d', 'd', 't', 'a', 'd', 'm', 's', 'd', 'a', 'k', - 'a', 'd'], + 'a', 'd'], MONTHS: ['dzove', 'dzodze', 'tedoxe', 'afɔfĩe', 'dama', 'masa', 'siamlɔm', - 'deasiamime', 'anyɔnyɔ', 'kele', 'adeɛmekpɔxe', 'dzome'], + 'deasiamime', 'anyɔnyɔ', 'kele', 'adeɛmekpɔxe', 'dzome'], STANDALONEMONTHS: ['dzove', 'dzodze', 'tedoxe', 'afɔfĩe', 'dama', 'masa', - 'siamlɔm', 'deasiamime', 'anyɔnyɔ', 'kele', 'adeɛmekpɔxe', 'dzome'], + 'siamlɔm', 'deasiamime', 'anyɔnyɔ', 'kele', 'adeɛmekpɔxe', 'dzome'], SHORTMONTHS: ['dzv', 'dzd', 'ted', 'afɔ', 'dam', 'mas', 'sia', 'dea', 'any', - 'kel', 'ade', 'dzm'], + 'kel', 'ade', 'dzm'], STANDALONESHORTMONTHS: ['dzv', 'dzd', 'ted', 'afɔ', 'dam', 'mas', 'sia', - 'dea', 'any', 'kel', 'ade', 'dzm'], + 'dea', 'any', 'kel', 'ade', 'dzm'], WEEKDAYS: ['kɔsiɖa', 'dzoɖa', 'blaɖa', 'kuɖa', 'yawoɖa', 'fiɖa', - 'memleɖa'], + 'memleɖa'], STANDALONEWEEKDAYS: ['kɔsiɖa', 'dzoɖa', 'blaɖa', 'kuɖa', 'yawoɖa', - 'fiɖa', 'memleɖa'], + 'fiɖa', 'memleɖa'], SHORTWEEKDAYS: ['kɔs', 'dzo', 'bla', 'kuɖ', 'yaw', 'fiɖ', 'mem'], STANDALONESHORTWEEKDAYS: ['kɔs', 'dzo', 'bla', 'kuɖ', 'yaw', 'fiɖ', 'mem'], NARROWWEEKDAYS: ['k', 'd', 'b', 'k', 'y', 'f', 'm'], STANDALONENARROWWEEKDAYS: ['k', 'd', 'b', 'k', 'y', 'f', 'm'], - SHORTQUARTERS: ['q1', 'q2', 'q3', 'q4'], - QUARTERS: ['memama ene ƒe akpa gbãtɔ', 'memama ene ƒe akpa evelia', - 'memama ene ƒe akpa etɔ̃lia', 'memama ene ƒe akpa enelia'], + SHORTQUARTERS: ['k1', 'k2', 'k3', 'k4'], + QUARTERS: ['kɔta gbãtɔ', 'kɔta evelia', 'kɔta etɔ̃lia', + 'kɔta enelia'], AMPMS: ['ŋdi', 'ɣetrɔ'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], - TIMEFORMATS: ['a h:mm:ss zzzz', 'a h:mm:ss z', 'a h:mm:ss', 'a h:mm'], + DATEFORMATS: ['EEEE, MMMM d \'lia\' y', 'MMMM d \'lia\' y', + 'MMM d \'lia\', y', 'M/d/yy'], + TIMEFORMATS: ['a h:mm:ss zzzz', 'a \'ga\' h:mm:ss z', 'a \'ga\' h:mm:ss', + 'a \'ga\' h:mm'], + DATETIMEFORMATS: ['{0} {1}', '{0} {1}', '{0} {1}', '{0} {1}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -3346,37 +4126,38 @@ goog.i18n.DateTimeSymbols_el_CY = { ERAS: ['π.Χ.', 'μ.Χ.'], ERANAMES: ['π.Χ.', 'μ.Χ.'], NARROWMONTHS: ['Ι', 'Φ', 'Μ', 'Α', 'Μ', 'Ι', 'Ι', 'Α', 'Σ', 'Ο', - 'Ν', 'Δ'], + 'Ν', 'Δ'], STANDALONENARROWMONTHS: ['Ι', 'Φ', 'Μ', 'Α', 'Μ', 'Ι', 'Ι', 'Α', 'Σ', - 'Ο', 'Ν', 'Δ'], + 'Ο', 'Ν', 'Δ'], MONTHS: ['Ιανουαρίου', 'Φεβρουαρίου', 'Μαρτίου', - 'Απριλίου', 'Μαΐου', 'Ιουνίου', 'Ιουλίου', - 'Αυγούστου', 'Σεπτεμβρίου', 'Οκτωβρίου', - 'Νοεμβρίου', 'Δεκεμβρίου'], + 'Απριλίου', 'Μαΐου', 'Ιουνίου', 'Ιουλίου', + 'Αυγούστου', 'Σεπτεμβρίου', 'Οκτωβρίου', + 'Νοεμβρίου', 'Δεκεμβρίου'], STANDALONEMONTHS: ['Ιανουάριος', 'Φεβρουάριος', - 'Μάρτιος', 'Απρίλιος', 'Μάιος', 'Ιούνιος', - 'Ιούλιος', 'Αύγουστος', 'Σεπτέμβριος', - 'Οκτώβριος', 'Νοέμβριος', 'Δεκέμβριος'], + 'Μάρτιος', 'Απρίλιος', 'Μάιος', 'Ιούνιος', + 'Ιούλιος', 'Αύγουστος', 'Σεπτέμβριος', + 'Οκτώβριος', 'Νοέμβριος', 'Δεκέμβριος'], SHORTMONTHS: ['Ιαν', 'Φεβ', 'Μαρ', 'Απρ', 'Μαϊ', 'Ιουν', - 'Ιουλ', 'Αυγ', 'Σεπ', 'Οκτ', 'Νοε', 'Δεκ'], + 'Ιουλ', 'Αυγ', 'Σεπ', 'Οκτ', 'Νοε', 'Δεκ'], STANDALONESHORTMONTHS: ['Ιαν', 'Φεβ', 'Μάρ', 'Απρ', 'Μάι', - 'Ιούν', 'Ιούλ', 'Αυγ', 'Σεπ', 'Οκτ', 'Νοέ', 'Δεκ'], + 'Ιούν', 'Ιούλ', 'Αύγ', 'Σεπ', 'Οκτ', 'Νοέ', 'Δεκ'], WEEKDAYS: ['Κυριακή', 'Δευτέρα', 'Τρίτη', 'Τετάρτη', - 'Πέμπτη', 'Παρασκευή', 'Σάββατο'], + 'Πέμπτη', 'Παρασκευή', 'Σάββατο'], STANDALONEWEEKDAYS: ['Κυριακή', 'Δευτέρα', 'Τρίτη', - 'Τετάρτη', 'Πέμπτη', 'Παρασκευή', 'Σάββατο'], - SHORTWEEKDAYS: ['Κυρ', 'Δευ', 'Τρι', 'Τετ', 'Πεμ', 'Παρ', - 'Σαβ'], + 'Τετάρτη', 'Πέμπτη', 'Παρασκευή', 'Σάββατο'], + SHORTWEEKDAYS: ['Κυρ', 'Δευ', 'Τρί', 'Τετ', 'Πέμ', 'Παρ', + 'Σάβ'], STANDALONESHORTWEEKDAYS: ['Κυρ', 'Δευ', 'Τρί', 'Τετ', 'Πέμ', - 'Παρ', 'Σάβ'], + 'Παρ', 'Σάβ'], NARROWWEEKDAYS: ['Κ', 'Δ', 'Τ', 'Τ', 'Π', 'Π', 'Σ'], STANDALONENARROWWEEKDAYS: ['Κ', 'Δ', 'Τ', 'Τ', 'Π', 'Π', 'Σ'], SHORTQUARTERS: ['Τ1', 'Τ2', 'Τ3', 'Τ4'], QUARTERS: ['1ο τρίμηνο', '2ο τρίμηνο', '3ο τρίμηνο', - '4ο τρίμηνο'], + '4ο τρίμηνο'], AMPMS: ['π.μ.', 'μ.μ.'], DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} - {0}', '{1} - {0}', '{1} - {0}', '{1} - {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -3390,43 +4171,119 @@ goog.i18n.DateTimeSymbols_el_GR = { ERAS: ['π.Χ.', 'μ.Χ.'], ERANAMES: ['π.Χ.', 'μ.Χ.'], NARROWMONTHS: ['Ι', 'Φ', 'Μ', 'Α', 'Μ', 'Ι', 'Ι', 'Α', 'Σ', 'Ο', - 'Ν', 'Δ'], + 'Ν', 'Δ'], STANDALONENARROWMONTHS: ['Ι', 'Φ', 'Μ', 'Α', 'Μ', 'Ι', 'Ι', 'Α', 'Σ', - 'Ο', 'Ν', 'Δ'], + 'Ο', 'Ν', 'Δ'], MONTHS: ['Ιανουαρίου', 'Φεβρουαρίου', 'Μαρτίου', - 'Απριλίου', 'Μαΐου', 'Ιουνίου', 'Ιουλίου', - 'Αυγούστου', 'Σεπτεμβρίου', 'Οκτωβρίου', - 'Νοεμβρίου', 'Δεκεμβρίου'], + 'Απριλίου', 'Μαΐου', 'Ιουνίου', 'Ιουλίου', + 'Αυγούστου', 'Σεπτεμβρίου', 'Οκτωβρίου', + 'Νοεμβρίου', 'Δεκεμβρίου'], STANDALONEMONTHS: ['Ιανουάριος', 'Φεβρουάριος', - 'Μάρτιος', 'Απρίλιος', 'Μάιος', 'Ιούνιος', - 'Ιούλιος', 'Αύγουστος', 'Σεπτέμβριος', - 'Οκτώβριος', 'Νοέμβριος', 'Δεκέμβριος'], + 'Μάρτιος', 'Απρίλιος', 'Μάιος', 'Ιούνιος', + 'Ιούλιος', 'Αύγουστος', 'Σεπτέμβριος', + 'Οκτώβριος', 'Νοέμβριος', 'Δεκέμβριος'], SHORTMONTHS: ['Ιαν', 'Φεβ', 'Μαρ', 'Απρ', 'Μαϊ', 'Ιουν', - 'Ιουλ', 'Αυγ', 'Σεπ', 'Οκτ', 'Νοε', 'Δεκ'], + 'Ιουλ', 'Αυγ', 'Σεπ', 'Οκτ', 'Νοε', 'Δεκ'], STANDALONESHORTMONTHS: ['Ιαν', 'Φεβ', 'Μάρ', 'Απρ', 'Μάι', - 'Ιούν', 'Ιούλ', 'Αυγ', 'Σεπ', 'Οκτ', 'Νοέ', 'Δεκ'], + 'Ιούν', 'Ιούλ', 'Αύγ', 'Σεπ', 'Οκτ', 'Νοέ', 'Δεκ'], WEEKDAYS: ['Κυριακή', 'Δευτέρα', 'Τρίτη', 'Τετάρτη', - 'Πέμπτη', 'Παρασκευή', 'Σάββατο'], + 'Πέμπτη', 'Παρασκευή', 'Σάββατο'], STANDALONEWEEKDAYS: ['Κυριακή', 'Δευτέρα', 'Τρίτη', - 'Τετάρτη', 'Πέμπτη', 'Παρασκευή', 'Σάββατο'], - SHORTWEEKDAYS: ['Κυρ', 'Δευ', 'Τρι', 'Τετ', 'Πεμ', 'Παρ', - 'Σαβ'], + 'Τετάρτη', 'Πέμπτη', 'Παρασκευή', 'Σάββατο'], + SHORTWEEKDAYS: ['Κυρ', 'Δευ', 'Τρί', 'Τετ', 'Πέμ', 'Παρ', + 'Σάβ'], STANDALONESHORTWEEKDAYS: ['Κυρ', 'Δευ', 'Τρί', 'Τετ', 'Πέμ', - 'Παρ', 'Σάβ'], + 'Παρ', 'Σάβ'], NARROWWEEKDAYS: ['Κ', 'Δ', 'Τ', 'Τ', 'Π', 'Π', 'Σ'], STANDALONENARROWWEEKDAYS: ['Κ', 'Δ', 'Τ', 'Τ', 'Π', 'Π', 'Σ'], SHORTQUARTERS: ['Τ1', 'Τ2', 'Τ3', 'Τ4'], QUARTERS: ['1ο τρίμηνο', '2ο τρίμηνο', '3ο τρίμηνο', - '4ο τρίμηνο'], + '4ο τρίμηνο'], AMPMS: ['π.μ.', 'μ.μ.'], DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} - {0}', '{1} - {0}', '{1} - {0}', '{1} - {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 }; +/** + * Date/time formatting symbols for locale en_150. + */ +goog.i18n.DateTimeSymbols_en_150 = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMM y', 'dd MMM y', 'dd/MM/yy'], + TIMEFORMATS: ['HH \'h\' mm \'min\' ss \'s\' zzzz', 'HH:mm:ss z', 'HH:mm:ss', + 'HH:mm'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 5 +}; + + +/** + * Date/time formatting symbols for locale en_AG. + */ +goog.i18n.DateTimeSymbols_en_AG = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 5 +}; + + /** * Date/time formatting symbols for locale en_AS. */ @@ -3435,19 +4292,19 @@ goog.i18n.DateTimeSymbols_en_AS = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -3457,6 +4314,7 @@ goog.i18n.DateTimeSymbols_en_AS = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -3471,19 +4329,19 @@ goog.i18n.DateTimeSymbols_en_BB = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -3493,6 +4351,7 @@ goog.i18n.DateTimeSymbols_en_BB = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -3507,19 +4366,19 @@ goog.i18n.DateTimeSymbols_en_BE = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -3529,7 +4388,8 @@ goog.i18n.DateTimeSymbols_en_BE = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE d MMMM y', 'd MMM y', 'dd MMM y', 'dd/MM/yy'], TIMEFORMATS: ['HH \'h\' mm \'min\' ss \'s\' zzzz', 'HH:mm:ss z', 'HH:mm:ss', - 'HH:mm'], + 'HH:mm'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -3544,19 +4404,19 @@ goog.i18n.DateTimeSymbols_en_BM = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -3566,12 +4426,50 @@ goog.i18n.DateTimeSymbols_en_BM = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 }; +/** + * Date/time formatting symbols for locale en_BS. + */ +goog.i18n.DateTimeSymbols_en_BS = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 5 +}; + + /** * Date/time formatting symbols for locale en_BW. */ @@ -3580,19 +4478,19 @@ goog.i18n.DateTimeSymbols_en_BW = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -3602,6 +4500,7 @@ goog.i18n.DateTimeSymbols_en_BW = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE dd MMMM y', 'dd MMMM y', 'MMM d, y', 'dd/MM/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -3616,19 +4515,19 @@ goog.i18n.DateTimeSymbols_en_BZ = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -3638,6 +4537,7 @@ goog.i18n.DateTimeSymbols_en_BZ = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['dd MMMM y', 'dd MMMM y', 'dd-MMM-y', 'dd/MM/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -3652,19 +4552,19 @@ goog.i18n.DateTimeSymbols_en_CA = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -3672,8 +4572,83 @@ goog.i18n.DateTimeSymbols_en_CA = { SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, d MMMM, y', 'd MMMM, y', 'yyyy-MM-dd', 'yy-MM-dd'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 5 +}; + + +/** + * Date/time formatting symbols for locale en_CM. + */ +goog.i18n.DateTimeSymbols_en_CM = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale en_DM. + */ +goog.i18n.DateTimeSymbols_en_DM = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -3686,52 +4661,53 @@ goog.i18n.DateTimeSymbols_en_CA = { goog.i18n.DateTimeSymbols_en_Dsrt = { ERAS: ['𐐒𐐗', '𐐈𐐔'], ERANAMES: ['𐐒𐐲𐑁𐐬𐑉 𐐗𐑉𐐴𐑅𐐻', - '𐐈𐑌𐐬 𐐔𐐱𐑋𐐮𐑌𐐨'], + '𐐈𐑌𐐬 𐐔𐐱𐑋𐐮𐑌𐐨'], NARROWMONTHS: ['𐐖', '𐐙', '𐐣', '𐐁', '𐐣', '𐐖', '𐐖', '𐐂', - '𐐝', '𐐉', '𐐤', '𐐔'], + '𐐝', '𐐉', '𐐤', '𐐔'], STANDALONENARROWMONTHS: ['𐐖', '𐐙', '𐐣', '𐐁', '𐐣', '𐐖', - '𐐖', '𐐂', '𐐝', '𐐉', '𐐤', '𐐔'], + '𐐖', '𐐂', '𐐝', '𐐉', '𐐤', '𐐔'], MONTHS: ['𐐖𐐰𐑌𐐷𐐭𐐯𐑉𐐨', - '𐐙𐐯𐐺𐑉𐐭𐐯𐑉𐐨', '𐐣𐐪𐑉𐐽', - '𐐁𐐹𐑉𐐮𐑊', '𐐣𐐩', '𐐖𐐭𐑌', '𐐖𐐭𐑊𐐴', - '𐐂𐑀𐐲𐑅𐐻', '𐐝𐐯𐐹𐐻𐐯𐑋𐐺𐐲𐑉', - '𐐉𐐿𐐻𐐬𐐺𐐲𐑉', '𐐤𐐬𐑂𐐯𐑋𐐺𐐲𐑉', - '𐐔𐐨𐑅𐐯𐑋𐐺𐐲𐑉'], + '𐐙𐐯𐐺𐑉𐐭𐐯𐑉𐐨', '𐐣𐐪𐑉𐐽', + '𐐁𐐹𐑉𐐮𐑊', '𐐣𐐩', '𐐖𐐭𐑌', '𐐖𐐭𐑊𐐴', + '𐐂𐑀𐐲𐑅𐐻', '𐐝𐐯𐐹𐐻𐐯𐑋𐐺𐐲𐑉', + '𐐉𐐿𐐻𐐬𐐺𐐲𐑉', '𐐤𐐬𐑂𐐯𐑋𐐺𐐲𐑉', + '𐐔𐐨𐑅𐐯𐑋𐐺𐐲𐑉'], STANDALONEMONTHS: ['𐐖𐐰𐑌𐐷𐐭𐐯𐑉𐐨', - '𐐙𐐯𐐺𐑉𐐭𐐯𐑉𐐨', '𐐣𐐪𐑉𐐽', - '𐐁𐐹𐑉𐐮𐑊', '𐐣𐐩', '𐐖𐐭𐑌', '𐐖𐐭𐑊𐐴', - '𐐂𐑀𐐲𐑅𐐻', '𐐝𐐯𐐹𐐻𐐯𐑋𐐺𐐲𐑉', - '𐐉𐐿𐐻𐐬𐐺𐐲𐑉', '𐐤𐐬𐑂𐐯𐑋𐐺𐐲𐑉', - '𐐔𐐨𐑅𐐯𐑋𐐺𐐲𐑉'], + '𐐙𐐯𐐺𐑉𐐭𐐯𐑉𐐨', '𐐣𐐪𐑉𐐽', + '𐐁𐐹𐑉𐐮𐑊', '𐐣𐐩', '𐐖𐐭𐑌', '𐐖𐐭𐑊𐐴', + '𐐂𐑀𐐲𐑅𐐻', '𐐝𐐯𐐹𐐻𐐯𐑋𐐺𐐲𐑉', + '𐐉𐐿𐐻𐐬𐐺𐐲𐑉', '𐐤𐐬𐑂𐐯𐑋𐐺𐐲𐑉', + '𐐔𐐨𐑅𐐯𐑋𐐺𐐲𐑉'], SHORTMONTHS: ['𐐖𐐰𐑌', '𐐙𐐯𐐺', '𐐣𐐪𐑉', '𐐁𐐹𐑉', - '𐐣𐐩', '𐐖𐐭𐑌', '𐐖𐐭𐑊', '𐐂𐑀', '𐐝𐐯𐐹', - '𐐉𐐿𐐻', '𐐤𐐬𐑂', '𐐔𐐨𐑅'], + '𐐣𐐩', '𐐖𐐭𐑌', '𐐖𐐭𐑊', '𐐂𐑀', '𐐝𐐯𐐹', + '𐐉𐐿𐐻', '𐐤𐐬𐑂', '𐐔𐐨𐑅'], STANDALONESHORTMONTHS: ['𐐖𐐰𐑌', '𐐙𐐯𐐺', '𐐣𐐪𐑉', - '𐐁𐐹𐑉', '𐐣𐐩', '𐐖𐐭𐑌', '𐐖𐐭𐑊', '𐐂𐑀', - '𐐝𐐯𐐹', '𐐉𐐿𐐻', '𐐤𐐬𐑂', '𐐔𐐨𐑅'], + '𐐁𐐹𐑉', '𐐣𐐩', '𐐖𐐭𐑌', '𐐖𐐭𐑊', '𐐂𐑀', + '𐐝𐐯𐐹', '𐐉𐐿𐐻', '𐐤𐐬𐑂', '𐐔𐐨𐑅'], WEEKDAYS: ['𐐝𐐲𐑌𐐼𐐩', '𐐣𐐲𐑌𐐼𐐩', - '𐐓𐐭𐑆𐐼𐐩', '𐐎𐐯𐑌𐑆𐐼𐐩', - '𐐛𐐲𐑉𐑆𐐼𐐩', '𐐙𐑉𐐴𐐼𐐩', - '𐐝𐐰𐐻𐐲𐑉𐐼𐐩'], + '𐐓𐐭𐑆𐐼𐐩', '𐐎𐐯𐑌𐑆𐐼𐐩', + '𐐛𐐲𐑉𐑆𐐼𐐩', '𐐙𐑉𐐴𐐼𐐩', + '𐐝𐐰𐐻𐐲𐑉𐐼𐐩'], STANDALONEWEEKDAYS: ['𐐝𐐲𐑌𐐼𐐩', '𐐣𐐲𐑌𐐼𐐩', - '𐐓𐐭𐑆𐐼𐐩', '𐐎𐐯𐑌𐑆𐐼𐐩', - '𐐛𐐲𐑉𐑆𐐼𐐩', '𐐙𐑉𐐴𐐼𐐩', - '𐐝𐐰𐐻𐐲𐑉𐐼𐐩'], + '𐐓𐐭𐑆𐐼𐐩', '𐐎𐐯𐑌𐑆𐐼𐐩', + '𐐛𐐲𐑉𐑆𐐼𐐩', '𐐙𐑉𐐴𐐼𐐩', + '𐐝𐐰𐐻𐐲𐑉𐐼𐐩'], SHORTWEEKDAYS: ['𐐝𐐲𐑌', '𐐣𐐲𐑌', '𐐓𐐭𐑆', - '𐐎𐐯𐑌', '𐐛𐐲𐑉', '𐐙𐑉𐐴', '𐐝𐐰𐐻'], + '𐐎𐐯𐑌', '𐐛𐐲𐑉', '𐐙𐑉𐐴', '𐐝𐐰𐐻'], STANDALONESHORTWEEKDAYS: ['𐐝𐐲𐑌', '𐐣𐐲𐑌', '𐐓𐐭𐑆', - '𐐎𐐯𐑌', '𐐛𐐲𐑉', '𐐙𐑉𐐴', '𐐝𐐰𐐻'], + '𐐎𐐯𐑌', '𐐛𐐲𐑉', '𐐙𐑉𐐴', '𐐝𐐰𐐻'], NARROWWEEKDAYS: ['𐐝', '𐐣', '𐐓', '𐐎', '𐐛', '𐐙', '𐐝'], STANDALONENARROWWEEKDAYS: ['𐐝', '𐐣', '𐐓', '𐐎', '𐐛', '𐐙', - '𐐝'], + '𐐝'], SHORTQUARTERS: ['𐐗1', '𐐗2', '𐐗3', '𐐗4'], QUARTERS: ['1𐑅𐐻 𐐿𐐶𐐪𐑉𐐻𐐲𐑉', - '2𐑌𐐼 𐐿𐐶𐐪𐑉𐐻𐐲𐑉', - '3𐑉𐐼 𐐿𐐶𐐪𐑉𐐻𐐲𐑉', - '4𐑉𐑃 𐐿𐐶𐐪𐑉𐐻𐐲𐑉'], + '2𐑌𐐼 𐐿𐐶𐐪𐑉𐐻𐐲𐑉', + '3𐑉𐐼 𐐿𐐶𐐪𐑉𐐻𐐲𐑉', + '4𐑉𐑃 𐐿𐐶𐐪𐑉𐐻𐐲𐑉'], AMPMS: ['𐐈𐐣', '𐐑𐐣'], DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -3745,26 +4721,26 @@ goog.i18n.DateTimeSymbols_en_Dsrt_US = goog.i18n.DateTimeSymbols_en_Dsrt; /** - * Date/time formatting symbols for locale en_GU. + * Date/time formatting symbols for locale en_FJ. */ -goog.i18n.DateTimeSymbols_en_GU = { +goog.i18n.DateTimeSymbols_en_FJ = { ERAS: ['BC', 'AD'], ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -3774,6 +4750,266 @@ goog.i18n.DateTimeSymbols_en_GU = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 3 +}; + + +/** + * Date/time formatting symbols for locale en_FM. + */ +goog.i18n.DateTimeSymbols_en_FM = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale en_GD. + */ +goog.i18n.DateTimeSymbols_en_GD = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale en_GG. + */ +goog.i18n.DateTimeSymbols_en_GG = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale en_GH. + */ +goog.i18n.DateTimeSymbols_en_GH = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale en_GI. + */ +goog.i18n.DateTimeSymbols_en_GI = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale en_GM. + */ +goog.i18n.DateTimeSymbols_en_GM = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale en_GU. + */ +goog.i18n.DateTimeSymbols_en_GU = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -3788,19 +5024,19 @@ goog.i18n.DateTimeSymbols_en_GY = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -3810,6 +5046,7 @@ goog.i18n.DateTimeSymbols_en_GY = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -3824,19 +5061,19 @@ goog.i18n.DateTimeSymbols_en_HK = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -3846,12 +5083,87 @@ goog.i18n.DateTimeSymbols_en_HK = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, d MMMM, y', 'd MMMM, y', 'd MMM, y', 'd/M/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 }; +/** + * Date/time formatting symbols for locale en_IM. + */ +goog.i18n.DateTimeSymbols_en_IM = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale en_JE. + */ +goog.i18n.DateTimeSymbols_en_JE = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + /** * Date/time formatting symbols for locale en_JM. */ @@ -3860,19 +5172,19 @@ goog.i18n.DateTimeSymbols_en_JM = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -3882,12 +5194,309 @@ goog.i18n.DateTimeSymbols_en_JM = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'd/M/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 }; +/** + * Date/time formatting symbols for locale en_KE. + */ +goog.i18n.DateTimeSymbols_en_KE = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 5 +}; + + +/** + * Date/time formatting symbols for locale en_KI. + */ +goog.i18n.DateTimeSymbols_en_KI = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale en_KN. + */ +goog.i18n.DateTimeSymbols_en_KN = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale en_KY. + */ +goog.i18n.DateTimeSymbols_en_KY = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale en_LC. + */ +goog.i18n.DateTimeSymbols_en_LC = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale en_LR. + */ +goog.i18n.DateTimeSymbols_en_LR = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale en_LS. + */ +goog.i18n.DateTimeSymbols_en_LS = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale en_MG. + */ +goog.i18n.DateTimeSymbols_en_MG = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + /** * Date/time formatting symbols for locale en_MH. */ @@ -3896,19 +5505,19 @@ goog.i18n.DateTimeSymbols_en_MH = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -3918,6 +5527,7 @@ goog.i18n.DateTimeSymbols_en_MH = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -3932,19 +5542,19 @@ goog.i18n.DateTimeSymbols_en_MP = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -3954,6 +5564,7 @@ goog.i18n.DateTimeSymbols_en_MP = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -3968,19 +5579,19 @@ goog.i18n.DateTimeSymbols_en_MT = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -3988,8 +5599,9 @@ goog.i18n.DateTimeSymbols_en_MT = { SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, d MMMM y', 'dd MMMM y', 'dd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'dd MMMM y', 'dd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -4004,19 +5616,19 @@ goog.i18n.DateTimeSymbols_en_MU = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -4026,6 +5638,44 @@ goog.i18n.DateTimeSymbols_en_MU = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale en_MW. + */ +goog.i18n.DateTimeSymbols_en_MW = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -4040,19 +5690,19 @@ goog.i18n.DateTimeSymbols_en_NA = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -4062,6 +5712,44 @@ goog.i18n.DateTimeSymbols_en_NA = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale en_NG. + */ +goog.i18n.DateTimeSymbols_en_NG = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -4076,19 +5764,19 @@ goog.i18n.DateTimeSymbols_en_NZ = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -4096,14 +5784,52 @@ goog.i18n.DateTimeSymbols_en_NZ = { SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd/MM/yyyy', 'd/MM/yy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd/MM/y', 'd/MM/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 }; +/** + * Date/time formatting symbols for locale en_PG. + */ +goog.i18n.DateTimeSymbols_en_PG = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + /** * Date/time formatting symbols for locale en_PH. */ @@ -4112,19 +5838,19 @@ goog.i18n.DateTimeSymbols_en_PH = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -4134,6 +5860,7 @@ goog.i18n.DateTimeSymbols_en_PH = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -4148,19 +5875,19 @@ goog.i18n.DateTimeSymbols_en_PK = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -4170,12 +5897,346 @@ goog.i18n.DateTimeSymbols_en_PK = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'dd-MMM-y', 'dd/MM/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 }; +/** + * Date/time formatting symbols for locale en_PR. + */ +goog.i18n.DateTimeSymbols_en_PR = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 5 +}; + + +/** + * Date/time formatting symbols for locale en_PW. + */ +goog.i18n.DateTimeSymbols_en_PW = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale en_SB. + */ +goog.i18n.DateTimeSymbols_en_SB = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale en_SC. + */ +goog.i18n.DateTimeSymbols_en_SC = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale en_SL. + */ +goog.i18n.DateTimeSymbols_en_SL = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale en_SS. + */ +goog.i18n.DateTimeSymbols_en_SS = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale en_SZ. + */ +goog.i18n.DateTimeSymbols_en_SZ = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale en_TC. + */ +goog.i18n.DateTimeSymbols_en_TC = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale en_TO. + */ +goog.i18n.DateTimeSymbols_en_TO = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + /** * Date/time formatting symbols for locale en_TT. */ @@ -4184,19 +6245,19 @@ goog.i18n.DateTimeSymbols_en_TT = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -4206,12 +6267,87 @@ goog.i18n.DateTimeSymbols_en_TT = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 }; +/** + * Date/time formatting symbols for locale en_TZ. + */ +goog.i18n.DateTimeSymbols_en_TZ = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale en_UG. + */ +goog.i18n.DateTimeSymbols_en_UG = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + /** * Date/time formatting symbols for locale en_UM. */ @@ -4220,19 +6356,19 @@ goog.i18n.DateTimeSymbols_en_UM = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -4242,12 +6378,87 @@ goog.i18n.DateTimeSymbols_en_UM = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 }; +/** + * Date/time formatting symbols for locale en_VC. + */ +goog.i18n.DateTimeSymbols_en_VC = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale en_VG. + */ +goog.i18n.DateTimeSymbols_en_VG = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + /** * Date/time formatting symbols for locale en_VI. */ @@ -4256,19 +6467,19 @@ goog.i18n.DateTimeSymbols_en_VI = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -4278,12 +6489,124 @@ goog.i18n.DateTimeSymbols_en_VI = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 }; +/** + * Date/time formatting symbols for locale en_VU. + */ +goog.i18n.DateTimeSymbols_en_VU = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale en_WS. + */ +goog.i18n.DateTimeSymbols_en_WS = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 5 +}; + + +/** + * Date/time formatting symbols for locale en_ZM. + */ +goog.i18n.DateTimeSymbols_en_ZM = { + ERAS: ['BC', 'AD'], + ERANAMES: ['Before Christ', 'Anno Domini'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'], + STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', + 'Saturday'], + STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', + 'Friday', 'Saturday'], + SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + /** * Date/time formatting symbols for locale en_ZW. */ @@ -4292,19 +6615,19 @@ goog.i18n.DateTimeSymbols_en_ZW = { ERANAMES: ['Before Christ', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December'], + 'August', 'September', 'October', 'November', 'December'], STANDALONEMONTHS: ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'], + 'July', 'August', 'September', 'October', 'November', 'December'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', - 'Saturday'], + 'Saturday'], STANDALONEWEEKDAYS: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', - 'Friday', 'Saturday'], + 'Friday', 'Saturday'], SHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], STANDALONESHORTWEEKDAYS: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -4312,8 +6635,9 @@ goog.i18n.DateTimeSymbols_en_ZW = { SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE dd MMMM y', 'dd MMMM y', 'dd MMM,y', 'd/M/yyyy'], + DATEFORMATS: ['EEEE dd MMMM y', 'dd MMMM y', 'dd MMM,y', 'd/M/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} \'at\' {0}', '{1} \'at\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -4328,31 +6652,32 @@ goog.i18n.DateTimeSymbols_eo = { ERANAMES: ['aK', 'pK'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['januaro', 'februaro', 'marto', 'aprilo', 'majo', 'junio', 'julio', - 'aŭgusto', 'septembro', 'oktobro', 'novembro', 'decembro'], + 'aŭgusto', 'septembro', 'oktobro', 'novembro', 'decembro'], STANDALONEMONTHS: ['januaro', 'februaro', 'marto', 'aprilo', 'majo', 'junio', - 'julio', 'aŭgusto', 'septembro', 'oktobro', 'novembro', 'decembro'], + 'julio', 'aŭgusto', 'septembro', 'oktobro', 'novembro', 'decembro'], SHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'aŭg', 'sep', - 'okt', 'nov', 'dec'], + 'okt', 'nov', 'dec'], STANDALONESHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', - 'aŭg', 'sep', 'okt', 'nov', 'dec'], + 'aŭg', 'sep', 'okt', 'nov', 'dec'], WEEKDAYS: ['dimanĉo', 'lundo', 'mardo', 'merkredo', 'ĵaŭdo', 'vendredo', - 'sabato'], + 'sabato'], STANDALONEWEEKDAYS: ['dimanĉo', 'lundo', 'mardo', 'merkredo', 'ĵaŭdo', - 'vendredo', 'sabato'], + 'vendredo', 'sabato'], SHORTWEEKDAYS: ['di', 'lu', 'ma', 'me', 'ĵa', 've', 'sa'], STANDALONESHORTWEEKDAYS: ['di', 'lu', 'ma', 'me', 'ĵa', 've', 'sa'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], QUARTERS: ['1a kvaronjaro', '2a kvaronjaro', '3a kvaronjaro', - '4a kvaronjaro'], + '4a kvaronjaro'], AMPMS: ['atm', 'ptm'], DATEFORMATS: ['EEEE, d-\'a\' \'de\' MMMM y', 'y-MMMM-dd', 'y-MMM-dd', - 'yy-MM-dd'], + 'yy-MM-dd'], TIMEFORMATS: ['H-\'a\' \'horo\' \'kaj\' m:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', - 'HH:mm'], + 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -4367,30 +6692,31 @@ goog.i18n.DateTimeSymbols_es_AR = { ERANAMES: ['antes de Cristo', 'anno Dómini'], NARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', - 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], STANDALONEMONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', - 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], SHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', - 'oct', 'nov', 'dic'], + 'oct', 'nov', 'dic'], STANDALONESHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'mayo', 'jun', 'jul', - 'ago', 'sep', 'oct', 'nov', 'dic'], + 'ago', 'sep', 'oct', 'nov', 'dic'], WEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', - 'sábado'], + 'sábado'], STANDALONEWEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', - 'viernes', 'sábado'], + 'viernes', 'sábado'], SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], NARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2º trimestre', '3er trimestre', - '4º trimestre'], + '4º trimestre'], AMPMS: ['a.m.', 'p.m.'], DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', - 'dd/MM/yyyy', 'dd/MM/yy'], + 'dd/MM/y', 'dd/MM/yy'], TIMEFORMATS: ['HH\'h\'\'\'mm:ss zzzz', 'H:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -4405,30 +6731,31 @@ goog.i18n.DateTimeSymbols_es_BO = { ERANAMES: ['antes de Cristo', 'anno Dómini'], NARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', - 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], STANDALONEMONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', - 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], SHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', - 'oct', 'nov', 'dic'], + 'oct', 'nov', 'dic'], STANDALONESHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'mayo', 'jun', 'jul', - 'ago', 'sep', 'oct', 'nov', 'dic'], + 'ago', 'sep', 'oct', 'nov', 'dic'], WEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', - 'sábado'], + 'sábado'], STANDALONEWEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', - 'viernes', 'sábado'], + 'viernes', 'sábado'], SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], NARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2º trimestre', '3er trimestre', - '4º trimestre'], + '4º trimestre'], AMPMS: ['a.m.', 'p.m.'], DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', - 'dd/MM/yyyy', 'dd/MM/yy'], + 'dd/MM/y', 'dd/MM/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -4443,30 +6770,31 @@ goog.i18n.DateTimeSymbols_es_CL = { ERANAMES: ['antes de Cristo', 'anno Dómini'], NARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', - 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], STANDALONEMONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', - 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], SHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', - 'oct', 'nov', 'dic'], + 'oct', 'nov', 'dic'], STANDALONESHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'mayo', 'jun', 'jul', - 'ago', 'sep', 'oct', 'nov', 'dic'], + 'ago', 'sep', 'oct', 'nov', 'dic'], WEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', - 'sábado'], + 'sábado'], STANDALONEWEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', - 'viernes', 'sábado'], + 'viernes', 'sábado'], SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], NARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2º trimestre', '3er trimestre', - '4º trimestre'], + '4º trimestre'], AMPMS: ['a.m.', 'p.m.'], DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', - 'dd-MM-yyyy', 'dd-MM-yy'], + 'dd-MM-y', 'dd-MM-yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'H:mm:ss z', 'H:mm:ss', 'H:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -4481,30 +6809,31 @@ goog.i18n.DateTimeSymbols_es_CO = { ERANAMES: ['antes de Cristo', 'anno Dómini'], NARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', - 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], STANDALONEMONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', - 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], SHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', - 'oct', 'nov', 'dic'], + 'oct', 'nov', 'dic'], STANDALONESHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'mayo', 'jun', 'jul', - 'ago', 'sep', 'oct', 'nov', 'dic'], + 'ago', 'sep', 'oct', 'nov', 'dic'], WEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', - 'sábado'], + 'sábado'], STANDALONEWEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', - 'viernes', 'sábado'], + 'viernes', 'sábado'], SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], NARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2º trimestre', '3er trimestre', - '4º trimestre'], + '4º trimestre'], AMPMS: ['a.m.', 'p.m.'], DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', - 'd/MM/yyyy', 'd/MM/yy'], + 'd/MM/y', 'd/MM/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'H:mm:ss z', 'H:mm:ss', 'H:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -4519,30 +6848,70 @@ goog.i18n.DateTimeSymbols_es_CR = { ERANAMES: ['antes de Cristo', 'anno Dómini'], NARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', - 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], STANDALONEMONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', - 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], SHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', - 'oct', 'nov', 'dic'], + 'oct', 'nov', 'dic'], STANDALONESHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'mayo', 'jun', 'jul', - 'ago', 'sep', 'oct', 'nov', 'dic'], + 'ago', 'sep', 'oct', 'nov', 'dic'], WEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', - 'sábado'], + 'sábado'], STANDALONEWEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', - 'viernes', 'sábado'], + 'viernes', 'sábado'], SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], NARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2º trimestre', '3er trimestre', - '4º trimestre'], + '4º trimestre'], AMPMS: ['a.m.', 'p.m.'], DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', - 'dd/MM/yyyy', 'dd/MM/yy'], + 'dd/MM/y', 'dd/MM/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale es_CU. + */ +goog.i18n.DateTimeSymbols_es_CU = { + ERAS: ['a.C.', 'd.C.'], + ERANAMES: ['antes de Cristo', 'anno Dómini'], + NARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', + 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + STANDALONEMONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', + 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + SHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', + 'oct', 'nov', 'dic'], + STANDALONESHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'mayo', 'jun', 'jul', + 'ago', 'sep', 'oct', 'nov', 'dic'], + WEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', + 'sábado'], + STANDALONEWEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', + 'viernes', 'sábado'], + SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], + STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], + NARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], + STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], + SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], + QUARTERS: ['1er trimestre', '2º trimestre', '3er trimestre', + '4º trimestre'], + AMPMS: ['a.m.', 'p.m.'], + DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', + 'dd/MM/y', 'dd/MM/yy'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -4557,36 +6926,76 @@ goog.i18n.DateTimeSymbols_es_DO = { ERANAMES: ['antes de Cristo', 'anno Dómini'], NARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', - 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], STANDALONEMONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', - 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], SHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', - 'oct', 'nov', 'dic'], + 'oct', 'nov', 'dic'], STANDALONESHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'mayo', 'jun', 'jul', - 'ago', 'sep', 'oct', 'nov', 'dic'], + 'ago', 'sep', 'oct', 'nov', 'dic'], WEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', - 'sábado'], + 'sábado'], STANDALONEWEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', - 'viernes', 'sábado'], + 'viernes', 'sábado'], SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], NARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2º trimestre', '3er trimestre', - '4º trimestre'], + '4º trimestre'], AMPMS: ['a.m.', 'p.m.'], DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', - 'dd/MM/yyyy', 'dd/MM/yy'], + 'dd/MM/y', 'dd/MM/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 }; +/** + * Date/time formatting symbols for locale es_EA. + */ +goog.i18n.DateTimeSymbols_es_EA = { + ERAS: ['a.C.', 'd.C.'], + ERANAMES: ['antes de Cristo', 'anno Dómini'], + NARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', + 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + STANDALONEMONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', + 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + SHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', + 'oct', 'nov', 'dic'], + STANDALONESHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'mayo', 'jun', 'jul', + 'ago', 'sep', 'oct', 'nov', 'dic'], + WEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', + 'sábado'], + STANDALONEWEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', + 'viernes', 'sábado'], + SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], + STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], + NARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], + STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], + SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], + QUARTERS: ['1er trimestre', '2º trimestre', '3er trimestre', + '4º trimestre'], + AMPMS: ['a.m.', 'p.m.'], + DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', + 'dd/MM/y', 'dd/MM/yy'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + /** * Date/time formatting symbols for locale es_EC. */ @@ -4595,74 +7004,37 @@ goog.i18n.DateTimeSymbols_es_EC = { ERANAMES: ['antes de Cristo', 'anno Dómini'], NARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', - 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], STANDALONEMONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', - 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], SHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', - 'oct', 'nov', 'dic'], + 'oct', 'nov', 'dic'], STANDALONESHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'mayo', 'jun', 'jul', - 'ago', 'sep', 'oct', 'nov', 'dic'], + 'ago', 'sep', 'oct', 'nov', 'dic'], WEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', - 'sábado'], + 'sábado'], STANDALONEWEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', - 'viernes', 'sábado'], + 'viernes', 'sábado'], SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], NARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2º trimestre', '3er trimestre', - '4º trimestre'], + '4º trimestre'], AMPMS: ['a.m.', 'p.m.'], DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', - 'dd/MM/yyyy', 'dd/MM/yy'], + 'dd/MM/y', 'dd/MM/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'H:mm:ss z', 'H:mm:ss', 'H:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 }; -/** - * Date/time formatting symbols for locale es_ES. - */ -goog.i18n.DateTimeSymbols_es_ES = { - ERAS: ['a.C.', 'd.C.'], - ERANAMES: ['antes de Cristo', 'anno Dómini'], - NARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], - STANDALONENARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], - MONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', - 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], - STANDALONEMONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', - 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], - SHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', - 'oct', 'nov', 'dic'], - STANDALONESHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'mayo', 'jun', 'jul', - 'ago', 'sep', 'oct', 'nov', 'dic'], - WEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', - 'sábado'], - STANDALONEWEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', - 'viernes', 'sábado'], - SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], - STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], - NARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], - STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], - SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], - QUARTERS: ['1er trimestre', '2º trimestre', '3er trimestre', - '4º trimestre'], - AMPMS: ['a.m.', 'p.m.'], - DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', - 'dd/MM/yyyy', 'dd/MM/yy'], - TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], - FIRSTDAYOFWEEK: 0, - WEEKENDRANGE: [5, 6], - FIRSTWEEKCUTOFFDAY: 3 -}; - - /** * Date/time formatting symbols for locale es_GQ. */ @@ -4671,30 +7043,31 @@ goog.i18n.DateTimeSymbols_es_GQ = { ERANAMES: ['antes de Cristo', 'anno Dómini'], NARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', - 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], STANDALONEMONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', - 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], SHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', - 'oct', 'nov', 'dic'], + 'oct', 'nov', 'dic'], STANDALONESHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'mayo', 'jun', 'jul', - 'ago', 'sep', 'oct', 'nov', 'dic'], + 'ago', 'sep', 'oct', 'nov', 'dic'], WEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', - 'sábado'], + 'sábado'], STANDALONEWEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', - 'viernes', 'sábado'], + 'viernes', 'sábado'], SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], NARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2º trimestre', '3er trimestre', - '4º trimestre'], + '4º trimestre'], AMPMS: ['a.m.', 'p.m.'], DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', - 'dd/MM/yyyy', 'dd/MM/yy'], + 'dd/MM/y', 'dd/MM/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -4709,30 +7082,31 @@ goog.i18n.DateTimeSymbols_es_GT = { ERANAMES: ['antes de Cristo', 'anno Dómini'], NARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', - 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], STANDALONEMONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', - 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], SHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', - 'oct', 'nov', 'dic'], + 'oct', 'nov', 'dic'], STANDALONESHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'mayo', 'jun', 'jul', - 'ago', 'sep', 'oct', 'nov', 'dic'], + 'ago', 'sep', 'oct', 'nov', 'dic'], WEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', - 'sábado'], + 'sábado'], STANDALONEWEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', - 'viernes', 'sábado'], + 'viernes', 'sábado'], SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], NARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2º trimestre', '3er trimestre', - '4º trimestre'], + '4º trimestre'], AMPMS: ['a.m.', 'p.m.'], DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', - 'd/MM/yyyy', 'd/MM/yy'], + 'd/MM/y', 'd/MM/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -4747,36 +7121,76 @@ goog.i18n.DateTimeSymbols_es_HN = { ERANAMES: ['antes de Cristo', 'anno Dómini'], NARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', - 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], STANDALONEMONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', - 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], SHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', - 'oct', 'nov', 'dic'], + 'oct', 'nov', 'dic'], STANDALONESHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'mayo', 'jun', 'jul', - 'ago', 'sep', 'oct', 'nov', 'dic'], + 'ago', 'sep', 'oct', 'nov', 'dic'], WEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', - 'sábado'], + 'sábado'], STANDALONEWEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', - 'viernes', 'sábado'], + 'viernes', 'sábado'], SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], NARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2º trimestre', '3er trimestre', - '4º trimestre'], + '4º trimestre'], AMPMS: ['a.m.', 'p.m.'], DATEFORMATS: ['EEEE dd \'de\' MMMM \'de\' y', 'dd \'de\' MMMM \'de\' y', - 'dd/MM/yyyy', 'dd/MM/yy'], + 'dd/MM/y', 'dd/MM/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 }; +/** + * Date/time formatting symbols for locale es_IC. + */ +goog.i18n.DateTimeSymbols_es_IC = { + ERAS: ['a.C.', 'd.C.'], + ERANAMES: ['antes de Cristo', 'anno Dómini'], + NARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', + 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + STANDALONEMONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', + 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + SHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', + 'oct', 'nov', 'dic'], + STANDALONESHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'mayo', 'jun', 'jul', + 'ago', 'sep', 'oct', 'nov', 'dic'], + WEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', + 'sábado'], + STANDALONEWEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', + 'viernes', 'sábado'], + SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], + STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], + NARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], + STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], + SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], + QUARTERS: ['1er trimestre', '2º trimestre', '3er trimestre', + '4º trimestre'], + AMPMS: ['a.m.', 'p.m.'], + DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', + 'dd/MM/y', 'dd/MM/yy'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + /** * Date/time formatting symbols for locale es_MX. */ @@ -4785,30 +7199,31 @@ goog.i18n.DateTimeSymbols_es_MX = { ERANAMES: ['antes de Cristo', 'anno Dómini'], NARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', - 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], STANDALONEMONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', - 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], SHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', - 'oct', 'nov', 'dic'], + 'oct', 'nov', 'dic'], STANDALONESHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'mayo', 'jun', 'jul', - 'ago', 'sep', 'oct', 'nov', 'dic'], + 'ago', 'sep', 'oct', 'nov', 'dic'], WEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', - 'sábado'], + 'sábado'], STANDALONEWEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', - 'viernes', 'sábado'], + 'viernes', 'sábado'], SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], NARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2º trimestre', '3er trimestre', - '4º trimestre'], + '4º trimestre'], AMPMS: ['a.m.', 'p.m.'], DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', - 'dd/MM/yyyy', 'dd/MM/yy'], + 'dd/MM/y', 'dd/MM/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -4823,30 +7238,31 @@ goog.i18n.DateTimeSymbols_es_NI = { ERANAMES: ['antes de Cristo', 'anno Dómini'], NARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', - 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], STANDALONEMONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', - 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], SHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', - 'oct', 'nov', 'dic'], + 'oct', 'nov', 'dic'], STANDALONESHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'mayo', 'jun', 'jul', - 'ago', 'sep', 'oct', 'nov', 'dic'], + 'ago', 'sep', 'oct', 'nov', 'dic'], WEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', - 'sábado'], + 'sábado'], STANDALONEWEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', - 'viernes', 'sábado'], + 'viernes', 'sábado'], SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], NARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2º trimestre', '3er trimestre', - '4º trimestre'], + '4º trimestre'], AMPMS: ['a.m.', 'p.m.'], DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', - 'dd/MM/yyyy', 'dd/MM/yy'], + 'dd/MM/y', 'dd/MM/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -4861,30 +7277,31 @@ goog.i18n.DateTimeSymbols_es_PA = { ERANAMES: ['antes de Cristo', 'anno Dómini'], NARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', - 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], STANDALONEMONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', - 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], SHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', - 'oct', 'nov', 'dic'], + 'oct', 'nov', 'dic'], STANDALONESHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'mayo', 'jun', 'jul', - 'ago', 'sep', 'oct', 'nov', 'dic'], + 'ago', 'sep', 'oct', 'nov', 'dic'], WEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', - 'sábado'], + 'sábado'], STANDALONEWEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', - 'viernes', 'sábado'], + 'viernes', 'sábado'], SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], NARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2º trimestre', '3er trimestre', - '4º trimestre'], + '4º trimestre'], AMPMS: ['a.m.', 'p.m.'], DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', - 'MM/dd/yyyy', 'MM/dd/yy'], + 'MM/dd/y', 'MM/dd/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -4899,30 +7316,70 @@ goog.i18n.DateTimeSymbols_es_PE = { ERANAMES: ['antes de Cristo', 'anno Dómini'], NARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', - 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], STANDALONEMONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', - 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], SHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', - 'oct', 'nov', 'dic'], + 'oct', 'nov', 'dic'], STANDALONESHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'mayo', 'jun', 'jul', - 'ago', 'sep', 'oct', 'nov', 'dic'], + 'ago', 'sep', 'oct', 'nov', 'dic'], WEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', - 'sábado'], + 'sábado'], STANDALONEWEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', - 'viernes', 'sábado'], + 'viernes', 'sábado'], SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], NARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2º trimestre', '3er trimestre', - '4º trimestre'], + '4º trimestre'], AMPMS: ['a.m.', 'p.m.'], DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', - 'dd/MM/yyyy', 'd/MM/yy'], + 'dd/MM/y', 'd/MM/yy'], TIMEFORMATS: ['HH\'H\'mm\'\'ss\'\' zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 5 +}; + + +/** + * Date/time formatting symbols for locale es_PH. + */ +goog.i18n.DateTimeSymbols_es_PH = { + ERAS: ['a.C.', 'd.C.'], + ERANAMES: ['antes de Cristo', 'anno Dómini'], + NARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', + 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + STANDALONEMONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', + 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + SHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', + 'oct', 'nov', 'dic'], + STANDALONESHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'mayo', 'jun', 'jul', + 'ago', 'sep', 'oct', 'nov', 'dic'], + WEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', + 'sábado'], + STANDALONEWEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', + 'viernes', 'sábado'], + SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], + STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], + NARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], + STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], + SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], + QUARTERS: ['1er trimestre', '2º trimestre', '3er trimestre', + '4º trimestre'], + AMPMS: ['a.m.', 'p.m.'], + DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', + 'dd/MM/y', 'dd/MM/yy'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -4937,30 +7394,31 @@ goog.i18n.DateTimeSymbols_es_PR = { ERANAMES: ['antes de Cristo', 'anno Dómini'], NARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', - 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], STANDALONEMONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', - 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], SHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', - 'oct', 'nov', 'dic'], + 'oct', 'nov', 'dic'], STANDALONESHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'mayo', 'jun', 'jul', - 'ago', 'sep', 'oct', 'nov', 'dic'], + 'ago', 'sep', 'oct', 'nov', 'dic'], WEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', - 'sábado'], + 'sábado'], STANDALONEWEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', - 'viernes', 'sábado'], + 'viernes', 'sábado'], SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], NARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2º trimestre', '3er trimestre', - '4º trimestre'], + '4º trimestre'], AMPMS: ['a.m.', 'p.m.'], DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', - 'MM/dd/yyyy', 'MM/dd/yy'], - TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + 'MM/dd/y', 'MM/dd/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -4975,30 +7433,31 @@ goog.i18n.DateTimeSymbols_es_PY = { ERANAMES: ['antes de Cristo', 'anno Dómini'], NARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', - 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], STANDALONEMONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', - 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], SHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', - 'oct', 'nov', 'dic'], + 'oct', 'nov', 'dic'], STANDALONESHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'mayo', 'jun', 'jul', - 'ago', 'sep', 'oct', 'nov', 'dic'], + 'ago', 'sep', 'oct', 'nov', 'dic'], WEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', - 'sábado'], + 'sábado'], STANDALONEWEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', - 'viernes', 'sábado'], + 'viernes', 'sábado'], SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], NARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2º trimestre', '3er trimestre', - '4º trimestre'], + '4º trimestre'], AMPMS: ['a.m.', 'p.m.'], DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', - 'dd/MM/yyyy', 'dd/MM/yy'], + 'dd/MM/y', 'dd/MM/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -5013,30 +7472,31 @@ goog.i18n.DateTimeSymbols_es_SV = { ERANAMES: ['antes de Cristo', 'anno Dómini'], NARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', - 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], STANDALONEMONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', - 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], SHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', - 'oct', 'nov', 'dic'], + 'oct', 'nov', 'dic'], STANDALONESHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'mayo', 'jun', 'jul', - 'ago', 'sep', 'oct', 'nov', 'dic'], + 'ago', 'sep', 'oct', 'nov', 'dic'], WEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', - 'sábado'], + 'sábado'], STANDALONEWEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', - 'viernes', 'sábado'], + 'viernes', 'sábado'], SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], NARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2º trimestre', '3er trimestre', - '4º trimestre'], + '4º trimestre'], AMPMS: ['a.m.', 'p.m.'], DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', - 'dd/MM/yyyy', 'dd/MM/yy'], + 'dd/MM/y', 'dd/MM/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -5051,30 +7511,31 @@ goog.i18n.DateTimeSymbols_es_US = { ERANAMES: ['antes de Cristo', 'anno Dómini'], NARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', - 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], STANDALONEMONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', - 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], SHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', - 'oct', 'nov', 'dic'], + 'oct', 'nov', 'dic'], STANDALONESHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'mayo', 'jun', 'jul', - 'ago', 'sep', 'oct', 'nov', 'dic'], + 'ago', 'sep', 'oct', 'nov', 'dic'], WEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', - 'sábado'], + 'sábado'], STANDALONEWEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', - 'viernes', 'sábado'], + 'viernes', 'sábado'], SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], NARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2º trimestre', '3er trimestre', - '4º trimestre'], - AMPMS: ['a.m.', 'p.m.'], + '4º trimestre'], + AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', - 'MMM d, y', 'M/d/yy'], + 'MMM d, y', 'M/d/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -5089,30 +7550,31 @@ goog.i18n.DateTimeSymbols_es_UY = { ERANAMES: ['antes de Cristo', 'anno Dómini'], NARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', - 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], STANDALONEMONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', - 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], SHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', - 'oct', 'nov', 'dic'], + 'oct', 'nov', 'dic'], STANDALONESHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'mayo', 'jun', 'jul', - 'ago', 'sep', 'oct', 'nov', 'dic'], + 'ago', 'sep', 'oct', 'nov', 'dic'], WEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', - 'sábado'], + 'sábado'], STANDALONEWEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', - 'viernes', 'sábado'], + 'viernes', 'sábado'], SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], NARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2º trimestre', '3er trimestre', - '4º trimestre'], + '4º trimestre'], AMPMS: ['a.m.', 'p.m.'], DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', - 'dd/MM/yyyy', 'dd/MM/yy'], + 'dd/MM/y', 'dd/MM/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -5127,30 +7589,31 @@ goog.i18n.DateTimeSymbols_es_VE = { ERANAMES: ['antes de Cristo', 'anno Dómini'], NARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['E', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', - 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], STANDALONEMONTHS: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', - 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], + 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'], SHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', - 'oct', 'nov', 'dic'], + 'oct', 'nov', 'dic'], STANDALONESHORTMONTHS: ['ene', 'feb', 'mar', 'abr', 'mayo', 'jun', 'jul', - 'ago', 'sep', 'oct', 'nov', 'dic'], + 'ago', 'sep', 'oct', 'nov', 'dic'], WEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', - 'sábado'], + 'sábado'], STANDALONEWEEKDAYS: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', - 'viernes', 'sábado'], + 'viernes', 'sábado'], SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'], NARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'X', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2º trimestre', '3er trimestre', - '4º trimestre'], + '4º trimestre'], AMPMS: ['a.m.', 'p.m.'], DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', - 'dd/MM/yyyy', 'dd/MM/yy'], + 'dd/MM/y', 'dd/MM/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -5165,28 +7628,29 @@ goog.i18n.DateTimeSymbols_et_EE = { ERANAMES: ['enne meie aega', 'meie aja järgi'], NARROWMONTHS: ['J', 'V', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'V', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['jaanuar', 'veebruar', 'märts', 'aprill', 'mai', 'juuni', 'juuli', - 'august', 'september', 'oktoober', 'november', 'detsember'], + 'august', 'september', 'oktoober', 'november', 'detsember'], STANDALONEMONTHS: ['jaanuar', 'veebruar', 'märts', 'aprill', 'mai', 'juuni', - 'juuli', 'august', 'september', 'oktoober', 'november', 'detsember'], + 'juuli', 'august', 'september', 'oktoober', 'november', 'detsember'], SHORTMONTHS: ['jaan', 'veebr', 'märts', 'apr', 'mai', 'juuni', 'juuli', - 'aug', 'sept', 'okt', 'nov', 'dets'], + 'aug', 'sept', 'okt', 'nov', 'dets'], STANDALONESHORTMONTHS: ['jaan', 'veebr', 'märts', 'apr', 'mai', 'juuni', - 'juuli', 'aug', 'sept', 'okt', 'nov', 'dets'], + 'juuli', 'aug', 'sept', 'okt', 'nov', 'dets'], WEEKDAYS: ['pühapäev', 'esmaspäev', 'teisipäev', 'kolmapäev', - 'neljapäev', 'reede', 'laupäev'], + 'neljapäev', 'reede', 'laupäev'], STANDALONEWEEKDAYS: ['pühapäev', 'esmaspäev', 'teisipäev', 'kolmapäev', - 'neljapäev', 'reede', 'laupäev'], + 'neljapäev', 'reede', 'laupäev'], SHORTWEEKDAYS: ['P', 'E', 'T', 'K', 'N', 'R', 'L'], STANDALONESHORTWEEKDAYS: ['P', 'E', 'T', 'K', 'N', 'R', 'L'], NARROWWEEKDAYS: ['P', 'E', 'T', 'K', 'N', 'R', 'L'], STANDALONENARROWWEEKDAYS: ['P', 'E', 'T', 'K', 'N', 'R', 'L'], SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], QUARTERS: ['1. kvartal', '2. kvartal', '3. kvartal', '4. kvartal'], - AMPMS: ['enne keskpäeva', 'pärast keskpäeva'], - DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'dd.MM.yyyy', 'dd.MM.yy'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'dd.MM.y', 'dd.MM.yy'], TIMEFORMATS: ['H:mm.ss zzzz', 'H:mm.ss z', 'H:mm.ss', 'H:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -5201,30 +7665,30 @@ goog.i18n.DateTimeSymbols_eu_ES = { ERANAMES: ['K.a.', 'K.o.'], NARROWMONTHS: ['U', 'O', 'M', 'A', 'M', 'E', 'U', 'A', 'I', 'U', 'A', 'A'], STANDALONENARROWMONTHS: ['U', 'O', 'M', 'A', 'M', 'E', 'U', 'A', 'I', 'U', - 'A', 'A'], + 'A', 'A'], MONTHS: ['urtarrila', 'otsaila', 'martxoa', 'apirila', 'maiatza', 'ekaina', - 'uztaila', 'abuztua', 'iraila', 'urria', 'azaroa', 'abendua'], + 'uztaila', 'abuztua', 'iraila', 'urria', 'azaroa', 'abendua'], STANDALONEMONTHS: ['urtarrila', 'otsaila', 'martxoa', 'apirila', 'maiatza', - 'ekaina', 'uztaila', 'abuztua', 'iraila', 'urria', 'azaroa', 'abendua'], + 'ekaina', 'uztaila', 'abuztua', 'iraila', 'urria', 'azaroa', 'abendua'], SHORTMONTHS: ['urt', 'ots', 'mar', 'api', 'mai', 'eka', 'uzt', 'abu', 'ira', - 'urr', 'aza', 'abe'], + 'urr', 'aza', 'abe'], STANDALONESHORTMONTHS: ['urt', 'ots', 'mar', 'api', 'mai', 'eka', 'uzt', - 'abu', 'ira', 'urr', 'aza', 'abe'], + 'abu', 'ira', 'urr', 'aza', 'abe'], WEEKDAYS: ['igandea', 'astelehena', 'asteartea', 'asteazkena', 'osteguna', - 'ostirala', 'larunbata'], + 'ostirala', 'larunbata'], STANDALONEWEEKDAYS: ['igandea', 'astelehena', 'asteartea', 'asteazkena', - 'osteguna', 'ostirala', 'larunbata'], + 'osteguna', 'ostirala', 'larunbata'], SHORTWEEKDAYS: ['ig', 'al', 'as', 'az', 'og', 'or', 'lr'], STANDALONESHORTWEEKDAYS: ['ig', 'al', 'as', 'az', 'og', 'or', 'lr'], NARROWWEEKDAYS: ['I', 'M', 'A', 'A', 'A', 'O', 'I'], STANDALONENARROWWEEKDAYS: ['I', 'M', 'A', 'L', 'A', 'O', 'I'], SHORTQUARTERS: ['1Hh', '2Hh', '3Hh', '4Hh'], QUARTERS: ['1. hiruhilekoa', '2. hiruhilekoa', '3. hiruhilekoa', - '4. hiruhilekoa'], + '4. hiruhilekoa'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, y\'eko\' MMMM\'ren\' dd\'a\'', - 'y\'eko\' MMM\'ren\' dd\'a\'', 'y MMM d', 'yyyy-MM-dd'], + DATEFORMATS: ['EEEE, y MMMM dd', 'y MMMM d', 'y MMM d', 'y-MM-dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -5239,36 +7703,37 @@ goog.i18n.DateTimeSymbols_ewo = { ERANAMES: ['osúsúa Yésus kiri', 'ámvus Yésus Kirís'], NARROWMONTHS: ['o', 'b', 'l', 'n', 't', 's', 'z', 'm', 'e', 'a', 'd', 'b'], STANDALONENARROWMONTHS: ['o', 'b', 'l', 'n', 't', 's', 'z', 'm', 'e', 'a', - 'd', 'b'], + 'd', 'b'], MONTHS: ['ngɔn osú', 'ngɔn bɛ̌', 'ngɔn lála', 'ngɔn nyina', - 'ngɔn tána', 'ngɔn samǝna', 'ngɔn zamgbála', 'ngɔn mwom', - 'ngɔn ebulú', 'ngɔn awóm', 'ngɔn awóm ai dziá', - 'ngɔn awóm ai bɛ̌'], + 'ngɔn tána', 'ngɔn saməna', 'ngɔn zamgbála', 'ngɔn mwom', + 'ngɔn ebulú', 'ngɔn awóm', 'ngɔn awóm ai dziá', + 'ngɔn awóm ai bɛ̌'], STANDALONEMONTHS: ['ngɔn osú', 'ngɔn bɛ̌', 'ngɔn lála', 'ngɔn nyina', - 'ngɔn tána', 'ngɔn samǝna', 'ngɔn zamgbála', 'ngɔn mwom', - 'ngɔn ebulú', 'ngɔn awóm', 'ngɔn awóm ai dziá', - 'ngɔn awóm ai bɛ̌'], + 'ngɔn tána', 'ngɔn saməna', 'ngɔn zamgbála', 'ngɔn mwom', + 'ngɔn ebulú', 'ngɔn awóm', 'ngɔn awóm ai dziá', + 'ngɔn awóm ai bɛ̌'], SHORTMONTHS: ['ngo', 'ngb', 'ngl', 'ngn', 'ngt', 'ngs', 'ngz', 'ngm', 'nge', - 'nga', 'ngad', 'ngab'], + 'nga', 'ngad', 'ngab'], STANDALONESHORTMONTHS: ['ngo', 'ngb', 'ngl', 'ngn', 'ngt', 'ngs', 'ngz', - 'ngm', 'nge', 'nga', 'ngad', 'ngab'], - WEEKDAYS: ['sɔ́ndɔ', 'mɔ́ndi', 'sɔ́ndɔ mǝlú mǝ́bɛ̌', - 'sɔ́ndɔ mǝlú mǝ́lɛ́', 'sɔ́ndɔ mǝlú mǝ́nyi', 'fúladé', - 'séradé'], - STANDALONEWEEKDAYS: ['sɔ́ndɔ', 'mɔ́ndi', 'sɔ́ndɔ mǝlú mǝ́bɛ̌', - 'sɔ́ndɔ mǝlú mǝ́lɛ́', 'sɔ́ndɔ mǝlú mǝ́nyi', 'fúladé', - 'séradé'], + 'ngm', 'nge', 'nga', 'ngad', 'ngab'], + WEEKDAYS: ['sɔ́ndɔ', 'mɔ́ndi', 'sɔ́ndɔ məlú mə́bɛ̌', + 'sɔ́ndɔ məlú mə́lɛ́', 'sɔ́ndɔ məlú mə́nyi', 'fúladé', + 'séradé'], + STANDALONEWEEKDAYS: ['sɔ́ndɔ', 'mɔ́ndi', 'sɔ́ndɔ məlú mə́bɛ̌', + 'sɔ́ndɔ məlú mə́lɛ́', 'sɔ́ndɔ məlú mə́nyi', 'fúladé', + 'séradé'], SHORTWEEKDAYS: ['sɔ́n', 'mɔ́n', 'smb', 'sml', 'smn', 'fúl', 'sér'], STANDALONESHORTWEEKDAYS: ['sɔ́n', 'mɔ́n', 'smb', 'sml', 'smn', 'fúl', - 'sér'], + 'sér'], NARROWWEEKDAYS: ['s', 'm', 's', 's', 's', 'f', 's'], STANDALONENARROWWEEKDAYS: ['s', 'm', 's', 's', 's', 'f', 's'], SHORTQUARTERS: ['nno', 'nnb', 'nnl', 'nnny'], QUARTERS: ['nsámbá ngɔn asú', 'nsámbá ngɔn bɛ̌', - 'nsámbá ngɔn lála', 'nsámbá ngɔn nyina'], - AMPMS: ['kíkíríg', 'ngǝgógǝle'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/yyyy'], + 'nsámbá ngɔn lála', 'nsámbá ngɔn nyina'], + AMPMS: ['kíkíríg', 'ngəgógəle'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -5289,37 +7754,39 @@ goog.i18n.DateTimeSymbols_fa_AF = { ERAS: ['ق.م.', 'م.'], ERANAMES: ['قبل از میلاد', 'میلادی'], NARROWMONTHS: ['ژ', 'ف', 'م', 'آ', 'م', 'ژ', 'ژ', 'ا', 'س', 'ا', - 'ن', 'د'], + 'ن', 'د'], STANDALONENARROWMONTHS: ['ج', 'ف', 'م', 'ا', 'م', 'ج', 'ج', 'ا', 'س', - 'ا', 'ن', 'د'], + 'ا', 'ن', 'د'], MONTHS: ['جنوری', 'فبروری', 'مارچ', 'اپریل', 'می', - 'جون', 'جولای', 'اگست', 'سپتمبر', 'اکتوبر', - 'نومبر', 'دسمبر'], + 'جون', 'جولای', 'اگست', 'سپتمبر', 'اکتوبر', + 'نومبر', 'دسمبر'], STANDALONEMONTHS: ['ژانویه', 'فوریه', 'مارس', 'آوریل', - 'مه', 'ژوئن', 'ژوئیه', 'اوت', 'سپتامبر', - 'اکتبر', 'نوامبر', 'دسامبر'], + 'مه', 'ژوئن', 'ژوئیه', 'اوت', 'سپتامبر', 'اکتبر', + 'نوامبر', 'دسامبر'], SHORTMONTHS: ['جنو', 'فوریهٔ', 'مارس', 'آوریل', 'مـی', - 'ژوئن', 'جول', 'اوت', 'سپتامبر', 'اکتبر', - 'نوامبر', 'دسم'], + 'ژوئن', 'جول', 'اوت', 'سپتامبر', 'اکتبر', + 'نوامبر', 'دسم'], STANDALONESHORTMONTHS: ['ژانویه', 'فوریه', 'مارس', - 'آوریل', 'مه', 'ژوئن', 'ژوئیه', 'اوت', - 'سپتامبر', 'اکتبر', 'نوامبر', 'دسامبر'], + 'آوریل', 'مه', 'ژوئن', 'ژوئیه', 'اوت', 'سپتامبر', + 'اکتبر', 'نوامبر', 'دسامبر'], WEEKDAYS: ['یکشنبه', 'دوشنبه', 'سه‌شنبه', - 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], + 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], STANDALONEWEEKDAYS: ['یکشنبه', 'دوشنبه', 'سه‌شنبه', - 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], + 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], SHORTWEEKDAYS: ['یکشنبه', 'دوشنبه', 'سه‌شنبه', - 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], + 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], STANDALONESHORTWEEKDAYS: ['یکشنبه', 'دوشنبه', 'سه‌شنبه', - 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], + 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], NARROWWEEKDAYS: ['ی', 'د', 'س', 'چ', 'پ', 'ج', 'ش'], STANDALONENARROWWEEKDAYS: ['ی', 'د', 'س', 'چ', 'پ', 'ج', 'ش'], SHORTQUARTERS: ['س‌م۱', 'س‌م۲', 'س‌م۳', 'س‌م۴'], QUARTERS: ['سه‌ماههٔ اول', 'سه‌ماههٔ دوم', - 'سه‌ماههٔ سوم', 'سه‌ماههٔ چهارم'], + 'سه‌ماههٔ سوم', 'سه‌ماههٔ چهارم'], AMPMS: ['قبل‌ازظهر', 'بعدازظهر'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'yyyy/M/d'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'y/M/d'], TIMEFORMATS: ['H:mm:ss (zzzz)', 'H:mm:ss (z)', 'H:mm:ss', 'H:mm'], + DATETIMEFORMATS: ['{1}، ساعت {0}', '{1}، ساعت {0}', '{1}،‏ {0}', + '{1}،‏ {0}'], FIRSTDAYOFWEEK: 5, WEEKENDRANGE: [3, 4], FIRSTWEEKCUTOFFDAY: 4 @@ -5334,37 +7801,39 @@ goog.i18n.DateTimeSymbols_fa_IR = { ERAS: ['ق.م.', 'م.'], ERANAMES: ['قبل از میلاد', 'میلادی'], NARROWMONTHS: ['ژ', 'ف', 'م', 'آ', 'م', 'ژ', 'ژ', 'ا', 'س', 'ا', - 'ن', 'د'], + 'ن', 'د'], STANDALONENARROWMONTHS: ['ژ', 'ف', 'م', 'آ', 'م', 'ژ', 'ژ', 'ا', 'س', - 'ا', 'ن', 'د'], + 'ا', 'ن', 'د'], MONTHS: ['ژانویهٔ', 'فوریهٔ', 'مارس', 'آوریل', 'مهٔ', - 'ژوئن', 'ژوئیهٔ', 'اوت', 'سپتامبر', 'اکتبر', - 'نوامبر', 'دسامبر'], + 'ژوئن', 'ژوئیهٔ', 'اوت', 'سپتامبر', 'اکتبر', + 'نوامبر', 'دسامبر'], STANDALONEMONTHS: ['ژانویه', 'فوریه', 'مارس', 'آوریل', - 'مه', 'ژوئن', 'ژوئیه', 'اوت', 'سپتامبر', - 'اکتبر', 'نوامبر', 'دسامبر'], + 'مه', 'ژوئن', 'ژوئیه', 'اوت', 'سپتامبر', 'اکتبر', + 'نوامبر', 'دسامبر'], SHORTMONTHS: ['ژانویهٔ', 'فوریهٔ', 'مارس', 'آوریل', - 'مهٔ', 'ژوئن', 'ژوئیهٔ', 'اوت', 'سپتامبر', - 'اکتبر', 'نوامبر', 'دسامبر'], + 'مهٔ', 'ژوئن', 'ژوئیهٔ', 'اوت', 'سپتامبر', + 'اکتبر', 'نوامبر', 'دسامبر'], STANDALONESHORTMONTHS: ['ژانویه', 'فوریه', 'مارس', - 'آوریل', 'مه', 'ژوئن', 'ژوئیه', 'اوت', - 'سپتامبر', 'اکتبر', 'نوامبر', 'دسامبر'], + 'آوریل', 'مه', 'ژوئن', 'ژوئیه', 'اوت', 'سپتامبر', + 'اکتبر', 'نوامبر', 'دسامبر'], WEEKDAYS: ['یکشنبه', 'دوشنبه', 'سه‌شنبه', - 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], + 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], STANDALONEWEEKDAYS: ['یکشنبه', 'دوشنبه', 'سه‌شنبه', - 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], + 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], SHORTWEEKDAYS: ['یکشنبه', 'دوشنبه', 'سه‌شنبه', - 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], + 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], STANDALONESHORTWEEKDAYS: ['یکشنبه', 'دوشنبه', 'سه‌شنبه', - 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], + 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], NARROWWEEKDAYS: ['ی', 'د', 'س', 'چ', 'پ', 'ج', 'ش'], STANDALONENARROWWEEKDAYS: ['ی', 'د', 'س', 'چ', 'پ', 'ج', 'ش'], SHORTQUARTERS: ['س‌م۱', 'س‌م۲', 'س‌م۳', 'س‌م۴'], QUARTERS: ['سه‌ماههٔ اول', 'سه‌ماههٔ دوم', - 'سه‌ماههٔ سوم', 'سه‌ماههٔ چهارم'], + 'سه‌ماههٔ سوم', 'سه‌ماههٔ چهارم'], AMPMS: ['قبل‌ازظهر', 'بعدازظهر'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'yyyy/M/d'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'y/M/d'], TIMEFORMATS: ['H:mm:ss (zzzz)', 'H:mm:ss (z)', 'H:mm:ss', 'H:mm'], + DATETIMEFORMATS: ['{1}، ساعت {0}', '{1}، ساعت {0}', '{1}،‏ {0}', + '{1}،‏ {0}'], FIRSTDAYOFWEEK: 5, WEEKENDRANGE: [3, 4], FIRSTWEEKCUTOFFDAY: 4 @@ -5379,19 +7848,19 @@ goog.i18n.DateTimeSymbols_ff = { ERANAMES: ['Hade Iisa', 'Caggal Iisa'], NARROWMONTHS: ['s', 'c', 'm', 's', 'd', 'k', 'm', 'j', 's', 'y', 'j', 'b'], STANDALONENARROWMONTHS: ['s', 'c', 'm', 's', 'd', 'k', 'm', 'j', 's', 'y', - 'j', 'b'], + 'j', 'b'], MONTHS: ['siilo', 'colte', 'mbooy', 'seeɗto', 'duujal', 'korse', 'morso', - 'juko', 'siilto', 'yarkomaa', 'jolal', 'bowte'], + 'juko', 'siilto', 'yarkomaa', 'jolal', 'bowte'], STANDALONEMONTHS: ['siilo', 'colte', 'mbooy', 'seeɗto', 'duujal', 'korse', - 'morso', 'juko', 'siilto', 'yarkomaa', 'jolal', 'bowte'], + 'morso', 'juko', 'siilto', 'yarkomaa', 'jolal', 'bowte'], SHORTMONTHS: ['sii', 'col', 'mbo', 'see', 'duu', 'kor', 'mor', 'juk', 'slt', - 'yar', 'jol', 'bow'], + 'yar', 'jol', 'bow'], STANDALONESHORTMONTHS: ['sii', 'col', 'mbo', 'see', 'duu', 'kor', 'mor', - 'juk', 'slt', 'yar', 'jol', 'bow'], + 'juk', 'slt', 'yar', 'jol', 'bow'], WEEKDAYS: ['dewo', 'aaɓnde', 'mawbaare', 'njeslaare', 'naasaande', 'mawnde', - 'hoore-biir'], + 'hoore-biir'], STANDALONEWEEKDAYS: ['dewo', 'aaɓnde', 'mawbaare', 'njeslaare', 'naasaande', - 'mawnde', 'hoore-biir'], + 'mawnde', 'hoore-biir'], SHORTWEEKDAYS: ['dew', 'aaɓ', 'maw', 'nje', 'naa', 'mwd', 'hbi'], STANDALONESHORTWEEKDAYS: ['dew', 'aaɓ', 'maw', 'nje', 'naa', 'mwd', 'hbi'], NARROWWEEKDAYS: ['d', 'a', 'm', 'n', 'n', 'm', 'h'], @@ -5399,8 +7868,9 @@ goog.i18n.DateTimeSymbols_ff = { SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['Termes 1', 'Termes 2', 'Termes 3', 'Termes 4'], AMPMS: ['subaka', 'kikiiɗe'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM, y', 'd/M/yyyy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM, y', 'd/M/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -5421,32 +7891,33 @@ goog.i18n.DateTimeSymbols_fi_FI = { ERANAMES: ['ennen Kristuksen syntymää', 'jälkeen Kristuksen syntymän'], NARROWMONTHS: ['T', 'H', 'M', 'H', 'T', 'K', 'H', 'E', 'S', 'L', 'M', 'J'], STANDALONENARROWMONTHS: ['T', 'H', 'M', 'H', 'T', 'K', 'H', 'E', 'S', 'L', - 'M', 'J'], + 'M', 'J'], MONTHS: ['tammikuuta', 'helmikuuta', 'maaliskuuta', 'huhtikuuta', - 'toukokuuta', 'kesäkuuta', 'heinäkuuta', 'elokuuta', 'syyskuuta', - 'lokakuuta', 'marraskuuta', 'joulukuuta'], + 'toukokuuta', 'kesäkuuta', 'heinäkuuta', 'elokuuta', 'syyskuuta', + 'lokakuuta', 'marraskuuta', 'joulukuuta'], STANDALONEMONTHS: ['tammikuu', 'helmikuu', 'maaliskuu', 'huhtikuu', - 'toukokuu', 'kesäkuu', 'heinäkuu', 'elokuu', 'syyskuu', 'lokakuu', - 'marraskuu', 'joulukuu'], + 'toukokuu', 'kesäkuu', 'heinäkuu', 'elokuu', 'syyskuu', 'lokakuu', + 'marraskuu', 'joulukuu'], SHORTMONTHS: ['tammikuuta', 'helmikuuta', 'maaliskuuta', 'huhtikuuta', - 'toukokuuta', 'kesäkuuta', 'heinäkuuta', 'elokuuta', 'syyskuuta', - 'lokakuuta', 'marraskuuta', 'joulukuuta'], + 'toukokuuta', 'kesäkuuta', 'heinäkuuta', 'elokuuta', 'syyskuuta', + 'lokakuuta', 'marraskuuta', 'joulukuuta'], STANDALONESHORTMONTHS: ['tammi', 'helmi', 'maalis', 'huhti', 'touko', 'kesä', - 'heinä', 'elo', 'syys', 'loka', 'marras', 'joulu'], + 'heinä', 'elo', 'syys', 'loka', 'marras', 'joulu'], WEEKDAYS: ['sunnuntaina', 'maanantaina', 'tiistaina', 'keskiviikkona', - 'torstaina', 'perjantaina', 'lauantaina'], + 'torstaina', 'perjantaina', 'lauantaina'], STANDALONEWEEKDAYS: ['sunnuntai', 'maanantai', 'tiistai', 'keskiviikko', - 'torstai', 'perjantai', 'lauantai'], + 'torstai', 'perjantai', 'lauantai'], SHORTWEEKDAYS: ['su', 'ma', 'ti', 'ke', 'to', 'pe', 'la'], STANDALONESHORTWEEKDAYS: ['su', 'ma', 'ti', 'ke', 'to', 'pe', 'la'], NARROWWEEKDAYS: ['S', 'M', 'T', 'K', 'T', 'P', 'L'], STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'K', 'T', 'P', 'L'], SHORTQUARTERS: ['1. nelj.', '2. nelj.', '3. nelj.', '4. nelj.'], QUARTERS: ['1. neljännes', '2. neljännes', '3. neljännes', - '4. neljännes'], + '4. neljännes'], AMPMS: ['ap.', 'ip.'], - DATEFORMATS: ['cccc, d. MMMM y', 'd. MMMM y', 'd.M.yyyy', 'd.M.yyyy'], + DATEFORMATS: ['cccc d. MMMM y', 'd. MMMM y', 'd.M.y', 'd.M.y'], TIMEFORMATS: ['H.mm.ss zzzz', 'H.mm.ss z', 'H.mm.ss', 'H.mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -5461,29 +7932,30 @@ goog.i18n.DateTimeSymbols_fil_PH = { ERANAMES: ['BC', 'AD'], NARROWMONTHS: ['E', 'P', 'M', 'A', 'M', 'H', 'H', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['E', 'P', 'M', 'A', 'M', 'H', 'H', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Enero', 'Pebrero', 'Marso', 'Abril', 'Mayo', 'Hunyo', 'Hulyo', - 'Agosto', 'Setyembre', 'Oktubre', 'Nobyembre', 'Disyembre'], + 'Agosto', 'Setyembre', 'Oktubre', 'Nobyembre', 'Disyembre'], STANDALONEMONTHS: ['Enero', 'Pebrero', 'Marso', 'Abril', 'Mayo', 'Hunyo', - 'Hulyo', 'Agosto', 'Setyembre', 'Oktubre', 'Nobyembre', 'Disyembre'], + 'Hulyo', 'Agosto', 'Setyembre', 'Oktubre', 'Nobyembre', 'Disyembre'], SHORTMONTHS: ['Ene', 'Peb', 'Mar', 'Abr', 'May', 'Hun', 'Hul', 'Ago', 'Set', - 'Okt', 'Nob', 'Dis'], + 'Okt', 'Nob', 'Dis'], STANDALONESHORTMONTHS: ['Ene', 'Peb', 'Mar', 'Abr', 'May', 'Hun', 'Hul', - 'Ago', 'Set', 'Okt', 'Nob', 'Dis'], + 'Ago', 'Set', 'Okt', 'Nob', 'Dis'], WEEKDAYS: ['Linggo', 'Lunes', 'Martes', 'Miyerkules', 'Huwebes', 'Biyernes', - 'Sabado'], + 'Sabado'], STANDALONEWEEKDAYS: ['Linggo', 'Lunes', 'Martes', 'Miyerkules', 'Huwebes', - 'Biyernes', 'Sabado'], + 'Biyernes', 'Sabado'], SHORTWEEKDAYS: ['Lin', 'Lun', 'Mar', 'Mye', 'Huw', 'Bye', 'Sab'], STANDALONESHORTWEEKDAYS: ['Lin', 'Lun', 'Mar', 'Miy', 'Huw', 'Biy', 'Sab'], NARROWWEEKDAYS: ['L', 'L', 'M', 'M', 'H', 'B', 'S'], STANDALONENARROWWEEKDAYS: ['L', 'L', 'M', 'M', 'H', 'B', 'S'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['ika-1 sangkapat', 'ika-2 sangkapat', 'ika-3 quarter', - 'ika-4 na quarter'], + 'ika-4 na quarter'], AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, MMMM dd y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -5498,29 +7970,30 @@ goog.i18n.DateTimeSymbols_fo = { ERANAMES: ['fyrir Krist', 'eftir Krist'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['januar', 'februar', 'mars', 'apríl', 'mai', 'juni', 'juli', - 'august', 'september', 'oktober', 'november', 'desember'], + 'august', 'september', 'oktober', 'november', 'desember'], STANDALONEMONTHS: ['januar', 'februar', 'mars', 'apríl', 'mai', 'juni', - 'juli', 'august', 'september', 'oktober', 'november', 'desember'], + 'juli', 'august', 'september', 'oktober', 'november', 'desember'], SHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'mai', 'jun', 'jul', 'aug', 'sep', - 'okt', 'nov', 'des'], + 'okt', 'nov', 'des'], STANDALONESHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'mai', 'jun', 'jul', - 'aug', 'sep', 'okt', 'nov', 'des'], + 'aug', 'sep', 'okt', 'nov', 'des'], WEEKDAYS: ['sunnudagur', 'mánadagur', 'týsdagur', 'mikudagur', 'hósdagur', - 'fríggjadagur', 'leygardagur'], + 'fríggjadagur', 'leygardagur'], STANDALONEWEEKDAYS: ['sunnudagur', 'mánadagur', 'týsdagur', 'mikudagur', - 'hósdagur', 'fríggjadagur', 'leygardagur'], + 'hósdagur', 'fríggjadagur', 'leygardagur'], SHORTWEEKDAYS: ['sun', 'mán', 'týs', 'mik', 'hós', 'frí', 'ley'], STANDALONESHORTWEEKDAYS: ['sun', 'mán', 'týs', 'mik', 'hós', 'frí', - 'ley'], + 'ley'], NARROWWEEKDAYS: ['S', 'M', 'T', 'M', 'H', 'F', 'L'], STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'M', 'H', 'F', 'L'], SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], QUARTERS: ['1. kvartal', '2. kvartal', '3. kvartal', '4. kvartal'], AMPMS: ['um fyrrapartur', 'um seinnapartur'], - DATEFORMATS: ['EEEE dd MMMM y', 'd. MMM y', 'dd-MM-yyyy', 'dd-MM-yy'], + DATEFORMATS: ['EEEE dd MMMM y', 'd. MMM y', 'dd-MM-y', 'dd-MM-yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -5541,22 +8014,22 @@ goog.i18n.DateTimeSymbols_fr_BE = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], @@ -5564,7 +8037,8 @@ goog.i18n.DateTimeSymbols_fr_BE = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/MM/yy'], TIMEFORMATS: ['H \'h\' mm \'min\' ss \'s\' zzzz', 'HH:mm:ss z', 'HH:mm:ss', - 'HH:mm'], + 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -5579,29 +8053,30 @@ goog.i18n.DateTimeSymbols_fr_BF = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -5616,29 +8091,30 @@ goog.i18n.DateTimeSymbols_fr_BI = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -5653,29 +8129,30 @@ goog.i18n.DateTimeSymbols_fr_BJ = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -5690,29 +8167,30 @@ goog.i18n.DateTimeSymbols_fr_BL = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -5727,29 +8205,30 @@ goog.i18n.DateTimeSymbols_fr_CD = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -5764,29 +8243,30 @@ goog.i18n.DateTimeSymbols_fr_CF = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -5801,29 +8281,30 @@ goog.i18n.DateTimeSymbols_fr_CG = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -5838,22 +8319,22 @@ goog.i18n.DateTimeSymbols_fr_CH = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], @@ -5861,6 +8342,7 @@ goog.i18n.DateTimeSymbols_fr_CH = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd.MM.yy'], TIMEFORMATS: ['HH.mm:ss \'h\' zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -5875,29 +8357,30 @@ goog.i18n.DateTimeSymbols_fr_CI = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -5912,29 +8395,30 @@ goog.i18n.DateTimeSymbols_fr_CM = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -5949,35 +8433,74 @@ goog.i18n.DateTimeSymbols_fr_DJ = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 5, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 4 }; +/** + * Date/time formatting symbols for locale fr_DZ. + */ +goog.i18n.DateTimeSymbols_fr_DZ = { + ERAS: ['av. J.-C.', 'ap. J.-C.'], + ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', + 'samedi'], + STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', + 'vendredi', 'samedi'], + SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], + STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', + 'sam.'], + NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], + STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], + SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], + QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 5, + WEEKENDRANGE: [3, 4], + FIRSTWEEKCUTOFFDAY: 4 +}; + + /** * Date/time formatting symbols for locale fr_FR. */ @@ -5986,29 +8509,30 @@ goog.i18n.DateTimeSymbols_fr_FR = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -6023,29 +8547,30 @@ goog.i18n.DateTimeSymbols_fr_GA = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -6060,29 +8585,30 @@ goog.i18n.DateTimeSymbols_fr_GF = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -6097,29 +8623,30 @@ goog.i18n.DateTimeSymbols_fr_GN = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -6134,29 +8661,30 @@ goog.i18n.DateTimeSymbols_fr_GP = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -6171,29 +8699,68 @@ goog.i18n.DateTimeSymbols_fr_GQ = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale fr_HT. + */ +goog.i18n.DateTimeSymbols_fr_HT = { + ERAS: ['av. J.-C.', 'ap. J.-C.'], + ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', + 'samedi'], + STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', + 'vendredi', 'samedi'], + SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], + STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', + 'sam.'], + NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], + STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], + SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], + QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -6208,29 +8775,30 @@ goog.i18n.DateTimeSymbols_fr_KM = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -6245,35 +8813,74 @@ goog.i18n.DateTimeSymbols_fr_LU = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 }; +/** + * Date/time formatting symbols for locale fr_MA. + */ +goog.i18n.DateTimeSymbols_fr_MA = { + ERAS: ['av. J.-C.', 'ap. J.-C.'], + ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', + 'samedi'], + STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', + 'vendredi', 'samedi'], + SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], + STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', + 'sam.'], + NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], + STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], + SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], + QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 5, + WEEKENDRANGE: [4, 5], + FIRSTWEEKCUTOFFDAY: 4 +}; + + /** * Date/time formatting symbols for locale fr_MC. */ @@ -6282,29 +8889,30 @@ goog.i18n.DateTimeSymbols_fr_MC = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -6319,29 +8927,30 @@ goog.i18n.DateTimeSymbols_fr_MF = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -6356,29 +8965,30 @@ goog.i18n.DateTimeSymbols_fr_MG = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -6393,29 +9003,30 @@ goog.i18n.DateTimeSymbols_fr_ML = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -6430,35 +9041,150 @@ goog.i18n.DateTimeSymbols_fr_MQ = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 }; +/** + * Date/time formatting symbols for locale fr_MR. + */ +goog.i18n.DateTimeSymbols_fr_MR = { + ERAS: ['av. J.-C.', 'ap. J.-C.'], + ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', + 'samedi'], + STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', + 'vendredi', 'samedi'], + SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], + STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', + 'sam.'], + NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], + STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], + SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], + QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale fr_MU. + */ +goog.i18n.DateTimeSymbols_fr_MU = { + ERAS: ['av. J.-C.', 'ap. J.-C.'], + ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', + 'samedi'], + STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', + 'vendredi', 'samedi'], + SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], + STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', + 'sam.'], + NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], + STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], + SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], + QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale fr_NC. + */ +goog.i18n.DateTimeSymbols_fr_NC = { + ERAS: ['av. J.-C.', 'ap. J.-C.'], + ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', + 'samedi'], + STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', + 'vendredi', 'samedi'], + SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], + STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', + 'sam.'], + NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], + STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], + SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], + QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + /** * Date/time formatting symbols for locale fr_NE. */ @@ -6467,29 +9193,68 @@ goog.i18n.DateTimeSymbols_fr_NE = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale fr_PF. + */ +goog.i18n.DateTimeSymbols_fr_PF = { + ERAS: ['av. J.-C.', 'ap. J.-C.'], + ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', + 'samedi'], + STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', + 'vendredi', 'samedi'], + SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], + STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', + 'sam.'], + NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], + STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], + SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], + QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -6504,29 +9269,30 @@ goog.i18n.DateTimeSymbols_fr_RE = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -6541,29 +9307,68 @@ goog.i18n.DateTimeSymbols_fr_RW = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale fr_SC. + */ +goog.i18n.DateTimeSymbols_fr_SC = { + ERAS: ['av. J.-C.', 'ap. J.-C.'], + ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', + 'samedi'], + STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', + 'vendredi', 'samedi'], + SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], + STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', + 'sam.'], + NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], + STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], + SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], + QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -6578,35 +9383,74 @@ goog.i18n.DateTimeSymbols_fr_SN = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 }; +/** + * Date/time formatting symbols for locale fr_SY. + */ +goog.i18n.DateTimeSymbols_fr_SY = { + ERAS: ['av. J.-C.', 'ap. J.-C.'], + ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', + 'samedi'], + STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', + 'vendredi', 'samedi'], + SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], + STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', + 'sam.'], + NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], + STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], + SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], + QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 5, + WEEKENDRANGE: [4, 5], + FIRSTWEEKCUTOFFDAY: 4 +}; + + /** * Date/time formatting symbols for locale fr_TD. */ @@ -6615,29 +9459,30 @@ goog.i18n.DateTimeSymbols_fr_TD = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -6652,29 +9497,106 @@ goog.i18n.DateTimeSymbols_fr_TG = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale fr_TN. + */ +goog.i18n.DateTimeSymbols_fr_TN = { + ERAS: ['av. J.-C.', 'ap. J.-C.'], + ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', + 'samedi'], + STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', + 'vendredi', 'samedi'], + SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], + STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', + 'sam.'], + NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], + STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], + SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], + QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: [4, 5], + FIRSTWEEKCUTOFFDAY: 5 +}; + + +/** + * Date/time formatting symbols for locale fr_VU. + */ +goog.i18n.DateTimeSymbols_fr_VU = { + ERAS: ['av. J.-C.', 'ap. J.-C.'], + ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', + 'samedi'], + STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', + 'vendredi', 'samedi'], + SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], + STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', + 'sam.'], + NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], + STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], + SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], + QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -6689,29 +9611,30 @@ goog.i18n.DateTimeSymbols_fr_YT = { ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', - 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'août', 'septembre', 'octobre', 'novembre', 'décembre'], STANDALONEMONTHS: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', - 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], + 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], SHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', - 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'août', 'sept.', 'oct.', 'nov.', 'déc.'], STANDALONESHORTMONTHS: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', - 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], + 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], WEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', - 'samedi'], + 'samedi'], STANDALONEWEEKDAYS: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', - 'vendredi', 'samedi'], + 'vendredi', 'samedi'], SHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], STANDALONESHORTWEEKDAYS: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', - 'sam.'], + 'sam.'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -6726,30 +9649,31 @@ goog.i18n.DateTimeSymbols_fur = { ERANAMES: ['pdC', 'ddC'], NARROWMONTHS: ['Z', 'F', 'M', 'A', 'M', 'J', 'L', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['Z', 'F', 'M', 'A', 'M', 'J', 'L', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Zenâr', 'Fevrâr', 'Març', 'Avrîl', 'Mai', 'Jugn', 'Lui', - 'Avost', 'Setembar', 'Otubar', 'Novembar', 'Dicembar'], + 'Avost', 'Setembar', 'Otubar', 'Novembar', 'Dicembar'], STANDALONEMONTHS: ['Zenâr', 'Fevrâr', 'Març', 'Avrîl', 'Mai', 'Jugn', - 'Lui', 'Avost', 'Setembar', 'Otubar', 'Novembar', 'Dicembar'], + 'Lui', 'Avost', 'Setembar', 'Otubar', 'Novembar', 'Dicembar'], SHORTMONTHS: ['Zen', 'Fev', 'Mar', 'Avr', 'Mai', 'Jug', 'Lui', 'Avo', 'Set', - 'Otu', 'Nov', 'Dic'], + 'Otu', 'Nov', 'Dic'], STANDALONESHORTMONTHS: ['Zen', 'Fev', 'Mar', 'Avr', 'Mai', 'Jug', 'Lui', - 'Avo', 'Set', 'Otu', 'Nov', 'Dic'], + 'Avo', 'Set', 'Otu', 'Nov', 'Dic'], WEEKDAYS: ['domenie', 'lunis', 'martars', 'miercus', 'joibe', 'vinars', - 'sabide'], + 'sabide'], STANDALONEWEEKDAYS: ['domenie', 'lunis', 'martars', 'miercus', 'joibe', - 'vinars', 'sabide'], + 'vinars', 'sabide'], SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mie', 'joi', 'vin', 'sab'], STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mie', 'joi', 'vin', 'sab'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['Prin trimestri', 'Secont trimestri', 'Tierç trimestri', - 'Cuart trimestri'], + 'Cuart trimestri'], AMPMS: ['a.', 'p.'], DATEFORMATS: ['EEEE d \'di\' MMMM \'dal\' y', 'd \'di\' MMMM \'dal\' y', - 'dd/MM/yyyy', 'dd/MM/yy'], + 'dd/MM/y', 'dd/MM/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -6770,34 +9694,35 @@ goog.i18n.DateTimeSymbols_ga = { ERANAMES: ['Roimh Chríost', 'Anno Domini'], NARROWMONTHS: ['E', 'F', 'M', 'A', 'B', 'M', 'I', 'L', 'M', 'D', 'S', 'N'], STANDALONENARROWMONTHS: ['E', 'F', 'M', 'A', 'B', 'M', 'I', 'L', 'M', 'D', - 'S', 'N'], + 'S', 'N'], MONTHS: ['Eanáir', 'Feabhra', 'Márta', 'Aibreán', 'Bealtaine', 'Meitheamh', - 'Iúil', 'Lúnasa', 'Meán Fómhair', 'Deireadh Fómhair', 'Samhain', - 'Nollaig'], + 'Iúil', 'Lúnasa', 'Meán Fómhair', 'Deireadh Fómhair', 'Samhain', + 'Nollaig'], STANDALONEMONTHS: ['Eanáir', 'Feabhra', 'Márta', 'Aibreán', 'Bealtaine', - 'Meitheamh', 'Iúil', 'Lúnasa', 'Meán Fómhair', 'Deireadh Fómhair', - 'Samhain', 'Nollaig'], + 'Meitheamh', 'Iúil', 'Lúnasa', 'Meán Fómhair', 'Deireadh Fómhair', + 'Samhain', 'Nollaig'], SHORTMONTHS: ['Ean', 'Feabh', 'Márta', 'Aib', 'Beal', 'Meith', 'Iúil', - 'Lún', 'MFómh', 'DFómh', 'Samh', 'Noll'], + 'Lún', 'MFómh', 'DFómh', 'Samh', 'Noll'], STANDALONESHORTMONTHS: ['Ean', 'Feabh', 'Márta', 'Aib', 'Beal', 'Meith', - 'Iúil', 'Lún', 'MFómh', 'DFómh', 'Samh', 'Noll'], + 'Iúil', 'Lún', 'MFómh', 'DFómh', 'Samh', 'Noll'], WEEKDAYS: ['Dé Domhnaigh', 'Dé Luain', 'Dé Máirt', 'Dé Céadaoin', - 'Déardaoin', 'Dé hAoine', 'Dé Sathairn'], + 'Déardaoin', 'Dé hAoine', 'Dé Sathairn'], STANDALONEWEEKDAYS: ['Dé Domhnaigh', 'Dé Luain', 'Dé Máirt', - 'Dé Céadaoin', 'Déardaoin', 'Dé hAoine', 'Dé Sathairn'], + 'Dé Céadaoin', 'Déardaoin', 'Dé hAoine', 'Dé Sathairn'], SHORTWEEKDAYS: ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'], STANDALONESHORTWEEKDAYS: ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', - 'Sath'], + 'Sath'], NARROWWEEKDAYS: ['D', 'L', 'M', 'C', 'D', 'A', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'C', 'D', 'A', 'S'], SHORTQUARTERS: ['R1', 'R2', 'R3', 'R4'], QUARTERS: ['1ú ráithe', '2ú ráithe', '3ú ráithe', '4ú ráithe'], AMPMS: ['a.m.', 'p.m.'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], - FIRSTDAYOFWEEK: 0, + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], - FIRSTWEEKCUTOFFDAY: 3 + FIRSTWEEKCUTOFFDAY: 2 }; @@ -6807,6 +9732,52 @@ goog.i18n.DateTimeSymbols_ga = { goog.i18n.DateTimeSymbols_ga_IE = goog.i18n.DateTimeSymbols_ga; +/** + * Date/time formatting symbols for locale gd. + */ +goog.i18n.DateTimeSymbols_gd = { + ERAS: ['RC', 'AD'], + ERANAMES: ['Ro Chrìost', 'Anno Domini'], + NARROWMONTHS: ['FA', 'GE', 'MÀ', 'GI', 'CÈ', 'ÒG', 'IU', 'LÙ', 'SU', + 'DÀ', 'SA', 'DÙ'], + STANDALONENARROWMONTHS: ['FA', 'GE', 'MÀ', 'GI', 'CÈ', 'ÒG', 'IU', 'LÙ', + 'SU', 'DÀ', 'SA', 'DÙ'], + MONTHS: ['Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', + 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', + 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd'], + STANDALONEMONTHS: ['Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', + 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', + 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd'], + SHORTMONTHS: ['Faoi', 'Gearr', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', + 'Lùna', 'Sult', 'Dàmh', 'Samh', 'Dùbh'], + STANDALONESHORTMONTHS: ['Faoi', 'Gearr', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', + 'Iuch', 'Lùna', 'Sult', 'Dàmh', 'Samh', 'Dùbh'], + WEEKDAYS: ['DiDòmhnaich', 'DiLuain', 'DiMàirt', 'DiCiadain', 'Diardaoin', + 'DihAoine', 'DiSathairne'], + STANDALONEWEEKDAYS: ['DiDòmhnaich', 'DiLuain', 'DiMàirt', 'DiCiadain', + 'Diardaoin', 'DihAoine', 'DiSathairne'], + SHORTWEEKDAYS: ['DiD', 'DiL', 'DiM', 'DiC', 'Dia', 'Dih', 'DiS'], + STANDALONESHORTWEEKDAYS: ['DiD', 'DiL', 'DiM', 'DiC', 'Dia', 'Dih', 'DiS'], + NARROWWEEKDAYS: ['D', 'L', 'M', 'C', 'A', 'H', 'S'], + STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'C', 'A', 'H', 'S'], + SHORTQUARTERS: ['R1', 'R2', 'R3', 'R4'], + QUARTERS: ['1d ràithe', '2na ràithe', '3as ràithe', '4mh ràithe'], + AMPMS: ['m', 'f'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 3 +}; + + +/** + * Date/time formatting symbols for locale gd_GB. + */ +goog.i18n.DateTimeSymbols_gd_GB = goog.i18n.DateTimeSymbols_gd; + + /** * Date/time formatting symbols for locale gl_ES. */ @@ -6815,19 +9786,19 @@ goog.i18n.DateTimeSymbols_gl_ES = { ERANAMES: ['antes de Cristo', 'despois de Cristo'], NARROWMONTHS: ['X', 'F', 'M', 'A', 'M', 'X', 'X', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['X', 'F', 'M', 'A', 'M', 'X', 'X', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Xaneiro', 'Febreiro', 'Marzo', 'Abril', 'Maio', 'Xuño', 'Xullo', - 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Decembro'], + 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Decembro'], STANDALONEMONTHS: ['Xaneiro', 'Febreiro', 'Marzo', 'Abril', 'Maio', 'Xuño', - 'Xullo', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Decembro'], + 'Xullo', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Decembro'], SHORTMONTHS: ['Xan', 'Feb', 'Mar', 'Abr', 'Mai', 'Xuñ', 'Xul', 'Ago', 'Set', - 'Out', 'Nov', 'Dec'], + 'Out', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Xan', 'Feb', 'Mar', 'Abr', 'Mai', 'Xuñ', 'Xul', - 'Ago', 'Set', 'Out', 'Nov', 'Dec'], + 'Ago', 'Set', 'Out', 'Nov', 'Dec'], WEEKDAYS: ['Domingo', 'Luns', 'Martes', 'Mércores', 'Xoves', 'Venres', - 'Sábado'], + 'Sábado'], STANDALONEWEEKDAYS: ['Domingo', 'Luns', 'Martes', 'Mércores', 'Xoves', - 'Venres', 'Sábado'], + 'Venres', 'Sábado'], SHORTWEEKDAYS: ['Dom', 'Lun', 'Mar', 'Mér', 'Xov', 'Ven', 'Sáb'], STANDALONESHORTWEEKDAYS: ['Dom', 'Lun', 'Mar', 'Mér', 'Xov', 'Ven', 'Sáb'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'X', 'V', 'S'], @@ -6837,6 +9808,7 @@ goog.i18n.DateTimeSymbols_gl_ES = { AMPMS: ['a.m.', 'p.m.'], DATEFORMATS: ['EEEE dd MMMM y', 'dd MMMM y', 'd MMM, y', 'dd/MM/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -6851,19 +9823,19 @@ goog.i18n.DateTimeSymbols_gsw_CH = { ERANAMES: ['v. Chr.', 'n. Chr.'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', - 'Auguscht', 'Septämber', 'Oktoober', 'Novämber', 'Dezämber'], + 'Auguscht', 'Septämber', 'Oktoober', 'Novämber', 'Dezämber'], STANDALONEMONTHS: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', - 'Juli', 'Auguscht', 'Septämber', 'Oktoober', 'Novämber', 'Dezämber'], + 'Juli', 'Auguscht', 'Septämber', 'Oktoober', 'Novämber', 'Dezämber'], SHORTMONTHS: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', - 'Okt', 'Nov', 'Dez'], + 'Okt', 'Nov', 'Dez'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', - 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'], + 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'], WEEKDAYS: ['Sunntig', 'Määntig', 'Ziischtig', 'Mittwuch', 'Dunschtig', - 'Friitig', 'Samschtig'], + 'Friitig', 'Samschtig'], STANDALONEWEEKDAYS: ['Sunntig', 'Määntig', 'Ziischtig', 'Mittwuch', - 'Dunschtig', 'Friitig', 'Samschtig'], + 'Dunschtig', 'Friitig', 'Samschtig'], SHORTWEEKDAYS: ['Su.', 'Mä.', 'Zi.', 'Mi.', 'Du.', 'Fr.', 'Sa.'], STANDALONESHORTWEEKDAYS: ['Su.', 'Mä.', 'Zi.', 'Mi.', 'Du.', 'Fr.', 'Sa.'], NARROWWEEKDAYS: ['S', 'M', 'D', 'M', 'D', 'F', 'S'], @@ -6871,8 +9843,9 @@ goog.i18n.DateTimeSymbols_gsw_CH = { SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['1. Quartal', '2. Quartal', '3. Quartal', '4. Quartal'], AMPMS: ['vorm.', 'nam.'], - DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'dd.MM.yyyy', 'dd.MM.yy'], + DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'dd.MM.y', 'dd.MM.yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -6884,51 +9857,51 @@ goog.i18n.DateTimeSymbols_gsw_CH = { */ goog.i18n.DateTimeSymbols_gu_IN = { ERAS: ['ઈલુના જન્મ પહેસાં', - 'ઇસવીસન'], + 'ઇસવીસન'], ERANAMES: ['ઈસવીસન પૂર્વે', 'ઇસવીસન'], NARROWMONTHS: ['જા', 'ફે', 'મા', 'એ', 'મે', 'જૂ', - 'જુ', 'ઑ', 'સ', 'ઑ', 'ન', 'ડિ'], + 'જુ', 'ઑ', 'સ', 'ઑ', 'ન', 'ડિ'], STANDALONENARROWMONTHS: ['જા', 'ફે', 'મા', 'એ', 'મે', - 'જૂ', 'જુ', 'ઑ', 'સ', 'ઑ', 'ન', 'ડિ'], + 'જૂ', 'જુ', 'ઑ', 'સ', 'ઑ', 'ન', 'ડિ'], MONTHS: ['જાન્યુઆરી', 'ફેબ્રુઆરી', - 'માર્ચ', 'એપ્રિલ', 'મે', 'જૂન', - 'જુલાઈ', 'ઑગસ્ટ', 'સપ્ટેમ્બર', - 'ઑક્ટોબર', 'નવેમ્બર', - 'ડિસેમ્બર'], + 'માર્ચ', 'એપ્રિલ', 'મે', 'જૂન', + 'જુલાઈ', 'ઑગસ્ટ', 'સપ્ટેમ્બર', + 'ઑક્ટોબર', 'નવેમ્બર', + 'ડિસેમ્બર'], STANDALONEMONTHS: ['જાન્યુઆરી', - 'ફેબ્રુઆરી', 'માર્ચ', 'એપ્રિલ', - 'મે', 'જૂન', 'જુલાઈ', 'ઑગસ્ટ', - 'સપ્ટેમ્બર', 'ઑક્ટોબર', - 'નવેમ્બર', 'ડિસેમ્બર'], + 'ફેબ્રુઆરી', 'માર્ચ', 'એપ્રિલ', + 'મે', 'જૂન', 'જુલાઈ', 'ઑગસ્ટ', + 'સપ્ટેમ્બર', 'ઑક્ટોબર', + 'નવેમ્બર', 'ડિસેમ્બર'], SHORTMONTHS: ['જાન્યુ', 'ફેબ્રુ', 'માર્ચ', - 'એપ્રિલ', 'મે', 'જૂન', 'જુલાઈ', - 'ઑગસ્ટ', 'સપ્ટે', 'ઑક્ટો', 'નવે', - 'ડિસે'], + 'એપ્રિલ', 'મે', 'જૂન', 'જુલાઈ', + 'ઑગસ્ટ', 'સપ્ટે', 'ઑક્ટો', 'નવે', + 'ડિસે'], STANDALONESHORTMONTHS: ['જાન્યુ', 'ફેબ્રુ', - 'માર્ચ', 'એપ્રિલ', 'મે', 'જૂન', - 'જુલાઈ', 'ઑગસ્ટ', 'સપ્ટે', - 'ઑક્ટો', 'નવે', 'ડિસે'], + 'માર્ચ', 'એપ્રિલ', 'મે', 'જૂન', + 'જુલાઈ', 'ઑગ', 'સપ્ટે', 'ઑક્ટો', + 'નવે', 'ડિસે'], WEEKDAYS: ['રવિવાર', 'સોમવાર', - 'મંગળવાર', 'બુધવાર', 'ગુરુવાર', - 'શુક્રવાર', 'શનિવાર'], + 'મંગળવાર', 'બુધવાર', 'ગુરુવાર', + 'શુક્રવાર', 'શનિવાર'], STANDALONEWEEKDAYS: ['રવિવાર', 'સોમવાર', - 'મંગળવાર', 'બુધવાર', 'ગુરુવાર', - 'શુક્રવાર', 'શનિવાર'], + 'મંગળવાર', 'બુધવાર', 'ગુરુવાર', + 'શુક્રવાર', 'શનિવાર'], SHORTWEEKDAYS: ['રવિ', 'સોમ', 'મંગળ', 'બુધ', - 'ગુરુ', 'શુક્ર', 'શનિ'], + 'ગુરુ', 'શુક્ર', 'શનિ'], STANDALONESHORTWEEKDAYS: ['રવિ', 'સોમ', 'મંગળ', - 'બુધ', 'ગુરુ', 'શુક્ર', 'શનિ'], + 'બુધ', 'ગુરુ', 'શુક્ર', 'શનિ'], NARROWWEEKDAYS: ['ર', 'સો', 'મં', 'બુ', 'ગુ', 'શુ', - 'શ'], + 'શ'], STANDALONENARROWWEEKDAYS: ['ર', 'સો', 'મં', 'બુ', 'ગુ', - 'શુ', 'શ'], - SHORTQUARTERS: ['પેહલા હંત 1', 'Q2', 'Q3', - 'ચૌતા હંત 4'], - QUARTERS: ['પેહલા હંત 1', 'ડૂસઋા હંત 2', - 'તીસઋા હંત 3', 'ચૌતા હંત 4'], - AMPMS: ['am', 'pm'], + 'શુ', 'શ'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['પહેલો હંત', 'બીજો હંત', + 'ત્રીજો હંત', 'ચોથો હંત'], + AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, d MMMM, y', 'd MMMM, y', 'd MMM, y', 'd-MM-yy'], TIMEFORMATS: ['hh:mm:ss a zzzz', 'hh:mm:ss a z', 'hh:mm:ss a', 'hh:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [6, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -6943,29 +9916,30 @@ goog.i18n.DateTimeSymbols_guz = { ERANAMES: ['Yeso ataiborwa', 'Yeso kaiboirwe'], NARROWMONTHS: ['C', 'F', 'M', 'A', 'M', 'J', 'C', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['C', 'F', 'M', 'A', 'M', 'J', 'C', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Chanuari', 'Feburari', 'Machi', 'Apiriri', 'Mei', 'Juni', 'Chulai', - 'Agosti', 'Septemba', 'Okitoba', 'Nobemba', 'Disemba'], + 'Agosti', 'Septemba', 'Okitoba', 'Nobemba', 'Disemba'], STANDALONEMONTHS: ['Chanuari', 'Feburari', 'Machi', 'Apiriri', 'Mei', 'Juni', - 'Chulai', 'Agosti', 'Septemba', 'Okitoba', 'Nobemba', 'Disemba'], + 'Chulai', 'Agosti', 'Septemba', 'Okitoba', 'Nobemba', 'Disemba'], SHORTMONTHS: ['Can', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Cul', 'Agt', 'Sep', - 'Okt', 'Nob', 'Dis'], + 'Okt', 'Nob', 'Dis'], STANDALONESHORTMONTHS: ['Can', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Cul', - 'Agt', 'Sep', 'Okt', 'Nob', 'Dis'], + 'Agt', 'Sep', 'Okt', 'Nob', 'Dis'], WEEKDAYS: ['Chumapiri', 'Chumatato', 'Chumaine', 'Chumatano', 'Aramisi', - 'Ichuma', 'Esabato'], + 'Ichuma', 'Esabato'], STANDALONEWEEKDAYS: ['Chumapiri', 'Chumatato', 'Chumaine', 'Chumatano', - 'Aramisi', 'Ichuma', 'Esabato'], + 'Aramisi', 'Ichuma', 'Esabato'], SHORTWEEKDAYS: ['Cpr', 'Ctt', 'Cmn', 'Cmt', 'Ars', 'Icm', 'Est'], STANDALONESHORTWEEKDAYS: ['Cpr', 'Ctt', 'Cmn', 'Cmt', 'Ars', 'Icm', 'Est'], NARROWWEEKDAYS: ['C', 'C', 'C', 'C', 'A', 'I', 'E'], STANDALONENARROWWEEKDAYS: ['C', 'C', 'C', 'C', 'A', 'I', 'E'], SHORTQUARTERS: ['E1', 'E2', 'E3', 'E4'], QUARTERS: ['Erobo entang\'ani', 'Erobo yakabere', 'Erobo yagatato', - 'Erobo yakane'], + 'Erobo yakane'], AMPMS: ['Ma/Mo', 'Mambia/Mog'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -6986,31 +9960,32 @@ goog.i18n.DateTimeSymbols_gv = { ERANAMES: ['RC', 'AD'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['Jerrey-geuree', 'Toshiaght-arree', 'Mayrnt', 'Averil', 'Boaldyn', - 'Mean-souree', 'Jerrey-souree', 'Luanistyn', 'Mean-fouyir', - 'Jerrey-fouyir', 'Mee Houney', 'Mee ny Nollick'], + 'Mean-souree', 'Jerrey-souree', 'Luanistyn', 'Mean-fouyir', 'Jerrey-fouyir', + 'Mee Houney', 'Mee ny Nollick'], STANDALONEMONTHS: ['Jerrey-geuree', 'Toshiaght-arree', 'Mayrnt', 'Averil', - 'Boaldyn', 'Mean-souree', 'Jerrey-souree', 'Luanistyn', 'Mean-fouyir', - 'Jerrey-fouyir', 'Mee Houney', 'Mee ny Nollick'], + 'Boaldyn', 'Mean-souree', 'Jerrey-souree', 'Luanistyn', 'Mean-fouyir', + 'Jerrey-fouyir', 'Mee Houney', 'Mee ny Nollick'], SHORTMONTHS: ['J-guer', 'T-arree', 'Mayrnt', 'Avrril', 'Boaldyn', 'M-souree', - 'J-souree', 'Luanistyn', 'M-fouyir', 'J-fouyir', 'M.Houney', 'M.Nollick'], + 'J-souree', 'Luanistyn', 'M-fouyir', 'J-fouyir', 'M.Houney', 'M.Nollick'], STANDALONESHORTMONTHS: ['J-guer', 'T-arree', 'Mayrnt', 'Avrril', 'Boaldyn', - 'M-souree', 'J-souree', 'Luanistyn', 'M-fouyir', 'J-fouyir', 'M.Houney', - 'M.Nollick'], + 'M-souree', 'J-souree', 'Luanistyn', 'M-fouyir', 'J-fouyir', 'M.Houney', + 'M.Nollick'], WEEKDAYS: ['Jedoonee', 'Jelhein', 'Jemayrt', 'Jercean', 'Jerdein', 'Jeheiney', - 'Jesarn'], + 'Jesarn'], STANDALONEWEEKDAYS: ['Jedoonee', 'Jelhein', 'Jemayrt', 'Jercean', 'Jerdein', - 'Jeheiney', 'Jesarn'], + 'Jeheiney', 'Jesarn'], SHORTWEEKDAYS: ['Jed', 'Jel', 'Jem', 'Jerc', 'Jerd', 'Jeh', 'Jes'], STANDALONESHORTWEEKDAYS: ['Jed', 'Jel', 'Jem', 'Jerc', 'Jerd', 'Jeh', 'Jes'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['a.m.', 'p.m.'], DATEFORMATS: ['EEEE dd MMMM y', 'dd MMMM y', 'MMM dd, y', 'dd/MM/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -7031,29 +10006,30 @@ goog.i18n.DateTimeSymbols_ha = { ERANAMES: ['Kafin haihuwar annab', 'Bayan haihuwar annab'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'Y', 'Y', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'Y', 'Y', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Janairu', 'Faburairu', 'Maris', 'Afirilu', 'Mayu', 'Yuni', 'Yuli', - 'Agusta', 'Satumba', 'Oktoba', 'Nuwamba', 'Disamba'], + 'Agusta', 'Satumba', 'Oktoba', 'Nuwamba', 'Disamba'], STANDALONEMONTHS: ['Janairu', 'Faburairu', 'Maris', 'Afirilu', 'Mayu', 'Yuni', - 'Yuli', 'Agusta', 'Satumba', 'Oktoba', 'Nuwamba', 'Disamba'], + 'Yuli', 'Agusta', 'Satumba', 'Oktoba', 'Nuwamba', 'Disamba'], SHORTMONTHS: ['Jan', 'Fab', 'Mar', 'Afi', 'May', 'Yun', 'Yul', 'Agu', 'Sat', - 'Okt', 'Nuw', 'Dis'], + 'Okt', 'Nuw', 'Dis'], STANDALONESHORTMONTHS: ['Jan', 'Fab', 'Mar', 'Afi', 'May', 'Yun', 'Yul', - 'Agu', 'Sat', 'Okt', 'Nuw', 'Dis'], + 'Agu', 'Sat', 'Okt', 'Nuw', 'Dis'], WEEKDAYS: ['Lahadi', 'Litinin', 'Talata', 'Laraba', 'Alhamis', 'Jumma\'a', - 'Asabar'], + 'Asabar'], STANDALONEWEEKDAYS: ['Lahadi', 'Litinin', 'Talata', 'Laraba', 'Alhamis', - 'Jumma\'a', 'Asabar'], + 'Jumma\'a', 'Asabar'], SHORTWEEKDAYS: ['Lh', 'Li', 'Ta', 'Lr', 'Al', 'Ju', 'As'], STANDALONESHORTWEEKDAYS: ['Lh', 'Li', 'Ta', 'Lr', 'Al', 'Ju', 'As'], NARROWWEEKDAYS: ['L', 'L', 'T', 'L', 'A', 'J', 'A'], STANDALONENARROWWEEKDAYS: ['L', 'L', 'T', 'L', 'A', 'J', 'A'], SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], QUARTERS: ['Kwata na ɗaya', 'Kwata na biyu', 'Kwata na uku', - 'Kwata na huɗu'], + 'Kwata na huɗu'], AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, d MMMM, y', 'd MMMM, y', 'd MMM, y', 'd/M/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -7092,29 +10068,30 @@ goog.i18n.DateTimeSymbols_haw_US = { ERANAMES: ['BCE', 'CE'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['Ianuali', 'Pepeluali', 'Malaki', 'ʻApelila', 'Mei', 'Iune', - 'Iulai', 'ʻAukake', 'Kepakemapa', 'ʻOkakopa', 'Nowemapa', 'Kekemapa'], + 'Iulai', 'ʻAukake', 'Kepakemapa', 'ʻOkakopa', 'Nowemapa', 'Kekemapa'], STANDALONEMONTHS: ['Ianuali', 'Pepeluali', 'Malaki', 'ʻApelila', 'Mei', - 'Iune', 'Iulai', 'ʻAukake', 'Kepakemapa', 'ʻOkakopa', 'Nowemapa', - 'Kekemapa'], + 'Iune', 'Iulai', 'ʻAukake', 'Kepakemapa', 'ʻOkakopa', 'Nowemapa', + 'Kekemapa'], SHORTMONTHS: ['Ian.', 'Pep.', 'Mal.', 'ʻAp.', 'Mei', 'Iun.', 'Iul.', 'ʻAu.', - 'Kep.', 'ʻOk.', 'Now.', 'Kek.'], + 'Kep.', 'ʻOk.', 'Now.', 'Kek.'], STANDALONESHORTMONTHS: ['Ian.', 'Pep.', 'Mal.', 'ʻAp.', 'Mei', 'Iun.', - 'Iul.', 'ʻAu.', 'Kep.', 'ʻOk.', 'Now.', 'Kek.'], + 'Iul.', 'ʻAu.', 'Kep.', 'ʻOk.', 'Now.', 'Kek.'], WEEKDAYS: ['Lāpule', 'Poʻakahi', 'Poʻalua', 'Poʻakolu', 'Poʻahā', - 'Poʻalima', 'Poʻaono'], + 'Poʻalima', 'Poʻaono'], STANDALONEWEEKDAYS: ['Lāpule', 'Poʻakahi', 'Poʻalua', 'Poʻakolu', - 'Poʻahā', 'Poʻalima', 'Poʻaono'], + 'Poʻahā', 'Poʻalima', 'Poʻaono'], SHORTWEEKDAYS: ['LP', 'P1', 'P2', 'P3', 'P4', 'P5', 'P6'], STANDALONESHORTWEEKDAYS: ['LP', 'P1', 'P2', 'P3', 'P4', 'P5', 'P6'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -7129,36 +10106,38 @@ goog.i18n.DateTimeSymbols_he_IL = { ERANAMES: ['לפני הספירה', 'לספירה'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['ינואר', 'פברואר', 'מרץ', 'אפריל', 'מאי', - 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', 'אוקטובר', - 'נובמבר', 'דצמבר'], + 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', 'אוקטובר', + 'נובמבר', 'דצמבר'], STANDALONEMONTHS: ['ינואר', 'פברואר', 'מרץ', 'אפריל', - 'מאי', 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', - 'אוקטובר', 'נובמבר', 'דצמבר'], + 'מאי', 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', + 'אוקטובר', 'נובמבר', 'דצמבר'], SHORTMONTHS: ['ינו', 'פבר', 'מרץ', 'אפר', 'מאי', 'יונ', - 'יול', 'אוג', 'ספט', 'אוק', 'נוב', 'דצמ'], + 'יול', 'אוג', 'ספט', 'אוק', 'נוב', 'דצמ'], STANDALONESHORTMONTHS: ['ינו׳', 'פבר׳', 'מרץ', 'אפר׳', - 'מאי', 'יונ׳', 'יול׳', 'אוג׳', 'ספט׳', 'אוק׳', - 'נוב׳', 'דצמ׳'], + 'מאי', 'יונ׳', 'יול׳', 'אוג׳', 'ספט׳', 'אוק׳', + 'נוב׳', 'דצמ׳'], WEEKDAYS: ['יום ראשון', 'יום שני', 'יום שלישי', - 'יום רביעי', 'יום חמישי', 'יום שישי', - 'יום שבת'], + 'יום רביעי', 'יום חמישי', 'יום שישי', + 'יום שבת'], STANDALONEWEEKDAYS: ['יום ראשון', 'יום שני', - 'יום שלישי', 'יום רביעי', 'יום חמישי', - 'יום שישי', 'יום שבת'], + 'יום שלישי', 'יום רביעי', 'יום חמישי', + 'יום שישי', 'יום שבת'], SHORTWEEKDAYS: ['יום א׳', 'יום ב׳', 'יום ג׳', 'יום ד׳', - 'יום ה׳', 'יום ו׳', 'שבת'], + 'יום ה׳', 'יום ו׳', 'שבת'], STANDALONESHORTWEEKDAYS: ['יום א׳', 'יום ב׳', 'יום ג׳', - 'יום ד׳', 'יום ה׳', 'יום ו׳', 'שבת'], - NARROWWEEKDAYS: ['א', 'ב', 'ג', 'ד', 'ה', 'ו', 'ש'], - STANDALONENARROWWEEKDAYS: ['א', 'ב', 'ג', 'ד', 'ה', 'ו', 'ש'], + 'יום ד׳', 'יום ה׳', 'יום ו׳', 'שבת'], + NARROWWEEKDAYS: ['א\'', 'ב\'', 'ג\'', 'ד\'', 'ה\'', 'ו׳', 'ש׳'], + STANDALONENARROWWEEKDAYS: ['א׳', 'ב׳', 'ג׳', 'ד׳', 'ה׳', 'ו', + 'ש'], SHORTQUARTERS: ['רבעון 1', 'רבעון 2', 'רבעון 3', - 'רבעון 4'], + 'רבעון 4'], QUARTERS: ['רבעון 1', 'רבעון 2', 'רבעון 3', 'רבעון 4'], AMPMS: ['לפנה״צ', 'אחה״צ'], - DATEFORMATS: ['EEEE, d בMMMM y', 'd בMMMM y', 'd בMMM yyyy', 'dd/MM/yy'], + DATEFORMATS: ['EEEE, d בMMMM y', 'd בMMMM y', 'd בMMM y', 'dd/MM/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [4, 5], FIRSTWEEKCUTOFFDAY: 5 @@ -7172,54 +10151,93 @@ goog.i18n.DateTimeSymbols_hi_IN = { ERAS: ['ईसापूर्व', 'सन'], ERANAMES: ['ईसापूर्व', 'सन'], NARROWMONTHS: ['ज', 'फ़', 'मा', 'अ', 'म', 'जू', 'जु', - 'अ', 'सि', 'अ', 'न', 'दि'], + 'अ', 'सि', 'अ', 'न', 'दि'], STANDALONENARROWMONTHS: ['ज', 'फ़', 'मा', 'अ', 'म', 'जू', - 'जु', 'अ', 'सि', 'अ', 'न', 'दि'], + 'जु', 'अ', 'सि', 'अ', 'न', 'दि'], MONTHS: ['जनवरी', 'फरवरी', 'मार्च', - 'अप्रैल', 'मई', 'जून', 'जुलाई', - 'अगस्त', 'सितम्बर', 'अक्तूबर', - 'नवम्बर', 'दिसम्बर'], + 'अप्रैल', 'मई', 'जून', 'जुलाई', + 'अगस्त', 'सितम्बर', 'अक्तूबर', + 'नवम्बर', 'दिसम्बर'], STANDALONEMONTHS: ['जनवरी', 'फरवरी', 'मार्च', - 'अप्रैल', 'मई', 'जून', 'जुलाई', - 'अगस्त', 'सितम्बर', 'अक्तूबर', - 'नवम्बर', 'दिसम्बर'], + 'अप्रैल', 'मई', 'जून', 'जुलाई', + 'अगस्त', 'सितम्बर', 'अक्तूबर', + 'नवम्बर', 'दिसम्बर'], SHORTMONTHS: ['जनवरी', 'फरवरी', 'मार्च', - 'अप्रैल', 'मई', 'जून', 'जुलाई', - 'अगस्त', 'सितम्बर', 'अक्तूबर', - 'नवम्बर', 'दिसम्बर'], + 'अप्रैल', 'मई', 'जून', 'जुलाई', + 'अगस्त', 'सितम्बर', 'अक्तूबर', + 'नवम्बर', 'दिसम्बर'], STANDALONESHORTMONTHS: ['जनवरी', 'फरवरी', - 'मार्च', 'अप्रैल', 'मई', 'जून', - 'जुलाई', 'अगस्त', 'सितम्बर', - 'अक्तूबर', 'नवम्बर', 'दिसम्बर'], + 'मार्च', 'अप्रैल', 'मई', 'जून', + 'जुलाई', 'अगस्त', 'सितम्बर', + 'अक्तूबर', 'नवम्बर', 'दिसम्बर'], WEEKDAYS: ['रविवार', 'सोमवार', - 'मंगलवार', 'बुधवार', - 'बृहस्पतिवार', 'शुक्रवार', - 'शनिवार'], + 'मंगलवार', 'बुधवार', + 'बृहस्पतिवार', 'शुक्रवार', + 'शनिवार'], STANDALONEWEEKDAYS: ['रविवार', 'सोमवार', - 'मंगलवार', 'बुधवार', - 'बृहस्पतिवार', 'शुक्रवार', - 'शनिवार'], + 'मंगलवार', 'बुधवार', + 'बृहस्पतिवार', 'शुक्रवार', + 'शनिवार'], SHORTWEEKDAYS: ['रवि.', 'सोम.', 'मंगल.', 'बुध.', - 'बृह.', 'शुक्र.', 'शनि.'], + 'बृह.', 'शुक्र.', 'शनि.'], STANDALONESHORTWEEKDAYS: ['रवि.', 'सोम.', 'मंगल.', - 'बुध.', 'बृह.', 'शुक्र.', 'शनि.'], + 'बुध.', 'बृह.', 'शुक्र.', 'शनि.'], NARROWWEEKDAYS: ['र', 'सो', 'मं', 'बु', 'गु', 'शु', - 'श'], + 'श'], STANDALONENARROWWEEKDAYS: ['र', 'सो', 'मं', 'बु', 'गु', - 'शु', 'श'], + 'शु', 'श'], SHORTQUARTERS: ['तिमाही', 'दूसरी तिमाही', - 'तीसरी तिमाही', 'चौथी तिमाही'], + 'तीसरी तिमाही', 'चौथी तिमाही'], QUARTERS: ['तिमाही', 'दूसरी तिमाही', - 'तीसरी तिमाही', 'चौथी तिमाही'], + 'तीसरी तिमाही', 'चौथी तिमाही'], AMPMS: ['am', 'pm'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'dd-MM-yyyy', 'd-M-yy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'dd-MM-y', 'd-M-yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [6, 6], FIRSTWEEKCUTOFFDAY: 5 }; +/** + * Date/time formatting symbols for locale hr_BA. + */ +goog.i18n.DateTimeSymbols_hr_BA = { + ERAS: ['p. n. e.', 'A. D.'], + ERANAMES: ['Prije Krista', 'Poslije Krista'], + NARROWMONTHS: ['1.', '2.', '3.', '4.', '5.', '6.', '7.', '8.', '9.', '10.', + '11.', '12.'], + STANDALONENARROWMONTHS: ['1.', '2.', '3.', '4.', '5.', '6.', '7.', '8.', '9.', + '10.', '11.', '12.'], + MONTHS: ['siječnja', 'veljače', 'ožujka', 'travnja', 'svibnja', 'lipnja', + 'srpnja', 'kolovoza', 'rujna', 'listopada', 'studenoga', 'prosinca'], + STANDALONEMONTHS: ['siječanj', 'veljača', 'ožujak', 'travanj', 'svibanj', + 'lipanj', 'srpanj', 'kolovoz', 'rujan', 'listopad', 'studeni', 'prosinac'], + SHORTMONTHS: ['sij', 'velj', 'ožu', 'tra', 'svi', 'lip', 'srp', 'kol', 'ruj', + 'lis', 'stu', 'pro'], + STANDALONESHORTMONTHS: ['sij', 'velj', 'ožu', 'tra', 'svi', 'lip', 'srp', + 'kol', 'ruj', 'lis', 'stu', 'pro'], + WEEKDAYS: ['nedjelja', 'ponedjeljak', 'utorak', 'srijeda', 'četvrtak', + 'petak', 'subota'], + STANDALONEWEEKDAYS: ['nedjelja', 'ponedjeljak', 'utorak', 'srijeda', + 'četvrtak', 'petak', 'subota'], + SHORTWEEKDAYS: ['ned', 'pon', 'uto', 'sri', 'čet', 'pet', 'sub'], + STANDALONESHORTWEEKDAYS: ['ned', 'pon', 'uto', 'sri', 'čet', 'pet', 'sub'], + NARROWWEEKDAYS: ['N', 'P', 'U', 'S', 'Č', 'P', 'S'], + STANDALONENARROWWEEKDAYS: ['n', 'p', 'u', 's', 'č', 'p', 's'], + SHORTQUARTERS: ['1kv', '2kv', '3kv', '4kv'], + QUARTERS: ['1. kvartal', '2. kvartal', '3. kvartal', '4. kvartal'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, d. MMMM y.', 'd. MMMM y.', 'd. M. y.', 'd.M.y.'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + /** * Date/time formatting symbols for locale hr_HR. */ @@ -7227,22 +10245,21 @@ goog.i18n.DateTimeSymbols_hr_HR = { ERAS: ['p. n. e.', 'A. D.'], ERANAMES: ['Prije Krista', 'Poslije Krista'], NARROWMONTHS: ['1.', '2.', '3.', '4.', '5.', '6.', '7.', '8.', '9.', '10.', - '11.', '12.'], + '11.', '12.'], STANDALONENARROWMONTHS: ['1.', '2.', '3.', '4.', '5.', '6.', '7.', '8.', '9.', - '10.', '11.', '12.'], + '10.', '11.', '12.'], MONTHS: ['siječnja', 'veljače', 'ožujka', 'travnja', 'svibnja', 'lipnja', - 'srpnja', 'kolovoza', 'rujna', 'listopada', 'studenoga', 'prosinca'], + 'srpnja', 'kolovoza', 'rujna', 'listopada', 'studenoga', 'prosinca'], STANDALONEMONTHS: ['siječanj', 'veljača', 'ožujak', 'travanj', 'svibanj', - 'lipanj', 'srpanj', 'kolovoz', 'rujan', 'listopad', 'studeni', - 'prosinac'], + 'lipanj', 'srpanj', 'kolovoz', 'rujan', 'listopad', 'studeni', 'prosinac'], SHORTMONTHS: ['sij', 'velj', 'ožu', 'tra', 'svi', 'lip', 'srp', 'kol', 'ruj', - 'lis', 'stu', 'pro'], + 'lis', 'stu', 'pro'], STANDALONESHORTMONTHS: ['sij', 'velj', 'ožu', 'tra', 'svi', 'lip', 'srp', - 'kol', 'ruj', 'lis', 'stu', 'pro'], + 'kol', 'ruj', 'lis', 'stu', 'pro'], WEEKDAYS: ['nedjelja', 'ponedjeljak', 'utorak', 'srijeda', 'četvrtak', - 'petak', 'subota'], + 'petak', 'subota'], STANDALONEWEEKDAYS: ['nedjelja', 'ponedjeljak', 'utorak', 'srijeda', - 'četvrtak', 'petak', 'subota'], + 'četvrtak', 'petak', 'subota'], SHORTWEEKDAYS: ['ned', 'pon', 'uto', 'sri', 'čet', 'pet', 'sub'], STANDALONESHORTWEEKDAYS: ['ned', 'pon', 'uto', 'sri', 'čet', 'pet', 'sub'], NARROWWEEKDAYS: ['N', 'P', 'U', 'S', 'Č', 'P', 'S'], @@ -7252,6 +10269,7 @@ goog.i18n.DateTimeSymbols_hr_HR = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, d. MMMM y.', 'd. MMMM y.', 'd. M. y.', 'd.M.y.'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -7266,30 +10284,31 @@ goog.i18n.DateTimeSymbols_hu_HU = { ERANAMES: ['időszámításunk előtt', 'időszámításunk szerint'], NARROWMONTHS: ['J', 'F', 'M', 'Á', 'M', 'J', 'J', 'Á', 'Sz', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'Á', 'M', 'J', 'J', 'A', 'Sz', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['január', 'február', 'március', 'április', 'május', 'június', - 'július', 'augusztus', 'szeptember', 'október', 'november', 'december'], + 'július', 'augusztus', 'szeptember', 'október', 'november', 'december'], STANDALONEMONTHS: ['január', 'február', 'március', 'április', 'május', - 'június', 'július', 'augusztus', 'szeptember', 'október', 'november', - 'december'], + 'június', 'július', 'augusztus', 'szeptember', 'október', 'november', + 'december'], SHORTMONTHS: ['jan.', 'febr.', 'márc.', 'ápr.', 'máj.', 'jún.', 'júl.', - 'aug.', 'szept.', 'okt.', 'nov.', 'dec.'], + 'aug.', 'szept.', 'okt.', 'nov.', 'dec.'], STANDALONESHORTMONTHS: ['jan.', 'febr.', 'márc.', 'ápr.', 'máj.', 'jún.', - 'júl.', 'aug.', 'szept.', 'okt.', 'nov.', 'dec.'], + 'júl.', 'aug.', 'szept.', 'okt.', 'nov.', 'dec.'], WEEKDAYS: ['vasárnap', 'hétfő', 'kedd', 'szerda', 'csütörtök', - 'péntek', 'szombat'], + 'péntek', 'szombat'], STANDALONEWEEKDAYS: ['vasárnap', 'hétfő', 'kedd', 'szerda', 'csütörtök', - 'péntek', 'szombat'], + 'péntek', 'szombat'], SHORTWEEKDAYS: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'], STANDALONESHORTWEEKDAYS: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'], NARROWWEEKDAYS: ['V', 'H', 'K', 'Sz', 'Cs', 'P', 'Sz'], STANDALONENARROWWEEKDAYS: ['V', 'H', 'K', 'Sz', 'Cs', 'P', 'Sz'], SHORTQUARTERS: ['N1', 'N2', 'N3', 'N4'], QUARTERS: ['I. negyedév', 'II. negyedév', 'III. negyedév', - 'IV. negyedév'], + 'IV. negyedév'], AMPMS: ['de.', 'du.'], - DATEFORMATS: ['y. MMMM d., EEEE', 'y. MMMM d.', 'yyyy.MM.dd.', 'yyyy.MM.dd.'], + DATEFORMATS: ['y. MMMM d., EEEE', 'y. MMMM d.', 'y.MM.dd.', 'y.MM.dd.'], TIMEFORMATS: ['H:mm:ss zzzz', 'H:mm:ss z', 'H:mm:ss', 'H:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -7300,40 +10319,44 @@ goog.i18n.DateTimeSymbols_hu_HU = { * Date/time formatting symbols for locale hy. */ goog.i18n.DateTimeSymbols_hy = { - ERAS: ['Մ․Թ․Ա․', 'Մ․Թ․'], - ERANAMES: ['Մ․Թ․Ա․', 'Մ․Թ․'], - NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], - STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], - MONTHS: ['Հունվար', 'Փետրվար', 'Մարտ', 'Ապրիլ', - 'Մայիս', 'Հունիս', 'Հուլիս', 'Օգոստոս', - 'Սեպտեմբեր', 'Հոկտեմբեր', 'Նոյեմբեր', - 'Դեկտեմբեր'], - STANDALONEMONTHS: ['Հունվար', 'Փետրվար', 'Մարտ', - 'Ապրիլ', 'Մայիս', 'Հունիս', 'Հուլիս', - 'Օգոստոս', 'Սեպտեմբեր', 'Հոկտեմբեր', - 'Նոյեմբեր', 'Դեկտեմբեր'], - SHORTMONTHS: ['Հնվ', 'Փտվ', 'Մրտ', 'Ապր', 'Մյս', 'Հնս', - 'Հլս', 'Օգս', 'Սեպ', 'Հոկ', 'Նոյ', 'Դեկ'], - STANDALONESHORTMONTHS: ['Հնվ', 'Փտվ', 'Մրտ', 'Ապր', 'Մյս', - 'Հնս', 'Հլս', 'Օգս', 'Սեպ', 'Հոկ', 'Նոյ', 'Դեկ'], - WEEKDAYS: ['Կիրակի', 'Երկուշաբթի', 'Երեքշաբթի', - 'Չորեքշաբթի', 'Հինգշաբթի', 'Ուրբաթ', - 'Շաբաթ'], - STANDALONEWEEKDAYS: ['Կիրակի', 'Երկուշաբթի', - 'Երեքշաբթի', 'Չորեքշաբթի', 'Հինգշաբթի', - 'Ուրբաթ', 'Շաբաթ'], - SHORTWEEKDAYS: ['Կիր', 'Երկ', 'Երք', 'Չոր', 'Հնգ', 'Ուր', - 'Շաբ'], - STANDALONESHORTWEEKDAYS: ['Կիր', 'Երկ', 'Երք', 'Չոր', 'Հնգ', - 'Ուր', 'Շաբ'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], - QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], - AMPMS: ['Առ․', 'Կե․'], - DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM dd, y', 'MMM d, y', 'MM/dd/yy'], - TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + ERAS: ['մ.թ.ա.', 'մ.թ.'], + ERANAMES: ['մ.թ.ա.', 'մ.թ.'], + NARROWMONTHS: ['Հ', 'Փ', 'Մ', 'Ա', 'Մ', 'Հ', 'Հ', 'Օ', 'Ս', 'Հ', + 'Ն', 'Դ'], + STANDALONENARROWMONTHS: ['Հ', 'Փ', 'Մ', 'Ա', 'Մ', 'Հ', 'Հ', 'Օ', 'Ս', + 'Հ', 'Ն', 'Դ'], + MONTHS: ['հունվարի', 'փետրվարի', 'մարտի', 'ապրիլի', + 'մայիսի', 'հունիսի', 'հուլիսի', 'օգոստոսի', + 'սեպտեմբերի', 'հոկտեմբերի', 'նոյեմբերի', + 'դեկտեմբերի'], + STANDALONEMONTHS: ['հունվարի', 'փետրվարի', 'մարտի', + 'ապրիլի', 'մայիսի', 'հունիսի', 'հուլիսի', + 'օգոստոսի', 'սեպտեմբերի', 'հոկտեմբերի', + 'նոյեմբերի', 'դեկտեմբերի'], + SHORTMONTHS: ['հնվ', 'փտվ', 'մրտ', 'ապր', 'մյս', 'հնս', + 'հլս', 'օգս', 'սեպ', 'հոկ', 'նոյ', 'դեկ'], + STANDALONESHORTMONTHS: ['հնվ', 'փտվ', 'մրտ', 'ապր', 'մյս', + 'հնս', 'հլս', 'օգս', 'սեպ', 'հոկ', 'նոյ', 'դեկ'], + WEEKDAYS: ['կիրակի', 'երկուշաբթի', 'երեքշաբթի', + 'չորեքշաբթի', 'հինգշաբթի', 'ուրբաթ', 'շաբաթ'], + STANDALONEWEEKDAYS: ['կիրակի', 'երկուշաբթի', + 'երեքշաբթի', 'չորեքշաբթի', 'հինգշաբթի', + 'ուրբաթ', 'շաբաթ'], + SHORTWEEKDAYS: ['կիր', 'երկ', 'երք', 'չոր', 'հնգ', 'ուր', + 'շաբ'], + STANDALONESHORTWEEKDAYS: ['կիր', 'երկ', 'երք', 'չոր', 'հնգ', + 'ուր', 'շաբ'], + NARROWWEEKDAYS: ['Կ', 'Ե', 'Ե', 'Չ', 'Հ', 'Ու', 'Շ'], + STANDALONENARROWWEEKDAYS: ['Կ', 'Ե', 'Ե', 'Չ', 'Հ', 'Ու', 'Շ'], + SHORTQUARTERS: ['1-ին եռմս.', '2-րդ եռմս.', '3-րդ եռմս.', + '4-րդ եռմս.'], + QUARTERS: ['1-ին եռամսյակ', '2-րդ եռամսյակ', + '3-րդ եռամսյակ', '4-րդ եռամսյակ'], + AMPMS: ['կեսօրից առաջ', 'կեսօրից հետո'], + DATEFORMATS: ['d MMMM, y թ., EEEE', 'dd MMMM, y թ.', 'dd MMM, y թ.', + 'dd.MM.yy'], + TIMEFORMATS: ['H:mm:ss, zzzz', 'H:mm:ss, z', 'H:mm:ss', 'H:mm'], + DATETIMEFORMATS: ['{1}, {0}', '{1}, {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -7354,36 +10377,43 @@ goog.i18n.DateTimeSymbols_ia = { ERANAMES: ['ante Christo', 'post Christo'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['januario', 'februario', 'martio', 'april', 'maio', 'junio', 'julio', - 'augusto', 'septembre', 'octobre', 'novembre', 'decembre'], + 'augusto', 'septembre', 'octobre', 'novembre', 'decembre'], STANDALONEMONTHS: ['januario', 'februario', 'martio', 'april', 'maio', - 'junio', 'julio', 'augusto', 'septembre', 'octobre', 'novembre', - 'decembre'], + 'junio', 'julio', 'augusto', 'septembre', 'octobre', 'novembre', + 'decembre'], SHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'mai', 'jun', 'jul', 'aug', 'sep', - 'oct', 'nov', 'dec'], + 'oct', 'nov', 'dec'], STANDALONESHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'mai', 'jun', 'jul', - 'aug', 'sep', 'oct', 'nov', 'dec'], + 'aug', 'sep', 'oct', 'nov', 'dec'], WEEKDAYS: ['dominica', 'lunedi', 'martedi', 'mercuridi', 'jovedi', 'venerdi', - 'sabbato'], + 'sabbato'], STANDALONEWEEKDAYS: ['dominica', 'lunedi', 'martedi', 'mercuridi', 'jovedi', - 'venerdi', 'sabbato'], + 'venerdi', 'sabbato'], SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mer', 'jov', 'ven', 'sab'], STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mer', 'jov', 'ven', 'sab'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1-me trimestre', '2-nde trimestre', '3-tie trimestre', - '4-te trimestre'], + '4-te trimestre'], AMPMS: ['a.m.', 'p.m.'], DATEFORMATS: ['EEEE, y MMMM dd', 'y MMMM d', 'y MMM d', 'yy/MM/dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 }; +/** + * Date/time formatting symbols for locale ia_FR. + */ +goog.i18n.DateTimeSymbols_ia_FR = goog.i18n.DateTimeSymbols_ia; + + /** * Date/time formatting symbols for locale id_ID. */ @@ -7392,28 +10422,28 @@ goog.i18n.DateTimeSymbols_id_ID = { ERANAMES: ['SM', 'M'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', - 'Agustus', 'September', 'Oktober', 'November', 'Desember'], + 'Agustus', 'September', 'Oktober', 'November', 'Desember'], STANDALONEMONTHS: ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', - 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember'], + 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Agt', 'Sep', - 'Okt', 'Nov', 'Des'], + 'Okt', 'Nov', 'Des'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', - 'Agt', 'Sep', 'Okt', 'Nov', 'Des'], + 'Agt', 'Sep', 'Okt', 'Nov', 'Des'], WEEKDAYS: ['Minggu', 'Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', 'Sabtu'], STANDALONEWEEKDAYS: ['Minggu', 'Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', - 'Sabtu'], + 'Sabtu'], SHORTWEEKDAYS: ['Min', 'Sen', 'Sel', 'Rab', 'Kam', 'Jum', 'Sab'], STANDALONESHORTWEEKDAYS: ['Min', 'Sen', 'Sel', 'Rab', 'Kam', 'Jum', 'Sab'], NARROWWEEKDAYS: ['M', 'S', 'S', 'R', 'K', 'J', 'S'], STANDALONENARROWWEEKDAYS: ['M', 'S', 'S', 'R', 'K', 'J', 'S'], SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], - QUARTERS: ['kuartal pertama', 'kuartal kedua', 'kuartal ketiga', - 'kuartal keempat'], + QUARTERS: ['Kuartal ke-1', 'Kuartal ke-2', 'Kuartal ke-3', 'Kuartal ke-4'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, dd MMMM yyyy', 'd MMMM yyyy', 'd MMM yyyy', 'dd/MM/yy'], - TIMEFORMATS: ['H:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATEFORMATS: ['EEEE, dd MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yy'], + TIMEFORMATS: ['HH.mm.ss zzzz', 'HH.mm.ss z', 'HH.mm.ss', 'HH.mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -7428,30 +10458,31 @@ goog.i18n.DateTimeSymbols_ig = { ERANAMES: ['Tupu Kristi', 'Afọ Kristi'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['Jenụwarị', 'Febrụwarị', 'Maachị', 'Eprel', 'Mee', 'Juun', - 'Julaị', 'Ọgọọst', 'Septemba', 'Ọktoba', 'Novemba', 'Disemba'], + 'Julaị', 'Ọgọọst', 'Septemba', 'Ọktoba', 'Novemba', 'Disemba'], STANDALONEMONTHS: ['Jenụwarị', 'Febrụwarị', 'Maachị', 'Eprel', - 'Mee', 'Juun', 'Julaị', 'Ọgọọst', 'Septemba', 'Ọktoba', - 'Novemba', 'Disemba'], + 'Mee', 'Juun', 'Julaị', 'Ọgọọst', 'Septemba', 'Ọktoba', 'Novemba', + 'Disemba'], SHORTMONTHS: ['Jen', 'Feb', 'Maa', 'Epr', 'Mee', 'Juu', 'Jul', 'Ọgọ', - 'Sep', 'Ọkt', 'Nov', 'Dis'], + 'Sep', 'Ọkt', 'Nov', 'Dis'], STANDALONESHORTMONTHS: ['Jen', 'Feb', 'Maa', 'Epr', 'Mee', 'Juu', 'Jul', - 'Ọgọ', 'Sep', 'Ọkt', 'Nov', 'Dis'], + 'Ọgọ', 'Sep', 'Ọkt', 'Nov', 'Dis'], WEEKDAYS: ['Mbọsị Ụka', 'Mọnde', 'Tiuzdee', 'Wenezdee', 'Tọọzdee', - 'Fraịdee', 'Satọdee'], + 'Fraịdee', 'Satọdee'], STANDALONEWEEKDAYS: ['Mbọsị Ụka', 'Mọnde', 'Tiuzdee', 'Wenezdee', - 'Tọọzdee', 'Fraịdee', 'Satọdee'], + 'Tọọzdee', 'Fraịdee', 'Satọdee'], SHORTWEEKDAYS: ['Ụka', 'Mọn', 'Tiu', 'Wen', 'Tọọ', 'Fraị', 'Sat'], STANDALONESHORTWEEKDAYS: ['Ụka', 'Mọn', 'Tiu', 'Wen', 'Tọọ', 'Fraị', - 'Sat'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + 'Sat'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['Ọ1', 'Ọ2', 'Ọ3', 'Ọ4'], QUARTERS: ['Ọkara 1', 'Ọkara 2', 'Ọkara 3', 'Ọkara 4'], AMPMS: ['A.M.', 'P.M.'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -7472,29 +10503,30 @@ goog.i18n.DateTimeSymbols_ii = { ERANAMES: ['ꃅꋊꂿ', 'ꃅꋊꊂ'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['ꋍꆪ', 'ꑍꆪ', 'ꌕꆪ', 'ꇖꆪ', 'ꉬꆪ', 'ꃘꆪ', 'ꏃꆪ', - 'ꉆꆪ', 'ꈬꆪ', 'ꊰꆪ', 'ꊰꊪꆪ', 'ꊰꑋꆪ'], + 'ꉆꆪ', 'ꈬꆪ', 'ꊰꆪ', 'ꊰꊪꆪ', 'ꊰꑋꆪ'], STANDALONEMONTHS: ['ꋍꆪ', 'ꑍꆪ', 'ꌕꆪ', 'ꇖꆪ', 'ꉬꆪ', 'ꃘꆪ', - 'ꏃꆪ', 'ꉆꆪ', 'ꈬꆪ', 'ꊰꆪ', 'ꊰꊪꆪ', 'ꊰꑋꆪ'], + 'ꏃꆪ', 'ꉆꆪ', 'ꈬꆪ', 'ꊰꆪ', 'ꊰꊪꆪ', 'ꊰꑋꆪ'], SHORTMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONESHORTMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], WEEKDAYS: ['ꑭꆏꑍ', 'ꆏꊂꋍ', 'ꆏꊂꑍ', 'ꆏꊂꌕ', 'ꆏꊂꇖ', - 'ꆏꊂꉬ', 'ꆏꊂꃘ'], + 'ꆏꊂꉬ', 'ꆏꊂꃘ'], STANDALONEWEEKDAYS: ['ꑭꆏꑍ', 'ꆏꊂꋍ', 'ꆏꊂꑍ', 'ꆏꊂꌕ', - 'ꆏꊂꇖ', 'ꆏꊂꉬ', 'ꆏꊂꃘ'], + 'ꆏꊂꇖ', 'ꆏꊂꉬ', 'ꆏꊂꃘ'], SHORTWEEKDAYS: ['ꑭꆏ', 'ꆏꋍ', 'ꆏꑍ', 'ꆏꌕ', 'ꆏꇖ', 'ꆏꉬ', - 'ꆏꃘ'], + 'ꆏꃘ'], STANDALONESHORTWEEKDAYS: ['ꑭꆏ', 'ꆏꋍ', 'ꆏꑍ', 'ꆏꌕ', 'ꆏꇖ', - 'ꆏꉬ', 'ꆏꃘ'], + 'ꆏꉬ', 'ꆏꃘ'], NARROWWEEKDAYS: ['ꆏ', 'ꋍ', 'ꑍ', 'ꌕ', 'ꇖ', 'ꉬ', 'ꃘ'], STANDALONENARROWWEEKDAYS: ['ꆏ', 'ꋍ', 'ꑍ', 'ꌕ', 'ꇖ', 'ꉬ', 'ꃘ'], SHORTQUARTERS: ['ꃅꑌ', 'ꃅꎸ', 'ꃅꍵ', 'ꃅꋆ'], QUARTERS: ['ꃅꑌ', 'ꃅꎸ', 'ꃅꍵ', 'ꃅꋆ'], AMPMS: ['ꎸꄑ', 'ꁯꋒ'], - DATEFORMATS: ['EEEE, y MMMM dd', 'y MMMM d', 'y MMM d', 'yyyy-MM-dd'], + DATEFORMATS: ['y MMMM d, EEEE', 'y MMMM d', 'y MMM d', 'y-MM-dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -7511,34 +10543,35 @@ goog.i18n.DateTimeSymbols_ii_CN = goog.i18n.DateTimeSymbols_ii; * Date/time formatting symbols for locale is_IS. */ goog.i18n.DateTimeSymbols_is_IS = { - ERAS: ['fyrir Krist', 'eftir Krist'], + ERAS: ['f.Kr.', 'e.Kr.'], ERANAMES: ['fyrir Krist', 'eftir Krist'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'Á', 'L', 'O', 'N', 'D'], - STANDALONENARROWMONTHS: ['j', 'f', 'm', 'a', 'm', 'j', 'j', 'á', 's', 'o', - 'n', 'd'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'Á', 'S', 'O', + 'N', 'D'], MONTHS: ['janúar', 'febrúar', 'mars', 'apríl', 'maí', 'júní', 'júlí', - 'ágúst', 'september', 'október', 'nóvember', 'desember'], + 'ágúst', 'september', 'október', 'nóvember', 'desember'], STANDALONEMONTHS: ['janúar', 'febrúar', 'mars', 'apríl', 'maí', 'júní', - 'júlí', 'ágúst', 'september', 'október', 'nóvember', 'desember'], + 'júlí', 'ágúst', 'september', 'október', 'nóvember', 'desember'], SHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'maí', 'jún', 'júl', 'ágú', - 'sep', 'okt', 'nóv', 'des'], + 'sep', 'okt', 'nóv', 'des'], STANDALONESHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'maí', 'jún', 'júl', - 'ágú', 'sep', 'okt', 'nóv', 'des'], + 'ágú', 'sep', 'okt', 'nóv', 'des'], WEEKDAYS: ['sunnudagur', 'mánudagur', 'þriðjudagur', 'miðvikudagur', - 'fimmtudagur', 'föstudagur', 'laugardagur'], + 'fimmtudagur', 'föstudagur', 'laugardagur'], STANDALONEWEEKDAYS: ['sunnudagur', 'mánudagur', 'þriðjudagur', - 'miðvikudagur', 'fimmtudagur', 'föstudagur', 'laugardagur'], + 'miðvikudagur', 'fimmtudagur', 'föstudagur', 'laugardagur'], SHORTWEEKDAYS: ['sun', 'mán', 'þri', 'mið', 'fim', 'fös', 'lau'], STANDALONESHORTWEEKDAYS: ['sun', 'mán', 'þri', 'mið', 'fim', 'fös', - 'lau'], + 'lau'], NARROWWEEKDAYS: ['S', 'M', 'Þ', 'M', 'F', 'F', 'L'], - STANDALONENARROWWEEKDAYS: ['s', 'm', 'þ', 'm', 'f', 'f', 'l'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'þ', 'M', 'F', 'F', 'L'], SHORTQUARTERS: ['F1', 'F2', 'F3', 'F4'], - QUARTERS: ['1st fjórðungur', '2nd fjórðungur', '3rd fjórðungur', - '4th fjórðungur'], + QUARTERS: ['1. fjórðungur', '2. fjórðungur', '3. fjórðungur', + '4. fjórðungur'], AMPMS: ['f.h.', 'e.h.'], - DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'd.M.yyyy', 'd.M.yyyy'], + DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'd.M.y', 'd.M.y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -7550,32 +10583,33 @@ goog.i18n.DateTimeSymbols_is_IS = { */ goog.i18n.DateTimeSymbols_it_CH = { ERAS: ['aC', 'dC'], - ERANAMES: ['a.C.', 'd.C'], + ERANAMES: ['a.C.', 'd.C.'], /* manual fix */ NARROWMONTHS: ['G', 'F', 'M', 'A', 'M', 'G', 'L', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['G', 'F', 'M', 'A', 'M', 'G', 'L', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['gennaio', 'febbraio', 'marzo', 'aprile', 'maggio', 'giugno', - 'luglio', 'agosto', 'settembre', 'ottobre', 'novembre', 'dicembre'], + 'luglio', 'agosto', 'settembre', 'ottobre', 'novembre', 'dicembre'], STANDALONEMONTHS: ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', - 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', - 'Dicembre'], + 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', + 'Dicembre'], SHORTMONTHS: ['gen', 'feb', 'mar', 'apr', 'mag', 'giu', 'lug', 'ago', 'set', - 'ott', 'nov', 'dic'], + 'ott', 'nov', 'dic'], STANDALONESHORTMONTHS: ['gen', 'feb', 'mar', 'apr', 'mag', 'giu', 'lug', - 'ago', 'set', 'ott', 'nov', 'dic'], + 'ago', 'set', 'ott', 'nov', 'dic'], WEEKDAYS: ['domenica', 'lunedì', 'martedì', 'mercoledì', 'giovedì', - 'venerdì', 'sabato'], + 'venerdì', 'sabato'], STANDALONEWEEKDAYS: ['Domenica', 'Lunedì', 'Martedì', 'Mercoledì', - 'Giovedì', 'Venerdì', 'Sabato'], + 'Giovedì', 'Venerdì', 'Sabato'], SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab'], STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'G', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'G', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1o trimestre', '2o trimestre', '3o trimestre', '4o trimestre'], - AMPMS: ['m.', 'p.'], + AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd-MMM-y', 'dd.MM.yy'], TIMEFORMATS: ['HH.mm:ss \'h\' zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -7587,32 +10621,71 @@ goog.i18n.DateTimeSymbols_it_CH = { */ goog.i18n.DateTimeSymbols_it_IT = { ERAS: ['aC', 'dC'], - ERANAMES: ['a.C.', 'd.C'], + ERANAMES: ['a.C.', 'd.C.'], /* manual fix */ NARROWMONTHS: ['G', 'F', 'M', 'A', 'M', 'G', 'L', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['G', 'F', 'M', 'A', 'M', 'G', 'L', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['gennaio', 'febbraio', 'marzo', 'aprile', 'maggio', 'giugno', - 'luglio', 'agosto', 'settembre', 'ottobre', 'novembre', 'dicembre'], + 'luglio', 'agosto', 'settembre', 'ottobre', 'novembre', 'dicembre'], STANDALONEMONTHS: ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', - 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', - 'Dicembre'], + 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', + 'Dicembre'], SHORTMONTHS: ['gen', 'feb', 'mar', 'apr', 'mag', 'giu', 'lug', 'ago', 'set', - 'ott', 'nov', 'dic'], + 'ott', 'nov', 'dic'], STANDALONESHORTMONTHS: ['gen', 'feb', 'mar', 'apr', 'mag', 'giu', 'lug', - 'ago', 'set', 'ott', 'nov', 'dic'], + 'ago', 'set', 'ott', 'nov', 'dic'], WEEKDAYS: ['domenica', 'lunedì', 'martedì', 'mercoledì', 'giovedì', - 'venerdì', 'sabato'], + 'venerdì', 'sabato'], STANDALONEWEEKDAYS: ['Domenica', 'Lunedì', 'Martedì', 'Mercoledì', - 'Giovedì', 'Venerdì', 'Sabato'], + 'Giovedì', 'Venerdì', 'Sabato'], SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab'], STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'G', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'G', 'V', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1o trimestre', '2o trimestre', '3o trimestre', '4o trimestre'], - AMPMS: ['m.', 'p.'], + AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE d MMMM y', 'dd MMMM y', 'dd/MMM/y', 'dd/MM/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 3 +}; + + +/** + * Date/time formatting symbols for locale it_SM. + */ +goog.i18n.DateTimeSymbols_it_SM = { + ERAS: ['aC', 'dC'], + ERANAMES: ['a.C.', 'd.C.'], /* manual fix */ + NARROWMONTHS: ['G', 'F', 'M', 'A', 'M', 'G', 'L', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['G', 'F', 'M', 'A', 'M', 'G', 'L', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['gennaio', 'febbraio', 'marzo', 'aprile', 'maggio', 'giugno', + 'luglio', 'agosto', 'settembre', 'ottobre', 'novembre', 'dicembre'], + STANDALONEMONTHS: ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', + 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', + 'Dicembre'], + SHORTMONTHS: ['gen', 'feb', 'mar', 'apr', 'mag', 'giu', 'lug', 'ago', 'set', + 'ott', 'nov', 'dic'], + STANDALONESHORTMONTHS: ['gen', 'feb', 'mar', 'apr', 'mag', 'giu', 'lug', + 'ago', 'set', 'ott', 'nov', 'dic'], + WEEKDAYS: ['domenica', 'lunedì', 'martedì', 'mercoledì', 'giovedì', + 'venerdì', 'sabato'], + STANDALONEWEEKDAYS: ['Domenica', 'Lunedì', 'Martedì', 'Mercoledì', + 'Giovedì', 'Venerdì', 'Sabato'], + SHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab'], + STANDALONESHORTWEEKDAYS: ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab'], + NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'G', 'V', 'S'], + STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'G', 'V', 'S'], + SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], + QUARTERS: ['1o trimestre', '2o trimestre', '3o trimestre', '4o trimestre'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE d MMMM y', 'dd MMMM y', 'dd/MMM/y', 'dd/MM/yy'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -7627,35 +10700,93 @@ goog.i18n.DateTimeSymbols_ja_JP = { ERANAMES: ['紀元前', '西暦'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', - '9月', '10月', '11月', '12月'], + '9月', '10月', '11月', '12月'], STANDALONEMONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', - '8月', '9月', '10月', '11月', '12月'], + '8月', '9月', '10月', '11月', '12月'], SHORTMONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', - '9月', '10月', '11月', '12月'], + '9月', '10月', '11月', '12月'], STANDALONESHORTMONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', - '7月', '8月', '9月', '10月', '11月', '12月'], + '7月', '8月', '9月', '10月', '11月', '12月'], WEEKDAYS: ['日曜日', '月曜日', '火曜日', '水曜日', '木曜日', - '金曜日', '土曜日'], + '金曜日', '土曜日'], STANDALONEWEEKDAYS: ['日曜日', '月曜日', '火曜日', '水曜日', - '木曜日', '金曜日', '土曜日'], + '木曜日', '金曜日', '土曜日'], SHORTWEEKDAYS: ['日', '月', '火', '水', '木', '金', '土'], STANDALONESHORTWEEKDAYS: ['日', '月', '火', '水', '木', '金', '土'], NARROWWEEKDAYS: ['日', '月', '火', '水', '木', '金', '土'], STANDALONENARROWWEEKDAYS: ['日', '月', '火', '水', '木', '金', '土'], - SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + SHORTQUARTERS: ['1Q', '2Q', '3Q', '4Q'], QUARTERS: ['第1四半期', '第2四半期', '第3四半期', - '第4四半期'], + '第4四半期'], AMPMS: ['午前', '午後'], - DATEFORMATS: ['y年M月d日EEEE', 'y年M月d日', 'yyyy/MM/dd', 'yyyy/MM/dd'], + DATEFORMATS: ['y年M月d日EEEE', 'y年M月d日', 'y/MM/dd', 'y/MM/dd'], TIMEFORMATS: ['H時mm分ss秒 zzzz', 'H:mm:ss z', 'H:mm:ss', 'H:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 }; +/** + * Date/time formatting symbols for locale jgo. + */ +goog.i18n.DateTimeSymbols_jgo = { + ERAS: ['tsɛttsɛt mɛŋgu’ mi ɛ́ lɛɛnɛ Kɛlísɛtɔ gɔ ńɔ́', + 'tsɛttsɛt mɛŋgu’ mi ɛ́ fúnɛ Kɛlísɛtɔ tɔ́ mɔ́'], + ERANAMES: ['tsɛttsɛt mɛŋgu’ mi ɛ́ lɛɛnɛ Kɛlísɛtɔ gɔ ńɔ́', + 'tsɛttsɛt mɛŋgu’ mi ɛ́ fúnɛ Kɛlísɛtɔ tɔ́ mɔ́'], + NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], + STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', + '11', '12'], + MONTHS: ['Nduŋmbi Saŋ', 'Pɛsaŋ Pɛ́pá', 'Pɛsaŋ Pɛ́tát', + 'Pɛsaŋ Pɛ́nɛ́kwa', 'Pɛsaŋ Pataa', 'Pɛsaŋ Pɛ́nɛ́ntúkú', + 'Pɛsaŋ Saambá', 'Pɛsaŋ Pɛ́nɛ́fɔm', 'Pɛsaŋ Pɛ́nɛ́pfúꞋú', + 'Pɛsaŋ Nɛgɛ́m', 'Pɛsaŋ Ntsɔ̌pmɔ́', 'Pɛsaŋ Ntsɔ̌ppá'], + STANDALONEMONTHS: ['Nduŋmbi Saŋ', 'Pɛsaŋ Pɛ́pá', 'Pɛsaŋ Pɛ́tát', + 'Pɛsaŋ Pɛ́nɛ́kwa', 'Pɛsaŋ Pataa', 'Pɛsaŋ Pɛ́nɛ́ntúkú', + 'Pɛsaŋ Saambá', 'Pɛsaŋ Pɛ́nɛ́fɔm', 'Pɛsaŋ Pɛ́nɛ́pfúꞋú', + 'Pɛsaŋ Nɛgɛ́m', 'Pɛsaŋ Ntsɔ̌pmɔ́', 'Pɛsaŋ Ntsɔ̌ppá'], + SHORTMONTHS: ['Nduŋmbi Saŋ', 'Pɛsaŋ Pɛ́pá', 'Pɛsaŋ Pɛ́tát', + 'Pɛsaŋ Pɛ́nɛ́kwa', 'Pɛsaŋ Pataa', 'Pɛsaŋ Pɛ́nɛ́ntúkú', + 'Pɛsaŋ Saambá', 'Pɛsaŋ Pɛ́nɛ́fɔm', 'Pɛsaŋ Pɛ́nɛ́pfúꞋú', + 'Pɛsaŋ Nɛgɛ́m', 'Pɛsaŋ Ntsɔ̌pmɔ́', 'Pɛsaŋ Ntsɔ̌ppá'], + STANDALONESHORTMONTHS: ['Nduŋmbi Saŋ', 'Pɛsaŋ Pɛ́pá', + 'Pɛsaŋ Pɛ́tát', 'Pɛsaŋ Pɛ́nɛ́kwa', 'Pɛsaŋ Pataa', + 'Pɛsaŋ Pɛ́nɛ́ntúkú', 'Pɛsaŋ Saambá', 'Pɛsaŋ Pɛ́nɛ́fɔm', + 'Pɛsaŋ Pɛ́nɛ́pfúꞋú', 'Pɛsaŋ Nɛgɛ́m', 'Pɛsaŋ Ntsɔ̌pmɔ́', + 'Pɛsaŋ Ntsɔ̌ppá'], + WEEKDAYS: ['Sɔ́ndi', 'Mɔ́ndi', 'Ápta Mɔ́ndi', 'Wɛ́nɛsɛdɛ', + 'Tɔ́sɛdɛ', 'Fɛlâyɛdɛ', 'Sásidɛ'], + STANDALONEWEEKDAYS: ['Sɔ́ndi', 'Mɔ́ndi', 'Ápta Mɔ́ndi', + 'Wɛ́nɛsɛdɛ', 'Tɔ́sɛdɛ', 'Fɛlâyɛdɛ', 'Sásidɛ'], + SHORTWEEKDAYS: ['Sɔ́ndi', 'Mɔ́ndi', 'Ápta Mɔ́ndi', 'Wɛ́nɛsɛdɛ', + 'Tɔ́sɛdɛ', 'Fɛlâyɛdɛ', 'Sásidɛ'], + STANDALONESHORTWEEKDAYS: ['Sɔ́ndi', 'Mɔ́ndi', 'Ápta Mɔ́ndi', + 'Wɛ́nɛsɛdɛ', 'Tɔ́sɛdɛ', 'Fɛlâyɛdɛ', 'Sásidɛ'], + NARROWWEEKDAYS: ['Sɔ́', 'Mɔ́', 'ÁM', 'Wɛ́', 'Tɔ́', 'Fɛ', 'Sá'], + STANDALONENARROWWEEKDAYS: ['Sɔ́', 'Mɔ́', 'ÁM', 'Wɛ́', 'Tɔ́', 'Fɛ', + 'Sá'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + AMPMS: ['mba’mba’', 'ŋka mbɔ́t nji'], + DATEFORMATS: ['EEEE, y MMMM dd', 'y MMMM d', 'y MMM d', 'y-MM-dd'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale jgo_CM. + */ +goog.i18n.DateTimeSymbols_jgo_CM = goog.i18n.DateTimeSymbols_jgo; + + /** * Date/time formatting symbols for locale jmc. */ @@ -7664,19 +10795,19 @@ goog.i18n.DateTimeSymbols_jmc = { ERANAMES: ['Kabla ya Kristu', 'Baada ya Kristu'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Januari', 'Februari', 'Machi', 'Aprilyi', 'Mei', 'Junyi', 'Julyai', - 'Agusti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + 'Agusti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], STANDALONEMONTHS: ['Januari', 'Februari', 'Machi', 'Aprilyi', 'Mei', 'Junyi', - 'Julyai', 'Agusti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + 'Julyai', 'Agusti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], SHORTMONTHS: ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', - 'Okt', 'Nov', 'Des'], + 'Okt', 'Nov', 'Des'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', - 'Ago', 'Sep', 'Okt', 'Nov', 'Des'], + 'Ago', 'Sep', 'Okt', 'Nov', 'Des'], WEEKDAYS: ['Jumapilyi', 'Jumatatuu', 'Jumanne', 'Jumatanu', 'Alhamisi', - 'Ijumaa', 'Jumamosi'], + 'Ijumaa', 'Jumamosi'], STANDALONEWEEKDAYS: ['Jumapilyi', 'Jumatatuu', 'Jumanne', 'Jumatanu', - 'Alhamisi', 'Ijumaa', 'Jumamosi'], + 'Alhamisi', 'Ijumaa', 'Jumamosi'], SHORTWEEKDAYS: ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'], STANDALONESHORTWEEKDAYS: ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'], NARROWWEEKDAYS: ['J', 'J', 'J', 'J', 'A', 'I', 'J'], @@ -7684,8 +10815,9 @@ goog.i18n.DateTimeSymbols_jmc = { SHORTQUARTERS: ['R1', 'R2', 'R3', 'R4'], QUARTERS: ['Robo 1', 'Robo 2', 'Robo 3', 'Robo 4'], AMPMS: ['utuko', 'kyiukonyi'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -7702,51 +10834,50 @@ goog.i18n.DateTimeSymbols_jmc_TZ = goog.i18n.DateTimeSymbols_jmc; * Date/time formatting symbols for locale ka. */ goog.i18n.DateTimeSymbols_ka = { - ERAS: ['ჩვენს წელთაღრიცხვამდე', - 'ჩვენი წელთაღრიცხვით'], - ERANAMES: ['ჩვენს წელთაღრიცხვამდე', - 'ჩვენი წელთაღრიცხვით'], + ERAS: ['ძვ. წ.', 'ახ. წ.'], + ERANAMES: ['ძველი წელთაღრიცხვით', + 'ახალი წელთაღრიცხვით'], NARROWMONTHS: ['ი', 'თ', 'მ', 'ა', 'მ', 'ი', 'ი', 'ა', 'ს', - 'ო', 'ნ', 'დ'], + 'ო', 'ნ', 'დ'], STANDALONENARROWMONTHS: ['ი', 'თ', 'მ', 'ა', 'მ', 'ი', 'ი', - 'ა', 'ს', 'ო', 'ნ', 'დ'], + 'ა', 'ს', 'ო', 'ნ', 'დ'], MONTHS: ['იანვარი', 'თებერვალი', - 'მარტი', 'აპრილი', 'მაისი', - 'ივნისი', 'ივლის', 'აგვისტო', - 'სექტემბერი', 'ოქტომბერი', - 'ნოემბერი', 'დეკემბერი'], + 'მარტი', 'აპრილი', 'მაისი', + 'ივნისი', 'ივლისი', 'აგვისტო', + 'სექტემბერი', 'ოქტომბერი', + 'ნოემბერი', 'დეკემბერი'], STANDALONEMONTHS: ['იანვარი', 'თებერვალი', - 'მარტი', 'აპრილი', 'მაისი', - 'ივნისი', 'ივლის', 'აგვისტო', - 'სექტემბერი', 'ოქტომბერი', - 'ნოემბერი', 'დეკემბერი'], + 'მარტი', 'აპრილი', 'მაისი', + 'ივნისი', 'ივლისი', 'აგვისტო', + 'სექტემბერი', 'ოქტომბერი', + 'ნოემბერი', 'დეკემბერი'], SHORTMONTHS: ['იან', 'თებ', 'მარ', 'აპრ', 'მაი', - 'ივნ', 'ივლ', 'აგვ', 'სექ', 'ოქტ', - 'ნოე', 'დეკ'], + 'ივნ', 'ივლ', 'აგვ', 'სექ', 'ოქტ', + 'ნოე', 'დეკ'], STANDALONESHORTMONTHS: ['იან', 'თებ', 'მარ', 'აპრ', - 'მაი', 'ივნ', 'ივლ', 'აგვ', 'სექ', - 'ოქტ', 'ნოე', 'დეკ'], + 'მაი', 'ივნ', 'ივლ', 'აგვ', 'სექ', + 'ოქტ', 'ნოე', 'დეკ'], WEEKDAYS: ['კვირა', 'ორშაბათი', - 'სამშაბათი', 'ოთხშაბათი', - 'ხუთშაბათი', 'პარასკევი', - 'შაბათი'], + 'სამშაბათი', 'ოთხშაბათი', + 'ხუთშაბათი', 'პარასკევი', + 'შაბათი'], STANDALONEWEEKDAYS: ['კვირა', 'ორშაბათი', - 'სამშაბათი', 'ოთხშაბათი', - 'ხუთშაბათი', 'პარასკევი', - 'შაბათი'], + 'სამშაბათი', 'ოთხშაბათი', + 'ხუთშაბათი', 'პარასკევი', + 'შაბათი'], SHORTWEEKDAYS: ['კვი', 'ორშ', 'სამ', 'ოთხ', - 'ხუთ', 'პარ', 'შაბ'], + 'ხუთ', 'პარ', 'შაბ'], STANDALONESHORTWEEKDAYS: ['კვი', 'ორშ', 'სამ', 'ოთხ', - 'ხუთ', 'პარ', 'შაბ'], + 'ხუთ', 'პარ', 'შაბ'], NARROWWEEKDAYS: ['კ', 'ო', 'ს', 'ო', 'ხ', 'პ', 'შ'], STANDALONENARROWWEEKDAYS: ['კ', 'ო', 'ს', 'ო', 'ხ', 'პ', 'შ'], SHORTQUARTERS: ['I კვ.', 'II კვ.', 'III კვ.', 'IV კვ.'], - QUARTERS: ['1-ლი კვარტალი', - 'მე-2 კვარტალი', 'მე-3 კვარტალი', - 'მე-4 კვარტალი'], - AMPMS: ['დილის', 'საღამოს'], - DATEFORMATS: ['EEEE, y MMMM dd', 'y MMMM d', 'y MMM d', 'yy/MM/dd'], + QUARTERS: ['I კვარტალი', 'II კვარტალი', + 'III კვარტალი', 'IV კვარტალი'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, dd MMMM, y', 'd MMMM, y', 'd MMM, y', 'dd.MM.yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1}, {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -7767,31 +10898,32 @@ goog.i18n.DateTimeSymbols_kab = { ERANAMES: ['send talalit n Ɛisa', 'seld talalit n Ɛisa'], NARROWMONTHS: ['Y', 'F', 'M', 'Y', 'M', 'Y', 'Y', 'Ɣ', 'C', 'T', 'N', 'D'], STANDALONENARROWMONTHS: ['Y', 'F', 'M', 'Y', 'M', 'Y', 'Y', 'Ɣ', 'C', 'T', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Yennayer', 'Fuṛar', 'Meɣres', 'Yebrir', 'Mayyu', 'Yunyu', - 'Yulyu', 'Ɣuct', 'Ctembeṛ', 'Tubeṛ', 'Nunembeṛ', 'Duǧembeṛ'], + 'Yulyu', 'Ɣuct', 'Ctembeṛ', 'Tubeṛ', 'Nunembeṛ', 'Duǧembeṛ'], STANDALONEMONTHS: ['Yennayer', 'Fuṛar', 'Meɣres', 'Yebrir', 'Mayyu', - 'Yunyu', 'Yulyu', 'Ɣuct', 'Ctembeṛ', 'Tubeṛ', 'Nunembeṛ', - 'Duǧembeṛ'], + 'Yunyu', 'Yulyu', 'Ɣuct', 'Ctembeṛ', 'Tubeṛ', 'Nunembeṛ', + 'Duǧembeṛ'], SHORTMONTHS: ['Yen', 'Fur', 'Meɣ', 'Yeb', 'May', 'Yun', 'Yul', 'Ɣuc', 'Cte', - 'Tub', 'Nun', 'Duǧ'], + 'Tub', 'Nun', 'Duǧ'], STANDALONESHORTMONTHS: ['Yen', 'Fur', 'Meɣ', 'Yeb', 'May', 'Yun', 'Yul', - 'Ɣuc', 'Cte', 'Tub', 'Nun', 'Duǧ'], + 'Ɣuc', 'Cte', 'Tub', 'Nun', 'Duǧ'], WEEKDAYS: ['Yanass', 'Sanass', 'Kraḍass', 'Kuẓass', 'Samass', 'Sḍisass', - 'Sayass'], + 'Sayass'], STANDALONEWEEKDAYS: ['Yanass', 'Sanass', 'Kraḍass', 'Kuẓass', 'Samass', - 'Sḍisass', 'Sayass'], + 'Sḍisass', 'Sayass'], SHORTWEEKDAYS: ['Yan', 'San', 'Kraḍ', 'Kuẓ', 'Sam', 'Sḍis', 'Say'], STANDALONESHORTWEEKDAYS: ['Yan', 'San', 'Kraḍ', 'Kuẓ', 'Sam', 'Sḍis', - 'Say'], + 'Say'], NARROWWEEKDAYS: ['Y', 'S', 'K', 'K', 'S', 'S', 'S'], STANDALONENARROWWEEKDAYS: ['Y', 'S', 'K', 'K', 'S', 'S', 'S'], SHORTQUARTERS: ['Kḍg1', 'Kḍg2', 'Kḍg3', 'Kḍg4'], QUARTERS: ['akraḍaggur amenzu', 'akraḍaggur wis-sin', - 'akraḍaggur wis-kraḍ', 'akraḍaggur wis-kuẓ'], + 'akraḍaggur wis-kraḍ', 'akraḍaggur wis-kuẓ'], AMPMS: ['n tufat', 'n tmeddit'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM, y', 'd/M/yyyy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM, y', 'd/M/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -7812,33 +10944,34 @@ goog.i18n.DateTimeSymbols_kam = { ERANAMES: ['Mbee wa Yesũ', 'Ĩtina wa Yesũ'], NARROWMONTHS: ['M', 'K', 'K', 'K', 'K', 'T', 'M', 'N', 'K', 'Ĩ', 'Ĩ', 'Ĩ'], STANDALONENARROWMONTHS: ['M', 'K', 'K', 'K', 'K', 'T', 'M', 'N', 'K', 'Ĩ', - 'Ĩ', 'Ĩ'], + 'Ĩ', 'Ĩ'], MONTHS: ['Mwai wa mbee', 'Mwai wa kelĩ', 'Mwai wa katatũ', 'Mwai wa kana', - 'Mwai wa katano', 'Mwai wa thanthatũ', 'Mwai wa muonza', - 'Mwai wa nyaanya', 'Mwai wa kenda', 'Mwai wa ĩkumi', - 'Mwai wa ĩkumi na ĩmwe', 'Mwai wa ĩkumi na ilĩ'], + 'Mwai wa katano', 'Mwai wa thanthatũ', 'Mwai wa muonza', 'Mwai wa nyaanya', + 'Mwai wa kenda', 'Mwai wa ĩkumi', 'Mwai wa ĩkumi na ĩmwe', + 'Mwai wa ĩkumi na ilĩ'], STANDALONEMONTHS: ['Mwai wa mbee', 'Mwai wa kelĩ', 'Mwai wa katatũ', - 'Mwai wa kana', 'Mwai wa katano', 'Mwai wa thanthatũ', 'Mwai wa muonza', - 'Mwai wa nyaanya', 'Mwai wa kenda', 'Mwai wa ĩkumi', - 'Mwai wa ĩkumi na ĩmwe', 'Mwai wa ĩkumi na ilĩ'], + 'Mwai wa kana', 'Mwai wa katano', 'Mwai wa thanthatũ', 'Mwai wa muonza', + 'Mwai wa nyaanya', 'Mwai wa kenda', 'Mwai wa ĩkumi', + 'Mwai wa ĩkumi na ĩmwe', 'Mwai wa ĩkumi na ilĩ'], SHORTMONTHS: ['Mbe', 'Kel', 'Ktũ', 'Kan', 'Ktn', 'Tha', 'Moo', 'Nya', 'Knd', - 'Ĩku', 'Ĩkm', 'Ĩkl'], + 'Ĩku', 'Ĩkm', 'Ĩkl'], STANDALONESHORTMONTHS: ['Mbe', 'Kel', 'Ktũ', 'Kan', 'Ktn', 'Tha', 'Moo', - 'Nya', 'Knd', 'Ĩku', 'Ĩkm', 'Ĩkl'], + 'Nya', 'Knd', 'Ĩku', 'Ĩkm', 'Ĩkl'], WEEKDAYS: ['Wa kyumwa', 'Wa kwambĩlĩlya', 'Wa kelĩ', 'Wa katatũ', - 'Wa kana', 'Wa katano', 'Wa thanthatũ'], + 'Wa kana', 'Wa katano', 'Wa thanthatũ'], STANDALONEWEEKDAYS: ['Wa kyumwa', 'Wa kwambĩlĩlya', 'Wa kelĩ', - 'Wa katatũ', 'Wa kana', 'Wa katano', 'Wa thanthatũ'], + 'Wa katatũ', 'Wa kana', 'Wa katano', 'Wa thanthatũ'], SHORTWEEKDAYS: ['Wky', 'Wkw', 'Wkl', 'Wtũ', 'Wkn', 'Wtn', 'Wth'], STANDALONESHORTWEEKDAYS: ['Wky', 'Wkw', 'Wkl', 'Wtũ', 'Wkn', 'Wtn', 'Wth'], NARROWWEEKDAYS: ['Y', 'W', 'E', 'A', 'A', 'A', 'A'], STANDALONENARROWWEEKDAYS: ['Y', 'W', 'E', 'A', 'A', 'A', 'A'], SHORTQUARTERS: ['L1', 'L2', 'L3', 'L4'], QUARTERS: ['Lovo ya mbee', 'Lovo ya kelĩ', 'Lovo ya katatũ', - 'Lovo ya kana'], + 'Lovo ya kana'], AMPMS: ['Ĩyakwakya', 'Ĩyawĩoo'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -7859,27 +10992,27 @@ goog.i18n.DateTimeSymbols_kde = { ERANAMES: ['Akanapawa Yesu', 'Nankuida Yesu'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Mwedi Ntandi', 'Mwedi wa Pili', 'Mwedi wa Tatu', 'Mwedi wa Nchechi', - 'Mwedi wa Nnyano', 'Mwedi wa Nnyano na Umo', 'Mwedi wa Nnyano na Mivili', - 'Mwedi wa Nnyano na Mitatu', 'Mwedi wa Nnyano na Nchechi', - 'Mwedi wa Nnyano na Nnyano', 'Mwedi wa Nnyano na Nnyano na U', - 'Mwedi wa Nnyano na Nnyano na M'], + 'Mwedi wa Nnyano', 'Mwedi wa Nnyano na Umo', 'Mwedi wa Nnyano na Mivili', + 'Mwedi wa Nnyano na Mitatu', 'Mwedi wa Nnyano na Nchechi', + 'Mwedi wa Nnyano na Nnyano', 'Mwedi wa Nnyano na Nnyano na U', + 'Mwedi wa Nnyano na Nnyano na M'], STANDALONEMONTHS: ['Mwedi Ntandi', 'Mwedi wa Pili', 'Mwedi wa Tatu', - 'Mwedi wa Nchechi', 'Mwedi wa Nnyano', 'Mwedi wa Nnyano na Umo', - 'Mwedi wa Nnyano na Mivili', 'Mwedi wa Nnyano na Mitatu', - 'Mwedi wa Nnyano na Nchechi', 'Mwedi wa Nnyano na Nnyano', - 'Mwedi wa Nnyano na Nnyano na U', 'Mwedi wa Nnyano na Nnyano na M'], + 'Mwedi wa Nchechi', 'Mwedi wa Nnyano', 'Mwedi wa Nnyano na Umo', + 'Mwedi wa Nnyano na Mivili', 'Mwedi wa Nnyano na Mitatu', + 'Mwedi wa Nnyano na Nchechi', 'Mwedi wa Nnyano na Nnyano', + 'Mwedi wa Nnyano na Nnyano na U', 'Mwedi wa Nnyano na Nnyano na M'], SHORTMONTHS: ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', - 'Okt', 'Nov', 'Des'], + 'Okt', 'Nov', 'Des'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', - 'Ago', 'Sep', 'Okt', 'Nov', 'Des'], + 'Ago', 'Sep', 'Okt', 'Nov', 'Des'], WEEKDAYS: ['Liduva lyapili', 'Liduva lyatatu', 'Liduva lyanchechi', - 'Liduva lyannyano', 'Liduva lyannyano na linji', - 'Liduva lyannyano na mavili', 'Liduva litandi'], + 'Liduva lyannyano', 'Liduva lyannyano na linji', + 'Liduva lyannyano na mavili', 'Liduva litandi'], STANDALONEWEEKDAYS: ['Liduva lyapili', 'Liduva lyatatu', 'Liduva lyanchechi', - 'Liduva lyannyano', 'Liduva lyannyano na linji', - 'Liduva lyannyano na mavili', 'Liduva litandi'], + 'Liduva lyannyano', 'Liduva lyannyano na linji', + 'Liduva lyannyano na mavili', 'Liduva litandi'], SHORTWEEKDAYS: ['Ll2', 'Ll3', 'Ll4', 'Ll5', 'Ll6', 'Ll7', 'Ll1'], STANDALONESHORTWEEKDAYS: ['Ll2', 'Ll3', 'Ll4', 'Ll5', 'Ll6', 'Ll7', 'Ll1'], NARROWWEEKDAYS: ['2', '3', '4', '5', '6', '7', '1'], @@ -7887,8 +11020,9 @@ goog.i18n.DateTimeSymbols_kde = { SHORTQUARTERS: ['L1', 'L2', 'L3', 'L4'], QUARTERS: ['Lobo 1', 'Lobo 2', 'Lobo 3', 'Lobo 4'], AMPMS: ['Muhi', 'Chilo'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -7909,30 +11043,31 @@ goog.i18n.DateTimeSymbols_kea = { ERANAMES: ['Antis di Kristu', 'Dispos di Kristu'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Janeru', 'Fevereru', 'Marsu', 'Abril', 'Maiu', 'Junhu', 'Julhu', - 'Agostu', 'Setenbru', 'Otubru', 'Nuvenbru', 'Dizenbru'], + 'Agostu', 'Setenbru', 'Otubru', 'Nuvenbru', 'Dizenbru'], STANDALONEMONTHS: ['Janeru', 'Fevereru', 'Marsu', 'Abril', 'Maiu', 'Junhu', - 'Julhu', 'Agostu', 'Setenbru', 'Otubru', 'Nuvenbru', 'Dizenbru'], + 'Julhu', 'Agostu', 'Setenbru', 'Otubru', 'Nuvenbru', 'Dizenbru'], SHORTMONTHS: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', - 'Otu', 'Nuv', 'Diz'], + 'Otu', 'Nuv', 'Diz'], STANDALONESHORTMONTHS: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', - 'Ago', 'Set', 'Otu', 'Nuv', 'Diz'], + 'Ago', 'Set', 'Otu', 'Nuv', 'Diz'], WEEKDAYS: ['dumingu', 'sigunda-fera', 'tersa-fera', 'kuarta-fera', - 'kinta-fera', 'sesta-fera', 'sabadu'], + 'kinta-fera', 'sesta-fera', 'sabadu'], STANDALONEWEEKDAYS: ['dumingu', 'sigunda-fera', 'tersa-fera', 'kuarta-fera', - 'kinta-fera', 'sesta-fera', 'sabadu'], + 'kinta-fera', 'sesta-fera', 'sabadu'], SHORTWEEKDAYS: ['dum', 'sig', 'ter', 'kua', 'kin', 'ses', 'sab'], STANDALONESHORTWEEKDAYS: ['dum', 'sig', 'ter', 'kua', 'kin', 'ses', 'sab'], NARROWWEEKDAYS: ['d', 's', 't', 'k', 'k', 's', 's'], STANDALONENARROWWEEKDAYS: ['d', 's', 't', 'k', 'k', 's', 's'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['Primeru Trimestri', 'Sigundu Trimestri', 'Terseru Trimestri', - 'Kuartu Trimestri'], + 'Kuartu Trimestri'], AMPMS: ['am', 'pm'], DATEFORMATS: ['EEEE, d \'di\' MMMM \'di\' y', 'd \'di\' MMMM \'di\' y', - 'd \'di\' MMM \'di\' y', 'd/M/yyyy'], + 'd \'di\' MMM \'di\' y', 'd/M/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -7953,20 +11088,20 @@ goog.i18n.DateTimeSymbols_khq = { ERANAMES: ['Isaa jine', 'Isaa jamanoo'], NARROWMONTHS: ['Ž', 'F', 'M', 'A', 'M', 'Ž', 'Ž', 'U', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['Ž', 'F', 'M', 'A', 'M', 'Ž', 'Ž', 'U', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Žanwiye', 'Feewiriye', 'Marsi', 'Awiril', 'Me', 'Žuweŋ', - 'Žuyye', 'Ut', 'Sektanbur', 'Oktoobur', 'Noowanbur', 'Deesanbur'], + 'Žuyye', 'Ut', 'Sektanbur', 'Oktoobur', 'Noowanbur', 'Deesanbur'], STANDALONEMONTHS: ['Žanwiye', 'Feewiriye', 'Marsi', 'Awiril', 'Me', - 'Žuweŋ', 'Žuyye', 'Ut', 'Sektanbur', 'Oktoobur', 'Noowanbur', - 'Deesanbur'], + 'Žuweŋ', 'Žuyye', 'Ut', 'Sektanbur', 'Oktoobur', 'Noowanbur', + 'Deesanbur'], SHORTMONTHS: ['Žan', 'Fee', 'Mar', 'Awi', 'Me', 'Žuw', 'Žuy', 'Ut', 'Sek', - 'Okt', 'Noo', 'Dee'], + 'Okt', 'Noo', 'Dee'], STANDALONESHORTMONTHS: ['Žan', 'Fee', 'Mar', 'Awi', 'Me', 'Žuw', 'Žuy', - 'Ut', 'Sek', 'Okt', 'Noo', 'Dee'], + 'Ut', 'Sek', 'Okt', 'Noo', 'Dee'], WEEKDAYS: ['Alhadi', 'Atini', 'Atalata', 'Alarba', 'Alhamiisa', 'Aljuma', - 'Assabdu'], + 'Assabdu'], STANDALONEWEEKDAYS: ['Alhadi', 'Atini', 'Atalata', 'Alarba', 'Alhamiisa', - 'Aljuma', 'Assabdu'], + 'Aljuma', 'Assabdu'], SHORTWEEKDAYS: ['Alh', 'Ati', 'Ata', 'Ala', 'Alm', 'Alj', 'Ass'], STANDALONESHORTWEEKDAYS: ['Alh', 'Ati', 'Ata', 'Ala', 'Alm', 'Alj', 'Ass'], NARROWWEEKDAYS: ['H', 'T', 'T', 'L', 'L', 'L', 'S'], @@ -7974,8 +11109,9 @@ goog.i18n.DateTimeSymbols_khq = { SHORTQUARTERS: ['A1', 'A2', 'A3', 'A4'], QUARTERS: ['Arrubu 1', 'Arrubu 2', 'Arrubu 3', 'Arrubu 4'], AMPMS: ['Adduha', 'Aluula'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM, y', 'd/M/yyyy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM, y', 'd/M/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -7996,33 +11132,34 @@ goog.i18n.DateTimeSymbols_ki = { ERANAMES: ['Mbere ya Kristo', 'Thutha wa Kristo'], NARROWMONTHS: ['J', 'K', 'G', 'K', 'G', 'G', 'M', 'K', 'K', 'I', 'I', 'D'], STANDALONENARROWMONTHS: ['J', 'K', 'G', 'K', 'G', 'G', 'M', 'K', 'K', 'I', - 'I', 'D'], + 'I', 'D'], MONTHS: ['Njenuarĩ', 'Mwere wa kerĩ', 'Mwere wa gatatũ', 'Mwere wa kana', - 'Mwere wa gatano', 'Mwere wa gatandatũ', 'Mwere wa mũgwanja', - 'Mwere wa kanana', 'Mwere wa kenda', 'Mwere wa ikũmi', - 'Mwere wa ikũmi na ũmwe', 'Ndithemba'], + 'Mwere wa gatano', 'Mwere wa gatandatũ', 'Mwere wa mũgwanja', + 'Mwere wa kanana', 'Mwere wa kenda', 'Mwere wa ikũmi', + 'Mwere wa ikũmi na ũmwe', 'Ndithemba'], STANDALONEMONTHS: ['Njenuarĩ', 'Mwere wa kerĩ', 'Mwere wa gatatũ', - 'Mwere wa kana', 'Mwere wa gatano', 'Mwere wa gatandatũ', - 'Mwere wa mũgwanja', 'Mwere wa kanana', 'Mwere wa kenda', - 'Mwere wa ikũmi', 'Mwere wa ikũmi na ũmwe', 'Ndithemba'], + 'Mwere wa kana', 'Mwere wa gatano', 'Mwere wa gatandatũ', + 'Mwere wa mũgwanja', 'Mwere wa kanana', 'Mwere wa kenda', + 'Mwere wa ikũmi', 'Mwere wa ikũmi na ũmwe', 'Ndithemba'], SHORTMONTHS: ['JEN', 'WKR', 'WGT', 'WKN', 'WTN', 'WTD', 'WMJ', 'WNN', 'WKD', - 'WIK', 'WMW', 'DIT'], + 'WIK', 'WMW', 'DIT'], STANDALONESHORTMONTHS: ['JEN', 'WKR', 'WGT', 'WKN', 'WTN', 'WTD', 'WMJ', - 'WNN', 'WKD', 'WIK', 'WMW', 'DIT'], + 'WNN', 'WKD', 'WIK', 'WMW', 'DIT'], WEEKDAYS: ['Kiumia', 'Njumatatũ', 'Njumaine', 'Njumatana', 'Aramithi', - 'Njumaa', 'Njumamothi'], + 'Njumaa', 'Njumamothi'], STANDALONEWEEKDAYS: ['Kiumia', 'Njumatatũ', 'Njumaine', 'Njumatana', - 'Aramithi', 'Njumaa', 'Njumamothi'], + 'Aramithi', 'Njumaa', 'Njumamothi'], SHORTWEEKDAYS: ['KMA', 'NTT', 'NMN', 'NMT', 'ART', 'NMA', 'NMM'], STANDALONESHORTWEEKDAYS: ['KMA', 'NTT', 'NMN', 'NMT', 'ART', 'NMA', 'NMM'], NARROWWEEKDAYS: ['K', 'N', 'N', 'N', 'A', 'N', 'N'], STANDALONENARROWWEEKDAYS: ['K', 'N', 'N', 'N', 'A', 'N', 'N'], SHORTQUARTERS: ['R1', 'R2', 'R3', 'R4'], QUARTERS: ['Robo ya mbere', 'Robo ya kerĩ', 'Robo ya gatatũ', - 'Robo ya kana'], + 'Robo ya kana'], AMPMS: ['Kiroko', 'Hwaĩ-inĩ'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -8043,37 +11180,38 @@ goog.i18n.DateTimeSymbols_kk = { ERANAMES: ['BCE', 'CE'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['қаңтар', 'ақпан', 'наурыз', 'сәуір', - 'мамыр', 'маусым', 'шілде', 'тамыз', - 'қыркүйек', 'қазан', 'қараша', 'желтоқсан'], - STANDALONEMONTHS: ['қаңтар', 'Ақпан', 'наурыз', 'сәуір', - 'мамыр', 'маусым', 'шілде', 'тамыз', - 'қыркүйек', 'қазан', 'қараша', 'желтоқсан'], + 'мамыр', 'маусым', 'шілде', 'тамыз', + 'қыркүйек', 'қазан', 'қараша', 'желтоқсан'], + STANDALONEMONTHS: ['қаңтар', 'ақпан', 'наурыз', 'сәуір', + 'мамыр', 'маусым', 'шілде', 'тамыз', + 'қыркүйек', 'қазан', 'қараша', 'желтоқсан'], SHORTMONTHS: ['қаң.', 'ақп.', 'нау.', 'сәу.', 'мам.', - 'мау.', 'шіл.', 'там.', 'қыр.', 'қаз.', 'қар.', - 'желт.'], + 'мау.', 'шіл.', 'там.', 'қыр.', 'қаз.', 'қар.', + 'желт.'], STANDALONESHORTMONTHS: ['қаң.', 'ақп.', 'нау.', 'сәу.', 'мам.', - 'мау.', 'шіл.', 'там.', 'қыр.', 'қаз.', 'қар.', - 'желт.'], + 'мау.', 'шіл.', 'там.', 'қыр.', 'қаз.', 'қар.', + 'желт.'], WEEKDAYS: ['жексені', 'дуйсенбі', 'сейсенбі', - 'сәренбі', 'бейсенбі', 'жұма', 'сенбі'], - STANDALONEWEEKDAYS: ['жексенбі', 'дүйсенбі', - 'сейсенбі', 'сәрсенбі', 'бейсенбі', 'жұма', - 'сенбі'], + 'сәренбі', 'бейсенбі', 'жұма', 'сенбі'], + STANDALONEWEEKDAYS: ['жексені', 'дуйсенбі', 'сейсенбі', + 'сәренбі', 'бейсенбі', 'жұма', 'сенбі'], SHORTWEEKDAYS: ['жс.', 'дс.', 'сс.', 'ср.', 'бс.', 'жм.', - 'сһ.'], + 'сһ.'], STANDALONESHORTWEEKDAYS: ['жс.', 'дс.', 'сс.', 'ср.', 'бс.', - 'жм.', 'сн.'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - SHORTQUARTERS: ['Q1', 'Q2', '3-інші тоқсан', - '4-інші тоқсан'], - QUARTERS: ['Q1', 'Q2', '3-інші тоқсан', '4-інші тоқсан'], + 'жм.', 'сһ.'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['1-інші тоқсан', '2-інші тоқсан', + '3-інші тоқсан', '4-інші тоқсан'], + QUARTERS: ['1-інші тоқсан', '2-інші тоқсан', + '3-інші тоқсан', '4-інші тоқсан'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, d MMMM y \'ж\'.', 'd MMMM y \'ж\'.', 'dd.MM.yyyy', - 'dd.MM.yy'], + DATEFORMATS: ['EEEE, d MMMM y \'ж\'.', 'd MMMM y \'ж\'.', 'dd.MM.y', + 'dd.MM.yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -8092,37 +11230,88 @@ goog.i18n.DateTimeSymbols_kk_Cyrl = goog.i18n.DateTimeSymbols_kk; goog.i18n.DateTimeSymbols_kk_Cyrl_KZ = goog.i18n.DateTimeSymbols_kk; +/** + * Date/time formatting symbols for locale kkj. + */ +goog.i18n.DateTimeSymbols_kkj = { + ERAS: ['BCE', 'CE'], + ERANAMES: ['BCE', 'CE'], + NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], + STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', + '11', '12'], + MONTHS: ['pamba', 'wanja', 'mbiyɔ mɛndoŋgɔ', 'Nyɔlɔmbɔŋgɔ', + 'Mɔnɔ ŋgbanja', 'Nyaŋgwɛ ŋgbanja', 'kuŋgwɛ', 'fɛ', 'njapi', + 'nyukul', '11', 'ɓulɓusɛ'], + STANDALONEMONTHS: ['pamba', 'wanja', 'mbiyɔ mɛndoŋgɔ', 'Nyɔlɔmbɔŋgɔ', + 'Mɔnɔ ŋgbanja', 'Nyaŋgwɛ ŋgbanja', 'kuŋgwɛ', 'fɛ', 'njapi', + 'nyukul', '11', 'ɓulɓusɛ'], + SHORTMONTHS: ['pamba', 'wanja', 'mbiyɔ mɛndoŋgɔ', 'Nyɔlɔmbɔŋgɔ', + 'Mɔnɔ ŋgbanja', 'Nyaŋgwɛ ŋgbanja', 'kuŋgwɛ', 'fɛ', 'njapi', + 'nyukul', '11', 'ɓulɓusɛ'], + STANDALONESHORTMONTHS: ['pamba', 'wanja', 'mbiyɔ mɛndoŋgɔ', + 'Nyɔlɔmbɔŋgɔ', 'Mɔnɔ ŋgbanja', 'Nyaŋgwɛ ŋgbanja', 'kuŋgwɛ', + 'fɛ', 'njapi', 'nyukul', '11', 'ɓulɓusɛ'], + WEEKDAYS: ['sɔndi', 'lundi', 'mardi', 'mɛrkɛrɛdi', 'yedi', 'vaŋdɛrɛdi', + 'mɔnɔ sɔndi'], + STANDALONEWEEKDAYS: ['sɔndi', 'lundi', 'mardi', 'mɛrkɛrɛdi', 'yedi', + 'vaŋdɛrɛdi', 'mɔnɔ sɔndi'], + SHORTWEEKDAYS: ['sɔndi', 'lundi', 'mardi', 'mɛrkɛrɛdi', 'yedi', + 'vaŋdɛrɛdi', 'mɔnɔ sɔndi'], + STANDALONESHORTWEEKDAYS: ['sɔndi', 'lundi', 'mardi', 'mɛrkɛrɛdi', 'yedi', + 'vaŋdɛrɛdi', 'mɔnɔ sɔndi'], + NARROWWEEKDAYS: ['so', 'lu', 'ma', 'mɛ', 'ye', 'va', 'ms'], + STANDALONENARROWWEEKDAYS: ['so', 'lu', 'ma', 'mɛ', 'ye', 'va', 'ms'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE dd MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM y'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale kkj_CM. + */ +goog.i18n.DateTimeSymbols_kkj_CM = goog.i18n.DateTimeSymbols_kkj; + + /** * Date/time formatting symbols for locale kl. */ goog.i18n.DateTimeSymbols_kl = { ERAS: ['Kr.in.si.', 'Kr.in.king.'], ERANAMES: ['Kristusip inunngornerata siornagut', - 'Kristusip inunngornerata kingornagut'], + 'Kristusip inunngornerata kingornagut'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['januari', 'februari', 'martsi', 'aprili', 'maji', 'juni', 'juli', - 'augustusi', 'septemberi', 'oktoberi', 'novemberi', 'decemberi'], + 'augustusi', 'septemberi', 'oktoberi', 'novemberi', 'decemberi'], STANDALONEMONTHS: ['januari', 'februari', 'martsi', 'aprili', 'maji', 'juni', - 'juli', 'augustusi', 'septemberi', 'oktoberi', 'novemberi', 'decemberi'], + 'juli', 'augustusi', 'septemberi', 'oktoberi', 'novemberi', 'decemberi'], SHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'aug', 'sep', - 'okt', 'nov', 'dec'], + 'okt', 'nov', 'dec'], STANDALONESHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', - 'aug', 'sep', 'okt', 'nov', 'dec'], + 'aug', 'sep', 'okt', 'nov', 'dec'], WEEKDAYS: ['sabaat', 'ataasinngorneq', 'marlunngorneq', 'pingasunngorneq', - 'sisamanngorneq', 'tallimanngorneq', 'arfininngorneq'], + 'sisamanngorneq', 'tallimanngorneq', 'arfininngorneq'], STANDALONEWEEKDAYS: ['sabaat', 'ataasinngorneq', 'marlunngorneq', - 'pingasunngorneq', 'sisamanngorneq', 'tallimanngorneq', 'arfininngorneq'], + 'pingasunngorneq', 'sisamanngorneq', 'tallimanngorneq', 'arfininngorneq'], SHORTWEEKDAYS: ['sab', 'ata', 'mar', 'pin', 'sis', 'tal', 'arf'], STANDALONESHORTWEEKDAYS: ['sab', 'ata', 'mar', 'pin', 'sis', 'tal', 'arf'], NARROWWEEKDAYS: ['S', 'A', 'M', 'P', 'S', 'T', 'A'], STANDALONENARROWWEEKDAYS: ['S', 'A', 'M', 'P', 'S', 'T', 'A'], - SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], - QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + SHORTQUARTERS: ['S1', 'S2', 'S3', 'S4'], + QUARTERS: ['ukiup sisamararterutaa 1', 'ukiup sisamararterutaa 2', + 'ukiup sisamararterutaa 3', 'ukiup sisamararterutaa 4'], AMPMS: ['ulloqeqqata-tungaa', 'ulloqeqqata-kingorna'], - DATEFORMATS: ['EEEE dd MMMM y', 'dd MMMM y', 'MMM dd, y', 'yyyy-MM-dd'], + DATEFORMATS: ['EEEE dd MMMM y', 'dd MMMM y', 'MMM dd, y', 'y-MM-dd'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -8143,31 +11332,32 @@ goog.i18n.DateTimeSymbols_kln = { ERANAMES: ['Amait kesich Jesu', 'Kokakesich Jesu'], NARROWMONTHS: ['M', 'N', 'K', 'I', 'N', 'W', 'R', 'K', 'B', 'E', 'K', 'K'], STANDALONENARROWMONTHS: ['M', 'N', 'K', 'I', 'N', 'W', 'R', 'K', 'B', 'E', - 'K', 'K'], + 'K', 'K'], MONTHS: ['Mulgul', 'Ng\'atyato', 'Kiptamo', 'Iwat kut', 'Ng\'eiyet', 'Waki', - 'Roptui', 'Kipkogaga', 'Buret', 'Epeso', 'Kipsunde netai', - 'Kipsunde nebo aeng'], + 'Roptui', 'Kipkogaga', 'Buret', 'Epeso', 'Kipsunde netai', + 'Kipsunde nebo aeng'], STANDALONEMONTHS: ['Mulgul', 'Ng\'atyato', 'Kiptamo', 'Iwat kut', 'Ng\'eiyet', - 'Waki', 'Roptui', 'Kipkogaga', 'Buret', 'Epeso', 'Kipsunde netai', - 'Kipsunde nebo aeng'], + 'Waki', 'Roptui', 'Kipkogaga', 'Buret', 'Epeso', 'Kipsunde netai', + 'Kipsunde nebo aeng'], SHORTMONTHS: ['Mul', 'Nga', 'Kip', 'Iwa', 'Nge', 'Wak', 'Rop', 'Kog', 'Bur', - 'Epe', 'Tai', 'Aen'], + 'Epe', 'Tai', 'Aen'], STANDALONESHORTMONTHS: ['Mul', 'Nga', 'Kip', 'Iwa', 'Nge', 'Wak', 'Rop', - 'Kog', 'Bur', 'Epe', 'Tai', 'Aen'], + 'Kog', 'Bur', 'Epe', 'Tai', 'Aen'], WEEKDAYS: ['Betutab tisap', 'Betut netai', 'Betutab aeng\'', 'Betutab somok', - 'Betutab ang\'wan', 'Betutab mut', 'Betutab lo'], + 'Betutab ang\'wan', 'Betutab mut', 'Betutab lo'], STANDALONEWEEKDAYS: ['Betutab tisap', 'Betut netai', 'Betutab aeng\'', - 'Betutab somok', 'Betutab ang\'wan', 'Betutab mut', 'Betutab lo'], + 'Betutab somok', 'Betutab ang\'wan', 'Betutab mut', 'Betutab lo'], SHORTWEEKDAYS: ['Tis', 'Tai', 'Aen', 'Som', 'Ang', 'Mut', 'Loh'], STANDALONESHORTWEEKDAYS: ['Tis', 'Tai', 'Aen', 'Som', 'Ang', 'Mut', 'Loh'], NARROWWEEKDAYS: ['T', 'T', 'A', 'S', 'A', 'M', 'L'], STANDALONENARROWWEEKDAYS: ['T', 'T', 'A', 'S', 'A', 'M', 'L'], SHORTQUARTERS: ['R1', 'R2', 'R3', 'R4'], QUARTERS: ['Robo netai', 'Robo nebo aeng\'', 'Robo nebo somok', - 'Robo nebo ang\'wan'], + 'Robo nebo ang\'wan'], AMPMS: ['Beet', 'Kemo'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -8184,48 +11374,51 @@ goog.i18n.DateTimeSymbols_kln_KE = goog.i18n.DateTimeSymbols_kln; * Date/time formatting symbols for locale km. */ goog.i18n.DateTimeSymbols_km = { - ERAS: ['មុន​គ.ស.', 'គ.ស.'], + ERAS: ['មុន គ.ស.', 'គ.ស.'], ERANAMES: ['មុន​គ្រិស្តសករាជ', - 'គ្រិស្តសករាជ'], + 'គ្រិស្តសករាជ'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], - MONTHS: ['មករា', 'កុម្ភៈ', 'មិនា', 'មេសា', - 'ឧសភា', 'មិថុនា', 'កក្កដា', - 'សីហា', 'កញ្ញា', 'តុលា', - 'វិច្ឆិកា', 'ធ្នូ'], - STANDALONEMONTHS: ['មករា', 'កុម្ភៈ', 'មិនា', - 'មេសា', 'ឧសភា', 'មិថុនា', - 'កក្កដា', 'សីហា', 'កញ្ញា', 'តុលា', - 'វិច្ឆិកា', 'ធ្នូ'], - SHORTMONTHS: ['១', '២', '៣', '៤', '៥', '៦', '៧', '៨', '៩', - '១០', '១១', '១២'], - STANDALONESHORTMONTHS: ['១', '២', '៣', '៤', '៥', '៦', '៧', - '៨', '៩', '១០', '១១', '១២'], - WEEKDAYS: ['ថ្ងៃអាទិត្យ', - '​ថ្ងៃច័ន្ទ', 'ថ្ងៃអង្គារ', - 'ថ្ងៃពុធ', 'ថ្ងៃព្រហស្បតិ៍', - 'ថ្ងៃសុក្រ', 'ថ្ងៃសៅរ៍'], - STANDALONEWEEKDAYS: ['ថ្ងៃអាទិត្យ', - '​ថ្ងៃច័ន្ទ', 'ថ្ងៃអង្គារ', - 'ថ្ងៃពុធ', 'ថ្ងៃព្រហស្បតិ៍', - 'ថ្ងៃសុក្រ', 'ថ្ងៃសៅរ៍'], - SHORTWEEKDAYS: ['អា', 'ច', 'អ', 'ពុ', 'ព្រ', 'សុ', - 'ស'], - STANDALONESHORTWEEKDAYS: ['អា', 'ច', 'អ', 'ពុ', 'ព្រ', - 'សុ', 'ស'], + '11', '12'], + MONTHS: ['មករា', 'កុម្ភៈ', 'មីនា', 'មេសា', + 'ឧសភា', 'មិថុនា', 'កក្កដា', 'សីហា', + 'កញ្ញា', 'តុលា', 'វិច្ឆិកា', + 'ធ្នូ'], + STANDALONEMONTHS: ['មករា', 'កុម្ភៈ', 'មីនា', + 'មេសា', 'ឧសភា', 'មិថុនា', 'កក្កដា', + 'សីហា', 'កញ្ញា', 'តុលា', + 'វិច្ឆិកា', 'ធ្នូ'], + SHORTMONTHS: ['មករា', 'កុម្ភៈ', 'មីនា', + 'មេសា', 'ឧសភា', 'មិថុនា', 'កក្កដា', + 'សីហា', 'កញ្ញា', 'តុលា', + 'វិច្ឆិកា', 'ធ្នូ'], + STANDALONESHORTMONTHS: ['មករា', 'កុម្ភៈ', 'មីនា', + 'មេសា', 'ឧសភា', 'មិថុនា', 'កក្កដា', + 'សីហា', 'កញ្ញា', 'តុលា', + 'វិច្ឆិកា', 'ធ្នូ'], + WEEKDAYS: ['អាទិត្យ', 'ចន្ទ', 'អង្គារ', + 'ពុធ', 'ព្រហស្បតិ៍', 'សុក្រ', + 'សៅរ៍'], + STANDALONEWEEKDAYS: ['អាទិត្យ', 'ចន្ទ', + 'អង្គារ', 'ពុធ', 'ព្រហស្បតិ៍', + 'សុក្រ', 'សៅរ៍'], + SHORTWEEKDAYS: ['អាទិត្យ', 'ចន្ទ', 'អង្គារ', + 'ពុធ', 'ព្រហស្បតិ៍', 'សុក្រ', + 'សៅរ៍'], + STANDALONESHORTWEEKDAYS: ['អាទិត្យ', 'ចន្ទ', + 'អង្គារ', 'ពុធ', 'ព្រហស្បតិ៍', + 'សុក្រ', 'សៅរ៍'], NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - SHORTQUARTERS: ['ត្រី១', 'ត្រី២', 'ត្រី៣', - 'ត្រី៤'], - QUARTERS: ['ត្រីមាសទី១', 'ត្រីមាសទី២', - 'ត្រីមាសទី៣', 'ត្រីមាសទី៤'], + SHORTQUARTERS: ['ត្រីមាស ១', 'ត្រីមាស ២', + 'ត្រីមាស ៣', 'ត្រីមាស ៤'], + QUARTERS: ['ត្រីមាស ទី ១', + 'ត្រីមាស ទី ២', 'ត្រីមាស ទី ៣', + 'ត្រីមាស ទី ៤'], AMPMS: ['ព្រឹក', 'ល្ងាច'], - DATEFORMATS: ['EEEE ថ្ងៃ d ខែ MMMM ឆ្នាំ y', - 'd ខែ MMMM ឆ្នាំ y', 'd MMM y', 'd/M/yyyy'], - TIMEFORMATS: ['H ម៉ោង m នាទី ss វិនាទី​ zzzz', - 'H ម៉ោង m នាទី ss វិនាទី​z', 'H:mm:ss', - 'H:mm'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM, y', 'd MMM y', 'd/M/y'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1}, {0}', '{1}, {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -8244,57 +11437,97 @@ goog.i18n.DateTimeSymbols_km_KH = goog.i18n.DateTimeSymbols_km; goog.i18n.DateTimeSymbols_kn_IN = { ERAS: ['ಕ್ರಿ.ಪೂ', 'ಜಾಹೀ'], ERANAMES: ['ಈಸಪೂವ೯.', 'ಕ್ರಿಸ್ತ ಶಕ'], - NARROWMONTHS: ['ಜ', 'ಫೆ', 'ಮಾ', 'ಎ', 'ಮೇ', 'ಜೂ', 'ಜು', - 'ಆ', 'ಸೆ', 'ಅ', 'ನ', 'ಡಿ'], + NARROWMONTHS: ['ಜ', 'ಫೆ', 'ಮಾ', 'ಏ', 'ಮೇ', 'ಜೂ', 'ಜು', + 'ಆ', 'ಸೆ', 'ಅ', 'ನ', 'ಡಿ'], STANDALONENARROWMONTHS: ['ಜ', 'ಫೆ', 'ಮಾ', 'ಎ', 'ಮೇ', 'ಜೂ', - 'ಜು', 'ಆ', 'ಸೆ', 'ಅ', 'ನ', 'ಡಿ'], + 'ಜು', 'ಆ', 'ಸೆ', 'ಅ', 'ನ', 'ಡಿ'], MONTHS: ['ಜನವರೀ', 'ಫೆಬ್ರವರೀ', 'ಮಾರ್ಚ್', - 'ಎಪ್ರಿಲ್', 'ಮೆ', 'ಜೂನ್', 'ಜುಲೈ', - 'ಆಗಸ್ಟ್', 'ಸಪ್ಟೆಂಬರ್', - 'ಅಕ್ಟೋಬರ್', 'ನವೆಂಬರ್', - 'ಡಿಸೆಂಬರ್'], + 'ಎಪ್ರಿಲ್', 'ಮೆ', 'ಜೂನ್', 'ಜುಲೈ', + 'ಆಗಸ್ಟ್', 'ಸಪ್ಟೆಂಬರ್', + 'ಅಕ್ಟೋಬರ್', 'ನವೆಂಬರ್', + 'ಡಿಸೆಂಬರ್'], STANDALONEMONTHS: ['ಜನವರೀ', 'ಫೆಬ್ರವರೀ', - 'ಮಾರ್ಚ್', 'ಎಪ್ರಿಲ್', 'ಮೆ', 'ಜೂನ್', - 'ಜುಲೈ', 'ಆಗಸ್ಟ್', 'ಸಪ್ಟೆಂಬರ್', - 'ಅಕ್ಟೋಬರ್', 'ನವೆಂಬರ್', - 'ಡಿಸೆಂಬರ್'], - SHORTMONTHS: ['ಜನವರೀ', 'ಫೆಬ್ರವರೀ', - 'ಮಾರ್ಚ್', 'ಎಪ್ರಿಲ್', 'ಮೆ', 'ಜೂನ್', - 'ಜುಲೈ', 'ಆಗಸ್ಟ್', 'ಸಪ್ಟೆಂಬರ್', - 'ಅಕ್ಟೋಬರ್', 'ನವೆಂಬರ್', - 'ಡಿಸೆಂಬರ್'], - STANDALONESHORTMONTHS: ['ಜನವರೀ', 'ಫೆಬ್ರವರೀ', - 'ಮಾರ್ಚ್', 'ಎಪ್ರಿಲ್', 'ಮೆ', 'ಜೂನ್', - 'ಜುಲೈ', 'ಆಗಸ್ಟ್', 'ಸಪ್ಟೆಂಬರ್', - 'ಅಕ್ಟೋಬರ್', 'ನವೆಂಬರ್', - 'ಡಿಸೆಂಬರ್'], + 'ಮಾರ್ಚ್', 'ಎಪ್ರಿಲ್', 'ಮೆ', 'ಜೂನ್', + 'ಜುಲೈ', 'ಆಗಸ್ಟ್', 'ಸಪ್ಟೆಂಬರ್', + 'ಅಕ್ಟೋಬರ್', 'ನವೆಂಬರ್', + 'ಡಿಸೆಂಬರ್'], + SHORTMONTHS: ['ಜನವರಿ', 'ಫೆಬ್ರುವರಿ', + 'ಮಾರ್ಚ್', 'ಏಪ್ರಿಲ್‌‌', 'ಮೇ', + 'ಜೂನ್', 'ಜುಲೈ', 'ಆಗಸ್ಟ್', + 'ಸೆಪ್ಟೆಂಬರ್‌', 'ಅಕ್ಟೋಬರ್', + 'ನವೆಂಬರ್', 'ಡಿಸೆಂಬರ್'], + STANDALONESHORTMONTHS: ['ಜನವರಿ', 'ಫೆಬ್ರುವರಿ', + 'ಮಾರ್ಚ್', 'ಏಪ್ರಿಲ್‌‌', 'ಮೇ', + 'ಜೂನ್', 'ಜುಲೈ', 'ಆಗಸ್ಟ್', + 'ಸೆಪ್ಟೆಂಬರ್‌', 'ಅಕ್ಟೋಬರ್', + 'ನವೆಂಬರ್', 'ಡಿಸೆಂಬರ್'], WEEKDAYS: ['ರವಿವಾರ', 'ಸೋಮವಾರ', - 'ಮಂಗಳವಾರ', 'ಬುಧವಾರ', 'ಗುರುವಾರ', - 'ಶುಕ್ರವಾರ', 'ಶನಿವಾರ'], + 'ಮಂಗಳವಾರ', 'ಬುಧವಾರ', 'ಗುರುವಾರ', + 'ಶುಕ್ರವಾರ', 'ಶನಿವಾರ'], STANDALONEWEEKDAYS: ['ರವಿವಾರ', 'ಸೋಮವಾರ', - 'ಮಂಗಳವಾರ', 'ಬುಧವಾರ', 'ಗುರುವಾರ', - 'ಶುಕ್ರವಾರ', 'ಶನಿವಾರ'], + 'ಮಂಗಳವಾರ', 'ಬುಧವಾರ', 'ಗುರುವಾರ', + 'ಶುಕ್ರವಾರ', 'ಶನಿವಾರ'], SHORTWEEKDAYS: ['ರ.', 'ಸೋ.', 'ಮಂ.', 'ಬು.', 'ಗು.', 'ಶು.', - 'ಶನಿ.'], + 'ಶನಿ.'], STANDALONESHORTWEEKDAYS: ['ರ.', 'ಸೋ.', 'ಮಂ.', 'ಬು.', 'ಗು.', - 'ಶು.', 'ಶನಿ.'], + 'ಶು.', 'ಶನಿ.'], NARROWWEEKDAYS: ['ರ', 'ಸೋ', 'ಮಂ', 'ಬು', 'ಗು', 'ಶು', - 'ಶ'], + 'ಶ'], STANDALONENARROWWEEKDAYS: ['ರ', 'ಸೋ', 'ಮಂ', 'ಬು', 'ಗು', - 'ಶು', 'ಶ'], - SHORTQUARTERS: ['ಒಂದು 1', 'ಎರಡು 2', 'ಮೂರು 3', - 'ನಾಲೃಕ 4'], - QUARTERS: ['ಒಂದು 1', 'ಎರಡು 2', 'ಮೂರು 3', - 'ನಾಲೃಕ 4'], - AMPMS: ['am', 'pm'], + 'ಶು', 'ಶ'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd-M-yy'], TIMEFORMATS: ['hh:mm:ss a zzzz', 'hh:mm:ss a z', 'hh:mm:ss a', 'hh:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [6, 6], FIRSTWEEKCUTOFFDAY: 5 }; +/** + * Date/time formatting symbols for locale ko_KP. + */ +goog.i18n.DateTimeSymbols_ko_KP = { + ERAS: ['기원전', '서기'], + ERANAMES: ['서력기원전', '서력기원'], + NARROWMONTHS: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', + '9월', '10월', '11월', '12월'], + STANDALONENARROWMONTHS: ['1월', '2월', '3월', '4월', '5월', '6월', + '7월', '8월', '9월', '10월', '11월', '12월'], + MONTHS: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', + '9월', '10월', '11월', '12월'], + STANDALONEMONTHS: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', + '8월', '9월', '10월', '11월', '12월'], + SHORTMONTHS: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', + '9월', '10월', '11월', '12월'], + STANDALONESHORTMONTHS: ['1월', '2월', '3월', '4월', '5월', '6월', + '7월', '8월', '9월', '10월', '11월', '12월'], + WEEKDAYS: ['일요일', '월요일', '화요일', '수요일', '목요일', + '금요일', '토요일'], + STANDALONEWEEKDAYS: ['일요일', '월요일', '화요일', '수요일', + '목요일', '금요일', '토요일'], + SHORTWEEKDAYS: ['일', '월', '화', '수', '목', '금', '토'], + STANDALONESHORTWEEKDAYS: ['일', '월', '화', '수', '목', '금', '토'], + NARROWWEEKDAYS: ['일', '월', '화', '수', '목', '금', '토'], + STANDALONENARROWWEEKDAYS: ['일', '월', '화', '수', '목', '금', '토'], + SHORTQUARTERS: ['1분기', '2분기', '3분기', '4분기'], + QUARTERS: ['제 1/4분기', '제 2/4분기', '제 3/4분기', + '제 4/4분기'], + AMPMS: ['오전', '오후'], + DATEFORMATS: ['y년 M월 d일 EEEE', 'y년 M월 d일', 'y. M. d.', + 'yy. M. d.'], + TIMEFORMATS: ['a h시 m분 s초 zzzz', 'a h시 m분 s초 z', 'a h:mm:ss', + 'a h:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + /** * Date/time formatting symbols for locale ko_KR. */ @@ -8302,33 +11535,34 @@ goog.i18n.DateTimeSymbols_ko_KR = { ERAS: ['기원전', '서기'], ERANAMES: ['서력기원전', '서력기원'], NARROWMONTHS: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', - '9월', '10월', '11월', '12월'], + '9월', '10월', '11월', '12월'], STANDALONENARROWMONTHS: ['1월', '2월', '3월', '4월', '5월', '6월', - '7월', '8월', '9월', '10월', '11월', '12월'], + '7월', '8월', '9월', '10월', '11월', '12월'], MONTHS: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', - '9월', '10월', '11월', '12월'], + '9월', '10월', '11월', '12월'], STANDALONEMONTHS: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', - '8월', '9월', '10월', '11월', '12월'], + '8월', '9월', '10월', '11월', '12월'], SHORTMONTHS: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', - '9월', '10월', '11월', '12월'], + '9월', '10월', '11월', '12월'], STANDALONESHORTMONTHS: ['1월', '2월', '3월', '4월', '5월', '6월', - '7월', '8월', '9월', '10월', '11월', '12월'], + '7월', '8월', '9월', '10월', '11월', '12월'], WEEKDAYS: ['일요일', '월요일', '화요일', '수요일', '목요일', - '금요일', '토요일'], + '금요일', '토요일'], STANDALONEWEEKDAYS: ['일요일', '월요일', '화요일', '수요일', - '목요일', '금요일', '토요일'], + '목요일', '금요일', '토요일'], SHORTWEEKDAYS: ['일', '월', '화', '수', '목', '금', '토'], STANDALONESHORTWEEKDAYS: ['일', '월', '화', '수', '목', '금', '토'], NARROWWEEKDAYS: ['일', '월', '화', '수', '목', '금', '토'], STANDALONENARROWWEEKDAYS: ['일', '월', '화', '수', '목', '금', '토'], SHORTQUARTERS: ['1분기', '2분기', '3분기', '4분기'], QUARTERS: ['제 1/4분기', '제 2/4분기', '제 3/4분기', - '제 4/4분기'], + '제 4/4분기'], AMPMS: ['오전', '오후'], - DATEFORMATS: ['y년 M월 d일 EEEE', 'y년 M월 d일', 'yyyy. M. d.', - 'yy. M. d.'], + DATEFORMATS: ['y년 M월 d일 EEEE', 'y년 M월 d일', 'y. M. d.', + 'yy. M. d.'], TIMEFORMATS: ['a h시 m분 s초 zzzz', 'a h시 m분 s초 z', 'a h:mm:ss', - 'a h:mm'], + 'a h:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -8340,49 +11574,50 @@ goog.i18n.DateTimeSymbols_ko_KR = { */ goog.i18n.DateTimeSymbols_kok = { ERAS: ['क्रिस्तपूर्व', - 'क्रिस्तशखा'], + 'क्रिस्तशखा'], ERANAMES: ['क्रिस्तपूर्व', - 'क्रिस्तशखा'], + 'क्रिस्तशखा'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['जानेवारी', 'फेब्रुवारी', - 'मार्च', 'एप्रिल', 'मे', 'जून', - 'जुलै', 'ओगस्ट', 'सेप्टेंबर', - 'ओक्टोबर', 'नोव्हेंबर', - 'डिसेंबर'], + 'मार्च', 'एप्रिल', 'मे', 'जून', + 'जुलै', 'ओगस्ट', 'सेप्टेंबर', + 'ओक्टोबर', 'नोव्हेंबर', + 'डिसेंबर'], STANDALONEMONTHS: ['जानेवारी', - 'फेब्रुवारी', 'मार्च', 'एप्रिल', - 'मे', 'जून', 'जुलै', 'ओगस्ट', - 'सेप्टेंबर', 'ओक्टोबर', - 'नोव्हेंबर', 'डिसेंबर'], + 'फेब्रुवारी', 'मार्च', 'एप्रिल', + 'मे', 'जून', 'जुलै', 'ओगस्ट', + 'सेप्टेंबर', 'ओक्टोबर', + 'नोव्हेंबर', 'डिसेंबर'], SHORTMONTHS: ['जानेवारी', 'फेब्रुवारी', - 'मार्च', 'एप्रिल', 'मे', 'जून', - 'जुलै', 'ओगस्ट', 'सेप्टेंबर', - 'ओक्टोबर', 'नोव्हेंबर', - 'डिसेंबर'], + 'मार्च', 'एप्रिल', 'मे', 'जून', + 'जुलै', 'ओगस्ट', 'सेप्टेंबर', + 'ओक्टोबर', 'नोव्हेंबर', + 'डिसेंबर'], STANDALONESHORTMONTHS: ['जानेवारी', - 'फेब्रुवारी', 'मार्च', 'एप्रिल', - 'मे', 'जून', 'जुलै', 'ओगस्ट', - 'सेप्टेंबर', 'ओक्टोबर', - 'नोव्हेंबर', 'डिसेंबर'], + 'फेब्रुवारी', 'मार्च', 'एप्रिल', + 'मे', 'जून', 'जुलै', 'ओगस्ट', + 'सेप्टेंबर', 'ओक्टोबर', + 'नोव्हेंबर', 'डिसेंबर'], WEEKDAYS: ['आदित्यवार', 'सोमवार', - 'मंगळार', 'बुधवार', 'गुरुवार', - 'शुक्रवार', 'शनिवार'], + 'मंगळार', 'बुधवार', 'गुरुवार', + 'शुक्रवार', 'शनिवार'], STANDALONEWEEKDAYS: ['आदित्यवार', 'सोमवार', - 'मंगळार', 'बुधवार', 'गुरुवार', - 'शुक्रवार', 'शनिवार'], + 'मंगळार', 'बुधवार', 'गुरुवार', + 'शुक्रवार', 'शनिवार'], SHORTWEEKDAYS: ['रवि', 'सोम', 'मंगळ', 'बुध', - 'गुरु', 'शुक्र', 'शनि'], + 'गुरु', 'शुक्र', 'शनि'], STANDALONESHORTWEEKDAYS: ['रवि', 'सोम', 'मंगळ', - 'बुध', 'गुरु', 'शुक्र', 'शनि'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + 'बुध', 'गुरु', 'शुक्र', 'शनि'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['म.पू.', 'म.नं.'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'dd-MM-yyyy', 'd-M-yy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'dd-MM-y', 'd-M-yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [6, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -8395,6 +11630,67 @@ goog.i18n.DateTimeSymbols_kok = { goog.i18n.DateTimeSymbols_kok_IN = goog.i18n.DateTimeSymbols_kok; +/** + * Date/time formatting symbols for locale ks. + */ +goog.i18n.DateTimeSymbols_ks = { + ZERODIGIT: 0x06F0, + ERAS: ['بی سی', 'اے ڈی'], + ERANAMES: ['قبٕل مسیٖح', 'عیٖسوی سنہٕ'], + NARROWMONTHS: ['ج', 'ف', 'م', 'ا', 'م', 'ج', 'ج', 'ا', 'س', 'س', + 'ا', 'ن'], + STANDALONENARROWMONTHS: ['ج', 'ف', 'م', 'ا', 'م', 'ج', 'ج', 'ا', 'س', + 'س', 'ا', 'ن'], + MONTHS: ['جنؤری', 'فرؤری', 'مارٕچ', 'اپریل', 'میٔ', + 'جوٗن', 'جوٗلایی', 'اگست', 'ستمبر', 'اکتوٗبر', + 'نومبر', 'دسمبر'], + STANDALONEMONTHS: ['جنؤری', 'فرؤری', 'مارٕچ', 'اپریل', + 'میٔ', 'جوٗن', 'جوٗلایی', 'اگست', 'ستمبر', + 'اکتوٗبر', 'نومبر', 'دسمبر'], + SHORTMONTHS: ['جنؤری', 'فرؤری', 'مارٕچ', 'اپریل', + 'میٔ', 'جوٗن', 'جوٗلایی', 'اگست', 'ستمبر', + 'اکتوٗبر', 'نومبر', 'دسمبر'], + STANDALONESHORTMONTHS: ['جنؤری', 'فرؤری', 'مارٕچ', + 'اپریل', 'میٔ', 'جوٗن', 'جوٗلایی', 'اگست', + 'ستمبر', 'اکتوٗبر', 'نومبر', 'دسمبر'], + WEEKDAYS: ['اَتھوار', 'ژٔنٛدرٕروار', 'بوٚموار', + 'بودوار', 'برٛٮ۪سوار', 'جُمہ', 'بٹوار'], + STANDALONEWEEKDAYS: ['اَتھوار', 'ژٔنٛدرٕروار', + 'بوٚموار', 'بودوار', 'برٛٮ۪سوار', 'جُمہ', + 'بٹوار'], + SHORTWEEKDAYS: ['آتھوار', 'ژٔنٛدٕروار', 'بوٚموار', + 'بودوار', 'برٛٮ۪سوار', 'جُمہ', 'بٹوار'], + STANDALONESHORTWEEKDAYS: ['آتھوار', 'ژٔنٛدٕروار', + 'بوٚموار', 'بودوار', 'برٛٮ۪سوار', 'جُمہ', + 'بٹوار'], + NARROWWEEKDAYS: ['ا', 'ژ', 'ب', 'ب', 'ب', 'ج', 'ب'], + STANDALONENARROWWEEKDAYS: ['ا', 'ژ', 'ب', 'ب', 'ب', 'ج', 'ب'], + SHORTQUARTERS: ['ژۄباگ', 'دوٚیِم ژۄباگ', + 'ترٛیِم ژۄباگ', 'ژوٗرِم ژۄباگ'], + QUARTERS: ['گۄڑنیُک ژۄباگ', 'دوٚیِم ژۄباگ', + 'ترٛیِم ژۄباگ', 'ژوٗرِم ژۄباگ'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, MMMM d, y', 'MMMM d, y', 'MMM d, y', 'M/d/yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: [6, 6], + FIRSTWEEKCUTOFFDAY: 5 +}; + + +/** + * Date/time formatting symbols for locale ks_Arab. + */ +goog.i18n.DateTimeSymbols_ks_Arab = goog.i18n.DateTimeSymbols_ks; + + +/** + * Date/time formatting symbols for locale ks_Arab_IN. + */ +goog.i18n.DateTimeSymbols_ks_Arab_IN = goog.i18n.DateTimeSymbols_ks; + + /** * Date/time formatting symbols for locale ksb. */ @@ -8403,19 +11699,19 @@ goog.i18n.DateTimeSymbols_ksb = { ERANAMES: ['Kabla ya Klisto', 'Baada ya Klisto'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Januali', 'Febluali', 'Machi', 'Aplili', 'Mei', 'Juni', 'Julai', - 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], STANDALONEMONTHS: ['Januali', 'Febluali', 'Machi', 'Aplili', 'Mei', 'Juni', - 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], SHORTMONTHS: ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', - 'Okt', 'Nov', 'Des'], + 'Okt', 'Nov', 'Des'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', - 'Ago', 'Sep', 'Okt', 'Nov', 'Des'], + 'Ago', 'Sep', 'Okt', 'Nov', 'Des'], WEEKDAYS: ['Jumaapii', 'Jumaatatu', 'Jumaane', 'Jumaatano', 'Alhamisi', - 'Ijumaa', 'Jumaamosi'], + 'Ijumaa', 'Jumaamosi'], STANDALONEWEEKDAYS: ['Jumaapii', 'Jumaatatu', 'Jumaane', 'Jumaatano', - 'Alhamisi', 'Ijumaa', 'Jumaamosi'], + 'Alhamisi', 'Ijumaa', 'Jumaamosi'], SHORTWEEKDAYS: ['Jpi', 'Jtt', 'Jmn', 'Jtn', 'Alh', 'Iju', 'Jmo'], STANDALONESHORTWEEKDAYS: ['Jpi', 'Jtt', 'Jmn', 'Jtn', 'Alh', 'Iju', 'Jmo'], NARROWWEEKDAYS: ['2', '3', '4', '5', 'A', 'I', '1'], @@ -8423,8 +11719,9 @@ goog.i18n.DateTimeSymbols_ksb = { SHORTQUARTERS: ['L1', 'L2', 'L3', 'L4'], QUARTERS: ['Lobo ya bosi', 'Lobo ya mbii', 'Lobo ya nnd\'atu', 'Lobo ya nne'], AMPMS: ['makeo', 'nyiaghuo'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -8445,37 +11742,38 @@ goog.i18n.DateTimeSymbols_ksf = { ERANAMES: ['di Yɛ́sus aká yálɛ', 'cámɛɛn kǝ kǝbɔpka Y'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['ŋwíí a ntɔ́ntɔ', 'ŋwíí akǝ bɛ́ɛ', 'ŋwíí akǝ ráá', - 'ŋwíí akǝ nin', 'ŋwíí akǝ táan', 'ŋwíí akǝ táafɔk', - 'ŋwíí akǝ táabɛɛ', 'ŋwíí akǝ táaraa', 'ŋwíí akǝ táanin', - 'ŋwíí akǝ ntɛk', 'ŋwíí akǝ ntɛk di bɔ́k', - 'ŋwíí akǝ ntɛk di bɛ́ɛ'], + 'ŋwíí akǝ nin', 'ŋwíí akǝ táan', 'ŋwíí akǝ táafɔk', + 'ŋwíí akǝ táabɛɛ', 'ŋwíí akǝ táaraa', 'ŋwíí akǝ táanin', + 'ŋwíí akǝ ntɛk', 'ŋwíí akǝ ntɛk di bɔ́k', + 'ŋwíí akǝ ntɛk di bɛ́ɛ'], STANDALONEMONTHS: ['ŋwíí a ntɔ́ntɔ', 'ŋwíí akǝ bɛ́ɛ', - 'ŋwíí akǝ ráá', 'ŋwíí akǝ nin', 'ŋwíí akǝ táan', - 'ŋwíí akǝ táafɔk', 'ŋwíí akǝ táabɛɛ', 'ŋwíí akǝ táaraa', - 'ŋwíí akǝ táanin', 'ŋwíí akǝ ntɛk', - 'ŋwíí akǝ ntɛk di bɔ́k', 'ŋwíí akǝ ntɛk di bɛ́ɛ'], + 'ŋwíí akǝ ráá', 'ŋwíí akǝ nin', 'ŋwíí akǝ táan', + 'ŋwíí akǝ táafɔk', 'ŋwíí akǝ táabɛɛ', 'ŋwíí akǝ táaraa', + 'ŋwíí akǝ táanin', 'ŋwíí akǝ ntɛk', + 'ŋwíí akǝ ntɛk di bɔ́k', 'ŋwíí akǝ ntɛk di bɛ́ɛ'], SHORTMONTHS: ['ŋ1', 'ŋ2', 'ŋ3', 'ŋ4', 'ŋ5', 'ŋ6', 'ŋ7', 'ŋ8', 'ŋ9', - 'ŋ10', 'ŋ11', 'ŋ12'], + 'ŋ10', 'ŋ11', 'ŋ12'], STANDALONESHORTMONTHS: ['ŋ1', 'ŋ2', 'ŋ3', 'ŋ4', 'ŋ5', 'ŋ6', 'ŋ7', - 'ŋ8', 'ŋ9', 'ŋ10', 'ŋ11', 'ŋ12'], + 'ŋ8', 'ŋ9', 'ŋ10', 'ŋ11', 'ŋ12'], WEEKDAYS: ['sɔ́ndǝ', 'lǝndí', 'maadí', 'mɛkrɛdí', 'jǝǝdí', - 'júmbá', 'samdí'], + 'júmbá', 'samdí'], STANDALONEWEEKDAYS: ['sɔ́ndǝ', 'lǝndí', 'maadí', 'mɛkrɛdí', - 'jǝǝdí', 'júmbá', 'samdí'], + 'jǝǝdí', 'júmbá', 'samdí'], SHORTWEEKDAYS: ['sɔ́n', 'lǝn', 'maa', 'mɛk', 'jǝǝ', 'júm', 'sam'], STANDALONESHORTWEEKDAYS: ['sɔ́n', 'lǝn', 'maa', 'mɛk', 'jǝǝ', 'júm', - 'sam'], + 'sam'], NARROWWEEKDAYS: ['s', 'l', 'm', 'm', 'j', 'j', 's'], STANDALONENARROWWEEKDAYS: ['s', 'l', 'm', 'm', 'j', 'j', 's'], SHORTQUARTERS: ['i1', 'i2', 'i3', 'i4'], QUARTERS: ['id́ɛ́n kǝbǝk kǝ ntɔ́ntɔ́', - 'idɛ́n kǝbǝk kǝ kǝbɛ́ɛ', 'idɛ́n kǝbǝk kǝ kǝráá', - 'idɛ́n kǝbǝk kǝ kǝnin'], + 'idɛ́n kǝbǝk kǝ kǝbɛ́ɛ', 'idɛ́n kǝbǝk kǝ kǝráá', + 'idɛ́n kǝbǝk kǝ kǝnin'], AMPMS: ['sárúwá', 'cɛɛ́nko'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/yyyy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -8496,29 +11794,29 @@ goog.i18n.DateTimeSymbols_ksh = { ERANAMES: ['vür Chrestus', 'noh Chrestus'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Jannewa', 'Fäbrowa', 'Määz', 'Aprell', 'Mäi', 'Juuni', 'Juuli', - 'Oujoß', 'Septämber', 'Oktoober', 'Novämber', 'Dezämber'], + 'Oujoß', 'Septämber', 'Oktoober', 'Novämber', 'Dezämber'], STANDALONEMONTHS: ['Jannewa', 'Fäbrowa', 'Määz', 'Aprell', 'Mäi', 'Juuni', - 'Juuli', 'Oujoß', 'Septämber', 'Oktoober', 'Novämber', 'Dezämber'], - SHORTMONTHS: ['Jan.', 'Fäb.', 'Mar.', 'Apr.', 'Mäi', 'Jun.', 'Jul.', 'Oug.', - 'Säp.', 'Okt.', 'Nov.', 'Dez.'], - STANDALONESHORTMONTHS: ['Jan.', 'Fäb.', 'Mar.', 'Apr.', 'Mäi', 'Jun.', - 'Jul.', 'Oug.', 'Säp.', 'Okt.', 'Nov.', 'Dez.'], + 'Juuli', 'Oujoß', 'Septämber', 'Oktoober', 'Novämber', 'Dezämber'], + SHORTMONTHS: ['Jan', 'Fäb', 'Mäz', 'Apr', 'Mäi', 'Jun', 'Jul', 'Ouj', + 'Säp', 'Okt', 'Nov', 'Dez'], + STANDALONESHORTMONTHS: ['Jan.', 'Fäb.', 'Mäz.', 'Apr.', 'Mäi', 'Jun.', + 'Jul.', 'Ouj.', 'Säp.', 'Okt.', 'Nov.', 'Dez.'], WEEKDAYS: ['Sunndaach', 'Moondaach', 'Dinnsdaach', 'Metwoch', 'Dunnersdaach', - 'Friidaach', 'Samsdaach'], + 'Friidaach', 'Samsdaach'], STANDALONEWEEKDAYS: ['Sunndaach', 'Moondaach', 'Dinnsdaach', 'Metwoch', - 'Dunnersdaach', 'Friidaach', 'Samsdaach'], + 'Dunnersdaach', 'Friidaach', 'Samsdaach'], SHORTWEEKDAYS: ['Su.', 'Mo.', 'Di.', 'Me.', 'Du.', 'Fr.', 'Sa.'], STANDALONESHORTWEEKDAYS: ['Su.', 'Mo.', 'Di.', 'Me.', 'Du.', 'Fr.', 'Sa.'], NARROWWEEKDAYS: ['S', 'M', 'D', 'M', 'D', 'F', 'S'], STANDALONENARROWWEEKDAYS: ['S', 'M', 'D', 'M', 'D', 'F', 'S'], SHORTQUARTERS: ['1.Q.', '2.Q.', '3.Q.', '4.Q.'], QUARTERS: ['1. Quattaal', '2. Quattaal', '3. Quattaal', '4. Quattaal'], - AMPMS: ['Uhr des vormittags', 'Uhr des nachmittags'], - DATEFORMATS: ['EEEE, \'dä\' d. MMMM y', 'd. MMMM y', 'd. MMM y', - 'd. M. yyyy'], + AMPMS: ['Uhr vörmiddaachs', 'Uhr nommendaachs'], + DATEFORMATS: ['EEEE, \'dä\' d. MMMM y', 'd. MMMM y', 'd. MMM. y', 'd. M. y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -8531,43 +11829,6 @@ goog.i18n.DateTimeSymbols_ksh = { goog.i18n.DateTimeSymbols_ksh_DE = goog.i18n.DateTimeSymbols_ksh; -/** - * Date/time formatting symbols for locale ku. - */ -goog.i18n.DateTimeSymbols_ku = { - ERAS: ['BZ', 'PZ'], - ERANAMES: ['BZ', 'PZ'], - NARROWMONTHS: ['ç', 's', 'a', 'n', 'g', 'h', '7', '8', '9', '10', '11', - '12'], - STANDALONENARROWMONTHS: ['ç', 's', 'a', 'n', 'g', 'h', '7', '8', '9', '10', - '11', '12'], - MONTHS: ['çile', 'sibat', 'adar', 'nîsan', 'gulan', 'hezîran', '7', '8', - '9', '10', '11', '12'], - STANDALONEMONTHS: ['çile', 'sibat', 'adar', 'nîsan', 'gulan', 'hezîran', - '7', '8', '9', '10', '11', '12'], - SHORTMONTHS: ['çil', 'sib', 'adr', 'nîs', 'gul', 'hez', 'tîr', '8', '9', - '10', '11', '12'], - STANDALONESHORTMONTHS: ['çil', 'sib', 'adr', 'nîs', 'gul', 'hez', 'tîr', - '8', '9', '10', '11', '12'], - WEEKDAYS: ['yekşem', 'duşem', 'şê', 'çarşem', 'pêncşem', 'în', - 'şemî'], - STANDALONEWEEKDAYS: ['yekşem', 'duşem', 'şê', 'çarşem', 'pêncşem', - 'în', 'şemî'], - SHORTWEEKDAYS: ['yş', 'dş', 'sş', 'çş', 'pş', 'în', 'ş'], - STANDALONESHORTWEEKDAYS: ['yş', 'dş', 'sş', 'çş', 'pş', 'în', 'ş'], - NARROWWEEKDAYS: ['y', 'd', 's', 'ç', 'p', 'î', 'ş'], - STANDALONENARROWWEEKDAYS: ['y', 'd', 's', 'ç', 'p', 'î', 'ş'], - SHORTQUARTERS: ['Ç1', 'Ç2', 'Ç3', 'Ç4'], - QUARTERS: ['Ç1', 'Ç2', 'Ç3', 'Ç4'], - AMPMS: ['BN', 'PN'], - DATEFORMATS: ['EEEE, y MMMM dd', 'y MMMM d', 'y MMM d', 'yyyy-MM-dd'], - TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], - FIRSTDAYOFWEEK: 0, - WEEKENDRANGE: [5, 6], - FIRSTWEEKCUTOFFDAY: 6 -}; - - /** * Date/time formatting symbols for locale kw. */ @@ -8576,30 +11837,31 @@ goog.i18n.DateTimeSymbols_kw = { ERANAMES: ['RC', 'AD'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['Mys Genver', 'Mys Whevrel', 'Mys Merth', 'Mys Ebrel', 'Mys Me', - 'Mys Efan', 'Mys Gortheren', 'Mye Est', 'Mys Gwyngala', 'Mys Hedra', - 'Mys Du', 'Mys Kevardhu'], + 'Mys Efan', 'Mys Gortheren', 'Mye Est', 'Mys Gwyngala', 'Mys Hedra', + 'Mys Du', 'Mys Kevardhu'], STANDALONEMONTHS: ['Mys Genver', 'Mys Whevrel', 'Mys Merth', 'Mys Ebrel', - 'Mys Me', 'Mys Efan', 'Mys Gortheren', 'Mye Est', 'Mys Gwyngala', - 'Mys Hedra', 'Mys Du', 'Mys Kevardhu'], + 'Mys Me', 'Mys Efan', 'Mys Gortheren', 'Mye Est', 'Mys Gwyngala', + 'Mys Hedra', 'Mys Du', 'Mys Kevardhu'], SHORTMONTHS: ['Gen', 'Whe', 'Mer', 'Ebr', 'Me', 'Efn', 'Gor', 'Est', 'Gwn', - 'Hed', 'Du', 'Kev'], + 'Hed', 'Du', 'Kev'], STANDALONESHORTMONTHS: ['Gen', 'Whe', 'Mer', 'Ebr', 'Me', 'Efn', 'Gor', 'Est', - 'Gwn', 'Hed', 'Du', 'Kev'], + 'Gwn', 'Hed', 'Du', 'Kev'], WEEKDAYS: ['De Sul', 'De Lun', 'De Merth', 'De Merher', 'De Yow', 'De Gwener', - 'De Sadorn'], + 'De Sadorn'], STANDALONEWEEKDAYS: ['De Sul', 'De Lun', 'De Merth', 'De Merher', 'De Yow', - 'De Gwener', 'De Sadorn'], + 'De Gwener', 'De Sadorn'], SHORTWEEKDAYS: ['Sul', 'Lun', 'Mth', 'Mhr', 'Yow', 'Gwe', 'Sad'], STANDALONESHORTWEEKDAYS: ['Sul', 'Lun', 'Mth', 'Mhr', 'Yow', 'Gwe', 'Sad'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['a.m.', 'p.m.'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -8612,6 +11874,58 @@ goog.i18n.DateTimeSymbols_kw = { goog.i18n.DateTimeSymbols_kw_GB = goog.i18n.DateTimeSymbols_kw; +/** + * Date/time formatting symbols for locale ky. + */ +goog.i18n.DateTimeSymbols_ky = { + ERAS: ['б.з. ч.', 'б.з.'], + ERANAMES: ['б.з. чейин', 'б.з.'], + NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], + STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', + '11', '12'], + MONTHS: ['январь', 'февраль', 'март', 'апрель', + 'май', 'июнь', 'июль', 'август', 'сентябрь', + 'октябрь', 'ноябрь', 'декабрь'], + STANDALONEMONTHS: ['Январь', 'Февраль', 'Март', + 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', + 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'], + SHORTMONTHS: ['янв.', 'фев.', 'мар.', 'апр.', 'май', 'июн.', + 'июл.', 'авг.', 'сен.', 'окт.', 'ноя.', 'дек.'], + STANDALONESHORTMONTHS: ['Янв.', 'Февр.', 'Мар.', 'Апр.', + 'Май', 'Июн.', 'Июл.', 'Авг.', 'Сен.', 'Окт.', 'Ноя.', + 'Дек.'], + WEEKDAYS: ['жекшемби', 'дүйшөмбү', 'шейшемби', + 'шаршемби', 'бейшемби', 'жума', 'ишемби'], + STANDALONEWEEKDAYS: ['Жекшемби', 'Дүйшөмбү', + 'Шейшемби', 'Шаршемби', 'Бейшемби', 'Жума', + 'Ишемби'], + SHORTWEEKDAYS: ['жк.', 'дш.', 'ше.', 'ша.', 'бш.', 'жм.', + 'иш.'], + STANDALONESHORTWEEKDAYS: ['Жк.', 'Дш.', 'Ше.', 'Ша.', 'Бш.', + 'Жм.', 'Иш.'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['1-чи кв.', '2-чи кв.', '3-чү кв.', + '4-чү кв.'], + QUARTERS: ['1-чи квартал', '2-чи квартал', + '3-чү квартал', '4-чү квартал'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, d MMMM y \'ж\'.', 'd MMMM y \'ж\'.', 'dd.MM.y', + 'dd.MM.yy'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale ky_KG. + */ +goog.i18n.DateTimeSymbols_ky_KG = goog.i18n.DateTimeSymbols_ky; + + /** * Date/time formatting symbols for locale lag. */ @@ -8620,33 +11934,33 @@ goog.i18n.DateTimeSymbols_lag = { ERANAMES: ['Kɨrɨsitʉ sɨ anavyaal', 'Kɨrɨsitʉ akavyaalwe'], NARROWMONTHS: ['F', 'N', 'K', 'I', 'I', 'I', 'M', 'V', 'S', 'I', 'S', 'S'], STANDALONENARROWMONTHS: ['F', 'N', 'K', 'I', 'I', 'I', 'M', 'V', 'S', 'I', - 'S', 'S'], + 'S', 'S'], MONTHS: ['Kʉfúngatɨ', 'Kʉnaanɨ', 'Kʉkeenda', 'Kwiikumi', - 'Kwiinyambála', 'Kwiidwaata', 'Kʉmʉʉnchɨ', 'Kʉvɨɨrɨ', - 'Kʉsaatʉ', 'Kwiinyi', 'Kʉsaano', 'Kʉsasatʉ'], + 'Kwiinyambála', 'Kwiidwaata', 'Kʉmʉʉnchɨ', 'Kʉvɨɨrɨ', 'Kʉsaatʉ', + 'Kwiinyi', 'Kʉsaano', 'Kʉsasatʉ'], STANDALONEMONTHS: ['Kʉfúngatɨ', 'Kʉnaanɨ', 'Kʉkeenda', 'Kwiikumi', - 'Kwiinyambála', 'Kwiidwaata', 'Kʉmʉʉnchɨ', 'Kʉvɨɨrɨ', - 'Kʉsaatʉ', 'Kwiinyi', 'Kʉsaano', 'Kʉsasatʉ'], + 'Kwiinyambála', 'Kwiidwaata', 'Kʉmʉʉnchɨ', 'Kʉvɨɨrɨ', 'Kʉsaatʉ', + 'Kwiinyi', 'Kʉsaano', 'Kʉsasatʉ'], SHORTMONTHS: ['Fúngatɨ', 'Naanɨ', 'Keenda', 'Ikúmi', 'Inyambala', - 'Idwaata', 'Mʉʉnchɨ', 'Vɨɨrɨ', 'Saatʉ', 'Inyi', 'Saano', - 'Sasatʉ'], + 'Idwaata', 'Mʉʉnchɨ', 'Vɨɨrɨ', 'Saatʉ', 'Inyi', 'Saano', 'Sasatʉ'], STANDALONESHORTMONTHS: ['Fúngatɨ', 'Naanɨ', 'Keenda', 'Ikúmi', - 'Inyambala', 'Idwaata', 'Mʉʉnchɨ', 'Vɨɨrɨ', 'Saatʉ', 'Inyi', - 'Saano', 'Sasatʉ'], + 'Inyambala', 'Idwaata', 'Mʉʉnchɨ', 'Vɨɨrɨ', 'Saatʉ', 'Inyi', 'Saano', + 'Sasatʉ'], WEEKDAYS: ['Jumapíiri', 'Jumatátu', 'Jumaíne', 'Jumatáano', 'Alamíisi', - 'Ijumáa', 'Jumamóosi'], + 'Ijumáa', 'Jumamóosi'], STANDALONEWEEKDAYS: ['Jumapíiri', 'Jumatátu', 'Jumaíne', 'Jumatáano', - 'Alamíisi', 'Ijumáa', 'Jumamóosi'], + 'Alamíisi', 'Ijumáa', 'Jumamóosi'], SHORTWEEKDAYS: ['Píili', 'Táatu', 'Íne', 'Táano', 'Alh', 'Ijm', 'Móosi'], STANDALONESHORTWEEKDAYS: ['Píili', 'Táatu', 'Íne', 'Táano', 'Alh', 'Ijm', - 'Móosi'], + 'Móosi'], NARROWWEEKDAYS: ['P', 'T', 'E', 'O', 'A', 'I', 'M'], STANDALONENARROWWEEKDAYS: ['P', 'T', 'E', 'O', 'A', 'I', 'M'], SHORTQUARTERS: ['Ncho 1', 'Ncho 2', 'Ncho 3', 'Ncho 4'], QUARTERS: ['Ncholo ya 1', 'Ncholo ya 2', 'Ncholo ya 3', 'Ncholo ya 4'], AMPMS: ['TOO', 'MUU'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -8667,20 +11981,20 @@ goog.i18n.DateTimeSymbols_lg = { ERANAMES: ['Kulisito nga tannaza', 'Bukya Kulisito Azaal'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Janwaliyo', 'Febwaliyo', 'Marisi', 'Apuli', 'Maayi', 'Juuni', - 'Julaayi', 'Agusito', 'Sebuttemba', 'Okitobba', 'Novemba', 'Desemba'], + 'Julaayi', 'Agusito', 'Sebuttemba', 'Okitobba', 'Novemba', 'Desemba'], STANDALONEMONTHS: ['Janwaliyo', 'Febwaliyo', 'Marisi', 'Apuli', 'Maayi', - 'Juuni', 'Julaayi', 'Agusito', 'Sebuttemba', 'Okitobba', 'Novemba', - 'Desemba'], + 'Juuni', 'Julaayi', 'Agusito', 'Sebuttemba', 'Okitobba', 'Novemba', + 'Desemba'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apu', 'Maa', 'Juu', 'Jul', 'Agu', 'Seb', - 'Oki', 'Nov', 'Des'], + 'Oki', 'Nov', 'Des'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apu', 'Maa', 'Juu', 'Jul', - 'Agu', 'Seb', 'Oki', 'Nov', 'Des'], + 'Agu', 'Seb', 'Oki', 'Nov', 'Des'], WEEKDAYS: ['Sabbiiti', 'Balaza', 'Lwakubiri', 'Lwakusatu', 'Lwakuna', - 'Lwakutaano', 'Lwamukaaga'], + 'Lwakutaano', 'Lwamukaaga'], STANDALONEWEEKDAYS: ['Sabbiiti', 'Balaza', 'Lwakubiri', 'Lwakusatu', - 'Lwakuna', 'Lwakutaano', 'Lwamukaaga'], + 'Lwakuna', 'Lwakutaano', 'Lwamukaaga'], SHORTWEEKDAYS: ['Sab', 'Bal', 'Lw2', 'Lw3', 'Lw4', 'Lw5', 'Lw6'], STANDALONESHORTWEEKDAYS: ['Sab', 'Bal', 'Lw2', 'Lw3', 'Lw4', 'Lw5', 'Lw6'], NARROWWEEKDAYS: ['S', 'B', 'L', 'L', 'L', 'L', 'L'], @@ -8688,8 +12002,9 @@ goog.i18n.DateTimeSymbols_lg = { SHORTQUARTERS: ['Kya1', 'Kya2', 'Kya3', 'Kya4'], QUARTERS: ['Kyakuna 1', 'Kyakuna 2', 'Kyakuna 3', 'Kyakuna 4'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -8702,6 +12017,52 @@ goog.i18n.DateTimeSymbols_lg = { goog.i18n.DateTimeSymbols_lg_UG = goog.i18n.DateTimeSymbols_lg; +/** + * Date/time formatting symbols for locale ln_AO. + */ +goog.i18n.DateTimeSymbols_ln_AO = { + ERAS: ['libóso ya', 'nsima ya Y'], + ERANAMES: ['Yambo ya Yézu Krís', 'Nsima ya Yézu Krís'], + NARROWMONTHS: ['y', 'f', 'm', 'a', 'm', 'y', 'y', 'a', 's', 'ɔ', 'n', 'd'], + STANDALONENARROWMONTHS: ['y', 'f', 'm', 'a', 'm', 'y', 'y', 'a', 's', 'ɔ', + 'n', 'd'], + MONTHS: ['sánzá ya yambo', 'sánzá ya míbalé', 'sánzá ya mísáto', + 'sánzá ya mínei', 'sánzá ya mítáno', 'sánzá ya motóbá', + 'sánzá ya nsambo', 'sánzá ya mwambe', 'sánzá ya libwa', + 'sánzá ya zómi', 'sánzá ya zómi na mɔ̌kɔ́', + 'sánzá ya zómi na míbalé'], + STANDALONEMONTHS: ['sánzá ya yambo', 'sánzá ya míbalé', + 'sánzá ya mísáto', 'sánzá ya mínei', 'sánzá ya mítáno', + 'sánzá ya motóbá', 'sánzá ya nsambo', 'sánzá ya mwambe', + 'sánzá ya libwa', 'sánzá ya zómi', 'sánzá ya zómi na mɔ̌kɔ́', + 'sánzá ya zómi na míbalé'], + SHORTMONTHS: ['yan', 'fbl', 'msi', 'apl', 'mai', 'yun', 'yul', 'agt', 'stb', + 'ɔtb', 'nvb', 'dsb'], + STANDALONESHORTMONTHS: ['yan', 'fbl', 'msi', 'apl', 'mai', 'yun', 'yul', + 'agt', 'stb', 'ɔtb', 'nvb', 'dsb'], + WEEKDAYS: ['eyenga', 'mokɔlɔ mwa yambo', 'mokɔlɔ mwa míbalé', + 'mokɔlɔ mwa mísáto', 'mokɔlɔ ya mínéi', 'mokɔlɔ ya mítáno', + 'mpɔ́sɔ'], + STANDALONEWEEKDAYS: ['eyenga', 'mokɔlɔ mwa yambo', 'mokɔlɔ mwa míbalé', + 'mokɔlɔ mwa mísáto', 'mokɔlɔ ya mínéi', 'mokɔlɔ ya mítáno', + 'mpɔ́sɔ'], + SHORTWEEKDAYS: ['eye', 'ybo', 'mbl', 'mst', 'min', 'mtn', 'mps'], + STANDALONESHORTWEEKDAYS: ['eye', 'ybo', 'mbl', 'mst', 'min', 'mtn', 'mps'], + NARROWWEEKDAYS: ['e', 'y', 'm', 'm', 'm', 'm', 'p'], + STANDALONENARROWWEEKDAYS: ['e', 'y', 'm', 'm', 'm', 'm', 'p'], + SHORTQUARTERS: ['SM1', 'SM2', 'SM3', 'SM4'], + QUARTERS: ['sánzá mísáto ya yambo', 'sánzá mísáto ya míbalé', + 'sánzá mísáto ya mísáto', 'sánzá mísáto ya mínei'], + AMPMS: ['ntɔ́ngɔ́', 'mpókwa'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/y'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + /** * Date/time formatting symbols for locale ln_CD. */ @@ -8710,37 +12071,84 @@ goog.i18n.DateTimeSymbols_ln_CD = { ERANAMES: ['Yambo ya Yézu Krís', 'Nsima ya Yézu Krís'], NARROWMONTHS: ['y', 'f', 'm', 'a', 'm', 'y', 'y', 'a', 's', 'ɔ', 'n', 'd'], STANDALONENARROWMONTHS: ['y', 'f', 'm', 'a', 'm', 'y', 'y', 'a', 's', 'ɔ', - 'n', 'd'], + 'n', 'd'], MONTHS: ['sánzá ya yambo', 'sánzá ya míbalé', 'sánzá ya mísáto', - 'sánzá ya mínei', 'sánzá ya mítáno', 'sánzá ya motóbá', - 'sánzá ya nsambo', 'sánzá ya mwambe', 'sánzá ya libwa', - 'sánzá ya zómi', 'sánzá ya zómi na mɔ̌kɔ́', - 'sánzá ya zómi na míbalé'], + 'sánzá ya mínei', 'sánzá ya mítáno', 'sánzá ya motóbá', + 'sánzá ya nsambo', 'sánzá ya mwambe', 'sánzá ya libwa', + 'sánzá ya zómi', 'sánzá ya zómi na mɔ̌kɔ́', + 'sánzá ya zómi na míbalé'], STANDALONEMONTHS: ['sánzá ya yambo', 'sánzá ya míbalé', - 'sánzá ya mísáto', 'sánzá ya mínei', 'sánzá ya mítáno', - 'sánzá ya motóbá', 'sánzá ya nsambo', 'sánzá ya mwambe', - 'sánzá ya libwa', 'sánzá ya zómi', 'sánzá ya zómi na mɔ̌kɔ́', - 'sánzá ya zómi na míbalé'], + 'sánzá ya mísáto', 'sánzá ya mínei', 'sánzá ya mítáno', + 'sánzá ya motóbá', 'sánzá ya nsambo', 'sánzá ya mwambe', + 'sánzá ya libwa', 'sánzá ya zómi', 'sánzá ya zómi na mɔ̌kɔ́', + 'sánzá ya zómi na míbalé'], SHORTMONTHS: ['yan', 'fbl', 'msi', 'apl', 'mai', 'yun', 'yul', 'agt', 'stb', - 'ɔtb', 'nvb', 'dsb'], + 'ɔtb', 'nvb', 'dsb'], STANDALONESHORTMONTHS: ['yan', 'fbl', 'msi', 'apl', 'mai', 'yun', 'yul', - 'agt', 'stb', 'ɔtb', 'nvb', 'dsb'], + 'agt', 'stb', 'ɔtb', 'nvb', 'dsb'], WEEKDAYS: ['eyenga', 'mokɔlɔ mwa yambo', 'mokɔlɔ mwa míbalé', - 'mokɔlɔ mwa mísáto', 'mokɔlɔ ya mínéi', 'mokɔlɔ ya mítáno', - 'mpɔ́sɔ'], + 'mokɔlɔ mwa mísáto', 'mokɔlɔ ya mínéi', 'mokɔlɔ ya mítáno', + 'mpɔ́sɔ'], STANDALONEWEEKDAYS: ['eyenga', 'mokɔlɔ mwa yambo', 'mokɔlɔ mwa míbalé', - 'mokɔlɔ mwa mísáto', 'mokɔlɔ ya mínéi', 'mokɔlɔ ya mítáno', - 'mpɔ́sɔ'], + 'mokɔlɔ mwa mísáto', 'mokɔlɔ ya mínéi', 'mokɔlɔ ya mítáno', + 'mpɔ́sɔ'], SHORTWEEKDAYS: ['eye', 'ybo', 'mbl', 'mst', 'min', 'mtn', 'mps'], STANDALONESHORTWEEKDAYS: ['eye', 'ybo', 'mbl', 'mst', 'min', 'mtn', 'mps'], NARROWWEEKDAYS: ['e', 'y', 'm', 'm', 'm', 'm', 'p'], STANDALONENARROWWEEKDAYS: ['e', 'y', 'm', 'm', 'm', 'm', 'p'], SHORTQUARTERS: ['SM1', 'SM2', 'SM3', 'SM4'], QUARTERS: ['sánzá mísáto ya yambo', 'sánzá mísáto ya míbalé', - 'sánzá mísáto ya mísáto', 'sánzá mísáto ya mínei'], + 'sánzá mísáto ya mísáto', 'sánzá mísáto ya mínei'], AMPMS: ['ntɔ́ngɔ́', 'mpókwa'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/yyyy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale ln_CF. + */ +goog.i18n.DateTimeSymbols_ln_CF = { + ERAS: ['libóso ya', 'nsima ya Y'], + ERANAMES: ['Yambo ya Yézu Krís', 'Nsima ya Yézu Krís'], + NARROWMONTHS: ['y', 'f', 'm', 'a', 'm', 'y', 'y', 'a', 's', 'ɔ', 'n', 'd'], + STANDALONENARROWMONTHS: ['y', 'f', 'm', 'a', 'm', 'y', 'y', 'a', 's', 'ɔ', + 'n', 'd'], + MONTHS: ['sánzá ya yambo', 'sánzá ya míbalé', 'sánzá ya mísáto', + 'sánzá ya mínei', 'sánzá ya mítáno', 'sánzá ya motóbá', + 'sánzá ya nsambo', 'sánzá ya mwambe', 'sánzá ya libwa', + 'sánzá ya zómi', 'sánzá ya zómi na mɔ̌kɔ́', + 'sánzá ya zómi na míbalé'], + STANDALONEMONTHS: ['sánzá ya yambo', 'sánzá ya míbalé', + 'sánzá ya mísáto', 'sánzá ya mínei', 'sánzá ya mítáno', + 'sánzá ya motóbá', 'sánzá ya nsambo', 'sánzá ya mwambe', + 'sánzá ya libwa', 'sánzá ya zómi', 'sánzá ya zómi na mɔ̌kɔ́', + 'sánzá ya zómi na míbalé'], + SHORTMONTHS: ['yan', 'fbl', 'msi', 'apl', 'mai', 'yun', 'yul', 'agt', 'stb', + 'ɔtb', 'nvb', 'dsb'], + STANDALONESHORTMONTHS: ['yan', 'fbl', 'msi', 'apl', 'mai', 'yun', 'yul', + 'agt', 'stb', 'ɔtb', 'nvb', 'dsb'], + WEEKDAYS: ['eyenga', 'mokɔlɔ mwa yambo', 'mokɔlɔ mwa míbalé', + 'mokɔlɔ mwa mísáto', 'mokɔlɔ ya mínéi', 'mokɔlɔ ya mítáno', + 'mpɔ́sɔ'], + STANDALONEWEEKDAYS: ['eyenga', 'mokɔlɔ mwa yambo', 'mokɔlɔ mwa míbalé', + 'mokɔlɔ mwa mísáto', 'mokɔlɔ ya mínéi', 'mokɔlɔ ya mítáno', + 'mpɔ́sɔ'], + SHORTWEEKDAYS: ['eye', 'ybo', 'mbl', 'mst', 'min', 'mtn', 'mps'], + STANDALONESHORTWEEKDAYS: ['eye', 'ybo', 'mbl', 'mst', 'min', 'mtn', 'mps'], + NARROWWEEKDAYS: ['e', 'y', 'm', 'm', 'm', 'm', 'p'], + STANDALONENARROWWEEKDAYS: ['e', 'y', 'm', 'm', 'm', 'm', 'p'], + SHORTQUARTERS: ['SM1', 'SM2', 'SM3', 'SM4'], + QUARTERS: ['sánzá mísáto ya yambo', 'sánzá mísáto ya míbalé', + 'sánzá mísáto ya mísáto', 'sánzá mísáto ya mínei'], + AMPMS: ['ntɔ́ngɔ́', 'mpókwa'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/y'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -8755,37 +12163,38 @@ goog.i18n.DateTimeSymbols_ln_CG = { ERANAMES: ['Yambo ya Yézu Krís', 'Nsima ya Yézu Krís'], NARROWMONTHS: ['y', 'f', 'm', 'a', 'm', 'y', 'y', 'a', 's', 'ɔ', 'n', 'd'], STANDALONENARROWMONTHS: ['y', 'f', 'm', 'a', 'm', 'y', 'y', 'a', 's', 'ɔ', - 'n', 'd'], + 'n', 'd'], MONTHS: ['sánzá ya yambo', 'sánzá ya míbalé', 'sánzá ya mísáto', - 'sánzá ya mínei', 'sánzá ya mítáno', 'sánzá ya motóbá', - 'sánzá ya nsambo', 'sánzá ya mwambe', 'sánzá ya libwa', - 'sánzá ya zómi', 'sánzá ya zómi na mɔ̌kɔ́', - 'sánzá ya zómi na míbalé'], + 'sánzá ya mínei', 'sánzá ya mítáno', 'sánzá ya motóbá', + 'sánzá ya nsambo', 'sánzá ya mwambe', 'sánzá ya libwa', + 'sánzá ya zómi', 'sánzá ya zómi na mɔ̌kɔ́', + 'sánzá ya zómi na míbalé'], STANDALONEMONTHS: ['sánzá ya yambo', 'sánzá ya míbalé', - 'sánzá ya mísáto', 'sánzá ya mínei', 'sánzá ya mítáno', - 'sánzá ya motóbá', 'sánzá ya nsambo', 'sánzá ya mwambe', - 'sánzá ya libwa', 'sánzá ya zómi', 'sánzá ya zómi na mɔ̌kɔ́', - 'sánzá ya zómi na míbalé'], + 'sánzá ya mísáto', 'sánzá ya mínei', 'sánzá ya mítáno', + 'sánzá ya motóbá', 'sánzá ya nsambo', 'sánzá ya mwambe', + 'sánzá ya libwa', 'sánzá ya zómi', 'sánzá ya zómi na mɔ̌kɔ́', + 'sánzá ya zómi na míbalé'], SHORTMONTHS: ['yan', 'fbl', 'msi', 'apl', 'mai', 'yun', 'yul', 'agt', 'stb', - 'ɔtb', 'nvb', 'dsb'], + 'ɔtb', 'nvb', 'dsb'], STANDALONESHORTMONTHS: ['yan', 'fbl', 'msi', 'apl', 'mai', 'yun', 'yul', - 'agt', 'stb', 'ɔtb', 'nvb', 'dsb'], + 'agt', 'stb', 'ɔtb', 'nvb', 'dsb'], WEEKDAYS: ['eyenga', 'mokɔlɔ mwa yambo', 'mokɔlɔ mwa míbalé', - 'mokɔlɔ mwa mísáto', 'mokɔlɔ ya mínéi', 'mokɔlɔ ya mítáno', - 'mpɔ́sɔ'], + 'mokɔlɔ mwa mísáto', 'mokɔlɔ ya mínéi', 'mokɔlɔ ya mítáno', + 'mpɔ́sɔ'], STANDALONEWEEKDAYS: ['eyenga', 'mokɔlɔ mwa yambo', 'mokɔlɔ mwa míbalé', - 'mokɔlɔ mwa mísáto', 'mokɔlɔ ya mínéi', 'mokɔlɔ ya mítáno', - 'mpɔ́sɔ'], + 'mokɔlɔ mwa mísáto', 'mokɔlɔ ya mínéi', 'mokɔlɔ ya mítáno', + 'mpɔ́sɔ'], SHORTWEEKDAYS: ['eye', 'ybo', 'mbl', 'mst', 'min', 'mtn', 'mps'], STANDALONESHORTWEEKDAYS: ['eye', 'ybo', 'mbl', 'mst', 'min', 'mtn', 'mps'], NARROWWEEKDAYS: ['e', 'y', 'm', 'm', 'm', 'm', 'p'], STANDALONENARROWWEEKDAYS: ['e', 'y', 'm', 'm', 'm', 'm', 'p'], SHORTQUARTERS: ['SM1', 'SM2', 'SM3', 'SM4'], QUARTERS: ['sánzá mísáto ya yambo', 'sánzá mísáto ya míbalé', - 'sánzá mísáto ya mísáto', 'sánzá mísáto ya mínei'], + 'sánzá mísáto ya mísáto', 'sánzá mísáto ya mínei'], AMPMS: ['ntɔ́ngɔ́', 'mpókwa'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/yyyy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -8796,45 +12205,46 @@ goog.i18n.DateTimeSymbols_ln_CG = { * Date/time formatting symbols for locale lo. */ goog.i18n.DateTimeSymbols_lo = { - ERAS: ['ປີກ່ອນຄິດສະການທີ່', 'ຄ.ສ.'], - ERANAMES: ['ປີກ່ອນຄິດສະການທີ່', 'ຄ.ສ.'], + ERAS: ['ບີຊີ', 'ຄ.ສ.'], + ERANAMES: ['ບີຊີ', 'ຄ.ສ.'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['ມັງກອນ', 'ກຸມພາ', 'ມີນາ', - 'ເມສາ', 'ພຶດສະພາ', 'ມິຖຸນາ', - 'ກໍລະກົດ', 'ສິງຫາ', 'ກັນຍາ', - 'ຕຸລາ', 'ພະຈິກ', 'ທັນວາ'], + 'ເມສາ', 'ພຶດສະພາ', 'ມິຖຸນາ', + 'ກໍລະກົດ', 'ສິງຫາ', 'ກັນຍາ', + 'ຕຸລາ', 'ພະຈິກ', 'ທັນວາ'], STANDALONEMONTHS: ['ມັງກອນ', 'ກຸມພາ', 'ມີນາ', - 'ເມສາ', 'ພຶດສະພາ', 'ມິຖຸນາ', - 'ກໍລະກົດ', 'ສິງຫາ', 'ກັນຍາ', - 'ຕຸລາ', 'ພະຈິກ', 'ທັນວາ'], - SHORTMONTHS: ['ມ.ກ.', 'ກ.ພ.', 'ມີ.ນ.', 'ມ.ສ..', 'ພ.ພ.', - 'ມິ.ຖ.', 'ກ.ລ.', 'ສ.ຫ.', 'ກ.ຍ.', 'ຕ.ລ.', 'ພ.ຈ.', - 'ທ.ວ.'], - STANDALONESHORTMONTHS: ['ມ.ກ.', 'ກ.ພ.', 'ມີ.ນ.', 'ມ.ສ..', - 'ພ.ພ.', 'ມິ.ຖ.', 'ກ.ລ.', 'ສ.ຫ.', 'ກ.ຍ.', 'ຕ.ລ.', - 'ພ.ຈ.', 'ທ.ວ.'], + 'ເມສາ', 'ພຶດສະພາ', 'ມິຖຸນາ', + 'ກໍລະກົດ', 'ສິງຫາ', 'ກັນຍາ', + 'ຕຸລາ', 'ພະຈິກ', 'ທັນວາ'], + SHORTMONTHS: ['ມ.ກ.', 'ກ.ພ.', 'ມ.ນ.', 'ມ.ສ.', 'ພ.ພ.', + 'ມິ.ຖ.', 'ກ.ລ.', 'ສ.ຫ.', 'ກ.ຍ.', 'ຕ.ລ.', 'ພ.ຈ.', + 'ທ.ວ.'], + STANDALONESHORTMONTHS: ['ມ.ກ.', 'ກ.ພ.', 'ມີ.ນ.', 'ມ.ສ.', + 'ພ.ພ.', 'ມິ.ຖ.', 'ກ.ລ.', 'ສ.ຫ.', 'ກ.ຍ.', 'ຕ.ລ.', + 'ພ.ຈ.', 'ທ.ວ.'], WEEKDAYS: ['ວັນອາທິດ', 'ວັນຈັນ', - 'ວັນອັງຄານ', 'ວັນພຸດ', - 'ວັນພະຫັດ', 'ວັນສຸກ', - 'ວັນເສົາ'], + 'ວັນອັງຄານ', 'ວັນພຸດ', + 'ວັນພະຫັດ', 'ວັນສຸກ', 'ວັນເສົາ'], STANDALONEWEEKDAYS: ['ວັນອາທິດ', 'ວັນຈັນ', - 'ວັນອັງຄານ', 'ວັນພຸດ', - 'ວັນພະຫັດ', 'ວັນສຸກ', - 'ວັນເສົາ'], + 'ວັນອັງຄານ', 'ວັນພຸດ', + 'ວັນພະຫັດ', 'ວັນສຸກ', 'ວັນເສົາ'], SHORTWEEKDAYS: ['ອາ.', 'ຈ.', 'ອ.', 'ພ.', 'ພຫ.', 'ສກ.', - 'ສ.'], - STANDALONESHORTWEEKDAYS: ['ອາ.', 'ຈ.', 'ອ.', 'ພ.', 'ພຫ.', - 'ສກ.', 'ສ.'], + 'ສ.'], + STANDALONESHORTWEEKDAYS: ['ທ.', 'ຈ.', 'ອ.', 'ພ.', 'ພຫ.', + 'ສກ.', 'ສ.'], NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], - QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], - AMPMS: ['ກ່ອນທ່ຽງ', 'ຫລັງທ່ຽງ'], - DATEFORMATS: ['EEEEທີ d MMMM G y', 'd MMMM y', 'd MMM y', 'd/M/yyyy'], - TIMEFORMATS: ['Hໂມງ mນາທີ ss ວິນາທີzzzz', - 'H ໂມງ mນາທີss z', 'H:mm:ss', 'H:mm'], + STANDALONENARROWWEEKDAYS: ['ທ', 'ຈ', 'ຄ', '​ພຸ', 'ພ', + '​ສຸ', 'ສ'], + SHORTQUARTERS: ['ຄິວ1', 'ຄີວ2', 'ຄີວ3', 'ຄິວ4'], + QUARTERS: ['ໄຕມາດ1', 'ໄຕມາດ2', 'ໄຕມາດ3', + 'ໄຕມາດ4'], + AMPMS: ['ກ່ອນທ່ຽງ', 'ຫຼັງທ່ຽງ'], + DATEFORMATS: ['EEEEທີ d MMMM G y', 'd MMMM y', 'd MMM y', 'd/M/y'], + TIMEFORMATS: ['H ໂມງ m ນາທີ ss ວິນາທີ zzzz', + 'H ໂມງ m ນາທີ ss ວິນາທີ z', 'H:mm:ss', 'H:mm'], + DATETIMEFORMATS: ['{1}, {0}', '{1}, {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -8855,30 +12265,31 @@ goog.i18n.DateTimeSymbols_lt_LT = { ERANAMES: ['prieš Kristų', 'po Kristaus'], NARROWMONTHS: ['S', 'V', 'K', 'B', 'G', 'B', 'L', 'R', 'R', 'S', 'L', 'G'], STANDALONENARROWMONTHS: ['S', 'V', 'K', 'B', 'G', 'B', 'L', 'R', 'R', 'S', - 'L', 'G'], - MONTHS: ['sausio', 'vasaris', 'kovas', 'balandis', 'gegužė', 'birželis', - 'liepa', 'rugpjūtis', 'rugsėjis', 'spalis', 'lapkritis', 'gruodis'], - STANDALONEMONTHS: ['Sausis', 'Vasaris', 'Kovas', 'Balandis', 'Gegužė', - 'Birželis', 'Liepa', 'Rugpjūtis', 'Rugsėjis', 'Spalis', 'Lapkritis', - 'Gruodis'], - SHORTMONTHS: ['Saus.', 'Vas', 'Kov.', 'Bal.', 'Geg.', 'Bir.', 'Liep.', - 'Rugp.', 'Rugs.', 'Spal.', 'Lapkr.', 'Gruod.'], - STANDALONESHORTMONTHS: ['Saus.', 'Vas.', 'Kov.', 'Bal.', 'Geg.', 'Bir.', - 'Liep.', 'Rugp.', 'Rugs.', 'Spal.', 'Lapkr.', 'Gruod.'], + 'L', 'G'], + MONTHS: ['sausis', 'vasaris', 'kovas', 'balandis', 'gegužė', 'birželis', + 'liepa', 'rugpjūtis', 'rugsėjis', 'spalis', 'lapkritis', 'gruodis'], + STANDALONEMONTHS: ['sausis', 'vasaris', 'kovas', 'balandis', 'gegužė', + 'birželis', 'liepa', 'rugpjūtis', 'rugsėjis', 'spalis', 'lapkritis', + 'gruodis'], + SHORTMONTHS: ['saus.', 'vas.', 'kov.', 'bal.', 'geg.', 'birž.', 'liep.', + 'rugp.', 'rugs.', 'spal.', 'lapkr.', 'gruod.'], + STANDALONESHORTMONTHS: ['saus.', 'vas.', 'kov.', 'bal.', 'geg.', 'birž.', + 'liep.', 'rugp.', 'rugs.', 'spal.', 'lapkr.', 'gruod.'], WEEKDAYS: ['sekmadienis', 'pirmadienis', 'antradienis', 'trečiadienis', - 'ketvirtadienis', 'penktadienis', 'šeštadienis'], + 'ketvirtadienis', 'penktadienis', 'šeštadienis'], STANDALONEWEEKDAYS: ['sekmadienis', 'pirmadienis', 'antradienis', - 'trečiadienis', 'ketvirtadienis', 'penktadienis', 'šeštadienis'], - SHORTWEEKDAYS: ['Sk', 'Pr', 'An', 'Tr', 'Kt', 'Pn', 'Št'], - STANDALONESHORTWEEKDAYS: ['Sk', 'Pr', 'An', 'Tr', 'Kt', 'Pn', 'Št'], + 'trečiadienis', 'ketvirtadienis', 'penktadienis', 'šeštadienis'], + SHORTWEEKDAYS: ['sk', 'pr', 'an', 'tr', 'kt', 'pn', 'št'], + STANDALONESHORTWEEKDAYS: ['sk', 'pr', 'an', 'tr', 'kt', 'pn', 'št'], NARROWWEEKDAYS: ['S', 'P', 'A', 'T', 'K', 'P', 'Š'], STANDALONENARROWWEEKDAYS: ['S', 'P', 'A', 'T', 'K', 'P', 'Š'], - SHORTQUARTERS: ['I k.', 'II k.', 'III k.', 'IV ketv.'], + SHORTQUARTERS: ['I k.', 'II k.', 'III k.', 'IV k.'], QUARTERS: ['I ketvirtis', 'II ketvirtis', 'III ketvirtis', 'IV ketvirtis'], AMPMS: ['priešpiet', 'popiet'], DATEFORMATS: ['y \'m\'. MMMM d \'d\'., EEEE', 'y \'m\'. MMMM d \'d\'.', - 'y MMM d', 'yyyy-MM-dd'], + 'y MMM d', 'y-MM-dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -8893,21 +12304,21 @@ goog.i18n.DateTimeSymbols_lu = { ERANAMES: ['Kumpala kwa Yezu Kli', 'Kunyima kwa Yezu Kli'], NARROWMONTHS: ['C', 'L', 'L', 'M', 'L', 'L', 'K', 'L', 'L', 'L', 'K', 'C'], STANDALONENARROWMONTHS: ['C', 'L', 'L', 'M', 'L', 'L', 'K', 'L', 'L', 'L', - 'K', 'C'], + 'K', 'C'], MONTHS: ['Ciongo', 'Lùishi', 'Lusòlo', 'Mùuyà', 'Lumùngùlù', 'Lufuimi', - 'Kabàlàshìpù', 'Lùshìkà', 'Lutongolo', 'Lungùdi', 'Kaswèkèsè', - 'Ciswà'], + 'Kabàlàshìpù', 'Lùshìkà', 'Lutongolo', 'Lungùdi', 'Kaswèkèsè', + 'Ciswà'], STANDALONEMONTHS: ['Ciongo', 'Lùishi', 'Lusòlo', 'Mùuyà', 'Lumùngùlù', - 'Lufuimi', 'Kabàlàshìpù', 'Lùshìkà', 'Lutongolo', 'Lungùdi', - 'Kaswèkèsè', 'Ciswà'], + 'Lufuimi', 'Kabàlàshìpù', 'Lùshìkà', 'Lutongolo', 'Lungùdi', + 'Kaswèkèsè', 'Ciswà'], SHORTMONTHS: ['Cio', 'Lui', 'Lus', 'Muu', 'Lum', 'Luf', 'Kab', 'Lush', 'Lut', - 'Lun', 'Kas', 'Cis'], + 'Lun', 'Kas', 'Cis'], STANDALONESHORTMONTHS: ['Cio', 'Lui', 'Lus', 'Muu', 'Lum', 'Luf', 'Kab', - 'Lush', 'Lut', 'Lun', 'Kas', 'Cis'], + 'Lush', 'Lut', 'Lun', 'Kas', 'Cis'], WEEKDAYS: ['Lumingu', 'Nkodya', 'Ndàayà', 'Ndangù', 'Njòwa', 'Ngòvya', - 'Lubingu'], + 'Lubingu'], STANDALONEWEEKDAYS: ['Lumingu', 'Nkodya', 'Ndàayà', 'Ndangù', 'Njòwa', - 'Ngòvya', 'Lubingu'], + 'Ngòvya', 'Lubingu'], SHORTWEEKDAYS: ['Lum', 'Nko', 'Ndy', 'Ndg', 'Njw', 'Ngv', 'Lub'], STANDALONESHORTWEEKDAYS: ['Lum', 'Nko', 'Ndy', 'Ndg', 'Njw', 'Ngv', 'Lub'], NARROWWEEKDAYS: ['L', 'N', 'N', 'N', 'N', 'N', 'L'], @@ -8915,8 +12326,9 @@ goog.i18n.DateTimeSymbols_lu = { SHORTQUARTERS: ['M1', 'M2', 'M3', 'M4'], QUARTERS: ['Mueji 1', 'Mueji 2', 'Mueji 3', 'Mueji 4'], AMPMS: ['Dinda', 'Dilolo'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/yyyy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -8937,33 +12349,34 @@ goog.i18n.DateTimeSymbols_luo = { ERANAMES: ['Kapok Kristo obiro', 'Ka Kristo osebiro'], NARROWMONTHS: ['C', 'R', 'D', 'N', 'B', 'U', 'B', 'B', 'C', 'P', 'C', 'P'], STANDALONENARROWMONTHS: ['C', 'R', 'D', 'N', 'B', 'U', 'B', 'B', 'C', 'P', - 'C', 'P'], + 'C', 'P'], MONTHS: ['Dwe mar Achiel', 'Dwe mar Ariyo', 'Dwe mar Adek', - 'Dwe mar Ang\'wen', 'Dwe mar Abich', 'Dwe mar Auchiel', 'Dwe mar Abiriyo', - 'Dwe mar Aboro', 'Dwe mar Ochiko', 'Dwe mar Apar', 'Dwe mar gi achiel', - 'Dwe mar Apar gi ariyo'], + 'Dwe mar Ang\'wen', 'Dwe mar Abich', 'Dwe mar Auchiel', 'Dwe mar Abiriyo', + 'Dwe mar Aboro', 'Dwe mar Ochiko', 'Dwe mar Apar', 'Dwe mar gi achiel', + 'Dwe mar Apar gi ariyo'], STANDALONEMONTHS: ['Dwe mar Achiel', 'Dwe mar Ariyo', 'Dwe mar Adek', - 'Dwe mar Ang\'wen', 'Dwe mar Abich', 'Dwe mar Auchiel', 'Dwe mar Abiriyo', - 'Dwe mar Aboro', 'Dwe mar Ochiko', 'Dwe mar Apar', 'Dwe mar gi achiel', - 'Dwe mar Apar gi ariyo'], + 'Dwe mar Ang\'wen', 'Dwe mar Abich', 'Dwe mar Auchiel', 'Dwe mar Abiriyo', + 'Dwe mar Aboro', 'Dwe mar Ochiko', 'Dwe mar Apar', 'Dwe mar gi achiel', + 'Dwe mar Apar gi ariyo'], SHORTMONTHS: ['DAC', 'DAR', 'DAD', 'DAN', 'DAH', 'DAU', 'DAO', 'DAB', 'DOC', - 'DAP', 'DGI', 'DAG'], + 'DAP', 'DGI', 'DAG'], STANDALONESHORTMONTHS: ['DAC', 'DAR', 'DAD', 'DAN', 'DAH', 'DAU', 'DAO', - 'DAB', 'DOC', 'DAP', 'DGI', 'DAG'], + 'DAB', 'DOC', 'DAP', 'DGI', 'DAG'], WEEKDAYS: ['Jumapil', 'Wuok Tich', 'Tich Ariyo', 'Tich Adek', 'Tich Ang\'wen', - 'Tich Abich', 'Ngeso'], + 'Tich Abich', 'Ngeso'], STANDALONEWEEKDAYS: ['Jumapil', 'Wuok Tich', 'Tich Ariyo', 'Tich Adek', - 'Tich Ang\'wen', 'Tich Abich', 'Ngeso'], + 'Tich Ang\'wen', 'Tich Abich', 'Ngeso'], SHORTWEEKDAYS: ['JMP', 'WUT', 'TAR', 'TAD', 'TAN', 'TAB', 'NGS'], STANDALONESHORTWEEKDAYS: ['JMP', 'WUT', 'TAR', 'TAD', 'TAN', 'TAB', 'NGS'], NARROWWEEKDAYS: ['J', 'W', 'T', 'T', 'T', 'T', 'N'], STANDALONENARROWWEEKDAYS: ['J', 'W', 'T', 'T', 'T', 'T', 'N'], SHORTQUARTERS: ['NMN1', 'NMN2', 'NMN3', 'NMN4'], QUARTERS: ['nus mar nus 1', 'nus mar nus 2', 'nus mar nus 3', - 'nus mar nus 4'], + 'nus mar nus 4'], AMPMS: ['OD', 'OT'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -8984,29 +12397,30 @@ goog.i18n.DateTimeSymbols_luy = { ERANAMES: ['Imberi ya Kuuza Kwa', 'Muhiga Kuvita Kuuza'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Januari', 'Februari', 'Machi', 'Aprili', 'Mei', 'Juni', 'Julai', - 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], STANDALONEMONTHS: ['Januari', 'Februari', 'Machi', 'Aprili', 'Mei', 'Juni', - 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', - 'Okt', 'Nov', 'Des'], + 'Okt', 'Nov', 'Des'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', - 'Ago', 'Sep', 'Okt', 'Nov', 'Des'], + 'Ago', 'Sep', 'Okt', 'Nov', 'Des'], WEEKDAYS: ['Jumapiri', 'Jumatatu', 'Jumanne', 'Jumatano', 'Murwa wa Kanne', - 'Murwa wa Katano', 'Jumamosi'], + 'Murwa wa Katano', 'Jumamosi'], STANDALONEWEEKDAYS: ['Jumapiri', 'Jumatatu', 'Jumanne', 'Jumatano', - 'Murwa wa Kanne', 'Murwa wa Katano', 'Jumamosi'], + 'Murwa wa Kanne', 'Murwa wa Katano', 'Jumamosi'], SHORTWEEKDAYS: ['J2', 'J3', 'J4', 'J5', 'Al', 'Ij', 'J1'], STANDALONESHORTWEEKDAYS: ['J2', 'J3', 'J4', 'J5', 'Al', 'Ij', 'J1'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Robo ya Kala', 'Robo ya Kaviri', 'Robo ya Kavaga', - 'Robo ya Kanne'], + 'Robo ya Kanne'], AMPMS: ['a.m.', 'p.m.'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -9027,31 +12441,32 @@ goog.i18n.DateTimeSymbols_lv_LV = { ERANAMES: ['pirms mūsu ēras', 'mūsu ērā'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janvāris', 'februāris', 'marts', 'aprīlis', 'maijs', 'jūnijs', - 'jūlijs', 'augusts', 'septembris', 'oktobris', 'novembris', 'decembris'], - STANDALONEMONTHS: ['janvāris', 'februāris', 'marts', 'aprīlis', 'maijs', - 'jūnijs', 'jūlijs', 'augusts', 'septembris', 'oktobris', 'novembris', - 'decembris'], + 'jūlijs', 'augusts', 'septembris', 'oktobris', 'novembris', 'decembris'], + STANDALONEMONTHS: ['Janvāris', 'Februāris', 'Marts', 'Aprīlis', 'Maijs', + 'Jūnijs', 'Jūlijs', 'Augusts', 'Septembris', 'Oktobris', 'Novembris', + 'Decembris'], SHORTMONTHS: ['janv.', 'febr.', 'marts', 'apr.', 'maijs', 'jūn.', 'jūl.', - 'aug.', 'sept.', 'okt.', 'nov.', 'dec.'], - STANDALONESHORTMONTHS: ['janv.', 'febr.', 'marts', 'apr.', 'maijs', 'jūn.', - 'jūl.', 'aug.', 'sept.', 'okt.', 'nov.', 'dec.'], + 'aug.', 'sept.', 'okt.', 'nov.', 'dec.'], + STANDALONESHORTMONTHS: ['Janv.', 'Febr.', 'Marts', 'Apr.', 'Maijs', 'Jūn.', + 'Jūl.', 'Aug.', 'Sept.', 'Okt.', 'Nov.', 'Dec.'], WEEKDAYS: ['svētdiena', 'pirmdiena', 'otrdiena', 'trešdiena', 'ceturtdiena', - 'piektdiena', 'sestdiena'], - STANDALONEWEEKDAYS: ['svētdiena', 'pirmdiena', 'otrdiena', 'trešdiena', - 'ceturtdiena', 'piektdiena', 'sestdiena'], + 'piektdiena', 'sestdiena'], + STANDALONEWEEKDAYS: ['Svētdiena', 'Pirmdiena', 'Otrdiena', 'Trešdiena', + 'Ceturtdiena', 'Piektdiena', 'Sestdiena'], SHORTWEEKDAYS: ['Sv', 'Pr', 'Ot', 'Tr', 'Ce', 'Pk', 'Se'], STANDALONESHORTWEEKDAYS: ['Sv', 'Pr', 'Ot', 'Tr', 'Ce', 'Pk', 'Se'], NARROWWEEKDAYS: ['S', 'P', 'O', 'T', 'C', 'P', 'S'], STANDALONENARROWWEEKDAYS: ['S', 'P', 'O', 'T', 'C', 'P', 'S'], SHORTQUARTERS: ['C1', 'C2', 'C3', 'C4'], QUARTERS: ['1. ceturksnis', '2. ceturksnis', '3. ceturksnis', - '4. ceturksnis'], + '4. ceturksnis'], AMPMS: ['priekšpusdienā', 'pēcpusdienā'], DATEFORMATS: ['EEEE, y. \'gada\' d. MMMM', 'y. \'gada\' d. MMMM', - 'y. \'gada\' d. MMM', 'dd.MM.yy'], + 'y. \'gada\' d. MMM', 'dd.MM.yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -9066,23 +12481,23 @@ goog.i18n.DateTimeSymbols_mas = { ERANAMES: ['Meínō Yɛ́sʉ', 'Eínō Yɛ́sʉ'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['Oladalʉ́', 'Arát', 'Ɔɛnɨ́ɔɨŋɔk', - 'Olodoyíóríê inkókúâ', 'Oloilépūnyīē inkókúâ', - 'Kújúɔrɔk', 'Mórusásin', 'Ɔlɔ́ɨ́bɔ́rárɛ', 'Kúshîn', - 'Olgísan', 'Pʉshʉ́ka', 'Ntʉ́ŋʉ́s'], + 'Olodoyíóríê inkókúâ', 'Oloilépūnyīē inkókúâ', 'Kújúɔrɔk', + 'Mórusásin', 'Ɔlɔ́ɨ́bɔ́rárɛ', 'Kúshîn', 'Olgísan', + 'Pʉshʉ́ka', 'Ntʉ́ŋʉ́s'], STANDALONEMONTHS: ['Oladalʉ́', 'Arát', 'Ɔɛnɨ́ɔɨŋɔk', - 'Olodoyíóríê inkókúâ', 'Oloilépūnyīē inkókúâ', - 'Kújúɔrɔk', 'Mórusásin', 'Ɔlɔ́ɨ́bɔ́rárɛ', 'Kúshîn', - 'Olgísan', 'Pʉshʉ́ka', 'Ntʉ́ŋʉ́s'], + 'Olodoyíóríê inkókúâ', 'Oloilépūnyīē inkókúâ', 'Kújúɔrɔk', + 'Mórusásin', 'Ɔlɔ́ɨ́bɔ́rárɛ', 'Kúshîn', 'Olgísan', + 'Pʉshʉ́ka', 'Ntʉ́ŋʉ́s'], SHORTMONTHS: ['Dal', 'Ará', 'Ɔɛn', 'Doy', 'Lép', 'Rok', 'Sás', 'Bɔ́r', - 'Kús', 'Gís', 'Shʉ́', 'Ntʉ́'], + 'Kús', 'Gís', 'Shʉ́', 'Ntʉ́'], STANDALONESHORTMONTHS: ['Dal', 'Ará', 'Ɔɛn', 'Doy', 'Lép', 'Rok', 'Sás', - 'Bɔ́r', 'Kús', 'Gís', 'Shʉ́', 'Ntʉ́'], + 'Bɔ́r', 'Kús', 'Gís', 'Shʉ́', 'Ntʉ́'], WEEKDAYS: ['Jumapílí', 'Jumatátu', 'Jumane', 'Jumatánɔ', 'Alaámisi', - 'Jumáa', 'Jumamósi'], + 'Jumáa', 'Jumamósi'], STANDALONEWEEKDAYS: ['Jumapílí', 'Jumatátu', 'Jumane', 'Jumatánɔ', - 'Alaámisi', 'Jumáa', 'Jumamósi'], + 'Alaámisi', 'Jumáa', 'Jumamósi'], SHORTWEEKDAYS: ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'], STANDALONESHORTWEEKDAYS: ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'], NARROWWEEKDAYS: ['2', '3', '4', '5', '6', '7', '1'], @@ -9090,8 +12505,9 @@ goog.i18n.DateTimeSymbols_mas = { SHORTQUARTERS: ['E1', 'E2', 'E3', 'E4'], QUARTERS: ['Erobo 1', 'Erobo 2', 'Erobo 3', 'Erobo 4'], AMPMS: ['Ɛnkakɛnyá', 'Ɛndámâ'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -9118,31 +12534,31 @@ goog.i18n.DateTimeSymbols_mer = { ERANAMES: ['Mbere ya Kristũ', 'Nyuma ya Kristũ'], NARROWMONTHS: ['J', 'F', 'M', 'Ĩ', 'M', 'N', 'N', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'Ĩ', 'M', 'N', 'N', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Januarĩ', 'Feburuarĩ', 'Machi', 'Ĩpurũ', 'Mĩĩ', 'Njuni', - 'Njuraĩ', 'Agasti', 'Septemba', 'Oktũba', 'Novemba', 'Dicemba'], + 'Njuraĩ', 'Agasti', 'Septemba', 'Oktũba', 'Novemba', 'Dicemba'], STANDALONEMONTHS: ['Januarĩ', 'Feburuarĩ', 'Machi', 'Ĩpurũ', 'Mĩĩ', - 'Njuni', 'Njuraĩ', 'Agasti', 'Septemba', 'Oktũba', 'Novemba', - 'Dicemba'], + 'Njuni', 'Njuraĩ', 'Agasti', 'Septemba', 'Oktũba', 'Novemba', 'Dicemba'], SHORTMONTHS: ['JAN', 'FEB', 'MAC', 'ĨPU', 'MĨĨ', 'NJU', 'NJR', 'AGA', - 'SPT', 'OKT', 'NOV', 'DEC'], + 'SPT', 'OKT', 'NOV', 'DEC'], STANDALONESHORTMONTHS: ['JAN', 'FEB', 'MAC', 'ĨPU', 'MĨĨ', 'NJU', 'NJR', - 'AGA', 'SPT', 'OKT', 'NOV', 'DEC'], + 'AGA', 'SPT', 'OKT', 'NOV', 'DEC'], WEEKDAYS: ['Kiumia', 'Muramuko', 'Wairi', 'Wethatu', 'Wena', 'Wetano', - 'Jumamosi'], + 'Jumamosi'], STANDALONEWEEKDAYS: ['Kiumia', 'Muramuko', 'Wairi', 'Wethatu', 'Wena', - 'Wetano', 'Jumamosi'], + 'Wetano', 'Jumamosi'], SHORTWEEKDAYS: ['KIU', 'MRA', 'WAI', 'WET', 'WEN', 'WTN', 'JUM'], STANDALONESHORTWEEKDAYS: ['KIU', 'MRA', 'WAI', 'WET', 'WEN', 'WTN', 'JUM'], NARROWWEEKDAYS: ['K', 'M', 'W', 'W', 'W', 'W', 'J'], STANDALONENARROWWEEKDAYS: ['K', 'M', 'W', 'W', 'W', 'W', 'J'], SHORTQUARTERS: ['Ĩmwe kĩrĩ inya', 'Ijĩrĩ kĩrĩ inya', - 'Ithatũ kĩrĩ inya', 'Inya kĩrĩ inya'], + 'Ithatũ kĩrĩ inya', 'Inya kĩrĩ inya'], QUARTERS: ['Ĩmwe kĩrĩ inya', 'Ijĩrĩ kĩrĩ inya', 'Ithatũ kĩrĩ inya', - 'Inya kĩrĩ inya'], + 'Inya kĩrĩ inya'], AMPMS: ['RŨ', 'ŨG'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -9163,19 +12579,19 @@ goog.i18n.DateTimeSymbols_mfe = { ERANAMES: ['avan Zezi-Krist', 'apre Zezi-Krist'], NARROWMONTHS: ['z', 'f', 'm', 'a', 'm', 'z', 'z', 'o', 's', 'o', 'n', 'd'], STANDALONENARROWMONTHS: ['z', 'f', 'm', 'a', 'm', 'z', 'z', 'o', 's', 'o', - 'n', 'd'], + 'n', 'd'], MONTHS: ['zanvie', 'fevriye', 'mars', 'avril', 'me', 'zin', 'zilye', 'out', - 'septam', 'oktob', 'novam', 'desam'], + 'septam', 'oktob', 'novam', 'desam'], STANDALONEMONTHS: ['zanvie', 'fevriye', 'mars', 'avril', 'me', 'zin', 'zilye', - 'out', 'septam', 'oktob', 'novam', 'desam'], + 'out', 'septam', 'oktob', 'novam', 'desam'], SHORTMONTHS: ['zan', 'fev', 'mar', 'avr', 'me', 'zin', 'zil', 'out', 'sep', - 'okt', 'nov', 'des'], + 'okt', 'nov', 'des'], STANDALONESHORTMONTHS: ['zan', 'fev', 'mar', 'avr', 'me', 'zin', 'zil', 'out', - 'sep', 'okt', 'nov', 'des'], + 'sep', 'okt', 'nov', 'des'], WEEKDAYS: ['dimans', 'lindi', 'mardi', 'merkredi', 'zedi', 'vandredi', - 'samdi'], + 'samdi'], STANDALONEWEEKDAYS: ['dimans', 'lindi', 'mardi', 'merkredi', 'zedi', - 'vandredi', 'samdi'], + 'vandredi', 'samdi'], SHORTWEEKDAYS: ['dim', 'lin', 'mar', 'mer', 'ze', 'van', 'sam'], STANDALONESHORTWEEKDAYS: ['dim', 'lin', 'mar', 'mer', 'ze', 'van', 'sam'], NARROWWEEKDAYS: ['d', 'l', 'm', 'm', 'z', 'v', 's'], @@ -9183,8 +12599,9 @@ goog.i18n.DateTimeSymbols_mfe = { SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1e trimes', '2em trimes', '3em trimes', '4em trimes'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM, y', 'd/M/yyyy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM, y', 'd/M/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -9205,30 +12622,31 @@ goog.i18n.DateTimeSymbols_mg = { ERANAMES: ['Alohan\'i JK', 'Aorian\'i JK'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Janoary', 'Febroary', 'Martsa', 'Aprily', 'Mey', 'Jona', 'Jolay', - 'Aogositra', 'Septambra', 'Oktobra', 'Novambra', 'Desambra'], + 'Aogositra', 'Septambra', 'Oktobra', 'Novambra', 'Desambra'], STANDALONEMONTHS: ['Janoary', 'Febroary', 'Martsa', 'Aprily', 'Mey', 'Jona', - 'Jolay', 'Aogositra', 'Septambra', 'Oktobra', 'Novambra', 'Desambra'], + 'Jolay', 'Aogositra', 'Septambra', 'Oktobra', 'Novambra', 'Desambra'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'Mey', 'Jon', 'Jol', 'Aog', 'Sep', - 'Okt', 'Nov', 'Des'], + 'Okt', 'Nov', 'Des'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'Mey', 'Jon', 'Jol', - 'Aog', 'Sep', 'Okt', 'Nov', 'Des'], + 'Aog', 'Sep', 'Okt', 'Nov', 'Des'], WEEKDAYS: ['Alahady', 'Alatsinainy', 'Talata', 'Alarobia', 'Alakamisy', - 'Zoma', 'Asabotsy'], + 'Zoma', 'Asabotsy'], STANDALONEWEEKDAYS: ['Alahady', 'Alatsinainy', 'Talata', 'Alarobia', - 'Alakamisy', 'Zoma', 'Asabotsy'], + 'Alakamisy', 'Zoma', 'Asabotsy'], SHORTWEEKDAYS: ['Alah', 'Alats', 'Tal', 'Alar', 'Alak', 'Zom', 'Asab'], STANDALONESHORTWEEKDAYS: ['Alah', 'Alats', 'Tal', 'Alar', 'Alak', 'Zom', - 'Asab'], + 'Asab'], NARROWWEEKDAYS: ['A', 'A', 'T', 'A', 'A', 'Z', 'A'], STANDALONENARROWWEEKDAYS: ['A', 'A', 'T', 'A', 'A', 'Z', 'A'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['Telovolana voalohany', 'Telovolana faharoa', - 'Telovolana fahatelo', 'Telovolana fahefatra'], + 'Telovolana fahatelo', 'Telovolana fahefatra'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM, y', 'd/M/yyyy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM, y', 'd/M/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -9249,32 +12667,33 @@ goog.i18n.DateTimeSymbols_mgh = { ERANAMES: ['Hinapiya yesu', 'Yopia yesu'], NARROWMONTHS: ['K', 'U', 'R', 'C', 'T', 'M', 'S', 'N', 'T', 'K', 'M', 'Y'], STANDALONENARROWMONTHS: ['K', 'U', 'R', 'C', 'T', 'M', 'S', 'N', 'T', 'K', - 'M', 'Y'], + 'M', 'Y'], MONTHS: ['Mweri wo kwanza', 'Mweri wo unayeli', 'Mweri wo uneraru', - 'Mweri wo unecheshe', 'Mweri wo unethanu', 'Mweri wo thanu na mocha', - 'Mweri wo saba', 'Mweri wo nane', 'Mweri wo tisa', 'Mweri wo kumi', - 'Mweri wo kumi na moja', 'Mweri wo kumi na yel\'li'], + 'Mweri wo unecheshe', 'Mweri wo unethanu', 'Mweri wo thanu na mocha', + 'Mweri wo saba', 'Mweri wo nane', 'Mweri wo tisa', 'Mweri wo kumi', + 'Mweri wo kumi na moja', 'Mweri wo kumi na yel\'li'], STANDALONEMONTHS: ['Mweri wo kwanza', 'Mweri wo unayeli', 'Mweri wo uneraru', - 'Mweri wo unecheshe', 'Mweri wo unethanu', 'Mweri wo thanu na mocha', - 'Mweri wo saba', 'Mweri wo nane', 'Mweri wo tisa', 'Mweri wo kumi', - 'Mweri wo kumi na moja', 'Mweri wo kumi na yel\'li'], + 'Mweri wo unecheshe', 'Mweri wo unethanu', 'Mweri wo thanu na mocha', + 'Mweri wo saba', 'Mweri wo nane', 'Mweri wo tisa', 'Mweri wo kumi', + 'Mweri wo kumi na moja', 'Mweri wo kumi na yel\'li'], SHORTMONTHS: ['Kwa', 'Una', 'Rar', 'Che', 'Tha', 'Moc', 'Sab', 'Nan', 'Tis', - 'Kum', 'Moj', 'Yel'], + 'Kum', 'Moj', 'Yel'], STANDALONESHORTMONTHS: ['Kwa', 'Una', 'Rar', 'Che', 'Tha', 'Moc', 'Sab', - 'Nan', 'Tis', 'Kum', 'Moj', 'Yel'], + 'Nan', 'Tis', 'Kum', 'Moj', 'Yel'], WEEKDAYS: ['Sabato', 'Jumatatu', 'Jumanne', 'Jumatano', 'Arahamisi', 'Ijumaa', - 'Jumamosi'], + 'Jumamosi'], STANDALONEWEEKDAYS: ['Sabato', 'Jumatatu', 'Jumanne', 'Jumatano', 'Arahamisi', - 'Ijumaa', 'Jumamosi'], + 'Ijumaa', 'Jumamosi'], SHORTWEEKDAYS: ['Sab', 'Jtt', 'Jnn', 'Jtn', 'Ara', 'Iju', 'Jmo'], STANDALONESHORTWEEKDAYS: ['Sab', 'Jtt', 'Jnn', 'Jtn', 'Ara', 'Iju', 'Jmo'], NARROWWEEKDAYS: ['S', 'J', 'J', 'J', 'A', 'I', 'J'], STANDALONENARROWWEEKDAYS: ['S', 'J', 'J', 'J', 'A', 'I', 'J'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], - AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + AMPMS: ['wichishu', 'mchochil\'l'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -9287,6 +12706,60 @@ goog.i18n.DateTimeSymbols_mgh = { goog.i18n.DateTimeSymbols_mgh_MZ = goog.i18n.DateTimeSymbols_mgh; +/** + * Date/time formatting symbols for locale mgo. + */ +goog.i18n.DateTimeSymbols_mgo = { + ERAS: ['BCE', 'CE'], + ERANAMES: ['BCE', 'CE'], + NARROWMONTHS: ['M1', 'A2', 'M3', 'N4', 'F5', 'I6', 'A7', 'I8', 'K9', '10', + '11', '12'], + STANDALONENARROWMONTHS: ['M1', 'A2', 'M3', 'N4', 'F5', 'I6', 'A7', 'I8', 'K9', + '10', '11', '12'], + MONTHS: ['iməg mbegtug', 'imeg àbùbì', 'imeg mbəŋchubi', + 'iməg ngwə̀t', 'iməg fog', 'iməg ichiibɔd', 'iməg àdùmbə̀ŋ', + 'iməg ichika', 'iməg kud', 'iməg tèsiʼe', 'iməg zò', + 'iməg krizmed'], + STANDALONEMONTHS: ['iməg mbegtug', 'imeg àbùbì', 'imeg mbəŋchubi', + 'iməg ngwə̀t', 'iməg fog', 'iməg ichiibɔd', 'iməg àdùmbə̀ŋ', + 'iməg ichika', 'iməg kud', 'iməg tèsiʼe', 'iməg zò', + 'iməg krizmed'], + SHORTMONTHS: ['mbegtug', 'imeg àbùbì', 'imeg mbəŋchubi', + 'iməg ngwə̀t', 'iməg fog', 'iməg ichiibɔd', 'iməg àdùmbə̀ŋ', + 'iməg ichika', 'iməg kud', 'iməg tèsiʼe', 'iməg zò', + 'iməg krizmed'], + STANDALONESHORTMONTHS: ['mbegtug', 'imeg àbùbì', 'imeg mbəŋchubi', + 'iməg ngwə̀t', 'iməg fog', 'iməg ichiibɔd', 'iməg àdùmbə̀ŋ', + 'iməg ichika', 'iməg kud', 'iməg tèsiʼe', 'iməg zò', + 'iməg krizmed'], + WEEKDAYS: ['Aneg 1', 'Aneg 2', 'Aneg 3', 'Aneg 4', 'Aneg 5', 'Aneg 6', + 'Aneg 7'], + STANDALONEWEEKDAYS: ['Aneg 1', 'Aneg 2', 'Aneg 3', 'Aneg 4', 'Aneg 5', + 'Aneg 6', 'Aneg 7'], + SHORTWEEKDAYS: ['Aneg 1', 'Aneg 2', 'Aneg 3', 'Aneg 4', 'Aneg 5', 'Aneg 6', + 'Aneg 7'], + STANDALONESHORTWEEKDAYS: ['Aneg 1', 'Aneg 2', 'Aneg 3', 'Aneg 4', 'Aneg 5', + 'Aneg 6', 'Aneg 7'], + NARROWWEEKDAYS: ['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7'], + STANDALONENARROWWEEKDAYS: ['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, y MMMM dd', 'y MMMM d', 'y MMM d', 'y-MM-dd'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale mgo_CM. + */ +goog.i18n.DateTimeSymbols_mgo_CM = goog.i18n.DateTimeSymbols_mgo; + + /** * Date/time formatting symbols for locale mk. */ @@ -9294,37 +12767,38 @@ goog.i18n.DateTimeSymbols_mk = { ERAS: ['пр.н.е.', 'ае.'], ERANAMES: ['пр.н.е.', 'ае.'], NARROWMONTHS: ['ј', 'ф', 'м', 'а', 'м', 'ј', 'ј', 'а', 'с', 'о', - 'н', 'д'], + 'н', 'д'], STANDALONENARROWMONTHS: ['ј', 'ф', 'м', 'а', 'м', 'ј', 'ј', 'а', 'с', - 'о', 'н', 'д'], + 'о', 'н', 'д'], MONTHS: ['јануари', 'февруари', 'март', 'април', - 'мај', 'јуни', 'јули', 'август', 'септември', - 'октомври', 'ноември', 'декември'], + 'мај', 'јуни', 'јули', 'август', 'септември', + 'октомври', 'ноември', 'декември'], STANDALONEMONTHS: ['јануари', 'февруари', 'март', - 'април', 'мај', 'јуни', 'јули', 'август', - 'септември', 'октомври', 'ноември', - 'декември'], + 'април', 'мај', 'јуни', 'јули', 'август', + 'септември', 'октомври', 'ноември', + 'декември'], SHORTMONTHS: ['јан.', 'фев.', 'мар.', 'апр.', 'мај', 'јун.', - 'јул.', 'авг.', 'септ.', 'окт.', 'ноем.', 'декем.'], + 'јул.', 'авг.', 'септ.', 'окт.', 'ноем.', 'декем.'], STANDALONESHORTMONTHS: ['јан.', 'фев.', 'мар.', 'апр.', 'мај', - 'јун.', 'јул.', 'авг.', 'септ.', 'окт.', 'ноем.', - 'декем.'], + 'јун.', 'јул.', 'авг.', 'септ.', 'окт.', 'ноем.', + 'декем.'], WEEKDAYS: ['недела', 'понеделник', 'вторник', - 'среда', 'четврток', 'петок', 'сабота'], + 'среда', 'четврток', 'петок', 'сабота'], STANDALONEWEEKDAYS: ['недела', 'понеделник', 'вторник', - 'среда', 'четврток', 'петок', 'сабота'], + 'среда', 'четврток', 'петок', 'сабота'], SHORTWEEKDAYS: ['нед.', 'пон.', 'вт.', 'сре.', 'чет.', - 'пет.', 'саб.'], + 'пет.', 'саб.'], STANDALONESHORTWEEKDAYS: ['нед.', 'пон.', 'вт.', 'сре.', 'чет.', - 'пет.', 'саб.'], + 'пет.', 'саб.'], NARROWWEEKDAYS: ['н', 'п', 'в', 'с', 'ч', 'п', 'с'], STANDALONENARROWWEEKDAYS: ['н', 'п', 'в', 'с', 'ч', 'п', 'с'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['прво тромесечје', 'второ тромесечје', - 'трето тромесечје', 'четврто тромесечје'], + 'трето тромесечје', 'четврто тромесечје'], AMPMS: ['претпладне', 'попладне'], - DATEFORMATS: ['EEEE, dd MMMM y', 'dd MMMM y', 'dd.M.yyyy', 'dd.M.yy'], + DATEFORMATS: ['EEEE, dd MMMM y', 'dd MMMM y', 'dd.M.y', 'dd.M.yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -9343,111 +12817,164 @@ goog.i18n.DateTimeSymbols_mk_MK = goog.i18n.DateTimeSymbols_mk; goog.i18n.DateTimeSymbols_ml_IN = { ERAS: ['ക്രി.മൂ', 'ക്രി.പി.'], ERANAMES: ['ക്രിസ്തുവിനു് മുമ്പ്‌', - 'ക്രിസ്തുവിന് പിന്‍പ്'], + 'ക്രിസ്തുവിന് പിൻപ്'], NARROWMONTHS: ['ജ', 'ഫെ', 'മാ', 'ഏ', 'മേ', 'ജൂ', 'ജൂ', - 'ഓ', 'സെ', 'ഒ', 'ന', 'ഡി'], + 'ഓ', 'സെ', 'ഒ', 'ന', 'ഡി'], STANDALONENARROWMONTHS: ['ജ', 'ഫെ', 'മാ', 'ഏ', 'മേ', 'ജൂ', - 'ജൂ', 'ഓ', 'സെ', 'ഒ', 'ന', 'ഡി'], + 'ജൂ', 'ഓ', 'സെ', 'ഒ', 'ന', 'ഡി'], MONTHS: ['ജനുവരി', 'ഫെബ്രുവരി', - 'മാര്‍ച്ച്', 'ഏപ്രില്‍', 'മേയ്', - 'ജൂണ്‍', 'ജൂലൈ', 'ആഗസ്റ്റ്', - 'സെപ്റ്റംബര്‍', 'ഒക്ടോബര്‍', - 'നവംബര്‍', 'ഡിസംബര്‍'], + 'മാർച്ച്', 'ഏപ്രിൽ', 'മേയ്', 'ജൂൺ', + 'ജൂലൈ', 'ആഗസ്റ്റ്', + 'സെപ്റ്റംബർ', 'ഒക്ടോബർ', + 'നവംബർ', 'ഡിസംബർ'], STANDALONEMONTHS: ['ജനുവരി', 'ഫെബ്രുവരി', - 'മാര്‍ച്ച്', 'ഏപ്രില്‍', 'മേയ്', - 'ജൂണ്‍', 'ജൂലൈ', 'ആഗസ്റ്റ്', - 'സെപ്റ്റംബര്‍', 'ഒക്ടോബര്‍', - 'നവംബര്‍', 'ഡിസംബര്‍'], - SHORTMONTHS: ['ജനു', 'ഫെബ്രു', 'മാര്‍', - 'ഏപ്രി', 'മേയ്', 'ജൂണ്‍', 'ജൂലൈ', - 'ഓഗ', 'സെപ്റ്റം', 'ഒക്ടോ', 'നവം', - 'ഡിസം'], - STANDALONESHORTMONTHS: ['ജനു', 'ഫെബ്രു', 'മാര്‍', - 'ഏപ്രി', 'മേയ്', 'ജൂണ്‍', 'ജൂലൈ', - 'ഓഗ', 'സെപ്റ്റം', 'ഒക്ടോ', 'നവം', - 'ഡിസം'], + 'മാർച്ച്', 'ഏപ്രിൽ', 'മേയ്', 'ജൂൺ', + 'ജൂലൈ', 'ആഗസ്റ്റ്', + 'സെപ്റ്റംബർ', 'ഒക്ടോബർ', + 'നവംബർ', 'ഡിസംബർ'], + SHORTMONTHS: ['ജനു', 'ഫെബ്രു', 'മാർ', + 'ഏപ്രി', 'മേയ്', 'ജൂൺ', 'ജൂലൈ', 'ഓഗ', + 'സെപ്റ്റം', 'ഒക്ടോ', 'നവം', 'ഡിസം'], + STANDALONESHORTMONTHS: ['ജനു', 'ഫെബ്രു', 'മാർ', + 'ഏപ്രി', 'മേയ്', 'ജൂൺ', 'ജൂലൈ', 'ഓഗ', + 'സെപ്റ്റം', 'ഒക്ടോ', 'നവം', 'ഡിസം'], WEEKDAYS: ['ഞായറാഴ്ച', 'തിങ്കളാഴ്ച', - 'ചൊവ്വാഴ്ച', 'ബുധനാഴ്ച', - 'വ്യാഴാഴ്ച', 'വെള്ളിയാഴ്ച', - 'ശനിയാഴ്ച'], + 'ചൊവ്വാഴ്ച', 'ബുധനാഴ്ച', + 'വ്യാഴാഴ്ച', 'വെള്ളിയാഴ്ച', + 'ശനിയാഴ്ച'], STANDALONEWEEKDAYS: ['ഞായറാഴ്ച', - 'തിങ്കളാഴ്ച', 'ചൊവ്വാഴ്ച', - 'ബുധനാഴ്ച', 'വ്യാഴാഴ്ച', - 'വെള്ളിയാഴ്ച', 'ശനിയാഴ്ച'], - SHORTWEEKDAYS: ['ഞായര്‍', 'തിങ്കള്‍', - 'ചൊവ്വ', 'ബുധന്‍', 'വ്യാഴം', - 'വെള്ളി', 'ശനി'], - STANDALONESHORTWEEKDAYS: ['ഞായര്‍', 'തിങ്കള്‍', - 'ചൊവ്വ', 'ബുധന്‍', 'വ്യാഴം', - 'വെള്ളി', 'ശനി'], + 'തിങ്കളാഴ്ച', 'ചൊവ്വാഴ്ച', + 'ബുധനാഴ്ച', 'വ്യാഴാഴ്ച', + 'വെള്ളിയാഴ്ച', 'ശനിയാഴ്ച'], + SHORTWEEKDAYS: ['ഞായർ', 'തിങ്കൾ', 'ചൊവ്വ', + 'ബുധൻ', 'വ്യാഴം', 'വെള്ളി', 'ശനി'], + STANDALONESHORTWEEKDAYS: ['ഞായർ', 'തിങ്കൾ', + 'ചൊവ്വ', 'ബുധൻ', 'വ്യാഴം', + 'വെള്ളി', 'ശനി'], NARROWWEEKDAYS: ['ഞാ', 'തി', 'ചൊ', 'ബു', 'വ്യാ', - 'വെ', 'ശ'], + 'വെ', 'ശ'], STANDALONENARROWWEEKDAYS: ['ഞാ', 'തി', 'ചൊ', 'ബു', - 'വ്യാ', 'വെ', 'ശ'], + 'വ്യാ', 'വെ', 'ശ'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['ഒന്നാം പാദം', - 'രണ്ടാം പാദം', 'മൂന്നാം പാദം', - 'നാലാം പാദം'], - AMPMS: ['am', 'pm'], + 'രണ്ടാം പാദം', 'മൂന്നാം പാദം', + 'നാലാം പാദം'], + AMPMS: ['AM', 'PM'], DATEFORMATS: ['y, MMMM d, EEEE', 'y, MMMM d', 'y, MMM d', 'dd/MM/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [6, 6], FIRSTWEEKCUTOFFDAY: 5 }; +/** + * Date/time formatting symbols for locale mn. + */ +goog.i18n.DateTimeSymbols_mn = { + ERAS: ['МЭӨ', 'МЭ'], + ERANAMES: ['манай эриний өмнөх', 'манай эриний'], + NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], + STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', + '11', '12'], + MONTHS: ['Хулгана', 'Үхэр', 'Бар', 'Туулай', 'Луу', + 'Могой', 'Морь', 'Хонь', 'Бич', 'Тахиа', 'Нохой', + 'Гахай'], + STANDALONEMONTHS: ['Хулгана', 'Үхэр', 'Бар', 'Туулай', + 'Луу', 'Могой', 'Морь', 'Хонь', 'Бич', 'Тахиа', + 'Нохой', 'Гахай'], + SHORTMONTHS: ['хул', 'үхэ', 'бар', 'туу', 'луу', 'мог', + 'мор', 'хон', 'бич', 'тах', 'нох', 'гах'], + STANDALONESHORTMONTHS: ['хул', 'үхэ', 'бар', 'туу', 'луу', + 'мог', 'мор', 'хон', 'бич', 'тах', 'нох', 'гах'], + WEEKDAYS: ['ням', 'даваа', 'мягмар', 'лхагва', + 'пүрэв', 'баасан', 'бямба'], + STANDALONEWEEKDAYS: ['ням', 'даваа', 'мягмар', 'лхагва', + 'пүрэв', 'баасан', 'бямба'], + SHORTWEEKDAYS: ['Ня', 'Да', 'Мя', 'Лх', 'Пү', 'Ба', 'Бя'], + STANDALONESHORTWEEKDAYS: ['Ня', 'Да', 'Мя', 'Лх', 'Пү', 'Ба', + 'Бя'], + NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + SHORTQUARTERS: ['У1', 'У2', 'У3', 'У4'], + QUARTERS: ['1-р улирал', '2-р улирал', '3-р улирал', + '4-р улирал'], + AMPMS: ['ҮӨ', 'ҮХ'], + DATEFORMATS: ['EEEE, y \'оны\' MMM \'сарын\' dd', + 'y \'оны\' MMM \'сарын\' d', 'y MMM d', 'y-MM-dd'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 5 +}; + + +/** + * Date/time formatting symbols for locale mn_Cyrl. + */ +goog.i18n.DateTimeSymbols_mn_Cyrl = goog.i18n.DateTimeSymbols_mn; + + +/** + * Date/time formatting symbols for locale mn_Cyrl_MN. + */ +goog.i18n.DateTimeSymbols_mn_Cyrl_MN = goog.i18n.DateTimeSymbols_mn; + + /** * Date/time formatting symbols for locale mr_IN. */ goog.i18n.DateTimeSymbols_mr_IN = { + ZERODIGIT: 0x0966, ERAS: ['ईसापूर्व', 'सन'], ERANAMES: ['ईसवीसनपूर्व', 'ईसवीसन'], NARROWMONTHS: ['जा', 'फे', 'मा', 'ए', 'मे', 'जू', - 'जु', 'ऑ', 'स', 'ऑ', 'नो', 'डि'], + 'जु', 'ऑ', 'स', 'ऑ', 'नो', 'डि'], STANDALONENARROWMONTHS: ['जा', 'फे', 'मा', 'ए', 'मे', - 'जू', 'जु', 'ऑ', 'स', 'ऑ', 'नो', 'डि'], + 'जू', 'जु', 'ऑ', 'स', 'ऑ', 'नो', 'डि'], MONTHS: ['जानेवारी', 'फेब्रुवारी', - 'मार्च', 'एप्रिल', 'मे', 'जून', - 'जुलै', 'ऑगस्ट', 'सप्टेंबर', - 'ऑक्टोबर', 'नोव्हेंबर', - 'डिसेंबर'], + 'मार्च', 'एप्रिल', 'मे', 'जून', + 'जुलै', 'ऑगस्ट', 'सप्टेंबर', + 'ऑक्टोबर', 'नोव्हेंबर', + 'डिसेंबर'], STANDALONEMONTHS: ['जानेवारी', - 'फेब्रुवारी', 'मार्च', 'एप्रिल', - 'मे', 'जून', 'जुलै', 'ऑगस्ट', - 'सप्टेंबर', 'ऑक्टोबर', - 'नोव्हेंबर', 'डिसेंबर'], + 'फेब्रुवारी', 'मार्च', 'एप्रिल', + 'मे', 'जून', 'जुलै', 'ऑगस्ट', + 'सप्टेंबर', 'ऑक्टोबर', + 'नोव्हेंबर', 'डिसेंबर'], SHORTMONTHS: ['जाने', 'फेब्रु', 'मार्च', - 'एप्रि', 'मे', 'जून', 'जुलै', 'ऑग', - 'सेप्टें', 'ऑक्टोबर', 'नोव्हें', - 'डिसें'], + 'एप्रि', 'मे', 'जून', 'जुलै', 'ऑग', + 'सेप्टें', 'ऑक्ट', 'नोव्हें', + 'डिसें'], STANDALONESHORTMONTHS: ['जाने', 'फेब्रु', - 'मार्च', 'एप्रि', 'मे', 'जून', - 'जुलै', 'ऑग', 'सेप्टें', - 'ऑक्टोबर', 'नोव्हें', 'डिसें'], + 'मार्च', 'एप्रि', 'मे', 'जून', 'जुलै', + 'ऑग', 'सेप्टें', 'ऑक्ट', 'नोव्हें', + 'डिसें'], WEEKDAYS: ['रविवार', 'सोमवार', - 'मंगळवार', 'बुधवार', 'गुरुवार', - 'शुक्रवार', 'शनिवार'], + 'मंगळवार', 'बुधवार', 'गुरुवार', + 'शुक्रवार', 'शनिवार'], STANDALONEWEEKDAYS: ['रविवार', 'सोमवार', - 'मंगळवार', 'बुधवार', 'गुरुवार', - 'शुक्रवार', 'शनिवार'], + 'मंगळवार', 'बुधवार', 'गुरुवार', + 'शुक्रवार', 'शनिवार'], SHORTWEEKDAYS: ['रवि', 'सोम', 'मंगळ', 'बुध', - 'गुरु', 'शुक्र', 'शनि'], + 'गुरु', 'शुक्र', 'शनि'], STANDALONESHORTWEEKDAYS: ['रवि', 'सोम', 'मंगळ', - 'बुध', 'गुरु', 'शुक्र', 'शनि'], + 'बुध', 'गुरु', 'शुक्र', 'शनि'], NARROWWEEKDAYS: ['र', 'सो', 'मं', 'बु', 'गु', 'शु', - 'श'], + 'श'], STANDALONENARROWWEEKDAYS: ['र', 'सो', 'मं', 'बु', 'गु', - 'शु', 'श'], - SHORTQUARTERS: ['ति 1', '2 री तिमाही', 'ति 3', - 'ति 4'], + 'शु', 'श'], + SHORTQUARTERS: ['ति 1', 'ति 2', 'ति 3', 'ति 4'], QUARTERS: ['प्रथम तिमाही', - 'द्वितीय तिमाही', - 'तृतीय तिमाही', - 'चतुर्थ तिमाही'], - AMPMS: ['am', 'pm'], + 'द्वितीय तिमाही', + 'तृतीय तिमाही', + 'चतुर्थ तिमाही'], + AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd-M-yy'], TIMEFORMATS: ['h-mm-ss a zzzz', 'h-mm-ss a z', 'h-mm-ss a', 'h-mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [6, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -9455,25 +12982,25 @@ goog.i18n.DateTimeSymbols_mr_IN = { /** - * Date/time formatting symbols for locale ms_BN. + * Date/time formatting symbols for locale ms_Latn. */ -goog.i18n.DateTimeSymbols_ms_BN = { +goog.i18n.DateTimeSymbols_ms_Latn = { ERAS: ['S.M.', 'TM'], ERANAMES: ['S.M.', 'TM'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'O', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'O', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Januari', 'Februari', 'Mac', 'April', 'Mei', 'Jun', 'Julai', 'Ogos', - 'September', 'Oktober', 'November', 'Disember'], + 'September', 'Oktober', 'November', 'Disember'], STANDALONEMONTHS: ['Januari', 'Februari', 'Mac', 'April', 'Mei', 'Jun', - 'Julai', 'Ogos', 'September', 'Oktober', 'November', 'Disember'], + 'Julai', 'Ogos', 'September', 'Oktober', 'November', 'Disember'], SHORTMONTHS: ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ogos', 'Sep', - 'Okt', 'Nov', 'Dis'], + 'Okt', 'Nov', 'Dis'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', - 'Ogos', 'Sep', 'Okt', 'Nov', 'Dis'], + 'Ogos', 'Sep', 'Okt', 'Nov', 'Dis'], WEEKDAYS: ['Ahad', 'Isnin', 'Selasa', 'Rabu', 'Khamis', 'Jumaat', 'Sabtu'], STANDALONEWEEKDAYS: ['Ahad', 'Isnin', 'Selasa', 'Rabu', 'Khamis', 'Jumaat', - 'Sabtu'], + 'Sabtu'], SHORTWEEKDAYS: ['Ahd', 'Isn', 'Sel', 'Rab', 'Kha', 'Jum', 'Sab'], STANDALONESHORTWEEKDAYS: ['Ahd', 'Isn', 'Sel', 'Rab', 'Kha', 'Jum', 'Sab'], NARROWWEEKDAYS: ['A', 'I', 'S', 'R', 'K', 'J', 'S'], @@ -9481,8 +13008,9 @@ goog.i18n.DateTimeSymbols_ms_BN = { SHORTQUARTERS: ['Suku 1', 'Suku Ke-2', 'Suku Ke-3', 'Suku Ke-4'], QUARTERS: ['Suku pertama', 'Suku Ke-2', 'Suku Ke-3', 'Suku Ke-4'], AMPMS: ['PG', 'PTG'], - DATEFORMATS: ['dd MMMM y', 'd MMMM y', 'dd/MM/yyyy', 'd/MM/yy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'dd/MM/y', 'd/MM/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -9490,25 +13018,25 @@ goog.i18n.DateTimeSymbols_ms_BN = { /** - * Date/time formatting symbols for locale ms_MY. + * Date/time formatting symbols for locale ms_Latn_BN. */ -goog.i18n.DateTimeSymbols_ms_MY = { +goog.i18n.DateTimeSymbols_ms_Latn_BN = { ERAS: ['S.M.', 'TM'], ERANAMES: ['S.M.', 'TM'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'O', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'O', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Januari', 'Februari', 'Mac', 'April', 'Mei', 'Jun', 'Julai', 'Ogos', - 'September', 'Oktober', 'November', 'Disember'], + 'September', 'Oktober', 'November', 'Disember'], STANDALONEMONTHS: ['Januari', 'Februari', 'Mac', 'April', 'Mei', 'Jun', - 'Julai', 'Ogos', 'September', 'Oktober', 'November', 'Disember'], + 'Julai', 'Ogos', 'September', 'Oktober', 'November', 'Disember'], SHORTMONTHS: ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ogos', 'Sep', - 'Okt', 'Nov', 'Dis'], + 'Okt', 'Nov', 'Dis'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', - 'Ogos', 'Sep', 'Okt', 'Nov', 'Dis'], + 'Ogos', 'Sep', 'Okt', 'Nov', 'Dis'], WEEKDAYS: ['Ahad', 'Isnin', 'Selasa', 'Rabu', 'Khamis', 'Jumaat', 'Sabtu'], STANDALONEWEEKDAYS: ['Ahad', 'Isnin', 'Selasa', 'Rabu', 'Khamis', 'Jumaat', - 'Sabtu'], + 'Sabtu'], SHORTWEEKDAYS: ['Ahd', 'Isn', 'Sel', 'Rab', 'Kha', 'Jum', 'Sab'], STANDALONESHORTWEEKDAYS: ['Ahd', 'Isn', 'Sel', 'Rab', 'Kha', 'Jum', 'Sab'], NARROWWEEKDAYS: ['A', 'I', 'S', 'R', 'K', 'J', 'S'], @@ -9516,14 +13044,27 @@ goog.i18n.DateTimeSymbols_ms_MY = { SHORTQUARTERS: ['Suku 1', 'Suku Ke-2', 'Suku Ke-3', 'Suku Ke-4'], QUARTERS: ['Suku pertama', 'Suku Ke-2', 'Suku Ke-3', 'Suku Ke-4'], AMPMS: ['PG', 'PTG'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'dd/MM/yyyy', 'd/MM/yy'], + DATEFORMATS: ['dd MMMM y', 'd MMMM y', 'dd/MM/y', 'd/MM/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 }; +/** + * Date/time formatting symbols for locale ms_Latn_MY. + */ +goog.i18n.DateTimeSymbols_ms_Latn_MY = goog.i18n.DateTimeSymbols_ms_Latn; + + +/** + * Date/time formatting symbols for locale ms_Latn_SG. + */ +goog.i18n.DateTimeSymbols_ms_Latn_SG = goog.i18n.DateTimeSymbols_ms_Latn; + + /** * Date/time formatting symbols for locale mt_MT. */ @@ -9532,19 +13073,19 @@ goog.i18n.DateTimeSymbols_mt_MT = { ERANAMES: ['Qabel Kristu', 'Wara Kristu'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'Ġ', 'L', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'Ġ', 'L', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Jannar', 'Frar', 'Marzu', 'April', 'Mejju', 'Ġunju', 'Lulju', - 'Awwissu', 'Settembru', 'Ottubru', 'Novembru', 'Diċembru'], + 'Awwissu', 'Settembru', 'Ottubru', 'Novembru', 'Diċembru'], STANDALONEMONTHS: ['Jannar', 'Frar', 'Marzu', 'April', 'Mejju', 'Ġunju', - 'Lulju', 'Awwissu', 'Settembru', 'Ottubru', 'Novembru', 'Diċembru'], + 'Lulju', 'Awwissu', 'Settembru', 'Ottubru', 'Novembru', 'Diċembru'], SHORTMONTHS: ['Jan', 'Fra', 'Mar', 'Apr', 'Mej', 'Ġun', 'Lul', 'Aww', 'Set', - 'Ott', 'Nov', 'Diċ'], + 'Ott', 'Nov', 'Diċ'], STANDALONESHORTMONTHS: ['Jan', 'Fra', 'Mar', 'Apr', 'Mej', 'Ġun', 'Lul', - 'Aww', 'Set', 'Ott', 'Nov', 'Diċ'], + 'Aww', 'Set', 'Ott', 'Nov', 'Diċ'], WEEKDAYS: ['Il-Ħadd', 'It-Tnejn', 'It-Tlieta', 'L-Erbgħa', 'Il-Ħamis', - 'Il-Ġimgħa', 'Is-Sibt'], + 'Il-Ġimgħa', 'Is-Sibt'], STANDALONEWEEKDAYS: ['Il-Ħadd', 'It-Tnejn', 'It-Tlieta', 'L-Erbgħa', - 'Il-Ħamis', 'Il-Ġimgħa', 'Is-Sibt'], + 'Il-Ħamis', 'Il-Ġimgħa', 'Is-Sibt'], SHORTWEEKDAYS: ['Ħad', 'Tne', 'Tli', 'Erb', 'Ħam', 'Ġim', 'Sib'], STANDALONESHORTWEEKDAYS: ['Ħad', 'Tne', 'Tli', 'Erb', 'Ħam', 'Ġim', 'Sib'], NARROWWEEKDAYS: ['Ħ', 'T', 'T', 'E', 'Ħ', 'Ġ', 'S'], @@ -9553,8 +13094,9 @@ goog.i18n.DateTimeSymbols_mt_MT = { QUARTERS: ['K1', 'K2', 'K3', 'K4'], AMPMS: ['QN', 'WN'], DATEFORMATS: ['EEEE, d \'ta\'’ MMMM y', 'd \'ta\'’ MMMM y', 'dd MMM y', - 'dd/MM/yyyy'], + 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -9569,33 +13111,32 @@ goog.i18n.DateTimeSymbols_mua = { ERANAMES: ['KǝPel Kristu', 'Pel Kristu'], NARROWMONTHS: ['O', 'A', 'I', 'F', 'D', 'B', 'L', 'M', 'E', 'U', 'W', 'Y'], STANDALONENARROWMONTHS: ['O', 'A', 'I', 'F', 'D', 'B', 'L', 'M', 'E', 'U', - 'W', 'Y'], + 'W', 'Y'], MONTHS: ['Fĩi Loo', 'Cokcwaklaŋne', 'Cokcwaklii', 'Fĩi Marfoo', - 'Madǝǝuutǝbijaŋ', 'Mamǝŋgwãafahbii', 'Mamǝŋgwãalii', - 'Madǝmbii', 'Fĩi Dǝɓlii', 'Fĩi Mundaŋ', 'Fĩi Gwahlle', - 'Fĩi Yuru'], + 'Madǝǝuutǝbijaŋ', 'Mamǝŋgwãafahbii', 'Mamǝŋgwãalii', 'Madǝmbii', + 'Fĩi Dǝɓlii', 'Fĩi Mundaŋ', 'Fĩi Gwahlle', 'Fĩi Yuru'], STANDALONEMONTHS: ['Fĩi Loo', 'Cokcwaklaŋne', 'Cokcwaklii', 'Fĩi Marfoo', - 'Madǝǝuutǝbijaŋ', 'Mamǝŋgwãafahbii', 'Mamǝŋgwãalii', - 'Madǝmbii', 'Fĩi Dǝɓlii', 'Fĩi Mundaŋ', 'Fĩi Gwahlle', - 'Fĩi Yuru'], + 'Madǝǝuutǝbijaŋ', 'Mamǝŋgwãafahbii', 'Mamǝŋgwãalii', 'Madǝmbii', + 'Fĩi Dǝɓlii', 'Fĩi Mundaŋ', 'Fĩi Gwahlle', 'Fĩi Yuru'], SHORTMONTHS: ['FLO', 'CLA', 'CKI', 'FMF', 'MAD', 'MBI', 'MLI', 'MAM', 'FDE', - 'FMU', 'FGW', 'FYU'], + 'FMU', 'FGW', 'FYU'], STANDALONESHORTMONTHS: ['FLO', 'CLA', 'CKI', 'FMF', 'MAD', 'MBI', 'MLI', - 'MAM', 'FDE', 'FMU', 'FGW', 'FYU'], + 'MAM', 'FDE', 'FMU', 'FGW', 'FYU'], WEEKDAYS: ['Com\'yakke', 'Comlaaɗii', 'Comzyiiɗii', 'Comkolle', - 'Comkaldǝɓlii', 'Comgaisuu', 'Comzyeɓsuu'], + 'Comkaldǝɓlii', 'Comgaisuu', 'Comzyeɓsuu'], STANDALONEWEEKDAYS: ['Com\'yakke', 'Comlaaɗii', 'Comzyiiɗii', 'Comkolle', - 'Comkaldǝɓlii', 'Comgaisuu', 'Comzyeɓsuu'], + 'Comkaldǝɓlii', 'Comgaisuu', 'Comzyeɓsuu'], SHORTWEEKDAYS: ['Cya', 'Cla', 'Czi', 'Cko', 'Cka', 'Cga', 'Cze'], STANDALONESHORTWEEKDAYS: ['Cya', 'Cla', 'Czi', 'Cko', 'Cka', 'Cga', 'Cze'], NARROWWEEKDAYS: ['Y', 'L', 'Z', 'O', 'A', 'G', 'E'], STANDALONENARROWWEEKDAYS: ['Y', 'L', 'Z', 'O', 'A', 'G', 'E'], SHORTQUARTERS: ['F1', 'F2', 'F3', 'F4'], QUARTERS: ['Tai fĩi sai ma tǝn kee zah', 'Tai fĩi sai zah lǝn gwa ma kee', - 'Tai fĩi sai zah lǝn sai ma kee', 'Tai fĩi sai ma coo kee zah \'na'], + 'Tai fĩi sai zah lǝn sai ma kee', 'Tai fĩi sai ma coo kee zah \'na'], AMPMS: ['comme', 'lilli'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/yyyy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -9615,48 +13156,49 @@ goog.i18n.DateTimeSymbols_my = { ZERODIGIT: 0x1040, ERAS: ['ဘီစီ', 'အေဒီ'], ERANAMES: ['ခရစ်တော် မပေါ်မီကာလ', - 'ခရစ်တော် ပေါ်ထွန်းပြီးကာလ'], + 'ခရစ်တော် ပေါ်ထွန်းပြီးကာလ'], NARROWMONTHS: ['ဇ', 'ဖ', 'မ', 'ဧ', 'မ', 'ဇ', 'ဇ', 'ဩ', 'စ', - 'အ', 'န', 'ဒ'], + 'အ', 'န', 'ဒ'], STANDALONENARROWMONTHS: ['ဇ', 'ဖ', 'မ', 'ဧ', 'မ', 'ဇ', 'ဇ', - 'ဩ', 'စ', 'အ', 'န', 'ဒ'], + 'ဩ', 'စ', 'အ', 'န', 'ဒ'], MONTHS: ['ဇန်နဝါရီ', 'ဖေဖော်ဝါရီ', - 'မတ်', 'ဧပြီ', 'မေ', 'ဇွန်', - 'ဇူလိုင်', 'ဩဂုတ်', 'စက်တင်ဘာ', - 'အောက်တိုဘာ', 'နိုဝင်ဘာ', - 'ဒီဇင်ဘာ'], + 'မတ်', 'ဧပြီ', 'မေ', 'ဇွန်', + 'ဇူလိုင်', 'ဩဂုတ်', 'စက်တင်ဘာ', + 'အောက်တိုဘာ', 'နိုဝင်ဘာ', + 'ဒီဇင်ဘာ'], STANDALONEMONTHS: ['ဇန်နဝါရီ', - 'ဖေဖော်ဝါရီ', 'မတ်', 'ဧပြီ', 'မေ', - 'ဇွန်', 'ဇူလိုင်', 'ဩဂုတ်', - 'စက်တင်ဘာ', 'အောက်တိုဘာ', - 'နိုဝင်ဘာ', 'ဒီဇင်ဘာ'], + 'ဖေဖော်ဝါရီ', 'မတ်', 'ဧပြီ', 'မေ', + 'ဇွန်', 'ဇူလိုင်', 'ဩဂုတ်', + 'စက်တင်ဘာ', 'အောက်တိုဘာ', + 'နိုဝင်ဘာ', 'ဒီဇင်ဘာ'], SHORTMONTHS: ['ဇန်', 'ဖေ', 'မတ်', 'ဧ', 'မေ', - 'ဇွန်', 'ဇူ', 'ဩ', 'စက်', 'အောက်', - 'နို', 'ဒီ'], + 'ဇွန်', 'ဇူ', 'ဩ', 'စက်', 'အောက်', + 'နို', 'ဒီ'], STANDALONESHORTMONTHS: ['ဇန်', 'ဖေ', 'မတ်', 'ဧ', 'မေ', - 'ဇွန်', 'ဇူ', 'ဩ', 'စက်', 'အောက်', - 'နို', 'ဒီ'], + 'ဇွန်', 'ဇူ', 'ဩ', 'စက်', 'အောက်', + 'နို', 'ဒီ'], WEEKDAYS: ['တနင်္ဂနွေ', 'တနင်္လာ', - 'အင်္ဂါ', 'ဗုဒ္ဓဟူး', - 'ကြာသပတေး', 'သောကြာ', 'စနေ'], + 'အင်္ဂါ', 'ဗုဒ္ဓဟူး', + 'ကြာသပတေး', 'သောကြာ', 'စနေ'], STANDALONEWEEKDAYS: ['တနင်္ဂနွေ', 'တနင်္လာ', - 'အင်္ဂါ', 'ဗုဒ္ဓဟူး', - 'ကြာသပတေး', 'သောကြာ', 'စနေ'], + 'အင်္ဂါ', 'ဗုဒ္ဓဟူး', + 'ကြာသပတေး', 'သောကြာ', 'စနေ'], SHORTWEEKDAYS: ['နွေ', 'လာ', 'ဂါ', 'ဟူး', 'တေး', - 'ကြာ', 'နေ'], + 'ကြာ', 'နေ'], STANDALONESHORTWEEKDAYS: ['နွေ', 'လာ', 'ဂါ', 'ဟူး', - 'တေး', 'ကြာ', 'နေ'], + 'တေး', 'ကြာ', 'နေ'], NARROWWEEKDAYS: ['တ', 'တ', 'အ', 'ဗ', 'က', 'သ', 'စ'], STANDALONENARROWWEEKDAYS: ['တ', 'တ', 'အ', 'ဗ', 'က', 'သ', 'စ'], SHORTQUARTERS: ['ပ-စိတ်', 'ဒု-စိတ်', 'တ-စိတ်', - 'စ-စိတ်'], + 'စ-စိတ်'], QUARTERS: ['ပထမ သုံးလပတ်', - 'ဒုတိယ သုံးလပတ်', - 'တတိယ သုံးလပတ်', - 'စတုတ္ထ သုံးလပတ်'], + 'ဒုတိယ သုံးလပတ်', + 'တတိယ သုံးလပတ်', + 'စတုတ္ထ သုံးလပတ်'], AMPMS: ['နံနက်', 'ညနေ'], DATEFORMATS: ['EEEE, y MMMM dd', 'y MMMM d', 'y MMM d', 'yy/MM/dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -9677,33 +13219,33 @@ goog.i18n.DateTimeSymbols_naq = { ERANAMES: ['Xristub aiǃâ', 'Xristub khaoǃgâ'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['ǃKhanni', 'ǃKhanǀgôab', 'ǀKhuuǁkhâb', 'ǃHôaǂkhaib', - 'ǃKhaitsâb', 'Gamaǀaeb', 'ǂKhoesaob', 'Aoǁkhuumûǁkhâb', - 'Taraǀkhuumûǁkhâb', 'ǂNûǁnâiseb', 'ǀHooǂgaeb', - 'Hôasoreǁkhâb'], + 'ǃKhaitsâb', 'Gamaǀaeb', 'ǂKhoesaob', 'Aoǁkhuumûǁkhâb', + 'Taraǀkhuumûǁkhâb', 'ǂNûǁnâiseb', 'ǀHooǂgaeb', 'Hôasoreǁkhâb'], STANDALONEMONTHS: ['ǃKhanni', 'ǃKhanǀgôab', 'ǀKhuuǁkhâb', - 'ǃHôaǂkhaib', 'ǃKhaitsâb', 'Gamaǀaeb', 'ǂKhoesaob', - 'Aoǁkhuumûǁkhâb', 'Taraǀkhuumûǁkhâb', 'ǂNûǁnâiseb', - 'ǀHooǂgaeb', 'Hôasoreǁkhâb'], + 'ǃHôaǂkhaib', 'ǃKhaitsâb', 'Gamaǀaeb', 'ǂKhoesaob', + 'Aoǁkhuumûǁkhâb', 'Taraǀkhuumûǁkhâb', 'ǂNûǁnâiseb', + 'ǀHooǂgaeb', 'Hôasoreǁkhâb'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec'], + 'Oct', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', - 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], WEEKDAYS: ['Sontaxtsees', 'Mantaxtsees', 'Denstaxtsees', 'Wunstaxtsees', - 'Dondertaxtsees', 'Fraitaxtsees', 'Satertaxtsees'], + 'Dondertaxtsees', 'Fraitaxtsees', 'Satertaxtsees'], STANDALONEWEEKDAYS: ['Sontaxtsees', 'Mantaxtsees', 'Denstaxtsees', - 'Wunstaxtsees', 'Dondertaxtsees', 'Fraitaxtsees', 'Satertaxtsees'], + 'Wunstaxtsees', 'Dondertaxtsees', 'Fraitaxtsees', 'Satertaxtsees'], SHORTWEEKDAYS: ['Son', 'Ma', 'De', 'Wu', 'Do', 'Fr', 'Sat'], STANDALONESHORTWEEKDAYS: ['Son', 'Ma', 'De', 'Wu', 'Do', 'Fr', 'Sat'], NARROWWEEKDAYS: ['S', 'M', 'E', 'W', 'D', 'F', 'A'], STANDALONENARROWWEEKDAYS: ['S', 'M', 'E', 'W', 'D', 'F', 'A'], SHORTQUARTERS: ['KW1', 'KW2', 'KW3', 'KW4'], QUARTERS: ['1ro kwartals', '2ǁî kwartals', '3ǁî kwartals', - '4ǁî kwartals'], + '4ǁî kwartals'], AMPMS: ['ǁgoagas', 'ǃuias'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -9717,26 +13259,26 @@ goog.i18n.DateTimeSymbols_naq_NA = goog.i18n.DateTimeSymbols_naq; /** - * Date/time formatting symbols for locale nb. + * Date/time formatting symbols for locale nb_NO. */ -goog.i18n.DateTimeSymbols_nb = { +goog.i18n.DateTimeSymbols_nb_NO = { ERAS: ['f.Kr.', 'e.Kr.'], ERANAMES: ['f.Kr.', 'e.Kr.'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['januar', 'februar', 'mars', 'april', 'mai', 'juni', 'juli', - 'august', 'september', 'oktober', 'november', 'desember'], + 'august', 'september', 'oktober', 'november', 'desember'], STANDALONEMONTHS: ['januar', 'februar', 'mars', 'april', 'mai', 'juni', - 'juli', 'august', 'september', 'oktober', 'november', 'desember'], + 'juli', 'august', 'september', 'oktober', 'november', 'desember'], SHORTMONTHS: ['jan.', 'feb.', 'mars', 'apr.', 'mai', 'juni', 'juli', 'aug.', - 'sep.', 'okt.', 'nov.', 'des.'], + 'sep.', 'okt.', 'nov.', 'des.'], STANDALONESHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'mai', 'jun', 'jul', - 'aug', 'sep', 'okt', 'nov', 'des'], + 'aug', 'sep', 'okt', 'nov', 'des'], WEEKDAYS: ['søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', - 'lørdag'], + 'lørdag'], STANDALONEWEEKDAYS: ['søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', - 'fredag', 'lørdag'], + 'fredag', 'lørdag'], SHORTWEEKDAYS: ['søn.', 'man.', 'tir.', 'ons.', 'tor.', 'fre.', 'lør.'], STANDALONESHORTWEEKDAYS: ['sø.', 'ma.', 'ti.', 'on.', 'to.', 'fr.', 'lø.'], NARROWWEEKDAYS: ['S', 'M', 'T', 'O', 'T', 'F', 'L'], @@ -9746,18 +13288,13 @@ goog.i18n.DateTimeSymbols_nb = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE d. MMMM y', 'd. MMMM y', 'd. MMM y', 'dd.MM.yy'], TIMEFORMATS: ['\'kl\'. HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} \'kl.\' {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 }; -/** - * Date/time formatting symbols for locale nb_NO. - */ -goog.i18n.DateTimeSymbols_nb_NO = goog.i18n.DateTimeSymbols_nb; - - /** * Date/time formatting symbols for locale nd. */ @@ -9766,21 +13303,21 @@ goog.i18n.DateTimeSymbols_nd = { ERANAMES: ['UKristo angakabuyi', 'Ukristo ebuyile'], NARROWMONTHS: ['Z', 'N', 'M', 'M', 'N', 'N', 'N', 'N', 'M', 'M', 'L', 'M'], STANDALONENARROWMONTHS: ['Z', 'N', 'M', 'M', 'N', 'N', 'N', 'N', 'M', 'M', - 'L', 'M'], + 'L', 'M'], MONTHS: ['Zibandlela', 'Nhlolanja', 'Mbimbitho', 'Mabasa', 'Nkwenkwezi', - 'Nhlangula', 'Ntulikazi', 'Ncwabakazi', 'Mpandula', 'Mfumfu', 'Lwezi', - 'Mpalakazi'], + 'Nhlangula', 'Ntulikazi', 'Ncwabakazi', 'Mpandula', 'Mfumfu', 'Lwezi', + 'Mpalakazi'], STANDALONEMONTHS: ['Zibandlela', 'Nhlolanja', 'Mbimbitho', 'Mabasa', - 'Nkwenkwezi', 'Nhlangula', 'Ntulikazi', 'Ncwabakazi', 'Mpandula', - 'Mfumfu', 'Lwezi', 'Mpalakazi'], + 'Nkwenkwezi', 'Nhlangula', 'Ntulikazi', 'Ncwabakazi', 'Mpandula', 'Mfumfu', + 'Lwezi', 'Mpalakazi'], SHORTMONTHS: ['Zib', 'Nhlo', 'Mbi', 'Mab', 'Nkw', 'Nhla', 'Ntu', 'Ncw', - 'Mpan', 'Mfu', 'Lwe', 'Mpal'], + 'Mpan', 'Mfu', 'Lwe', 'Mpal'], STANDALONESHORTMONTHS: ['Zib', 'Nhlo', 'Mbi', 'Mab', 'Nkw', 'Nhla', 'Ntu', - 'Ncw', 'Mpan', 'Mfu', 'Lwe', 'Mpal'], + 'Ncw', 'Mpan', 'Mfu', 'Lwe', 'Mpal'], WEEKDAYS: ['Sonto', 'Mvulo', 'Sibili', 'Sithathu', 'Sine', 'Sihlanu', - 'Mgqibelo'], + 'Mgqibelo'], STANDALONEWEEKDAYS: ['Sonto', 'Mvulo', 'Sibili', 'Sithathu', 'Sine', - 'Sihlanu', 'Mgqibelo'], + 'Sihlanu', 'Mgqibelo'], SHORTWEEKDAYS: ['Son', 'Mvu', 'Sib', 'Sit', 'Sin', 'Sih', 'Mgq'], STANDALONESHORTWEEKDAYS: ['Son', 'Mvu', 'Sib', 'Sit', 'Sin', 'Sih', 'Mgq'], NARROWWEEKDAYS: ['S', 'M', 'S', 'S', 'S', 'S', 'M'], @@ -9788,8 +13325,9 @@ goog.i18n.DateTimeSymbols_nd = { SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], QUARTERS: ['Kota 1', 'Kota 2', 'Kota 3', 'Kota 4'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -9806,49 +13344,51 @@ goog.i18n.DateTimeSymbols_nd_ZW = goog.i18n.DateTimeSymbols_nd; * Date/time formatting symbols for locale ne. */ goog.i18n.DateTimeSymbols_ne = { + ZERODIGIT: 0x0966, ERAS: ['ईसा पूर्व', 'सन्'], ERANAMES: ['ईसा पूर्व', 'सन्'], NARROWMONTHS: ['१', '२', '३', '४', '५', '६', '७', '८', '९', - '१०', '११', '१२'], + '१०', '११', '१२'], STANDALONENARROWMONTHS: ['१', '२', '३', '४', '५', '६', '७', - '८', '९', '१०', '११', '१२'], + '८', '९', '१०', '११', '१२'], MONTHS: ['जनवरी', 'फेब्रुअरी', 'मार्च', - 'अप्रिल', 'मे', 'जुन', 'जुलाई', - 'अगस्त', 'सेप्टेम्बर', - 'अक्टोबर', 'नोभेम्बर', - 'डिसेम्बर'], + 'अप्रिल', 'मे', 'जुन', 'जुलाई', + 'अगस्ट', 'सेप्टेम्बर', + 'अक्टोबर', 'नोभेम्बर', + 'डिसेम्बर'], STANDALONEMONTHS: ['जनवरी', 'फेब्रुअरी', - 'मार्च', 'अप्रिल', 'मे', 'जुन', - 'जुलाई', 'अगस्त', 'सेप्टेम्बर', - 'अक्टोबर', 'नोभेम्बर', - 'डिसेम्बर'], + 'मार्च', 'अप्रिल', 'मे', 'जुन', + 'जुलाई', 'अगस्ट', 'सेप्टेम्बर', + 'अक्टोबर', 'नोभेम्बर', + 'डिसेम्बर'], SHORTMONTHS: ['जन', 'फेब', 'मार्च', 'अप्रि', - 'मे', 'जुन', 'जुला', 'अग', 'सेप्ट', - 'अक्टो', 'नोभे', 'डिसे'], + 'मे', 'जुन', 'जुला', 'अग', 'सेप्ट', + 'अक्टो', 'नोभे', 'डिसे'], STANDALONESHORTMONTHS: ['जन', 'फेब', 'मार्च', - 'अप्रि', 'मे', 'जुन', 'जुला', 'अग', - 'सेप्ट', 'अक्टो', 'नोभे', 'डिसे'], + 'अप्रि', 'मे', 'जुन', 'जुला', 'अग', + 'सेप्ट', 'अक्टो', 'नोभे', 'डिसे'], WEEKDAYS: ['आइतबार', 'सोमबार', - 'मङ्गलबार', 'बुधबार', 'बिहीबार', - 'शुक्रबार', 'शनिबार'], + 'मङ्गलबार', 'बुधबार', 'बिहीबार', + 'शुक्रबार', 'शनिबार'], STANDALONEWEEKDAYS: ['आइतबार', 'सोमबार', - 'मङ्गलबार', 'बुधबार', 'बिहीबार', - 'शुक्रबार', 'शनिबार'], + 'मङ्गलबार', 'बुधबार', 'बिहीबार', + 'शुक्रबार', 'शनिबार'], SHORTWEEKDAYS: ['आइत', 'सोम', 'मङ्गल', 'बुध', - 'बिही', 'शुक्र', 'शनि'], + 'बिही', 'शुक्र', 'शनि'], STANDALONESHORTWEEKDAYS: ['आइत', 'सोम', 'मङ्गल', - 'बुध', 'बिही', 'शुक्र', 'शनि'], + 'बुध', 'बिही', 'शुक्र', 'शनि'], NARROWWEEKDAYS: ['१', '२', '३', '४', '५', '६', '७'], STANDALONENARROWWEEKDAYS: ['१', '२', '३', '४', '५', '६', '७'], SHORTQUARTERS: ['पहिलो सत्र', - 'दोस्रो सत्र', 'तेस्रो सत्र', - 'चौथो सत्र'], + 'दोस्रो सत्र', 'तेस्रो सत्र', + 'चौथो सत्र'], QUARTERS: ['पहिलो सत्र', 'दोस्रो सत्र', - 'तेस्रो सत्र', 'चौथो सत्र'], + 'तेस्रो सत्र', 'चौथो सत्र'], AMPMS: ['पूर्व मध्यान्ह', - 'उत्तर मध्यान्ह'], - DATEFORMATS: ['EEEE, y MMMM dd', 'y MMMM d', 'y MMM d', 'yyyy-MM-dd'], + 'उत्तर मध्यान्ह'], + DATEFORMATS: ['y MMMM d, EEEE', 'y MMMM d', 'y MMM d', 'y-MM-dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -9859,47 +13399,50 @@ goog.i18n.DateTimeSymbols_ne = { * Date/time formatting symbols for locale ne_IN. */ goog.i18n.DateTimeSymbols_ne_IN = { + ZERODIGIT: 0x0966, ERAS: ['ईसा पूर्व', 'सन्'], ERANAMES: ['ईसा पूर्व', 'सन्'], NARROWMONTHS: ['१', '२', '३', '४', '५', '६', '७', '८', '९', - '१०', '११', '१२'], + '१०', '११', '१२'], STANDALONENARROWMONTHS: ['१', '२', '३', '४', '५', '६', '७', - '८', '९', '१०', '११', '१२'], + '८', '९', '१०', '११', '१२'], MONTHS: ['जनवरी', 'फरवरी', 'मार्च', - 'अप्रेल', 'मई', 'जुन', 'जुलाई', - 'अगस्त', 'सेप्टेम्बर', - 'अक्टोबर', 'नोभेम्बर', - 'दिसम्बर'], - STANDALONEMONTHS: ['जनवरी', 'फरवरी', 'मार्च', - 'अप्रेल', 'मई', 'जुन', 'जुलाई', - 'अगस्त', 'सेप्टेम्बर', - 'अक्टोबर', 'नोभेम्बर', - 'दिसम्बर'], + 'अप्रेल', 'मई', 'जुन', 'जुलाई', + 'अगस्त', 'सेप्टेम्बर', + 'अक्टोबर', 'नोभेम्बर', + 'दिसम्बर'], + STANDALONEMONTHS: ['जनवरी', 'फेब्रुअरी', + 'मार्च', 'अप्रिल', 'मे', 'जुन', + 'जुलाई', 'अगस्ट', 'सेप्टेम्बर', + 'अक्टोबर', 'नोभेम्बर', + 'डिसेम्बर'], SHORTMONTHS: ['जन', 'फेब', 'मार्च', 'अप्रि', - 'मे', 'जुन', 'जुला', 'अग', 'सेप्ट', - 'अक्टो', 'नोभे', 'डिसे'], + 'मे', 'जुन', 'जुला', 'अग', 'सेप्ट', + 'अक्टो', 'नोभे', 'डिसे'], STANDALONESHORTMONTHS: ['जन', 'फेब', 'मार्च', - 'अप्रि', 'मे', 'जुन', 'जुला', 'अग', - 'सेप्ट', 'अक्टो', 'नोभे', 'डिसे'], + 'अप्रि', 'मे', 'जुन', 'जुला', 'अग', + 'सेप्ट', 'अक्टो', 'नोभे', 'डिसे'], WEEKDAYS: ['आइतवार', 'सोमवार', - 'मङ्गलवार', 'बुधवार', 'बिहीवार', - 'शुक्रवार', 'शनिवार'], - STANDALONEWEEKDAYS: ['आइतवार', 'सोमवार', - 'मङ्गलवार', 'बुधवार', 'बिहीवार', - 'शुक्रवार', 'शनिवार'], + 'मङ्गलवार', 'बुधवार', 'बिहीवार', + 'शुक्रवार', 'शनिवार'], + STANDALONEWEEKDAYS: ['आइतबार', 'सोमबार', + 'मङ्गलबार', 'बुधबार', 'बिहीबार', + 'शुक्रबार', 'शनिबार'], SHORTWEEKDAYS: ['आइत', 'सोम', 'मङ्गल', 'बुध', - 'बिही', 'शुक्र', 'शनि'], + 'बिही', 'शुक्र', 'शनि'], STANDALONESHORTWEEKDAYS: ['आइत', 'सोम', 'मङ्गल', - 'बुध', 'बिही', 'शुक्र', 'शनि'], + 'बुध', 'बिही', 'शुक्र', 'शनि'], NARROWWEEKDAYS: ['१', '२', '३', '४', '५', '६', '७'], STANDALONENARROWWEEKDAYS: ['१', '२', '३', '४', '५', '६', '७'], - SHORTQUARTERS: ['पहिलो पाउ', 'दोस्रो पाउ', - 'तेस्रो पाउ', 'चौथो पाउ'], + SHORTQUARTERS: ['पहिलो सत्र', + 'दोस्रो सत्र', 'तेस्रो सत्र', + 'चौथो सत्र'], QUARTERS: ['पहिलो पाउ', 'दोस्रो पाउ', - 'तेस्रो पाउ', 'चौथो पाउ'], + 'तेस्रो पाउ', 'चौथो पाउ'], AMPMS: ['पूर्वाह्न', 'अपराह्न'], - DATEFORMATS: ['EEEE, y MMMM dd', 'y MMMM d', 'y MMM d', 'yyyy-MM-dd'], + DATEFORMATS: ['y MMMM d, EEEE', 'y MMMM d', 'y MMM d', 'y-MM-dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [6, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -9916,23 +13459,23 @@ goog.i18n.DateTimeSymbols_ne_NP = goog.i18n.DateTimeSymbols_ne; * Date/time formatting symbols for locale nl_AW. */ goog.i18n.DateTimeSymbols_nl_AW = { - ERAS: ['v. Chr.', 'n. Chr.'], + ERAS: ['v.Chr.', 'n.Chr.'], ERANAMES: ['Voor Christus', 'na Christus'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', - 'augustus', 'september', 'oktober', 'november', 'december'], + 'augustus', 'september', 'oktober', 'november', 'december'], STANDALONEMONTHS: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', - 'juli', 'augustus', 'september', 'oktober', 'november', 'december'], + 'juli', 'augustus', 'september', 'oktober', 'november', 'december'], SHORTMONTHS: ['jan.', 'feb.', 'mrt.', 'apr.', 'mei', 'jun.', 'jul.', 'aug.', - 'sep.', 'okt.', 'nov.', 'dec.'], + 'sep.', 'okt.', 'nov.', 'dec.'], STANDALONESHORTMONTHS: ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', - 'aug', 'sep', 'okt', 'nov', 'dec'], + 'aug', 'sep', 'okt', 'nov', 'dec'], WEEKDAYS: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', - 'zaterdag'], + 'zaterdag'], STANDALONEWEEKDAYS: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', - 'vrijdag', 'zaterdag'], + 'vrijdag', 'zaterdag'], SHORTWEEKDAYS: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], STANDALONESHORTWEEKDAYS: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], NARROWWEEKDAYS: ['Z', 'M', 'D', 'W', 'D', 'V', 'Z'], @@ -9942,6 +13485,7 @@ goog.i18n.DateTimeSymbols_nl_AW = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd-MM-yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -9952,23 +13496,23 @@ goog.i18n.DateTimeSymbols_nl_AW = { * Date/time formatting symbols for locale nl_BE. */ goog.i18n.DateTimeSymbols_nl_BE = { - ERAS: ['v. Chr.', 'n. Chr.'], + ERAS: ['v.Chr.', 'n.Chr.'], ERANAMES: ['Voor Christus', 'na Christus'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', - 'augustus', 'september', 'oktober', 'november', 'december'], + 'augustus', 'september', 'oktober', 'november', 'december'], STANDALONEMONTHS: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', - 'juli', 'augustus', 'september', 'oktober', 'november', 'december'], + 'juli', 'augustus', 'september', 'oktober', 'november', 'december'], SHORTMONTHS: ['jan.', 'feb.', 'mrt.', 'apr.', 'mei', 'jun.', 'jul.', 'aug.', - 'sep.', 'okt.', 'nov.', 'dec.'], + 'sep.', 'okt.', 'nov.', 'dec.'], STANDALONESHORTMONTHS: ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', - 'aug', 'sep', 'okt', 'nov', 'dec'], + 'aug', 'sep', 'okt', 'nov', 'dec'], WEEKDAYS: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', - 'zaterdag'], + 'zaterdag'], STANDALONEWEEKDAYS: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', - 'vrijdag', 'zaterdag'], + 'vrijdag', 'zaterdag'], SHORTWEEKDAYS: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], STANDALONESHORTWEEKDAYS: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], NARROWWEEKDAYS: ['Z', 'M', 'D', 'W', 'D', 'V', 'Z'], @@ -9978,6 +13522,7 @@ goog.i18n.DateTimeSymbols_nl_BE = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd-MMM-y', 'd/MM/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -9985,26 +13530,26 @@ goog.i18n.DateTimeSymbols_nl_BE = { /** - * Date/time formatting symbols for locale nl_NL. + * Date/time formatting symbols for locale nl_CW. */ -goog.i18n.DateTimeSymbols_nl_NL = { - ERAS: ['v. Chr.', 'n. Chr.'], +goog.i18n.DateTimeSymbols_nl_CW = { + ERAS: ['v.Chr.', 'n.Chr.'], ERANAMES: ['Voor Christus', 'na Christus'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', - 'augustus', 'september', 'oktober', 'november', 'december'], + 'augustus', 'september', 'oktober', 'november', 'december'], STANDALONEMONTHS: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', - 'juli', 'augustus', 'september', 'oktober', 'november', 'december'], + 'juli', 'augustus', 'september', 'oktober', 'november', 'december'], SHORTMONTHS: ['jan.', 'feb.', 'mrt.', 'apr.', 'mei', 'jun.', 'jul.', 'aug.', - 'sep.', 'okt.', 'nov.', 'dec.'], + 'sep.', 'okt.', 'nov.', 'dec.'], STANDALONESHORTMONTHS: ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', - 'aug', 'sep', 'okt', 'nov', 'dec'], + 'aug', 'sep', 'okt', 'nov', 'dec'], WEEKDAYS: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', - 'zaterdag'], + 'zaterdag'], STANDALONEWEEKDAYS: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', - 'vrijdag', 'zaterdag'], + 'vrijdag', 'zaterdag'], SHORTWEEKDAYS: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], STANDALONESHORTWEEKDAYS: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], NARROWWEEKDAYS: ['Z', 'M', 'D', 'W', 'D', 'V', 'Z'], @@ -10014,12 +13559,124 @@ goog.i18n.DateTimeSymbols_nl_NL = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd-MM-yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale nl_NL. + */ +goog.i18n.DateTimeSymbols_nl_NL = { + ERAS: ['v.Chr.', 'n.Chr.'], + ERANAMES: ['Voor Christus', 'na Christus'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', + 'augustus', 'september', 'oktober', 'november', 'december'], + STANDALONEMONTHS: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', + 'juli', 'augustus', 'september', 'oktober', 'november', 'december'], + SHORTMONTHS: ['jan.', 'feb.', 'mrt.', 'apr.', 'mei', 'jun.', 'jul.', 'aug.', + 'sep.', 'okt.', 'nov.', 'dec.'], + STANDALONESHORTMONTHS: ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', + 'aug', 'sep', 'okt', 'nov', 'dec'], + WEEKDAYS: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', + 'zaterdag'], + STANDALONEWEEKDAYS: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', + 'vrijdag', 'zaterdag'], + SHORTWEEKDAYS: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], + STANDALONESHORTWEEKDAYS: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], + NARROWWEEKDAYS: ['Z', 'M', 'D', 'W', 'D', 'V', 'Z'], + STANDALONENARROWWEEKDAYS: ['Z', 'M', 'D', 'W', 'D', 'V', 'Z'], + SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], + QUARTERS: ['1e kwartaal', '2e kwartaal', '3e kwartaal', '4e kwartaal'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd-MM-yy'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 }; +/** + * Date/time formatting symbols for locale nl_SR. + */ +goog.i18n.DateTimeSymbols_nl_SR = { + ERAS: ['v.Chr.', 'n.Chr.'], + ERANAMES: ['Voor Christus', 'na Christus'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', + 'augustus', 'september', 'oktober', 'november', 'december'], + STANDALONEMONTHS: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', + 'juli', 'augustus', 'september', 'oktober', 'november', 'december'], + SHORTMONTHS: ['jan.', 'feb.', 'mrt.', 'apr.', 'mei', 'jun.', 'jul.', 'aug.', + 'sep.', 'okt.', 'nov.', 'dec.'], + STANDALONESHORTMONTHS: ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', + 'aug', 'sep', 'okt', 'nov', 'dec'], + WEEKDAYS: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', + 'zaterdag'], + STANDALONEWEEKDAYS: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', + 'vrijdag', 'zaterdag'], + SHORTWEEKDAYS: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], + STANDALONESHORTWEEKDAYS: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], + NARROWWEEKDAYS: ['Z', 'M', 'D', 'W', 'D', 'V', 'Z'], + STANDALONENARROWWEEKDAYS: ['Z', 'M', 'D', 'W', 'D', 'V', 'Z'], + SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], + QUARTERS: ['1e kwartaal', '2e kwartaal', '3e kwartaal', '4e kwartaal'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd-MM-yy'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale nl_SX. + */ +goog.i18n.DateTimeSymbols_nl_SX = { + ERAS: ['v.Chr.', 'n.Chr.'], + ERANAMES: ['Voor Christus', 'na Christus'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', + 'augustus', 'september', 'oktober', 'november', 'december'], + STANDALONEMONTHS: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', + 'juli', 'augustus', 'september', 'oktober', 'november', 'december'], + SHORTMONTHS: ['jan.', 'feb.', 'mrt.', 'apr.', 'mei', 'jun.', 'jul.', 'aug.', + 'sep.', 'okt.', 'nov.', 'dec.'], + STANDALONESHORTMONTHS: ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', + 'aug', 'sep', 'okt', 'nov', 'dec'], + WEEKDAYS: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', + 'zaterdag'], + STANDALONEWEEKDAYS: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', + 'vrijdag', 'zaterdag'], + SHORTWEEKDAYS: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], + STANDALONESHORTWEEKDAYS: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], + NARROWWEEKDAYS: ['Z', 'M', 'D', 'W', 'D', 'V', 'Z'], + STANDALONENARROWWEEKDAYS: ['Z', 'M', 'D', 'W', 'D', 'V', 'Z'], + SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], + QUARTERS: ['1e kwartaal', '2e kwartaal', '3e kwartaal', '4e kwartaal'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd-MM-yy'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + /** * Date/time formatting symbols for locale nmg. */ @@ -10028,34 +13685,35 @@ goog.i18n.DateTimeSymbols_nmg = { ERANAMES: ['Bó Lahlɛ̄', 'Pfiɛ Burī'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['ngwɛn matáhra', 'ngwɛn ńmba', 'ngwɛn ńlal', 'ngwɛn ńna', - 'ngwɛn ńtan', 'ngwɛn ńtuó', 'ngwɛn hɛmbuɛrí', 'ngwɛn lɔmbi', - 'ngwɛn rɛbvuâ', 'ngwɛn wum', 'ngwɛn wum navŭr', 'krísimin'], + 'ngwɛn ńtan', 'ngwɛn ńtuó', 'ngwɛn hɛmbuɛrí', 'ngwɛn lɔmbi', + 'ngwɛn rɛbvuâ', 'ngwɛn wum', 'ngwɛn wum navŭr', 'krísimin'], STANDALONEMONTHS: ['ngwɛn matáhra', 'ngwɛn ńmba', 'ngwɛn ńlal', - 'ngwɛn ńna', 'ngwɛn ńtan', 'ngwɛn ńtuó', 'ngwɛn hɛmbuɛrí', - 'ngwɛn lɔmbi', 'ngwɛn rɛbvuâ', 'ngwɛn wum', 'ngwɛn wum navŭr', - 'krísimin'], + 'ngwɛn ńna', 'ngwɛn ńtan', 'ngwɛn ńtuó', 'ngwɛn hɛmbuɛrí', + 'ngwɛn lɔmbi', 'ngwɛn rɛbvuâ', 'ngwɛn wum', 'ngwɛn wum navŭr', + 'krísimin'], SHORTMONTHS: ['ng1', 'ng2', 'ng3', 'ng4', 'ng5', 'ng6', 'ng7', 'ng8', 'ng9', - 'ng10', 'ng11', 'kris'], + 'ng10', 'ng11', 'kris'], STANDALONESHORTMONTHS: ['ng1', 'ng2', 'ng3', 'ng4', 'ng5', 'ng6', 'ng7', - 'ng8', 'ng9', 'ng10', 'ng11', 'kris'], + 'ng8', 'ng9', 'ng10', 'ng11', 'kris'], WEEKDAYS: ['sɔ́ndɔ', 'mɔ́ndɔ', 'sɔ́ndɔ mafú mába', - 'sɔ́ndɔ mafú málal', 'sɔ́ndɔ mafú mána', 'mabágá má sukul', - 'sásadi'], + 'sɔ́ndɔ mafú málal', 'sɔ́ndɔ mafú mána', 'mabágá má sukul', + 'sásadi'], STANDALONEWEEKDAYS: ['sɔ́ndɔ', 'mɔ́ndɔ', 'sɔ́ndɔ mafú mába', - 'sɔ́ndɔ mafú málal', 'sɔ́ndɔ mafú mána', 'mabágá má sukul', - 'sásadi'], + 'sɔ́ndɔ mafú málal', 'sɔ́ndɔ mafú mána', 'mabágá má sukul', + 'sásadi'], SHORTWEEKDAYS: ['sɔ́n', 'mɔ́n', 'smb', 'sml', 'smn', 'mbs', 'sas'], STANDALONESHORTWEEKDAYS: ['sɔ́n', 'mɔ́n', 'smb', 'sml', 'smn', 'mbs', - 'sas'], + 'sas'], NARROWWEEKDAYS: ['s', 'm', 's', 's', 's', 'm', 's'], STANDALONENARROWWEEKDAYS: ['s', 'm', 's', 's', 's', 'm', 's'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['Tindɛ nvúr', 'Tindɛ ńmba', 'Tindɛ ńlal', 'Tindɛ ńna'], AMPMS: ['maná', 'kugú'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/yyyy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -10076,19 +13734,19 @@ goog.i18n.DateTimeSymbols_nn = { ERANAMES: ['f.Kr.', 'e.Kr.'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['januar', 'februar', 'mars', 'april', 'mai', 'juni', 'juli', - 'august', 'september', 'oktober', 'november', 'desember'], + 'august', 'september', 'oktober', 'november', 'desember'], STANDALONEMONTHS: ['januar', 'februar', 'mars', 'april', 'mai', 'juni', - 'juli', 'august', 'september', 'oktober', 'november', 'desember'], + 'juli', 'august', 'september', 'oktober', 'november', 'desember'], SHORTMONTHS: ['jan.', 'feb.', 'mars', 'apr.', 'mai', 'juni', 'juli', 'aug.', - 'sep.', 'okt.', 'nov.', 'des.'], + 'sep.', 'okt.', 'nov.', 'des.'], STANDALONESHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'mai', 'jun', 'jul', - 'aug', 'sep', 'okt', 'nov', 'des'], + 'aug', 'sep', 'okt', 'nov', 'des'], WEEKDAYS: ['søndag', 'måndag', 'tysdag', 'onsdag', 'torsdag', 'fredag', - 'laurdag'], + 'laurdag'], STANDALONEWEEKDAYS: ['søndag', 'måndag', 'tysdag', 'onsdag', 'torsdag', - 'fredag', 'laurdag'], + 'fredag', 'laurdag'], SHORTWEEKDAYS: ['sø.', 'må.', 'ty.', 'on.', 'to.', 'fr.', 'la.'], STANDALONESHORTWEEKDAYS: ['søn', 'mån', 'tys', 'ons', 'tor', 'fre', 'lau'], NARROWWEEKDAYS: ['S', 'M', 'T', 'O', 'T', 'F', 'L'], @@ -10098,6 +13756,7 @@ goog.i18n.DateTimeSymbols_nn = { AMPMS: ['formiddag', 'ettermiddag'], DATEFORMATS: ['EEEE d. MMMM y', 'd. MMMM y', 'd. MMM y', 'dd.MM.yy'], TIMEFORMATS: ['\'kl\'. HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -10110,6 +13769,68 @@ goog.i18n.DateTimeSymbols_nn = { goog.i18n.DateTimeSymbols_nn_NO = goog.i18n.DateTimeSymbols_nn; +/** + * Date/time formatting symbols for locale nnh. + */ +goog.i18n.DateTimeSymbols_nnh = { + ERAS: ['m.z.Y.', 'm.g.n.Y.'], + ERANAMES: ['mé zyé Yěsô', 'mé gÿo ńzyé Yěsô'], + NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], + STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', + '11', '12'], + MONTHS: ['saŋ tsetsɛ̀ɛ lùm', 'saŋ kàg ngwóŋ', 'saŋ lepyè shúm', + 'saŋ cÿó', 'saŋ tsɛ̀ɛ cÿó', 'saŋ njÿoláʼ', + 'saŋ tyɛ̀b tyɛ̀b mbʉ̀', 'saŋ mbʉ̀ŋ', 'saŋ ngwɔ̀ʼ mbÿɛ', + 'saŋ tàŋa tsetsáʼ', 'saŋ mejwoŋó', 'saŋ lùm'], + STANDALONEMONTHS: ['saŋ tsetsɛ̀ɛ lùm', 'saŋ kàg ngwóŋ', + 'saŋ lepyè shúm', 'saŋ cÿó', 'saŋ tsɛ̀ɛ cÿó', 'saŋ njÿoláʼ', + 'saŋ tyɛ̀b tyɛ̀b mbʉ̀', 'saŋ mbʉ̀ŋ', 'saŋ ngwɔ̀ʼ mbÿɛ', + 'saŋ tàŋa tsetsáʼ', 'saŋ mejwoŋó', 'saŋ lùm'], + SHORTMONTHS: ['saŋ tsetsɛ̀ɛ lùm', 'saŋ kàg ngwóŋ', + 'saŋ lepyè shúm', 'saŋ cÿó', 'saŋ tsɛ̀ɛ cÿó', 'saŋ njÿoláʼ', + 'saŋ tyɛ̀b tyɛ̀b mbʉ̀', 'saŋ mbʉ̀ŋ', 'saŋ ngwɔ̀ʼ mbÿɛ', + 'saŋ tàŋa tsetsáʼ', 'saŋ mejwoŋó', 'saŋ lùm'], + STANDALONESHORTMONTHS: ['saŋ tsetsɛ̀ɛ lùm', 'saŋ kàg ngwóŋ', + 'saŋ lepyè shúm', 'saŋ cÿó', 'saŋ tsɛ̀ɛ cÿó', 'saŋ njÿoláʼ', + 'saŋ tyɛ̀b tyɛ̀b mbʉ̀', 'saŋ mbʉ̀ŋ', 'saŋ ngwɔ̀ʼ mbÿɛ', + 'saŋ tàŋa tsetsáʼ', 'saŋ mejwoŋó', 'saŋ lùm'], + WEEKDAYS: ['lyɛʼɛ́ sẅíŋtè', 'mvfò lyɛ̌ʼ', + 'mbɔ́ɔntè mvfò lyɛ̌ʼ', 'tsètsɛ̀ɛ lyɛ̌ʼ', + 'mbɔ́ɔntè tsetsɛ̀ɛ lyɛ̌ʼ', 'mvfò màga lyɛ̌ʼ', + 'màga lyɛ̌ʼ'], + STANDALONEWEEKDAYS: ['lyɛʼɛ́ sẅíŋtè', 'mvfò lyɛ̌ʼ', + 'mbɔ́ɔntè mvfò lyɛ̌ʼ', 'tsètsɛ̀ɛ lyɛ̌ʼ', + 'mbɔ́ɔntè tsetsɛ̀ɛ lyɛ̌ʼ', 'mvfò màga lyɛ̌ʼ', + 'màga lyɛ̌ʼ'], + SHORTWEEKDAYS: ['lyɛʼɛ́ sẅíŋtè', 'mvfò lyɛ̌ʼ', + 'mbɔ́ɔntè mvfò lyɛ̌ʼ', 'tsètsɛ̀ɛ lyɛ̌ʼ', + 'mbɔ́ɔntè tsetsɛ̀ɛ lyɛ̌ʼ', 'mvfò màga lyɛ̌ʼ', + 'màga lyɛ̌ʼ'], + STANDALONESHORTWEEKDAYS: ['lyɛʼɛ́ sẅíŋtè', 'mvfò lyɛ̌ʼ', + 'mbɔ́ɔntè mvfò lyɛ̌ʼ', 'tsètsɛ̀ɛ lyɛ̌ʼ', + 'mbɔ́ɔntè tsetsɛ̀ɛ lyɛ̌ʼ', 'mvfò màga lyɛ̌ʼ', + 'màga lyɛ̌ʼ'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + AMPMS: ['mbaʼámbaʼ', 'ncwònzém'], + DATEFORMATS: ['EEEE , \'lyɛ\'̌ʼ d \'na\' MMMM, y', + '\'lyɛ\'̌ʼ d \'na\' MMMM, y', 'd MMM, y', 'dd/MM/yy'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss a', 'HH:mm'], + DATETIMEFORMATS: ['{1},{0}', '{1}, {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale nnh_CM. + */ +goog.i18n.DateTimeSymbols_nnh_CM = goog.i18n.DateTimeSymbols_nnh; + + /** * Date/time formatting symbols for locale nr. */ @@ -10118,29 +13839,30 @@ goog.i18n.DateTimeSymbols_nr = { ERANAMES: ['BC', 'AD'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['Janabari', 'uFeberbari', 'uMatjhi', 'u-Apreli', 'Meyi', 'Juni', - 'Julayi', 'Arhostosi', 'Septemba', 'Oktoba', 'Usinyikhaba', 'Disemba'], + 'Julayi', 'Arhostosi', 'Septemba', 'Oktoba', 'Usinyikhaba', 'Disemba'], STANDALONEMONTHS: ['Janabari', 'uFeberbari', 'uMatjhi', 'u-Apreli', 'Meyi', - 'Juni', 'Julayi', 'Arhostosi', 'Septemba', 'Oktoba', 'Usinyikhaba', - 'Disemba'], + 'Juni', 'Julayi', 'Arhostosi', 'Septemba', 'Oktoba', 'Usinyikhaba', + 'Disemba'], SHORTMONTHS: ['Jan', 'Feb', 'Mat', 'Apr', 'Mey', 'Jun', 'Jul', 'Arh', 'Sep', - 'Okt', 'Usi', 'Dis'], + 'Okt', 'Usi', 'Dis'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mat', 'Apr', 'Mey', 'Jun', 'Jul', - 'Arh', 'Sep', 'Okt', 'Usi', 'Dis'], + 'Arh', 'Sep', 'Okt', 'Usi', 'Dis'], WEEKDAYS: ['uSonto', 'uMvulo', 'uLesibili', 'Lesithathu', 'uLesine', - 'ngoLesihlanu', 'umGqibelo'], + 'ngoLesihlanu', 'umGqibelo'], STANDALONEWEEKDAYS: ['uSonto', 'uMvulo', 'uLesibili', 'Lesithathu', 'uLesine', - 'ngoLesihlanu', 'umGqibelo'], + 'ngoLesihlanu', 'umGqibelo'], SHORTWEEKDAYS: ['Son', 'Mvu', 'Bil', 'Tha', 'Ne', 'Hla', 'Gqi'], STANDALONESHORTWEEKDAYS: ['Son', 'Mvu', 'Bil', 'Tha', 'Ne', 'Hla', 'Gqi'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, y MMMM dd', 'y MMMM d', 'y MMM d', 'yyyy-MM-dd'], + DATEFORMATS: ['y MMMM d, EEEE', 'y MMMM d', 'y MMM d', 'y-MM-dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -10161,29 +13883,30 @@ goog.i18n.DateTimeSymbols_nso = { ERANAMES: ['BCE', 'CE'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['Janaware', 'Feberware', 'Matšhe', 'Aporele', 'Mei', 'June', - 'Julae', 'Agostose', 'Setemere', 'Oktobore', 'Nofemere', 'Disemere'], + 'Julae', 'Agostose', 'Setemere', 'Oktobore', 'Nofemere', 'Disemere'], STANDALONEMONTHS: ['Janaware', 'Feberware', 'Matšhe', 'Aporele', 'Mei', - 'June', 'Julae', 'Agostose', 'Setemere', 'Oktobore', 'Nofemere', - 'Disemere'], + 'June', 'Julae', 'Agostose', 'Setemere', 'Oktobore', 'Nofemere', + 'Disemere'], SHORTMONTHS: ['Jan', 'Feb', 'Mat', 'Apo', 'Mei', 'Jun', 'Jul', 'Ago', 'Set', - 'Okt', 'Nof', 'Dis'], + 'Okt', 'Nof', 'Dis'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mat', 'Apo', 'Mei', 'Jun', 'Jul', - 'Ago', 'Set', 'Okt', 'Nof', 'Dis'], + 'Ago', 'Set', 'Okt', 'Nof', 'Dis'], WEEKDAYS: ['Sontaga', 'Mosupalogo', 'Labobedi', 'Laboraro', 'Labone', - 'Labohlano', 'Mokibelo'], + 'Labohlano', 'Mokibelo'], STANDALONEWEEKDAYS: ['Sontaga', 'Mosupalogo', 'Labobedi', 'Laboraro', - 'Labone', 'Labohlano', 'Mokibelo'], + 'Labone', 'Labohlano', 'Mokibelo'], SHORTWEEKDAYS: ['Son', 'Mos', 'Bed', 'Rar', 'Ne', 'Hla', 'Mok'], STANDALONESHORTWEEKDAYS: ['Son', 'Mos', 'Bed', 'Rar', 'Ne', 'Hla', 'Mok'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, y MMMM dd', 'y MMMM d', 'y MMM d', 'yyyy-MM-dd'], + DATEFORMATS: ['y MMMM d, EEEE', 'y MMMM d', 'y MMM d', 'y-MM-dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -10204,33 +13927,34 @@ goog.i18n.DateTimeSymbols_nus = { ERANAMES: ['A ka̱n Yecu ni dap', 'Ɛ ca Yecu dap'], NARROWMONTHS: ['T', 'P', 'D', 'G', 'D', 'K', 'P', 'T', 'T', 'L', 'K', 'T'], STANDALONENARROWMONTHS: ['T', 'P', 'D', 'G', 'D', 'K', 'P', 'T', 'T', 'L', - 'K', 'T'], + 'K', 'T'], MONTHS: ['Tiop thar pɛt', 'Pɛt', 'Duɔ̱ɔ̱ŋ', 'Guak', 'Duät', - 'Kornyoot', 'Pay yie̱tni', 'Tho̱o̱r', 'Tɛɛr', 'Laath', 'Kur', - 'Tio̱p in di̱i̱t'], + 'Kornyoot', 'Pay yie̱tni', 'Tho̱o̱r', 'Tɛɛr', 'Laath', 'Kur', + 'Tio̱p in di̱i̱t'], STANDALONEMONTHS: ['Tiop thar pɛt', 'Pɛt', 'Duɔ̱ɔ̱ŋ', 'Guak', 'Duät', - 'Kornyoot', 'Pay yie̱tni', 'Tho̱o̱r', 'Tɛɛr', 'Laath', 'Kur', - 'Tio̱p in di̱i̱t'], + 'Kornyoot', 'Pay yie̱tni', 'Tho̱o̱r', 'Tɛɛr', 'Laath', 'Kur', + 'Tio̱p in di̱i̱t'], SHORTMONTHS: ['Tiop', 'Pɛt', 'Duɔ̱ɔ̱', 'Guak', 'Duä', 'Kor', 'Pay', - 'Thoo', 'Tɛɛ', 'Laa', 'Kur', 'Tid'], + 'Thoo', 'Tɛɛ', 'Laa', 'Kur', 'Tid'], STANDALONESHORTMONTHS: ['Tiop', 'Pɛt', 'Duɔ̱ɔ̱', 'Guak', 'Duä', 'Kor', - 'Pay', 'Thoo', 'Tɛɛ', 'Laa', 'Kur', 'Tid'], + 'Pay', 'Thoo', 'Tɛɛ', 'Laa', 'Kur', 'Tid'], WEEKDAYS: ['Cäŋ kuɔth', 'Jiec la̱t', 'Rɛw lätni', 'Diɔ̱k lätni', - 'Ŋuaan lätni', 'Dhieec lätni', 'Bäkɛl lätni'], + 'Ŋuaan lätni', 'Dhieec lätni', 'Bäkɛl lätni'], STANDALONEWEEKDAYS: ['Cäŋ kuɔth', 'Jiec la̱t', 'Rɛw lätni', - 'Diɔ̱k lätni', 'Ŋuaan lätni', 'Dhieec lätni', 'Bäkɛl lätni'], + 'Diɔ̱k lätni', 'Ŋuaan lätni', 'Dhieec lätni', 'Bäkɛl lätni'], SHORTWEEKDAYS: ['Cäŋ', 'Jiec', 'Rɛw', 'Diɔ̱k', 'Ŋuaan', 'Dhieec', - 'Bäkɛl'], + 'Bäkɛl'], STANDALONESHORTWEEKDAYS: ['Cäŋ', 'Jiec', 'Rɛw', 'Diɔ̱k', 'Ŋuaan', - 'Dhieec', 'Bäkɛl'], + 'Dhieec', 'Bäkɛl'], NARROWWEEKDAYS: ['C', 'J', 'R', 'D', 'Ŋ', 'D', 'B'], STANDALONENARROWWEEKDAYS: ['C', 'J', 'R', 'D', 'Ŋ', 'D', 'B'], SHORTQUARTERS: ['P1', 'P2', 'P3', 'P4'], QUARTERS: ['Päth diɔk tin nhiam', 'Päth diɔk tin guurɛ', - 'Päth diɔk tin wä kɔɔriɛn', 'Päth diɔk tin jiɔakdiɛn'], + 'Päth diɔk tin wä kɔɔriɛn', 'Päth diɔk tin jiɔakdiɛn'], AMPMS: ['RW', 'TŊ'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/MM/yyyy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/MM/y'], TIMEFORMATS: ['zzzz h:mm:ss a', 'z h:mm:ss a', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -10251,21 +13975,21 @@ goog.i18n.DateTimeSymbols_nyn = { ERANAMES: ['Kurisito Atakaijire', 'Kurisito Yaijire'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Okwokubanza', 'Okwakabiri', 'Okwakashatu', 'Okwakana', - 'Okwakataana', 'Okwamukaaga', 'Okwamushanju', 'Okwamunaana', 'Okwamwenda', - 'Okwaikumi', 'Okwaikumi na kumwe', 'Okwaikumi na ibiri'], + 'Okwakataana', 'Okwamukaaga', 'Okwamushanju', 'Okwamunaana', 'Okwamwenda', + 'Okwaikumi', 'Okwaikumi na kumwe', 'Okwaikumi na ibiri'], STANDALONEMONTHS: ['Okwokubanza', 'Okwakabiri', 'Okwakashatu', 'Okwakana', - 'Okwakataana', 'Okwamukaaga', 'Okwamushanju', 'Okwamunaana', 'Okwamwenda', - 'Okwaikumi', 'Okwaikumi na kumwe', 'Okwaikumi na ibiri'], + 'Okwakataana', 'Okwamukaaga', 'Okwamushanju', 'Okwamunaana', 'Okwamwenda', + 'Okwaikumi', 'Okwaikumi na kumwe', 'Okwaikumi na ibiri'], SHORTMONTHS: ['KBZ', 'KBR', 'KST', 'KKN', 'KTN', 'KMK', 'KMS', 'KMN', 'KMW', - 'KKM', 'KNK', 'KNB'], + 'KKM', 'KNK', 'KNB'], STANDALONESHORTMONTHS: ['KBZ', 'KBR', 'KST', 'KKN', 'KTN', 'KMK', 'KMS', - 'KMN', 'KMW', 'KKM', 'KNK', 'KNB'], + 'KMN', 'KMW', 'KKM', 'KNK', 'KNB'], WEEKDAYS: ['Sande', 'Orwokubanza', 'Orwakabiri', 'Orwakashatu', 'Orwakana', - 'Orwakataano', 'Orwamukaaga'], + 'Orwakataano', 'Orwamukaaga'], STANDALONEWEEKDAYS: ['Sande', 'Orwokubanza', 'Orwakabiri', 'Orwakashatu', - 'Orwakana', 'Orwakataano', 'Orwamukaaga'], + 'Orwakana', 'Orwakataano', 'Orwamukaaga'], SHORTWEEKDAYS: ['SAN', 'ORK', 'OKB', 'OKS', 'OKN', 'OKT', 'OMK'], STANDALONESHORTWEEKDAYS: ['SAN', 'ORK', 'OKB', 'OKS', 'OKN', 'OKT', 'OMK'], NARROWWEEKDAYS: ['S', 'K', 'R', 'S', 'N', 'T', 'M'], @@ -10273,8 +13997,9 @@ goog.i18n.DateTimeSymbols_nyn = { SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], QUARTERS: ['KWOTA 1', 'KWOTA 2', 'KWOTA 3', 'KWOTA 4'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -10295,21 +14020,21 @@ goog.i18n.DateTimeSymbols_om = { ERANAMES: ['KD', 'KB'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Amajjii', 'Guraandhala', 'Bitooteessa', 'Elba', 'Caamsa', - 'Waxabajjii', 'Adooleessa', 'Hagayya', 'Fuulbana', 'Onkololeessa', - 'Sadaasa', 'Muddee'], + 'Waxabajjii', 'Adooleessa', 'Hagayya', 'Fuulbana', 'Onkololeessa', + 'Sadaasa', 'Muddee'], STANDALONEMONTHS: ['Amajjii', 'Guraandhala', 'Bitooteessa', 'Elba', 'Caamsa', - 'Waxabajjii', 'Adooleessa', 'Hagayya', 'Fuulbana', 'Onkololeessa', - 'Sadaasa', 'Muddee'], + 'Waxabajjii', 'Adooleessa', 'Hagayya', 'Fuulbana', 'Onkololeessa', + 'Sadaasa', 'Muddee'], SHORTMONTHS: ['Ama', 'Gur', 'Bit', 'Elb', 'Cam', 'Wax', 'Ado', 'Hag', 'Ful', - 'Onk', 'Sad', 'Mud'], + 'Onk', 'Sad', 'Mud'], STANDALONESHORTMONTHS: ['Ama', 'Gur', 'Bit', 'Elb', 'Cam', 'Wax', 'Ado', - 'Hag', 'Ful', 'Onk', 'Sad', 'Mud'], + 'Hag', 'Ful', 'Onk', 'Sad', 'Mud'], WEEKDAYS: ['Dilbata', 'Wiixata', 'Qibxata', 'Roobii', 'Kamiisa', 'Jimaata', - 'Sanbata'], + 'Sanbata'], STANDALONEWEEKDAYS: ['Dilbata', 'Wiixata', 'Qibxata', 'Roobii', 'Kamiisa', - 'Jimaata', 'Sanbata'], + 'Jimaata', 'Sanbata'], SHORTWEEKDAYS: ['Dil', 'Wix', 'Qib', 'Rob', 'Kam', 'Jim', 'San'], STANDALONESHORTWEEKDAYS: ['Dil', 'Wix', 'Qib', 'Rob', 'Kam', 'Jim', 'San'], NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], @@ -10319,6 +14044,7 @@ goog.i18n.DateTimeSymbols_om = { AMPMS: ['WD', 'WB'], DATEFORMATS: ['EEEE, MMMM d, y', 'dd MMMM y', 'dd-MMM-y', 'dd/MM/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -10344,54 +14070,115 @@ goog.i18n.DateTimeSymbols_or_IN = { ERAS: ['BCE', 'CE'], ERANAMES: ['BCE', 'CE'], NARROWMONTHS: ['ଜା', 'ଫେ', 'ମା', 'ଅ', 'ମେ', 'ଜୁ', - 'ଜୁ', 'ଅ', 'ସେ', 'ଅ', 'ନ', 'ଡି'], + 'ଜୁ', 'ଅ', 'ସେ', 'ଅ', 'ନ', 'ଡି'], STANDALONENARROWMONTHS: ['ଜା', 'ଫେ', 'ମା', 'ଅ', 'ମେ', - 'ଜୁ', 'ଜୁ', 'ଅ', 'ସେ', 'ଅ', 'ନ', 'ଡି'], + 'ଜୁ', 'ଜୁ', 'ଅ', 'ସେ', 'ଅ', 'ନ', 'ଡି'], MONTHS: ['ଜାନୁଆରୀ', 'ଫେବ୍ରୁୟାରୀ', - 'ମାର୍ଚ୍ଚ', 'ଅପ୍ରେଲ', 'ମେ', 'ଜୁନ', - 'ଜୁଲାଇ', 'ଅଗଷ୍ଟ', 'ସେପ୍ଟେମ୍ବର', - 'ଅକ୍ଟୋବର', 'ନଭେମ୍ବର', - 'ଡିସେମ୍ବର'], + 'ମାର୍ଚ୍ଚ', 'ଅପ୍ରେଲ', 'ମେ', 'ଜୁନ', + 'ଜୁଲାଇ', 'ଅଗଷ୍ଟ', 'ସେପ୍ଟେମ୍ବର', + 'ଅକ୍ଟୋବର', 'ନଭେମ୍ବର', + 'ଡିସେମ୍ବର'], STANDALONEMONTHS: ['ଜାନୁଆରୀ', 'ଫେବ୍ରୁୟାରୀ', - 'ମାର୍ଚ୍ଚ', 'ଅପ୍ରେଲ', 'ମେ', 'ଜୁନ', - 'ଜୁଲାଇ', 'ଅଗଷ୍ଟ', 'ସେପ୍ଟେମ୍ବର', - 'ଅକ୍ଟୋବର', 'ନଭେମ୍ବର', - 'ଡିସେମ୍ବର'], + 'ମାର୍ଚ୍ଚ', 'ଅପ୍ରେଲ', 'ମେ', 'ଜୁନ', + 'ଜୁଲାଇ', 'ଅଗଷ୍ଟ', 'ସେପ୍ଟେମ୍ବର', + 'ଅକ୍ଟୋବର', 'ନଭେମ୍ବର', + 'ଡିସେମ୍ବର'], SHORTMONTHS: ['ଜାନୁଆରୀ', 'ଫେବ୍ରୁୟାରୀ', - 'ମାର୍ଚ୍ଚ', 'ଅପ୍ରେଲ', 'ମେ', 'ଜୁନ', - 'ଜୁଲାଇ', 'ଅଗଷ୍ଟ', 'ସେପ୍ଟେମ୍ବର', - 'ଅକ୍ଟୋବର', 'ନଭେମ୍ବର', - 'ଡିସେମ୍ବର'], + 'ମାର୍ଚ୍ଚ', 'ଅପ୍ରେଲ', 'ମେ', 'ଜୁନ', + 'ଜୁଲାଇ', 'ଅଗଷ୍ଟ', 'ସେପ୍ଟେମ୍ବର', + 'ଅକ୍ଟୋବର', 'ନଭେମ୍ବର', + 'ଡିସେମ୍ବର'], STANDALONESHORTMONTHS: ['ଜାନୁଆରୀ', - 'ଫେବ୍ରୁୟାରୀ', 'ମାର୍ଚ୍ଚ', - 'ଅପ୍ରେଲ', 'ମେ', 'ଜୁନ', 'ଜୁଲାଇ', - 'ଅଗଷ୍ଟ', 'ସେପ୍ଟେମ୍ବର', - 'ଅକ୍ଟୋବର', 'ନଭେମ୍ବର', - 'ଡିସେମ୍ବର'], + 'ଫେବ୍ରୁୟାରୀ', 'ମାର୍ଚ୍ଚ', + 'ଅପ୍ରେଲ', 'ମେ', 'ଜୁନ', 'ଜୁଲାଇ', + 'ଅଗଷ୍ଟ', 'ସେପ୍ଟେମ୍ବର', + 'ଅକ୍ଟୋବର', 'ନଭେମ୍ବର', + 'ଡିସେମ୍ବର'], WEEKDAYS: ['ରବିବାର', 'ସୋମବାର', - 'ମଙ୍ଗଳବାର', 'ବୁଧବାର', 'ଗୁରୁବାର', - 'ଶୁକ୍ରବାର', 'ଶନିବାର'], + 'ମଙ୍ଗଳବାର', 'ବୁଧବାର', 'ଗୁରୁବାର', + 'ଶୁକ୍ରବାର', 'ଶନିବାର'], STANDALONEWEEKDAYS: ['ରବିବାର', 'ସୋମବାର', - 'ମଙ୍ଗଳବାର', 'ବୁଧବାର', 'ଗୁରୁବାର', - 'ଶୁକ୍ରବାର', 'ଶନିବାର'], + 'ମଙ୍ଗଳବାର', 'ବୁଧବାର', 'ଗୁରୁବାର', + 'ଶୁକ୍ରବାର', 'ଶନିବାର'], SHORTWEEKDAYS: ['ରବି', 'ସୋମ', 'ମଙ୍ଗଳ', 'ବୁଧ', - 'ଗୁରୁ', 'ଶୁକ୍ର', 'ଶନି'], + 'ଗୁରୁ', 'ଶୁକ୍ର', 'ଶନି'], STANDALONESHORTWEEKDAYS: ['ରବି', 'ସୋମ', 'ମଙ୍ଗଳ', - 'ବୁଧ', 'ଗୁରୁ', 'ଶୁକ୍ର', 'ଶନି'], + 'ବୁଧ', 'ଗୁରୁ', 'ଶୁକ୍ର', 'ଶନି'], NARROWWEEKDAYS: ['ର', 'ସୋ', 'ମ', 'ବୁ', 'ଗୁ', 'ଶୁ', 'ଶ'], STANDALONENARROWWEEKDAYS: ['ର', 'ସୋ', 'ମ', 'ବୁ', 'ଗୁ', - 'ଶୁ', 'ଶ'], + 'ଶୁ', 'ଶ'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['am', 'pm'], DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'd-M-yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [6, 6], FIRSTWEEKCUTOFFDAY: 5 }; +/** + * Date/time formatting symbols for locale os. + */ +goog.i18n.DateTimeSymbols_os = { + ERAS: ['н.д.а.', 'н.д.'], + ERANAMES: ['н.д.а.', 'н.д.'], + NARROWMONTHS: ['Я', 'Ф', 'М', 'А', 'М', 'И', 'И', 'А', 'С', 'О', + 'Н', 'Д'], + STANDALONENARROWMONTHS: ['Я', 'Ф', 'М', 'А', 'М', 'И', 'И', 'А', 'С', + 'О', 'Н', 'Д'], + MONTHS: ['январы', 'февралы', 'мартъийы', 'апрелы', + 'майы', 'июны', 'июлы', 'августы', 'сентябры', + 'октябры', 'ноябры', 'декабры'], + STANDALONEMONTHS: ['Январь', 'Февраль', 'Мартъи', + 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', + 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'], + SHORTMONTHS: ['янв.', 'фев.', 'мар.', 'апр.', 'мая', + 'июны', 'июлы', 'авг.', 'сен.', 'окт.', 'ноя.', + 'дек.'], + STANDALONESHORTMONTHS: ['Янв.', 'Февр.', 'Март', 'Апр.', + 'Май', 'Июнь', 'Июль', 'Авг.', 'Сент.', 'Окт.', + 'Нояб.', 'Дек.'], + WEEKDAYS: ['хуыцаубон', 'къуырисӕр', 'дыццӕг', + 'ӕртыццӕг', 'цыппӕрӕм', 'майрӕмбон', 'сабат'], + STANDALONEWEEKDAYS: ['Хуыцаубон', 'Къуырисӕр', + 'Дыццӕг', 'Ӕртыццӕг', 'Цыппӕрӕм', + 'Майрӕмбон', 'Сабат'], + SHORTWEEKDAYS: ['хцб', 'крс', 'дцг', 'ӕрт', 'цпр', 'мрб', + 'сбт'], + STANDALONESHORTWEEKDAYS: ['Хцб', 'Крс', 'Дцг', 'Ӕрт', 'Цпр', + 'Мрб', 'Сбт'], + NARROWWEEKDAYS: ['Х', 'К', 'Д', 'Ӕ', 'Ц', 'М', 'С'], + STANDALONENARROWWEEKDAYS: ['Х', 'К', 'Д', 'Ӕ', 'Ц', 'М', 'С'], + SHORTQUARTERS: ['1-аг кв.', '2-аг кв.', '3-аг кв.', + '4-ӕм кв.'], + QUARTERS: ['1-аг квартал', '2-аг квартал', + '3-аг квартал', '4-ӕм квартал'], + AMPMS: ['ӕмбисбоны размӕ', 'ӕмбисбоны фӕстӕ'], + DATEFORMATS: ['EEEE, d MMMM, y \'аз\'', 'd MMMM, y \'аз\'', + 'dd MMM y \'аз\'', 'dd.MM.yy'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1}, {0}', '{1}, {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale os_GE. + */ +goog.i18n.DateTimeSymbols_os_GE = goog.i18n.DateTimeSymbols_os; + + +/** + * Date/time formatting symbols for locale os_RU. + */ +goog.i18n.DateTimeSymbols_os_RU = goog.i18n.DateTimeSymbols_os; + + /** * Date/time formatting symbols for locale pa. */ @@ -10399,46 +14186,47 @@ goog.i18n.DateTimeSymbols_pa = { ERAS: ['ਈ. ਪੂ.', 'ਸਾਲ'], ERANAMES: ['ਈ. ਪੂ.', 'ਸਾਲ'], NARROWMONTHS: ['ਜ', 'ਫ', 'ਮਾ', 'ਅ', 'ਮ', 'ਜੂ', 'ਜੁ', - 'ਅ', 'ਸ', 'ਅ', 'ਨ', 'ਦ'], + 'ਅ', 'ਸ', 'ਅ', 'ਨ', 'ਦ'], STANDALONENARROWMONTHS: ['ਜ', 'ਫ', 'ਮਾ', 'ਅ', 'ਮ', 'ਜੂ', - 'ਜੁ', 'ਅ', 'ਸ', 'ਅ', 'ਨ', 'ਦ'], + 'ਜੁ', 'ਅ', 'ਸ', 'ਅ', 'ਨ', 'ਦ'], MONTHS: ['ਜਨਵਰੀ', 'ਫ਼ਰਵਰੀ', 'ਮਾਰਚ', - 'ਅਪ੍ਰੈਲ', 'ਮਈ', 'ਜੂਨ', 'ਜੁਲਾਈ', - 'ਅਗਸਤ', 'ਸਤੰਬਰ', 'ਅਕਤੂਬਰ', - 'ਨਵੰਬਰ', 'ਦਸੰਬਰ'], + 'ਅਪ੍ਰੈਲ', 'ਮਈ', 'ਜੂਨ', 'ਜੁਲਾਈ', + 'ਅਗਸਤ', 'ਸਤੰਬਰ', 'ਅਕਤੂਬਰ', 'ਨਵੰਬਰ', + 'ਦਸੰਬਰ'], STANDALONEMONTHS: ['ਜਨਵਰੀ', 'ਫ਼ਰਵਰੀ', 'ਮਾਰਚ', - 'ਅਪ੍ਰੈਲ', 'ਮਈ', 'ਜੂਨ', 'ਜੁਲਾਈ', - 'ਅਗਸਤ', 'ਸਤੰਬਰ', 'ਅਕਤੂਬਰ', - 'ਨਵੰਬਰ', 'ਦਸੰਬਰ'], + 'ਅਪ੍ਰੈਲ', 'ਮਈ', 'ਜੂਨ', 'ਜੁਲਾਈ', + 'ਅਗਸਤ', 'ਸਤੰਬਰ', 'ਅਕਤੂਬਰ', 'ਨਵੰਬਰ', + 'ਦਸੰਬਰ'], SHORTMONTHS: ['ਜਨਵਰੀ', 'ਫ਼ਰਵਰੀ', 'ਮਾਰਚ', - 'ਅਪ੍ਰੈਲ', 'ਮਈ', 'ਜੂਨ', 'ਜੁਲਾਈ', - 'ਅਗਸਤ', 'ਸਤੰਬਰ', 'ਅਕਤੂਬਰ', - 'ਨਵੰਬਰ', 'ਦਸੰਬਰ'], + 'ਅਪ੍ਰੈਲ', 'ਮਈ', 'ਜੂਨ', 'ਜੁਲਾਈ', + 'ਅਗਸਤ', 'ਸਤੰਬਰ', 'ਅਕਤੂਬਰ', 'ਨਵੰਬਰ', + 'ਦਸੰਬਰ'], STANDALONESHORTMONTHS: ['ਜਨਵਰੀ', 'ਫ਼ਰਵਰੀ', - 'ਮਾਰਚ', 'ਅਪ੍ਰੈਲ', 'ਮਈ', 'ਜੂਨ', - 'ਜੁਲਾਈ', 'ਅਗਸਤ', 'ਸਤੰਬਰ', - 'ਅਕਤੂਬਰ', 'ਨਵੰਬਰ', 'ਦਸੰਬਰ'], + 'ਮਾਰਚ', 'ਅਪ੍ਰੈਲ', 'ਮਈ', 'ਜੂਨ', + 'ਜੁਲਾਈ', 'ਅਗਸਤ', 'ਸਤੰਬਰ', 'ਅਕਤੂਬਰ', + 'ਨਵੰਬਰ', 'ਦਸੰਬਰ'], WEEKDAYS: ['ਐਤਵਾਰ', 'ਸੋਮਵਾਰ', 'ਮੰਗਲਵਾਰ', - 'ਬੁਧਵਾਰ', 'ਵੀਰਵਾਰ', 'ਸ਼ੁੱਕਰਵਾਰ', - 'ਸ਼ਨੀਚਰਵਾਰ'], + 'ਬੁਧਵਾਰ', 'ਵੀਰਵਾਰ', 'ਸ਼ੁੱਕਰਵਾਰ', + 'ਸ਼ਨੀਚਰਵਾਰ'], STANDALONEWEEKDAYS: ['ਐਤਵਾਰ', 'ਸੋਮਵਾਰ', - 'ਮੰਗਲਵਾਰ', 'ਬੁਧਵਾਰ', 'ਵੀਰਵਾਰ', - 'ਸ਼ੁੱਕਰਵਾਰ', 'ਸ਼ਨੀਚਰਵਾਰ'], + 'ਮੰਗਲਵਾਰ', 'ਬੁਧਵਾਰ', 'ਵੀਰਵਾਰ', + 'ਸ਼ੁੱਕਰਵਾਰ', 'ਸ਼ਨੀਚਰਵਾਰ'], SHORTWEEKDAYS: ['ਐਤ.', 'ਸੋਮ.', 'ਮੰਗਲ.', 'ਬੁਧ.', - 'ਵੀਰ.', 'ਸ਼ੁਕਰ.', 'ਸ਼ਨੀ.'], + 'ਵੀਰ.', 'ਸ਼ੁਕਰ.', 'ਸ਼ਨੀ.'], STANDALONESHORTWEEKDAYS: ['ਐਤ.', 'ਸੋਮ.', 'ਮੰਗਲ.', - 'ਬੁਧ.', 'ਵੀਰ.', 'ਸ਼ੁਕਰ.', 'ਸ਼ਨੀ.'], + 'ਬੁਧ.', 'ਵੀਰ.', 'ਸ਼ੁਕਰ.', 'ਸ਼ਨੀ.'], NARROWWEEKDAYS: ['ਐ', 'ਸੋ', 'ਮੰ', 'ਬੁੱ', 'ਵੀ', - 'ਸ਼ੁੱ', 'ਸ਼'], + 'ਸ਼ੁੱ', 'ਸ਼'], STANDALONENARROWWEEKDAYS: ['ਐ', 'ਸੋ', 'ਮੰ', 'ਬੁੱ', 'ਵੀ', - 'ਸ਼ੁੱ', 'ਸ਼'], + 'ਸ਼ੁੱ', 'ਸ਼'], SHORTQUARTERS: ['ਇਕ ਚੌਥਾਈ', 'ਅੱਧਾ', 'ਪੌਣਾ', - 'ਪੂਰਾ'], + 'ਪੂਰਾ'], QUARTERS: ['ਇਕ ਚੌਥਾਈ', 'ਅੱਧਾ', 'ਪੌਣਾ', - 'ਪੂਰਾ'], + 'ਪੂਰਾ'], AMPMS: ['ਪੂਰਵ ਦੁਪਹਿਰ', 'ਬਾਅਦ ਦੁਪਹਿਰ'], - DATEFORMATS: ['EEEE, dd MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, dd MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [6, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -10453,42 +14241,43 @@ goog.i18n.DateTimeSymbols_pa_Arab = { ERAS: ['ਈ. ਪੂ.', 'ਸਾਲ'], ERANAMES: ['ايساپورو', 'سں'], NARROWMONTHS: ['ਜ', 'ਫ', 'ਮਾ', 'ਅ', 'ਮ', 'ਜੂ', 'ਜੁ', - 'ਅ', 'ਸ', 'ਅ', 'ਨ', 'ਦ'], + 'ਅ', 'ਸ', 'ਅ', 'ਨ', 'ਦ'], STANDALONENARROWMONTHS: ['ਜ', 'ਫ', 'ਮਾ', 'ਅ', 'ਮ', 'ਜੂ', - 'ਜੁ', 'ਅ', 'ਸ', 'ਅ', 'ਨ', 'ਦ'], + 'ਜੁ', 'ਅ', 'ਸ', 'ਅ', 'ਨ', 'ਦ'], MONTHS: ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئ', - 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', - 'نومبر', 'دسمبر'], + 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', + 'نومبر', 'دسمبر'], STANDALONEMONTHS: ['ਜਨਵਰੀ', 'ਫ਼ਰਵਰੀ', 'ਮਾਰਚ', - 'ਅਪ੍ਰੈਲ', 'ਮਈ', 'ਜੂਨ', 'ਜੁਲਾਈ', - 'ਅਗਸਤ', 'ਸਤੰਬਰ', 'ਅਕਤੂਬਰ', - 'ਨਵੰਬਰ', 'ਦਸੰਬਰ'], - SHORTMONTHS: ['جنوری', 'فروری', 'مارچ', 'اپریل', 'ਮਈ', - 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', - 'نومبر', 'دسمبر'], + 'ਅਪ੍ਰੈਲ', 'ਮਈ', 'ਜੂਨ', 'ਜੁਲਾਈ', + 'ਅਗਸਤ', 'ਸਤੰਬਰ', 'ਅਕਤੂਬਰ', 'ਨਵੰਬਰ', + 'ਦਸੰਬਰ'], + SHORTMONTHS: ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئ', + 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', + 'نومبر', 'دسمبر'], STANDALONESHORTMONTHS: ['جنوری', 'فروری', 'مارچ', 'اپریل', - 'ਮਈ', 'جون', 'جولائی', 'اگست', 'ستمبر', - 'اکتوبر', 'نومبر', 'دسمبر'], + 'مئ', 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', + 'نومبر', 'دسمبر'], WEEKDAYS: ['اتوار', 'پیر', 'منگل', 'بُدھ', 'جمعرات', - 'جمعہ', 'ہفتہ'], + 'جمعہ', 'ہفتہ'], STANDALONEWEEKDAYS: ['ਐਤਵਾਰ', 'ਸੋਮਵਾਰ', - 'ਮੰਗਲਵਾਰ', 'ਬੁਧਵਾਰ', 'ਵੀਰਵਾਰ', - 'ਸ਼ੁੱਕਰਵਾਰ', 'ਸ਼ਨੀਚਰਵਾਰ'], + 'ਮੰਗਲਵਾਰ', 'ਬੁਧਵਾਰ', 'ਵੀਰਵਾਰ', + 'ਸ਼ੁੱਕਰਵਾਰ', 'ਸ਼ਨੀਚਰਵਾਰ'], SHORTWEEKDAYS: ['ਐਤ.', 'ਸੋਮ.', 'ਮੰਗਲ.', 'ਬੁਧ.', - 'ਵੀਰ.', 'ਸ਼ੁਕਰ.', 'ਸ਼ਨੀ.'], + 'ਵੀਰ.', 'ਸ਼ੁਕਰ.', 'ਸ਼ਨੀ.'], STANDALONESHORTWEEKDAYS: ['ਐਤ.', 'ਸੋਮ.', 'ਮੰਗਲ.', - 'ਬੁਧ.', 'ਵੀਰ.', 'ਸ਼ੁਕਰ.', 'ਸ਼ਨੀ.'], + 'ਬੁਧ.', 'ਵੀਰ.', 'ਸ਼ੁਕਰ.', 'ਸ਼ਨੀ.'], NARROWWEEKDAYS: ['ਐ', 'ਸੋ', 'ਮੰ', 'ਬੁੱ', 'ਵੀ', - 'ਸ਼ੁੱ', 'ਸ਼'], + 'ਸ਼ੁੱ', 'ਸ਼'], STANDALONENARROWWEEKDAYS: ['ਐ', 'ਸੋ', 'ਮੰ', 'ਬੁੱ', 'ਵੀ', - 'ਸ਼ੁੱ', 'ਸ਼'], + 'ਸ਼ੁੱ', 'ਸ਼'], SHORTQUARTERS: ['چوتھاي پہلاں', 'چوتھاي دوجا', - 'چوتھاي تيجا', 'چوتھاي چوتھا'], + 'چوتھاي تيجا', 'چوتھاي چوتھا'], QUARTERS: ['چوتھاي پہلاں', 'چوتھاي دوجا', - 'چوتھاي تيجا', 'چوتھاي چوتھا'], + 'چوتھاي تيجا', 'چوتھاي چوتھا'], AMPMS: ['ਪੂਰਵ ਦੁਪਹਿਰ', 'ਬਾਅਦ ਦੁਪਹਿਰ'], - DATEFORMATS: ['EEEE, dd MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, dd MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -10521,31 +14310,31 @@ goog.i18n.DateTimeSymbols_pl_PL = { ERANAMES: ['p.n.e.', 'n.e.'], NARROWMONTHS: ['s', 'l', 'm', 'k', 'm', 'c', 'l', 's', 'w', 'p', 'l', 'g'], STANDALONENARROWMONTHS: ['s', 'l', 'm', 'k', 'm', 'c', 'l', 's', 'w', 'p', - 'l', 'g'], + 'l', 'g'], MONTHS: ['stycznia', 'lutego', 'marca', 'kwietnia', 'maja', 'czerwca', - 'lipca', 'sierpnia', 'września', 'października', 'listopada', - 'grudnia'], + 'lipca', 'sierpnia', 'września', 'października', 'listopada', 'grudnia'], STANDALONEMONTHS: ['styczeń', 'luty', 'marzec', 'kwiecień', 'maj', - 'czerwiec', 'lipiec', 'sierpień', 'wrzesień', 'październik', - 'listopad', 'grudzień'], + 'czerwiec', 'lipiec', 'sierpień', 'wrzesień', 'październik', 'listopad', + 'grudzień'], SHORTMONTHS: ['sty', 'lut', 'mar', 'kwi', 'maj', 'cze', 'lip', 'sie', 'wrz', - 'paź', 'lis', 'gru'], + 'paź', 'lis', 'gru'], STANDALONESHORTMONTHS: ['sty', 'lut', 'mar', 'kwi', 'maj', 'cze', 'lip', - 'sie', 'wrz', 'paź', 'lis', 'gru'], + 'sie', 'wrz', 'paź', 'lis', 'gru'], WEEKDAYS: ['niedziela', 'poniedziałek', 'wtorek', 'środa', 'czwartek', - 'piątek', 'sobota'], + 'piątek', 'sobota'], STANDALONEWEEKDAYS: ['niedziela', 'poniedziałek', 'wtorek', 'środa', - 'czwartek', 'piątek', 'sobota'], + 'czwartek', 'piątek', 'sobota'], SHORTWEEKDAYS: ['niedz.', 'pon.', 'wt.', 'śr.', 'czw.', 'pt.', 'sob.'], STANDALONESHORTWEEKDAYS: ['niedz.', 'pon.', 'wt.', 'śr.', 'czw.', 'pt.', - 'sob.'], + 'sob.'], NARROWWEEKDAYS: ['N', 'P', 'W', 'Ś', 'C', 'P', 'S'], STANDALONENARROWWEEKDAYS: ['N', 'P', 'W', 'Ś', 'C', 'P', 'S'], SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], QUARTERS: ['I kwartał', 'II kwartał', 'III kwartał', 'IV kwartał'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd.MM.yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd.MM.y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -10561,34 +14350,35 @@ goog.i18n.DateTimeSymbols_ps = { ERANAMES: ['ق.م.', 'م.'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['جنوري', 'فبروري', 'مارچ', 'اپریل', 'می', - 'جون', 'جولای', 'اګست', 'سپتمبر', 'اکتوبر', - 'نومبر', 'دسمبر'], + 'جون', 'جولای', 'اګست', 'سپتمبر', 'اکتوبر', + 'نومبر', 'دسمبر'], STANDALONEMONTHS: ['جنوري', 'فبروري', 'مارچ', 'اپریل', - 'می', 'جون', 'جولای', 'اګست', 'سپتمبر', - 'اکتوبر', 'نومبر', 'دسمبر'], + 'می', 'جون', 'جولای', 'اګست', 'سپتمبر', 'اکتوبر', + 'نومبر', 'دسمبر'], SHORTMONTHS: ['جنوري', 'فبروري', 'مارچ', 'اپریل', 'می', - 'جون', 'جولای', 'اګست', 'سپتمبر', 'اکتوبر', - 'نومبر', 'دسمبر'], + 'جون', 'جولای', 'اګست', 'سپتمبر', 'اکتوبر', + 'نومبر', 'دسمبر'], STANDALONESHORTMONTHS: ['جنوري', 'فبروري', 'مارچ', - 'اپریل', 'می', 'جون', 'جولای', 'اګست', 'سپتمبر', - 'اکتوبر', 'نومبر', 'دسمبر'], + 'اپریل', 'می', 'جون', 'جولای', 'اګست', 'سپتمبر', + 'اکتوبر', 'نومبر', 'دسمبر'], WEEKDAYS: ['یکشنبه', 'دوشنبه', 'سه‌شنبه', - 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], + 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], STANDALONEWEEKDAYS: ['یکشنبه', 'دوشنبه', 'سه‌شنبه', - 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], + 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], SHORTWEEKDAYS: ['یکشنبه', 'دوشنبه', 'سه‌شنبه', - 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], + 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], STANDALONESHORTWEEKDAYS: ['یکشنبه', 'دوشنبه', 'سه‌شنبه', - 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['غ.م.', 'غ.و.'], - DATEFORMATS: ['EEEE د y د MMMM d', 'د y د MMMM d', 'd MMM y', 'yyyy/M/d'], + DATEFORMATS: ['EEEE د y د MMMM d', 'د y د MMMM d', 'd MMM y', 'y/M/d'], TIMEFORMATS: ['H:mm:ss (zzzz)', 'H:mm:ss (z)', 'H:mm:ss', 'H:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 5, WEEKENDRANGE: [3, 4], FIRSTWEEKCUTOFFDAY: 4 @@ -10609,31 +14399,70 @@ goog.i18n.DateTimeSymbols_pt_AO = { ERANAMES: ['Antes de Cristo', 'Ano do Senhor'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', - 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'], + 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'], STANDALONEMONTHS: ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', - 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'], + 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'], SHORTMONTHS: ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', - 'out', 'nov', 'dez'], + 'out', 'nov', 'dez'], STANDALONESHORTMONTHS: ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', - 'ago', 'set', 'out', 'nov', 'dez'], + 'ago', 'set', 'out', 'nov', 'dez'], WEEKDAYS: ['domingo', 'segunda-feira', 'terça-feira', 'quarta-feira', - 'quinta-feira', 'sexta-feira', 'sábado'], + 'quinta-feira', 'sexta-feira', 'sábado'], STANDALONEWEEKDAYS: ['domingo', 'segunda-feira', 'terça-feira', - 'quarta-feira', 'quinta-feira', 'sexta-feira', 'sábado'], + 'quarta-feira', 'quinta-feira', 'sexta-feira', 'sábado'], SHORTWEEKDAYS: ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'], STANDALONESHORTWEEKDAYS: ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'], NARROWWEEKDAYS: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1º trimestre', '2º trimestre', '3º trimestre', - '4º trimestre'], + '4º trimestre'], AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', - 'dd/MM/yyyy', 'dd/MM/yy'], - TIMEFORMATS: ['HH\'h\'mm\'min\'ss\'s\' zzzz', 'HH\'h\'mm\'min\'ss\'s\' z', - 'HH:mm:ss', 'HH:mm'], + 'dd/MM/y', 'dd/MM/yy'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale pt_CV. + */ +goog.i18n.DateTimeSymbols_pt_CV = { + ERAS: ['a.C.', 'd.C.'], + ERANAMES: ['Antes de Cristo', 'Ano do Senhor'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', + 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'], + STANDALONEMONTHS: ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', + 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'], + SHORTMONTHS: ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', + 'out', 'nov', 'dez'], + STANDALONESHORTMONTHS: ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', + 'ago', 'set', 'out', 'nov', 'dez'], + WEEKDAYS: ['domingo', 'segunda-feira', 'terça-feira', 'quarta-feira', + 'quinta-feira', 'sexta-feira', 'sábado'], + STANDALONEWEEKDAYS: ['domingo', 'segunda-feira', 'terça-feira', + 'quarta-feira', 'quinta-feira', 'sexta-feira', 'sábado'], + SHORTWEEKDAYS: ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'], + STANDALONESHORTWEEKDAYS: ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'], + NARROWWEEKDAYS: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'], + STANDALONENARROWWEEKDAYS: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'], + SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], + QUARTERS: ['1º trimestre', '2º trimestre', '3º trimestre', + '4º trimestre'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', + 'dd/MM/y', 'dd/MM/yy'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -10648,37 +14477,76 @@ goog.i18n.DateTimeSymbols_pt_GW = { ERANAMES: ['Antes de Cristo', 'Ano do Senhor'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', - 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'], + 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'], STANDALONEMONTHS: ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', - 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'], + 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'], SHORTMONTHS: ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', - 'out', 'nov', 'dez'], + 'out', 'nov', 'dez'], STANDALONESHORTMONTHS: ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', - 'ago', 'set', 'out', 'nov', 'dez'], + 'ago', 'set', 'out', 'nov', 'dez'], WEEKDAYS: ['domingo', 'segunda-feira', 'terça-feira', 'quarta-feira', - 'quinta-feira', 'sexta-feira', 'sábado'], + 'quinta-feira', 'sexta-feira', 'sábado'], STANDALONEWEEKDAYS: ['domingo', 'segunda-feira', 'terça-feira', - 'quarta-feira', 'quinta-feira', 'sexta-feira', 'sábado'], + 'quarta-feira', 'quinta-feira', 'sexta-feira', 'sábado'], SHORTWEEKDAYS: ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'], STANDALONESHORTWEEKDAYS: ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'], NARROWWEEKDAYS: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1º trimestre', '2º trimestre', '3º trimestre', - '4º trimestre'], + '4º trimestre'], AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', - 'dd/MM/yyyy', 'dd/MM/yy'], - TIMEFORMATS: ['HH\'h\'mm\'min\'ss\'s\' zzzz', 'HH\'h\'mm\'min\'ss\'s\' z', - 'HH:mm:ss', 'HH:mm'], + 'dd/MM/y', 'dd/MM/yy'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 }; +/** + * Date/time formatting symbols for locale pt_MO. + */ +goog.i18n.DateTimeSymbols_pt_MO = { + ERAS: ['a.C.', 'd.C.'], + ERANAMES: ['Antes de Cristo', 'Ano do Senhor'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', + 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'], + STANDALONEMONTHS: ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', + 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'], + SHORTMONTHS: ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', + 'out', 'nov', 'dez'], + STANDALONESHORTMONTHS: ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', + 'ago', 'set', 'out', 'nov', 'dez'], + WEEKDAYS: ['domingo', 'segunda-feira', 'terça-feira', 'quarta-feira', + 'quinta-feira', 'sexta-feira', 'sábado'], + STANDALONEWEEKDAYS: ['domingo', 'segunda-feira', 'terça-feira', + 'quarta-feira', 'quinta-feira', 'sexta-feira', 'sábado'], + SHORTWEEKDAYS: ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'], + STANDALONESHORTWEEKDAYS: ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'], + NARROWWEEKDAYS: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'], + STANDALONENARROWWEEKDAYS: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'], + SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], + QUARTERS: ['1º trimestre', '2º trimestre', '3º trimestre', + '4º trimestre'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', + 'dd/MM/y', 'dd/MM/yy'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 5 +}; + + /** * Date/time formatting symbols for locale pt_MZ. */ @@ -10687,31 +14555,31 @@ goog.i18n.DateTimeSymbols_pt_MZ = { ERANAMES: ['Antes de Cristo', 'Ano do Senhor'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', - 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'], + 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'], STANDALONEMONTHS: ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', - 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'], + 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'], SHORTMONTHS: ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', - 'out', 'nov', 'dez'], + 'out', 'nov', 'dez'], STANDALONESHORTMONTHS: ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', - 'ago', 'set', 'out', 'nov', 'dez'], + 'ago', 'set', 'out', 'nov', 'dez'], WEEKDAYS: ['domingo', 'segunda-feira', 'terça-feira', 'quarta-feira', - 'quinta-feira', 'sexta-feira', 'sábado'], + 'quinta-feira', 'sexta-feira', 'sábado'], STANDALONEWEEKDAYS: ['domingo', 'segunda-feira', 'terça-feira', - 'quarta-feira', 'quinta-feira', 'sexta-feira', 'sábado'], + 'quarta-feira', 'quinta-feira', 'sexta-feira', 'sábado'], SHORTWEEKDAYS: ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'], STANDALONESHORTWEEKDAYS: ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'], NARROWWEEKDAYS: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1º trimestre', '2º trimestre', '3º trimestre', - '4º trimestre'], + '4º trimestre'], AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', - 'dd/MM/yyyy', 'dd/MM/yy'], - TIMEFORMATS: ['HH\'h\'mm\'min\'ss\'s\' zzzz', 'HH\'h\'mm\'min\'ss\'s\' z', - 'HH:mm:ss', 'HH:mm'], + 'dd/MM/y', 'dd/MM/yy'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -10726,31 +14594,70 @@ goog.i18n.DateTimeSymbols_pt_ST = { ERANAMES: ['Antes de Cristo', 'Ano do Senhor'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', - 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'], + 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'], STANDALONEMONTHS: ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', - 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'], + 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'], SHORTMONTHS: ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', - 'out', 'nov', 'dez'], + 'out', 'nov', 'dez'], STANDALONESHORTMONTHS: ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', - 'ago', 'set', 'out', 'nov', 'dez'], + 'ago', 'set', 'out', 'nov', 'dez'], WEEKDAYS: ['domingo', 'segunda-feira', 'terça-feira', 'quarta-feira', - 'quinta-feira', 'sexta-feira', 'sábado'], + 'quinta-feira', 'sexta-feira', 'sábado'], STANDALONEWEEKDAYS: ['domingo', 'segunda-feira', 'terça-feira', - 'quarta-feira', 'quinta-feira', 'sexta-feira', 'sábado'], + 'quarta-feira', 'quinta-feira', 'sexta-feira', 'sábado'], SHORTWEEKDAYS: ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'], STANDALONESHORTWEEKDAYS: ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'], NARROWWEEKDAYS: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'], SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], QUARTERS: ['1º trimestre', '2º trimestre', '3º trimestre', - '4º trimestre'], + '4º trimestre'], AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', - 'dd/MM/yyyy', 'dd/MM/yy'], - TIMEFORMATS: ['HH\'h\'mm\'min\'ss\'s\' zzzz', 'HH\'h\'mm\'min\'ss\'s\' z', - 'HH:mm:ss', 'HH:mm'], + 'dd/MM/y', 'dd/MM/yy'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale pt_TL. + */ +goog.i18n.DateTimeSymbols_pt_TL = { + ERAS: ['a.C.', 'd.C.'], + ERANAMES: ['Antes de Cristo', 'Ano do Senhor'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', + 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'], + STANDALONEMONTHS: ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', + 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'], + SHORTMONTHS: ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', + 'out', 'nov', 'dez'], + STANDALONESHORTMONTHS: ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', + 'ago', 'set', 'out', 'nov', 'dez'], + WEEKDAYS: ['domingo', 'segunda-feira', 'terça-feira', 'quarta-feira', + 'quinta-feira', 'sexta-feira', 'sábado'], + STANDALONEWEEKDAYS: ['domingo', 'segunda-feira', 'terça-feira', + 'quarta-feira', 'quinta-feira', 'sexta-feira', 'sábado'], + SHORTWEEKDAYS: ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'], + STANDALONESHORTWEEKDAYS: ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'], + NARROWWEEKDAYS: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'], + STANDALONENARROWWEEKDAYS: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'], + SHORTQUARTERS: ['T1', 'T2', 'T3', 'T4'], + QUARTERS: ['1º trimestre', '2º trimestre', '3º trimestre', + '4º trimestre'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', + 'dd/MM/y', 'dd/MM/yy'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -10765,19 +14672,19 @@ goog.i18n.DateTimeSymbols_rm = { ERANAMES: ['avant Cristus', 'suenter Cristus'], NARROWMONTHS: ['S', 'F', 'M', 'A', 'M', 'Z', 'F', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['S', 'F', 'M', 'A', 'M', 'Z', 'F', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['schaner', 'favrer', 'mars', 'avrigl', 'matg', 'zercladur', - 'fanadur', 'avust', 'settember', 'october', 'november', 'december'], + 'fanadur', 'avust', 'settember', 'october', 'november', 'december'], STANDALONEMONTHS: ['schaner', 'favrer', 'mars', 'avrigl', 'matg', 'zercladur', - 'fanadur', 'avust', 'settember', 'october', 'november', 'december'], + 'fanadur', 'avust', 'settember', 'october', 'november', 'december'], SHORTMONTHS: ['schan.', 'favr.', 'mars', 'avr.', 'matg', 'zercl.', 'fan.', - 'avust', 'sett.', 'oct.', 'nov.', 'dec.'], + 'avust', 'sett.', 'oct.', 'nov.', 'dec.'], STANDALONESHORTMONTHS: ['schan.', 'favr.', 'mars', 'avr.', 'matg', 'zercl.', - 'fan.', 'avust', 'sett.', 'oct.', 'nov.', 'dec.'], + 'fan.', 'avust', 'sett.', 'oct.', 'nov.', 'dec.'], WEEKDAYS: ['dumengia', 'glindesdi', 'mardi', 'mesemna', 'gievgia', 'venderdi', - 'sonda'], + 'sonda'], STANDALONEWEEKDAYS: ['dumengia', 'glindesdi', 'mardi', 'mesemna', 'gievgia', - 'venderdi', 'sonda'], + 'venderdi', 'sonda'], SHORTWEEKDAYS: ['du', 'gli', 'ma', 'me', 'gie', 've', 'so'], STANDALONESHORTWEEKDAYS: ['du', 'gli', 'ma', 'me', 'gie', 've', 'so'], NARROWWEEKDAYS: ['D', 'G', 'M', 'M', 'G', 'V', 'S'], @@ -10785,9 +14692,10 @@ goog.i18n.DateTimeSymbols_rm = { SHORTQUARTERS: ['1. quartal', '2. quartal', '3. quartal', '4. quartal'], QUARTERS: ['1. quartal', '2. quartal', '3. quartal', '4. quartal'], AMPMS: ['am', 'sm'], - DATEFORMATS: ['EEEE, \'ils\' d \'da\' MMMM y', 'd \'da\' MMMM y', - 'dd-MM-yyyy', 'dd-MM-yy'], + DATEFORMATS: ['EEEE, \'ils\' d \'da\' MMMM y', 'd \'da\' MMMM y', 'dd-MM-y', + 'dd-MM-yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -10808,31 +14716,32 @@ goog.i18n.DateTimeSymbols_rn = { ERANAMES: ['Mbere ya Yezu', 'Nyuma ya Yezu'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['Nzero', 'Ruhuhuma', 'Ntwarante', 'Ndamukiza', 'Rusama', 'Ruheshi', - 'Mukakaro', 'Nyandagaro', 'Nyakanga', 'Gitugutu', 'Munyonyo', 'Kigarama'], + 'Mukakaro', 'Nyandagaro', 'Nyakanga', 'Gitugutu', 'Munyonyo', 'Kigarama'], STANDALONEMONTHS: ['Nzero', 'Ruhuhuma', 'Ntwarante', 'Ndamukiza', 'Rusama', - 'Ruheshi', 'Mukakaro', 'Nyandagaro', 'Nyakanga', 'Gitugutu', 'Munyonyo', - 'Kigarama'], + 'Ruheshi', 'Mukakaro', 'Nyandagaro', 'Nyakanga', 'Gitugutu', 'Munyonyo', + 'Kigarama'], SHORTMONTHS: ['Mut.', 'Gas.', 'Wer.', 'Mat.', 'Gic.', 'Kam.', 'Nya.', 'Kan.', - 'Nze.', 'Ukw.', 'Ugu.', 'Uku.'], + 'Nze.', 'Ukw.', 'Ugu.', 'Uku.'], STANDALONESHORTMONTHS: ['Mut.', 'Gas.', 'Wer.', 'Mat.', 'Gic.', 'Kam.', - 'Nya.', 'Kan.', 'Nze.', 'Ukw.', 'Ugu.', 'Uku.'], + 'Nya.', 'Kan.', 'Nze.', 'Ukw.', 'Ugu.', 'Uku.'], WEEKDAYS: ['Ku w\'indwi', 'Ku wa mbere', 'Ku wa kabiri', 'Ku wa gatatu', - 'Ku wa kane', 'Ku wa gatanu', 'Ku wa gatandatu'], + 'Ku wa kane', 'Ku wa gatanu', 'Ku wa gatandatu'], STANDALONEWEEKDAYS: ['Ku w\'indwi', 'Ku wa mbere', 'Ku wa kabiri', - 'Ku wa gatatu', 'Ku wa kane', 'Ku wa gatanu', 'Ku wa gatandatu'], + 'Ku wa gatatu', 'Ku wa kane', 'Ku wa gatanu', 'Ku wa gatandatu'], SHORTWEEKDAYS: ['cu.', 'mbe.', 'kab.', 'gtu.', 'kan.', 'gnu.', 'gnd.'], STANDALONESHORTWEEKDAYS: ['cu.', 'mbe.', 'kab.', 'gtu.', 'kan.', 'gnu.', - 'gnd.'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + 'gnd.'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['I1', 'I2', 'I3', 'I4'], QUARTERS: ['Igice ca mbere c\'umwaka', 'Igice ca kabiri c\'umwaka', - 'Igice ca gatatu c\'umwaka', 'Igice ca kane c\'umwaka'], + 'Igice ca gatatu c\'umwaka', 'Igice ca kane c\'umwaka'], AMPMS: ['Z.MU.', 'Z.MW.'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/yyyy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -10853,30 +14762,31 @@ goog.i18n.DateTimeSymbols_ro_MD = { ERANAMES: ['înainte de Hristos', 'după Hristos'], NARROWMONTHS: ['I', 'F', 'M', 'A', 'M', 'I', 'I', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['I', 'F', 'M', 'A', 'M', 'I', 'I', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['ianuarie', 'februarie', 'martie', 'aprilie', 'mai', 'iunie', - 'iulie', 'august', 'septembrie', 'octombrie', 'noiembrie', 'decembrie'], + 'iulie', 'august', 'septembrie', 'octombrie', 'noiembrie', 'decembrie'], STANDALONEMONTHS: ['ianuarie', 'februarie', 'martie', 'aprilie', 'mai', - 'iunie', 'iulie', 'august', 'septembrie', 'octombrie', 'noiembrie', - 'decembrie'], + 'iunie', 'iulie', 'august', 'septembrie', 'octombrie', 'noiembrie', + 'decembrie'], SHORTMONTHS: ['ian.', 'feb.', 'mar.', 'apr.', 'mai', 'iun.', 'iul.', 'aug.', - 'sept.', 'oct.', 'nov.', 'dec.'], + 'sept.', 'oct.', 'nov.', 'dec.'], STANDALONESHORTMONTHS: ['ian.', 'feb.', 'mar.', 'apr.', 'mai', 'iun.', 'iul.', - 'aug.', 'sept.', 'oct.', 'nov.', 'dec.'], + 'aug.', 'sept.', 'oct.', 'nov.', 'dec.'], WEEKDAYS: ['duminică', 'luni', 'marți', 'miercuri', 'joi', 'vineri', - 'sâmbătă'], + 'sâmbătă'], STANDALONEWEEKDAYS: ['duminică', 'luni', 'marți', 'miercuri', 'joi', - 'vineri', 'sâmbătă'], + 'vineri', 'sâmbătă'], SHORTWEEKDAYS: ['Du', 'Lu', 'Ma', 'Mi', 'Jo', 'Vi', 'Sâ'], STANDALONESHORTWEEKDAYS: ['Du', 'Lu', 'Ma', 'Mi', 'Jo', 'Vi', 'Sâ'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['trim. I', 'trim. II', 'trim. III', 'trim. IV'], QUARTERS: ['trimestrul I', 'trimestrul al II-lea', 'trimestrul al III-lea', - 'trimestrul al IV-lea'], + 'trimestrul al IV-lea'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'dd.MM.yyyy', 'dd.MM.yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'dd.MM.y', 'dd.MM.y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1}, {0}', '{1}, {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -10891,30 +14801,31 @@ goog.i18n.DateTimeSymbols_ro_RO = { ERANAMES: ['înainte de Hristos', 'după Hristos'], NARROWMONTHS: ['I', 'F', 'M', 'A', 'M', 'I', 'I', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['I', 'F', 'M', 'A', 'M', 'I', 'I', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['ianuarie', 'februarie', 'martie', 'aprilie', 'mai', 'iunie', - 'iulie', 'august', 'septembrie', 'octombrie', 'noiembrie', 'decembrie'], + 'iulie', 'august', 'septembrie', 'octombrie', 'noiembrie', 'decembrie'], STANDALONEMONTHS: ['ianuarie', 'februarie', 'martie', 'aprilie', 'mai', - 'iunie', 'iulie', 'august', 'septembrie', 'octombrie', 'noiembrie', - 'decembrie'], + 'iunie', 'iulie', 'august', 'septembrie', 'octombrie', 'noiembrie', + 'decembrie'], SHORTMONTHS: ['ian.', 'feb.', 'mar.', 'apr.', 'mai', 'iun.', 'iul.', 'aug.', - 'sept.', 'oct.', 'nov.', 'dec.'], + 'sept.', 'oct.', 'nov.', 'dec.'], STANDALONESHORTMONTHS: ['ian.', 'feb.', 'mar.', 'apr.', 'mai', 'iun.', 'iul.', - 'aug.', 'sept.', 'oct.', 'nov.', 'dec.'], + 'aug.', 'sept.', 'oct.', 'nov.', 'dec.'], WEEKDAYS: ['duminică', 'luni', 'marți', 'miercuri', 'joi', 'vineri', - 'sâmbătă'], + 'sâmbătă'], STANDALONEWEEKDAYS: ['duminică', 'luni', 'marți', 'miercuri', 'joi', - 'vineri', 'sâmbătă'], + 'vineri', 'sâmbătă'], SHORTWEEKDAYS: ['Du', 'Lu', 'Ma', 'Mi', 'Jo', 'Vi', 'Sâ'], STANDALONESHORTWEEKDAYS: ['Du', 'Lu', 'Ma', 'Mi', 'Jo', 'Vi', 'Sâ'], NARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], STANDALONENARROWWEEKDAYS: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], SHORTQUARTERS: ['trim. I', 'trim. II', 'trim. III', 'trim. IV'], QUARTERS: ['trimestrul I', 'trimestrul al II-lea', 'trimestrul al III-lea', - 'trimestrul al IV-lea'], + 'trimestrul al IV-lea'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'dd.MM.yyyy', 'dd.MM.yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'dd.MM.y', 'dd.MM.y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1}, {0}', '{1}, {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -10929,33 +14840,34 @@ goog.i18n.DateTimeSymbols_rof = { ERANAMES: ['Kabla ya Mayesu', 'Baada ya Mayesu'], NARROWMONTHS: ['K', 'K', 'K', 'K', 'T', 'S', 'S', 'N', 'T', 'I', 'I', 'I'], STANDALONENARROWMONTHS: ['K', 'K', 'K', 'K', 'T', 'S', 'S', 'N', 'T', 'I', - 'I', 'I'], + 'I', 'I'], MONTHS: ['Mweri wa kwanza', 'Mweri wa kaili', 'Mweri wa katatu', - 'Mweri wa kaana', 'Mweri wa tanu', 'Mweri wa sita', 'Mweri wa saba', - 'Mweri wa nane', 'Mweri wa tisa', 'Mweri wa ikumi', - 'Mweri wa ikumi na moja', 'Mweri wa ikumi na mbili'], + 'Mweri wa kaana', 'Mweri wa tanu', 'Mweri wa sita', 'Mweri wa saba', + 'Mweri wa nane', 'Mweri wa tisa', 'Mweri wa ikumi', + 'Mweri wa ikumi na moja', 'Mweri wa ikumi na mbili'], STANDALONEMONTHS: ['Mweri wa kwanza', 'Mweri wa kaili', 'Mweri wa katatu', - 'Mweri wa kaana', 'Mweri wa tanu', 'Mweri wa sita', 'Mweri wa saba', - 'Mweri wa nane', 'Mweri wa tisa', 'Mweri wa ikumi', - 'Mweri wa ikumi na moja', 'Mweri wa ikumi na mbili'], + 'Mweri wa kaana', 'Mweri wa tanu', 'Mweri wa sita', 'Mweri wa saba', + 'Mweri wa nane', 'Mweri wa tisa', 'Mweri wa ikumi', + 'Mweri wa ikumi na moja', 'Mweri wa ikumi na mbili'], SHORTMONTHS: ['M1', 'M2', 'M3', 'M4', 'M5', 'M6', 'M7', 'M8', 'M9', 'M10', - 'M11', 'M12'], + 'M11', 'M12'], STANDALONESHORTMONTHS: ['M1', 'M2', 'M3', 'M4', 'M5', 'M6', 'M7', 'M8', 'M9', - 'M10', 'M11', 'M12'], + 'M10', 'M11', 'M12'], WEEKDAYS: ['Ijumapili', 'Ijumatatu', 'Ijumanne', 'Ijumatano', 'Alhamisi', - 'Ijumaa', 'Ijumamosi'], + 'Ijumaa', 'Ijumamosi'], STANDALONEWEEKDAYS: ['Ijumapili', 'Ijumatatu', 'Ijumanne', 'Ijumatano', - 'Alhamisi', 'Ijumaa', 'Ijumamosi'], + 'Alhamisi', 'Ijumaa', 'Ijumamosi'], SHORTWEEKDAYS: ['Ijp', 'Ijt', 'Ijn', 'Ijtn', 'Alh', 'Iju', 'Ijm'], STANDALONESHORTWEEKDAYS: ['Ijp', 'Ijt', 'Ijn', 'Ijtn', 'Alh', 'Iju', 'Ijm'], NARROWWEEKDAYS: ['2', '3', '4', '5', '6', '7', '1'], STANDALONENARROWWEEKDAYS: ['2', '3', '4', '5', '6', '7', '1'], SHORTQUARTERS: ['R1', 'R2', 'R3', 'R4'], QUARTERS: ['Robo ya kwanza', 'Robo ya kaili', 'Robo ya katatu', - 'Robo ya kaana'], + 'Robo ya kaana'], AMPMS: ['kang\'ama', 'kingoto'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -10968,6 +14880,147 @@ goog.i18n.DateTimeSymbols_rof = { goog.i18n.DateTimeSymbols_rof_TZ = goog.i18n.DateTimeSymbols_rof; +/** + * Date/time formatting symbols for locale ru_BY. + */ +goog.i18n.DateTimeSymbols_ru_BY = { + ERAS: ['до н.э.', 'н.э.'], + ERANAMES: ['до н.э.', 'н.э.'], + NARROWMONTHS: ['Я', 'Ф', 'М', 'А', 'М', 'И', 'И', 'А', 'С', 'О', + 'Н', 'Д'], + STANDALONENARROWMONTHS: ['Я', 'Ф', 'М', 'А', 'М', 'И', 'И', 'А', 'С', + 'О', 'Н', 'Д'], + MONTHS: ['января', 'февраля', 'марта', 'апреля', + 'мая', 'июня', 'июля', 'августа', 'сентября', + 'октября', 'ноября', 'декабря'], + STANDALONEMONTHS: ['Январь', 'Февраль', 'Март', + 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', + 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'], + SHORTMONTHS: ['янв.', 'февр.', 'марта', 'апр.', 'мая', + 'июня', 'июля', 'авг.', 'сент.', 'окт.', 'нояб.', + 'дек.'], + STANDALONESHORTMONTHS: ['Янв.', 'Февр.', 'Март', 'Апр.', + 'Май', 'Июнь', 'Июль', 'Авг.', 'Сент.', 'Окт.', + 'Нояб.', 'Дек.'], + WEEKDAYS: ['воскресенье', 'понедельник', + 'вторник', 'среда', 'четверг', 'пятница', + 'суббота'], + STANDALONEWEEKDAYS: ['Воскресенье', 'Понедельник', + 'Вторник', 'Среда', 'Четверг', 'Пятница', + 'Суббота'], + SHORTWEEKDAYS: ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'], + STANDALONESHORTWEEKDAYS: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', + 'Сб'], + NARROWWEEKDAYS: ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'], + STANDALONENARROWWEEKDAYS: ['В', 'П', 'В', 'С', 'Ч', 'П', 'С'], + SHORTQUARTERS: ['1-й кв.', '2-й кв.', '3-й кв.', '4-й кв.'], + QUARTERS: ['1-й квартал', '2-й квартал', + '3-й квартал', '4-й квартал'], + AMPMS: ['до полудня', 'после полудня'], + DATEFORMATS: ['EEEE, d MMMM y \'г\'.', 'd MMMM y \'г\'.', + 'dd MMM y \'г\'.', 'dd.MM.yy'], + TIMEFORMATS: ['H:mm:ss zzzz', 'H:mm:ss z', 'H:mm:ss', 'H:mm'], + DATETIMEFORMATS: ['{1}, {0}', '{1}, {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 5 +}; + + +/** + * Date/time formatting symbols for locale ru_KG. + */ +goog.i18n.DateTimeSymbols_ru_KG = { + ERAS: ['до н.э.', 'н.э.'], + ERANAMES: ['до н.э.', 'н.э.'], + NARROWMONTHS: ['Я', 'Ф', 'М', 'А', 'М', 'И', 'И', 'А', 'С', 'О', + 'Н', 'Д'], + STANDALONENARROWMONTHS: ['Я', 'Ф', 'М', 'А', 'М', 'И', 'И', 'А', 'С', + 'О', 'Н', 'Д'], + MONTHS: ['января', 'февраля', 'марта', 'апреля', + 'мая', 'июня', 'июля', 'августа', 'сентября', + 'октября', 'ноября', 'декабря'], + STANDALONEMONTHS: ['Январь', 'Февраль', 'Март', + 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', + 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'], + SHORTMONTHS: ['янв.', 'февр.', 'марта', 'апр.', 'мая', + 'июня', 'июля', 'авг.', 'сент.', 'окт.', 'нояб.', + 'дек.'], + STANDALONESHORTMONTHS: ['Янв.', 'Февр.', 'Март', 'Апр.', + 'Май', 'Июнь', 'Июль', 'Авг.', 'Сент.', 'Окт.', + 'Нояб.', 'Дек.'], + WEEKDAYS: ['воскресенье', 'понедельник', + 'вторник', 'среда', 'четверг', 'пятница', + 'суббота'], + STANDALONEWEEKDAYS: ['Воскресенье', 'Понедельник', + 'Вторник', 'Среда', 'Четверг', 'Пятница', + 'Суббота'], + SHORTWEEKDAYS: ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'], + STANDALONESHORTWEEKDAYS: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', + 'Сб'], + NARROWWEEKDAYS: ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'], + STANDALONENARROWWEEKDAYS: ['В', 'П', 'В', 'С', 'Ч', 'П', 'С'], + SHORTQUARTERS: ['1-й кв.', '2-й кв.', '3-й кв.', '4-й кв.'], + QUARTERS: ['1-й квартал', '2-й квартал', + '3-й квартал', '4-й квартал'], + AMPMS: ['до полудня', 'после полудня'], + DATEFORMATS: ['EEEE, d MMMM y \'г\'.', 'd MMMM y \'г\'.', + 'dd MMM y \'г\'.', 'dd.MM.yy'], + TIMEFORMATS: ['H:mm:ss zzzz', 'H:mm:ss z', 'H:mm:ss', 'H:mm'], + DATETIMEFORMATS: ['{1}, {0}', '{1}, {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale ru_KZ. + */ +goog.i18n.DateTimeSymbols_ru_KZ = { + ERAS: ['до н.э.', 'н.э.'], + ERANAMES: ['до н.э.', 'н.э.'], + NARROWMONTHS: ['Я', 'Ф', 'М', 'А', 'М', 'И', 'И', 'А', 'С', 'О', + 'Н', 'Д'], + STANDALONENARROWMONTHS: ['Я', 'Ф', 'М', 'А', 'М', 'И', 'И', 'А', 'С', + 'О', 'Н', 'Д'], + MONTHS: ['января', 'февраля', 'марта', 'апреля', + 'мая', 'июня', 'июля', 'августа', 'сентября', + 'октября', 'ноября', 'декабря'], + STANDALONEMONTHS: ['Январь', 'Февраль', 'Март', + 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', + 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'], + SHORTMONTHS: ['янв.', 'февр.', 'марта', 'апр.', 'мая', + 'июня', 'июля', 'авг.', 'сент.', 'окт.', 'нояб.', + 'дек.'], + STANDALONESHORTMONTHS: ['Янв.', 'Февр.', 'Март', 'Апр.', + 'Май', 'Июнь', 'Июль', 'Авг.', 'Сент.', 'Окт.', + 'Нояб.', 'Дек.'], + WEEKDAYS: ['воскресенье', 'понедельник', + 'вторник', 'среда', 'четверг', 'пятница', + 'суббота'], + STANDALONEWEEKDAYS: ['Воскресенье', 'Понедельник', + 'Вторник', 'Среда', 'Четверг', 'Пятница', + 'Суббота'], + SHORTWEEKDAYS: ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'], + STANDALONESHORTWEEKDAYS: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', + 'Сб'], + NARROWWEEKDAYS: ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'], + STANDALONENARROWWEEKDAYS: ['В', 'П', 'В', 'С', 'Ч', 'П', 'С'], + SHORTQUARTERS: ['1-й кв.', '2-й кв.', '3-й кв.', '4-й кв.'], + QUARTERS: ['1-й квартал', '2-й квартал', + '3-й квартал', '4-й квартал'], + AMPMS: ['до полудня', 'после полудня'], + DATEFORMATS: ['EEEE, d MMMM y \'г\'.', 'd MMMM y \'г\'.', + 'dd MMM y \'г\'.', 'dd.MM.yy'], + TIMEFORMATS: ['H:mm:ss zzzz', 'H:mm:ss z', 'H:mm:ss', 'H:mm'], + DATETIMEFORMATS: ['{1}, {0}', '{1}, {0}', '{1}, {0}', '{1}, {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + /** * Date/time formatting symbols for locale ru_MD. */ @@ -10975,39 +15028,40 @@ goog.i18n.DateTimeSymbols_ru_MD = { ERAS: ['до н.э.', 'н.э.'], ERANAMES: ['до н.э.', 'н.э.'], NARROWMONTHS: ['Я', 'Ф', 'М', 'А', 'М', 'И', 'И', 'А', 'С', 'О', - 'Н', 'Д'], + 'Н', 'Д'], STANDALONENARROWMONTHS: ['Я', 'Ф', 'М', 'А', 'М', 'И', 'И', 'А', 'С', - 'О', 'Н', 'Д'], + 'О', 'Н', 'Д'], MONTHS: ['января', 'февраля', 'марта', 'апреля', - 'мая', 'июня', 'июля', 'августа', 'сентября', - 'октября', 'ноября', 'декабря'], + 'мая', 'июня', 'июля', 'августа', 'сентября', + 'октября', 'ноября', 'декабря'], STANDALONEMONTHS: ['Январь', 'Февраль', 'Март', - 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', - 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'], + 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', + 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'], SHORTMONTHS: ['янв.', 'февр.', 'марта', 'апр.', 'мая', - 'июня', 'июля', 'авг.', 'сент.', 'окт.', 'нояб.', - 'дек.'], + 'июня', 'июля', 'авг.', 'сент.', 'окт.', 'нояб.', + 'дек.'], STANDALONESHORTMONTHS: ['Янв.', 'Февр.', 'Март', 'Апр.', - 'Май', 'Июнь', 'Июль', 'Авг.', 'Сент.', 'Окт.', - 'Нояб.', 'Дек.'], + 'Май', 'Июнь', 'Июль', 'Авг.', 'Сент.', 'Окт.', + 'Нояб.', 'Дек.'], WEEKDAYS: ['воскресенье', 'понедельник', - 'вторник', 'среда', 'четверг', 'пятница', - 'суббота'], + 'вторник', 'среда', 'четверг', 'пятница', + 'суббота'], STANDALONEWEEKDAYS: ['Воскресенье', 'Понедельник', - 'Вторник', 'Среда', 'Четверг', 'Пятница', - 'Суббота'], + 'Вторник', 'Среда', 'Четверг', 'Пятница', + 'Суббота'], SHORTWEEKDAYS: ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'], STANDALONESHORTWEEKDAYS: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', - 'Сб'], - NARROWWEEKDAYS: ['В', 'Пн', 'Вт', 'С', 'Ч', 'П', 'С'], + 'Сб'], + NARROWWEEKDAYS: ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'], STANDALONENARROWWEEKDAYS: ['В', 'П', 'В', 'С', 'Ч', 'П', 'С'], SHORTQUARTERS: ['1-й кв.', '2-й кв.', '3-й кв.', '4-й кв.'], QUARTERS: ['1-й квартал', '2-й квартал', - '3-й квартал', '4-й квартал'], + '3-й квартал', '4-й квартал'], AMPMS: ['до полудня', 'после полудня'], - DATEFORMATS: ['EEEE, d MMMM y \'г\'.', 'd MMMM y \'г\'.', 'dd.MM.yyyy', - 'dd.MM.yy'], + DATEFORMATS: ['EEEE, d MMMM y \'г\'.', 'd MMMM y \'г\'.', + 'dd MMM y \'г\'.', 'dd.MM.yy'], TIMEFORMATS: ['H:mm:ss zzzz', 'H:mm:ss z', 'H:mm:ss', 'H:mm'], + DATETIMEFORMATS: ['{1}, {0}', '{1}, {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -11021,39 +15075,40 @@ goog.i18n.DateTimeSymbols_ru_RU = { ERAS: ['до н.э.', 'н.э.'], ERANAMES: ['до н.э.', 'н.э.'], NARROWMONTHS: ['Я', 'Ф', 'М', 'А', 'М', 'И', 'И', 'А', 'С', 'О', - 'Н', 'Д'], + 'Н', 'Д'], STANDALONENARROWMONTHS: ['Я', 'Ф', 'М', 'А', 'М', 'И', 'И', 'А', 'С', - 'О', 'Н', 'Д'], + 'О', 'Н', 'Д'], MONTHS: ['января', 'февраля', 'марта', 'апреля', - 'мая', 'июня', 'июля', 'августа', 'сентября', - 'октября', 'ноября', 'декабря'], + 'мая', 'июня', 'июля', 'августа', 'сентября', + 'октября', 'ноября', 'декабря'], STANDALONEMONTHS: ['Январь', 'Февраль', 'Март', - 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', - 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'], + 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', + 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'], SHORTMONTHS: ['янв.', 'февр.', 'марта', 'апр.', 'мая', - 'июня', 'июля', 'авг.', 'сент.', 'окт.', 'нояб.', - 'дек.'], + 'июня', 'июля', 'авг.', 'сент.', 'окт.', 'нояб.', + 'дек.'], STANDALONESHORTMONTHS: ['Янв.', 'Февр.', 'Март', 'Апр.', - 'Май', 'Июнь', 'Июль', 'Авг.', 'Сент.', 'Окт.', - 'Нояб.', 'Дек.'], + 'Май', 'Июнь', 'Июль', 'Авг.', 'Сент.', 'Окт.', + 'Нояб.', 'Дек.'], WEEKDAYS: ['воскресенье', 'понедельник', - 'вторник', 'среда', 'четверг', 'пятница', - 'суббота'], + 'вторник', 'среда', 'четверг', 'пятница', + 'суббота'], STANDALONEWEEKDAYS: ['Воскресенье', 'Понедельник', - 'Вторник', 'Среда', 'Четверг', 'Пятница', - 'Суббота'], + 'Вторник', 'Среда', 'Четверг', 'Пятница', + 'Суббота'], SHORTWEEKDAYS: ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'], STANDALONESHORTWEEKDAYS: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', - 'Сб'], - NARROWWEEKDAYS: ['В', 'Пн', 'Вт', 'С', 'Ч', 'П', 'С'], + 'Сб'], + NARROWWEEKDAYS: ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'], STANDALONENARROWWEEKDAYS: ['В', 'П', 'В', 'С', 'Ч', 'П', 'С'], SHORTQUARTERS: ['1-й кв.', '2-й кв.', '3-й кв.', '4-й кв.'], QUARTERS: ['1-й квартал', '2-й квартал', - '3-й квартал', '4-й квартал'], + '3-й квартал', '4-й квартал'], AMPMS: ['до полудня', 'после полудня'], - DATEFORMATS: ['EEEE, d MMMM y \'г\'.', 'd MMMM y \'г\'.', 'dd.MM.yyyy', - 'dd.MM.yy'], + DATEFORMATS: ['EEEE, d MMMM y \'г\'.', 'd MMMM y \'г\'.', + 'dd MMM y \'г\'.', 'dd.MM.yy'], TIMEFORMATS: ['H:mm:ss zzzz', 'H:mm:ss z', 'H:mm:ss', 'H:mm'], + DATETIMEFORMATS: ['{1}, {0}', '{1}, {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -11067,38 +15122,39 @@ goog.i18n.DateTimeSymbols_ru_UA = { ERAS: ['до н.э.', 'н.э.'], ERANAMES: ['до н.э.', 'н.э.'], NARROWMONTHS: ['Я', 'Ф', 'М', 'А', 'М', 'И', 'И', 'А', 'С', 'О', - 'Н', 'Д'], + 'Н', 'Д'], STANDALONENARROWMONTHS: ['Я', 'Ф', 'М', 'А', 'М', 'И', 'И', 'А', 'С', - 'О', 'Н', 'Д'], + 'О', 'Н', 'Д'], MONTHS: ['января', 'февраля', 'марта', 'апреля', - 'мая', 'июня', 'июля', 'августа', 'сентября', - 'октября', 'ноября', 'декабря'], + 'мая', 'июня', 'июля', 'августа', 'сентября', + 'октября', 'ноября', 'декабря'], STANDALONEMONTHS: ['Январь', 'Февраль', 'Март', - 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', - 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'], + 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', + 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'], SHORTMONTHS: ['янв.', 'февр.', 'марта', 'апр.', 'мая', - 'июня', 'июля', 'авг.', 'сент.', 'окт.', 'нояб.', - 'дек.'], + 'июня', 'июля', 'авг.', 'сент.', 'окт.', 'нояб.', + 'дек.'], STANDALONESHORTMONTHS: ['Янв.', 'Февр.', 'Март', 'Апр.', - 'Май', 'Июнь', 'Июль', 'Авг.', 'Сент.', 'Окт.', - 'Нояб.', 'Дек.'], + 'Май', 'Июнь', 'Июль', 'Авг.', 'Сент.', 'Окт.', + 'Нояб.', 'Дек.'], WEEKDAYS: ['воскресенье', 'понедельник', - 'вторник', 'среда', 'четверг', 'пятница', - 'суббота'], + 'вторник', 'среда', 'четверг', 'пятница', + 'суббота'], STANDALONEWEEKDAYS: ['Воскресенье', 'Понедельник', - 'Вторник', 'Среда', 'Четверг', 'Пятница', - 'Суббота'], + 'Вторник', 'Среда', 'Четверг', 'Пятница', + 'Суббота'], SHORTWEEKDAYS: ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'], STANDALONESHORTWEEKDAYS: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', - 'Сб'], - NARROWWEEKDAYS: ['В', 'Пн', 'Вт', 'С', 'Ч', 'П', 'С'], + 'Сб'], + NARROWWEEKDAYS: ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'], STANDALONENARROWWEEKDAYS: ['В', 'П', 'В', 'С', 'Ч', 'П', 'С'], SHORTQUARTERS: ['1-й кв.', '2-й кв.', '3-й кв.', '4-й кв.'], QUARTERS: ['1-й квартал', '2-й квартал', - '3-й квартал', '4-й квартал'], + '3-й квартал', '4-й квартал'], AMPMS: ['до полудня', 'после полудня'], - DATEFORMATS: ['EEEE, d MMMM y \'г\'.', 'd MMMM y', 'd MMM y', 'dd.MM.yy'], + DATEFORMATS: ['EEEE, d MMMM y \'г\'.', 'd MMMM y', 'd MMM y', 'dd.MM.yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1}, {0}', '{1}, {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -11113,31 +15169,32 @@ goog.i18n.DateTimeSymbols_rw = { ERANAMES: ['BCE', 'CE'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['Mutarama', 'Gashyantare', 'Werurwe', 'Mata', 'Gicuransi', 'Kamena', - 'Nyakanga', 'Kanama', 'Nzeli', 'Ukwakira', 'Ugushyingo', 'Ukuboza'], + 'Nyakanga', 'Kanama', 'Nzeli', 'Ukwakira', 'Ugushyingo', 'Ukuboza'], STANDALONEMONTHS: ['Mutarama', 'Gashyantare', 'Werurwe', 'Mata', 'Gicuransi', - 'Kamena', 'Nyakanga', 'Kanama', 'Nzeli', 'Ukwakira', 'Ugushyingo', - 'Ukuboza'], + 'Kamena', 'Nyakanga', 'Kanama', 'Nzeli', 'Ukwakira', 'Ugushyingo', + 'Ukuboza'], SHORTMONTHS: ['mut.', 'gas.', 'wer.', 'mat.', 'gic.', 'kam.', 'nya.', 'kan.', - 'nze.', 'ukw.', 'ugu.', 'uku.'], + 'nze.', 'ukw.', 'ugu.', 'uku.'], STANDALONESHORTMONTHS: ['mut.', 'gas.', 'wer.', 'mat.', 'gic.', 'kam.', - 'nya.', 'kan.', 'nze.', 'ukw.', 'ugu.', 'uku.'], + 'nya.', 'kan.', 'nze.', 'ukw.', 'ugu.', 'uku.'], WEEKDAYS: ['Ku cyumweru', 'Kuwa mbere', 'Kuwa kabiri', 'Kuwa gatatu', - 'Kuwa kane', 'Kuwa gatanu', 'Kuwa gatandatu'], + 'Kuwa kane', 'Kuwa gatanu', 'Kuwa gatandatu'], STANDALONEWEEKDAYS: ['Ku cyumweru', 'Kuwa mbere', 'Kuwa kabiri', - 'Kuwa gatatu', 'Kuwa kane', 'Kuwa gatanu', 'Kuwa gatandatu'], + 'Kuwa gatatu', 'Kuwa kane', 'Kuwa gatanu', 'Kuwa gatandatu'], SHORTWEEKDAYS: ['cyu.', 'mbe.', 'kab.', 'gtu.', 'kan.', 'gnu.', 'gnd.'], STANDALONESHORTWEEKDAYS: ['cyu.', 'mbe.', 'kab.', 'gtu.', 'kan.', 'gnu.', - 'gnd.'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + 'gnd.'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['I1', 'I2', 'I3', 'I4'], QUARTERS: ['igihembwe cya mbere', 'igihembwe cya kabiri', - 'igihembwe cya gatatu', 'igihembwe cya kane'], + 'igihembwe cya gatatu', 'igihembwe cya kane'], AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, y MMMM dd', 'y MMMM d', 'y MMM d', 'yy/MM/dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -11158,19 +15215,19 @@ goog.i18n.DateTimeSymbols_rwk = { ERANAMES: ['Kabla ya Kristu', 'Baada ya Kristu'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Januari', 'Februari', 'Machi', 'Aprilyi', 'Mei', 'Junyi', 'Julyai', - 'Agusti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + 'Agusti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], STANDALONEMONTHS: ['Januari', 'Februari', 'Machi', 'Aprilyi', 'Mei', 'Junyi', - 'Julyai', 'Agusti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + 'Julyai', 'Agusti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], SHORTMONTHS: ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', - 'Okt', 'Nov', 'Des'], + 'Okt', 'Nov', 'Des'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', - 'Ago', 'Sep', 'Okt', 'Nov', 'Des'], + 'Ago', 'Sep', 'Okt', 'Nov', 'Des'], WEEKDAYS: ['Jumapilyi', 'Jumatatuu', 'Jumanne', 'Jumatanu', 'Alhamisi', - 'Ijumaa', 'Jumamosi'], + 'Ijumaa', 'Jumamosi'], STANDALONEWEEKDAYS: ['Jumapilyi', 'Jumatatuu', 'Jumanne', 'Jumatanu', - 'Alhamisi', 'Ijumaa', 'Jumamosi'], + 'Alhamisi', 'Ijumaa', 'Jumamosi'], SHORTWEEKDAYS: ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'], STANDALONESHORTWEEKDAYS: ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'], NARROWWEEKDAYS: ['J', 'J', 'J', 'J', 'A', 'I', 'J'], @@ -11178,8 +15235,9 @@ goog.i18n.DateTimeSymbols_rwk = { SHORTQUARTERS: ['R1', 'R2', 'R3', 'R4'], QUARTERS: ['Robo 1', 'Robo 2', 'Robo 3', 'Robo 4'], AMPMS: ['utuko', 'kyiukonyi'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -11199,42 +15257,43 @@ goog.i18n.DateTimeSymbols_sah = { ERAS: ['б. э. и.', 'б. э'], ERANAMES: ['б. э. и.', 'б. э'], NARROWMONTHS: ['Т', 'О', 'К', 'М', 'Ы', 'Б', 'О', 'А', 'Б', 'А', - 'С', 'А'], + 'С', 'А'], STANDALONENARROWMONTHS: ['Т', 'О', 'К', 'М', 'Ы', 'Б', 'О', 'А', 'Б', - 'А', 'С', 'А'], + 'А', 'С', 'А'], MONTHS: ['Тохсунньу', 'Олунньу', 'Кулун тутар', - 'Муус устар', 'Ыам ыйын', 'Бэс ыйын', - 'От ыйын', 'Атырдьых ыйын', 'Балаҕан ыйын', - 'Алтынньы', 'Сэтинньи', 'Ахсынньы'], + 'Муус устар', 'Ыам ыйын', 'Бэс ыйын', + 'От ыйын', 'Атырдьых ыйын', 'Балаҕан ыйын', + 'Алтынньы', 'Сэтинньи', 'Ахсынньы'], STANDALONEMONTHS: ['Тохсунньу', 'Олунньу', - 'Кулун тутар', 'Муус устар', 'Ыам ыйын', - 'Бэс ыйын', 'От ыйын', 'Атырдьых ыйын', - 'Балаҕан ыйын', 'Алтынньы', 'Сэтинньи', - 'Ахсынньы'], + 'Кулун тутар', 'Муус устар', 'Ыам ыйын', + 'Бэс ыйын', 'От ыйын', 'Атырдьых ыйын', + 'Балаҕан ыйын', 'Алтынньы', 'Сэтинньи', + 'Ахсынньы'], SHORTMONTHS: ['Тохс', 'Олун', 'Клн_ттр', 'Мус_уст', - 'Ыам_йн', 'Бэс_йн', 'От_йн', 'Атрдь_йн', - 'Блҕн_йн', 'Алт', 'Сэт', 'Ахс'], + 'Ыам_йн', 'Бэс_йн', 'От_йн', 'Атрдь_йн', + 'Блҕн_йн', 'Алт', 'Сэт', 'Ахс'], STANDALONESHORTMONTHS: ['Тохс', 'Олун', 'Клн_ттр', - 'Мус_уст', 'Ыам_йн', 'Бэс_йн', 'От_йн', - 'Атрдь_йн', 'Блҕн_йн', 'Алт', 'Сэт', 'Ахс'], + 'Мус_уст', 'Ыам_йн', 'Бэс_йн', 'От_йн', + 'Атрдь_йн', 'Блҕн_йн', 'Алт', 'Сэт', 'Ахс'], WEEKDAYS: ['Баскыһыанньа', 'Бэнидиэлинньик', - 'Оптуорунньук', 'Сэрэдэ', 'Чэппиэр', - 'Бээтиҥсэ', 'Субуота'], + 'Оптуорунньук', 'Сэрэдэ', 'Чэппиэр', + 'Бээтиҥсэ', 'Субуота'], STANDALONEWEEKDAYS: ['Баскыһыанньа', - 'Бэнидиэлинньик', 'Оптуорунньук', - 'Сэрэдэ', 'Чэппиэр', 'Бээтиҥсэ', 'Субуота'], + 'Бэнидиэлинньик', 'Оптуорунньук', 'Сэрэдэ', + 'Чэппиэр', 'Бээтиҥсэ', 'Субуота'], SHORTWEEKDAYS: ['Бс', 'Бн', 'Оп', 'Сэ', 'Чп', 'Бэ', 'Сб'], STANDALONESHORTWEEKDAYS: ['Бс', 'Бн', 'Оп', 'Сэ', 'Чп', 'Бэ', - 'Сб'], + 'Сб'], NARROWWEEKDAYS: ['Б', 'Б', 'О', 'С', 'Ч', 'Б', 'С'], STANDALONENARROWWEEKDAYS: ['Б', 'Б', 'О', 'С', 'Ч', 'Б', 'С'], SHORTQUARTERS: ['1-кы кб', '2-с кб', '3-с кб', '4-с кб'], QUARTERS: ['1-кы кыбаартал', '2-с кыбаартал', - '3-с кыбаартал', '4-с кыбаартал'], + '3-с кыбаартал', '4-с кыбаартал'], AMPMS: ['ЭИ', 'ЭК'], DATEFORMATS: ['y \'сыл\' MMMM d \'күнэ\', EEEE', 'y, MMMM d', - 'y, MMM d', 'yy/M/d'], + 'y, MMM d', 'yy/M/d'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -11255,23 +15314,23 @@ goog.i18n.DateTimeSymbols_saq = { ERANAMES: ['Kabla ya Christo', 'Baada ya Christo'], NARROWMONTHS: ['O', 'W', 'O', 'O', 'I', 'I', 'S', 'I', 'S', 'T', 'T', 'T'], STANDALONENARROWMONTHS: ['O', 'W', 'O', 'O', 'I', 'I', 'S', 'I', 'S', 'T', - 'T', 'T'], + 'T', 'T'], MONTHS: ['Lapa le obo', 'Lapa le waare', 'Lapa le okuni', 'Lapa le ong\'wan', - 'Lapa le imet', 'Lapa le ile', 'Lapa le sapa', 'Lapa le isiet', - 'Lapa le saal', 'Lapa le tomon', 'Lapa le tomon obo', - 'Lapa le tomon waare'], + 'Lapa le imet', 'Lapa le ile', 'Lapa le sapa', 'Lapa le isiet', + 'Lapa le saal', 'Lapa le tomon', 'Lapa le tomon obo', + 'Lapa le tomon waare'], STANDALONEMONTHS: ['Lapa le obo', 'Lapa le waare', 'Lapa le okuni', - 'Lapa le ong\'wan', 'Lapa le imet', 'Lapa le ile', 'Lapa le sapa', - 'Lapa le isiet', 'Lapa le saal', 'Lapa le tomon', 'Lapa le tomon obo', - 'Lapa le tomon waare'], + 'Lapa le ong\'wan', 'Lapa le imet', 'Lapa le ile', 'Lapa le sapa', + 'Lapa le isiet', 'Lapa le saal', 'Lapa le tomon', 'Lapa le tomon obo', + 'Lapa le tomon waare'], SHORTMONTHS: ['Obo', 'Waa', 'Oku', 'Ong', 'Ime', 'Ile', 'Sap', 'Isi', 'Saa', - 'Tom', 'Tob', 'Tow'], + 'Tom', 'Tob', 'Tow'], STANDALONESHORTMONTHS: ['Obo', 'Waa', 'Oku', 'Ong', 'Ime', 'Ile', 'Sap', - 'Isi', 'Saa', 'Tom', 'Tob', 'Tow'], + 'Isi', 'Saa', 'Tom', 'Tob', 'Tow'], WEEKDAYS: ['Mderot ee are', 'Mderot ee kuni', 'Mderot ee ong\'wan', - 'Mderot ee inet', 'Mderot ee ile', 'Mderot ee sapa', 'Mderot ee kwe'], + 'Mderot ee inet', 'Mderot ee ile', 'Mderot ee sapa', 'Mderot ee kwe'], STANDALONEWEEKDAYS: ['Mderot ee are', 'Mderot ee kuni', 'Mderot ee ong\'wan', - 'Mderot ee inet', 'Mderot ee ile', 'Mderot ee sapa', 'Mderot ee kwe'], + 'Mderot ee inet', 'Mderot ee ile', 'Mderot ee sapa', 'Mderot ee kwe'], SHORTWEEKDAYS: ['Are', 'Kun', 'Ong', 'Ine', 'Ile', 'Sap', 'Kwe'], STANDALONESHORTWEEKDAYS: ['Are', 'Kun', 'Ong', 'Ine', 'Ile', 'Sap', 'Kwe'], NARROWWEEKDAYS: ['A', 'K', 'O', 'I', 'I', 'S', 'K'], @@ -11279,8 +15338,9 @@ goog.i18n.DateTimeSymbols_saq = { SHORTQUARTERS: ['R1', 'R2', 'R3', 'R4'], QUARTERS: ['Robo 1', 'Robo 2', 'Robo 3', 'Robo 4'], AMPMS: ['Tesiran', 'Teipa'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -11301,21 +15361,21 @@ goog.i18n.DateTimeSymbols_sbp = { ERANAMES: ['Ashanali uKilisito', 'Pamwandi ya Kilisto'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['Mupalangulwa', 'Mwitope', 'Mushende', 'Munyi', 'Mushende Magali', - 'Mujimbi', 'Mushipepo', 'Mupuguto', 'Munyense', 'Mokhu', 'Musongandembwe', - 'Muhaano'], + 'Mujimbi', 'Mushipepo', 'Mupuguto', 'Munyense', 'Mokhu', 'Musongandembwe', + 'Muhaano'], STANDALONEMONTHS: ['Mupalangulwa', 'Mwitope', 'Mushende', 'Munyi', - 'Mushende Magali', 'Mujimbi', 'Mushipepo', 'Mupuguto', 'Munyense', - 'Mokhu', 'Musongandembwe', 'Muhaano'], + 'Mushende Magali', 'Mujimbi', 'Mushipepo', 'Mupuguto', 'Munyense', 'Mokhu', + 'Musongandembwe', 'Muhaano'], SHORTMONTHS: ['Mup', 'Mwi', 'Msh', 'Mun', 'Mag', 'Muj', 'Msp', 'Mpg', 'Mye', - 'Mok', 'Mus', 'Muh'], + 'Mok', 'Mus', 'Muh'], STANDALONESHORTMONTHS: ['Mup', 'Mwi', 'Msh', 'Mun', 'Mag', 'Muj', 'Msp', - 'Mpg', 'Mye', 'Mok', 'Mus', 'Muh'], + 'Mpg', 'Mye', 'Mok', 'Mus', 'Muh'], WEEKDAYS: ['Mulungu', 'Jumatatu', 'Jumanne', 'Jumatano', 'Alahamisi', - 'Ijumaa', 'Jumamosi'], + 'Ijumaa', 'Jumamosi'], STANDALONEWEEKDAYS: ['Mulungu', 'Jumatatu', 'Jumanne', 'Jumatano', - 'Alahamisi', 'Ijumaa', 'Jumamosi'], + 'Alahamisi', 'Ijumaa', 'Jumamosi'], SHORTWEEKDAYS: ['Mul', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'], STANDALONESHORTWEEKDAYS: ['Mul', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'], NARROWWEEKDAYS: ['M', 'J', 'J', 'J', 'A', 'I', 'J'], @@ -11323,8 +15383,9 @@ goog.i18n.DateTimeSymbols_sbp = { SHORTQUARTERS: ['L1', 'L2', 'L3', 'L4'], QUARTERS: ['Lobo 1', 'Lobo 2', 'Lobo 3', 'Lobo 4'], AMPMS: ['Lwamilawu', 'Pashamihe'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -11345,32 +15406,33 @@ goog.i18n.DateTimeSymbols_se = { ERANAMES: ['ovdal Kristtusa', 'maŋŋel Kristtusa'], NARROWMONTHS: ['O', 'G', 'N', 'C', 'M', 'G', 'S', 'B', 'Č', 'G', 'S', 'J'], STANDALONENARROWMONTHS: ['O', 'G', 'N', 'C', 'M', 'G', 'S', 'B', 'Č', 'G', - 'S', 'J'], + 'S', 'J'], MONTHS: ['ođđajagemánnu', 'guovvamánnu', 'njukčamánnu', 'cuoŋománnu', - 'miessemánnu', 'geassemánnu', 'suoidnemánnu', 'borgemánnu', - 'čakčamánnu', 'golggotmánnu', 'skábmamánnu', 'juovlamánnu'], + 'miessemánnu', 'geassemánnu', 'suoidnemánnu', 'borgemánnu', + 'čakčamánnu', 'golggotmánnu', 'skábmamánnu', 'juovlamánnu'], STANDALONEMONTHS: ['ođđajagemánnu', 'guovvamánnu', 'njukčamánnu', - 'cuoŋománnu', 'miessemánnu', 'geassemánnu', 'suoidnemánnu', - 'borgemánnu', 'čakčamánnu', 'golggotmánnu', 'skábmamánnu', - 'juovlamánnu'], + 'cuoŋománnu', 'miessemánnu', 'geassemánnu', 'suoidnemánnu', + 'borgemánnu', 'čakčamánnu', 'golggotmánnu', 'skábmamánnu', + 'juovlamánnu'], SHORTMONTHS: ['ođđj', 'guov', 'njuk', 'cuo', 'mies', 'geas', 'suoi', 'borg', - 'čakč', 'golg', 'skáb', 'juov'], + 'čakč', 'golg', 'skáb', 'juov'], STANDALONESHORTMONTHS: ['ođđj', 'guov', 'njuk', 'cuo', 'mies', 'geas', - 'suoi', 'borg', 'čakč', 'golg', 'skáb', 'juov'], + 'suoi', 'borg', 'čakč', 'golg', 'skáb', 'juov'], WEEKDAYS: ['sotnabeaivi', 'vuossárga', 'maŋŋebárga', 'gaskavahkku', - 'duorasdat', 'bearjadat', 'lávvardat'], + 'duorasdat', 'bearjadat', 'lávvardat'], STANDALONEWEEKDAYS: ['sotnabeaivi', 'vuossárga', 'maŋŋebárga', - 'gaskavahkku', 'duorasdat', 'bearjadat', 'lávvardat'], + 'gaskavahkku', 'duorasdat', 'bearjadat', 'lávvardat'], SHORTWEEKDAYS: ['sotn', 'vuos', 'maŋ', 'gask', 'duor', 'bear', 'láv'], STANDALONESHORTWEEKDAYS: ['sotn', 'vuos', 'maŋ', 'gask', 'duor', 'bear', - 'láv'], + 'láv'], NARROWWEEKDAYS: ['S', 'V', 'M', 'G', 'D', 'B', 'L'], STANDALONENARROWWEEKDAYS: ['S', 'V', 'M', 'G', 'D', 'B', 'L'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['iđitbeaivet', 'eahketbeaivet'], - DATEFORMATS: ['EEEE, y MMMM dd', 'y MMMM d', 'y MMM d', 'yyyy-MM-dd'], + DATEFORMATS: ['y MMMM d, EEEE', 'y MMMM d', 'y MMM d', 'y-MM-dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -11385,32 +15447,33 @@ goog.i18n.DateTimeSymbols_se_FI = { ERANAMES: ['ovdal Kristtusa', 'maŋŋel Kristtusa'], NARROWMONTHS: ['O', 'G', 'N', 'C', 'M', 'G', 'S', 'B', 'Č', 'G', 'S', 'J'], STANDALONENARROWMONTHS: ['O', 'G', 'N', 'C', 'M', 'G', 'S', 'B', 'Č', 'G', - 'S', 'J'], + 'S', 'J'], MONTHS: ['ođđajagemánnu', 'guovvamánnu', 'njukčamánnu', 'cuoŋománnu', - 'miessemánnu', 'geassemánnu', 'suoidnemánnu', 'borgemánnu', - 'čakčamánnu', 'golggotmánnu', 'skábmamánnu', 'juovlamánnu'], + 'miessemánnu', 'geassemánnu', 'suoidnemánnu', 'borgemánnu', + 'čakčamánnu', 'golggotmánnu', 'skábmamánnu', 'juovlamánnu'], STANDALONEMONTHS: ['ođđajagemánnu', 'guovvamánnu', 'njukčamánnu', - 'cuoŋománnu', 'miessemánnu', 'geassemánnu', 'suoidnemánnu', - 'borgemánnu', 'čakčamánnu', 'golggotmánnu', 'skábmamánnu', - 'juovlamánnu'], + 'cuoŋománnu', 'miessemánnu', 'geassemánnu', 'suoidnemánnu', + 'borgemánnu', 'čakčamánnu', 'golggotmánnu', 'skábmamánnu', + 'juovlamánnu'], SHORTMONTHS: ['ođđajage', 'guovva', 'njukča', 'cuoŋo', 'miesse', 'geasse', - 'suoidne', 'borge', 'čakča', 'golggot', 'skábma', 'juovla'], + 'suoidne', 'borge', 'čakča', 'golggot', 'skábma', 'juovla'], STANDALONESHORTMONTHS: ['ođđajage', 'guovva', 'njukča', 'cuoŋo', 'miesse', - 'geasse', 'suoidne', 'borge', 'čakča', 'golggot', 'skábma', 'juovla'], + 'geasse', 'suoidne', 'borge', 'čakča', 'golggot', 'skábma', 'juovla'], WEEKDAYS: ['aejlege', 'måanta', 'däjsta', 'gaskevahkoe', 'dåarsta', - 'bearjadahke', 'laavadahke'], + 'bearjadahke', 'laavadahke'], STANDALONEWEEKDAYS: ['aejlege', 'måanta', 'däjsta', 'gaskevahkoe', - 'dåarsta', 'bearjadahke', 'laavadahke'], + 'dåarsta', 'bearjadahke', 'laavadahke'], SHORTWEEKDAYS: ['sotn', 'vuos', 'maŋ', 'gask', 'duor', 'bear', 'láv'], STANDALONESHORTWEEKDAYS: ['sotn', 'vuos', 'maŋ', 'gask', 'duor', 'bear', - 'láv'], + 'láv'], NARROWWEEKDAYS: ['S', 'M', 'D', 'G', 'D', 'B', 'L'], STANDALONENARROWWEEKDAYS: ['S', 'M', 'D', 'G', 'D', 'B', 'L'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['iđitbeaivet', 'eahketbeaivet'], - DATEFORMATS: ['EEEE, y MMMM dd', 'y MMMM d', 'y MMM d', 'yyyy-MM-dd'], + DATEFORMATS: ['y MMMM d, EEEE', 'y MMMM d', 'y MMM d', 'y-MM-dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -11431,19 +15494,19 @@ goog.i18n.DateTimeSymbols_seh = { ERANAMES: ['Antes de Cristo', 'Anno Domini'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Janeiro', 'Fevreiro', 'Marco', 'Abril', 'Maio', 'Junho', 'Julho', - 'Augusto', 'Setembro', 'Otubro', 'Novembro', 'Decembro'], + 'Augusto', 'Setembro', 'Otubro', 'Novembro', 'Decembro'], STANDALONEMONTHS: ['Janeiro', 'Fevreiro', 'Marco', 'Abril', 'Maio', 'Junho', - 'Julho', 'Augusto', 'Setembro', 'Otubro', 'Novembro', 'Decembro'], + 'Julho', 'Augusto', 'Setembro', 'Otubro', 'Novembro', 'Decembro'], SHORTMONTHS: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Aug', 'Set', - 'Otu', 'Nov', 'Dec'], + 'Otu', 'Nov', 'Dec'], STANDALONESHORTMONTHS: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', - 'Aug', 'Set', 'Otu', 'Nov', 'Dec'], + 'Aug', 'Set', 'Otu', 'Nov', 'Dec'], WEEKDAYS: ['Dimingu', 'Chiposi', 'Chipiri', 'Chitatu', 'Chinai', 'Chishanu', - 'Sabudu'], + 'Sabudu'], STANDALONEWEEKDAYS: ['Dimingu', 'Chiposi', 'Chipiri', 'Chitatu', 'Chinai', - 'Chishanu', 'Sabudu'], + 'Chishanu', 'Sabudu'], SHORTWEEKDAYS: ['Dim', 'Pos', 'Pir', 'Tat', 'Nai', 'Sha', 'Sab'], STANDALONESHORTWEEKDAYS: ['Dim', 'Pos', 'Pir', 'Tat', 'Nai', 'Sha', 'Sab'], NARROWWEEKDAYS: ['D', 'P', 'C', 'T', 'N', 'S', 'S'], @@ -11452,8 +15515,9 @@ goog.i18n.DateTimeSymbols_seh = { QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, d \'de\' MMMM \'de\' y', 'd \'de\' MMMM \'de\' y', - 'd \'de\' MMM \'de\' y', 'd/M/yyyy'], + 'd \'de\' MMM \'de\' y', 'd/M/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -11474,20 +15538,20 @@ goog.i18n.DateTimeSymbols_ses = { ERANAMES: ['Isaa jine', 'Isaa zamanoo'], NARROWMONTHS: ['Ž', 'F', 'M', 'A', 'M', 'Ž', 'Ž', 'U', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['Ž', 'F', 'M', 'A', 'M', 'Ž', 'Ž', 'U', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Žanwiye', 'Feewiriye', 'Marsi', 'Awiril', 'Me', 'Žuweŋ', - 'Žuyye', 'Ut', 'Sektanbur', 'Oktoobur', 'Noowanbur', 'Deesanbur'], + 'Žuyye', 'Ut', 'Sektanbur', 'Oktoobur', 'Noowanbur', 'Deesanbur'], STANDALONEMONTHS: ['Žanwiye', 'Feewiriye', 'Marsi', 'Awiril', 'Me', - 'Žuweŋ', 'Žuyye', 'Ut', 'Sektanbur', 'Oktoobur', 'Noowanbur', - 'Deesanbur'], + 'Žuweŋ', 'Žuyye', 'Ut', 'Sektanbur', 'Oktoobur', 'Noowanbur', + 'Deesanbur'], SHORTMONTHS: ['Žan', 'Fee', 'Mar', 'Awi', 'Me', 'Žuw', 'Žuy', 'Ut', 'Sek', - 'Okt', 'Noo', 'Dee'], + 'Okt', 'Noo', 'Dee'], STANDALONESHORTMONTHS: ['Žan', 'Fee', 'Mar', 'Awi', 'Me', 'Žuw', 'Žuy', - 'Ut', 'Sek', 'Okt', 'Noo', 'Dee'], + 'Ut', 'Sek', 'Okt', 'Noo', 'Dee'], WEEKDAYS: ['Alhadi', 'Atinni', 'Atalaata', 'Alarba', 'Alhamiisa', 'Alzuma', - 'Asibti'], + 'Asibti'], STANDALONEWEEKDAYS: ['Alhadi', 'Atinni', 'Atalaata', 'Alarba', 'Alhamiisa', - 'Alzuma', 'Asibti'], + 'Alzuma', 'Asibti'], SHORTWEEKDAYS: ['Alh', 'Ati', 'Ata', 'Ala', 'Alm', 'Alz', 'Asi'], STANDALONESHORTWEEKDAYS: ['Alh', 'Ati', 'Ata', 'Ala', 'Alm', 'Alz', 'Asi'], NARROWWEEKDAYS: ['H', 'T', 'T', 'L', 'L', 'L', 'S'], @@ -11495,8 +15559,9 @@ goog.i18n.DateTimeSymbols_ses = { SHORTQUARTERS: ['A1', 'A2', 'A3', 'A4'], QUARTERS: ['Arrubu 1', 'Arrubu 2', 'Arrubu 3', 'Arrubu 4'], AMPMS: ['Adduha', 'Aluula'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM, y', 'd/M/yyyy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM, y', 'd/M/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -11517,30 +15582,31 @@ goog.i18n.DateTimeSymbols_sg = { ERANAMES: ['Kôzo na Krîstu', 'Na pekô tî Krîstu'], NARROWMONTHS: ['N', 'F', 'M', 'N', 'B', 'F', 'L', 'K', 'M', 'N', 'N', 'K'], STANDALONENARROWMONTHS: ['N', 'F', 'M', 'N', 'B', 'F', 'L', 'K', 'M', 'N', - 'N', 'K'], + 'N', 'K'], MONTHS: ['Nyenye', 'Fulundïgi', 'Mbängü', 'Ngubùe', 'Bêläwü', 'Föndo', - 'Lengua', 'Kükürü', 'Mvuka', 'Ngberere', 'Nabändüru', 'Kakauka'], + 'Lengua', 'Kükürü', 'Mvuka', 'Ngberere', 'Nabändüru', 'Kakauka'], STANDALONEMONTHS: ['Nyenye', 'Fulundïgi', 'Mbängü', 'Ngubùe', 'Bêläwü', - 'Föndo', 'Lengua', 'Kükürü', 'Mvuka', 'Ngberere', 'Nabändüru', - 'Kakauka'], + 'Föndo', 'Lengua', 'Kükürü', 'Mvuka', 'Ngberere', 'Nabändüru', + 'Kakauka'], SHORTMONTHS: ['Nye', 'Ful', 'Mbä', 'Ngu', 'Bêl', 'Fön', 'Len', 'Kük', - 'Mvu', 'Ngb', 'Nab', 'Kak'], + 'Mvu', 'Ngb', 'Nab', 'Kak'], STANDALONESHORTMONTHS: ['Nye', 'Ful', 'Mbä', 'Ngu', 'Bêl', 'Fön', 'Len', - 'Kük', 'Mvu', 'Ngb', 'Nab', 'Kak'], + 'Kük', 'Mvu', 'Ngb', 'Nab', 'Kak'], WEEKDAYS: ['Bikua-ôko', 'Bïkua-ûse', 'Bïkua-ptâ', 'Bïkua-usïö', - 'Bïkua-okü', 'Lâpôsö', 'Lâyenga'], + 'Bïkua-okü', 'Lâpôsö', 'Lâyenga'], STANDALONEWEEKDAYS: ['Bikua-ôko', 'Bïkua-ûse', 'Bïkua-ptâ', - 'Bïkua-usïö', 'Bïkua-okü', 'Lâpôsö', 'Lâyenga'], + 'Bïkua-usïö', 'Bïkua-okü', 'Lâpôsö', 'Lâyenga'], SHORTWEEKDAYS: ['Bk1', 'Bk2', 'Bk3', 'Bk4', 'Bk5', 'Lâp', 'Lây'], STANDALONESHORTWEEKDAYS: ['Bk1', 'Bk2', 'Bk3', 'Bk4', 'Bk5', 'Lâp', 'Lây'], NARROWWEEKDAYS: ['K', 'S', 'T', 'S', 'K', 'P', 'Y'], STANDALONENARROWWEEKDAYS: ['K', 'S', 'T', 'S', 'K', 'P', 'Y'], SHORTQUARTERS: ['F4-1', 'F4-2', 'F4-3', 'F4-4'], QUARTERS: ['Fângbisïö ôko', 'Fângbisïö ûse', 'Fângbisïö otâ', - 'Fângbisïö usïö'], + 'Fângbisïö usïö'], AMPMS: ['ND', 'LK'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM, y', 'd/M/yyyy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM, y', 'd/M/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -11557,34 +15623,45 @@ goog.i18n.DateTimeSymbols_sg_CF = goog.i18n.DateTimeSymbols_sg; * Date/time formatting symbols for locale shi. */ goog.i18n.DateTimeSymbols_shi = { - ERAS: ['daɛ', 'dfɛ'], - ERANAMES: ['dat n ɛisa', 'dffir n ɛisa'], - NARROWMONTHS: ['i', 'b', 'm', 'i', 'm', 'y', 'y', 'ɣ', 'c', 'k', 'n', 'd'], - STANDALONENARROWMONTHS: ['i', 'b', 'm', 'i', 'm', 'y', 'y', 'ɣ', 'c', 'k', - 'n', 'd'], - MONTHS: ['innayr', 'bṛayṛ', 'maṛṣ', 'ibrir', 'mayyu', 'yunyu', - 'yulyuz', 'ɣuct', 'cutanbir', 'ktubr', 'nuwanbir', 'dujanbir'], - STANDALONEMONTHS: ['innayr', 'bṛayṛ', 'maṛṣ', 'ibrir', 'mayyu', - 'yunyu', 'yulyuz', 'ɣuct', 'cutanbir', 'ktubr', 'nuwanbir', 'dujanbir'], - SHORTMONTHS: ['inn', 'bṛa', 'maṛ', 'ibr', 'may', 'yun', 'yul', 'ɣuc', - 'cut', 'ktu', 'nuw', 'duj'], - STANDALONESHORTMONTHS: ['inn', 'bṛa', 'maṛ', 'ibr', 'may', 'yun', 'yul', - 'ɣuc', 'cut', 'ktu', 'nuw', 'duj'], - WEEKDAYS: ['asamas', 'aynas', 'asinas', 'akṛas', 'akwas', 'asimwas', - 'asiḍyas'], - STANDALONEWEEKDAYS: ['asamas', 'aynas', 'asinas', 'akṛas', 'akwas', - 'asimwas', 'asiḍyas'], - SHORTWEEKDAYS: ['asa', 'ayn', 'asi', 'akṛ', 'akw', 'asim', 'asiḍ'], - STANDALONESHORTWEEKDAYS: ['asa', 'ayn', 'asi', 'akṛ', 'akw', 'asim', - 'asiḍ'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - SHORTQUARTERS: ['ak 1', 'ak 2', 'ak 3', 'ak 4'], - QUARTERS: ['akṛaḍyur 1', 'akṛaḍyur 2', 'akṛaḍyur 3', - 'akṛaḍyur 4'], - AMPMS: ['tifawt', 'tadggʷat'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM, y', 'd/M/yyyy'], + ERAS: ['ⴷⴰⵄ', 'ⴷⴼⵄ'], + ERANAMES: ['ⴷⴰⵜ ⵏ ⵄⵉⵙⴰ', 'ⴷⴼⴼⵉⵔ ⵏ ⵄⵉⵙⴰ'], + NARROWMONTHS: ['ⵉ', 'ⴱ', 'ⵎ', 'ⵉ', 'ⵎ', 'ⵢ', 'ⵢ', 'ⵖ', 'ⵛ', + 'ⴽ', 'ⵏ', 'ⴷ'], + STANDALONENARROWMONTHS: ['ⵉ', 'ⴱ', 'ⵎ', 'ⵉ', 'ⵎ', 'ⵢ', 'ⵢ', + 'ⵖ', 'ⵛ', 'ⴽ', 'ⵏ', 'ⴷ'], + MONTHS: ['ⵉⵏⵏⴰⵢⵔ', 'ⴱⵕⴰⵢⵕ', 'ⵎⴰⵕⵚ', + 'ⵉⴱⵔⵉⵔ', 'ⵎⴰⵢⵢⵓ', 'ⵢⵓⵏⵢⵓ', + 'ⵢⵓⵍⵢⵓⵣ', 'ⵖⵓⵛⵜ', 'ⵛⵓⵜⴰⵏⴱⵉⵔ', + 'ⴽⵜⵓⴱⵔ', 'ⵏⵓⵡⴰⵏⴱⵉⵔ', 'ⴷⵓⵊⴰⵏⴱⵉⵔ'], + STANDALONEMONTHS: ['ⵉⵏⵏⴰⵢⵔ', 'ⴱⵕⴰⵢⵕ', 'ⵎⴰⵕⵚ', + 'ⵉⴱⵔⵉⵔ', 'ⵎⴰⵢⵢⵓ', 'ⵢⵓⵏⵢⵓ', + 'ⵢⵓⵍⵢⵓⵣ', 'ⵖⵓⵛⵜ', 'ⵛⵓⵜⴰⵏⴱⵉⵔ', + 'ⴽⵜⵓⴱⵔ', 'ⵏⵓⵡⴰⵏⴱⵉⵔ', 'ⴷⵓⵊⴰⵏⴱⵉⵔ'], + SHORTMONTHS: ['ⵉⵏⵏ', 'ⴱⵕⴰ', 'ⵎⴰⵕ', 'ⵉⴱⵔ', 'ⵎⴰⵢ', + 'ⵢⵓⵏ', 'ⵢⵓⵍ', 'ⵖⵓⵛ', 'ⵛⵓⵜ', 'ⴽⵜⵓ', + 'ⵏⵓⵡ', 'ⴷⵓⵊ'], + STANDALONESHORTMONTHS: ['ⵉⵏⵏ', 'ⴱⵕⴰ', 'ⵎⴰⵕ', 'ⵉⴱⵔ', + 'ⵎⴰⵢ', 'ⵢⵓⵏ', 'ⵢⵓⵍ', 'ⵖⵓⵛ', 'ⵛⵓⵜ', + 'ⴽⵜⵓ', 'ⵏⵓⵡ', 'ⴷⵓⵊ'], + WEEKDAYS: ['ⴰⵙⴰⵎⴰⵙ', 'ⴰⵢⵏⴰⵙ', 'ⴰⵙⵉⵏⴰⵙ', + 'ⴰⴽⵕⴰⵙ', 'ⴰⴽⵡⴰⵙ', 'ⵙⵉⵎⵡⴰⵙ', + 'ⴰⵙⵉⴹⵢⴰⵙ'], + STANDALONEWEEKDAYS: ['ⴰⵙⴰⵎⴰⵙ', 'ⴰⵢⵏⴰⵙ', + 'ⴰⵙⵉⵏⴰⵙ', 'ⴰⴽⵕⴰⵙ', 'ⴰⴽⵡⴰⵙ', + 'ⵙⵉⵎⵡⴰⵙ', 'ⴰⵙⵉⴹⵢⴰⵙ'], + SHORTWEEKDAYS: ['ⴰⵙⴰ', 'ⴰⵢⵏ', 'ⴰⵙⵉ', 'ⴰⴽⵕ', + 'ⴰⴽⵡ', 'ⴰⵙⵉⵎ', 'ⴰⵙⵉⴹ'], + STANDALONESHORTWEEKDAYS: ['ⴰⵙⴰ', 'ⴰⵢⵏ', 'ⴰⵙⵉ', 'ⴰⴽⵕ', + 'ⴰⴽⵡ', 'ⴰⵙⵉⵎ', 'ⴰⵙⵉⴹ'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['ⴰⴽ 1', 'ⴰⴽ 2', 'ⴰⴽ 3', 'ⴰⴽ 4'], + QUARTERS: ['ⴰⴽⵕⴰⴹⵢⵓⵔ 1', 'ⴰⴽⵕⴰⴹⵢⵓⵔ 2', + 'ⴰⴽⵕⴰⴹⵢⵓⵔ 3', 'ⴰⴽⵕⴰⴹⵢⵓⵔ 4'], + AMPMS: ['ⵜⵉⴼⴰⵡⵜ', 'ⵜⴰⴷⴳⴳⵯⴰⵜ'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM, y', 'd/M/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -11594,69 +15671,58 @@ goog.i18n.DateTimeSymbols_shi = { /** * Date/time formatting symbols for locale shi_Latn. */ -goog.i18n.DateTimeSymbols_shi_Latn = goog.i18n.DateTimeSymbols_shi; - - -/** - * Date/time formatting symbols for locale shi_Latn_MA. - */ -goog.i18n.DateTimeSymbols_shi_Latn_MA = goog.i18n.DateTimeSymbols_shi; - - -/** - * Date/time formatting symbols for locale shi_Tfng. - */ -goog.i18n.DateTimeSymbols_shi_Tfng = { - ERAS: ['ⴷⴰⵄ', 'ⴷⴼⵄ'], - ERANAMES: ['ⴷⴰⵜ ⵏ ⵄⵉⵙⴰ', 'ⴷⴼⴼⵉⵔ ⵏ ⵄⵉⵙⴰ'], - NARROWMONTHS: ['ⵉ', 'ⴱ', 'ⵎ', 'ⵉ', 'ⵎ', 'ⵢ', 'ⵢ', 'ⵖ', 'ⵛ', - 'ⴽ', 'ⵏ', 'ⴷ'], - STANDALONENARROWMONTHS: ['ⵉ', 'ⴱ', 'ⵎ', 'ⵉ', 'ⵎ', 'ⵢ', 'ⵢ', - 'ⵖ', 'ⵛ', 'ⴽ', 'ⵏ', 'ⴷ'], - MONTHS: ['ⵉⵏⵏⴰⵢⵔ', 'ⴱⵕⴰⵢⵕ', 'ⵎⴰⵕⵚ', - 'ⵉⴱⵔⵉⵔ', 'ⵎⴰⵢⵢⵓ', 'ⵢⵓⵏⵢⵓ', - 'ⵢⵓⵍⵢⵓⵣ', 'ⵖⵓⵛⵜ', 'ⵛⵓⵜⴰⵏⴱⵉⵔ', - 'ⴽⵜⵓⴱⵔ', 'ⵏⵓⵡⴰⵏⴱⵉⵔ', - 'ⴷⵓⵊⴰⵏⴱⵉⵔ'], - STANDALONEMONTHS: ['ⵉⵏⵏⴰⵢⵔ', 'ⴱⵕⴰⵢⵕ', 'ⵎⴰⵕⵚ', - 'ⵉⴱⵔⵉⵔ', 'ⵎⴰⵢⵢⵓ', 'ⵢⵓⵏⵢⵓ', - 'ⵢⵓⵍⵢⵓⵣ', 'ⵖⵓⵛⵜ', 'ⵛⵓⵜⴰⵏⴱⵉⵔ', - 'ⴽⵜⵓⴱⵔ', 'ⵏⵓⵡⴰⵏⴱⵉⵔ', - 'ⴷⵓⵊⴰⵏⴱⵉⵔ'], - SHORTMONTHS: ['ⵉⵏⵏ', 'ⴱⵕⴰ', 'ⵎⴰⵕ', 'ⵉⴱⵔ', 'ⵎⴰⵢ', - 'ⵢⵓⵏ', 'ⵢⵓⵍ', 'ⵖⵓⵛ', 'ⵛⵓⵜ', 'ⴽⵜⵓ', - 'ⵏⵓⵡ', 'ⴷⵓⵊ'], - STANDALONESHORTMONTHS: ['ⵉⵏⵏ', 'ⴱⵕⴰ', 'ⵎⴰⵕ', 'ⵉⴱⵔ', - 'ⵎⴰⵢ', 'ⵢⵓⵏ', 'ⵢⵓⵍ', 'ⵖⵓⵛ', 'ⵛⵓⵜ', - 'ⴽⵜⵓ', 'ⵏⵓⵡ', 'ⴷⵓⵊ'], - WEEKDAYS: ['ⴰⵙⴰⵎⴰⵙ', 'ⴰⵢⵏⴰⵙ', 'ⴰⵙⵉⵏⴰⵙ', - 'ⴰⴽⵕⴰⵙ', 'ⴰⴽⵡⴰⵙ', 'ⵙⵉⵎⵡⴰⵙ', - 'ⴰⵙⵉⴹⵢⴰⵙ'], - STANDALONEWEEKDAYS: ['ⴰⵙⴰⵎⴰⵙ', 'ⴰⵢⵏⴰⵙ', - 'ⴰⵙⵉⵏⴰⵙ', 'ⴰⴽⵕⴰⵙ', 'ⴰⴽⵡⴰⵙ', - 'ⵙⵉⵎⵡⴰⵙ', 'ⴰⵙⵉⴹⵢⴰⵙ'], - SHORTWEEKDAYS: ['ⴰⵙⴰ', 'ⴰⵢⵏ', 'ⴰⵙⵉ', 'ⴰⴽⵕ', - 'ⴰⴽⵡ', 'ⴰⵙⵉⵎ', 'ⴰⵙⵉⴹ'], - STANDALONESHORTWEEKDAYS: ['ⴰⵙⴰ', 'ⴰⵢⵏ', 'ⴰⵙⵉ', 'ⴰⴽⵕ', - 'ⴰⴽⵡ', 'ⴰⵙⵉⵎ', 'ⴰⵙⵉⴹ'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - SHORTQUARTERS: ['ⴰⴽ 1', 'ⴰⴽ 2', 'ⴰⴽ 3', 'ⴰⴽ 4'], - QUARTERS: ['ⴰⴽⵕⴰⴹⵢⵓⵔ 1', 'ⴰⴽⵕⴰⴹⵢⵓⵔ 2', - 'ⴰⴽⵕⴰⴹⵢⵓⵔ 3', 'ⴰⴽⵕⴰⴹⵢⵓⵔ 4'], - AMPMS: ['ⵜⵉⴼⴰⵡⵜ', 'ⵜⴰⴷⴳⴳⵯⴰⵜ'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM, y', 'd/M/yyyy'], +goog.i18n.DateTimeSymbols_shi_Latn = { + ERAS: ['daɛ', 'dfɛ'], + ERANAMES: ['dat n ɛisa', 'dffir n ɛisa'], + NARROWMONTHS: ['i', 'b', 'm', 'i', 'm', 'y', 'y', 'ɣ', 'c', 'k', 'n', 'd'], + STANDALONENARROWMONTHS: ['i', 'b', 'm', 'i', 'm', 'y', 'y', 'ɣ', 'c', 'k', + 'n', 'd'], + MONTHS: ['innayr', 'bṛayṛ', 'maṛṣ', 'ibrir', 'mayyu', 'yunyu', + 'yulyuz', 'ɣuct', 'cutanbir', 'ktubr', 'nuwanbir', 'dujanbir'], + STANDALONEMONTHS: ['innayr', 'bṛayṛ', 'maṛṣ', 'ibrir', 'mayyu', + 'yunyu', 'yulyuz', 'ɣuct', 'cutanbir', 'ktubr', 'nuwanbir', 'dujanbir'], + SHORTMONTHS: ['inn', 'bṛa', 'maṛ', 'ibr', 'may', 'yun', 'yul', 'ɣuc', + 'cut', 'ktu', 'nuw', 'duj'], + STANDALONESHORTMONTHS: ['inn', 'bṛa', 'maṛ', 'ibr', 'may', 'yun', 'yul', + 'ɣuc', 'cut', 'ktu', 'nuw', 'duj'], + WEEKDAYS: ['asamas', 'aynas', 'asinas', 'akṛas', 'akwas', 'asimwas', + 'asiḍyas'], + STANDALONEWEEKDAYS: ['asamas', 'aynas', 'asinas', 'akṛas', 'akwas', + 'asimwas', 'asiḍyas'], + SHORTWEEKDAYS: ['asa', 'ayn', 'asi', 'akṛ', 'akw', 'asim', 'asiḍ'], + STANDALONESHORTWEEKDAYS: ['asa', 'ayn', 'asi', 'akṛ', 'akw', 'asim', + 'asiḍ'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + SHORTQUARTERS: ['ak 1', 'ak 2', 'ak 3', 'ak 4'], + QUARTERS: ['akṛaḍyur 1', 'akṛaḍyur 2', 'akṛaḍyur 3', + 'akṛaḍyur 4'], + AMPMS: ['tifawt', 'tadggʷat'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM, y', 'd/M/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 }; +/** + * Date/time formatting symbols for locale shi_Latn_MA. + */ +goog.i18n.DateTimeSymbols_shi_Latn_MA = goog.i18n.DateTimeSymbols_shi_Latn; + + +/** + * Date/time formatting symbols for locale shi_Tfng. + */ +goog.i18n.DateTimeSymbols_shi_Tfng = goog.i18n.DateTimeSymbols_shi; + + /** * Date/time formatting symbols for locale shi_Tfng_MA. */ -goog.i18n.DateTimeSymbols_shi_Tfng_MA = goog.i18n.DateTimeSymbols_shi_Tfng; +goog.i18n.DateTimeSymbols_shi_Tfng_MA = goog.i18n.DateTimeSymbols_shi; /** @@ -11665,52 +15731,51 @@ goog.i18n.DateTimeSymbols_shi_Tfng_MA = goog.i18n.DateTimeSymbols_shi_Tfng; goog.i18n.DateTimeSymbols_si = { ERAS: ['ක්‍රි.පූ.', 'ක්‍රි.ව.'], ERANAMES: ['ක්‍රිස්තු පූර්‍ව', - 'ක්‍රිස්තු වර්‍ෂ'], + 'ක්‍රිස්තු වර්‍ෂ'], NARROWMONTHS: ['ජ', 'පෙ', 'මා', 'අ', 'මැ', 'ජූ', 'ජූ', - 'අ', 'සැ', 'ඔ', 'නො', 'දෙ'], + 'අ', 'සැ', 'ඔ', 'නෙ', 'දෙ'], STANDALONENARROWMONTHS: ['ජ', 'පෙ', 'මා', 'අ', 'මැ', 'ජූ', - 'ජූ', 'අ', 'සැ', 'ඔ', 'නො', 'දෙ'], + 'ජූ', 'අ', 'සැ', 'ඔ', 'නෙ', 'දෙ'], MONTHS: ['ජනවාරි', 'පෙබරවාරි', - 'මාර්තු', 'අප්‍රේල්', 'මැයි', - 'ජූනි', 'ජූලි', 'අගෝස්තු', - 'සැප්තැම්බර්', 'ඔක්තෝබර්', - 'නොවැම්බර්', 'දෙසැම්බර්'], + 'මාර්තු', 'අප්‍රේල්', 'මැයි', + 'ජූනි', 'ජූලි', 'අගෝස්තු', + 'සැප්තැම්බර්', 'ඔක්තෝබර්', + 'නොවැම්බර්', 'දෙසැම්බර්'], STANDALONEMONTHS: ['ජනවාරි', 'පෙබරවාරි', - 'මාර්තු', 'අප්‍රේල්', 'මැයි', - 'ජූනි', 'ජූලි', 'අගෝස්තු', - 'සැප්තැම්බර්', 'ඔක්තෝබර්', - 'නොවැම්බර්', 'දෙසැම්බර්'], + 'මාර්තු', 'අප්‍රේල්', 'මැයි', + 'ජූනි', 'ජූලි', 'අගෝස්තු', + 'සැප්තැම්බර්', 'ඔක්තෝබර්', + 'නොවැම්බර්', 'දෙසැම්බර්'], SHORTMONTHS: ['ජන', 'පෙබ', 'මාර්තු', - 'අප්‍රේල්', 'මැයි', 'ජූනි', - 'ජූලි', 'අගෝ', 'සැප්', 'ඔක්', 'නොවැ', - 'දෙසැ'], + 'අප්‍රේල්', 'මැයි', 'ජූනි', 'ජූලි', + 'අගෝ', 'සැප්', 'ඔක්', 'නොවැ', 'දෙසැ'], STANDALONESHORTMONTHS: ['ජන', 'පෙබ', 'මාර්', - 'අප්‍රේල්', 'මැයි', 'ජූනි', - 'ජූලි', 'අගෝ', 'සැප්', 'ඔක්', 'නොවැ', - 'දෙසැ'], + 'අප්‍රේල්', 'මැයි', 'ජූනි', 'ජූලි', + 'අගෝ', 'සැප්', 'ඔක්', 'නොවැ', 'දෙසැ'], WEEKDAYS: ['ඉරිදා', 'සඳුදා', - 'අඟහරුවාදා', 'බදාදා', - 'බ්‍රහස්පතින්දා', 'සිකුරාදා', - 'සෙනසුරාදා'], + 'අඟහරුවාදා', 'බදාදා', + 'බ්‍රහස්පතින්දා', 'සිකුරාදා', + 'සෙනසුරාදා'], STANDALONEWEEKDAYS: ['ඉරිදා', 'සඳුදා', - 'අඟහරුවාදා', 'බදාදා', - 'බ්‍රහස්පතින්දා', 'සිකුරාදා', - 'සෙනසුරාදා'], + 'අඟහරුවාදා', 'බදාදා', + 'බ්‍රහස්පතින්දා', 'සිකුරාදා', + 'සෙනසුරාදා'], SHORTWEEKDAYS: ['ඉරි', 'සඳු', 'අඟ', 'බදා', - 'බ්‍රහ', 'සිකු', 'සෙන'], + 'බ්‍රහ', 'සිකු', 'සෙන'], STANDALONESHORTWEEKDAYS: ['ඉරි', 'සඳු', 'අඟ', 'බදා', - 'බ්‍රහ', 'සිකු', 'සෙන'], + 'බ්‍රහ', 'සිකු', 'සෙන'], NARROWWEEKDAYS: ['ඉ', 'ස', 'අ', 'බ', 'බ්‍ර', 'සි', - 'සෙ'], + 'සෙ'], STANDALONENARROWWEEKDAYS: ['ඉ', 'ස', 'අ', 'බ', 'බ්‍ර', - 'සි', 'සෙ'], + 'සි', 'සෙ'], SHORTQUARTERS: ['කාර්:1', 'කාර්:2', 'කාර්:3', - 'කාර්:4'], + 'කාර්:4'], QUARTERS: ['1 වන කාර්තුව', '2 වන කාර්තුව', - '3 වන කාර්තුව', '4 වන කාර්තුව'], + '3 වන කාර්තුව', '4 වන කාර්තුව'], AMPMS: ['පෙ.ව.', 'ප.ව.'], - DATEFORMATS: ['y MMMM d, EEEE', 'y MMMM d', 'y MMM d', 'yyyy/MM/dd'], - TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'a h.mm.ss', 'a h.mm'], + DATEFORMATS: ['y MMMM d, EEEE', 'y MMMM d', 'y MMM d', 'y/MM/dd'], + TIMEFORMATS: ['a HH:mm:ss zzzz', 'a h:mm:ss z', 'a h.mm.ss', 'a h.mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -11731,29 +15796,30 @@ goog.i18n.DateTimeSymbols_sk_SK = { ERANAMES: ['pred n.l.', 'n.l.'], NARROWMONTHS: ['j', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', 'n', 'd'], STANDALONENARROWMONTHS: ['j', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', - 'n', 'd'], + 'n', 'd'], MONTHS: ['januára', 'februára', 'marca', 'apríla', 'mája', 'júna', - 'júla', 'augusta', 'septembra', 'októbra', 'novembra', 'decembra'], + 'júla', 'augusta', 'septembra', 'októbra', 'novembra', 'decembra'], STANDALONEMONTHS: ['január', 'február', 'marec', 'apríl', 'máj', 'jún', - 'júl', 'august', 'september', 'október', 'november', 'december'], + 'júl', 'august', 'september', 'október', 'november', 'december'], SHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'máj', 'jún', 'júl', 'aug', - 'sep', 'okt', 'nov', 'dec'], + 'sep', 'okt', 'nov', 'dec'], STANDALONESHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'máj', 'jún', 'júl', - 'aug', 'sep', 'okt', 'nov', 'dec'], + 'aug', 'sep', 'okt', 'nov', 'dec'], WEEKDAYS: ['nedeľa', 'pondelok', 'utorok', 'streda', 'štvrtok', 'piatok', - 'sobota'], + 'sobota'], STANDALONEWEEKDAYS: ['nedeľa', 'pondelok', 'utorok', 'streda', 'štvrtok', - 'piatok', 'sobota'], + 'piatok', 'sobota'], SHORTWEEKDAYS: ['ne', 'po', 'ut', 'st', 'št', 'pi', 'so'], STANDALONESHORTWEEKDAYS: ['ne', 'po', 'ut', 'st', 'št', 'pi', 'so'], NARROWWEEKDAYS: ['N', 'P', 'U', 'S', 'Š', 'P', 'S'], STANDALONENARROWWEEKDAYS: ['N', 'P', 'U', 'S', 'Š', 'P', 'S'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['1. štvrťrok', '2. štvrťrok', '3. štvrťrok', - '4. štvrťrok'], + '4. štvrťrok'], AMPMS: ['dopoludnia', 'popoludní'], - DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'd.M.yyyy', 'd.M.yyyy'], + DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'd.M.y', 'd.M.y'], TIMEFORMATS: ['H:mm:ss zzzz', 'H:mm:ss z', 'H:mm:ss', 'H:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -11768,29 +15834,30 @@ goog.i18n.DateTimeSymbols_sl_SI = { ERANAMES: ['pred našim štetjem', 'naše štetje'], NARROWMONTHS: ['j', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', 'n', 'd'], STANDALONENARROWMONTHS: ['j', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', - 'n', 'd'], + 'n', 'd'], MONTHS: ['januar', 'februar', 'marec', 'april', 'maj', 'junij', 'julij', - 'avgust', 'september', 'oktober', 'november', 'december'], + 'avgust', 'september', 'oktober', 'november', 'december'], STANDALONEMONTHS: ['januar', 'februar', 'marec', 'april', 'maj', 'junij', - 'julij', 'avgust', 'september', 'oktober', 'november', 'december'], + 'julij', 'avgust', 'september', 'oktober', 'november', 'december'], SHORTMONTHS: ['jan.', 'feb.', 'mar.', 'apr.', 'maj', 'jun.', 'jul.', 'avg.', - 'sep.', 'okt.', 'nov.', 'dec.'], + 'sep.', 'okt.', 'nov.', 'dec.'], STANDALONESHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', - 'avg', 'sep', 'okt', 'nov', 'dec'], + 'avg', 'sep', 'okt', 'nov', 'dec'], WEEKDAYS: ['nedelja', 'ponedeljek', 'torek', 'sreda', 'četrtek', 'petek', - 'sobota'], + 'sobota'], STANDALONEWEEKDAYS: ['nedelja', 'ponedeljek', 'torek', 'sreda', 'četrtek', - 'petek', 'sobota'], + 'petek', 'sobota'], SHORTWEEKDAYS: ['ned.', 'pon.', 'tor.', 'sre.', 'čet.', 'pet.', 'sob.'], STANDALONESHORTWEEKDAYS: ['ned', 'pon', 'tor', 'sre', 'čet', 'pet', 'sob'], NARROWWEEKDAYS: ['n', 'p', 't', 's', 'č', 'p', 's'], STANDALONENARROWWEEKDAYS: ['n', 'p', 't', 's', 'č', 'p', 's'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['1. četrtletje', '2. četrtletje', '3. četrtletje', - '4. četrtletje'], + '4. četrtletje'], AMPMS: ['dop.', 'pop.'], - DATEFORMATS: ['EEEE, dd. MMMM y', 'dd. MMMM y', 'd. MMM yyyy', 'd. MM. yy'], + DATEFORMATS: ['EEEE, dd. MMMM y', 'dd. MMMM y', 'd. MMM y', 'd. MM. yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -11805,30 +15872,31 @@ goog.i18n.DateTimeSymbols_sn = { ERANAMES: ['Kristo asati auya', 'Kristo ashaya'], NARROWMONTHS: ['N', 'K', 'K', 'K', 'C', 'C', 'C', 'N', 'G', 'G', 'M', 'Z'], STANDALONENARROWMONTHS: ['N', 'K', 'K', 'K', 'C', 'C', 'C', 'N', 'G', 'G', - 'M', 'Z'], + 'M', 'Z'], MONTHS: ['Ndira', 'Kukadzi', 'Kurume', 'Kubvumbi', 'Chivabvu', 'Chikumi', - 'Chikunguru', 'Nyamavhuvhu', 'Gunyana', 'Gumiguru', 'Mbudzi', 'Zvita'], + 'Chikunguru', 'Nyamavhuvhu', 'Gunyana', 'Gumiguru', 'Mbudzi', 'Zvita'], STANDALONEMONTHS: ['Ndira', 'Kukadzi', 'Kurume', 'Kubvumbi', 'Chivabvu', - 'Chikumi', 'Chikunguru', 'Nyamavhuvhu', 'Gunyana', 'Gumiguru', 'Mbudzi', - 'Zvita'], + 'Chikumi', 'Chikunguru', 'Nyamavhuvhu', 'Gunyana', 'Gumiguru', 'Mbudzi', + 'Zvita'], SHORTMONTHS: ['Ndi', 'Kuk', 'Kur', 'Kub', 'Chv', 'Chk', 'Chg', 'Nya', 'Gun', - 'Gum', 'Mb', 'Zvi'], + 'Gum', 'Mb', 'Zvi'], STANDALONESHORTMONTHS: ['Ndi', 'Kuk', 'Kur', 'Kub', 'Chv', 'Chk', 'Chg', - 'Nya', 'Gun', 'Gum', 'Mb', 'Zvi'], + 'Nya', 'Gun', 'Gum', 'Mb', 'Zvi'], WEEKDAYS: ['Svondo', 'Muvhuro', 'Chipiri', 'Chitatu', 'China', 'Chishanu', - 'Mugovera'], + 'Mugovera'], STANDALONEWEEKDAYS: ['Svondo', 'Muvhuro', 'Chipiri', 'Chitatu', 'China', - 'Chishanu', 'Mugovera'], + 'Chishanu', 'Mugovera'], SHORTWEEKDAYS: ['Svo', 'Muv', 'Chip', 'Chit', 'Chin', 'Chis', 'Mug'], STANDALONESHORTWEEKDAYS: ['Svo', 'Muv', 'Chip', 'Chit', 'Chin', 'Chis', - 'Mug'], + 'Mug'], NARROWWEEKDAYS: ['S', 'M', 'C', 'C', 'C', 'C', 'M'], STANDALONENARROWWEEKDAYS: ['S', 'M', 'C', 'C', 'C', 'C', 'M'], SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], QUARTERS: ['Kota 1', 'Kota 2', 'Kota 3', 'Kota 4'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -11849,23 +15917,23 @@ goog.i18n.DateTimeSymbols_so = { ERANAMES: ['Ciise ka hor (CS)', 'Ciise ka dib (CS)'], NARROWMONTHS: ['K', 'L', 'S', 'A', 'S', 'L', 'T', 'S', 'S', 'T', 'K', 'L'], STANDALONENARROWMONTHS: ['K', 'L', 'S', 'A', 'S', 'L', 'T', 'S', 'S', 'T', - 'K', 'L'], + 'K', 'L'], MONTHS: ['Bisha Koobaad', 'Bisha Labaad', 'Bisha Saddexaad', 'Bisha Afraad', - 'Bisha Shanaad', 'Bisha Lixaad', 'Bisha Todobaad', 'Bisha Sideedaad', - 'Bisha Sagaalaad', 'Bisha Tobnaad', 'Bisha Kow iyo Tobnaad', - 'Bisha Laba iyo Tobnaad'], + 'Bisha Shanaad', 'Bisha Lixaad', 'Bisha Todobaad', 'Bisha Sideedaad', + 'Bisha Sagaalaad', 'Bisha Tobnaad', 'Bisha Kow iyo Tobnaad', + 'Bisha Laba iyo Tobnaad'], STANDALONEMONTHS: ['Bisha Koobaad', 'Bisha Labaad', 'Bisha Saddexaad', - 'Bisha Afraad', 'Bisha Shanaad', 'Bisha Lixaad', 'Bisha Todobaad', - 'Bisha Sideedaad', 'Bisha Sagaalaad', 'Bisha Tobnaad', - 'Bisha Kow iyo Tobnaad', 'Bisha Laba iyo Tobnaad'], + 'Bisha Afraad', 'Bisha Shanaad', 'Bisha Lixaad', 'Bisha Todobaad', + 'Bisha Sideedaad', 'Bisha Sagaalaad', 'Bisha Tobnaad', + 'Bisha Kow iyo Tobnaad', 'Bisha Laba iyo Tobnaad'], SHORTMONTHS: ['Kob', 'Lab', 'Sad', 'Afr', 'Sha', 'Lix', 'Tod', 'Sid', 'Sag', - 'Tob', 'KIT', 'LIT'], + 'Tob', 'KIT', 'LIT'], STANDALONESHORTMONTHS: ['Kob', 'Lab', 'Sad', 'Afr', 'Sha', 'Lix', 'Tod', - 'Sid', 'Sag', 'Tob', 'KIT', 'LIT'], + 'Sid', 'Sag', 'Tob', 'KIT', 'LIT'], WEEKDAYS: ['Axad', 'Isniin', 'Talaado', 'Arbaco', 'Khamiis', 'Jimco', - 'Sabti'], + 'Sabti'], STANDALONEWEEKDAYS: ['Axad', 'Isniin', 'Talaado', 'Arbaco', 'Khamiis', - 'Jimco', 'Sabti'], + 'Jimco', 'Sabti'], SHORTWEEKDAYS: ['Axd', 'Isn', 'Tal', 'Arb', 'Kha', 'Jim', 'Sab'], STANDALONESHORTWEEKDAYS: ['Axd', 'Isn', 'Tal', 'Arb', 'Kha', 'Jim', 'Sab'], NARROWWEEKDAYS: ['A', 'I', 'T', 'A', 'K', 'J', 'S'], @@ -11875,6 +15943,7 @@ goog.i18n.DateTimeSymbols_so = { AMPMS: ['sn.', 'gn.'], DATEFORMATS: ['EEEE, MMMM dd, y', 'dd MMMM y', 'dd-MMM-y', 'dd/MM/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -11913,19 +15982,19 @@ goog.i18n.DateTimeSymbols_sq_AL = { ERANAMES: ['p.e.r.', 'n.e.r.'], NARROWMONTHS: ['J', 'S', 'M', 'P', 'M', 'Q', 'K', 'G', 'S', 'T', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'S', 'M', 'P', 'M', 'Q', 'K', 'G', 'S', 'T', - 'N', 'D'], + 'N', 'D'], MONTHS: ['janar', 'shkurt', 'mars', 'prill', 'maj', 'qershor', 'korrik', - 'gusht', 'shtator', 'tetor', 'nëntor', 'dhjetor'], + 'gusht', 'shtator', 'tetor', 'nëntor', 'dhjetor'], STANDALONEMONTHS: ['janar', 'shkurt', 'mars', 'prill', 'maj', 'qershor', - 'korrik', 'gusht', 'shtator', 'tetor', 'nëntor', 'dhjetor'], + 'korrik', 'gusht', 'shtator', 'tetor', 'nëntor', 'dhjetor'], SHORTMONTHS: ['Jan', 'Shk', 'Mar', 'Pri', 'Maj', 'Qer', 'Kor', 'Gsh', 'Sht', - 'Tet', 'Nën', 'Dhj'], + 'Tet', 'Nën', 'Dhj'], STANDALONESHORTMONTHS: ['Jan', 'Shk', 'Mar', 'Pri', 'Maj', 'Qer', 'Kor', - 'Gsh', 'Sht', 'Tet', 'Nën', 'Dhj'], + 'Gsh', 'Sht', 'Tet', 'Nën', 'Dhj'], WEEKDAYS: ['e diel', 'e hënë', 'e martë', 'e mërkurë', 'e enjte', - 'e premte', 'e shtunë'], + 'e premte', 'e shtunë'], STANDALONEWEEKDAYS: ['e diel', 'e hënë', 'e martë', 'e mërkurë', - 'e enjte', 'e premte', 'e shtunë'], + 'e enjte', 'e premte', 'e shtunë'], SHORTWEEKDAYS: ['Die', 'Hën', 'Mar', 'Mër', 'Enj', 'Pre', 'Sht'], STANDALONESHORTWEEKDAYS: ['Die', 'Hën', 'Mar', 'Mër', 'Enj', 'Pre', 'Sht'], NARROWWEEKDAYS: ['D', 'H', 'M', 'M', 'E', 'P', 'S'], @@ -11933,8 +16002,83 @@ goog.i18n.DateTimeSymbols_sq_AL = { SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['PD', 'MD'], - DATEFORMATS: ['EEEE, dd MMMM y', 'dd MMMM y', 'yyyy-MM-dd', 'yy-MM-dd'], + DATEFORMATS: ['EEEE, dd MMMM y', 'dd MMMM y', 'y-MM-dd', 'yy-MM-dd'], TIMEFORMATS: ['h.mm.ss.a zzzz', 'h.mm.ss.a z', 'h.mm.ss.a', 'h.mm.a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale sq_MK. + */ +goog.i18n.DateTimeSymbols_sq_MK = { + ERAS: ['p.e.r.', 'n.e.r.'], + ERANAMES: ['p.e.r.', 'n.e.r.'], + NARROWMONTHS: ['J', 'S', 'M', 'P', 'M', 'Q', 'K', 'G', 'S', 'T', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'S', 'M', 'P', 'M', 'Q', 'K', 'G', 'S', 'T', + 'N', 'D'], + MONTHS: ['janar', 'shkurt', 'mars', 'prill', 'maj', 'qershor', 'korrik', + 'gusht', 'shtator', 'tetor', 'nëntor', 'dhjetor'], + STANDALONEMONTHS: ['janar', 'shkurt', 'mars', 'prill', 'maj', 'qershor', + 'korrik', 'gusht', 'shtator', 'tetor', 'nëntor', 'dhjetor'], + SHORTMONTHS: ['Jan', 'Shk', 'Mar', 'Pri', 'Maj', 'Qer', 'Kor', 'Gsh', 'Sht', + 'Tet', 'Nën', 'Dhj'], + STANDALONESHORTMONTHS: ['Jan', 'Shk', 'Mar', 'Pri', 'Maj', 'Qer', 'Kor', + 'Gsh', 'Sht', 'Tet', 'Nën', 'Dhj'], + WEEKDAYS: ['e diel', 'e hënë', 'e martë', 'e mërkurë', 'e enjte', + 'e premte', 'e shtunë'], + STANDALONEWEEKDAYS: ['e diel', 'e hënë', 'e martë', 'e mërkurë', + 'e enjte', 'e premte', 'e shtunë'], + SHORTWEEKDAYS: ['Die', 'Hën', 'Mar', 'Mër', 'Enj', 'Pre', 'Sht'], + STANDALONESHORTWEEKDAYS: ['Die', 'Hën', 'Mar', 'Mër', 'Enj', 'Pre', 'Sht'], + NARROWWEEKDAYS: ['D', 'H', 'M', 'M', 'E', 'P', 'S'], + STANDALONENARROWWEEKDAYS: ['D', 'H', 'M', 'M', 'E', 'P', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + AMPMS: ['PD', 'MD'], + DATEFORMATS: ['EEEE, dd MMMM y', 'dd MMMM y', 'y-MM-dd', 'yy-MM-dd'], + TIMEFORMATS: ['h.mm.ss.a zzzz', 'h.mm.ss.a z', 'h.mm.ss.a', 'h.mm.a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale sq_XK. + */ +goog.i18n.DateTimeSymbols_sq_XK = { + ERAS: ['p.e.r.', 'n.e.r.'], + ERANAMES: ['p.e.r.', 'n.e.r.'], + NARROWMONTHS: ['J', 'S', 'M', 'P', 'M', 'Q', 'K', 'G', 'S', 'T', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'S', 'M', 'P', 'M', 'Q', 'K', 'G', 'S', 'T', + 'N', 'D'], + MONTHS: ['janar', 'shkurt', 'mars', 'prill', 'maj', 'qershor', 'korrik', + 'gusht', 'shtator', 'tetor', 'nëntor', 'dhjetor'], + STANDALONEMONTHS: ['janar', 'shkurt', 'mars', 'prill', 'maj', 'qershor', + 'korrik', 'gusht', 'shtator', 'tetor', 'nëntor', 'dhjetor'], + SHORTMONTHS: ['Jan', 'Shk', 'Mar', 'Pri', 'Maj', 'Qer', 'Kor', 'Gsh', 'Sht', + 'Tet', 'Nën', 'Dhj'], + STANDALONESHORTMONTHS: ['Jan', 'Shk', 'Mar', 'Pri', 'Maj', 'Qer', 'Kor', + 'Gsh', 'Sht', 'Tet', 'Nën', 'Dhj'], + WEEKDAYS: ['e diel', 'e hënë', 'e martë', 'e mërkurë', 'e enjte', + 'e premte', 'e shtunë'], + STANDALONEWEEKDAYS: ['e diel', 'e hënë', 'e martë', 'e mërkurë', + 'e enjte', 'e premte', 'e shtunë'], + SHORTWEEKDAYS: ['Die', 'Hën', 'Mar', 'Mër', 'Enj', 'Pre', 'Sht'], + STANDALONESHORTWEEKDAYS: ['Die', 'Hën', 'Mar', 'Mër', 'Enj', 'Pre', 'Sht'], + NARROWWEEKDAYS: ['D', 'H', 'M', 'M', 'E', 'P', 'S'], + STANDALONENARROWWEEKDAYS: ['D', 'H', 'M', 'M', 'E', 'P', 'S'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + AMPMS: ['PD', 'MD'], + DATEFORMATS: ['EEEE, dd MMMM y', 'dd MMMM y', 'y-MM-dd', 'yy-MM-dd'], + TIMEFORMATS: ['h.mm.ss.a zzzz', 'h.mm.ss.a z', 'h.mm.ss.a', 'h.mm.a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -11948,35 +16092,36 @@ goog.i18n.DateTimeSymbols_sr_Cyrl = { ERAS: ['п. н. е.', 'н. е.'], ERANAMES: ['Пре нове ере', 'Нове ере'], NARROWMONTHS: ['ј', 'ф', 'м', 'а', 'м', 'ј', 'ј', 'а', 'с', 'о', - 'н', 'д'], + 'н', 'д'], STANDALONENARROWMONTHS: ['ј', 'ф', 'м', 'а', 'м', 'ј', 'ј', 'а', 'с', - 'о', 'н', 'д'], + 'о', 'н', 'д'], MONTHS: ['јануар', 'фебруар', 'март', 'април', 'мај', - 'јун', 'јул', 'август', 'септембар', - 'октобар', 'новембар', 'децембар'], + 'јун', 'јул', 'август', 'септембар', 'октобар', + 'новембар', 'децембар'], STANDALONEMONTHS: ['јануар', 'фебруар', 'март', 'април', - 'мај', 'јун', 'јул', 'август', 'септембар', - 'октобар', 'новембар', 'децембар'], + 'мај', 'јун', 'јул', 'август', 'септембар', + 'октобар', 'новембар', 'децембар'], SHORTMONTHS: ['јан', 'феб', 'мар', 'апр', 'мај', 'јун', - 'јул', 'авг', 'сеп', 'окт', 'нов', 'дец'], + 'јул', 'авг', 'сеп', 'окт', 'нов', 'дец'], STANDALONESHORTMONTHS: ['јан', 'феб', 'мар', 'апр', 'мај', - 'јун', 'јул', 'авг', 'сеп', 'окт', 'нов', 'дец'], + 'јун', 'јул', 'авг', 'сеп', 'окт', 'нов', 'дец'], WEEKDAYS: ['недеља', 'понедељак', 'уторак', 'среда', - 'четвртак', 'петак', 'субота'], + 'четвртак', 'петак', 'субота'], STANDALONEWEEKDAYS: ['недеља', 'понедељак', 'уторак', - 'среда', 'четвртак', 'петак', 'субота'], + 'среда', 'четвртак', 'петак', 'субота'], SHORTWEEKDAYS: ['нед', 'пон', 'уто', 'сре', 'чет', 'пет', - 'суб'], + 'суб'], STANDALONESHORTWEEKDAYS: ['нед', 'пон', 'уто', 'сре', 'чет', - 'пет', 'суб'], + 'пет', 'суб'], NARROWWEEKDAYS: ['н', 'п', 'у', 'с', 'ч', 'п', 'с'], STANDALONENARROWWEEKDAYS: ['н', 'п', 'у', 'с', 'ч', 'п', 'с'], SHORTQUARTERS: ['К1', 'К2', 'К3', 'К4'], QUARTERS: ['Прво тромесечје', 'Друго тромесечје', - 'Треће тромесечје', 'Четврто тромесечје'], + 'Треће тромесечје', 'Четврто тромесечје'], AMPMS: ['пре подне', 'поподне'], DATEFORMATS: ['EEEE, dd. MMMM y.', 'dd. MMMM y.', 'dd.MM.y.', 'd.M.yy.'], TIMEFORMATS: ['HH.mm.ss zzzz', 'HH.mm.ss z', 'HH.mm.ss', 'HH.mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -11990,37 +16135,38 @@ goog.i18n.DateTimeSymbols_sr_Cyrl_BA = { ERAS: ['п. н. е.', 'н. е.'], ERANAMES: ['Пре нове ере', 'Нове ере'], NARROWMONTHS: ['ј', 'ф', 'м', 'а', 'м', 'ј', 'ј', 'а', 'с', 'о', - 'н', 'д'], + 'н', 'д'], STANDALONENARROWMONTHS: ['ј', 'ф', 'м', 'а', 'м', 'ј', 'ј', 'а', 'с', - 'о', 'н', 'д'], + 'о', 'н', 'д'], MONTHS: ['јануар', 'фебруар', 'март', 'април', 'мај', - 'јуни', 'јули', 'август', 'септембар', - 'октобар', 'новембар', 'децембар'], + 'јуни', 'јули', 'август', 'септембар', + 'октобар', 'новембар', 'децембар'], STANDALONEMONTHS: ['јануар', 'фебруар', 'март', 'април', - 'мај', 'јуни', 'јули', 'август', 'септембар', - 'октобар', 'новембар', 'децембар'], + 'мај', 'јун', 'јул', 'август', 'септембар', + 'октобар', 'новембар', 'децембар'], SHORTMONTHS: ['јан', 'феб', 'мар', 'апр', 'мај', 'јун', - 'јул', 'авг', 'сеп', 'окт', 'нов', 'дец'], + 'јул', 'авг', 'сеп', 'окт', 'нов', 'дец'], STANDALONESHORTMONTHS: ['јан', 'феб', 'мар', 'апр', 'мај', - 'јун', 'јул', 'авг', 'сеп', 'окт', 'нов', 'дец'], + 'јун', 'јул', 'авг', 'сеп', 'окт', 'нов', 'дец'], WEEKDAYS: ['недеља', 'понедељак', 'уторак', - 'сриједа', 'четвртак', 'петак', 'субота'], + 'сриједа', 'четвртак', 'петак', 'субота'], STANDALONEWEEKDAYS: ['недеља', 'понедељак', 'уторак', - 'сриједа', 'четвртак', 'петак', 'субота'], + 'среда', 'четвртак', 'петак', 'субота'], SHORTWEEKDAYS: ['нед', 'пон', 'уто', 'сри', 'чет', 'пет', - 'суб'], - STANDALONESHORTWEEKDAYS: ['нед', 'пон', 'уто', 'сри', 'чет', - 'пет', 'суб'], + 'суб'], + STANDALONESHORTWEEKDAYS: ['нед', 'пон', 'уто', 'сре', 'чет', + 'пет', 'суб'], NARROWWEEKDAYS: ['н', 'п', 'у', 'с', 'ч', 'п', 'с'], STANDALONENARROWWEEKDAYS: ['н', 'п', 'у', 'с', 'ч', 'п', 'с'], SHORTQUARTERS: ['К1', 'К2', 'К3', 'К4'], QUARTERS: ['Прво тромесечје', 'Друго тромесечје', - 'Треће тромесечје', 'Четврто тромесечје'], + 'Треће тромесечје', 'Четврто тромесечје'], AMPMS: ['пре подне', 'поподне'], - DATEFORMATS: ['EEEE, dd. MMMM y.', 'dd. MMMM y.', 'yyyy-MM-dd', 'yy-MM-dd'], + DATEFORMATS: ['EEEE, dd. MMMM y.', 'dd. MMMM y.', 'y-MM-dd', 'yy-MM-dd'], TIMEFORMATS: [ - 'HH \'часова\', mm \'минута\', ss \'секунди\' zzzz', - 'HH.mm.ss z', 'HH:mm:ss', 'HH:mm'], + 'HH \'часова\', mm \'минута\', ss \'секунди\' zzzz', + 'HH.mm.ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -12039,36 +16185,44 @@ goog.i18n.DateTimeSymbols_sr_Cyrl_ME = goog.i18n.DateTimeSymbols_sr_Cyrl; goog.i18n.DateTimeSymbols_sr_Cyrl_RS = goog.i18n.DateTimeSymbols_sr_Cyrl; +/** + * Date/time formatting symbols for locale sr_Cyrl_XK. + */ +goog.i18n.DateTimeSymbols_sr_Cyrl_XK = goog.i18n.DateTimeSymbols_sr_Cyrl; + + /** * Date/time formatting symbols for locale sr_Latn. */ goog.i18n.DateTimeSymbols_sr_Latn = { - ERAS: ['p. n. e.', 'n. e'], + ERAS: ['p. n. e.', 'n. e.'], ERANAMES: ['Pre nove ere', 'Nove ere'], NARROWMONTHS: ['j', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', 'n', 'd'], STANDALONENARROWMONTHS: ['j', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', - 'n', 'd'], + 'n', 'd'], MONTHS: ['januar', 'februar', 'mart', 'april', 'maj', 'jun', 'jul', 'avgust', - 'septembar', 'oktobar', 'novembar', 'decembar'], + 'septembar', 'oktobar', 'novembar', 'decembar'], STANDALONEMONTHS: ['januar', 'februar', 'mart', 'april', 'maj', 'jun', 'jul', - 'avgust', 'septembar', 'oktobar', 'novembar', 'decembar'], + 'avgust', 'septembar', 'oktobar', 'novembar', 'decembar'], SHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'avg', 'sep', - 'okt', 'nov', 'dec'], + 'okt', 'nov', 'dec'], STANDALONESHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', - 'avg', 'sep', 'okt', 'nov', 'dec'], + 'avg', 'sep', 'okt', 'nov', 'dec'], WEEKDAYS: ['nedelja', 'ponedeljak', 'utorak', 'sreda', 'četvrtak', 'petak', - 'subota'], + 'subota'], STANDALONEWEEKDAYS: ['nedelja', 'ponedeljak', 'utorak', 'sreda', 'četvrtak', - 'petak', 'subota'], + 'petak', 'subota'], SHORTWEEKDAYS: ['ned', 'pon', 'uto', 'sre', 'čet', 'pet', 'sub'], STANDALONESHORTWEEKDAYS: ['ned', 'pon', 'uto', 'sre', 'čet', 'pet', 'sub'], NARROWWEEKDAYS: ['n', 'p', 'u', 's', 'č', 'p', 's'], STANDALONENARROWWEEKDAYS: ['n', 'p', 'u', 's', 'č', 'p', 's'], - SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], - QUARTERS: ['1. kvartal', '2. kvartal', '3. kvartal', '4. kvartal'], + SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], + QUARTERS: ['Prvo tromesečje', 'Drugo tromesečje', 'Treće tromesečje', + 'Četvrto tromesečje'], AMPMS: ['pre podne', 'popodne'], DATEFORMATS: ['EEEE, dd. MMMM y.', 'dd. MMMM y.', 'dd.MM.y.', 'd.M.yy.'], TIMEFORMATS: ['HH.mm.ss zzzz', 'HH.mm.ss z', 'HH.mm.ss', 'HH.mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -12085,32 +16239,34 @@ goog.i18n.DateTimeSymbols_sr_Latn_BA = goog.i18n.DateTimeSymbols_sr_Latn; * Date/time formatting symbols for locale sr_Latn_ME. */ goog.i18n.DateTimeSymbols_sr_Latn_ME = { - ERAS: ['p. n. e.', 'n. e'], + ERAS: ['p. n. e.', 'n. e.'], ERANAMES: ['Pre nove ere', 'Nove ere'], NARROWMONTHS: ['j', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', 'n', 'd'], STANDALONENARROWMONTHS: ['j', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', - 'n', 'd'], + 'n', 'd'], MONTHS: ['januar', 'februar', 'mart', 'april', 'maj', 'jun', 'jul', 'avgust', - 'septembar', 'oktobar', 'novembar', 'decembar'], + 'septembar', 'oktobar', 'novembar', 'decembar'], STANDALONEMONTHS: ['januar', 'februar', 'mart', 'april', 'maj', 'jun', 'jul', - 'avgust', 'septembar', 'oktobar', 'novembar', 'decembar'], + 'avgust', 'septembar', 'oktobar', 'novembar', 'decembar'], SHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'avg', 'sep', - 'okt', 'nov', 'dec'], + 'okt', 'nov', 'dec'], STANDALONESHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', - 'avg', 'sep', 'okt', 'nov', 'dec'], + 'avg', 'sep', 'okt', 'nov', 'dec'], WEEKDAYS: ['nedelja', 'ponedeljak', 'utorak', 'sreda', 'četvrtak', 'petak', - 'subota'], + 'subota'], STANDALONEWEEKDAYS: ['nedelja', 'ponedeljak', 'utorak', 'sreda', 'četvrtak', - 'petak', 'subota'], + 'petak', 'subota'], SHORTWEEKDAYS: ['ned', 'pon', 'uto', 'sre', 'čet', 'pet', 'sub'], STANDALONESHORTWEEKDAYS: ['ned', 'pon', 'uto', 'sre', 'čet', 'pet', 'sub'], NARROWWEEKDAYS: ['n', 'p', 'u', 's', 'č', 'p', 's'], STANDALONENARROWWEEKDAYS: ['n', 'p', 'u', 's', 'č', 'p', 's'], - SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], - QUARTERS: ['1. kvartal', '2. kvartal', '3. kvartal', '4. kvartal'], + SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], + QUARTERS: ['Prvo tromesečje', 'Drugo tromesečje', 'Treće tromesečje', + 'Četvrto tromesečje'], AMPMS: ['pre podne', 'popodne'], - DATEFORMATS: ['EEEE, dd. MMMM y.', 'd.MM.yyyy.', 'dd.MM.y.', 'd.M.yy.'], + DATEFORMATS: ['EEEE, dd. MMMM y.', 'd.MM.y.', 'dd.MM.y.', 'd.M.yy.'], TIMEFORMATS: ['HH.mm.ss zzzz', 'HH.mm.ss z', 'HH.mm.ss', 'HH.mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -12123,6 +16279,12 @@ goog.i18n.DateTimeSymbols_sr_Latn_ME = { goog.i18n.DateTimeSymbols_sr_Latn_RS = goog.i18n.DateTimeSymbols_sr_Latn; +/** + * Date/time formatting symbols for locale sr_Latn_XK. + */ +goog.i18n.DateTimeSymbols_sr_Latn_XK = goog.i18n.DateTimeSymbols_sr_Latn; + + /** * Date/time formatting symbols for locale ss. */ @@ -12131,30 +16293,31 @@ goog.i18n.DateTimeSymbols_ss = { ERANAMES: ['BCE', 'CE'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['Bhimbidvwane', 'iNdlovana', 'iNdlovu-lenkhulu', 'Mabasa', - 'iNkhwekhweti', 'iNhlaba', 'Kholwane', 'iNgci', 'iNyoni', 'iMphala', - 'Lweti', 'iNgongoni'], + 'iNkhwekhweti', 'iNhlaba', 'Kholwane', 'iNgci', 'iNyoni', 'iMphala', + 'Lweti', 'iNgongoni'], STANDALONEMONTHS: ['Bhimbidvwane', 'iNdlovana', 'iNdlovu-lenkhulu', 'Mabasa', - 'iNkhwekhweti', 'iNhlaba', 'Kholwane', 'iNgci', 'iNyoni', 'iMphala', - 'Lweti', 'iNgongoni'], + 'iNkhwekhweti', 'iNhlaba', 'Kholwane', 'iNgci', 'iNyoni', 'iMphala', + 'Lweti', 'iNgongoni'], SHORTMONTHS: ['Bhi', 'Van', 'Vol', 'Mab', 'Nkh', 'Nhl', 'Kho', 'Ngc', 'Nyo', - 'Mph', 'Lwe', 'Ngo'], + 'Mph', 'Lwe', 'Ngo'], STANDALONESHORTMONTHS: ['Bhi', 'Van', 'Vol', 'Mab', 'Nkh', 'Nhl', 'Kho', - 'Ngc', 'Nyo', 'Mph', 'Lwe', 'Ngo'], + 'Ngc', 'Nyo', 'Mph', 'Lwe', 'Ngo'], WEEKDAYS: ['Lisontfo', 'uMsombuluko', 'Lesibili', 'Lesitsatfu', 'Lesine', - 'Lesihlanu', 'uMgcibelo'], + 'Lesihlanu', 'uMgcibelo'], STANDALONEWEEKDAYS: ['Lisontfo', 'uMsombuluko', 'Lesibili', 'Lesitsatfu', - 'Lesine', 'Lesihlanu', 'uMgcibelo'], + 'Lesine', 'Lesihlanu', 'uMgcibelo'], SHORTWEEKDAYS: ['Son', 'Mso', 'Bil', 'Tsa', 'Ne', 'Hla', 'Mgc'], STANDALONESHORTWEEKDAYS: ['Son', 'Mso', 'Bil', 'Tsa', 'Ne', 'Hla', 'Mgc'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, y MMMM dd', 'y MMMM d', 'y MMM d', 'yyyy-MM-dd'], + DATEFORMATS: ['y MMMM d, EEEE', 'y MMMM d', 'y MMM d', 'y-MM-dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -12181,21 +16344,21 @@ goog.i18n.DateTimeSymbols_ssy = { ERANAMES: ['Yaasuusuk Duma', 'Yaasuusuk Wadir'], NARROWMONTHS: ['Q', 'N', 'C', 'A', 'C', 'Q', 'Q', 'L', 'W', 'D', 'X', 'K'], STANDALONENARROWMONTHS: ['Q', 'N', 'C', 'A', 'C', 'Q', 'Q', 'L', 'W', 'D', - 'X', 'K'], + 'X', 'K'], MONTHS: ['Qunxa Garablu', 'Kudo', 'Ciggilta Kudo', 'Agda Baxis', 'Caxah Alsa', - 'Qasa Dirri', 'Qado Dirri', 'Liiqen', 'Waysu', 'Diteli', 'Ximoli', - 'Kaxxa Garablu'], + 'Qasa Dirri', 'Qado Dirri', 'Liiqen', 'Waysu', 'Diteli', 'Ximoli', + 'Kaxxa Garablu'], STANDALONEMONTHS: ['Qunxa Garablu', 'Kudo', 'Ciggilta Kudo', 'Agda Baxis', - 'Caxah Alsa', 'Qasa Dirri', 'Qado Dirri', 'Liiqen', 'Waysu', 'Diteli', - 'Ximoli', 'Kaxxa Garablu'], + 'Caxah Alsa', 'Qasa Dirri', 'Qado Dirri', 'Liiqen', 'Waysu', 'Diteli', + 'Ximoli', 'Kaxxa Garablu'], SHORTMONTHS: ['Qun', 'Nah', 'Cig', 'Agd', 'Cax', 'Qas', 'Qad', 'Leq', 'Way', - 'Dit', 'Xim', 'Kax'], + 'Dit', 'Xim', 'Kax'], STANDALONESHORTMONTHS: ['Qun', 'Nah', 'Cig', 'Agd', 'Cax', 'Qas', 'Qad', - 'Leq', 'Way', 'Dit', 'Xim', 'Kax'], + 'Leq', 'Way', 'Dit', 'Xim', 'Kax'], WEEKDAYS: ['Naba Sambat', 'Sani', 'Salus', 'Rabuq', 'Camus', 'Jumqata', - 'Qunxa Sambat'], + 'Qunxa Sambat'], STANDALONEWEEKDAYS: ['Naba Sambat', 'Sani', 'Salus', 'Rabuq', 'Camus', - 'Jumqata', 'Qunxa Sambat'], + 'Jumqata', 'Qunxa Sambat'], SHORTWEEKDAYS: ['Nab', 'San', 'Sal', 'Rab', 'Cam', 'Jum', 'Qun'], STANDALONESHORTWEEKDAYS: ['Nab', 'San', 'Sal', 'Rab', 'Cam', 'Jum', 'Qun'], NARROWWEEKDAYS: ['N', 'S', 'S', 'R', 'C', 'J', 'Q'], @@ -12205,6 +16368,7 @@ goog.i18n.DateTimeSymbols_ssy = { AMPMS: ['saaku', 'carra'], DATEFORMATS: ['EEEE, MMMM dd, y', 'dd MMMM y', 'dd-MMM-y', 'dd/MM/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -12225,30 +16389,31 @@ goog.i18n.DateTimeSymbols_st = { ERANAMES: ['BCE', 'CE'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['Phesekgong', 'Hlakola', 'Hlakubele', 'Mmese', 'Motsheanong', - 'Phupjane', 'Phupu', 'Phata', 'Leotshe', 'Mphalane', 'Pundungwane', - 'Tshitwe'], + 'Phupjane', 'Phupu', 'Phata', 'Leotshe', 'Mphalane', 'Pundungwane', + 'Tshitwe'], STANDALONEMONTHS: ['Phesekgong', 'Hlakola', 'Hlakubele', 'Mmese', - 'Motsheanong', 'Phupjane', 'Phupu', 'Phata', 'Leotshe', 'Mphalane', - 'Pundungwane', 'Tshitwe'], + 'Motsheanong', 'Phupjane', 'Phupu', 'Phata', 'Leotshe', 'Mphalane', + 'Pundungwane', 'Tshitwe'], SHORTMONTHS: ['Phe', 'Kol', 'Ube', 'Mme', 'Mot', 'Jan', 'Upu', 'Pha', 'Leo', - 'Mph', 'Pun', 'Tsh'], + 'Mph', 'Pun', 'Tsh'], STANDALONESHORTMONTHS: ['Phe', 'Kol', 'Ube', 'Mme', 'Mot', 'Jan', 'Upu', - 'Pha', 'Leo', 'Mph', 'Pun', 'Tsh'], + 'Pha', 'Leo', 'Mph', 'Pun', 'Tsh'], WEEKDAYS: ['Sontaha', 'Mmantaha', 'Labobedi', 'Laboraru', 'Labone', - 'Labohlane', 'Moqebelo'], + 'Labohlane', 'Moqebelo'], STANDALONEWEEKDAYS: ['Sontaha', 'Mmantaha', 'Labobedi', 'Laboraru', 'Labone', - 'Labohlane', 'Moqebelo'], + 'Labohlane', 'Moqebelo'], SHORTWEEKDAYS: ['Son', 'Mma', 'Bed', 'Rar', 'Ne', 'Hla', 'Moq'], STANDALONESHORTWEEKDAYS: ['Son', 'Mma', 'Bed', 'Rar', 'Ne', 'Hla', 'Moq'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, y MMMM dd', 'y MMMM d', 'y MMM d', 'yyyy-MM-dd'], + DATEFORMATS: ['y MMMM d, EEEE', 'y MMMM d', 'y MMM d', 'y-MM-dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -12267,6 +16432,45 @@ goog.i18n.DateTimeSymbols_st_LS = goog.i18n.DateTimeSymbols_st; goog.i18n.DateTimeSymbols_st_ZA = goog.i18n.DateTimeSymbols_st; +/** + * Date/time formatting symbols for locale sv_AX. + */ +goog.i18n.DateTimeSymbols_sv_AX = { + ERAS: ['f.Kr.', 'e.Kr.'], + ERANAMES: ['före Kristus', 'efter Kristus'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['januari', 'februari', 'mars', 'april', 'maj', 'juni', 'juli', + 'augusti', 'september', 'oktober', 'november', 'december'], + STANDALONEMONTHS: ['Januari', 'Februari', 'Mars', 'April', 'Maj', 'Juni', + 'Juli', 'Augusti', 'September', 'Oktober', 'November', 'December'], + SHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'aug', 'sep', + 'okt', 'nov', 'dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', + 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'], + WEEKDAYS: ['söndag', 'måndag', 'tisdag', 'onsdag', 'torsdag', 'fredag', + 'lördag'], + STANDALONEWEEKDAYS: ['Söndag', 'Måndag', 'Tisdag', 'Onsdag', 'Torsdag', + 'Fredag', 'Lördag'], + SHORTWEEKDAYS: ['sön', 'mån', 'tis', 'ons', 'tors', 'fre', 'lör'], + STANDALONESHORTWEEKDAYS: ['Sön', 'Mån', 'Tis', 'Ons', 'Tor', 'Fre', 'Lör'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'O', 'T', 'F', 'L'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'O', 'T', 'F', 'L'], + SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], + QUARTERS: ['1:a kvartalet', '2:a kvartalet', '3:e kvartalet', + '4:e kvartalet'], + AMPMS: ['fm', 'em'], + DATEFORMATS: ['EEEE\'en\' \'den\' d:\'e\' MMMM y', 'd MMMM y', 'd MMM y', + 'y-MM-dd'], + TIMEFORMATS: ['\'kl\'. HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 3 +}; + + /** * Date/time formatting symbols for locale sv_FI. */ @@ -12275,30 +16479,31 @@ goog.i18n.DateTimeSymbols_sv_FI = { ERANAMES: ['före Kristus', 'efter Kristus'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['januari', 'februari', 'mars', 'april', 'maj', 'juni', 'juli', - 'augusti', 'september', 'oktober', 'november', 'december'], - STANDALONEMONTHS: ['januari', 'februari', 'mars', 'april', 'maj', 'juni', - 'juli', 'augusti', 'september', 'oktober', 'november', 'december'], + 'augusti', 'september', 'oktober', 'november', 'december'], + STANDALONEMONTHS: ['Januari', 'Februari', 'Mars', 'April', 'Maj', 'Juni', + 'Juli', 'Augusti', 'September', 'Oktober', 'November', 'December'], SHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'aug', 'sep', - 'okt', 'nov', 'dec'], - STANDALONESHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', - 'aug', 'sep', 'okt', 'nov', 'dec'], + 'okt', 'nov', 'dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', + 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'], WEEKDAYS: ['söndag', 'måndag', 'tisdag', 'onsdag', 'torsdag', 'fredag', - 'lördag'], - STANDALONEWEEKDAYS: ['söndag', 'måndag', 'tisdag', 'onsdag', 'torsdag', - 'fredag', 'lördag'], + 'lördag'], + STANDALONEWEEKDAYS: ['Söndag', 'Måndag', 'Tisdag', 'Onsdag', 'Torsdag', + 'Fredag', 'Lördag'], SHORTWEEKDAYS: ['sön', 'mån', 'tis', 'ons', 'tors', 'fre', 'lör'], - STANDALONESHORTWEEKDAYS: ['sön', 'mån', 'tis', 'ons', 'tor', 'fre', 'lör'], + STANDALONESHORTWEEKDAYS: ['Sön', 'Mån', 'Tis', 'Ons', 'Tor', 'Fre', 'Lör'], NARROWWEEKDAYS: ['S', 'M', 'T', 'O', 'T', 'F', 'L'], STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'O', 'T', 'F', 'L'], SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], QUARTERS: ['1:a kvartalet', '2:a kvartalet', '3:e kvartalet', - '4:e kvartalet'], + '4:e kvartalet'], AMPMS: ['fm', 'em'], DATEFORMATS: ['EEEE\'en\' \'den\' d:\'e\' MMMM y', 'd MMMM y', 'd MMM y', - 'yyyy-MM-dd'], + 'y-MM-dd'], TIMEFORMATS: ['\'kl\'. HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -12313,30 +16518,31 @@ goog.i18n.DateTimeSymbols_sv_SE = { ERANAMES: ['före Kristus', 'efter Kristus'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['januari', 'februari', 'mars', 'april', 'maj', 'juni', 'juli', - 'augusti', 'september', 'oktober', 'november', 'december'], - STANDALONEMONTHS: ['januari', 'februari', 'mars', 'april', 'maj', 'juni', - 'juli', 'augusti', 'september', 'oktober', 'november', 'december'], + 'augusti', 'september', 'oktober', 'november', 'december'], + STANDALONEMONTHS: ['Januari', 'Februari', 'Mars', 'April', 'Maj', 'Juni', + 'Juli', 'Augusti', 'September', 'Oktober', 'November', 'December'], SHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'aug', 'sep', - 'okt', 'nov', 'dec'], - STANDALONESHORTMONTHS: ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', - 'aug', 'sep', 'okt', 'nov', 'dec'], + 'okt', 'nov', 'dec'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', + 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'], WEEKDAYS: ['söndag', 'måndag', 'tisdag', 'onsdag', 'torsdag', 'fredag', - 'lördag'], - STANDALONEWEEKDAYS: ['söndag', 'måndag', 'tisdag', 'onsdag', 'torsdag', - 'fredag', 'lördag'], + 'lördag'], + STANDALONEWEEKDAYS: ['Söndag', 'Måndag', 'Tisdag', 'Onsdag', 'Torsdag', + 'Fredag', 'Lördag'], SHORTWEEKDAYS: ['sön', 'mån', 'tis', 'ons', 'tors', 'fre', 'lör'], - STANDALONESHORTWEEKDAYS: ['sön', 'mån', 'tis', 'ons', 'tor', 'fre', 'lör'], + STANDALONESHORTWEEKDAYS: ['Sön', 'Mån', 'Tis', 'Ons', 'Tor', 'Fre', 'Lör'], NARROWWEEKDAYS: ['S', 'M', 'T', 'O', 'T', 'F', 'L'], STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'O', 'T', 'F', 'L'], SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], QUARTERS: ['1:a kvartalet', '2:a kvartalet', '3:e kvartalet', - '4:e kvartalet'], + '4:e kvartalet'], AMPMS: ['fm', 'em'], DATEFORMATS: ['EEEE\'en\' \'den\' d:\'e\' MMMM y', 'd MMMM y', 'd MMM y', - 'yyyy-MM-dd'], + 'y-MM-dd'], TIMEFORMATS: ['\'kl\'. HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 3 @@ -12351,28 +16557,29 @@ goog.i18n.DateTimeSymbols_sw_KE = { ERANAMES: ['Kabla ya Kristo', 'Baada ya Kristo'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Januari', 'Februari', 'Machi', 'Aprili', 'Mei', 'Juni', 'Julai', - 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], STANDALONEMONTHS: ['Januari', 'Februari', 'Machi', 'Aprili', 'Mei', 'Juni', - 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], SHORTMONTHS: ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', - 'Okt', 'Nov', 'Des'], + 'Okt', 'Nov', 'Des'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', - 'Ago', 'Sep', 'Okt', 'Nov', 'Des'], + 'Ago', 'Sep', 'Okt', 'Nov', 'Des'], WEEKDAYS: ['Jumapili', 'Jumatatu', 'Jumanne', 'Jumatano', 'Alhamisi', - 'Ijumaa', 'Jumamosi'], + 'Ijumaa', 'Jumamosi'], STANDALONEWEEKDAYS: ['Jumapili', 'Jumatatu', 'Jumanne', 'Jumatano', - 'Alhamisi', 'Ijumaa', 'Jumamosi'], + 'Alhamisi', 'Ijumaa', 'Jumamosi'], SHORTWEEKDAYS: ['J2', 'J3', 'J4', 'J5', 'Alh', 'Ij', 'J1'], STANDALONESHORTWEEKDAYS: ['J2', 'J3', 'J4', 'J5', 'Alh', 'Ij', 'J1'], NARROWWEEKDAYS: ['2', '3', '4', '5', 'A', 'I', '1'], STANDALONENARROWWEEKDAYS: ['2', '3', '4', '5', 'A', 'I', '1'], - SHORTQUARTERS: ['R1', 'R2', 'R3', 'R4'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Robo 1', 'Robo 2', 'Robo 3', 'Robo 4'], AMPMS: ['asubuhi', 'alasiri'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -12387,28 +16594,66 @@ goog.i18n.DateTimeSymbols_sw_TZ = { ERANAMES: ['Kabla ya Kristo', 'Baada ya Kristo'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Januari', 'Februari', 'Machi', 'Aprili', 'Mei', 'Juni', 'Julai', - 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], STANDALONEMONTHS: ['Januari', 'Februari', 'Machi', 'Aprili', 'Mei', 'Juni', - 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], SHORTMONTHS: ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', - 'Okt', 'Nov', 'Des'], + 'Okt', 'Nov', 'Des'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', - 'Ago', 'Sep', 'Okt', 'Nov', 'Des'], + 'Ago', 'Sep', 'Okt', 'Nov', 'Des'], WEEKDAYS: ['Jumapili', 'Jumatatu', 'Jumanne', 'Jumatano', 'Alhamisi', - 'Ijumaa', 'Jumamosi'], + 'Ijumaa', 'Jumamosi'], STANDALONEWEEKDAYS: ['Jumapili', 'Jumatatu', 'Jumanne', 'Jumatano', - 'Alhamisi', 'Ijumaa', 'Jumamosi'], + 'Alhamisi', 'Ijumaa', 'Jumamosi'], SHORTWEEKDAYS: ['J2', 'J3', 'J4', 'J5', 'Alh', 'Ij', 'J1'], STANDALONESHORTWEEKDAYS: ['J2', 'J3', 'J4', 'J5', 'Alh', 'Ij', 'J1'], NARROWWEEKDAYS: ['2', '3', '4', '5', 'A', 'I', '1'], STANDALONENARROWWEEKDAYS: ['2', '3', '4', '5', 'A', 'I', '1'], - SHORTQUARTERS: ['R1', 'R2', 'R3', 'R4'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Robo 1', 'Robo 2', 'Robo 3', 'Robo 4'], AMPMS: ['asubuhi', 'alasiri'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale sw_UG. + */ +goog.i18n.DateTimeSymbols_sw_UG = { + ERAS: ['KK', 'BK'], + ERANAMES: ['Kabla ya Kristo', 'Baada ya Kristo'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['Januari', 'Februari', 'Machi', 'Aprili', 'Mei', 'Juni', 'Julai', + 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + STANDALONEMONTHS: ['Januari', 'Februari', 'Machi', 'Aprili', 'Mei', 'Juni', + 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + SHORTMONTHS: ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', + 'Okt', 'Nov', 'Des'], + STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', + 'Ago', 'Sep', 'Okt', 'Nov', 'Des'], + WEEKDAYS: ['Jumapili', 'Jumatatu', 'Jumanne', 'Jumatano', 'Alhamisi', + 'Ijumaa', 'Jumamosi'], + STANDALONEWEEKDAYS: ['Jumapili', 'Jumatatu', 'Jumanne', 'Jumatano', + 'Alhamisi', 'Ijumaa', 'Jumamosi'], + SHORTWEEKDAYS: ['J2', 'J3', 'J4', 'J5', 'Alh', 'Ij', 'J1'], + STANDALONESHORTWEEKDAYS: ['J2', 'J3', 'J4', 'J5', 'Alh', 'Ij', 'J1'], + NARROWWEEKDAYS: ['2', '3', '4', '5', 'A', 'I', '1'], + STANDALONENARROWWEEKDAYS: ['2', '3', '4', '5', 'A', 'I', '1'], + SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + QUARTERS: ['Robo 1', 'Robo 2', 'Robo 3', 'Robo 4'], + AMPMS: ['asubuhi', 'alasiri'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -12423,23 +16668,23 @@ goog.i18n.DateTimeSymbols_swc = { ERANAMES: ['mbele ya Yezu Kristo', 'kisha ya Yezu Kristo'], NARROWMONTHS: ['k', 'p', 't', 'i', 't', 's', 's', 'm', 't', 'k', 'm', 'm'], STANDALONENARROWMONTHS: ['k', 'p', 't', 'i', 't', 's', 's', 'm', 't', 'k', - 'm', 'm'], + 'm', 'm'], MONTHS: ['mwezi ya kwanja', 'mwezi ya pili', 'mwezi ya tatu', 'mwezi ya ine', - 'mwezi ya tanu', 'mwezi ya sita', 'mwezi ya saba', 'mwezi ya munane', - 'mwezi ya tisa', 'mwezi ya kumi', 'mwezi ya kumi na moya', - 'mwezi ya kumi ya mbili'], + 'mwezi ya tanu', 'mwezi ya sita', 'mwezi ya saba', 'mwezi ya munane', + 'mwezi ya tisa', 'mwezi ya kumi', 'mwezi ya kumi na moya', + 'mwezi ya kumi ya mbili'], STANDALONEMONTHS: ['mwezi ya kwanja', 'mwezi ya pili', 'mwezi ya tatu', - 'mwezi ya ine', 'mwezi ya tanu', 'mwezi ya sita', 'mwezi ya saba', - 'mwezi ya munane', 'mwezi ya tisa', 'mwezi ya kumi', - 'mwezi ya kumi na moya', 'mwezi ya kumi ya mbili'], + 'mwezi ya ine', 'mwezi ya tanu', 'mwezi ya sita', 'mwezi ya saba', + 'mwezi ya munane', 'mwezi ya tisa', 'mwezi ya kumi', + 'mwezi ya kumi na moya', 'mwezi ya kumi ya mbili'], SHORTMONTHS: ['mkw', 'mpi', 'mtu', 'min', 'mtn', 'mst', 'msb', 'mun', 'mts', - 'mku', 'mkm', 'mkb'], + 'mku', 'mkm', 'mkb'], STANDALONESHORTMONTHS: ['mkw', 'mpi', 'mtu', 'min', 'mtn', 'mst', 'msb', - 'mun', 'mts', 'mku', 'mkm', 'mkb'], + 'mun', 'mts', 'mku', 'mkm', 'mkb'], WEEKDAYS: ['siku ya yenga', 'siku ya kwanza', 'siku ya pili', 'siku ya tatu', - 'siku ya ine', 'siku ya tanu', 'siku ya sita'], + 'siku ya ine', 'siku ya tanu', 'siku ya sita'], STANDALONEWEEKDAYS: ['siku ya yenga', 'siku ya kwanza', 'siku ya pili', - 'siku ya tatu', 'siku ya ine', 'siku ya tanu', 'siku ya sita'], + 'siku ya tatu', 'siku ya ine', 'siku ya tanu', 'siku ya sita'], SHORTWEEKDAYS: ['yen', 'kwa', 'pil', 'tat', 'ine', 'tan', 'sit'], STANDALONESHORTWEEKDAYS: ['yen', 'kwa', 'pil', 'tat', 'ine', 'tan', 'sit'], NARROWWEEKDAYS: ['y', 'k', 'p', 't', 'i', 't', 's'], @@ -12447,8 +16692,9 @@ goog.i18n.DateTimeSymbols_swc = { SHORTQUARTERS: ['R1', 'R2', 'R3', 'R4'], QUARTERS: ['Robo 1', 'Robo 2', 'Robo 3', 'Robo 4'], AMPMS: ['ya asubuyi', 'ya muchana'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/yyyy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -12467,50 +16713,51 @@ goog.i18n.DateTimeSymbols_swc_CD = goog.i18n.DateTimeSymbols_swc; goog.i18n.DateTimeSymbols_ta_IN = { ERAS: ['கி.மு.', 'கி.பி.'], ERANAMES: ['கிறிஸ்துவுக்கு முன்', - 'அனோ டோமினி'], + 'அனோ டோமினி'], NARROWMONTHS: ['ஜ', 'பி', 'மா', 'ஏ', 'மே', 'ஜூ', 'ஜூ', - 'ஆ', 'செ', 'அ', 'ந', 'டி'], + 'ஆ', 'செ', 'அ', 'ந', 'டி'], STANDALONENARROWMONTHS: ['ஜ', 'பி', 'மா', 'ஏ', 'மே', 'ஜூ', - 'ஜூ', 'ஆ', 'செ', 'அ', 'ந', 'டி'], + 'ஜூ', 'ஆ', 'செ', 'அ', 'ந', 'டி'], MONTHS: ['ஜனவரி', 'பிப்ரவரி', 'மார்ச்', - 'ஏப்ரல்', 'மே', 'ஜூன்', 'ஜூலை', - 'ஆகஸ்ட்', 'செப்டம்பர்', - 'அக்டோபர்', 'நவம்பர்', - 'டிசம்பர்'], + 'ஏப்ரல்', 'மே', 'ஜூன்', 'ஜூலை', + 'ஆகஸ்ட்', 'செப்டம்பர்', + 'அக்டோபர்', 'நவம்பர்', + 'டிசம்பர்'], STANDALONEMONTHS: ['ஜனவரி', 'பிப்ரவரி', - 'மார்ச்', 'ஏப்ரல்', 'மே', 'ஜூன்', - 'ஜூலை', 'ஆகஸ்டு', 'செப்டம்பர்', - 'அக்டோபர்', 'நவம்பர்', - 'டிசம்பர்'], + 'மார்ச்', 'ஏப்ரல்', 'மே', 'ஜூன்', + 'ஜூலை', 'ஆகஸ்டு', 'செப்டம்பர்', + 'அக்டோபர்', 'நவம்பர்', + 'டிசம்பர்'], SHORTMONTHS: ['ஜன.', 'பிப்.', 'மார்.', 'ஏப்.', - 'மே', 'ஜூன்', 'ஜூலை', 'ஆக.', 'செப்.', - 'அக்.', 'நவ.', 'டிச.'], + 'மே', 'ஜூன்', 'ஜூலை', 'ஆக.', 'செப்.', + 'அக்.', 'நவ.', 'டிச.'], STANDALONESHORTMONTHS: ['ஜன.', 'பிப்.', 'மார்.', - 'ஏப்.', 'மே', 'ஜூன்', 'ஜூலை', 'ஆக.', - 'செப்.', 'அக்.', 'நவ.', 'டிச.'], + 'ஏப்.', 'மே', 'ஜூன்', 'ஜூலை', 'ஆக.', + 'செப்.', 'அக்.', 'நவ.', 'டிச.'], WEEKDAYS: ['ஞாயிறு', 'திங்கள்', - 'செவ்வாய்', 'புதன்', 'வியாழன்', - 'வெள்ளி', 'சனி'], + 'செவ்வாய்', 'புதன்', 'வியாழன்', + 'வெள்ளி', 'சனி'], STANDALONEWEEKDAYS: ['ஞாயிறு', 'திங்கள்', - 'செவ்வாய்', 'புதன்', 'வியாழன்', - 'வெள்ளி', 'சனி'], + 'செவ்வாய்', 'புதன்', 'வியாழன்', + 'வெள்ளி', 'சனி'], SHORTWEEKDAYS: ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', - 'ச'], + 'ச'], STANDALONESHORTWEEKDAYS: ['ஞா', 'தி', 'செ', 'பு', 'வி', - 'வெ', 'ச'], + 'வெ', 'ச'], NARROWWEEKDAYS: ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', - 'ச'], + 'ச'], STANDALONENARROWWEEKDAYS: ['ஞா', 'தி', 'செ', 'பு', 'வி', - 'வெ', 'ச'], + 'வெ', 'ச'], SHORTQUARTERS: ['காலாண்டு1', 'காலாண்டு2', - 'காலாண்டு3', 'காலாண்டு4'], + 'காலாண்டு3', 'காலாண்டு4'], QUARTERS: ['முதல் காலாண்டு', - 'இரண்டாம் காலாண்டு', - 'மூன்றாம் காலாண்டு', - 'நான்காம் காலாண்டு'], - AMPMS: ['am', 'pm'], + 'இரண்டாம் காலாண்டு', + 'மூன்றாம் காலாண்டு', + 'நான்காம் காலாண்டு'], + AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, d MMMM, y', 'd MMMM, y', 'd MMM, y', 'd-M-yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [6, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -12523,108 +16770,223 @@ goog.i18n.DateTimeSymbols_ta_IN = { goog.i18n.DateTimeSymbols_ta_LK = { ERAS: ['கி.மு.', 'கி.பி.'], ERANAMES: ['கிறிஸ்துவுக்கு முன்', - 'அனோ டோமினி'], + 'அனோ டோமினி'], NARROWMONTHS: ['ஜ', 'பி', 'மா', 'ஏ', 'மே', 'ஜூ', 'ஜூ', - 'ஆ', 'செ', 'அ', 'ந', 'டி'], + 'ஆ', 'செ', 'அ', 'ந', 'டி'], STANDALONENARROWMONTHS: ['ஜ', 'பி', 'மா', 'ஏ', 'மே', 'ஜூ', - 'ஜூ', 'ஆ', 'செ', 'அ', 'ந', 'டி'], + 'ஜூ', 'ஆ', 'செ', 'அ', 'ந', 'டி'], MONTHS: ['ஜனவரி', 'பிப்ரவரி', 'மார்ச்', - 'ஏப்ரல்', 'மே', 'ஜூன்', 'ஜூலை', - 'ஆகஸ்ட்', 'செப்டம்பர்', - 'அக்டோபர்', 'நவம்பர்', - 'டிசம்பர்'], + 'ஏப்ரல்', 'மே', 'ஜூன்', 'ஜூலை', + 'ஆகஸ்ட்', 'செப்டம்பர்', + 'அக்டோபர்', 'நவம்பர்', + 'டிசம்பர்'], STANDALONEMONTHS: ['ஜனவரி', 'பிப்ரவரி', - 'மார்ச்', 'ஏப்ரல்', 'மே', 'ஜூன்', - 'ஜூலை', 'ஆகஸ்டு', 'செப்டம்பர்', - 'அக்டோபர்', 'நவம்பர்', - 'டிசம்பர்'], + 'மார்ச்', 'ஏப்ரல்', 'மே', 'ஜூன்', + 'ஜூலை', 'ஆகஸ்டு', 'செப்டம்பர்', + 'அக்டோபர்', 'நவம்பர்', + 'டிசம்பர்'], SHORTMONTHS: ['ஜன.', 'பிப்.', 'மார்.', 'ஏப்.', - 'மே', 'ஜூன்', 'ஜூலை', 'ஆக.', 'செப்.', - 'அக்.', 'நவ.', 'டிச.'], + 'மே', 'ஜூன்', 'ஜூலை', 'ஆக.', 'செப்.', + 'அக்.', 'நவ.', 'டிச.'], STANDALONESHORTMONTHS: ['ஜன.', 'பிப்.', 'மார்.', - 'ஏப்.', 'மே', 'ஜூன்', 'ஜூலை', 'ஆக.', - 'செப்.', 'அக்.', 'நவ.', 'டிச.'], + 'ஏப்.', 'மே', 'ஜூன்', 'ஜூலை', 'ஆக.', + 'செப்.', 'அக்.', 'நவ.', 'டிச.'], WEEKDAYS: ['ஞாயிறு', 'திங்கள்', - 'செவ்வாய்', 'புதன்', 'வியாழன்', - 'வெள்ளி', 'சனி'], + 'செவ்வாய்', 'புதன்', 'வியாழன்', + 'வெள்ளி', 'சனி'], STANDALONEWEEKDAYS: ['ஞாயிறு', 'திங்கள்', - 'செவ்வாய்', 'புதன்', 'வியாழன்', - 'வெள்ளி', 'சனி'], + 'செவ்வாய்', 'புதன்', 'வியாழன்', + 'வெள்ளி', 'சனி'], SHORTWEEKDAYS: ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', - 'ச'], + 'ச'], STANDALONESHORTWEEKDAYS: ['ஞா', 'தி', 'செ', 'பு', 'வி', - 'வெ', 'ச'], + 'வெ', 'ச'], NARROWWEEKDAYS: ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', - 'ச'], + 'ச'], STANDALONENARROWWEEKDAYS: ['ஞா', 'தி', 'செ', 'பு', 'வி', - 'வெ', 'ச'], + 'வெ', 'ச'], SHORTQUARTERS: ['காலாண்டு1', 'காலாண்டு2', - 'காலாண்டு3', 'காலாண்டு4'], + 'காலாண்டு3', 'காலாண்டு4'], QUARTERS: ['முதல் காலாண்டு', - 'இரண்டாம் காலாண்டு', - 'மூன்றாம் காலாண்டு', - 'நான்காம் காலாண்டு'], - AMPMS: ['am', 'pm'], + 'இரண்டாம் காலாண்டு', + 'மூன்றாம் காலாண்டு', + 'நான்காம் காலாண்டு'], + AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, d MMMM, y', 'd MMMM, y', 'd MMM, y', 'd-M-yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 }; +/** + * Date/time formatting symbols for locale ta_MY. + */ +goog.i18n.DateTimeSymbols_ta_MY = { + ERAS: ['கி.மு.', 'கி.பி.'], + ERANAMES: ['கிறிஸ்துவுக்கு முன்', + 'அனோ டோமினி'], + NARROWMONTHS: ['ஜ', 'பி', 'மா', 'ஏ', 'மே', 'ஜூ', 'ஜூ', + 'ஆ', 'செ', 'அ', 'ந', 'டி'], + STANDALONENARROWMONTHS: ['ஜ', 'பி', 'மா', 'ஏ', 'மே', 'ஜூ', + 'ஜூ', 'ஆ', 'செ', 'அ', 'ந', 'டி'], + MONTHS: ['ஜனவரி', 'பிப்ரவரி', 'மார்ச்', + 'ஏப்ரல்', 'மே', 'ஜூன்', 'ஜூலை', + 'ஆகஸ்ட்', 'செப்டம்பர்', + 'அக்டோபர்', 'நவம்பர்', + 'டிசம்பர்'], + STANDALONEMONTHS: ['ஜனவரி', 'பிப்ரவரி', + 'மார்ச்', 'ஏப்ரல்', 'மே', 'ஜூன்', + 'ஜூலை', 'ஆகஸ்டு', 'செப்டம்பர்', + 'அக்டோபர்', 'நவம்பர்', + 'டிசம்பர்'], + SHORTMONTHS: ['ஜன.', 'பிப்.', 'மார்.', 'ஏப்.', + 'மே', 'ஜூன்', 'ஜூலை', 'ஆக.', 'செப்.', + 'அக்.', 'நவ.', 'டிச.'], + STANDALONESHORTMONTHS: ['ஜன.', 'பிப்.', 'மார்.', + 'ஏப்.', 'மே', 'ஜூன்', 'ஜூலை', 'ஆக.', + 'செப்.', 'அக்.', 'நவ.', 'டிச.'], + WEEKDAYS: ['ஞாயிறு', 'திங்கள்', + 'செவ்வாய்', 'புதன்', 'வியாழன்', + 'வெள்ளி', 'சனி'], + STANDALONEWEEKDAYS: ['ஞாயிறு', 'திங்கள்', + 'செவ்வாய்', 'புதன்', 'வியாழன்', + 'வெள்ளி', 'சனி'], + SHORTWEEKDAYS: ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', + 'ச'], + STANDALONESHORTWEEKDAYS: ['ஞா', 'தி', 'செ', 'பு', 'வி', + 'வெ', 'ச'], + NARROWWEEKDAYS: ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', + 'ச'], + STANDALONENARROWWEEKDAYS: ['ஞா', 'தி', 'செ', 'பு', 'வி', + 'வெ', 'ச'], + SHORTQUARTERS: ['காலாண்டு1', 'காலாண்டு2', + 'காலாண்டு3', 'காலாண்டு4'], + QUARTERS: ['முதல் காலாண்டு', + 'இரண்டாம் காலாண்டு', + 'மூன்றாம் காலாண்டு', + 'நான்காம் காலாண்டு'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, d MMMM, y', 'd MMMM, y', 'd MMM, y', 'd-M-yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale ta_SG. + */ +goog.i18n.DateTimeSymbols_ta_SG = { + ERAS: ['கி.மு.', 'கி.பி.'], + ERANAMES: ['கிறிஸ்துவுக்கு முன்', + 'அனோ டோமினி'], + NARROWMONTHS: ['ஜ', 'பி', 'மா', 'ஏ', 'மே', 'ஜூ', 'ஜூ', + 'ஆ', 'செ', 'அ', 'ந', 'டி'], + STANDALONENARROWMONTHS: ['ஜ', 'பி', 'மா', 'ஏ', 'மே', 'ஜூ', + 'ஜூ', 'ஆ', 'செ', 'அ', 'ந', 'டி'], + MONTHS: ['ஜனவரி', 'பிப்ரவரி', 'மார்ச்', + 'ஏப்ரல்', 'மே', 'ஜூன்', 'ஜூலை', + 'ஆகஸ்ட்', 'செப்டம்பர்', + 'அக்டோபர்', 'நவம்பர்', + 'டிசம்பர்'], + STANDALONEMONTHS: ['ஜனவரி', 'பிப்ரவரி', + 'மார்ச்', 'ஏப்ரல்', 'மே', 'ஜூன்', + 'ஜூலை', 'ஆகஸ்டு', 'செப்டம்பர்', + 'அக்டோபர்', 'நவம்பர்', + 'டிசம்பர்'], + SHORTMONTHS: ['ஜன.', 'பிப்.', 'மார்.', 'ஏப்.', + 'மே', 'ஜூன்', 'ஜூலை', 'ஆக.', 'செப்.', + 'அக்.', 'நவ.', 'டிச.'], + STANDALONESHORTMONTHS: ['ஜன.', 'பிப்.', 'மார்.', + 'ஏப்.', 'மே', 'ஜூன்', 'ஜூலை', 'ஆக.', + 'செப்.', 'அக்.', 'நவ.', 'டிச.'], + WEEKDAYS: ['ஞாயிறு', 'திங்கள்', + 'செவ்வாய்', 'புதன்', 'வியாழன்', + 'வெள்ளி', 'சனி'], + STANDALONEWEEKDAYS: ['ஞாயிறு', 'திங்கள்', + 'செவ்வாய்', 'புதன்', 'வியாழன்', + 'வெள்ளி', 'சனி'], + SHORTWEEKDAYS: ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', + 'ச'], + STANDALONESHORTWEEKDAYS: ['ஞா', 'தி', 'செ', 'பு', 'வி', + 'வெ', 'ச'], + NARROWWEEKDAYS: ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', + 'ச'], + STANDALONENARROWWEEKDAYS: ['ஞா', 'தி', 'செ', 'பு', 'வி', + 'வெ', 'ச'], + SHORTQUARTERS: ['காலாண்டு1', 'காலாண்டு2', + 'காலாண்டு3', 'காலாண்டு4'], + QUARTERS: ['முதல் காலாண்டு', + 'இரண்டாம் காலாண்டு', + 'மூன்றாம் காலாண்டு', + 'நான்காம் காலாண்டு'], + AMPMS: ['AM', 'PM'], + DATEFORMATS: ['EEEE, d MMMM, y', 'd MMMM, y', 'd MMM, y', 'd-M-yy'], + TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 6, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 5 +}; + + /** * Date/time formatting symbols for locale te_IN. */ goog.i18n.DateTimeSymbols_te_IN = { - ERAS: ['ఈసాపూర్వ.', 'సన్.'], + ERAS: ['క్రీపూ', 'క్రీశ'], ERANAMES: ['ఈసాపూర్వ.', 'సన్.'], - NARROWMONTHS: ['జ', 'ఫి', 'మా', 'ఏ', 'మె', 'జు', 'జు', - 'ఆ', 'సె', 'అ', 'న', 'డి'], - STANDALONENARROWMONTHS: ['జ', 'ఫి', 'మ', 'ఎ', 'మె', 'జు', - 'జు', 'ఆ', 'సె', 'అ', 'న', 'డి'], + NARROWMONTHS: ['జ', 'ఫి', 'మా', 'ఏ', 'మే', 'జూ', 'జు', + 'ఆ', 'సె', 'అ', 'న', 'డి'], + STANDALONENARROWMONTHS: ['జ', 'ఫి', 'మా', 'ఏ', 'మే', 'జు', + 'జు', 'ఆ', 'సె', 'అ', 'న', 'డి'], MONTHS: ['జనవరి', 'ఫిబ్రవరి', 'మార్చి', - 'ఎప్రిల్', 'మే', 'జూన్', 'జూలై', - 'ఆగస్టు', 'సెప్టెంబర్', - 'అక్టోబర్', 'నవంబర్', - 'డిసెంబర్'], + 'ఎప్రిల్', 'మే', 'జూన్', 'జూలై', + 'ఆగస్టు', 'సెప్టెంబర్', + 'అక్టోబర్', 'నవంబర్', + 'డిసెంబర్'], STANDALONEMONTHS: ['జనవరి', 'ఫిబ్రవరి', - 'మార్చి', 'ఎప్రిల్', 'మే', 'జూన్', - 'జూలై', 'ఆగస్టు', 'సెప్టెంబర్', - 'అక్టోబర్', 'నవంబర్', - 'డిసెంబర్'], + 'మార్చి', 'ఎప్రిల్', 'మే', 'జూన్', + 'జూలై', 'ఆగస్టు', 'సెప్టెంబర్', + 'అక్టోబర్', 'నవంబర్', + 'డిసెంబర్'], SHORTMONTHS: ['జన', 'ఫిబ్ర', 'మార్చి', - 'ఏప్రి', 'మే', 'జూన్', 'జూలై', - 'ఆగస్టు', 'సెప్టెంబర్', - 'అక్టోబర్', 'నవంబర్', - 'డిసెంబర్'], + 'ఏప్రి', 'మే', 'జూన్', 'జూలై', + 'ఆగస్టు', 'సెప్టెంబర్', + 'అక్టోబర్', 'నవంబర్', + 'డిసెంబర్'], STANDALONESHORTMONTHS: ['జన', 'ఫిబ్ర', 'మార్చి', - 'ఏప్రి', 'మే', 'జూన్', 'జూలై', - 'ఆగస్టు', 'సెప్టెంబర్', - 'అక్టోబర్', 'నవంబర్', - 'డిసెంబర్'], + 'ఏప్రి', 'మే', 'జూన్', 'జూలై', + 'ఆగస్టు', 'సెప్టెం', 'అక్టో', + 'నవం', 'డిసెం'], WEEKDAYS: ['ఆదివారం', 'సోమవారం', - 'మంగళవారం', 'బుధవారం', - 'గురువారం', 'శుక్రవారం', - 'శనివారం'], + 'మంగళవారం', 'బుధవారం', + 'గురువారం', 'శుక్రవారం', + 'శనివారం'], STANDALONEWEEKDAYS: ['ఆదివారం', 'సోమవారం', - 'మంగళవారం', 'బుధవారం', - 'గురువారం', 'శుక్రవారం', - 'శనివారం'], + 'మంగళవారం', 'బుధవారం', + 'గురువారం', 'శుక్రవారం', + 'శనివారం'], SHORTWEEKDAYS: ['ఆది', 'సోమ', 'మంగళ', 'బుధ', - 'గురు', 'శుక్ర', 'శని'], + 'గురు', 'శుక్ర', 'శని'], STANDALONESHORTWEEKDAYS: ['ఆది', 'సోమ', 'మంగళ', - 'బుధ', 'గురు', 'శుక్ర', 'శని'], + 'బుధ', 'గురు', 'శుక్ర', 'శని'], NARROWWEEKDAYS: ['ఆ', 'సో', 'మ', 'బు', 'గు', 'శు', 'శ'], STANDALONENARROWWEEKDAYS: ['ఆ', 'సో', 'మ', 'బు', 'గు', - 'శు', 'శ'], - SHORTQUARTERS: ['ఒకటి 1', 'రెండు 2', 'మూడు 3', - 'నాలుగు 4'], - QUARTERS: ['ఒకటి 1', 'రెండు 2', 'మూడు 3', - 'నాలుగు 4'], - AMPMS: ['am', 'pm'], + 'శు', 'శ'], + SHORTQUARTERS: ['త్రై1', 'త్రై2', 'త్రై3', + 'త్రై4'], + QUARTERS: ['1వ త్రైమాసం', '2వ త్రైమాసం', + '3వ త్రైమాసం', '4వ త్రైమాసం'], + AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'dd-MM-yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [6, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -12639,21 +17001,21 @@ goog.i18n.DateTimeSymbols_teo = { ERANAMES: ['Kabla ya Christo', 'Baada ya Christo'], NARROWMONTHS: ['R', 'M', 'K', 'D', 'M', 'M', 'J', 'P', 'S', 'T', 'L', 'P'], STANDALONENARROWMONTHS: ['R', 'M', 'K', 'D', 'M', 'M', 'J', 'P', 'S', 'T', - 'L', 'P'], + 'L', 'P'], MONTHS: ['Orara', 'Omuk', 'Okwamg\'', 'Odung\'el', 'Omaruk', - 'Omodok\'king\'ol', 'Ojola', 'Opedel', 'Osokosokoma', 'Otibar', 'Olabor', - 'Opoo'], + 'Omodok\'king\'ol', 'Ojola', 'Opedel', 'Osokosokoma', 'Otibar', 'Olabor', + 'Opoo'], STANDALONEMONTHS: ['Orara', 'Omuk', 'Okwamg\'', 'Odung\'el', 'Omaruk', - 'Omodok\'king\'ol', 'Ojola', 'Opedel', 'Osokosokoma', 'Otibar', 'Olabor', - 'Opoo'], + 'Omodok\'king\'ol', 'Ojola', 'Opedel', 'Osokosokoma', 'Otibar', 'Olabor', + 'Opoo'], SHORTMONTHS: ['Rar', 'Muk', 'Kwa', 'Dun', 'Mar', 'Mod', 'Jol', 'Ped', 'Sok', - 'Tib', 'Lab', 'Poo'], + 'Tib', 'Lab', 'Poo'], STANDALONESHORTMONTHS: ['Rar', 'Muk', 'Kwa', 'Dun', 'Mar', 'Mod', 'Jol', - 'Ped', 'Sok', 'Tib', 'Lab', 'Poo'], + 'Ped', 'Sok', 'Tib', 'Lab', 'Poo'], WEEKDAYS: ['Nakaejuma', 'Nakaebarasa', 'Nakaare', 'Nakauni', 'Nakaung\'on', - 'Nakakany', 'Nakasabiti'], + 'Nakakany', 'Nakasabiti'], STANDALONEWEEKDAYS: ['Nakaejuma', 'Nakaebarasa', 'Nakaare', 'Nakauni', - 'Nakaung\'on', 'Nakakany', 'Nakasabiti'], + 'Nakaung\'on', 'Nakakany', 'Nakasabiti'], SHORTWEEKDAYS: ['Jum', 'Bar', 'Aar', 'Uni', 'Ung', 'Kan', 'Sab'], STANDALONESHORTWEEKDAYS: ['Jum', 'Bar', 'Aar', 'Uni', 'Ung', 'Kan', 'Sab'], NARROWWEEKDAYS: ['J', 'B', 'A', 'U', 'U', 'K', 'S'], @@ -12661,8 +17023,9 @@ goog.i18n.DateTimeSymbols_teo = { SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], QUARTERS: ['Akwota abe', 'Akwota Aane', 'Akwota auni', 'Akwota Aung\'on'], AMPMS: ['Taparachu', 'Ebongi'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -12689,32 +17052,33 @@ goog.i18n.DateTimeSymbols_tg = { ERANAMES: ['Пеш аз милод', 'ПаМ'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['Январ', 'Феврал', 'Март', 'Апрел', 'Май', - 'Июн', 'Июл', 'Август', 'Сентябр', 'Октябр', - 'Ноябр', 'Декабр'], + 'Июн', 'Июл', 'Август', 'Сентябр', 'Октябр', + 'Ноябр', 'Декабр'], STANDALONEMONTHS: ['Январ', 'Феврал', 'Март', 'Апрел', - 'Май', 'Июн', 'Июл', 'Август', 'Сентябр', - 'Октябр', 'Ноябр', 'Декабр'], + 'Май', 'Июн', 'Июл', 'Август', 'Сентябр', + 'Октябр', 'Ноябр', 'Декабр'], SHORTMONTHS: ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', - 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'], + 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'], STANDALONESHORTMONTHS: ['Янв', 'Фев', 'Мар', 'Апр', 'Май', - 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'], + 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'], WEEKDAYS: ['Якшанбе', 'Душанбе', 'Сешанбе', - 'Чоршанбе', 'Панҷшанбе', 'Ҷумъа', 'Шанбе'], + 'Чоршанбе', 'Панҷшанбе', 'Ҷумъа', 'Шанбе'], STANDALONEWEEKDAYS: ['Якшанбе', 'Душанбе', 'Сешанбе', - 'Чоршанбе', 'Панҷшанбе', 'Ҷумъа', 'Шанбе'], + 'Чоршанбе', 'Панҷшанбе', 'Ҷумъа', 'Шанбе'], SHORTWEEKDAYS: ['Яшб', 'Дшб', 'Сшб', 'Чшб', 'Пшб', 'Ҷмъ', - 'Шнб'], + 'Шнб'], STANDALONESHORTWEEKDAYS: ['Яшб', 'Дшб', 'Сшб', 'Чшб', 'Пшб', - 'Ҷмъ', 'Шнб'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + 'Ҷмъ', 'Шнб'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['пе. чо.', 'па. чо.'], DATEFORMATS: ['EEEE, y MMMM dd', 'y MMMM d', 'y MMM d', 'yy/MM/dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -12739,51 +17103,55 @@ goog.i18n.DateTimeSymbols_tg_Cyrl_TJ = goog.i18n.DateTimeSymbols_tg; goog.i18n.DateTimeSymbols_th_TH = { ERAS: ['ปีก่อน ค.ศ.', 'ค.ศ.'], ERANAMES: ['ปีก่อนคริสต์ศักราช', - 'คริสต์ศักราช'], + 'คริสต์ศักราช'], NARROWMONTHS: ['ม.ค.', 'ก.พ.', 'มี.ค.', 'เม.ย.', - 'พ.ค.', 'มิ.ย', 'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', - 'พ.ย.', 'ธ.ค.'], + 'พ.ค.', 'มิ.ย', 'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', + 'พ.ย.', 'ธ.ค.'], STANDALONENARROWMONTHS: ['ม.ค.', 'ก.พ.', 'มี.ค.', 'เม.ย.', - 'พ.ค.', 'มิ.ย.', 'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', - 'พ.ย.', 'ธ.ค.'], + 'พ.ค.', 'มิ.ย.', 'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', + 'พ.ย.', 'ธ.ค.'], MONTHS: ['มกราคม', 'กุมภาพันธ์', - 'มีนาคม', 'เมษายน', 'พฤษภาคม', - 'มิถุนายน', 'กรกฎาคม', - 'สิงหาคม', 'กันยายน', 'ตุลาคม', - 'พฤศจิกายน', 'ธันวาคม'], + 'มีนาคม', 'เมษายน', 'พฤษภาคม', + 'มิถุนายน', 'กรกฎาคม', + 'สิงหาคม', 'กันยายน', 'ตุลาคม', + 'พฤศจิกายน', 'ธันวาคม'], STANDALONEMONTHS: ['มกราคม', 'กุมภาพันธ์', - 'มีนาคม', 'เมษายน', 'พฤษภาคม', - 'มิถุนายน', 'กรกฎาคม', - 'สิงหาคม', 'กันยายน', 'ตุลาคม', - 'พฤศจิกายน', 'ธันวาคม'], + 'มีนาคม', 'เมษายน', 'พฤษภาคม', + 'มิถุนายน', 'กรกฎาคม', + 'สิงหาคม', 'กันยายน', 'ตุลาคม', + 'พฤศจิกายน', 'ธันวาคม'], SHORTMONTHS: ['ม.ค.', 'ก.พ.', 'มี.ค.', 'เม.ย.', - 'พ.ค.', 'มิ.ย.', 'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', - 'พ.ย.', 'ธ.ค.'], + 'พ.ค.', 'มิ.ย.', 'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', + 'พ.ย.', 'ธ.ค.'], STANDALONESHORTMONTHS: ['ม.ค.', 'ก.พ.', 'มี.ค.', 'เม.ย.', - 'พ.ค.', 'มิ.ย.', 'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', - 'พ.ย.', 'ธ.ค.'], + 'พ.ค.', 'มิ.ย.', 'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', + 'พ.ย.', 'ธ.ค.'], WEEKDAYS: ['วันอาทิตย์', 'วันจันทร์', - 'วันอังคาร', 'วันพุธ', - 'วันพฤหัสบดี', 'วันศุกร์', - 'วันเสาร์'], + 'วันอังคาร', 'วันพุธ', + 'วันพฤหัสบดี', 'วันศุกร์', + 'วันเสาร์'], STANDALONEWEEKDAYS: ['วันอาทิตย์', - 'วันจันทร์', 'วันอังคาร', - 'วันพุธ', 'วันพฤหัสบดี', - 'วันศุกร์', 'วันเสาร์'], + 'วันจันทร์', 'วันอังคาร', + 'วันพุธ', 'วันพฤหัสบดี', + 'วันศุกร์', 'วันเสาร์'], SHORTWEEKDAYS: ['อา.', 'จ.', 'อ.', 'พ.', 'พฤ.', 'ศ.', 'ส.'], STANDALONESHORTWEEKDAYS: ['อา.', 'จ.', 'อ.', 'พ.', 'พฤ.', - 'ศ.', 'ส.'], - NARROWWEEKDAYS: ['อ', 'จ', 'อ', 'พ', 'พ', 'ศ', 'ส'], - STANDALONENARROWWEEKDAYS: ['อ', 'จ', 'อ', 'พ', 'พ', 'ศ', 'ส'], - SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], + 'ศ.', 'ส.'], + NARROWWEEKDAYS: ['อา.', 'จ.', 'อ.', 'พ.', 'พฤ.', 'ศ.', + 'ส.'], + STANDALONENARROWWEEKDAYS: ['อา.', 'จ.', 'อ.', 'พ.', 'พฤ.', + 'ศ.', 'ส.'], + SHORTQUARTERS: ['ไตรมาส 1', 'ไตรมาส 2', + 'ไตรมาส 3', 'ไตรมาส 4'], QUARTERS: ['ไตรมาส 1', 'ไตรมาส 2', - 'ไตรมาส 3', 'ไตรมาส 4'], + 'ไตรมาส 3', 'ไตรมาส 4'], AMPMS: ['ก่อนเที่ยง', 'หลังเที่ยง'], - DATEFORMATS: ['EEEEที่ d MMMM G y', 'd MMMM y', 'd MMM y', 'd/M/yyyy'], + DATEFORMATS: ['EEEEที่ d MMMM G y', 'd MMMM y', 'd MMM y', 'd/M/yy'], TIMEFORMATS: [ - 'H นาฬิกา m นาที ss วินาที zzzz', - 'H นาฬิกา m นาที ss วินาที z', 'H:mm:ss', - 'H:mm'], + 'H นาฬิกา mm นาที ss วินาที zzzz', + 'H นาฬิกา mm นาที ss วินาที z', 'HH:mm:ss', + 'HH:mm'], + DATETIMEFORMATS: ['{1}, {0}', '{1}, {0}', '{1}, {0}', '{1}, {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -12797,38 +17165,39 @@ goog.i18n.DateTimeSymbols_ti = { ERAS: ['ዓ/ዓ', 'ዓ/ም'], ERANAMES: ['ዓ/ዓ', 'ዓ/ም'], NARROWMONTHS: ['ጃ', 'ፌ', 'ማ', 'ኤ', 'ሜ', 'ጁ', 'ጁ', 'ኦ', 'ሴ', - 'ኦ', 'ኖ', 'ዲ'], + 'ኦ', 'ኖ', 'ዲ'], STANDALONENARROWMONTHS: ['ጃ', 'ፌ', 'ማ', 'ኤ', 'ሜ', 'ጁ', 'ጁ', - 'ኦ', 'ሴ', 'ኦ', 'ኖ', 'ዲ'], + 'ኦ', 'ሴ', 'ኦ', 'ኖ', 'ዲ'], MONTHS: ['ጃንዩወሪ', 'ፌብሩወሪ', 'ማርች', 'ኤፕረል', - 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', 'ሴፕቴምበር', - 'ኦክተውበር', 'ኖቬምበር', 'ዲሴምበር'], + 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', 'ሴፕቴምበር', + 'ኦክተውበር', 'ኖቬምበር', 'ዲሴምበር'], STANDALONEMONTHS: ['ጃንዩወሪ', 'ፌብሩወሪ', 'ማርች', - 'ኤፕረል', 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', - 'ሴፕቴምበር', 'ኦክተውበር', 'ኖቬምበር', - 'ዲሴምበር'], + 'ኤፕረል', 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', + 'ሴፕቴምበር', 'ኦክተውበር', 'ኖቬምበር', + 'ዲሴምበር'], SHORTMONTHS: ['ጃንዩ', 'ፌብሩ', 'ማርች', 'ኤፕረ', 'ሜይ', - 'ጁን', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', 'ኖቬም', - 'ዲሴም'], + 'ጁን', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', 'ኖቬም', + 'ዲሴም'], STANDALONESHORTMONTHS: ['ጃንዩ', 'ፌብሩ', 'ማርች', 'ኤፕረ', - 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', - 'ኖቬም', 'ዲሴም'], + 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', + 'ኖቬም', 'ዲሴም'], WEEKDAYS: ['ሰንበት', 'ሰኑይ', 'ሠሉስ', 'ረቡዕ', 'ኃሙስ', - 'ዓርቢ', 'ቀዳም'], + 'ዓርቢ', 'ቀዳም'], STANDALONEWEEKDAYS: ['ሰንበት', 'ሰኑይ', 'ሠሉስ', 'ረቡዕ', - 'ኃሙስ', 'ዓርቢ', 'ቀዳም'], + 'ኃሙስ', 'ዓርቢ', 'ቀዳም'], SHORTWEEKDAYS: ['ሰንበት', 'ሰኑይ', 'ሠሉስ', 'ረቡዕ', - 'ኃሙስ', 'ዓርቢ', 'ቀዳም'], + 'ኃሙስ', 'ዓርቢ', 'ቀዳም'], STANDALONESHORTWEEKDAYS: ['ሰንበት', 'ሰኑይ', 'ሠሉስ', - 'ረቡዕ', 'ኃሙስ', 'ዓርቢ', 'ቀዳም'], + 'ረቡዕ', 'ኃሙስ', 'ዓርቢ', 'ቀዳም'], NARROWWEEKDAYS: ['ሰ', 'ሰ', 'ሠ', 'ረ', 'ኃ', 'ዓ', 'ቀ'], STANDALONENARROWWEEKDAYS: ['ሰ', 'ሰ', 'ሠ', 'ረ', 'ኃ', 'ዓ', 'ቀ'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['ንጉሆ ሰዓተ', 'ድሕር ሰዓት'], DATEFORMATS: ['EEEE፣ dd MMMM መዓልቲ y G', 'dd MMMM y', 'dd-MMM-y', - 'dd/MM/yy'], + 'dd/MM/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -12842,37 +17211,38 @@ goog.i18n.DateTimeSymbols_ti_ER = { ERAS: ['ዓ/ዓ', 'ዓ/ም'], ERANAMES: ['ዓ/ዓ', 'ዓ/ም'], NARROWMONTHS: ['ጃ', 'ፌ', 'ማ', 'ኤ', 'ሜ', 'ጁ', 'ጁ', 'ኦ', 'ሴ', - 'ኦ', 'ኖ', 'ዲ'], + 'ኦ', 'ኖ', 'ዲ'], STANDALONENARROWMONTHS: ['ጃ', 'ፌ', 'ማ', 'ኤ', 'ሜ', 'ጁ', 'ጁ', - 'ኦ', 'ሴ', 'ኦ', 'ኖ', 'ዲ'], + 'ኦ', 'ሴ', 'ኦ', 'ኖ', 'ዲ'], MONTHS: ['ጥሪ', 'ለካቲት', 'መጋቢት', 'ሚያዝያ', - 'ግንቦት', 'ሰነ', 'ሓምለ', 'ነሓሰ', 'መስከረም', - 'ጥቅምቲ', 'ሕዳር', 'ታሕሳስ'], + 'ግንቦት', 'ሰነ', 'ሓምለ', 'ነሓሰ', 'መስከረም', + 'ጥቅምቲ', 'ሕዳር', 'ታሕሳስ'], STANDALONEMONTHS: ['ጥሪ', 'ለካቲት', 'መጋቢት', 'ሚያዝያ', - 'ግንቦት', 'ሰነ', 'ሓምለ', 'ነሓሰ', 'መስከረም', - 'ጥቅምቲ', 'ሕዳር', 'ታሕሳስ'], + 'ግንቦት', 'ሰነ', 'ሓምለ', 'ነሓሰ', 'መስከረም', + 'ጥቅምቲ', 'ሕዳር', 'ታሕሳስ'], SHORTMONTHS: ['ጥሪ', 'ለካቲ', 'መጋቢ', 'ሚያዝ', 'ግንቦ', - 'ሰነ', 'ሓምለ', 'ነሓሰ', 'መስከ', 'ጥቅም', 'ሕዳር', - 'ታሕሳ'], + 'ሰነ', 'ሓምለ', 'ነሓሰ', 'መስከ', 'ጥቅም', 'ሕዳር', + 'ታሕሳ'], STANDALONESHORTMONTHS: ['ጥሪ', 'ለካቲ', 'መጋቢ', 'ሚያዝ', - 'ግንቦ', 'ሰነ', 'ሓምለ', 'ነሓሰ', 'መስከ', 'ጥቅም', - 'ሕዳር', 'ታሕሳ'], + 'ግንቦ', 'ሰነ', 'ሓምለ', 'ነሓሰ', 'መስከ', 'ጥቅም', + 'ሕዳር', 'ታሕሳ'], WEEKDAYS: ['ሰንበት', 'ሰኑይ', 'ሰሉስ', 'ረቡዕ', 'ሓሙስ', - 'ዓርቢ', 'ቀዳም'], + 'ዓርቢ', 'ቀዳም'], STANDALONEWEEKDAYS: ['ሰንበት', 'ሰኑይ', 'ሰሉስ', 'ረቡዕ', - 'ሓሙስ', 'ዓርቢ', 'ቀዳም'], + 'ሓሙስ', 'ዓርቢ', 'ቀዳም'], SHORTWEEKDAYS: ['ሰንበት', 'ሰኑይ', 'ሰሉስ', 'ረቡዕ', - 'ሓሙስ', 'ዓርቢ', 'ቀዳም'], + 'ሓሙስ', 'ዓርቢ', 'ቀዳም'], STANDALONESHORTWEEKDAYS: ['ሰንበት', 'ሰኑይ', 'ሰሉስ', - 'ረቡዕ', 'ሓሙስ', 'ዓርቢ', 'ቀዳም'], + 'ረቡዕ', 'ሓሙስ', 'ዓርቢ', 'ቀዳም'], NARROWWEEKDAYS: ['ሰ', 'ሰ', 'ሠ', 'ረ', 'ኃ', 'ዓ', 'ቀ'], STANDALONENARROWWEEKDAYS: ['ሰ', 'ሰ', 'ሠ', 'ረ', 'ኃ', 'ዓ', 'ቀ'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['ንጉሆ ሰዓተ', 'ድሕር ሰዓት'], DATEFORMATS: ['EEEE፡ dd MMMM መዓልቲ y G', 'dd MMMM y', 'dd-MMM-y', - 'dd/MM/yy'], + 'dd/MM/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -12892,38 +17262,39 @@ goog.i18n.DateTimeSymbols_tig = { ERAS: ['ዓ/ዓ', 'ዓ/ም'], ERANAMES: ['ዓ/ዓ', 'ዓ/ም'], NARROWMONTHS: ['ጃ', 'ፌ', 'ማ', 'ኤ', 'ሜ', 'ጁ', 'ጁ', 'ኦ', 'ሴ', - 'ኦ', 'ኖ', 'ዲ'], + 'ኦ', 'ኖ', 'ዲ'], STANDALONENARROWMONTHS: ['ጃ', 'ፌ', 'ማ', 'ኤ', 'ሜ', 'ጁ', 'ጁ', - 'ኦ', 'ሴ', 'ኦ', 'ኖ', 'ዲ'], + 'ኦ', 'ሴ', 'ኦ', 'ኖ', 'ዲ'], MONTHS: ['ጃንዩወሪ', 'ፌብሩወሪ', 'ማርች', 'ኤፕረል', - 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', 'ሴፕቴምበር', - 'ኦክተውበር', 'ኖቬምበር', 'ዲሴምበር'], + 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', 'ሴፕቴምበር', + 'ኦክተውበር', 'ኖቬምበር', 'ዲሴምበር'], STANDALONEMONTHS: ['ጃንዩወሪ', 'ፌብሩወሪ', 'ማርች', - 'ኤፕረል', 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', - 'ሴፕቴምበር', 'ኦክተውበር', 'ኖቬምበር', - 'ዲሴምበር'], + 'ኤፕረል', 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', + 'ሴፕቴምበር', 'ኦክተውበር', 'ኖቬምበር', + 'ዲሴምበር'], SHORTMONTHS: ['ጃንዩ', 'ፌብሩ', 'ማርች', 'ኤፕረ', 'ሜይ', - 'ጁን', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', 'ኖቬም', - 'ዲሴም'], + 'ጁን', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', 'ኖቬም', + 'ዲሴም'], STANDALONESHORTMONTHS: ['ጃንዩ', 'ፌብሩ', 'ማርች', 'ኤፕረ', - 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', - 'ኖቬም', 'ዲሴም'], + 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', + 'ኖቬም', 'ዲሴም'], WEEKDAYS: ['ሰንበት ዓባይ', 'ሰኖ', 'ታላሸኖ', - 'ኣረርባዓ', 'ከሚሽ', 'ጅምዓት', 'ሰንበት ንኢሽ'], + 'ኣረርባዓ', 'ከሚሽ', 'ጅምዓት', 'ሰንበት ንኢሽ'], STANDALONEWEEKDAYS: ['ሰንበት ዓባይ', 'ሰኖ', 'ታላሸኖ', - 'ኣረርባዓ', 'ከሚሽ', 'ጅምዓት', 'ሰንበት ንኢሽ'], + 'ኣረርባዓ', 'ከሚሽ', 'ጅምዓት', 'ሰንበት ንኢሽ'], SHORTWEEKDAYS: ['ሰ/ዓ', 'ሰኖ', 'ታላሸ', 'ኣረር', 'ከሚሽ', - 'ጅምዓ', 'ሰ/ን'], + 'ጅምዓ', 'ሰ/ን'], STANDALONESHORTWEEKDAYS: ['ሰ/ዓ', 'ሰኖ', 'ታላሸ', 'ኣረር', - 'ከሚሽ', 'ጅምዓ', 'ሰ/ን'], + 'ከሚሽ', 'ጅምዓ', 'ሰ/ን'], NARROWWEEKDAYS: ['ሰ', 'ሰ', 'ታ', 'ኣ', 'ከ', 'ጅ', 'ሰ'], STANDALONENARROWWEEKDAYS: ['ሰ', 'ሰ', 'ታ', 'ኣ', 'ከ', 'ጅ', 'ሰ'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['ቀደም ሰርምዕል', 'ሓቆ ስርምዕል'], DATEFORMATS: ['EEEE፡ dd MMMM ዮም y G', 'dd MMMM y', 'dd-MMM-y', - 'dd/MM/yy'], + 'dd/MM/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -12944,36 +17315,43 @@ goog.i18n.DateTimeSymbols_tn = { ERANAMES: ['BCE', 'CE'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['Ferikgong', 'Tlhakole', 'Mopitlo', 'Moranang', 'Motsheganang', - 'Seetebosigo', 'Phukwi', 'Phatwe', 'Lwetse', 'Diphalane', 'Ngwanatsele', - 'Sedimonthole'], + 'Seetebosigo', 'Phukwi', 'Phatwe', 'Lwetse', 'Diphalane', 'Ngwanatsele', + 'Sedimonthole'], STANDALONEMONTHS: ['Ferikgong', 'Tlhakole', 'Mopitlo', 'Moranang', - 'Motsheganang', 'Seetebosigo', 'Phukwi', 'Phatwe', 'Lwetse', 'Diphalane', - 'Ngwanatsele', 'Sedimonthole'], + 'Motsheganang', 'Seetebosigo', 'Phukwi', 'Phatwe', 'Lwetse', 'Diphalane', + 'Ngwanatsele', 'Sedimonthole'], SHORTMONTHS: ['Fer', 'Tlh', 'Mop', 'Mor', 'Mot', 'See', 'Phu', 'Pha', 'Lwe', - 'Dip', 'Ngw', 'Sed'], + 'Dip', 'Ngw', 'Sed'], STANDALONESHORTMONTHS: ['Fer', 'Tlh', 'Mop', 'Mor', 'Mot', 'See', 'Phu', - 'Pha', 'Lwe', 'Dip', 'Ngw', 'Sed'], + 'Pha', 'Lwe', 'Dip', 'Ngw', 'Sed'], WEEKDAYS: ['Tshipi', 'Mosopulogo', 'Labobedi', 'Laboraro', 'Labone', - 'Labotlhano', 'Matlhatso'], + 'Labotlhano', 'Matlhatso'], STANDALONEWEEKDAYS: ['Tshipi', 'Mosopulogo', 'Labobedi', 'Laboraro', 'Labone', - 'Labotlhano', 'Matlhatso'], + 'Labotlhano', 'Matlhatso'], SHORTWEEKDAYS: ['Tsh', 'Mos', 'Bed', 'Rar', 'Ne', 'Tla', 'Mat'], STANDALONESHORTWEEKDAYS: ['Tsh', 'Mos', 'Bed', 'Rar', 'Ne', 'Tla', 'Mat'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, y MMMM dd', 'y MMMM d', 'y MMM d', 'yyyy-MM-dd'], + DATEFORMATS: ['y MMMM d, EEEE', 'y MMMM d', 'y MMM d', 'y-MM-dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 }; +/** + * Date/time formatting symbols for locale tn_BW. + */ +goog.i18n.DateTimeSymbols_tn_BW = goog.i18n.DateTimeSymbols_tn; + + /** * Date/time formatting symbols for locale tn_ZA. */ @@ -12988,23 +17366,23 @@ goog.i18n.DateTimeSymbols_to = { ERANAMES: ['ki muʻa', 'taʻu ʻo Sīsū'], NARROWMONTHS: ['S', 'F', 'M', 'E', 'M', 'S', 'S', 'A', 'S', 'O', 'N', 'T'], STANDALONENARROWMONTHS: ['S', 'F', 'M', 'E', 'M', 'S', 'S', 'A', 'S', 'O', - 'N', 'T'], + 'N', 'T'], MONTHS: ['Sānuali', 'Fēpueli', 'Maʻasi', 'ʻEpeleli', 'Mē', 'Sune', - 'Siulai', 'ʻAokosi', 'Sepitema', 'ʻOkatopa', 'Nōvema', 'Tīsema'], + 'Siulai', 'ʻAokosi', 'Sepitema', 'ʻOkatopa', 'Nōvema', 'Tīsema'], STANDALONEMONTHS: ['Sānuali', 'Fēpueli', 'Maʻasi', 'ʻEpeleli', 'Mē', - 'Sune', 'Siulai', 'ʻAokosi', 'Sēpitema', 'ʻOkatopa', 'Nōvema', - 'Tīsema'], + 'Sune', 'Siulai', 'ʻAokosi', 'Sepitema', 'ʻOkatopa', 'Nōvema', + 'Tīsema'], SHORTMONTHS: ['Sān', 'Fēp', 'Maʻa', 'ʻEpe', 'Mē', 'Sun', 'Siu', 'ʻAok', - 'Sep', 'ʻOka', 'Nōv', 'Tīs'], + 'Sep', 'ʻOka', 'Nōv', 'Tīs'], STANDALONESHORTMONTHS: ['Sān', 'Fēp', 'Maʻa', 'ʻEpe', 'Mē', 'Sun', 'Siu', - 'ʻAok', 'Sēp', 'ʻOka', 'Nōv', 'Tīs'], + 'ʻAok', 'Sep', 'ʻOka', 'Nōv', 'Tīs'], WEEKDAYS: ['Sāpate', 'Mōnite', 'Tūsite', 'Pulelulu', 'Tuʻapulelulu', - 'Falaite', 'Tokonaki'], + 'Falaite', 'Tokonaki'], STANDALONEWEEKDAYS: ['Sāpate', 'Mōnite', 'Tūsite', 'Pulelulu', - 'Tuʻapulelulu', 'Falaite', 'Tokonaki'], + 'Tuʻapulelulu', 'Falaite', 'Tokonaki'], SHORTWEEKDAYS: ['Sāp', 'Mōn', 'Tūs', 'Pul', 'Tuʻa', 'Fal', 'Tok'], STANDALONESHORTWEEKDAYS: ['Sāp', 'Mōn', 'Tūs', 'Pul', 'Tuʻa', 'Fal', - 'Tok'], + 'Tok'], NARROWWEEKDAYS: ['S', 'M', 'T', 'P', 'T', 'F', 'T'], STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'P', 'T', 'F', 'T'], SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], @@ -13012,6 +17390,7 @@ goog.i18n.DateTimeSymbols_to = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -13024,6 +17403,43 @@ goog.i18n.DateTimeSymbols_to = { goog.i18n.DateTimeSymbols_to_TO = goog.i18n.DateTimeSymbols_to; +/** + * Date/time formatting symbols for locale tr_CY. + */ +goog.i18n.DateTimeSymbols_tr_CY = { + ERAS: ['MÖ', 'MS'], + ERANAMES: ['Milattan Önce', 'Milattan Sonra'], + NARROWMONTHS: ['O', 'Ş', 'M', 'N', 'M', 'H', 'T', 'A', 'E', 'E', 'K', 'A'], + STANDALONENARROWMONTHS: ['O', 'Ş', 'M', 'N', 'M', 'H', 'T', 'A', 'E', 'E', + 'K', 'A'], + MONTHS: ['Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', 'Temmuz', + 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık'], + STANDALONEMONTHS: ['Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', + 'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık'], + SHORTMONTHS: ['Oca', 'Şub', 'Mar', 'Nis', 'May', 'Haz', 'Tem', 'Ağu', 'Eyl', + 'Eki', 'Kas', 'Ara'], + STANDALONESHORTMONTHS: ['Oca', 'Şub', 'Mar', 'Nis', 'May', 'Haz', 'Tem', + 'Ağu', 'Eyl', 'Eki', 'Kas', 'Ara'], + WEEKDAYS: ['Pazar', 'Pazartesi', 'Salı', 'Çarşamba', 'Perşembe', 'Cuma', + 'Cumartesi'], + STANDALONEWEEKDAYS: ['Pazar', 'Pazartesi', 'Salı', 'Çarşamba', 'Perşembe', + 'Cuma', 'Cumartesi'], + SHORTWEEKDAYS: ['Paz', 'Pzt', 'Sal', 'Çar', 'Per', 'Cum', 'Cmt'], + STANDALONESHORTWEEKDAYS: ['Paz', 'Pzt', 'Sal', 'Çar', 'Per', 'Cum', 'Cmt'], + NARROWWEEKDAYS: ['P', 'P', 'S', 'Ç', 'P', 'C', 'C'], + STANDALONENARROWWEEKDAYS: ['P', 'P', 'S', 'Ç', 'P', 'C', 'C'], + SHORTQUARTERS: ['Ç1', 'Ç2', 'Ç3', 'Ç4'], + QUARTERS: ['1. çeyrek', '2. çeyrek', '3. çeyrek', '4. çeyrek'], + AMPMS: ['ÖÖ', 'ÖS'], + DATEFORMATS: ['d MMMM y EEEE', 'd MMMM y', 'd MMM y', 'd MM y'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + /** * Date/time formatting symbols for locale tr_TR. */ @@ -13032,28 +17448,29 @@ goog.i18n.DateTimeSymbols_tr_TR = { ERANAMES: ['Milattan Önce', 'Milattan Sonra'], NARROWMONTHS: ['O', 'Ş', 'M', 'N', 'M', 'H', 'T', 'A', 'E', 'E', 'K', 'A'], STANDALONENARROWMONTHS: ['O', 'Ş', 'M', 'N', 'M', 'H', 'T', 'A', 'E', 'E', - 'K', 'A'], + 'K', 'A'], MONTHS: ['Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', 'Temmuz', - 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık'], + 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık'], STANDALONEMONTHS: ['Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', - 'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık'], + 'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık'], SHORTMONTHS: ['Oca', 'Şub', 'Mar', 'Nis', 'May', 'Haz', 'Tem', 'Ağu', 'Eyl', - 'Eki', 'Kas', 'Ara'], + 'Eki', 'Kas', 'Ara'], STANDALONESHORTMONTHS: ['Oca', 'Şub', 'Mar', 'Nis', 'May', 'Haz', 'Tem', - 'Ağu', 'Eyl', 'Eki', 'Kas', 'Ara'], + 'Ağu', 'Eyl', 'Eki', 'Kas', 'Ara'], WEEKDAYS: ['Pazar', 'Pazartesi', 'Salı', 'Çarşamba', 'Perşembe', 'Cuma', - 'Cumartesi'], + 'Cumartesi'], STANDALONEWEEKDAYS: ['Pazar', 'Pazartesi', 'Salı', 'Çarşamba', 'Perşembe', - 'Cuma', 'Cumartesi'], + 'Cuma', 'Cumartesi'], SHORTWEEKDAYS: ['Paz', 'Pzt', 'Sal', 'Çar', 'Per', 'Cum', 'Cmt'], STANDALONESHORTWEEKDAYS: ['Paz', 'Pzt', 'Sal', 'Çar', 'Per', 'Cum', 'Cmt'], NARROWWEEKDAYS: ['P', 'P', 'S', 'Ç', 'P', 'C', 'C'], STANDALONENARROWWEEKDAYS: ['P', 'P', 'S', 'Ç', 'P', 'C', 'C'], SHORTQUARTERS: ['Ç1', 'Ç2', 'Ç3', 'Ç4'], QUARTERS: ['1. çeyrek', '2. çeyrek', '3. çeyrek', '4. çeyrek'], - AMPMS: ['AM', 'PM'], - DATEFORMATS: ['d MMMM y EEEE', 'd MMMM y', 'd MMM y', 'dd MM yyyy'], + AMPMS: ['ÖÖ', 'ÖS'], + DATEFORMATS: ['d MMMM y EEEE', 'd MMMM y', 'd MMM y', 'd MM y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -13068,31 +17485,32 @@ goog.i18n.DateTimeSymbols_ts = { ERANAMES: ['BCE', 'CE'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['Sunguti', 'Nyenyenyani', 'Nyenyankulu', 'Dzivamisoko', 'Mudyaxihi', - 'Khotavuxika', 'Mawuwani', 'Mhawuri', 'Ndzhati', 'Nhlangula', 'Hukuri', - 'N\'wendzamhala'], + 'Khotavuxika', 'Mawuwani', 'Mhawuri', 'Ndzhati', 'Nhlangula', 'Hukuri', + 'N\'wendzamhala'], STANDALONEMONTHS: ['Sunguti', 'Nyenyenyani', 'Nyenyankulu', 'Dzivamisoko', - 'Mudyaxihi', 'Khotavuxika', 'Mawuwani', 'Mhawuri', 'Ndzhati', 'Nhlangula', - 'Hukuri', 'N\'wendzamhala'], + 'Mudyaxihi', 'Khotavuxika', 'Mawuwani', 'Mhawuri', 'Ndzhati', 'Nhlangula', + 'Hukuri', 'N\'wendzamhala'], SHORTMONTHS: ['Sun', 'Yan', 'Kul', 'Dzi', 'Mud', 'Kho', 'Maw', 'Mha', 'Ndz', - 'Nhl', 'Huk', 'N\'w'], + 'Nhl', 'Huk', 'N\'w'], STANDALONESHORTMONTHS: ['Sun', 'Yan', 'Kul', 'Dzi', 'Mud', 'Kho', 'Maw', - 'Mha', 'Ndz', 'Nhl', 'Huk', 'N\'w'], + 'Mha', 'Ndz', 'Nhl', 'Huk', 'N\'w'], WEEKDAYS: ['Sonto', 'Musumbhunuku', 'Ravumbirhi', 'Ravunharhu', 'Ravumune', - 'Ravuntlhanu', 'Mugqivela'], + 'Ravuntlhanu', 'Mugqivela'], STANDALONEWEEKDAYS: ['Sonto', 'Musumbhunuku', 'Ravumbirhi', 'Ravunharhu', - 'Ravumune', 'Ravuntlhanu', 'Mugqivela'], + 'Ravumune', 'Ravuntlhanu', 'Mugqivela'], SHORTWEEKDAYS: ['Son', 'Mus', 'Bir', 'Har', 'Ne', 'Tlh', 'Mug'], STANDALONESHORTWEEKDAYS: ['Son', 'Mus', 'Bir', 'Har', 'Ne', 'Tlh', 'Mug'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], QUARTERS: ['Kotara yo sungula', 'Kotara ya vumbirhi', 'Kotara ya vunharhu', - 'Kotara ya vumune'], + 'Kotara ya vumune'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, y MMMM dd', 'y MMMM d', 'y MMM d', 'yyyy-MM-dd'], + DATEFORMATS: ['y MMMM d, EEEE', 'y MMMM d', 'y MMM d', 'y-MM-dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -13113,29 +17531,30 @@ goog.i18n.DateTimeSymbols_twq = { ERANAMES: ['Isaa jine', 'Isaa zamanoo'], NARROWMONTHS: ['Ž', 'F', 'M', 'A', 'M', 'Ž', 'Ž', 'U', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['Ž', 'F', 'M', 'A', 'M', 'Ž', 'Ž', 'U', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Žanwiye', 'Feewiriye', 'Marsi', 'Awiril', 'Me', 'Žuweŋ', - 'Žuyye', 'Ut', 'Sektanbur', 'Oktoobur', 'Noowanbur', 'Deesanbur'], + 'Žuyye', 'Ut', 'Sektanbur', 'Oktoobur', 'Noowanbur', 'Deesanbur'], STANDALONEMONTHS: ['Žanwiye', 'Feewiriye', 'Marsi', 'Awiril', 'Me', - 'Žuweŋ', 'Žuyye', 'Ut', 'Sektanbur', 'Oktoobur', 'Noowanbur', - 'Deesanbur'], + 'Žuweŋ', 'Žuyye', 'Ut', 'Sektanbur', 'Oktoobur', 'Noowanbur', + 'Deesanbur'], SHORTMONTHS: ['Žan', 'Fee', 'Mar', 'Awi', 'Me', 'Žuw', 'Žuy', 'Ut', 'Sek', - 'Okt', 'Noo', 'Dee'], + 'Okt', 'Noo', 'Dee'], STANDALONESHORTMONTHS: ['Žan', 'Fee', 'Mar', 'Awi', 'Me', 'Žuw', 'Žuy', - 'Ut', 'Sek', 'Okt', 'Noo', 'Dee'], + 'Ut', 'Sek', 'Okt', 'Noo', 'Dee'], WEEKDAYS: ['Alhadi', 'Atinni', 'Atalaata', 'Alarba', 'Alhamiisa', 'Alzuma', - 'Asibti'], + 'Asibti'], STANDALONEWEEKDAYS: ['Alhadi', 'Atinni', 'Atalaata', 'Alarba', 'Alhamiisa', - 'Alzuma', 'Asibti'], + 'Alzuma', 'Asibti'], SHORTWEEKDAYS: ['Alh', 'Ati', 'Ata', 'Ala', 'Alm', 'Alz', 'Asi'], STANDALONESHORTWEEKDAYS: ['Alh', 'Ati', 'Ata', 'Ala', 'Alm', 'Alz', 'Asi'], NARROWWEEKDAYS: ['H', 'T', 'T', 'L', 'L', 'L', 'S'], STANDALONENARROWWEEKDAYS: ['H', 'T', 'T', 'L', 'L', 'L', 'S'], SHORTQUARTERS: ['A1', 'A2', 'A3', 'A4'], QUARTERS: ['Arrubu 1', 'Arrubu 2', 'Arrubu 3', 'Arrubu 4'], - AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/yyyy'], + AMPMS: ['Subbaahi', 'Zaarikay b'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -13156,32 +17575,33 @@ goog.i18n.DateTimeSymbols_tzm = { ERANAMES: ['Zdat Ɛisa (TAƔ)', 'Ḍeffir Ɛisa (TAƔ)'], NARROWMONTHS: ['Y', 'Y', 'M', 'I', 'M', 'Y', 'Y', 'Ɣ', 'C', 'K', 'N', 'D'], STANDALONENARROWMONTHS: ['Y', 'Y', 'M', 'I', 'M', 'Y', 'Y', 'Ɣ', 'C', 'K', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Yennayer', 'Yebrayer', 'Mars', 'Ibrir', 'Mayyu', 'Yunyu', 'Yulyuz', - 'Ɣuct', 'Cutanbir', 'Kṭuber', 'Nwanbir', 'Dujanbir'], + 'Ɣuct', 'Cutanbir', 'Kṭuber', 'Nwanbir', 'Dujanbir'], STANDALONEMONTHS: ['Yennayer', 'Yebrayer', 'Mars', 'Ibrir', 'Mayyu', 'Yunyu', - 'Yulyuz', 'Ɣuct', 'Cutanbir', 'Kṭuber', 'Nwanbir', 'Dujanbir'], + 'Yulyuz', 'Ɣuct', 'Cutanbir', 'Kṭuber', 'Nwanbir', 'Dujanbir'], SHORTMONTHS: ['Yen', 'Yeb', 'Mar', 'Ibr', 'May', 'Yun', 'Yul', 'Ɣuc', 'Cut', - 'Kṭu', 'Nwa', 'Duj'], + 'Kṭu', 'Nwa', 'Duj'], STANDALONESHORTMONTHS: ['Yen', 'Yeb', 'Mar', 'Ibr', 'May', 'Yun', 'Yul', - 'Ɣuc', 'Cut', 'Kṭu', 'Nwa', 'Duj'], + 'Ɣuc', 'Cut', 'Kṭu', 'Nwa', 'Duj'], WEEKDAYS: ['Asamas', 'Aynas', 'Asinas', 'Akras', 'Akwas', 'Asimwas', - 'Asiḍyas'], + 'Asiḍyas'], STANDALONEWEEKDAYS: ['Asamas', 'Aynas', 'Asinas', 'Akras', 'Akwas', 'Asimwas', - 'Asiḍyas'], + 'Asiḍyas'], SHORTWEEKDAYS: ['Asa', 'Ayn', 'Asn', 'Akr', 'Akw', 'Asm', 'Asḍ'], STANDALONESHORTWEEKDAYS: ['Asa', 'Ayn', 'Asn', 'Akr', 'Akw', 'Asm', 'Asḍ'], NARROWWEEKDAYS: ['A', 'A', 'A', 'A', 'A', 'A', 'A'], STANDALONENARROWWEEKDAYS: ['A', 'A', 'A', 'A', 'A', 'A', 'A'], SHORTQUARTERS: ['IA1', 'IA2', 'IA3', 'IA4'], QUARTERS: ['Imir adamsan 1', 'Imir adamsan 2', 'Imir adamsan 3', - 'Imir adamsan 4'], + 'Imir adamsan 4'], AMPMS: ['Zdat azal', 'Ḍeffir aza'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], - FIRSTDAYOFWEEK: 0, - WEEKENDRANGE: [5, 6], - FIRSTWEEKCUTOFFDAY: 6 + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], + FIRSTDAYOFWEEK: 5, + WEEKENDRANGE: [4, 5], + FIRSTWEEKCUTOFFDAY: 4 }; @@ -13204,37 +17624,38 @@ goog.i18n.DateTimeSymbols_uk_UA = { ERAS: ['до н.е.', 'н.е.'], ERANAMES: ['до нашої ери', 'нашої ери'], NARROWMONTHS: ['С', 'Л', 'Б', 'К', 'Т', 'Ч', 'Л', 'С', 'В', 'Ж', - 'Л', 'Г'], + 'Л', 'Г'], STANDALONENARROWMONTHS: ['С', 'Л', 'Б', 'К', 'Т', 'Ч', 'Л', 'С', 'В', - 'Ж', 'Л', 'Г'], + 'Ж', 'Л', 'Г'], MONTHS: ['січня', 'лютого', 'березня', 'квітня', - 'травня', 'червня', 'липня', 'серпня', - 'вересня', 'жовтня', 'листопада', 'грудня'], + 'травня', 'червня', 'липня', 'серпня', + 'вересня', 'жовтня', 'листопада', 'грудня'], STANDALONEMONTHS: ['Січень', 'Лютий', 'Березень', - 'Квітень', 'Травень', 'Червень', 'Липень', - 'Серпень', 'Вересень', 'Жовтень', - 'Листопад', 'Грудень'], + 'Квітень', 'Травень', 'Червень', 'Липень', + 'Серпень', 'Вересень', 'Жовтень', 'Листопад', + 'Грудень'], SHORTMONTHS: ['січ.', 'лют.', 'бер.', 'квіт.', 'трав.', - 'черв.', 'лип.', 'серп.', 'вер.', 'жовт.', 'лист.', - 'груд.'], + 'черв.', 'лип.', 'серп.', 'вер.', 'жовт.', 'лист.', + 'груд.'], STANDALONESHORTMONTHS: ['Січ', 'Лют', 'Бер', 'Кві', 'Тра', - 'Чер', 'Лип', 'Сер', 'Вер', 'Жов', 'Лис', 'Гру'], + 'Чер', 'Лип', 'Сер', 'Вер', 'Жов', 'Лис', 'Гру'], WEEKDAYS: ['Неділя', 'Понеділок', 'Вівторок', - 'Середа', 'Четвер', 'Пʼятниця', 'Субота'], + 'Середа', 'Четвер', 'Пʼятниця', 'Субота'], STANDALONEWEEKDAYS: ['Неділя', 'Понеділок', 'Вівторок', - 'Середа', 'Четвер', 'Пʼятниця', 'Субота'], + 'Середа', 'Четвер', 'Пʼятниця', 'Субота'], SHORTWEEKDAYS: ['Нд', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'], STANDALONESHORTWEEKDAYS: ['Нд', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', - 'Сб'], + 'Сб'], NARROWWEEKDAYS: ['Н', 'П', 'В', 'С', 'Ч', 'П', 'С'], STANDALONENARROWWEEKDAYS: ['Н', 'П', 'В', 'С', 'Ч', 'П', 'С'], SHORTQUARTERS: ['I кв.', 'II кв.', 'III кв.', 'IV кв.'], QUARTERS: ['I квартал', 'II квартал', 'III квартал', - 'IV квартал'], + 'IV квартал'], AMPMS: ['дп', 'пп'], DATEFORMATS: ['EEEE, d MMMM y \'р\'.', 'd MMMM y \'р\'.', 'd MMM y', - 'dd.MM.yy'], + 'dd.MM.yy'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -13246,40 +17667,41 @@ goog.i18n.DateTimeSymbols_uk_UA = { */ goog.i18n.DateTimeSymbols_ur_IN = { ZERODIGIT: 0x06F0, - ERAS: ['ق م', 'عيسوی سن'], - ERANAMES: ['قبل مسيح', 'عيسوی سن'], - NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], - STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], - MONTHS: ['جنوری', 'فروری', 'مارچ', 'اپريل', 'مئ', - 'جون', 'جولائ', 'اگست', 'ستمبر', 'اکتوبر', - 'نومبر', 'دسمبر'], - STANDALONEMONTHS: ['جنوری', 'فروری', 'مارچ', 'اپريل', - 'مئ', 'جون', 'جولائ', 'اگست', 'ستمبر', 'اکتوبر', - 'نومبر', 'دسمبر'], - SHORTMONTHS: ['جنوری', 'فروری', 'مارچ', 'اپريل', 'مئ', - 'جون', 'جولائ', 'اگست', 'ستمبر', 'اکتوبر', - 'نومبر', 'دسمبر'], - STANDALONESHORTMONTHS: ['جنوری', 'فروری', 'مارچ', 'اپريل', - 'مئ', 'جون', 'جولائ', 'اگست', 'ستمبر', 'اکتوبر', - 'نومبر', 'دسمبر'], - WEEKDAYS: ['اتوار', 'پير', 'منگل', 'بده', 'جمعرات', - 'جمعہ', 'ہفتہ'], - STANDALONEWEEKDAYS: ['اتوار', 'پير', 'منگل', 'بده', - 'جمعرات', 'جمعہ', 'ہفتہ'], - SHORTWEEKDAYS: ['اتوار', 'پير', 'منگل', 'بده', 'جمعرات', - 'جمعہ', 'ہفتہ'], - STANDALONESHORTWEEKDAYS: ['اتوار', 'پير', 'منگل', 'بده', - 'جمعرات', 'جمعہ', 'ہفتہ'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + ERAS: ['ق م', 'عیسوی سن'], + ERANAMES: ['قبل مسیح', 'عیسوی سن'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئ', + 'جون', 'جولائ', 'اگست', 'ستمبر', 'اکتوبر', + 'نومبر', 'دسمبر'], + STANDALONEMONTHS: ['جنوری', 'فروری', 'مارچ', 'اپریل', + 'مئ', 'جون', 'جولائ', 'اگست', 'ستمبر', 'اکتوبر', + 'نومبر', 'دسمبر'], + SHORTMONTHS: ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئ', + 'جون', 'جولائ', 'اگست', 'ستمبر', 'اکتوبر', + 'نومبر', 'دسمبر'], + STANDALONESHORTMONTHS: ['جنوری', 'فروری', 'مارچ', 'اپریل', + 'مئ', 'جون', 'جولائ', 'اگست', 'ستمبر', 'اکتوبر', + 'نومبر', 'دسمبر'], + WEEKDAYS: ['اتوار', 'پیر', 'منگل', 'بده', 'جمعرات', + 'جمعہ', 'ہفتہ'], + STANDALONEWEEKDAYS: ['اتوار', 'پیر', 'منگل', 'بده', + 'جمعرات', 'جمعہ', 'ہفتہ'], + SHORTWEEKDAYS: ['اتوار', 'پیر', 'منگل', 'بده', 'جمعرات', + 'جمعہ', 'ہفتہ'], + STANDALONESHORTWEEKDAYS: ['اتوار', 'پیر', 'منگل', 'بده', + 'جمعرات', 'جمعہ', 'ہفتہ'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['پہلی سہ ماہی', 'دوسری سہ ماہی', - 'تيسری سہ ماہی', 'چوتهی سہ ماہی'], + 'تیسری سہ ماہی', 'چوتهی سہ ماہی'], QUARTERS: ['پہلی سہ ماہی', 'دوسری سہ ماہی', - 'تيسری سہ ماہی', 'چوتهی سہ ماہی'], - AMPMS: ['دن', 'رات'], - DATEFORMATS: ['EEEE؍ d؍ MMMM y', 'd؍ MMMM y', 'd؍ MMM y', 'd/M/yy'], + 'تیسری سہ ماہی', 'چوتهی سہ ماہی'], + AMPMS: ['قبل دوپہر', 'بعد دوپہر'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'd MMM، y', 'd/M/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [6, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -13290,40 +17712,41 @@ goog.i18n.DateTimeSymbols_ur_IN = { * Date/time formatting symbols for locale ur_PK. */ goog.i18n.DateTimeSymbols_ur_PK = { - ERAS: ['ق م', 'عيسوی سن'], - ERANAMES: ['قبل مسيح', 'عيسوی سن'], - NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], - STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], - MONTHS: ['جنوری', 'فروری', 'مارچ', 'اپريل', 'مئ', - 'جون', 'جولائ', 'اگست', 'ستمبر', 'اکتوبر', - 'نومبر', 'دسمبر'], - STANDALONEMONTHS: ['جنوری', 'فروری', 'مارچ', 'اپريل', - 'مئ', 'جون', 'جولائ', 'اگست', 'ستمبر', 'اکتوبر', - 'نومبر', 'دسمبر'], - SHORTMONTHS: ['جنوری', 'فروری', 'مارچ', 'اپريل', 'مئ', - 'جون', 'جولائ', 'اگست', 'ستمبر', 'اکتوبر', - 'نومبر', 'دسمبر'], - STANDALONESHORTMONTHS: ['جنوری', 'فروری', 'مارچ', 'اپريل', - 'مئ', 'جون', 'جولائ', 'اگست', 'ستمبر', 'اکتوبر', - 'نومبر', 'دسمبر'], - WEEKDAYS: ['اتوار', 'پير', 'منگل', 'بده', 'جمعرات', - 'جمعہ', 'ہفتہ'], - STANDALONEWEEKDAYS: ['اتوار', 'پير', 'منگل', 'بده', - 'جمعرات', 'جمعہ', 'ہفتہ'], - SHORTWEEKDAYS: ['اتوار', 'پير', 'منگل', 'بده', 'جمعرات', - 'جمعہ', 'ہفتہ'], - STANDALONESHORTWEEKDAYS: ['اتوار', 'پير', 'منگل', 'بده', - 'جمعرات', 'جمعہ', 'ہفتہ'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + ERAS: ['ق م', 'عیسوی سن'], + ERANAMES: ['قبل مسیح', 'عیسوی سن'], + NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', + 'N', 'D'], + MONTHS: ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئ', + 'جون', 'جولائ', 'اگست', 'ستمبر', 'اکتوبر', + 'نومبر', 'دسمبر'], + STANDALONEMONTHS: ['جنوری', 'فروری', 'مارچ', 'اپریل', + 'مئ', 'جون', 'جولائ', 'اگست', 'ستمبر', 'اکتوبر', + 'نومبر', 'دسمبر'], + SHORTMONTHS: ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئ', + 'جون', 'جولائ', 'اگست', 'ستمبر', 'اکتوبر', + 'نومبر', 'دسمبر'], + STANDALONESHORTMONTHS: ['جنوری', 'فروری', 'مارچ', 'اپریل', + 'مئ', 'جون', 'جولائ', 'اگست', 'ستمبر', 'اکتوبر', + 'نومبر', 'دسمبر'], + WEEKDAYS: ['اتوار', 'پیر', 'منگل', 'بده', 'جمعرات', + 'جمعہ', 'ہفتہ'], + STANDALONEWEEKDAYS: ['اتوار', 'پیر', 'منگل', 'بده', + 'جمعرات', 'جمعہ', 'ہفتہ'], + SHORTWEEKDAYS: ['اتوار', 'پیر', 'منگل', 'بده', 'جمعرات', + 'جمعہ', 'ہفتہ'], + STANDALONESHORTWEEKDAYS: ['اتوار', 'پیر', 'منگل', 'بده', + 'جمعرات', 'جمعہ', 'ہفتہ'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['پہلی سہ ماہی', 'دوسری سہ ماہی', - 'تيسری سہ ماہی', 'چوتهی سہ ماہی'], + 'تیسری سہ ماہی', 'چوتهی سہ ماہی'], QUARTERS: ['پہلی سہ ماہی', 'دوسری سہ ماہی', - 'تيسری سہ ماہی', 'چوتهی سہ ماہی'], - AMPMS: ['دن', 'رات'], - DATEFORMATS: ['EEEE؍ d؍ MMMM y', 'd؍ MMMM y', 'd؍ MMM y', 'd/M/yy'], + 'تیسری سہ ماہی', 'چوتهی سہ ماہی'], + AMPMS: ['قبل دوپہر', 'بعد دوپہر'], + DATEFORMATS: ['EEEE، d MMMM، y', 'd MMMM، y', 'd MMM، y', 'd/M/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -13337,27 +17760,27 @@ goog.i18n.DateTimeSymbols_uz = { ERAS: ['BCE', 'CE'], ERANAMES: ['BCE', 'CE'], NARROWMONTHS: ['Я', 'Ф', 'М', 'А', 'М', 'И', 'И', 'А', 'С', 'О', - 'Н', 'Д'], + 'Н', 'Д'], STANDALONENARROWMONTHS: ['Я', 'Ф', 'М', 'А', 'М', 'И', 'И', 'А', 'С', - 'О', 'Н', 'Д'], + 'О', 'Н', 'Д'], MONTHS: ['Январ', 'Феврал', 'Март', 'Апрел', 'Май', - 'Июн', 'Июл', 'Август', 'Сентябр', 'Октябр', - 'Ноябр', 'Декабр'], + 'Июн', 'Июл', 'Август', 'Сентябр', 'Октябр', + 'Ноябр', 'Декабр'], STANDALONEMONTHS: ['Январ', 'Феврал', 'Март', 'Апрел', - 'Май', 'Июн', 'Июл', 'Август', 'Сентябр', - 'Октябр', 'Ноябр', 'Декабр'], + 'Май', 'Июн', 'Июл', 'Август', 'Сентябр', + 'Октябр', 'Ноябр', 'Декабр'], SHORTMONTHS: ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', - 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'], + 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'], STANDALONESHORTMONTHS: ['Янв', 'Фев', 'Мар', 'Апр', 'Май', - 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'], + 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'], WEEKDAYS: ['якшанба', 'душанба', 'сешанба', - 'чоршанба', 'пайшанба', 'жума', 'шанба'], + 'чоршанба', 'пайшанба', 'жума', 'шанба'], STANDALONEWEEKDAYS: ['якшанба', 'душанба', 'сешанба', - 'чоршанба', 'пайшанба', 'жума', 'шанба'], + 'чоршанба', 'пайшанба', 'жума', 'шанба'], SHORTWEEKDAYS: ['Якш', 'Душ', 'Сеш', 'Чор', 'Пай', 'Жум', - 'Шан'], + 'Шан'], STANDALONESHORTWEEKDAYS: ['Якш', 'Душ', 'Сеш', 'Чор', 'Пай', - 'Жум', 'Шан'], + 'Жум', 'Шан'], NARROWWEEKDAYS: ['Я', 'Д', 'С', 'Ч', 'П', 'Ж', 'Ш'], STANDALONENARROWWEEKDAYS: ['Я', 'Д', 'С', 'Ч', 'П', 'Ж', 'Ш'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], @@ -13365,6 +17788,7 @@ goog.i18n.DateTimeSymbols_uz = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, y MMMM dd', 'y MMMM d', 'y MMM d', 'yy/MM/dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -13379,23 +17803,23 @@ goog.i18n.DateTimeSymbols_uz_Arab = { ERAS: ['ق.م.', 'م.'], ERANAMES: ['ق.م.', 'م.'], NARROWMONTHS: ['Я', 'Ф', 'М', 'А', 'М', 'И', 'И', 'А', 'С', 'О', - 'Н', 'Д'], + 'Н', 'Д'], STANDALONENARROWMONTHS: ['Я', 'Ф', 'М', 'А', 'М', 'И', 'И', 'А', 'С', - 'О', 'Н', 'Д'], + 'О', 'Н', 'Д'], MONTHS: ['جنوری', 'فبروری', 'مارچ', 'اپریل', 'می', - 'جون', 'جولای', 'اگست', 'سپتمبر', 'اکتوبر', - 'نومبر', 'دسمبر'], + 'جون', 'جولای', 'اگست', 'سپتمبر', 'اکتوبر', + 'نومبر', 'دسمبر'], STANDALONEMONTHS: ['جنوری', 'فبروری', 'مارچ', 'اپریل', - 'می', 'جون', 'جولای', 'اگست', 'سپتمبر', - 'اکتوبر', 'نومبر', 'دسمبر'], + 'می', 'جون', 'جولای', 'اگست', 'سپتمبر', 'اکتوبر', + 'نومبر', 'دسمبر'], SHORTMONTHS: ['جنو', 'فبر', 'مار', 'اپر', 'مـی', 'جون', - 'جول', 'اگس', 'سپت', 'اکت', 'نوم', 'دسم'], + 'جول', 'اگس', 'سپت', 'اکت', 'نوم', 'دسم'], STANDALONESHORTMONTHS: ['جنو', 'فبر', 'مار', 'اپر', 'مـی', - 'جون', 'جول', 'اگس', 'سپت', 'اکت', 'نوم', 'دسم'], + 'جون', 'جول', 'اگس', 'سپت', 'اکت', 'نوم', 'دسم'], WEEKDAYS: ['یکشنبه', 'دوشنبه', 'سه‌شنبه', - 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], + 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], STANDALONEWEEKDAYS: ['یکشنبه', 'دوشنبه', 'سه‌شنبه', - 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], + 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'], SHORTWEEKDAYS: ['ی.', 'د.', 'س.', 'چ.', 'پ.', 'ج.', 'ش.'], STANDALONESHORTWEEKDAYS: ['ی.', 'د.', 'س.', 'چ.', 'پ.', 'ج.', 'ش.'], NARROWWEEKDAYS: ['Я', 'Д', 'С', 'Ч', 'П', 'Ж', 'Ш'], @@ -13404,8 +17828,9 @@ goog.i18n.DateTimeSymbols_uz_Arab = { QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['AM', 'PM'], DATEFORMATS: ['y نچی ییل d نچی MMMM EEEE کونی', - 'd نچی MMMM y', 'd MMM y', 'yyyy/M/d'], + 'd نچی MMMM y', 'd MMM y', 'y/M/d'], TIMEFORMATS: ['H:mm:ss (zzzz)', 'H:mm:ss (z)', 'H:mm:ss', 'H:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -13438,22 +17863,22 @@ goog.i18n.DateTimeSymbols_uz_Latn = { ERANAMES: ['BCE', 'CE'], NARROWMONTHS: ['Y', 'F', 'M', 'A', 'M', 'I', 'I', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['Y', 'F', 'M', 'A', 'M', 'I', 'I', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Yanvar', 'Fevral', 'Mart', 'Aprel', 'May', 'Iyun', 'Iyul', 'Avgust', - 'Sentyabr', 'Oktyabr', 'Noyabr', 'Dekabr'], + 'Sentyabr', 'Oktyabr', 'Noyabr', 'Dekabr'], STANDALONEMONTHS: ['Yanvar', 'Fevral', 'Mart', 'Aprel', 'May', 'Iyun', 'Iyul', - 'Avgust', 'Sentyabr', 'Oktyabr', 'Noyabr', 'Dekabr'], + 'Avgust', 'Sentyabr', 'Oktyabr', 'Noyabr', 'Dekabr'], SHORTMONTHS: ['Yanv', 'Fev', 'Mar', 'Apr', 'May', 'Iyun', 'Iyul', 'Avg', - 'Sen', 'Okt', 'Noya', 'Dek'], + 'Sen', 'Okt', 'Noya', 'Dek'], STANDALONESHORTMONTHS: ['Yanv', 'Fev', 'Mar', 'Apr', 'May', 'Iyun', 'Iyul', - 'Avg', 'Sen', 'Okt', 'Noya', 'Dek'], + 'Avg', 'Sen', 'Okt', 'Noya', 'Dek'], WEEKDAYS: ['yakshanba', 'dushanba', 'seshanba', 'chorshanba', 'payshanba', - 'cuma', 'shanba'], + 'cuma', 'shanba'], STANDALONEWEEKDAYS: ['yakshanba', 'dushanba', 'seshanba', 'chorshanba', - 'payshanba', 'cuma', 'shanba'], + 'payshanba', 'cuma', 'shanba'], SHORTWEEKDAYS: ['Yaksh', 'Dush', 'Sesh', 'Chor', 'Pay', 'Cum', 'Shan'], STANDALONESHORTWEEKDAYS: ['Yaksh', 'Dush', 'Sesh', 'Chor', 'Pay', 'Cum', - 'Shan'], + 'Shan'], NARROWWEEKDAYS: ['Y', 'D', 'S', 'C', 'P', 'C', 'S'], STANDALONENARROWWEEKDAYS: ['Y', 'D', 'S', 'C', 'P', 'C', 'S'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], @@ -13461,6 +17886,7 @@ goog.i18n.DateTimeSymbols_uz_Latn = { AMPMS: ['AM', 'PM'], DATEFORMATS: ['EEEE, y MMMM dd', 'y MMMM d', 'y MMM d', 'yy/MM/dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -13481,34 +17907,35 @@ goog.i18n.DateTimeSymbols_vai = { ERANAMES: ['BCE', 'CE'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['ꖨꕪꖃ ꔞꕮ', 'ꕒꕡꖝꖕ', 'ꕾꖺ', 'ꖢꖕ', 'ꖑꕱ', - '6', '7', 'ꗛꔕ', 'ꕢꕌ', 'ꕭꖃ', 'ꔞꘋꕔꕿ ꕸꖃꗏ', - 'ꖨꕪꕱ ꗏꕮ'], + '6', '7', 'ꗛꔕ', 'ꕢꕌ', 'ꕭꖃ', 'ꔞꘋꕔꕿ ꕸꖃꗏ', + 'ꖨꕪꕱ ꗏꕮ'], STANDALONEMONTHS: ['ꖨꕪꖃ ꔞꕮ', 'ꕒꕡꖝꖕ', 'ꕾꖺ', 'ꖢꖕ', - 'ꖑꕱ', '6', '7', 'ꗛꔕ', 'ꕢꕌ', 'ꕭꖃ', - 'ꔞꘋꕔꕿ ꕸꖃꗏ', 'ꖨꕪꕱ ꗏꕮ'], + 'ꖑꕱ', '6', '7', 'ꗛꔕ', 'ꕢꕌ', 'ꕭꖃ', 'ꔞꘋꕔꕿ ꕸꖃꗏ', + 'ꖨꕪꕱ ꗏꕮ'], SHORTMONTHS: ['ꖨꕪꖃ ꔞꕮ', 'ꕒꕡꖝꖕ', 'ꕾꖺ', 'ꖢꖕ', - 'ꖑꕱ', '6', '7', 'ꗛꔕ', 'ꕢꕌ', 'ꕭꖃ', - 'ꔞꘋꕔꕿ ꕸꖃꗏ', 'ꖨꕪꕱ ꗏꕮ'], + 'ꖑꕱ', '6', '7', 'ꗛꔕ', 'ꕢꕌ', 'ꕭꖃ', 'ꔞꘋꕔꕿ ꕸꖃꗏ', + 'ꖨꕪꕱ ꗏꕮ'], STANDALONESHORTMONTHS: ['ꖨꕪꖃ ꔞꕮ', 'ꕒꕡꖝꖕ', 'ꕾꖺ', - 'ꖢꖕ', 'ꖑꕱ', '6', '7', 'ꗛꔕ', 'ꕢꕌ', 'ꕭꖃ', - 'ꔞꘋꕔꕿ ꕸꖃꗏ', 'ꖨꕪꕱ ꗏꕮ'], + 'ꖢꖕ', 'ꖑꕱ', '6', '7', 'ꗛꔕ', 'ꕢꕌ', 'ꕭꖃ', + 'ꔞꘋꕔꕿ ꕸꖃꗏ', 'ꖨꕪꕱ ꗏꕮ'], WEEKDAYS: ['ꕞꕌꔵ', 'ꗳꗡꘉ', 'ꕚꕞꕚ', 'ꕉꕞꕒ', 'ꕉꔤꕆꕢ', - 'ꕉꔤꕀꕮ', 'ꔻꔬꔳ'], + 'ꕉꔤꕀꕮ', 'ꔻꔬꔳ'], STANDALONEWEEKDAYS: ['ꕞꕌꔵ', 'ꗳꗡꘉ', 'ꕚꕞꕚ', 'ꕉꕞꕒ', - 'ꕉꔤꕆꕢ', 'ꕉꔤꕀꕮ', 'ꔻꔬꔳ'], + 'ꕉꔤꕆꕢ', 'ꕉꔤꕀꕮ', 'ꔻꔬꔳ'], SHORTWEEKDAYS: ['ꕞꕌꔵ', 'ꗳꗡꘉ', 'ꕚꕞꕚ', 'ꕉꕞꕒ', - 'ꕉꔤꕆꕢ', 'ꕉꔤꕀꕮ', 'ꔻꔬꔳ'], + 'ꕉꔤꕆꕢ', 'ꕉꔤꕀꕮ', 'ꔻꔬꔳ'], STANDALONESHORTWEEKDAYS: ['ꕞꕌꔵ', 'ꗳꗡꘉ', 'ꕚꕞꕚ', 'ꕉꕞꕒ', - 'ꕉꔤꕆꕢ', 'ꕉꔤꕀꕮ', 'ꔻꔬꔳ'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + 'ꕉꔤꕆꕢ', 'ꕉꔤꕀꕮ', 'ꔻꔬꔳ'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -13523,30 +17950,31 @@ goog.i18n.DateTimeSymbols_vai_Latn = { ERANAMES: ['BCE', 'CE'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['luukao kemã', 'ɓandaɓu', 'vɔɔ', 'fulu', 'goo', '6', '7', - 'kɔnde', 'saah', 'galo', 'kenpkato ɓololɔ', 'luukao lɔma'], + 'kɔnde', 'saah', 'galo', 'kenpkato ɓololɔ', 'luukao lɔma'], STANDALONEMONTHS: ['luukao kemã', 'ɓandaɓu', 'vɔɔ', 'fulu', 'goo', '6', - '7', 'kɔnde', 'saah', 'galo', 'kenpkato ɓololɔ', 'luukao lɔma'], + '7', 'kɔnde', 'saah', 'galo', 'kenpkato ɓololɔ', 'luukao lɔma'], SHORTMONTHS: ['luukao kemã', 'ɓandaɓu', 'vɔɔ', 'fulu', 'goo', '6', '7', - 'kɔnde', 'saah', 'galo', 'kenpkato ɓololɔ', 'luukao lɔma'], + 'kɔnde', 'saah', 'galo', 'kenpkato ɓololɔ', 'luukao lɔma'], STANDALONESHORTMONTHS: ['luukao kemã', 'ɓandaɓu', 'vɔɔ', 'fulu', 'goo', - '6', '7', 'kɔnde', 'saah', 'galo', 'kenpkato ɓololɔ', 'luukao lɔma'], + '6', '7', 'kɔnde', 'saah', 'galo', 'kenpkato ɓololɔ', 'luukao lɔma'], WEEKDAYS: ['lahadi', 'tɛɛnɛɛ', 'talata', 'alaba', 'aimisa', 'aijima', - 'siɓiti'], + 'siɓiti'], STANDALONEWEEKDAYS: ['lahadi', 'tɛɛnɛɛ', 'talata', 'alaba', 'aimisa', - 'aijima', 'siɓiti'], + 'aijima', 'siɓiti'], SHORTWEEKDAYS: ['lahadi', 'tɛɛnɛɛ', 'talata', 'alaba', 'aimisa', 'aijima', - 'siɓiti'], + 'siɓiti'], STANDALONESHORTWEEKDAYS: ['lahadi', 'tɛɛnɛɛ', 'talata', 'alaba', 'aimisa', - 'aijima', 'siɓiti'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + 'aijima', 'siɓiti'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -13579,31 +18007,32 @@ goog.i18n.DateTimeSymbols_ve = { ERANAMES: ['BCE', 'CE'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['Phando', 'Luhuhi', 'Ṱhafamuhwe', 'Lambamai', 'Shundunthule', - 'Fulwi', 'Fulwana', 'Ṱhangule', 'Khubvumedzi', 'Tshimedzi', 'Ḽara', - 'Nyendavhusiku'], + 'Fulwi', 'Fulwana', 'Ṱhangule', 'Khubvumedzi', 'Tshimedzi', 'Ḽara', + 'Nyendavhusiku'], STANDALONEMONTHS: ['Phando', 'Luhuhi', 'Ṱhafamuhwe', 'Lambamai', - 'Shundunthule', 'Fulwi', 'Fulwana', 'Ṱhangule', 'Khubvumedzi', - 'Tshimedzi', 'Ḽara', 'Nyendavhusiku'], + 'Shundunthule', 'Fulwi', 'Fulwana', 'Ṱhangule', 'Khubvumedzi', + 'Tshimedzi', 'Ḽara', 'Nyendavhusiku'], SHORTMONTHS: ['Pha', 'Luh', 'Ṱhf', 'Lam', 'Shu', 'Lwi', 'Lwa', 'Ṱha', - 'Khu', 'Tsh', 'Ḽar', 'Nye'], + 'Khu', 'Tsh', 'Ḽar', 'Nye'], STANDALONESHORTMONTHS: ['Pha', 'Luh', 'Ṱhf', 'Lam', 'Shu', 'Lwi', 'Lwa', - 'Ṱha', 'Khu', 'Tsh', 'Ḽar', 'Nye'], + 'Ṱha', 'Khu', 'Tsh', 'Ḽar', 'Nye'], WEEKDAYS: ['Swondaha', 'Musumbuluwo', 'Ḽavhuvhili', 'Ḽavhuraru', - 'Ḽavhuṋa', 'Ḽavhuṱanu', 'Mugivhela'], + 'Ḽavhuṋa', 'Ḽavhuṱanu', 'Mugivhela'], STANDALONEWEEKDAYS: ['Swondaha', 'Musumbuluwo', 'Ḽavhuvhili', 'Ḽavhuraru', - 'Ḽavhuṋa', 'Ḽavhuṱanu', 'Mugivhela'], + 'Ḽavhuṋa', 'Ḽavhuṱanu', 'Mugivhela'], SHORTWEEKDAYS: ['Swo', 'Mus', 'Vhi', 'Rar', 'Ṋa', 'Ṱan', 'Mug'], STANDALONESHORTWEEKDAYS: ['Swo', 'Mus', 'Vhi', 'Rar', 'Ṋa', 'Ṱan', 'Mug'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], QUARTERS: ['Kotara ya u thoma', 'Kotara ya vhuvhili', 'Kotara ya vhuraru', - 'Kotara ya vhuṋa'], + 'Kotara ya vhuṋa'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, y MMMM dd', 'y MMMM d', 'y MMM d', 'yyyy-MM-dd'], + DATEFORMATS: ['y MMMM d, EEEE', 'y MMMM d', 'y MMM d', 'y-MM-dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -13624,34 +18053,70 @@ goog.i18n.DateTimeSymbols_vi_VN = { ERANAMES: ['tr. CN', 'sau CN'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['tháng một', 'tháng hai', 'tháng ba', 'tháng tư', - 'tháng năm', 'tháng sáu', 'tháng bảy', 'tháng tám', - 'tháng chín', 'tháng mười', 'tháng mười một', - 'tháng mười hai'], + 'tháng năm', 'tháng sáu', 'tháng bảy', 'tháng tám', 'tháng chín', + 'tháng mười', 'tháng mười một', 'tháng mười hai'], STANDALONEMONTHS: ['tháng một', 'tháng hai', 'tháng ba', 'tháng tư', - 'tháng năm', 'tháng sáu', 'tháng bảy', 'tháng tám', - 'tháng chín', 'tháng mười', 'tháng mười một', - 'tháng mười hai'], + 'tháng năm', 'tháng sáu', 'tháng bảy', 'tháng tám', 'tháng chín', + 'tháng mười', 'tháng mười một', 'tháng mười hai'], SHORTMONTHS: ['thg 1', 'thg 2', 'thg 3', 'thg 4', 'thg 5', 'thg 6', 'thg 7', - 'thg 8', 'thg 9', 'thg 10', 'thg 11', 'thg 12'], + 'thg 8', 'thg 9', 'thg 10', 'thg 11', 'thg 12'], STANDALONESHORTMONTHS: ['thg 1', 'thg 2', 'thg 3', 'thg 4', 'thg 5', 'thg 6', - 'thg 7', 'thg 8', 'thg 9', 'thg 10', 'thg 11', 'thg 12'], + 'thg 7', 'thg 8', 'thg 9', 'thg 10', 'thg 11', 'thg 12'], WEEKDAYS: ['Chủ nhật', 'Thứ hai', 'Thứ ba', 'Thứ tư', 'Thứ năm', - 'Thứ sáu', 'Thứ bảy'], + 'Thứ sáu', 'Thứ bảy'], STANDALONEWEEKDAYS: ['Chủ nhật', 'Thứ hai', 'Thứ ba', 'Thứ tư', - 'Thứ năm', 'Thứ sáu', 'Thứ bảy'], + 'Thứ năm', 'Thứ sáu', 'Thứ bảy'], SHORTWEEKDAYS: ['CN', 'Th 2', 'Th 3', 'Th 4', 'Th 5', 'Th 6', 'Th 7'], STANDALONESHORTWEEKDAYS: ['CN', 'Th 2', 'Th 3', 'Th 4', 'Th 5', 'Th 6', - 'Th 7'], + 'Th 7'], NARROWWEEKDAYS: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'], STANDALONENARROWWEEKDAYS: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Quý 1', 'Quý 2', 'Quý 3', 'Quý 4'], AMPMS: ['SA', 'CH'], DATEFORMATS: ['EEEE, \'ngày\' dd MMMM \'năm\' y', - '\'Ngày\' dd \'tháng\' M \'năm\' y', 'dd-MM-yyyy', 'dd/MM/yyyy'], + '\'Ngày\' dd \'tháng\' M \'năm\' y', 'dd-MM-y', 'dd/MM/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{0} {1}', '{0} {1}', '{0} {1}', '{0} {1}'], + FIRSTDAYOFWEEK: 0, + WEEKENDRANGE: [5, 6], + FIRSTWEEKCUTOFFDAY: 6 +}; + + +/** + * Date/time formatting symbols for locale vo. + */ +goog.i18n.DateTimeSymbols_vo = { + ERAS: ['b. t. kr.', 'p. t. kr.'], + ERANAMES: ['b. t. kr.', 'p. t. kr.'], + NARROWMONTHS: ['J', 'F', 'M', 'P', 'M', 'Y', 'Y', 'G', 'S', 'T', 'N', 'D'], + STANDALONENARROWMONTHS: ['J', 'F', 'M', 'P', 'M', 'Y', 'Y', 'G', 'S', 'T', + 'N', 'D'], + MONTHS: ['janul', 'febul', 'mäzil', 'prilul', 'mayul', 'yunul', 'yulul', + 'gustul', 'setul', 'tobul', 'novul', 'dekul'], + STANDALONEMONTHS: ['janul', 'febul', 'mäzil', 'prilul', 'mayul', 'yunul', + 'yulul', 'gustul', 'setul', 'tobul', 'novul', 'dekul'], + SHORTMONTHS: ['jan', 'feb', 'mäz', 'prl', 'may', 'yun', 'yul', 'gst', 'set', + 'ton', 'nov', 'dek'], + STANDALONESHORTMONTHS: ['jan', 'feb', 'mäz', 'prl', 'may', 'yun', 'yul', + 'gst', 'set', 'tob', 'nov', 'Dek'], + WEEKDAYS: ['sudel', 'mudel', 'tudel', 'vedel', 'dödel', 'fridel', 'zädel'], + STANDALONEWEEKDAYS: ['sudel', 'mudel', 'tudel', 'vedel', 'dödel', 'fridel', + 'zädel'], + SHORTWEEKDAYS: ['su.', 'mu.', 'tu.', 've.', 'dö.', 'fr.', 'zä.'], + STANDALONESHORTWEEKDAYS: ['Su', 'Mu', 'Tu', 'Ve', 'Dö', 'Fr', 'Zä'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'V', 'D', 'F', 'Z'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'V', 'D', 'F', 'Z'], + SHORTQUARTERS: ['Yf1', 'Yf2', 'Yf3', 'Yf4'], + QUARTERS: ['1id yelafoldil', '2id yelafoldil', '3id yelafoldil', + '4id yelafoldil'], + AMPMS: ['posz.', 'büz.'], + DATEFORMATS: ['y MMMMa \'d\'. d\'id\'', 'y MMMM d', 'y MMM. d', 'y-MM-dd'], + TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -13666,19 +18131,19 @@ goog.i18n.DateTimeSymbols_vun = { ERANAMES: ['Kabla ya Kristu', 'Baada ya Kristu'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Januari', 'Februari', 'Machi', 'Aprilyi', 'Mei', 'Junyi', 'Julyai', - 'Agusti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + 'Agusti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], STANDALONEMONTHS: ['Januari', 'Februari', 'Machi', 'Aprilyi', 'Mei', 'Junyi', - 'Julyai', 'Agusti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], + 'Julyai', 'Agusti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'], SHORTMONTHS: ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', - 'Okt', 'Nov', 'Des'], + 'Okt', 'Nov', 'Des'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', - 'Ago', 'Sep', 'Okt', 'Nov', 'Des'], + 'Ago', 'Sep', 'Okt', 'Nov', 'Des'], WEEKDAYS: ['Jumapilyi', 'Jumatatuu', 'Jumanne', 'Jumatanu', 'Alhamisi', - 'Ijumaa', 'Jumamosi'], + 'Ijumaa', 'Jumamosi'], STANDALONEWEEKDAYS: ['Jumapilyi', 'Jumatatuu', 'Jumanne', 'Jumatanu', - 'Alhamisi', 'Ijumaa', 'Jumamosi'], + 'Alhamisi', 'Ijumaa', 'Jumamosi'], SHORTWEEKDAYS: ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'], STANDALONESHORTWEEKDAYS: ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'], NARROWWEEKDAYS: ['J', 'J', 'J', 'J', 'A', 'I', 'J'], @@ -13686,8 +18151,9 @@ goog.i18n.DateTimeSymbols_vun = { SHORTQUARTERS: ['R1', 'R2', 'R3', 'R4'], QUARTERS: ['Robo 1', 'Robo 2', 'Robo 3', 'Robo 4'], AMPMS: ['utuko', 'kyiukonyi'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -13708,21 +18174,21 @@ goog.i18n.DateTimeSymbols_wae = { ERANAMES: ['v. Chr.', 'n. Chr'], NARROWMONTHS: ['J', 'H', 'M', 'A', 'M', 'B', 'H', 'Ö', 'H', 'W', 'W', 'C'], STANDALONENARROWMONTHS: ['J', 'H', 'M', 'A', 'M', 'B', 'H', 'Ö', 'H', 'W', - 'W', 'C'], + 'W', 'C'], MONTHS: ['Jenner', 'Hornig', 'Märze', 'Abrille', 'Meije', 'Bráčet', - 'Heiwet', 'Öigšte', 'Herbštmánet', 'Wímánet', 'Wintermánet', - 'Chrištmánet'], + 'Heiwet', 'Öigšte', 'Herbštmánet', 'Wímánet', 'Wintermánet', + 'Chrištmánet'], STANDALONEMONTHS: ['Jenner', 'Hornig', 'Märze', 'Abrille', 'Meije', - 'Bráčet', 'Heiwet', 'Öigšte', 'Herbštmánet', 'Wímánet', - 'Wintermánet', 'Chrištmánet'], + 'Bráčet', 'Heiwet', 'Öigšte', 'Herbštmánet', 'Wímánet', + 'Wintermánet', 'Chrištmánet'], SHORTMONTHS: ['Jen', 'Hor', 'Mär', 'Abr', 'Mei', 'Brá', 'Hei', 'Öig', - 'Her', 'Wím', 'Win', 'Chr'], + 'Her', 'Wím', 'Win', 'Chr'], STANDALONESHORTMONTHS: ['Jen', 'Hor', 'Mär', 'Abr', 'Mei', 'Brá', 'Hei', - 'Öig', 'Her', 'Wím', 'Win', 'Chr'], + 'Öig', 'Her', 'Wím', 'Win', 'Chr'], WEEKDAYS: ['Sunntag', 'Mäntag', 'Zištag', 'Mittwuč', 'Fróntag', 'Fritag', - 'Samštag'], + 'Samštag'], STANDALONEWEEKDAYS: ['Sunntag', 'Mäntag', 'Zištag', 'Mittwuč', 'Fróntag', - 'Fritag', 'Samštag'], + 'Fritag', 'Samštag'], SHORTWEEKDAYS: ['Sun', 'Män', 'Ziš', 'Mit', 'Fró', 'Fri', 'Sam'], STANDALONESHORTWEEKDAYS: ['Sun', 'Män', 'Ziš', 'Mit', 'Fró', 'Fri', 'Sam'], NARROWWEEKDAYS: ['S', 'M', 'Z', 'M', 'F', 'F', 'S'], @@ -13730,8 +18196,9 @@ goog.i18n.DateTimeSymbols_wae = { SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['1. quartal', '2. quartal', '3. quartal', '4. quartal'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'd. MMM y', 'yyyy-MM-dd'], + DATEFORMATS: ['EEEE, d. MMMM y', 'd. MMMM y', 'd. MMM y', 'y-MM-dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -13751,38 +18218,39 @@ goog.i18n.DateTimeSymbols_wal = { ERAS: ['አዳ ዎዴ', 'ግሮተታ ላይታ'], ERANAMES: ['አዳ ዎዴ', 'ግሮተታ ላይታ'], NARROWMONTHS: ['ጃ', 'ፌ', 'ማ', 'ኤ', 'ሜ', 'ጁ', 'ጁ', 'ኦ', 'ሴ', - 'ኦ', 'ኖ', 'ዲ'], + 'ኦ', 'ኖ', 'ዲ'], STANDALONENARROWMONTHS: ['ጃ', 'ፌ', 'ማ', 'ኤ', 'ሜ', 'ጁ', 'ጁ', - 'ኦ', 'ሴ', 'ኦ', 'ኖ', 'ዲ'], + 'ኦ', 'ሴ', 'ኦ', 'ኖ', 'ዲ'], MONTHS: ['ጃንዩወሪ', 'ፌብሩወሪ', 'ማርች', 'ኤፕረል', - 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', 'ሴፕቴምበር', - 'ኦክተውበር', 'ኖቬምበር', 'ዲሴምበር'], + 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', 'ሴፕቴምበር', + 'ኦክተውበር', 'ኖቬምበር', 'ዲሴምበር'], STANDALONEMONTHS: ['ጃንዩወሪ', 'ፌብሩወሪ', 'ማርች', - 'ኤፕረል', 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', - 'ሴፕቴምበር', 'ኦክተውበር', 'ኖቬምበር', - 'ዲሴምበር'], + 'ኤፕረል', 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', + 'ሴፕቴምበር', 'ኦክተውበር', 'ኖቬምበር', + 'ዲሴምበር'], SHORTMONTHS: ['ጃንዩ', 'ፌብሩ', 'ማርች', 'ኤፕረ', 'ሜይ', - 'ጁን', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', 'ኖቬም', - 'ዲሴም'], + 'ጁን', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', 'ኖቬም', + 'ዲሴም'], STANDALONESHORTMONTHS: ['ጃንዩ', 'ፌብሩ', 'ማርች', 'ኤፕረ', - 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', - 'ኖቬም', 'ዲሴም'], + 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', + 'ኖቬም', 'ዲሴም'], WEEKDAYS: ['ወጋ', 'ሳይኖ', 'ማቆሳኛ', 'አሩዋ', 'ሃሙሳ', - 'አርባ', 'ቄራ'], + 'አርባ', 'ቄራ'], STANDALONEWEEKDAYS: ['ወጋ', 'ሳይኖ', 'ማቆሳኛ', 'አሩዋ', - 'ሃሙሳ', 'አርባ', 'ቄራ'], + 'ሃሙሳ', 'አርባ', 'ቄራ'], SHORTWEEKDAYS: ['ወጋ', 'ሳይኖ', 'ማቆሳኛ', 'አሩዋ', - 'ሃሙሳ', 'አርባ', 'ቄራ'], + 'ሃሙሳ', 'አርባ', 'ቄራ'], STANDALONESHORTWEEKDAYS: ['ወጋ', 'ሳይኖ', 'ማቆሳኛ', 'አሩዋ', - 'ሃሙሳ', 'አርባ', 'ቄራ'], + 'ሃሙሳ', 'አርባ', 'ቄራ'], NARROWWEEKDAYS: ['ወ', 'ሳ', 'ማ', 'አ', 'ሃ', 'አ', 'ቄ'], STANDALONENARROWWEEKDAYS: ['ወ', 'ሳ', 'ማ', 'አ', 'ሃ', 'አ', 'ቄ'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], AMPMS: ['ማለዶ', 'ቃማ'], DATEFORMATS: ['EEEE፥ dd MMMM ጋላሳ y G', 'dd MMMM y', 'dd-MMM-y', - 'dd/MM/yy'], + 'dd/MM/yy'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -13803,29 +18271,30 @@ goog.i18n.DateTimeSymbols_xh = { ERANAMES: ['BC', 'umnyaka wokuzalwa kukaYesu'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['Janyuwari', 'Februwari', 'Matshi', 'Epreli', 'Meyi', 'Juni', - 'Julayi', 'Agasti', 'Septemba', 'Okthoba', 'Novemba', 'Disemba'], + 'Julayi', 'Agasti', 'Septemba', 'Okthoba', 'Novemba', 'Disemba'], STANDALONEMONTHS: ['Janyuwari', 'Februwari', 'Matshi', 'Epreli', 'Meyi', - 'Juni', 'Julayi', 'Agasti', 'Septemba', 'Okthoba', 'Novemba', 'Disemba'], + 'Juni', 'Julayi', 'Agasti', 'Septemba', 'Okthoba', 'Novemba', 'Disemba'], SHORTMONTHS: ['Jan', 'Feb', 'Mat', 'Epr', 'Mey', 'Jun', 'Jul', 'Aga', 'Sep', - 'Okt', 'Nov', 'Dis'], + 'Okt', 'Nov', 'Dis'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mat', 'Epr', 'Mey', 'Jun', 'Jul', - 'Aga', 'Sep', 'Okt', 'Nov', 'Dis'], + 'Aga', 'Sep', 'Okt', 'Nov', 'Dis'], WEEKDAYS: ['Cawe', 'Mvulo', 'Lwesibini', 'Lwesithathu', 'Lwesine', - 'Lwesihlanu', 'Mgqibelo'], + 'Lwesihlanu', 'Mgqibelo'], STANDALONEWEEKDAYS: ['Cawe', 'Mvulo', 'Lwesibini', 'Lwesithathu', 'Lwesine', - 'Lwesihlanu', 'Mgqibelo'], + 'Lwesihlanu', 'Mgqibelo'], SHORTWEEKDAYS: ['Caw', 'Mvu', 'Bin', 'Tha', 'Sin', 'Hla', 'Mgq'], STANDALONESHORTWEEKDAYS: ['Caw', 'Mvu', 'Bin', 'Tha', 'Sin', 'Hla', 'Mgq'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['1 unyangantathu', '2 unyangantathu', '3 unyangantathu', - '4 unyangantathu'], + '4 unyangantathu'], AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE, y MMMM dd', 'y MMMM d', 'y MMM d', 'yyyy-MM-dd'], + DATEFORMATS: ['y MMMM d, EEEE', 'y MMMM d', 'y MMM d', 'y-MM-dd'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -13846,31 +18315,32 @@ goog.i18n.DateTimeSymbols_xog = { ERANAMES: ['Kulisto nga azilawo', 'Kulisto nga affile'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Janwaliyo', 'Febwaliyo', 'Marisi', 'Apuli', 'Maayi', 'Juuni', - 'Julaayi', 'Agusito', 'Sebuttemba', 'Okitobba', 'Novemba', 'Desemba'], + 'Julaayi', 'Agusito', 'Sebuttemba', 'Okitobba', 'Novemba', 'Desemba'], STANDALONEMONTHS: ['Janwaliyo', 'Febwaliyo', 'Marisi', 'Apuli', 'Maayi', - 'Juuni', 'Julaayi', 'Agusito', 'Sebuttemba', 'Okitobba', 'Novemba', - 'Desemba'], + 'Juuni', 'Julaayi', 'Agusito', 'Sebuttemba', 'Okitobba', 'Novemba', + 'Desemba'], SHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apu', 'Maa', 'Juu', 'Jul', 'Agu', 'Seb', - 'Oki', 'Nov', 'Des'], + 'Oki', 'Nov', 'Des'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mar', 'Apu', 'Maa', 'Juu', 'Jul', - 'Agu', 'Seb', 'Oki', 'Nov', 'Des'], + 'Agu', 'Seb', 'Oki', 'Nov', 'Des'], WEEKDAYS: ['Sabiiti', 'Balaza', 'Owokubili', 'Owokusatu', 'Olokuna', - 'Olokutaanu', 'Olomukaaga'], + 'Olokutaanu', 'Olomukaaga'], STANDALONEWEEKDAYS: ['Sabiiti', 'Balaza', 'Owokubili', 'Owokusatu', 'Olokuna', - 'Olokutaanu', 'Olomukaaga'], + 'Olokutaanu', 'Olomukaaga'], SHORTWEEKDAYS: ['Sabi', 'Bala', 'Kubi', 'Kusa', 'Kuna', 'Kuta', 'Muka'], STANDALONESHORTWEEKDAYS: ['Sabi', 'Bala', 'Kubi', 'Kusa', 'Kuna', 'Kuta', - 'Muka'], + 'Muka'], NARROWWEEKDAYS: ['S', 'B', 'B', 'S', 'K', 'K', 'M'], STANDALONENARROWWEEKDAYS: ['S', 'B', 'B', 'S', 'K', 'K', 'M'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['Ebisera ebyomwaka ebisoka', 'Ebisera ebyomwaka ebyokubiri', - 'Ebisera ebyomwaka ebyokusatu', 'Ebisera ebyomwaka ebyokuna'], + 'Ebisera ebyomwaka ebyokusatu', 'Ebisera ebyomwaka ebyokuna'], AMPMS: ['Munkyo', 'Eigulo'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -13891,25 +18361,25 @@ goog.i18n.DateTimeSymbols_yav = { ERANAMES: ['katikupíen Yésuse', 'ékélémkúnupíén n'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['pikítíkítie, oólí ú kutúan', 'siɛyɛ́, oóli ú kándíɛ', - 'ɔnsúmbɔl, oóli ú kátátúɛ', 'mesiŋ, oóli ú kénie', - 'ensil, oóli ú kátánuɛ', 'ɔsɔn', 'efute', 'pisuyú', - 'imɛŋ i puɔs', 'imɛŋ i putúk,oóli ú kátíɛ', 'makandikɛ', - 'pilɔndɔ́'], + 'ɔnsúmbɔl, oóli ú kátátúɛ', 'mesiŋ, oóli ú kénie', + 'ensil, oóli ú kátánuɛ', 'ɔsɔn', 'efute', 'pisuyú', + 'imɛŋ i puɔs', 'imɛŋ i putúk,oóli ú kátíɛ', 'makandikɛ', + 'pilɔndɔ́'], STANDALONEMONTHS: ['pikítíkítie, oólí ú kutúan', - 'siɛyɛ́, oóli ú kándíɛ', 'ɔnsúmbɔl, oóli ú kátátúɛ', - 'mesiŋ, oóli ú kénie', 'ensil, oóli ú kátánuɛ', 'ɔsɔn', - 'efute', 'pisuyú', 'imɛŋ i puɔs', 'imɛŋ i putúk,oóli ú kátíɛ', - 'makandikɛ', 'pilɔndɔ́'], + 'siɛyɛ́, oóli ú kándíɛ', 'ɔnsúmbɔl, oóli ú kátátúɛ', + 'mesiŋ, oóli ú kénie', 'ensil, oóli ú kátánuɛ', 'ɔsɔn', 'efute', + 'pisuyú', 'imɛŋ i puɔs', 'imɛŋ i putúk,oóli ú kátíɛ', + 'makandikɛ', 'pilɔndɔ́'], SHORTMONTHS: ['o.1', 'o.2', 'o.3', 'o.4', 'o.5', 'o.6', 'o.7', 'o.8', 'o.9', - 'o.10', 'o.11', 'o.12'], + 'o.10', 'o.11', 'o.12'], STANDALONESHORTMONTHS: ['o.1', 'o.2', 'o.3', 'o.4', 'o.5', 'o.6', 'o.7', - 'o.8', 'o.9', 'o.10', 'o.11', 'o.12'], + 'o.8', 'o.9', 'o.10', 'o.11', 'o.12'], WEEKDAYS: ['sɔ́ndiɛ', 'móndie', 'muányáŋmóndie', 'metúkpíápɛ', - 'kúpélimetúkpiapɛ', 'feléte', 'séselé'], + 'kúpélimetúkpiapɛ', 'feléte', 'séselé'], STANDALONEWEEKDAYS: ['sɔ́ndiɛ', 'móndie', 'muányáŋmóndie', - 'metúkpíápɛ', 'kúpélimetúkpiapɛ', 'feléte', 'séselé'], + 'metúkpíápɛ', 'kúpélimetúkpiapɛ', 'feléte', 'séselé'], SHORTWEEKDAYS: ['sd', 'md', 'mw', 'et', 'kl', 'fl', 'ss'], STANDALONESHORTWEEKDAYS: ['sd', 'md', 'mw', 'et', 'kl', 'fl', 'ss'], NARROWWEEKDAYS: ['s', 'm', 'm', 'e', 'k', 'f', 's'], @@ -13917,8 +18387,9 @@ goog.i18n.DateTimeSymbols_yav = { SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['ndátúɛ 1', 'ndátúɛ 2', 'ndátúɛ 3', 'ndátúɛ 4'], AMPMS: ['kiɛmɛ́ɛm', 'kisɛ́ndɛ'], - DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/yyyy'], + DATEFORMATS: ['EEEE d MMMM y', 'd MMMM y', 'd MMM y', 'd/M/y'], TIMEFORMATS: ['HH:mm:ss zzzz', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -13939,39 +18410,40 @@ goog.i18n.DateTimeSymbols_yo = { ERANAMES: ['Saju Kristi', 'Lehin Kristi'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['Oṣù Ṣẹ́rẹ́', 'Oṣù Èrèlè', 'Oṣù Ẹrẹ̀nà', - 'Oṣù Ìgbé', 'Oṣù Ẹ̀bibi', 'Oṣù Òkúdu', 'Oṣù Agẹmọ', - 'Oṣù Ògún', 'Oṣù Owewe', 'Oṣù Ọ̀wàrà', 'Oṣù Bélú', - 'Oṣù Ọ̀pẹ̀'], + 'Oṣù Ìgbé', 'Oṣù Ẹ̀bibi', 'Oṣù Òkúdu', 'Oṣù Agẹmọ', + 'Oṣù Ògún', 'Oṣù Owewe', 'Oṣù Ọ̀wàrà', 'Oṣù Bélú', + 'Oṣù Ọ̀pẹ̀'], STANDALONEMONTHS: ['Oṣù Ṣẹ́rẹ́', 'Oṣù Èrèlè', - 'Oṣù Ẹrẹ̀nà', 'Oṣù Ìgbé', 'Oṣù Ẹ̀bibi', - 'Oṣù Òkúdu', 'Oṣù Agẹmọ', 'Oṣù Ògún', 'Oṣù Owewe', - 'Oṣù Ọ̀wàrà', 'Oṣù Bélú', 'Oṣù Ọ̀pẹ̀'], + 'Oṣù Ẹrẹ̀nà', 'Oṣù Ìgbé', 'Oṣù Ẹ̀bibi', + 'Oṣù Òkúdu', 'Oṣù Agẹmọ', 'Oṣù Ògún', 'Oṣù Owewe', + 'Oṣù Ọ̀wàrà', 'Oṣù Bélú', 'Oṣù Ọ̀pẹ̀'], SHORTMONTHS: ['Ṣẹ́rẹ́', 'Èrèlè', 'Ẹrẹ̀nà', 'Ìgbé', - 'Ẹ̀bibi', 'Òkúdu', 'Agẹmọ', 'Ògún', 'Owewe', 'Ọ̀wàrà', - 'Bélú', 'Ọ̀pẹ̀'], + 'Ẹ̀bibi', 'Òkúdu', 'Agẹmọ', 'Ògún', 'Owewe', 'Ọ̀wàrà', + 'Bélú', 'Ọ̀pẹ̀'], STANDALONESHORTMONTHS: ['Ṣẹ́rẹ́', 'Èrèlè', 'Ẹrẹ̀nà', - 'Ìgbé', 'Ẹ̀bibi', 'Òkúdu', 'Agẹmọ', 'Ògún', 'Owewe', - 'Ọ̀wàrà', 'Bélú', 'Ọ̀pẹ̀'], + 'Ìgbé', 'Ẹ̀bibi', 'Òkúdu', 'Agẹmọ', 'Ògún', 'Owewe', + 'Ọ̀wàrà', 'Bélú', 'Ọ̀pẹ̀'], WEEKDAYS: ['Ọjọ́ Àìkú', 'Ọjọ́ Ajé', 'Ọjọ́ Ìsẹ́gun', - 'Ọjọ́rú', 'Ọjọ́bọ', 'Ọjọ́ Ẹtì', - 'Ọjọ́ Àbámẹ́ta'], + 'Ọjọ́rú', 'Ọjọ́bọ', 'Ọjọ́ Ẹtì', + 'Ọjọ́ Àbámẹ́ta'], STANDALONEWEEKDAYS: ['Ọjọ́ Àìkú', 'Ọjọ́ Ajé', - 'Ọjọ́ Ìsẹ́gun', 'Ọjọ́rú', 'Ọjọ́bọ', - 'Ọjọ́ Ẹtì', 'Ọjọ́ Àbámẹ́ta'], + 'Ọjọ́ Ìsẹ́gun', 'Ọjọ́rú', 'Ọjọ́bọ', + 'Ọjọ́ Ẹtì', 'Ọjọ́ Àbámẹ́ta'], SHORTWEEKDAYS: ['Àìkú', 'Ajé', 'Ìsẹ́gun', 'Ọjọ́rú', - 'Ọjọ́bọ', 'Ẹtì', 'Àbámẹ́ta'], + 'Ọjọ́bọ', 'Ẹtì', 'Àbámẹ́ta'], STANDALONESHORTWEEKDAYS: ['Àìkú', 'Ajé', 'Ìsẹ́gun', 'Ọjọ́rú', - 'Ọjọ́bọ', 'Ẹtì', 'Àbámẹ́ta'], - NARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], - STANDALONENARROWWEEKDAYS: ['1', '2', '3', '4', '5', '6', '7'], + 'Ọjọ́bọ', 'Ẹtì', 'Àbámẹ́ta'], + NARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], + STANDALONENARROWWEEKDAYS: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], SHORTQUARTERS: ['K1', 'K2', 'K3', 'K4'], QUARTERS: ['Kọ́tà Kínní', 'Kọ́tà Kejì', 'Kọ́à Keta', - 'Kọ́tà Kẹrin'], + 'Kọ́tà Kẹrin'], AMPMS: ['Àárọ̀', 'Ọ̀sán'], - DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/yyyy'], + DATEFORMATS: ['EEEE, d MMMM y', 'd MMMM y', 'd MMM y', 'dd/MM/y'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 0, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 6 @@ -13991,32 +18463,32 @@ goog.i18n.DateTimeSymbols_zh_Hans = { ERAS: ['公元前', '公元'], ERANAMES: ['公元前', '公元'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], - STANDALONENARROWMONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', - '7月', '8月', '9月', '10月', '11月', '12月'], - MONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', - '9月', '10月', '11月', '12月'], + STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', + '11', '12'], + MONTHS: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', + '八月', '九月', '十月', '十一月', '十二月'], STANDALONEMONTHS: ['一月', '二月', '三月', '四月', '五月', '六月', - '七月', '八月', '九月', '十月', '十一月', '十二月'], + '七月', '八月', '九月', '十月', '十一月', '十二月'], SHORTMONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', - '9月', '10月', '11月', '12月'], - STANDALONESHORTMONTHS: ['一月', '二月', '三月', '四月', '五月', - '六月', '七月', '八月', '九月', '十月', '十一月', - '十二月'], + '9月', '10月', '11月', '12月'], + STANDALONESHORTMONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', + '7月', '8月', '9月', '10月', '11月', '12月'], WEEKDAYS: ['星期日', '星期一', '星期二', '星期三', '星期四', - '星期五', '星期六'], + '星期五', '星期六'], STANDALONEWEEKDAYS: ['星期日', '星期一', '星期二', '星期三', - '星期四', '星期五', '星期六'], + '星期四', '星期五', '星期六'], SHORTWEEKDAYS: ['周日', '周一', '周二', '周三', '周四', '周五', - '周六'], + '周六'], STANDALONESHORTWEEKDAYS: ['周日', '周一', '周二', '周三', '周四', - '周五', '周六'], + '周五', '周六'], NARROWWEEKDAYS: ['日', '一', '二', '三', '四', '五', '六'], STANDALONENARROWWEEKDAYS: ['日', '一', '二', '三', '四', '五', '六'], - SHORTQUARTERS: ['1季', '2季', '3季', '4季'], - QUARTERS: ['第1季度', '第2季度', '第3季度', '第4季度'], + SHORTQUARTERS: ['1季度', '2季度', '3季度', '4季度'], + QUARTERS: ['第一季度', '第二季度', '第三季度', '第四季度'], AMPMS: ['上午', '下午'], - DATEFORMATS: ['y年M月d日EEEE', 'y年M月d日', 'yyyy-M-d', 'yy-M-d'], - TIMEFORMATS: ['zzzzah时mm分ss秒', 'zah时mm分ss秒', 'ah:mm:ss', 'ah:mm'], + DATEFORMATS: ['y年M月d日EEEE', 'y年M月d日', 'y年M月d日', 'yy-M-d'], + TIMEFORMATS: ['zzzzah:mm:ss', 'zah:mm:ss', 'ah:mm:ss', 'ah:mm'], + DATETIMEFORMATS: ['{1}{0}', '{1}{0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -14037,23 +18509,23 @@ goog.i18n.DateTimeSymbols_zh_Hans_HK = { ERANAMES: ['公元前', '公元'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', - '八月', '九月', '十月', '十一月', '十二月'], + '八月', '九月', '十月', '十一月', '十二月'], STANDALONEMONTHS: ['一月', '二月', '三月', '四月', '五月', '六月', - '七月', '八月', '九月', '十月', '十一月', '十二月'], + '七月', '八月', '九月', '十月', '十一月', '十二月'], SHORTMONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', - '9月', '10月', '11月', '12月'], + '9月', '10月', '11月', '12月'], STANDALONESHORTMONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', - '7月', '8月', '9月', '10月', '11月', '12月'], + '7月', '8月', '9月', '10月', '11月', '12月'], WEEKDAYS: ['星期日', '星期一', '星期二', '星期三', '星期四', - '星期五', '星期六'], + '星期五', '星期六'], STANDALONEWEEKDAYS: ['星期日', '星期一', '星期二', '星期三', - '星期四', '星期五', '星期六'], + '星期四', '星期五', '星期六'], SHORTWEEKDAYS: ['周日', '周一', '周二', '周三', '周四', '周五', - '周六'], + '周六'], STANDALONESHORTWEEKDAYS: ['周日', '周一', '周二', '周三', '周四', - '周五', '周六'], + '周五', '周六'], NARROWWEEKDAYS: ['日', '一', '二', '三', '四', '五', '六'], STANDALONENARROWWEEKDAYS: ['日', '一', '二', '三', '四', '五', '六'], SHORTQUARTERS: ['1季度', '2季度', '3季度', '4季度'], @@ -14061,6 +18533,7 @@ goog.i18n.DateTimeSymbols_zh_Hans_HK = { AMPMS: ['上午', '下午'], DATEFORMATS: ['y年M月d日EEEE', 'y年M月d日', 'y年M月d日', 'd/M/yy'], TIMEFORMATS: ['zzzzah:mm:ss', 'zah:mm:ss', 'ah:mm:ss', 'ah:mm'], + DATETIMEFORMATS: ['{1}{0}', '{1}{0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -14075,23 +18548,23 @@ goog.i18n.DateTimeSymbols_zh_Hans_MO = { ERANAMES: ['公元前', '公元'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', - '八月', '九月', '十月', '十一月', '十二月'], + '八月', '九月', '十月', '十一月', '十二月'], STANDALONEMONTHS: ['一月', '二月', '三月', '四月', '五月', '六月', - '七月', '八月', '九月', '十月', '十一月', '十二月'], + '七月', '八月', '九月', '十月', '十一月', '十二月'], SHORTMONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', - '9月', '10月', '11月', '12月'], + '9月', '10月', '11月', '12月'], STANDALONESHORTMONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', - '7月', '8月', '9月', '10月', '11月', '12月'], + '7月', '8月', '9月', '10月', '11月', '12月'], WEEKDAYS: ['星期日', '星期一', '星期二', '星期三', '星期四', - '星期五', '星期六'], + '星期五', '星期六'], STANDALONEWEEKDAYS: ['星期日', '星期一', '星期二', '星期三', - '星期四', '星期五', '星期六'], + '星期四', '星期五', '星期六'], SHORTWEEKDAYS: ['周日', '周一', '周二', '周三', '周四', '周五', - '周六'], + '周六'], STANDALONESHORTWEEKDAYS: ['周日', '周一', '周二', '周三', '周四', - '周五', '周六'], + '周五', '周六'], NARROWWEEKDAYS: ['日', '一', '二', '三', '四', '五', '六'], STANDALONENARROWWEEKDAYS: ['日', '一', '二', '三', '四', '五', '六'], SHORTQUARTERS: ['1季度', '2季度', '3季度', '4季度'], @@ -14099,6 +18572,7 @@ goog.i18n.DateTimeSymbols_zh_Hans_MO = { AMPMS: ['上午', '下午'], DATEFORMATS: ['y年M月d日EEEE', 'y年M月d日', 'y年M月d日', 'd/M/yy'], TIMEFORMATS: ['zzzzah:mm:ss', 'zah:mm:ss', 'ah:mm:ss', 'ah:mm'], + DATETIMEFORMATS: ['{1}{0}', '{1}{0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -14113,23 +18587,23 @@ goog.i18n.DateTimeSymbols_zh_Hans_SG = { ERANAMES: ['公元前', '公元'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', - '八月', '九月', '十月', '十一月', '十二月'], + '八月', '九月', '十月', '十一月', '十二月'], STANDALONEMONTHS: ['一月', '二月', '三月', '四月', '五月', '六月', - '七月', '八月', '九月', '十月', '十一月', '十二月'], + '七月', '八月', '九月', '十月', '十一月', '十二月'], SHORTMONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', - '9月', '10月', '11月', '12月'], + '9月', '10月', '11月', '12月'], STANDALONESHORTMONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', - '7月', '8月', '9月', '10月', '11月', '12月'], + '7月', '8月', '9月', '10月', '11月', '12月'], WEEKDAYS: ['星期日', '星期一', '星期二', '星期三', '星期四', - '星期五', '星期六'], + '星期五', '星期六'], STANDALONEWEEKDAYS: ['星期日', '星期一', '星期二', '星期三', - '星期四', '星期五', '星期六'], + '星期四', '星期五', '星期六'], SHORTWEEKDAYS: ['周日', '周一', '周二', '周三', '周四', '周五', - '周六'], + '周六'], STANDALONESHORTWEEKDAYS: ['周日', '周一', '周二', '周三', '周四', - '周五', '周六'], + '周五', '周六'], NARROWWEEKDAYS: ['日', '一', '二', '三', '四', '五', '六'], STANDALONENARROWWEEKDAYS: ['日', '一', '二', '三', '四', '五', '六'], SHORTQUARTERS: ['1季度', '2季度', '3季度', '4季度'], @@ -14137,6 +18611,7 @@ goog.i18n.DateTimeSymbols_zh_Hans_SG = { AMPMS: ['上午', '下午'], DATEFORMATS: ['y年M月d日EEEE', 'y年M月d日', 'y年M月d日', 'dd/MM/yy'], TIMEFORMATS: ['zzzzah:mm:ss', 'ahh:mm:ssz', 'ah:mm:ss', 'ahh:mm'], + DATETIMEFORMATS: ['{1}{0}', '{1}{0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -14148,33 +18623,34 @@ goog.i18n.DateTimeSymbols_zh_Hans_SG = { */ goog.i18n.DateTimeSymbols_zh_Hant = { ERAS: ['西元前', '西元'], - ERANAMES: ['西元前', '西元'], + ERANAMES: ['公元前', '公元'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', - '9月', '10月', '11月', '12月'], + '9月', '10月', '11月', '12月'], STANDALONEMONTHS: ['一月', '二月', '三月', '四月', '五月', '六月', - '七月', '八月', '九月', '十月', '十一月', '十二月'], + '七月', '八月', '九月', '十月', '十一月', '十二月'], SHORTMONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', - '9月', '10月', '11月', '12月'], + '9月', '10月', '11月', '12月'], STANDALONESHORTMONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', - '7月', '8月', '9月', '10月', '11月', '12月'], + '7月', '8月', '9月', '10月', '11月', '12月'], WEEKDAYS: ['星期日', '星期一', '星期二', '星期三', '星期四', - '星期五', '星期六'], + '星期五', '星期六'], STANDALONEWEEKDAYS: ['星期日', '星期一', '星期二', '星期三', - '星期四', '星期五', '星期六'], + '星期四', '星期五', '星期六'], SHORTWEEKDAYS: ['週日', '週一', '週二', '週三', '週四', '週五', - '週六'], + '週六'], STANDALONESHORTWEEKDAYS: ['周日', '周一', '周二', '周三', '周四', - '周五', '周六'], + '周五', '周六'], NARROWWEEKDAYS: ['日', '一', '二', '三', '四', '五', '六'], STANDALONENARROWWEEKDAYS: ['日', '一', '二', '三', '四', '五', '六'], SHORTQUARTERS: ['1季', '2季', '3季', '4季'], QUARTERS: ['第1季', '第2季', '第3季', '第4季'], AMPMS: ['上午', '下午'], - DATEFORMATS: ['y年M月d日EEEE', 'y年M月d日', 'yyyy/M/d', 'y/M/d'], + DATEFORMATS: ['y年M月d日EEEE', 'y年M月d日', 'y/M/d', 'y/M/d'], TIMEFORMATS: ['zzzzah時mm分ss秒', 'zah時mm分ss秒', 'ah:mm:ss', 'ah:mm'], + DATETIMEFORMATS: ['{1}{0}', '{1}{0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -14186,34 +18662,34 @@ goog.i18n.DateTimeSymbols_zh_Hant = { */ goog.i18n.DateTimeSymbols_zh_Hant_HK = { ERAS: ['西元前', '西元'], - ERANAMES: ['西元前', '西元'], + ERANAMES: ['公元前', '公元'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', - '9月', '10月', '11月', '12月'], + '9月', '10月', '11月', '12月'], STANDALONEMONTHS: ['一月', '二月', '三月', '四月', '五月', '六月', - '七月', '八月', '九月', '十月', '十一月', '十二月'], + '七月', '八月', '九月', '十月', '十一月', '十二月'], SHORTMONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', - '9月', '10月', '11月', '12月'], + '9月', '10月', '11月', '12月'], STANDALONESHORTMONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', - '7月', '8月', '9月', '10月', '11月', '12月'], + '7月', '8月', '9月', '10月', '11月', '12月'], WEEKDAYS: ['星期日', '星期一', '星期二', '星期三', '星期四', - '星期五', '星期六'], + '星期五', '星期六'], STANDALONEWEEKDAYS: ['星期日', '星期一', '星期二', '星期三', - '星期四', '星期五', '星期六'], + '星期四', '星期五', '星期六'], SHORTWEEKDAYS: ['週日', '週一', '週二', '週三', '週四', '週五', - '週六'], + '週六'], STANDALONESHORTWEEKDAYS: ['周日', '周一', '周二', '周三', '周四', - '周五', '周六'], + '周五', '周六'], NARROWWEEKDAYS: ['日', '一', '二', '三', '四', '五', '六'], STANDALONENARROWWEEKDAYS: ['日', '一', '二', '三', '四', '五', '六'], SHORTQUARTERS: ['1季', '2季', '3季', '4季'], QUARTERS: ['第1季', '第2季', '第3季', '第4季'], AMPMS: ['上午', '下午'], - DATEFORMATS: ['y年M月d日EEEE', 'y年M月d日', 'y年M月d日', - 'yy年M月d日'], + DATEFORMATS: ['y年M月d日EEEE', 'y年M月d日', 'y年M月d日', 'd/M/yy'], TIMEFORMATS: ['ah:mm:ss [zzzz]', 'ah:mm:ss [z]', 'ahh:mm:ss', 'ah:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1}{0}', '{1}{0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -14225,34 +18701,35 @@ goog.i18n.DateTimeSymbols_zh_Hant_HK = { */ goog.i18n.DateTimeSymbols_zh_Hant_MO = { ERAS: ['西元前', '西元'], - ERANAMES: ['西元前', '西元'], + ERANAMES: ['公元前', '公元'], NARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], STANDALONENARROWMONTHS: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', - '11', '12'], + '11', '12'], MONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', - '9月', '10月', '11月', '12月'], + '9月', '10月', '11月', '12月'], STANDALONEMONTHS: ['一月', '二月', '三月', '四月', '五月', '六月', - '七月', '八月', '九月', '十月', '十一月', '十二月'], + '七月', '八月', '九月', '十月', '十一月', '十二月'], SHORTMONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', - '9月', '10月', '11月', '12月'], + '9月', '10月', '11月', '12月'], STANDALONESHORTMONTHS: ['1月', '2月', '3月', '4月', '5月', '6月', - '7月', '8月', '9月', '10月', '11月', '12月'], + '7月', '8月', '9月', '10月', '11月', '12月'], WEEKDAYS: ['星期日', '星期一', '星期二', '星期三', '星期四', - '星期五', '星期六'], + '星期五', '星期六'], STANDALONEWEEKDAYS: ['星期日', '星期一', '星期二', '星期三', - '星期四', '星期五', '星期六'], + '星期四', '星期五', '星期六'], SHORTWEEKDAYS: ['週日', '週一', '週二', '週三', '週四', '週五', - '週六'], + '週六'], STANDALONESHORTWEEKDAYS: ['周日', '周一', '周二', '周三', '周四', - '周五', '周六'], + '周五', '周六'], NARROWWEEKDAYS: ['日', '一', '二', '三', '四', '五', '六'], STANDALONENARROWWEEKDAYS: ['日', '一', '二', '三', '四', '五', '六'], SHORTQUARTERS: ['1季', '2季', '3季', '4季'], QUARTERS: ['第1季', '第2季', '第3季', '第4季'], AMPMS: ['上午', '下午'], DATEFORMATS: ['y年MM月dd日EEEE', 'y年MM月dd日', 'y年M月d日', - 'yy年M月d日'], + 'yy年M月d日'], TIMEFORMATS: ['ah:mm:ss [zzzz]', 'ah:mm:ss [z]', 'ahh:mm:ss', 'ah:mm'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -14273,29 +18750,30 @@ goog.i18n.DateTimeSymbols_zu_ZA = { ERANAMES: ['BC', 'AD'], NARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'], STANDALONENARROWMONTHS: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', - 'N', 'D'], + 'N', 'D'], MONTHS: ['Januwari', 'Februwari', 'Mashi', 'Apreli', 'Meyi', 'Juni', 'Julayi', - 'Agasti', 'Septhemba', 'Okthoba', 'Novemba', 'Disemba'], + 'Agasti', 'Septhemba', 'Okthoba', 'Novemba', 'Disemba'], STANDALONEMONTHS: ['uJanuwari', 'uFebruwari', 'uMashi', 'u-Apreli', 'uMeyi', - 'uJuni', 'uJulayi', 'uAgasti', 'uSepthemba', 'u-Okthoba', 'uNovemba', - 'uDisemba'], + 'uJuni', 'uJulayi', 'uAgasti', 'uSepthemba', 'u-Okthoba', 'uNovemba', + 'uDisemba'], SHORTMONTHS: ['Jan', 'Feb', 'Mas', 'Apr', 'Mey', 'Jun', 'Jul', 'Aga', 'Sep', - 'Okt', 'Nov', 'Dis'], + 'Okt', 'Nov', 'Dis'], STANDALONESHORTMONTHS: ['Jan', 'Feb', 'Mas', 'Apr', 'Mey', 'Jun', 'Jul', - 'Aga', 'Sep', 'Okt', 'Nov', 'Dis'], + 'Aga', 'Sep', 'Okt', 'Nov', 'Dis'], WEEKDAYS: ['Sonto', 'Msombuluko', 'Lwesibili', 'Lwesithathu', 'uLwesine', - 'Lwesihlanu', 'Mgqibelo'], + 'Lwesihlanu', 'Mgqibelo'], STANDALONEWEEKDAYS: ['Sonto', 'Msombuluko', 'Lwesibili', 'Lwesithathu', - 'uLwesine', 'Lwesihlanu', 'Mgqibelo'], + 'uLwesine', 'Lwesihlanu', 'Mgqibelo'], SHORTWEEKDAYS: ['Son', 'Mso', 'Bil', 'Tha', 'Sin', 'Hla', 'Mgq'], STANDALONESHORTWEEKDAYS: ['Son', 'Mso', 'Bil', 'Tha', 'Sin', 'Hla', 'Mgq'], NARROWWEEKDAYS: ['S', 'M', 'B', 'T', 'S', 'H', 'M'], STANDALONENARROWWEEKDAYS: ['S', 'M', 'B', 'T', 'S', 'H', 'M'], SHORTQUARTERS: ['Q1', 'Q2', 'Q3', 'Q4'], QUARTERS: ['ikota yoku-1', 'ikota yesi-2', 'ikota yesi-3', 'ikota yesi-4'], - AMPMS: ['AM', 'PM'], - DATEFORMATS: ['EEEE dd MMMM y', 'd MMMM y', 'd MMM y', 'yyyy-MM-dd'], + AMPMS: ['Ekuseni', 'Ntambama'], + DATEFORMATS: ['EEEE dd MMMM y', 'd MMMM y', 'd MMM y', 'y-MM-dd'], TIMEFORMATS: ['h:mm:ss a zzzz', 'h:mm:ss a z', 'h:mm:ss a', 'h:mm a'], + DATETIMEFORMATS: ['{1} {0}', '{1} {0}', '{1} {0}', '{1} {0}'], FIRSTDAYOFWEEK: 6, WEEKENDRANGE: [5, 6], FIRSTWEEKCUTOFFDAY: 5 @@ -14349,6 +18827,10 @@ if (goog.LOCALE == 'am_ET' || goog.LOCALE == 'am-ET') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_am_ET; } +if (goog.LOCALE == 'ar_001' || goog.LOCALE == 'ar-001') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ar_001; +} + if (goog.LOCALE == 'ar_AE' || goog.LOCALE == 'ar-AE') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ar_AE; } @@ -14357,6 +18839,10 @@ if (goog.LOCALE == 'ar_BH' || goog.LOCALE == 'ar-BH') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ar_BH; } +if (goog.LOCALE == 'ar_DJ' || goog.LOCALE == 'ar-DJ') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ar_DJ; +} + if (goog.LOCALE == 'ar_DZ' || goog.LOCALE == 'ar-DZ') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ar_DZ; } @@ -14365,6 +18851,18 @@ if (goog.LOCALE == 'ar_EG' || goog.LOCALE == 'ar-EG') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ar_EG; } +if (goog.LOCALE == 'ar_EH' || goog.LOCALE == 'ar-EH') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ar_EH; +} + +if (goog.LOCALE == 'ar_ER' || goog.LOCALE == 'ar-ER') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ar_ER; +} + +if (goog.LOCALE == 'ar_IL' || goog.LOCALE == 'ar-IL') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ar_IL; +} + if (goog.LOCALE == 'ar_IQ' || goog.LOCALE == 'ar-IQ') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ar_IQ; } @@ -14373,6 +18871,10 @@ if (goog.LOCALE == 'ar_JO' || goog.LOCALE == 'ar-JO') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ar_JO; } +if (goog.LOCALE == 'ar_KM' || goog.LOCALE == 'ar-KM') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ar_KM; +} + if (goog.LOCALE == 'ar_KW' || goog.LOCALE == 'ar-KW') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ar_KW; } @@ -14389,10 +18891,18 @@ if (goog.LOCALE == 'ar_MA' || goog.LOCALE == 'ar-MA') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ar_MA; } +if (goog.LOCALE == 'ar_MR' || goog.LOCALE == 'ar-MR') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ar_MR; +} + if (goog.LOCALE == 'ar_OM' || goog.LOCALE == 'ar-OM') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ar_OM; } +if (goog.LOCALE == 'ar_PS' || goog.LOCALE == 'ar-PS') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ar_PS; +} + if (goog.LOCALE == 'ar_QA' || goog.LOCALE == 'ar-QA') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ar_QA; } @@ -14405,10 +18915,18 @@ if (goog.LOCALE == 'ar_SD' || goog.LOCALE == 'ar-SD') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ar_SD; } +if (goog.LOCALE == 'ar_SO' || goog.LOCALE == 'ar-SO') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ar_SO; +} + if (goog.LOCALE == 'ar_SY' || goog.LOCALE == 'ar-SY') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ar_SY; } +if (goog.LOCALE == 'ar_TD' || goog.LOCALE == 'ar-TD') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ar_TD; +} + if (goog.LOCALE == 'ar_TN' || goog.LOCALE == 'ar-TN') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ar_TN; } @@ -14433,6 +18951,14 @@ if (goog.LOCALE == 'asa_TZ' || goog.LOCALE == 'asa-TZ') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_asa; } +if (goog.LOCALE == 'ast') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ast; +} + +if (goog.LOCALE == 'ast_ES' || goog.LOCALE == 'ast-ES') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ast; +} + if (goog.LOCALE == 'az') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_az; } @@ -14517,12 +19043,8 @@ if (goog.LOCALE == 'bo_IN' || goog.LOCALE == 'bo-IN') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_bo; } -if (goog.LOCALE == 'br') { - goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_br; -} - if (goog.LOCALE == 'br_FR' || goog.LOCALE == 'br-FR') { - goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_br; + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_br_FR; } if (goog.LOCALE == 'brx') { @@ -14537,7 +19059,19 @@ if (goog.LOCALE == 'bs') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_bs; } -if (goog.LOCALE == 'bs_BA' || goog.LOCALE == 'bs-BA') { +if (goog.LOCALE == 'bs_Cyrl' || goog.LOCALE == 'bs-Cyrl') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_bs_Cyrl; +} + +if (goog.LOCALE == 'bs_Cyrl_BA' || goog.LOCALE == 'bs-Cyrl-BA') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_bs_Cyrl; +} + +if (goog.LOCALE == 'bs_Latn' || goog.LOCALE == 'bs-Latn') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_bs; +} + +if (goog.LOCALE == 'bs_Latn_BA' || goog.LOCALE == 'bs-Latn-BA') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_bs; } @@ -14549,6 +19083,10 @@ if (goog.LOCALE == 'byn_ER' || goog.LOCALE == 'byn-ER') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_byn; } +if (goog.LOCALE == 'ca_AD' || goog.LOCALE == 'ca-AD') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ca_AD; +} + if (goog.LOCALE == 'ca_ES' || goog.LOCALE == 'ca-ES') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ca_ES; } @@ -14693,6 +19231,14 @@ if (goog.LOCALE == 'el_GR' || goog.LOCALE == 'el-GR') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_el_GR; } +if (goog.LOCALE == 'en_150' || goog.LOCALE == 'en-150') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_150; +} + +if (goog.LOCALE == 'en_AG' || goog.LOCALE == 'en-AG') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_AG; +} + if (goog.LOCALE == 'en_AS' || goog.LOCALE == 'en-AS') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_AS; } @@ -14709,6 +19255,10 @@ if (goog.LOCALE == 'en_BM' || goog.LOCALE == 'en-BM') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_BM; } +if (goog.LOCALE == 'en_BS' || goog.LOCALE == 'en-BS') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_BS; +} + if (goog.LOCALE == 'en_BW' || goog.LOCALE == 'en-BW') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_BW; } @@ -14721,6 +19271,14 @@ if (goog.LOCALE == 'en_CA' || goog.LOCALE == 'en-CA') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_CA; } +if (goog.LOCALE == 'en_CM' || goog.LOCALE == 'en-CM') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_CM; +} + +if (goog.LOCALE == 'en_DM' || goog.LOCALE == 'en-DM') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_DM; +} + if (goog.LOCALE == 'en_Dsrt' || goog.LOCALE == 'en-Dsrt') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_Dsrt; } @@ -14729,6 +19287,34 @@ if (goog.LOCALE == 'en_Dsrt_US' || goog.LOCALE == 'en-Dsrt-US') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_Dsrt; } +if (goog.LOCALE == 'en_FJ' || goog.LOCALE == 'en-FJ') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_FJ; +} + +if (goog.LOCALE == 'en_FM' || goog.LOCALE == 'en-FM') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_FM; +} + +if (goog.LOCALE == 'en_GD' || goog.LOCALE == 'en-GD') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_GD; +} + +if (goog.LOCALE == 'en_GG' || goog.LOCALE == 'en-GG') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_GG; +} + +if (goog.LOCALE == 'en_GH' || goog.LOCALE == 'en-GH') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_GH; +} + +if (goog.LOCALE == 'en_GI' || goog.LOCALE == 'en-GI') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_GI; +} + +if (goog.LOCALE == 'en_GM' || goog.LOCALE == 'en-GM') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_GM; +} + if (goog.LOCALE == 'en_GU' || goog.LOCALE == 'en-GU') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_GU; } @@ -14741,10 +19327,50 @@ if (goog.LOCALE == 'en_HK' || goog.LOCALE == 'en-HK') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_HK; } +if (goog.LOCALE == 'en_IM' || goog.LOCALE == 'en-IM') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_IM; +} + +if (goog.LOCALE == 'en_JE' || goog.LOCALE == 'en-JE') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_JE; +} + if (goog.LOCALE == 'en_JM' || goog.LOCALE == 'en-JM') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_JM; } +if (goog.LOCALE == 'en_KE' || goog.LOCALE == 'en-KE') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_KE; +} + +if (goog.LOCALE == 'en_KI' || goog.LOCALE == 'en-KI') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_KI; +} + +if (goog.LOCALE == 'en_KN' || goog.LOCALE == 'en-KN') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_KN; +} + +if (goog.LOCALE == 'en_KY' || goog.LOCALE == 'en-KY') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_KY; +} + +if (goog.LOCALE == 'en_LC' || goog.LOCALE == 'en-LC') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_LC; +} + +if (goog.LOCALE == 'en_LR' || goog.LOCALE == 'en-LR') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_LR; +} + +if (goog.LOCALE == 'en_LS' || goog.LOCALE == 'en-LS') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_LS; +} + +if (goog.LOCALE == 'en_MG' || goog.LOCALE == 'en-MG') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_MG; +} + if (goog.LOCALE == 'en_MH' || goog.LOCALE == 'en-MH') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_MH; } @@ -14761,14 +19387,26 @@ if (goog.LOCALE == 'en_MU' || goog.LOCALE == 'en-MU') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_MU; } +if (goog.LOCALE == 'en_MW' || goog.LOCALE == 'en-MW') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_MW; +} + if (goog.LOCALE == 'en_NA' || goog.LOCALE == 'en-NA') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_NA; } +if (goog.LOCALE == 'en_NG' || goog.LOCALE == 'en-NG') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_NG; +} + if (goog.LOCALE == 'en_NZ' || goog.LOCALE == 'en-NZ') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_NZ; } +if (goog.LOCALE == 'en_PG' || goog.LOCALE == 'en-PG') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_PG; +} + if (goog.LOCALE == 'en_PH' || goog.LOCALE == 'en-PH') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_PH; } @@ -14777,18 +19415,82 @@ if (goog.LOCALE == 'en_PK' || goog.LOCALE == 'en-PK') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_PK; } +if (goog.LOCALE == 'en_PR' || goog.LOCALE == 'en-PR') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_PR; +} + +if (goog.LOCALE == 'en_PW' || goog.LOCALE == 'en-PW') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_PW; +} + +if (goog.LOCALE == 'en_SB' || goog.LOCALE == 'en-SB') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_SB; +} + +if (goog.LOCALE == 'en_SC' || goog.LOCALE == 'en-SC') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_SC; +} + +if (goog.LOCALE == 'en_SL' || goog.LOCALE == 'en-SL') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_SL; +} + +if (goog.LOCALE == 'en_SS' || goog.LOCALE == 'en-SS') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_SS; +} + +if (goog.LOCALE == 'en_SZ' || goog.LOCALE == 'en-SZ') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_SZ; +} + +if (goog.LOCALE == 'en_TC' || goog.LOCALE == 'en-TC') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_TC; +} + +if (goog.LOCALE == 'en_TO' || goog.LOCALE == 'en-TO') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_TO; +} + if (goog.LOCALE == 'en_TT' || goog.LOCALE == 'en-TT') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_TT; } +if (goog.LOCALE == 'en_TZ' || goog.LOCALE == 'en-TZ') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_TZ; +} + +if (goog.LOCALE == 'en_UG' || goog.LOCALE == 'en-UG') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_UG; +} + if (goog.LOCALE == 'en_UM' || goog.LOCALE == 'en-UM') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_UM; } +if (goog.LOCALE == 'en_VC' || goog.LOCALE == 'en-VC') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_VC; +} + +if (goog.LOCALE == 'en_VG' || goog.LOCALE == 'en-VG') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_VG; +} + if (goog.LOCALE == 'en_VI' || goog.LOCALE == 'en-VI') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_VI; } +if (goog.LOCALE == 'en_VU' || goog.LOCALE == 'en-VU') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_VU; +} + +if (goog.LOCALE == 'en_WS' || goog.LOCALE == 'en-WS') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_WS; +} + +if (goog.LOCALE == 'en_ZM' || goog.LOCALE == 'en-ZM') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_ZM; +} + if (goog.LOCALE == 'en_ZW' || goog.LOCALE == 'en-ZW') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en_ZW; } @@ -14817,16 +19519,20 @@ if (goog.LOCALE == 'es_CR' || goog.LOCALE == 'es-CR') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_es_CR; } +if (goog.LOCALE == 'es_CU' || goog.LOCALE == 'es-CU') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_es_CU; +} + if (goog.LOCALE == 'es_DO' || goog.LOCALE == 'es-DO') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_es_DO; } -if (goog.LOCALE == 'es_EC' || goog.LOCALE == 'es-EC') { - goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_es_EC; +if (goog.LOCALE == 'es_EA' || goog.LOCALE == 'es-EA') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_es_EA; } -if (goog.LOCALE == 'es_ES' || goog.LOCALE == 'es-ES') { - goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_es_ES; +if (goog.LOCALE == 'es_EC' || goog.LOCALE == 'es-EC') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_es_EC; } if (goog.LOCALE == 'es_GQ' || goog.LOCALE == 'es-GQ') { @@ -14841,6 +19547,10 @@ if (goog.LOCALE == 'es_HN' || goog.LOCALE == 'es-HN') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_es_HN; } +if (goog.LOCALE == 'es_IC' || goog.LOCALE == 'es-IC') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_es_IC; +} + if (goog.LOCALE == 'es_MX' || goog.LOCALE == 'es-MX') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_es_MX; } @@ -14857,6 +19567,10 @@ if (goog.LOCALE == 'es_PE' || goog.LOCALE == 'es-PE') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_es_PE; } +if (goog.LOCALE == 'es_PH' || goog.LOCALE == 'es-PH') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_es_PH; +} + if (goog.LOCALE == 'es_PR' || goog.LOCALE == 'es-PR') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_es_PR; } @@ -14977,6 +19691,10 @@ if (goog.LOCALE == 'fr_DJ' || goog.LOCALE == 'fr-DJ') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fr_DJ; } +if (goog.LOCALE == 'fr_DZ' || goog.LOCALE == 'fr-DZ') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fr_DZ; +} + if (goog.LOCALE == 'fr_FR' || goog.LOCALE == 'fr-FR') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fr_FR; } @@ -15001,6 +19719,10 @@ if (goog.LOCALE == 'fr_GQ' || goog.LOCALE == 'fr-GQ') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fr_GQ; } +if (goog.LOCALE == 'fr_HT' || goog.LOCALE == 'fr-HT') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fr_HT; +} + if (goog.LOCALE == 'fr_KM' || goog.LOCALE == 'fr-KM') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fr_KM; } @@ -15009,6 +19731,10 @@ if (goog.LOCALE == 'fr_LU' || goog.LOCALE == 'fr-LU') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fr_LU; } +if (goog.LOCALE == 'fr_MA' || goog.LOCALE == 'fr-MA') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fr_MA; +} + if (goog.LOCALE == 'fr_MC' || goog.LOCALE == 'fr-MC') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fr_MC; } @@ -15029,10 +19755,26 @@ if (goog.LOCALE == 'fr_MQ' || goog.LOCALE == 'fr-MQ') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fr_MQ; } +if (goog.LOCALE == 'fr_MR' || goog.LOCALE == 'fr-MR') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fr_MR; +} + +if (goog.LOCALE == 'fr_MU' || goog.LOCALE == 'fr-MU') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fr_MU; +} + +if (goog.LOCALE == 'fr_NC' || goog.LOCALE == 'fr-NC') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fr_NC; +} + if (goog.LOCALE == 'fr_NE' || goog.LOCALE == 'fr-NE') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fr_NE; } +if (goog.LOCALE == 'fr_PF' || goog.LOCALE == 'fr-PF') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fr_PF; +} + if (goog.LOCALE == 'fr_RE' || goog.LOCALE == 'fr-RE') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fr_RE; } @@ -15041,10 +19783,18 @@ if (goog.LOCALE == 'fr_RW' || goog.LOCALE == 'fr-RW') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fr_RW; } +if (goog.LOCALE == 'fr_SC' || goog.LOCALE == 'fr-SC') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fr_SC; +} + if (goog.LOCALE == 'fr_SN' || goog.LOCALE == 'fr-SN') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fr_SN; } +if (goog.LOCALE == 'fr_SY' || goog.LOCALE == 'fr-SY') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fr_SY; +} + if (goog.LOCALE == 'fr_TD' || goog.LOCALE == 'fr-TD') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fr_TD; } @@ -15053,6 +19803,14 @@ if (goog.LOCALE == 'fr_TG' || goog.LOCALE == 'fr-TG') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fr_TG; } +if (goog.LOCALE == 'fr_TN' || goog.LOCALE == 'fr-TN') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fr_TN; +} + +if (goog.LOCALE == 'fr_VU' || goog.LOCALE == 'fr-VU') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fr_VU; +} + if (goog.LOCALE == 'fr_YT' || goog.LOCALE == 'fr-YT') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fr_YT; } @@ -15073,6 +19831,14 @@ if (goog.LOCALE == 'ga_IE' || goog.LOCALE == 'ga-IE') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ga; } +if (goog.LOCALE == 'gd') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_gd; +} + +if (goog.LOCALE == 'gd_GB' || goog.LOCALE == 'gd-GB') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_gd; +} + if (goog.LOCALE == 'gl_ES' || goog.LOCALE == 'gl-ES') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_gl_ES; } @@ -15133,6 +19899,10 @@ if (goog.LOCALE == 'hi_IN' || goog.LOCALE == 'hi-IN') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_hi_IN; } +if (goog.LOCALE == 'hr_BA' || goog.LOCALE == 'hr-BA') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_hr_BA; +} + if (goog.LOCALE == 'hr_HR' || goog.LOCALE == 'hr-HR') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_hr_HR; } @@ -15153,6 +19923,10 @@ if (goog.LOCALE == 'ia') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ia; } +if (goog.LOCALE == 'ia_FR' || goog.LOCALE == 'ia-FR') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ia; +} + if (goog.LOCALE == 'id_ID' || goog.LOCALE == 'id-ID') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_id_ID; } @@ -15185,10 +19959,22 @@ if (goog.LOCALE == 'it_IT' || goog.LOCALE == 'it-IT') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_it_IT; } +if (goog.LOCALE == 'it_SM' || goog.LOCALE == 'it-SM') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_it_SM; +} + if (goog.LOCALE == 'ja_JP' || goog.LOCALE == 'ja-JP') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ja_JP; } +if (goog.LOCALE == 'jgo') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_jgo; +} + +if (goog.LOCALE == 'jgo_CM' || goog.LOCALE == 'jgo-CM') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_jgo; +} + if (goog.LOCALE == 'jmc') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_jmc; } @@ -15265,6 +20051,14 @@ if (goog.LOCALE == 'kk_Cyrl_KZ' || goog.LOCALE == 'kk-Cyrl-KZ') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_kk; } +if (goog.LOCALE == 'kkj') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_kkj; +} + +if (goog.LOCALE == 'kkj_CM' || goog.LOCALE == 'kkj-CM') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_kkj; +} + if (goog.LOCALE == 'kl') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_kl; } @@ -15293,6 +20087,10 @@ if (goog.LOCALE == 'kn_IN' || goog.LOCALE == 'kn-IN') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_kn_IN; } +if (goog.LOCALE == 'ko_KP' || goog.LOCALE == 'ko-KP') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ko_KP; +} + if (goog.LOCALE == 'ko_KR' || goog.LOCALE == 'ko-KR') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ko_KR; } @@ -15305,6 +20103,18 @@ if (goog.LOCALE == 'kok_IN' || goog.LOCALE == 'kok-IN') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_kok; } +if (goog.LOCALE == 'ks') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ks; +} + +if (goog.LOCALE == 'ks_Arab' || goog.LOCALE == 'ks-Arab') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ks; +} + +if (goog.LOCALE == 'ks_Arab_IN' || goog.LOCALE == 'ks-Arab-IN') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ks; +} + if (goog.LOCALE == 'ksb') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ksb; } @@ -15329,10 +20139,6 @@ if (goog.LOCALE == 'ksh_DE' || goog.LOCALE == 'ksh-DE') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ksh; } -if (goog.LOCALE == 'ku') { - goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ku; -} - if (goog.LOCALE == 'kw') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_kw; } @@ -15341,6 +20147,14 @@ if (goog.LOCALE == 'kw_GB' || goog.LOCALE == 'kw-GB') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_kw; } +if (goog.LOCALE == 'ky') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ky; +} + +if (goog.LOCALE == 'ky_KG' || goog.LOCALE == 'ky-KG') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ky; +} + if (goog.LOCALE == 'lag') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_lag; } @@ -15357,10 +20171,18 @@ if (goog.LOCALE == 'lg_UG' || goog.LOCALE == 'lg-UG') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_lg; } +if (goog.LOCALE == 'ln_AO' || goog.LOCALE == 'ln-AO') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ln_AO; +} + if (goog.LOCALE == 'ln_CD' || goog.LOCALE == 'ln-CD') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ln_CD; } +if (goog.LOCALE == 'ln_CF' || goog.LOCALE == 'ln-CF') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ln_CF; +} + if (goog.LOCALE == 'ln_CG' || goog.LOCALE == 'ln-CG') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ln_CG; } @@ -15449,6 +20271,14 @@ if (goog.LOCALE == 'mgh_MZ' || goog.LOCALE == 'mgh-MZ') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_mgh; } +if (goog.LOCALE == 'mgo') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_mgo; +} + +if (goog.LOCALE == 'mgo_CM' || goog.LOCALE == 'mgo-CM') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_mgo; +} + if (goog.LOCALE == 'mk') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_mk; } @@ -15461,16 +20291,36 @@ if (goog.LOCALE == 'ml_IN' || goog.LOCALE == 'ml-IN') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ml_IN; } +if (goog.LOCALE == 'mn') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_mn; +} + +if (goog.LOCALE == 'mn_Cyrl' || goog.LOCALE == 'mn-Cyrl') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_mn; +} + +if (goog.LOCALE == 'mn_Cyrl_MN' || goog.LOCALE == 'mn-Cyrl-MN') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_mn; +} + if (goog.LOCALE == 'mr_IN' || goog.LOCALE == 'mr-IN') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_mr_IN; } -if (goog.LOCALE == 'ms_BN' || goog.LOCALE == 'ms-BN') { - goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ms_BN; +if (goog.LOCALE == 'ms_Latn' || goog.LOCALE == 'ms-Latn') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ms_Latn; } -if (goog.LOCALE == 'ms_MY' || goog.LOCALE == 'ms-MY') { - goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ms_MY; +if (goog.LOCALE == 'ms_Latn_BN' || goog.LOCALE == 'ms-Latn-BN') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ms_Latn_BN; +} + +if (goog.LOCALE == 'ms_Latn_MY' || goog.LOCALE == 'ms-Latn-MY') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ms_Latn; +} + +if (goog.LOCALE == 'ms_Latn_SG' || goog.LOCALE == 'ms-Latn-SG') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ms_Latn; } if (goog.LOCALE == 'mt_MT' || goog.LOCALE == 'mt-MT') { @@ -15501,12 +20351,8 @@ if (goog.LOCALE == 'naq_NA' || goog.LOCALE == 'naq-NA') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_naq; } -if (goog.LOCALE == 'nb') { - goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_nb; -} - if (goog.LOCALE == 'nb_NO' || goog.LOCALE == 'nb-NO') { - goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_nb; + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_nb_NO; } if (goog.LOCALE == 'nd') { @@ -15537,10 +20383,22 @@ if (goog.LOCALE == 'nl_BE' || goog.LOCALE == 'nl-BE') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_nl_BE; } +if (goog.LOCALE == 'nl_CW' || goog.LOCALE == 'nl-CW') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_nl_CW; +} + if (goog.LOCALE == 'nl_NL' || goog.LOCALE == 'nl-NL') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_nl_NL; } +if (goog.LOCALE == 'nl_SR' || goog.LOCALE == 'nl-SR') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_nl_SR; +} + +if (goog.LOCALE == 'nl_SX' || goog.LOCALE == 'nl-SX') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_nl_SX; +} + if (goog.LOCALE == 'nmg') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_nmg; } @@ -15557,6 +20415,14 @@ if (goog.LOCALE == 'nn_NO' || goog.LOCALE == 'nn-NO') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_nn; } +if (goog.LOCALE == 'nnh') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_nnh; +} + +if (goog.LOCALE == 'nnh_CM' || goog.LOCALE == 'nnh-CM') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_nnh; +} + if (goog.LOCALE == 'nr') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_nr; } @@ -15605,6 +20471,18 @@ if (goog.LOCALE == 'or_IN' || goog.LOCALE == 'or-IN') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_or_IN; } +if (goog.LOCALE == 'os') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_os; +} + +if (goog.LOCALE == 'os_GE' || goog.LOCALE == 'os-GE') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_os; +} + +if (goog.LOCALE == 'os_RU' || goog.LOCALE == 'os-RU') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_os; +} + if (goog.LOCALE == 'pa') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_pa; } @@ -15641,10 +20519,18 @@ if (goog.LOCALE == 'pt_AO' || goog.LOCALE == 'pt-AO') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_pt_AO; } +if (goog.LOCALE == 'pt_CV' || goog.LOCALE == 'pt-CV') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_pt_CV; +} + if (goog.LOCALE == 'pt_GW' || goog.LOCALE == 'pt-GW') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_pt_GW; } +if (goog.LOCALE == 'pt_MO' || goog.LOCALE == 'pt-MO') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_pt_MO; +} + if (goog.LOCALE == 'pt_MZ' || goog.LOCALE == 'pt-MZ') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_pt_MZ; } @@ -15653,6 +20539,10 @@ if (goog.LOCALE == 'pt_ST' || goog.LOCALE == 'pt-ST') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_pt_ST; } +if (goog.LOCALE == 'pt_TL' || goog.LOCALE == 'pt-TL') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_pt_TL; +} + if (goog.LOCALE == 'rm') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_rm; } @@ -15685,6 +20575,18 @@ if (goog.LOCALE == 'rof_TZ' || goog.LOCALE == 'rof-TZ') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_rof; } +if (goog.LOCALE == 'ru_BY' || goog.LOCALE == 'ru-BY') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ru_BY; +} + +if (goog.LOCALE == 'ru_KG' || goog.LOCALE == 'ru-KG') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ru_KG; +} + +if (goog.LOCALE == 'ru_KZ' || goog.LOCALE == 'ru-KZ') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ru_KZ; +} + if (goog.LOCALE == 'ru_MD' || goog.LOCALE == 'ru-MD') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ru_MD; } @@ -15778,19 +20680,19 @@ if (goog.LOCALE == 'shi') { } if (goog.LOCALE == 'shi_Latn' || goog.LOCALE == 'shi-Latn') { - goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_shi; + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_shi_Latn; } if (goog.LOCALE == 'shi_Latn_MA' || goog.LOCALE == 'shi-Latn-MA') { - goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_shi; + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_shi_Latn; } if (goog.LOCALE == 'shi_Tfng' || goog.LOCALE == 'shi-Tfng') { - goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_shi_Tfng; + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_shi; } if (goog.LOCALE == 'shi_Tfng_MA' || goog.LOCALE == 'shi-Tfng-MA') { - goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_shi_Tfng; + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_shi; } if (goog.LOCALE == 'si') { @@ -15841,6 +20743,14 @@ if (goog.LOCALE == 'sq_AL' || goog.LOCALE == 'sq-AL') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_sq_AL; } +if (goog.LOCALE == 'sq_MK' || goog.LOCALE == 'sq-MK') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_sq_MK; +} + +if (goog.LOCALE == 'sq_XK' || goog.LOCALE == 'sq-XK') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_sq_XK; +} + if (goog.LOCALE == 'sr_Cyrl' || goog.LOCALE == 'sr-Cyrl') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_sr_Cyrl; } @@ -15857,6 +20767,10 @@ if (goog.LOCALE == 'sr_Cyrl_RS' || goog.LOCALE == 'sr-Cyrl-RS') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_sr_Cyrl; } +if (goog.LOCALE == 'sr_Cyrl_XK' || goog.LOCALE == 'sr-Cyrl-XK') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_sr_Cyrl; +} + if (goog.LOCALE == 'sr_Latn' || goog.LOCALE == 'sr-Latn') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_sr_Latn; } @@ -15873,6 +20787,10 @@ if (goog.LOCALE == 'sr_Latn_RS' || goog.LOCALE == 'sr-Latn-RS') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_sr_Latn; } +if (goog.LOCALE == 'sr_Latn_XK' || goog.LOCALE == 'sr-Latn-XK') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_sr_Latn; +} + if (goog.LOCALE == 'ss') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ss; } @@ -15905,6 +20823,10 @@ if (goog.LOCALE == 'st_ZA' || goog.LOCALE == 'st-ZA') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_st; } +if (goog.LOCALE == 'sv_AX' || goog.LOCALE == 'sv-AX') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_sv_AX; +} + if (goog.LOCALE == 'sv_FI' || goog.LOCALE == 'sv-FI') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_sv_FI; } @@ -15921,6 +20843,10 @@ if (goog.LOCALE == 'sw_TZ' || goog.LOCALE == 'sw-TZ') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_sw_TZ; } +if (goog.LOCALE == 'sw_UG' || goog.LOCALE == 'sw-UG') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_sw_UG; +} + if (goog.LOCALE == 'swc') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_swc; } @@ -15937,6 +20863,14 @@ if (goog.LOCALE == 'ta_LK' || goog.LOCALE == 'ta-LK') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ta_LK; } +if (goog.LOCALE == 'ta_MY' || goog.LOCALE == 'ta-MY') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ta_MY; +} + +if (goog.LOCALE == 'ta_SG' || goog.LOCALE == 'ta-SG') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_ta_SG; +} + if (goog.LOCALE == 'te_IN' || goog.LOCALE == 'te-IN') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_te_IN; } @@ -15993,6 +20927,10 @@ if (goog.LOCALE == 'tn') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_tn; } +if (goog.LOCALE == 'tn_BW' || goog.LOCALE == 'tn-BW') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_tn; +} + if (goog.LOCALE == 'tn_ZA' || goog.LOCALE == 'tn-ZA') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_tn; } @@ -16005,6 +20943,10 @@ if (goog.LOCALE == 'to_TO' || goog.LOCALE == 'to-TO') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_to; } +if (goog.LOCALE == 'tr_CY' || goog.LOCALE == 'tr-CY') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_tr_CY; +} + if (goog.LOCALE == 'tr_TR' || goog.LOCALE == 'tr-TR') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_tr_TR; } @@ -16109,6 +21051,10 @@ if (goog.LOCALE == 'vi_VN' || goog.LOCALE == 'vi-VN') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_vi_VN; } +if (goog.LOCALE == 'vo') { + goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_vo; +} + if (goog.LOCALE == 'vun') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_vun; } @@ -16204,4 +21150,3 @@ if (goog.LOCALE == 'zh_Hant_TW' || goog.LOCALE == 'zh-Hant-TW') { if (goog.LOCALE == 'zu_ZA' || goog.LOCALE == 'zu-ZA') { goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_zu_ZA; } - diff --git a/edit/closure-library/closure/goog/i18n/graphemebreak.js b/edit/closure-library/closure/goog/i18n/graphemebreak.js new file mode 100644 index 0000000000..c5eb9ef456 --- /dev/null +++ b/edit/closure-library/closure/goog/i18n/graphemebreak.js @@ -0,0 +1,214 @@ +// Copyright 2006 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview Detect Grapheme Cluster Break in a pair of codepoints. Follows + * Unicode 5.1 UAX#29. Tailoring for Virama × Indic Consonants is used. + * + */ + +goog.provide('goog.i18n.GraphemeBreak'); +goog.require('goog.structs.InversionMap'); + + +/** + * Enum for all Grapheme Cluster Break properties. + * These enums directly corresponds to Grapheme_Cluster_Break property values + * mentioned in http://unicode.org/reports/tr29 table 2. VIRAMA and + * INDIC_CONSONANT are for the Virama × Base tailoring mentioned in the notes. + * + * CR and LF are moved to the bottom of the list because they occur only once + * and so good candidates to take 2 decimal digit values. + * @enum {number} + * @protected + */ +goog.i18n.GraphemeBreak.property = { + ANY: 0, + CONTROL: 1, + EXTEND: 2, + PREPEND: 3, + SPACING_MARK: 4, + INDIC_CONSONANT: 5, + VIRAMA: 6, + L: 7, + V: 8, + T: 9, + LV: 10, + LVT: 11, + CR: 12, + LF: 13, + REGIONAL_INDICATOR: 14 +}; + + +/** + * Grapheme Cluster Break property values for all codepoints as inversion map. + * Constructed lazily. + * + * @type {goog.structs.InversionMap} + * @private + */ +goog.i18n.GraphemeBreak.inversions_ = null; + + +/** + * There are two kinds of grapheme clusters: 1) Legacy 2)Extended. This method + * is to check for legacy rules. + * + * @param {number} prop_a The property enum value of the first character. + * @param {number} prop_b The property enum value of the second character. + * @return {boolean} True if a & b do not form a cluster; False otherwise. + * @private + */ +goog.i18n.GraphemeBreak.applyLegacyBreakRules_ = function(prop_a, prop_b) { + + var prop = goog.i18n.GraphemeBreak.property; + + if (prop_a == prop.CR && prop_b == prop.LF) { + return false; + } + if (prop_a == prop.CONTROL || prop_a == prop.CR || prop_a == prop.LF) { + return true; + } + if (prop_b == prop.CONTROL || prop_b == prop.CR || prop_b == prop.LF) { + return true; + } + if ((prop_a == prop.L) && + (prop_b == prop.L || prop_b == prop.V || + prop_b == prop.LV || prop_b == prop.LVT)) { + return false; + } + if ((prop_a == prop.LV || prop_a == prop.V) && + (prop_b == prop.V || prop_b == prop.T)) { + return false; + } + if ((prop_a == prop.LVT || prop_a == prop.T) && (prop_b == prop.T)) { + return false; + } + if (prop_b == prop.EXTEND || prop_b == prop.VIRAMA) { + return false; + } + if (prop_a == prop.VIRAMA && prop_b == prop.INDIC_CONSONANT) { + return false; + } + return true; +}; + + +/** + * Method to return property enum value of the codepoint. If it is Hangul LV or + * LVT, then it is computed; for the rest it is picked from the inversion map. + * @param {number} acode The code point value of the character. + * @return {number} Property enum value of codepoint. + * @private + */ +goog.i18n.GraphemeBreak.getBreakProp_ = function(acode) { + if (0xAC00 <= acode && acode <= 0xD7A3) { + var prop = goog.i18n.GraphemeBreak.property; + if (acode % 0x1C == 0x10) { + return prop.LV; + } + return prop.LVT; + } else { + if (!goog.i18n.GraphemeBreak.inversions_) { + goog.i18n.GraphemeBreak.inversions_ = new goog.structs.InversionMap( + [0, 10, 1, 2, 1, 18, 95, 33, 13, 1, 594, 112, 275, 7, 263, 45, 1, 1, + 1, 2, 1, 2, 1, 1, 56, 5, 11, 11, 48, 21, 16, 1, 101, 7, 1, 1, 6, 2, + 2, 1, 4, 33, 1, 1, 1, 30, 27, 91, 11, 58, 9, 34, 4, 1, 9, 1, 3, 1, + 5, 43, 3, 136, 31, 1, 17, 37, 1, 1, 1, 1, 3, 8, 4, 1, 2, 1, 7, 8, 2, + 2, 21, 8, 1, 2, 17, 39, 1, 1, 1, 2, 6, 6, 1, 9, 5, 4, 2, 2, 12, 2, + 15, 2, 1, 17, 39, 2, 3, 12, 4, 8, 6, 17, 2, 3, 14, 1, 17, 39, 1, 1, + 3, 8, 4, 1, 20, 2, 29, 1, 2, 17, 39, 1, 1, 2, 1, 6, 6, 9, 6, 4, 2, + 2, 13, 1, 16, 1, 18, 41, 1, 1, 1, 12, 1, 9, 1, 41, 3, 17, 37, 4, 3, + 5, 7, 8, 3, 2, 8, 2, 30, 2, 17, 39, 1, 1, 1, 1, 2, 1, 3, 1, 5, 1, 8, + 9, 1, 3, 2, 30, 2, 17, 38, 3, 1, 2, 5, 7, 1, 9, 1, 10, 2, 30, 2, 22, + 48, 5, 1, 2, 6, 7, 19, 2, 13, 46, 2, 1, 1, 1, 6, 1, 12, 8, 50, 46, + 2, 1, 1, 1, 9, 11, 6, 14, 2, 58, 2, 27, 1, 1, 1, 1, 1, 4, 2, 49, 14, + 1, 4, 1, 1, 2, 5, 48, 9, 1, 57, 33, 12, 4, 1, 6, 1, 2, 2, 2, 1, 16, + 2, 4, 2, 2, 4, 3, 1, 3, 2, 7, 3, 4, 13, 1, 1, 1, 2, 6, 1, 1, 14, 1, + 98, 96, 72, 88, 349, 3, 931, 15, 2, 1, 14, 15, 2, 1, 14, 15, 2, 15, + 15, 14, 35, 17, 2, 1, 7, 8, 1, 2, 9, 1, 1, 9, 1, 45, 3, 155, 1, 87, + 31, 3, 4, 2, 9, 1, 6, 3, 20, 19, 29, 44, 9, 3, 2, 1, 69, 23, 2, 3, + 4, 45, 6, 2, 1, 1, 1, 8, 1, 1, 1, 2, 8, 6, 13, 128, 4, 1, 14, 33, 1, + 1, 5, 1, 1, 5, 1, 1, 1, 7, 31, 9, 12, 2, 1, 7, 23, 1, 4, 2, 2, 2, 2, + 2, 11, 3, 2, 36, 2, 1, 1, 2, 3, 1, 1, 3, 2, 12, 36, 8, 8, 2, 2, 21, + 3, 128, 3, 1, 13, 1, 7, 4, 1, 4, 2, 1, 203, 64, 523, 1, 2, 2, 24, 7, + 49, 16, 96, 33, 3070, 3, 141, 1, 96, 32, 554, 6, 105, 2, 30164, 4, + 1, 10, 33, 1, 80, 2, 272, 1, 3, 1, 4, 1, 23, 2, 2, 1, 24, 30, 4, 4, + 3, 8, 1, 1, 13, 2, 16, 34, 16, 1, 27, 18, 24, 24, 4, 8, 2, 23, 11, + 1, 1, 12, 32, 3, 1, 5, 3, 3, 36, 1, 2, 4, 2, 1, 3, 1, 69, 35, 6, 2, + 2, 2, 2, 12, 1, 8, 1, 1, 18, 16, 1, 3, 6, 1, 5, 48, 1, 1, 3, 2, 2, + 5, 2, 1, 1, 32, 9, 1, 2, 2, 5, 1, 1, 201, 14, 2, 1, 1, 9, 8, 2, 1, + 2, 1, 2, 1, 1, 1, 18, 11184, 27, 49, 1028, 1024, 6942, 1, 737, 16, + 16, 7, 216, 1, 158, 2, 89, 3, 513, 1, 2051, 15, 40, 7, 1, 1472, 1, + 1, 1, 53, 14, 1, 57, 2, 1, 45, 3, 4, 2, 1, 1, 2, 1, 66, 3, 36, 5, 1, + 6, 2, 75, 2, 1, 48, 3, 9, 1, 1, 1258, 1, 1, 1, 2, 6, 1, 1, 22681, + 62, 4, 25042, 1, 1, 3, 3, 1, 5, 8, 8, 2, 7, 30, 4, 148, 3, 8097, 26, + 790017, 255], + [1, 13, 1, 12, 1, 0, 1, 0, 1, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, + 2, 0, 1, 0, 2, 0, 2, 0, 2, 0, 2, 1, 0, 2, 0, 2, 0, 2, 0, 1, 0, 2, 0, + 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 4, 0, 5, 2, 4, 2, + 0, 4, 2, 4, 6, 4, 0, 2, 5, 0, 2, 0, 5, 2, 4, 0, 5, 2, 0, 2, 4, 2, 4, + 6, 0, 2, 5, 0, 2, 0, 5, 0, 2, 4, 0, 5, 2, 4, 2, 6, 2, 5, 0, 2, 0, 2, + 4, 0, 5, 2, 0, 4, 2, 4, 6, 0, 2, 0, 2, 4, 0, 5, 2, 0, 2, 4, 2, 4, 6, + 2, 5, 0, 2, 0, 5, 0, 2, 0, 5, 2, 4, 2, 4, 6, 0, 2, 0, 4, 0, 5, 0, 2, + 4, 2, 6, 2, 5, 0, 2, 0, 4, 0, 5, 2, 0, 4, 2, 4, 2, 4, 2, 4, 2, 6, 2, + 5, 0, 2, 0, 4, 0, 5, 0, 2, 4, 2, 4, 6, 0, 2, 0, 2, 0, 4, 0, 5, 6, 2, + 4, 2, 4, 2, 4, 0, 5, 0, 2, 0, 4, 2, 6, 0, 2, 0, 5, 0, 2, 0, 4, 2, 0, + 2, 0, 5, 0, 2, 0, 2, 0, 2, 0, 2, 0, 4, 5, 2, 4, 2, 6, 0, 2, 0, 2, 0, + 2, 0, 5, 0, 2, 4, 2, 0, 6, 4, 2, 5, 0, 5, 0, 4, 2, 5, 2, 5, 0, 5, 0, + 5, 2, 5, 2, 0, 4, 2, 0, 2, 5, 0, 2, 0, 7, 8, 9, 0, 2, 0, 5, 2, 6, 0, + 5, 2, 6, 0, 5, 2, 0, 5, 2, 5, 0, 2, 4, 2, 4, 2, 4, 2, 6, 2, 0, 2, 0, + 2, 0, 2, 0, 5, 2, 4, 2, 4, 2, 4, 2, 0, 5, 0, 5, 0, 4, 0, 4, 0, 5, 2, + 4, 0, 5, 0, 5, 4, 2, 4, 2, 6, 0, 2, 0, 2, 4, 2, 0, 2, 4, 0, 5, 2, 4, + 2, 4, 2, 4, 2, 4, 6, 5, 0, 2, 0, 2, 4, 0, 5, 4, 2, 4, 2, 6, 4, 5, 0, + 5, 0, 5, 0, 2, 4, 2, 4, 2, 4, 2, 6, 0, 5, 4, 2, 4, 2, 0, 5, 0, 2, 0, + 2, 4, 2, 0, 2, 0, 4, 2, 0, 2, 0, 1, 2, 1, 0, 1, 0, 1, 0, 2, 0, 2, 0, + 6, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 6, 5, 2, 5, 4, + 2, 4, 0, 5, 0, 5, 0, 5, 0, 5, 0, 4, 0, 5, 4, 6, 0, 2, 0, 5, 0, 2, 0, + 5, 2, 4, 6, 0, 7, 2, 4, 0, 5, 0, 5, 2, 4, 2, 4, 2, 4, 6, 0, 5, 2, 4, + 2, 4, 2, 0, 2, 0, 2, 4, 0, 5, 0, 5, 0, 5, 0, 5, 2, 0, 2, 0, 2, 0, 2, + 0, 2, 0, 5, 4, 2, 4, 0, 4, 6, 0, 5, 0, 5, 0, 5, 0, 4, 2, 4, 2, 4, 0, + 4, 6, 0, 11, 8, 9, 0, 2, 0, 2, 0, 2, 0, 2, 0, 1, 0, 2, 0, 1, 0, 2, + 0, 2, 0, 2, 6, 0, 4, 2, 4, 0, 2, 6, 0, 2, 4, 0, 4, 2, 4, 6, 2, 0, 1, + 0, 2, 0, 2, 4, 2, 6, 0, 2, 4, 0, 4, 2, 4, 6, 0, 2, 4, 2, 4, 2, 6, 2, + 0, 4, 2, 0, 2, 4, 2, 0, 4, 2, 1, 2, 0, 2, 0, 2, 0, 2, 0, 14, 0, 1, + 2], + true); + } + return /** @type {number} */ ( + goog.i18n.GraphemeBreak.inversions_.at(acode)); + } +}; + + +/** + * There are two kinds of grapheme clusters: 1) Legacy 2)Extended. This method + * is to check for both using a boolean flag to switch between them. + * @param {number} a The code point value of the first character. + * @param {number} b The code point value of the second character. + * @param {boolean=} opt_extended If true, indicates extended grapheme cluster; + * If false, indicates legacy cluster. + * @return {boolean} True if a & b do not form a cluster; False otherwise. + */ +goog.i18n.GraphemeBreak.hasGraphemeBreak = function(a, b, opt_extended) { + + var prop_a = goog.i18n.GraphemeBreak.getBreakProp_(a); + var prop_b = goog.i18n.GraphemeBreak.getBreakProp_(b); + var prop = goog.i18n.GraphemeBreak.property; + + return goog.i18n.GraphemeBreak.applyLegacyBreakRules_(prop_a, prop_b) && + !(opt_extended && + (prop_a == prop.PREPEND || prop_b == prop.SPACING_MARK)); +}; diff --git a/master/closure-library/closure/goog/i18n/messageformat.js b/edit/closure-library/closure/goog/i18n/messageformat.js similarity index 100% rename from master/closure-library/closure/goog/i18n/messageformat.js rename to edit/closure-library/closure/goog/i18n/messageformat.js diff --git a/master/closure-library/closure/goog/i18n/mime.js b/edit/closure-library/closure/goog/i18n/mime.js similarity index 65% rename from master/closure-library/closure/goog/i18n/mime.js rename to edit/closure-library/closure/goog/i18n/mime.js index aeded392cd..5343ceb277 100644 --- a/master/closure-library/closure/goog/i18n/mime.js +++ b/edit/closure-library/closure/goog/i18n/mime.js @@ -19,6 +19,8 @@ goog.provide('goog.i18n.mime'); goog.provide('goog.i18n.mime.encode'); +goog.require('goog.array'); + /** * Regular expression for matching those characters that are outside the @@ -63,38 +65,47 @@ goog.i18n.mime.encode = function(str, opt_noquote) { // Special case for space, which can be encoded as _ not =20 return '_'; } - - var a = ['']; // start with empty string to get = before every char - // First convert the UCS-2 character into its UTF-8 bytes - if (i < 128) { - a.push(i); - } else if (i <= 0x7ff) { - a.push( - 0xc0 + ((i >> 6) & 0x3f), - 0x80 + (i & 0x3f)); - } else if (i <= 0xffff) { - a.push( - 0xe0 + ((i >> 12) & 0x3f), - 0x80 + ((i >> 6) & 0x3f), - 0x80 + (i & 0x3f)); - } else { - // (This is defensive programming, since ecmascript isn't supposed - // to handle code points that take more than 16 bits.) - a.push( - 0xf0 + ((i >> 18) & 0x3f), - 0x80 + ((i >> 12) & 0x3f), - 0x80 + ((i >> 6) & 0x3f), - 0x80 + (i & 0x3f)); - } - // Now convert those bytes into hex strings (don't do anything with - // a[0] as that's got the empty string that lets us use join(), - // below). - for (i = a.length - 1; i > 0; --i) { - a[i] = a[i].toString(16); - } - // Form the string with = before each byte. + var a = goog.array.concat('', goog.i18n.mime.getHexCharArray(c)); return a.join('='); }) + '?='; } return str; }; + + +/** + * Get an array of UTF-8 hex codes for a given character. + * @param {string} c The matched character. + * @return {!Array.} A hex array representing the character. + */ +goog.i18n.mime.getHexCharArray = function(c) { + var i = c.charCodeAt(0); + var a = []; + // First convert the UCS-2 character into its UTF-8 bytes + if (i < 128) { + a.push(i); + } else if (i <= 0x7ff) { + a.push( + 0xc0 + ((i >> 6) & 0x3f), + 0x80 + (i & 0x3f)); + } else if (i <= 0xffff) { + a.push( + 0xe0 + ((i >> 12) & 0x3f), + 0x80 + ((i >> 6) & 0x3f), + 0x80 + (i & 0x3f)); + } else { + // (This is defensive programming, since ecmascript isn't supposed + // to handle code points that take more than 16 bits.) + a.push( + 0xf0 + ((i >> 18) & 0x3f), + 0x80 + ((i >> 12) & 0x3f), + 0x80 + ((i >> 6) & 0x3f), + 0x80 + (i & 0x3f)); + } + // Now convert those bytes into hex strings (don't do anything with + // a[0] as that's got the empty string that lets us use join()) + for (i = a.length - 1; i >= 0; --i) { + a[i] = a[i].toString(16); + } + return a; +}; diff --git a/master/closure-library/closure/goog/i18n/numberformat.js b/edit/closure-library/closure/goog/i18n/numberformat.js similarity index 68% rename from master/closure-library/closure/goog/i18n/numberformat.js rename to edit/closure-library/closure/goog/i18n/numberformat.js index f7e4715172..5d92436b59 100644 --- a/master/closure-library/closure/goog/i18n/numberformat.js +++ b/edit/closure-library/closure/goog/i18n/numberformat.js @@ -24,8 +24,11 @@ goog.provide('goog.i18n.NumberFormat'); goog.provide('goog.i18n.NumberFormat.CurrencyStyle'); goog.provide('goog.i18n.NumberFormat.Format'); +goog.require('goog.asserts'); +goog.require('goog.i18n.CompactNumberFormatSymbols'); goog.require('goog.i18n.NumberFormatSymbols'); goog.require('goog.i18n.currency'); +goog.require('goog.math'); @@ -49,11 +52,19 @@ goog.i18n.NumberFormat = function(pattern, opt_currency, opt_currencyStyle) { this.maximumIntegerDigits_ = 40; this.minimumIntegerDigits_ = 1; + this.significantDigits_ = 0; // invariant, <= maximumFractionDigits this.maximumFractionDigits_ = 3; // invariant, >= minFractionDigits this.minimumFractionDigits_ = 0; this.minExponentDigits_ = 0; this.useSignForPositiveExponent_ = false; + /** + * Whether to show trailing zeros in the fraction when significantDigits_ is + * positive. + * @private {boolean} + */ + this.showTrailingZeros_ = false; + this.positivePrefix_ = ''; this.positiveSuffix_ = ''; this.negativePrefix_ = '-'; @@ -64,6 +75,15 @@ goog.i18n.NumberFormat = function(pattern, opt_currency, opt_currencyStyle) { this.groupingSize_ = 3; this.decimalSeparatorAlwaysShown_ = false; this.useExponentialNotation_ = false; + this.compactStyle_ = goog.i18n.NumberFormat.CompactStyle.NONE; + + /** + * The number to base the formatting on when using compact styles, or null + * if formatting should not be based on another number. + * @type {?number} + * @private + */ + this.baseFormattingNumber_ = null; if (typeof pattern == 'number') { this.applyStandardPattern_(pattern); @@ -81,7 +101,9 @@ goog.i18n.NumberFormat.Format = { DECIMAL: 1, SCIENTIFIC: 2, PERCENT: 3, - CURRENCY: 4 + CURRENCY: 4, + COMPACT_SHORT: 5, + COMPACT_LONG: 6 }; @@ -96,6 +118,17 @@ goog.i18n.NumberFormat.CurrencyStyle = { }; +/** + * Compacting styles. + * @enum {number} + */ +goog.i18n.NumberFormat.CompactStyle = { + NONE: 0, // Don't compact. + SHORT: 1, // Short compact form, such as 1.2B. + LONG: 2 // Long compact form, such as 1.2 billion. +}; + + /** * If the usage of Ascii digits should be enforced. * @type {boolean} @@ -131,6 +164,10 @@ goog.i18n.NumberFormat.prototype.setMinimumFractionDigits = function(min) { if (min > this.maximumFractionDigits_) { throw Error('Min value must be less than max value'); } + if (this.significantDigits_ > 0 && min > 0) { + throw Error( + 'Can\'t combine significant digits and minimum fraction digits'); + } this.minimumFractionDigits_ = min; }; @@ -147,6 +184,64 @@ goog.i18n.NumberFormat.prototype.setMaximumFractionDigits = function(max) { }; +/** + * Sets number of significant digits to show. Only fractions will be rounded. + * @param {number} number The number of significant digits to include. + */ +goog.i18n.NumberFormat.prototype.setSignificantDigits = function(number) { + if (this.minimumFractionDigits_ > 0 && number >= 0) { + throw Error( + 'Can\'t combine significant digits and minimum fraction digits'); + } + this.significantDigits_ = number; +}; + + +/** + * Gets number of significant digits to show. Only fractions will be rounded. + * @return {number} The number of significant digits to include. + */ +goog.i18n.NumberFormat.prototype.getSignificantDigits = function() { + return this.significantDigits_; +}; + + +/** + * Sets whether trailing fraction zeros should be shown when significantDigits_ + * is positive. If this is true and significantDigits_ is 2, 1 will be formatted + * as '1.0'. + * @param {boolean} showTrailingZeros Whether trailing zeros should be shown. + */ +goog.i18n.NumberFormat.prototype.setShowTrailingZeros = + function(showTrailingZeros) { + this.showTrailingZeros_ = showTrailingZeros; +}; + + +/** + * Sets a number to base the formatting on when compact style formatting is + * used. If this is null, the formatting should be based only on the number to + * be formatting. + * + * This base formatting number can be used to format the target number as + * another number would be formatted. For example, 100,000 is normally formatted + * as "100K" in the COMPACT_SHORT format. To instead format it as '0.1M', the + * base number could be set to 1,000,000 in order to force all numbers to be + * formatted in millions. Similarly, 1,000,000,000 would normally be formatted + * as '1B' and setting the base formatting number to 1,000,000, would cause it + * to be formatted instead as '1,000M'. + * + * @param {?number} baseFormattingNumber The number to base formatting on, or + * null if formatting should not be based on another number. + */ +goog.i18n.NumberFormat.prototype.setBaseFormatting = + function(baseFormattingNumber) { + goog.asserts.assert(goog.isNull(baseFormattingNumber) || + isFinite(baseFormattingNumber)); + this.baseFormattingNumber_ = baseFormattingNumber; +}; + + /** * Apply provided pattern, result are stored in member variables. * @@ -200,12 +295,33 @@ goog.i18n.NumberFormat.prototype.applyStandardPattern_ = function(patternType) { goog.i18n.NumberFormatSymbols.CURRENCY_PATTERN, this.intlCurrencyCode_)); break; + case goog.i18n.NumberFormat.Format.COMPACT_SHORT: + this.applyCompactStyle_(goog.i18n.NumberFormat.CompactStyle.SHORT); + break; + case goog.i18n.NumberFormat.Format.COMPACT_LONG: + this.applyCompactStyle_(goog.i18n.NumberFormat.CompactStyle.LONG); + break; default: throw Error('Unsupported pattern type.'); } }; +/** + * Apply a predefined pattern for shorthand formats. + * @param {goog.i18n.NumberFormat.CompactStyle} style the compact style to + * set defaults for. + * @private + */ +goog.i18n.NumberFormat.prototype.applyCompactStyle_ = function(style) { + this.compactStyle_ = style; + this.applyPattern_(goog.i18n.NumberFormatSymbols.DECIMAL_PATTERN); + this.setMinimumFractionDigits(0); + this.setMaximumFractionDigits(2); + this.setSignificantDigits(2); +}; + + /** * Parses text string to produce a Number. * @@ -222,6 +338,10 @@ goog.i18n.NumberFormat.prototype.applyStandardPattern_ = function(patternType) { goog.i18n.NumberFormat.prototype.parse = function(text, opt_pos) { var pos = opt_pos || [0]; + if (this.compactStyle_ != goog.i18n.NumberFormat.CompactStyle.NONE) { + throw Error('Parsing of compact numbers is unimplemented'); + } + var start = pos[0]; var ret = NaN; @@ -290,6 +410,10 @@ goog.i18n.NumberFormat.prototype.parseNumber_ = function(text, pos) { var grouping = goog.i18n.NumberFormatSymbols.GROUP_SEP; var exponentChar = goog.i18n.NumberFormatSymbols.EXP_SYMBOL; + if (this.compactStyle_ != goog.i18n.NumberFormat.CompactStyle.NONE) { + throw Error('Parsing of compact style numbers is not implemented'); + } + var normalizedText = ''; for (; pos[0] < text.length; pos[0]++) { var ch = text.charAt(pos[0]); @@ -359,6 +483,13 @@ goog.i18n.NumberFormat.prototype.format = function(number) { } var parts = []; + var baseFormattingNumber = goog.isNull(this.baseFormattingNumber_) ? + number : + this.baseFormattingNumber_; + var unit = this.getUnitAfterRounding_(baseFormattingNumber, number); + number /= Math.pow(10, unit.divisorBase); + + parts.push(unit.prefix); // in icu code, it is commented that certain computation need to keep the // negative sign for 0. @@ -379,25 +510,29 @@ goog.i18n.NumberFormat.prototype.format = function(number) { } parts.push(isNegative ? this.negativeSuffix_ : this.positiveSuffix_); + parts.push(unit.suffix); return parts.join(''); }; /** - * Formats a Number in fraction format. - * - * @param {number} number Value need to be formated. - * @param {number} minIntDigits Minimum integer digits. - * @param {Array} parts This array holds the pieces of formatted string. - * This function will add its formatted pieces to the array. + * Round a number into an integer and fractional part + * based on the rounding rules for this NumberFormat. + * @param {number} number The number to round. + * @return {{intValue: number, fracValue: number}} The integer and fractional + * part after rounding. * @private */ -goog.i18n.NumberFormat.prototype.subformatFixed_ = - function(number, minIntDigits, parts) { - // round the number +goog.i18n.NumberFormat.prototype.roundNumber_ = function(number) { var power = Math.pow(10, this.maximumFractionDigits_); - var shiftedNumber = Math.round(number * power); + var shiftedNumber = this.significantDigits_ <= 0 ? + Math.round(number * power) : + Math.floor(this.roundToSignificantDigits_( + number * power, + this.significantDigits_, + this.maximumFractionDigits_)); + var intValue, fracValue; if (isFinite(shiftedNumber)) { intValue = Math.floor(shiftedNumber / power); @@ -406,8 +541,38 @@ goog.i18n.NumberFormat.prototype.subformatFixed_ = intValue = number; fracValue = 0; } + return {intValue: intValue, fracValue: fracValue}; +}; - var fractionPresent = this.minimumFractionDigits_ > 0 || fracValue > 0; + +/** + * Formats a Number in fraction format. + * + * @param {number} number + * @param {number} minIntDigits Minimum integer digits. + * @param {Array} parts This array holds the pieces of formatted string. + * This function will add its formatted pieces to the array. + * @private + */ +goog.i18n.NumberFormat.prototype.subformatFixed_ = + function(number, minIntDigits, parts) { + + var rounded = this.roundNumber_(number); + var power = Math.pow(10, this.maximumFractionDigits_); + var intValue = rounded.intValue; + var fracValue = rounded.fracValue; + + var numIntDigits = (intValue == 0) ? 0 : this.intLog10_(intValue) + 1; + var fractionPresent = this.minimumFractionDigits_ > 0 || fracValue > 0 || + (this.showTrailingZeros_ && numIntDigits < this.significantDigits_); + var minimumFractionDigits = this.minimumFractionDigits_; + if (fractionPresent) { + if (this.showTrailingZeros_ && this.significantDigits_ > 0) { + minimumFractionDigits = this.significantDigits_ - numIntDigits; + } else { + minimumFractionDigits = this.minimumFractionDigits_; + } + } var intPart = ''; var translatableInt = intValue; @@ -452,7 +617,7 @@ goog.i18n.NumberFormat.prototype.subformatFixed_ = var fracPart = '' + (fracValue + power); var fracLen = fracPart.length; while (fracPart.charAt(fracLen - 1) == '0' && - fracLen > this.minimumFractionDigits_ + 1) { + fracLen > minimumFractionDigits + 1) { fracLen--; } @@ -506,7 +671,7 @@ goog.i18n.NumberFormat.prototype.subformatExponential_ = return; } - var exponent = Math.floor(Math.log(number) / Math.log(10)); + var exponent = goog.math.safeFloor(Math.log(number) / Math.log(10)); number /= Math.pow(10, exponent); var minIntDigits = this.minimumIntegerDigits_; @@ -874,3 +1039,190 @@ goog.i18n.NumberFormat.prototype.parseTrunk_ = function(pattern, pos) { this.decimalSeparatorAlwaysShown_ = decimalPos == 0 || decimalPos == totalDigits; }; + + +/** + * Alias for the compact format 'unit' object. + * @typedef {{ + * prefix: string, + * suffix: string, + * divisorBase: number + * }} + */ +goog.i18n.NumberFormat.CompactNumberUnit; + + +/** + * The empty unit, corresponding to a base of 0. + * @private {!goog.i18n.NumberFormat.CompactNumberUnit} + */ +goog.i18n.NumberFormat.NULL_UNIT_ = { prefix: '', suffix: '', divisorBase: 0 }; + + +/** + * Get compact unit for a certain number of digits + * + * @param {number} base The number of digits to get the unit for. + * @param {string} plurality The plurality of the number. + * @return {!goog.i18n.NumberFormat.CompactNumberUnit} The compact unit. + * @private + */ +goog.i18n.NumberFormat.prototype.getUnitFor_ = function(base, plurality) { + var table = this.compactStyle_ == goog.i18n.NumberFormat.CompactStyle.SHORT ? + goog.i18n.CompactNumberFormatSymbols.COMPACT_DECIMAL_SHORT_PATTERN : + goog.i18n.CompactNumberFormatSymbols.COMPACT_DECIMAL_LONG_PATTERN; + + if (base < 3) { + return goog.i18n.NumberFormat.NULL_UNIT_; + } else { + base = Math.min(14, base); + var patterns = table[Math.pow(10, base)]; + if (!patterns) { + return goog.i18n.NumberFormat.NULL_UNIT_; + } + + var pattern = patterns[plurality]; + if (!pattern || pattern == '0') { + return goog.i18n.NumberFormat.NULL_UNIT_; + } + + var parts = /([^0]*)(0+)(.*)/.exec(pattern); + if (!parts) { + return goog.i18n.NumberFormat.NULL_UNIT_; + } + + return { + prefix: parts[1], + suffix: parts[3], + divisorBase: base - (parts[2].length - 1) + }; + } +}; + + +/** + * Get the compact unit divisor, accounting for rounding of the quantity. + * + * @param {number} formattingNumber The number to base the formatting on. The + * unit will be calculated from this number. + * @param {number} pluralityNumber The number to use for calculating the + * plurality. + * @return {!goog.i18n.NumberFormat.CompactNumberUnit} The unit after rounding. + * @private + */ +goog.i18n.NumberFormat.prototype.getUnitAfterRounding_ = + function(formattingNumber, pluralityNumber) { + if (this.compactStyle_ == goog.i18n.NumberFormat.CompactStyle.NONE) { + return goog.i18n.NumberFormat.NULL_UNIT_; + } + + formattingNumber = Math.abs(formattingNumber); + pluralityNumber = Math.abs(pluralityNumber); + + var initialPlurality = this.pluralForm_(formattingNumber); + // Compute the exponent from the formattingNumber, to compute the unit. + var base = formattingNumber <= 1 ? 0 : this.intLog10_(formattingNumber); + var initialDivisor = this.getUnitFor_(base, initialPlurality).divisorBase; + // Round both numbers based on the unit used. + var pluralityAttempt = pluralityNumber / Math.pow(10, initialDivisor); + var pluralityRounded = this.roundNumber_(pluralityAttempt); + var formattingAttempt = formattingNumber / Math.pow(10, initialDivisor); + var formattingRounded = this.roundNumber_(formattingAttempt); + // Compute the plurality of the pluralityNumber when formatted using the name + // units as the formattingNumber. + var finalPlurality = + this.pluralForm_(pluralityRounded.intValue + pluralityRounded.fracValue); + // Get the final unit, using the rounded formatting number to get the correct + // unit, and the plurality computed from the pluralityNumber. + return this.getUnitFor_( + initialDivisor + this.intLog10_(formattingRounded.intValue), + finalPlurality); +}; + + +/** + * Get the integer base 10 logarithm of a number. + * + * @param {number} number The number to log. + * @return {number} The lowest integer n such that 10^n >= number. + * @private + */ +goog.i18n.NumberFormat.prototype.intLog10_ = function(number) { + // Turns out Math.log(1000000)/Math.LN10 is strictly less than 6. + var i = 0; + while ((number /= 10) >= 1) i++; + return i; +}; + + +/** + * Round to a certain number of significant digits. + * + * @param {number} number The number to round. + * @param {number} significantDigits The number of significant digits + * to round to. + * @param {number} scale Treat number as fixed point times 10^scale. + * @return {number} The rounded number. + * @private + */ +goog.i18n.NumberFormat.prototype.roundToSignificantDigits_ = + function(number, significantDigits, scale) { + if (!number) + return number; + + var digits = this.intLog10_(number); + var magnitude = significantDigits - digits - 1; + + // Only round fraction, not (potentially shifted) integers. + if (magnitude < -scale) { + var point = Math.pow(10, scale); + return Math.round(number / point) * point; + } + + var power = Math.pow(10, magnitude); + var shifted = Math.round(number * power); + return shifted / power; +}; + + +/** + * Get the plural form of a number. + * @param {number} quantity The quantity to find plurality of. + * @return {string} One of 'zero', 'one', 'two', 'few', 'many', 'other'. + * @private + */ +goog.i18n.NumberFormat.prototype.pluralForm_ = function(quantity) { + /* TODO: Implement */ + return 'other'; +}; + + +/** + * Checks if the currency symbol comes before the value ($12) or after (12$) + * Handy for applications that need to have separate UI fields for the currency + * value and symbol, especially for input: Price: [USD] [123.45] + * The currency symbol might be a combo box, or a label. + * + * @return {boolean} true if currency is before value. + */ +goog.i18n.NumberFormat.prototype.isCurrencyCodeBeforeValue = function() { + var posCurrSymbol = this.pattern_.indexOf('\u00A4'); // '¤' Currency sign + var posPound = this.pattern_.indexOf('#'); + var posZero = this.pattern_.indexOf('0'); + + // posCurrValue is the first '#' or '0' found. + // If none of them is found (not possible, but still), + // the result is true (postCurrSymbol < MAX_VALUE) + // That is OK, matches the en_US and ROOT locales. + var posCurrValue = Number.MAX_VALUE; + if (posPound >= 0 && posPound < posCurrValue) { + posCurrValue = posPound; + } + if (posZero >= 0 && posZero < posCurrValue) { + posCurrValue = posZero; + } + + // No need to test, it is guaranteed that both these symbols exist. + // If not, we have bigger problems than this. + return posCurrSymbol < posCurrValue; +}; diff --git a/master/closure-library/closure/goog/i18n/numberformatsymbols.js b/edit/closure-library/closure/goog/i18n/numberformatsymbols.js similarity index 91% rename from master/closure-library/closure/goog/i18n/numberformatsymbols.js rename to edit/closure-library/closure/goog/i18n/numberformatsymbols.js index 2f04debaac..6ae90cb84d 100644 --- a/master/closure-library/closure/goog/i18n/numberformatsymbols.js +++ b/edit/closure-library/closure/goog/i18n/numberformatsymbols.js @@ -18,6 +18,7 @@ * This file is autogenerated by script: * http://go/generate_number_constants.py * using the --for_closure flag. + * File generated from CLDR ver. 23 * * To reduce the file size (which may cause issues in some JS * developing environments), this file will only contain locales @@ -45,7 +46,10 @@ goog.provide('goog.i18n.NumberFormatSymbols_bg'); goog.provide('goog.i18n.NumberFormatSymbols_bg_BG'); goog.provide('goog.i18n.NumberFormatSymbols_bn'); goog.provide('goog.i18n.NumberFormatSymbols_bn_BD'); +goog.provide('goog.i18n.NumberFormatSymbols_br'); +goog.provide('goog.i18n.NumberFormatSymbols_br_FR'); goog.provide('goog.i18n.NumberFormatSymbols_ca'); +goog.provide('goog.i18n.NumberFormatSymbols_ca_AD'); goog.provide('goog.i18n.NumberFormatSymbols_ca_ES'); goog.provide('goog.i18n.NumberFormatSymbols_chr'); goog.provide('goog.i18n.NumberFormatSymbols_chr_US'); @@ -66,22 +70,28 @@ goog.provide('goog.i18n.NumberFormatSymbols_el_GR'); goog.provide('goog.i18n.NumberFormatSymbols_en'); goog.provide('goog.i18n.NumberFormatSymbols_en_AS'); goog.provide('goog.i18n.NumberFormatSymbols_en_AU'); -goog.provide('goog.i18n.NumberFormatSymbols_en_Dsrt'); goog.provide('goog.i18n.NumberFormatSymbols_en_Dsrt_US'); +goog.provide('goog.i18n.NumberFormatSymbols_en_FM'); goog.provide('goog.i18n.NumberFormatSymbols_en_GB'); goog.provide('goog.i18n.NumberFormatSymbols_en_GU'); goog.provide('goog.i18n.NumberFormatSymbols_en_IE'); goog.provide('goog.i18n.NumberFormatSymbols_en_IN'); goog.provide('goog.i18n.NumberFormatSymbols_en_MH'); goog.provide('goog.i18n.NumberFormatSymbols_en_MP'); +goog.provide('goog.i18n.NumberFormatSymbols_en_PR'); +goog.provide('goog.i18n.NumberFormatSymbols_en_PW'); goog.provide('goog.i18n.NumberFormatSymbols_en_SG'); +goog.provide('goog.i18n.NumberFormatSymbols_en_TC'); goog.provide('goog.i18n.NumberFormatSymbols_en_UM'); goog.provide('goog.i18n.NumberFormatSymbols_en_US'); +goog.provide('goog.i18n.NumberFormatSymbols_en_VG'); goog.provide('goog.i18n.NumberFormatSymbols_en_VI'); goog.provide('goog.i18n.NumberFormatSymbols_en_ZA'); goog.provide('goog.i18n.NumberFormatSymbols_es'); goog.provide('goog.i18n.NumberFormatSymbols_es_419'); +goog.provide('goog.i18n.NumberFormatSymbols_es_EA'); goog.provide('goog.i18n.NumberFormatSymbols_es_ES'); +goog.provide('goog.i18n.NumberFormatSymbols_es_IC'); goog.provide('goog.i18n.NumberFormatSymbols_et'); goog.provide('goog.i18n.NumberFormatSymbols_et_EE'); goog.provide('goog.i18n.NumberFormatSymbols_eu'); @@ -126,6 +136,7 @@ goog.provide('goog.i18n.NumberFormatSymbols_is'); goog.provide('goog.i18n.NumberFormatSymbols_is_IS'); goog.provide('goog.i18n.NumberFormatSymbols_it'); goog.provide('goog.i18n.NumberFormatSymbols_it_IT'); +goog.provide('goog.i18n.NumberFormatSymbols_it_SM'); goog.provide('goog.i18n.NumberFormatSymbols_iw'); goog.provide('goog.i18n.NumberFormatSymbols_ja'); goog.provide('goog.i18n.NumberFormatSymbols_ja_JP'); @@ -144,9 +155,11 @@ goog.provide('goog.i18n.NumberFormatSymbols_ml_IN'); goog.provide('goog.i18n.NumberFormatSymbols_mr'); goog.provide('goog.i18n.NumberFormatSymbols_mr_IN'); goog.provide('goog.i18n.NumberFormatSymbols_ms'); -goog.provide('goog.i18n.NumberFormatSymbols_ms_MY'); +goog.provide('goog.i18n.NumberFormatSymbols_ms_Latn_MY'); goog.provide('goog.i18n.NumberFormatSymbols_mt'); goog.provide('goog.i18n.NumberFormatSymbols_mt_MT'); +goog.provide('goog.i18n.NumberFormatSymbols_nb'); +goog.provide('goog.i18n.NumberFormatSymbols_nb_NO'); goog.provide('goog.i18n.NumberFormatSymbols_nl'); goog.provide('goog.i18n.NumberFormatSymbols_nl_NL'); goog.provide('goog.i18n.NumberFormatSymbols_no'); @@ -169,7 +182,6 @@ goog.provide('goog.i18n.NumberFormatSymbols_sq'); goog.provide('goog.i18n.NumberFormatSymbols_sq_AL'); goog.provide('goog.i18n.NumberFormatSymbols_sr'); goog.provide('goog.i18n.NumberFormatSymbols_sr_Cyrl_RS'); -goog.provide('goog.i18n.NumberFormatSymbols_sr_Latn_RS'); goog.provide('goog.i18n.NumberFormatSymbols_sv'); goog.provide('goog.i18n.NumberFormatSymbols_sv_SE'); goog.provide('goog.i18n.NumberFormatSymbols_sw'); @@ -192,7 +204,6 @@ goog.provide('goog.i18n.NumberFormatSymbols_vi_VN'); goog.provide('goog.i18n.NumberFormatSymbols_zh'); goog.provide('goog.i18n.NumberFormatSymbols_zh_CN'); goog.provide('goog.i18n.NumberFormatSymbols_zh_HK'); -goog.provide('goog.i18n.NumberFormatSymbols_zh_Hans'); goog.provide('goog.i18n.NumberFormatSymbols_zh_Hans_CN'); goog.provide('goog.i18n.NumberFormatSymbols_zh_TW'); goog.provide('goog.i18n.NumberFormatSymbols_zu'); @@ -217,7 +228,7 @@ goog.i18n.NumberFormatSymbols_af = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', - CURRENCY_PATTERN: '\u00A4#,##0.00', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', DEF_CURRENCY_CODE: 'ZAR' }; @@ -273,7 +284,7 @@ goog.i18n.NumberFormatSymbols_ar = { EXP_SYMBOL: '\u0627\u0633', PERMILL: '\u0609', INFINITY: '\u221E', - NAN: '\u0644\u064A\u0633 \u0631\u0642\u0645', + NAN: '\u0644\u064A\u0633\u00A0\u0631\u0642\u0645', DECIMAL_PATTERN: '#0.###;#0.###-', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', @@ -334,13 +345,13 @@ goog.i18n.NumberFormatSymbols_bn = { DECIMAL_SEP: '.', GROUP_SEP: ',', PERCENT: '%', - ZERO_DIGIT: '\u09e6', + ZERO_DIGIT: '\u09E6', PLUS_SIGN: '+', MINUS_SIGN: '-', EXP_SYMBOL: 'E', PERMILL: '\u2030', INFINITY: '\u221E', - NAN: '\u09B8\u0982\u0996\u09CD\u09AF\u09BE \u09A8\u09BE', + NAN: '\u09B8\u0982\u0996\u09CD\u09AF\u09BE\u00A0\u09A8\u09BE', DECIMAL_PATTERN: '#,##,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##,##0%', @@ -356,6 +367,36 @@ goog.i18n.NumberFormatSymbols_bn = { goog.i18n.NumberFormatSymbols_bn_BD = goog.i18n.NumberFormatSymbols_bn; +/** + * Number formatting symbols for locale br. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_br = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', + DEF_CURRENCY_CODE: 'EUR' +}; + + +/** + * Number formatting symbols for locale br_FR. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_br_FR = goog.i18n.NumberFormatSymbols_br; + + /** * Number formatting symbols for locale ca. * @enum {string} @@ -374,11 +415,18 @@ goog.i18n.NumberFormatSymbols_ca = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', DEF_CURRENCY_CODE: 'EUR' }; +/** + * Number formatting symbols for locale ca_AD. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_ca_AD = goog.i18n.NumberFormatSymbols_ca; + + /** * Number formatting symbols for locale ca_ES. * @enum {string} @@ -612,7 +660,7 @@ goog.i18n.NumberFormatSymbols_el = { INFINITY: '\u221E', NAN: 'NaN', DECIMAL_PATTERN: '#,##0.###', - SCIENTIFIC_PATTERN: '#E0', + SCIENTIFIC_PATTERN: '[#E0]', PERCENT_PATTERN: '#,##0%', CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', DEF_CURRENCY_CODE: 'EUR' @@ -679,13 +727,6 @@ goog.i18n.NumberFormatSymbols_en_AU = { }; -/** - * Number formatting symbols for locale en_Dsrt. - * @enum {string} - */ -goog.i18n.NumberFormatSymbols_en_Dsrt = goog.i18n.NumberFormatSymbols_en; - - /** * Number formatting symbols for locale en_Dsrt_US. * @enum {string} @@ -693,6 +734,13 @@ goog.i18n.NumberFormatSymbols_en_Dsrt = goog.i18n.NumberFormatSymbols_en; goog.i18n.NumberFormatSymbols_en_Dsrt_US = goog.i18n.NumberFormatSymbols_en; +/** + * Number formatting symbols for locale en_FM. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_FM = goog.i18n.NumberFormatSymbols_en; + + /** * Number formatting symbols for locale en_GB. * @enum {string} @@ -783,6 +831,20 @@ goog.i18n.NumberFormatSymbols_en_MH = goog.i18n.NumberFormatSymbols_en; goog.i18n.NumberFormatSymbols_en_MP = goog.i18n.NumberFormatSymbols_en; +/** + * Number formatting symbols for locale en_PR. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_PR = goog.i18n.NumberFormatSymbols_en; + + +/** + * Number formatting symbols for locale en_PW. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_PW = goog.i18n.NumberFormatSymbols_en; + + /** * Number formatting symbols for locale en_SG. * @enum {string} @@ -806,6 +868,13 @@ goog.i18n.NumberFormatSymbols_en_SG = { }; +/** + * Number formatting symbols for locale en_TC. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_TC = goog.i18n.NumberFormatSymbols_en; + + /** * Number formatting symbols for locale en_UM. * @enum {string} @@ -820,6 +889,13 @@ goog.i18n.NumberFormatSymbols_en_UM = goog.i18n.NumberFormatSymbols_en; goog.i18n.NumberFormatSymbols_en_US = goog.i18n.NumberFormatSymbols_en; +/** + * Number formatting symbols for locale en_VG. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_VG = goog.i18n.NumberFormatSymbols_en; + + /** * Number formatting symbols for locale en_VI. * @enum {string} @@ -896,6 +972,13 @@ goog.i18n.NumberFormatSymbols_es_419 = { }; +/** + * Number formatting symbols for locale es_EA. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_es_EA = goog.i18n.NumberFormatSymbols_es; + + /** * Number formatting symbols for locale es_ES. * @enum {string} @@ -903,6 +986,13 @@ goog.i18n.NumberFormatSymbols_es_419 = { goog.i18n.NumberFormatSymbols_es_ES = goog.i18n.NumberFormatSymbols_es; +/** + * Number formatting symbols for locale es_IC. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_es_IC = goog.i18n.NumberFormatSymbols_es; + + /** * Number formatting symbols for locale et. * @enum {string} @@ -921,7 +1011,7 @@ goog.i18n.NumberFormatSymbols_et = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', DEF_CURRENCY_CODE: 'EUR' }; @@ -950,8 +1040,8 @@ goog.i18n.NumberFormatSymbols_eu = { NAN: 'NaN', DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', - PERCENT_PATTERN: '#,##0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + PERCENT_PATTERN: '%\u00A0#,##0', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', DEF_CURRENCY_CODE: 'EUR' }; @@ -973,15 +1063,15 @@ goog.i18n.NumberFormatSymbols_fa = { PERCENT: '\u066A', ZERO_DIGIT: '\u06F0', PLUS_SIGN: '+', - MINUS_SIGN: '-', + MINUS_SIGN: '\u2212', EXP_SYMBOL: '\u00D7\u06F1\u06F0^', PERMILL: '\u0609', INFINITY: '\u221E', - NAN: 'NaN', + NAN: '\u0646\u0627\u0639\u062F\u062F', DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;\u2212#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '\u200E\u00A4#,##0.00;\u200E(\u00A4#,##0.00)', DEF_CURRENCY_CODE: 'IRR' }; @@ -1041,7 +1131,7 @@ goog.i18n.NumberFormatSymbols_fil = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', - CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', DEF_CURRENCY_CODE: 'PHP' }; @@ -1071,7 +1161,7 @@ goog.i18n.NumberFormatSymbols_fr = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0\u00A0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', DEF_CURRENCY_CODE: 'EUR' }; @@ -1180,7 +1270,7 @@ goog.i18n.NumberFormatSymbols_gl = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', DEF_CURRENCY_CODE: 'EUR' }; @@ -1233,14 +1323,14 @@ goog.i18n.NumberFormatSymbols_gu = { ZERO_DIGIT: '0', PLUS_SIGN: '+', MINUS_SIGN: '-', - EXP_SYMBOL: '\u0AAA\u0AC2\u0AB0\u0ACD\u0AB5', + EXP_SYMBOL: 'E', PERMILL: '\u2030', INFINITY: '\u221E', - NAN: '\u0AB8\u0A82\u0A96\u0ACD\u0AAF\u0ABE \u0AA8\u0AA5\u0AC0\u0A82', - DECIMAL_PATTERN: '#,##,##0.###', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', - PERCENT_PATTERN: '#,##,##0%', - CURRENCY_PATTERN: '\u00A4\u00A0#,##,##0.00', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', DEF_CURRENCY_CODE: 'INR' }; @@ -1465,15 +1555,15 @@ goog.i18n.NumberFormatSymbols_is = { PERCENT: '%', ZERO_DIGIT: '0', PLUS_SIGN: '+', - MINUS_SIGN: '\u2212', - EXP_SYMBOL: '\u00D710^', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', PERMILL: '\u2030', INFINITY: '\u221E', - NAN: 'EiTa', + NAN: 'NaN', DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', DEF_CURRENCY_CODE: 'ISK' }; @@ -1515,6 +1605,13 @@ goog.i18n.NumberFormatSymbols_it = { goog.i18n.NumberFormatSymbols_it_IT = goog.i18n.NumberFormatSymbols_it; +/** + * Number formatting symbols for locale it_SM. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_it_SM = goog.i18n.NumberFormatSymbols_it; + + /** * Number formatting symbols for locale iw. * @enum {string} @@ -1552,7 +1649,7 @@ goog.i18n.NumberFormatSymbols_ja = { EXP_SYMBOL: 'E', PERMILL: '\u2030', INFINITY: '\u221E', - NAN: 'NaN\uFF08\u975E\u6570\uFF09', + NAN: 'NaN', DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', @@ -1579,14 +1676,14 @@ goog.i18n.NumberFormatSymbols_kn = { ZERO_DIGIT: '0', PLUS_SIGN: '+', MINUS_SIGN: '-', - EXP_SYMBOL: '\u0CAA\u0CC2\u0CB0\u0CCD\u0CB5', + EXP_SYMBOL: '\u0C88', PERMILL: '\u2030', INFINITY: '\u221E', - NAN: '\u0CB8\u0C82\u0C96\u0CCD\u0CAF\u0CC6\u0CAF\u0CB2\u0CCD\u0CB2', - DECIMAL_PATTERN: '#,##,##0.###', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', - PERCENT_PATTERN: '#,##,##0%', - CURRENCY_PATTERN: '\u00A4\u00A0#,##,##0.00', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', DEF_CURRENCY_CODE: 'INR' }; @@ -1616,7 +1713,7 @@ goog.i18n.NumberFormatSymbols_ko = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', - CURRENCY_PATTERN: '\u00A4#,##0.00', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', DEF_CURRENCY_CODE: 'KRW' }; @@ -1663,16 +1760,16 @@ goog.i18n.NumberFormatSymbols_ln_CD = goog.i18n.NumberFormatSymbols_ln; * @enum {string} */ goog.i18n.NumberFormatSymbols_lt = { - DECIMAL_SEP: '.', - GROUP_SEP: ',', + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', PERCENT: '%', ZERO_DIGIT: '0', PLUS_SIGN: '+', - MINUS_SIGN: '\u2212', - EXP_SYMBOL: '\u00D710^', + MINUS_SIGN: '\u2013', + EXP_SYMBOL: 'E', PERMILL: '\u2030', INFINITY: '\u221E', - NAN: '\u00A4\u00A4\u00A4', + NAN: 'NaN', DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0\u00A0%', @@ -1698,7 +1795,7 @@ goog.i18n.NumberFormatSymbols_lv = { PERCENT: '%', ZERO_DIGIT: '0', PLUS_SIGN: '+', - MINUS_SIGN: '\u2212', + MINUS_SIGN: '-', EXP_SYMBOL: 'E', PERMILL: '\u2030', INFINITY: '\u221E', @@ -1706,7 +1803,7 @@ goog.i18n.NumberFormatSymbols_lv = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', DEF_CURRENCY_CODE: 'LVL' }; @@ -1756,17 +1853,17 @@ goog.i18n.NumberFormatSymbols_mr = { DECIMAL_SEP: '.', GROUP_SEP: ',', PERCENT: '%', - ZERO_DIGIT: '0', + ZERO_DIGIT: '\u0966', PLUS_SIGN: '+', MINUS_SIGN: '-', - EXP_SYMBOL: '\u092A\u0942', + EXP_SYMBOL: 'E', PERMILL: '\u2030', INFINITY: '\u221E', - NAN: '\u0928\u093E\u0928', - DECIMAL_PATTERN: '#,##,##0.###', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', - PERCENT_PATTERN: '#,##,##0%', - CURRENCY_PATTERN: '\u00A4\u00A0#,##,##0.00', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', DEF_CURRENCY_CODE: 'INR' }; @@ -1802,10 +1899,10 @@ goog.i18n.NumberFormatSymbols_ms = { /** - * Number formatting symbols for locale ms_MY. + * Number formatting symbols for locale ms_Latn_MY. * @enum {string} */ -goog.i18n.NumberFormatSymbols_ms_MY = goog.i18n.NumberFormatSymbols_ms; +goog.i18n.NumberFormatSymbols_ms_Latn_MY = goog.i18n.NumberFormatSymbols_ms; /** @@ -1827,7 +1924,7 @@ goog.i18n.NumberFormatSymbols_mt = { SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', CURRENCY_PATTERN: '\u00A4#,##0.00', - DEF_CURRENCY_CODE: 'MTL' + DEF_CURRENCY_CODE: 'EUR' }; @@ -1838,6 +1935,36 @@ goog.i18n.NumberFormatSymbols_mt = { goog.i18n.NumberFormatSymbols_mt_MT = goog.i18n.NumberFormatSymbols_mt; +/** + * Number formatting symbols for locale nb. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_nb = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0\u00A0%', + CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', + DEF_CURRENCY_CODE: 'NOK' +}; + + +/** + * Number formatting symbols for locale nb_NO. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_nb_NO = goog.i18n.NumberFormatSymbols_nb; + + /** * Number formatting symbols for locale nl. * @enum {string} @@ -1939,7 +2066,7 @@ goog.i18n.NumberFormatSymbols_pl = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', DEF_CURRENCY_CODE: 'PLN' }; @@ -2021,7 +2148,7 @@ goog.i18n.NumberFormatSymbols_ro = { NAN: 'NaN', DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', - PERCENT_PATTERN: '#,##0%', + PERCENT_PATTERN: '#,##0\u00A0%', CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', DEF_CURRENCY_CODE: 'RON' }; @@ -2048,7 +2175,7 @@ goog.i18n.NumberFormatSymbols_ru = { EXP_SYMBOL: 'E', PERMILL: '\u2030', INFINITY: '\u221E', - NAN: '\u043D\u0435 \u0447\u0438\u0441\u043B\u043E', + NAN: '\u043D\u0435\u00A0\u0447\u0438\u0441\u043B\u043E', DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0\u00A0%', @@ -2083,7 +2210,7 @@ goog.i18n.NumberFormatSymbols_sk = { SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0\u00A0%', CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', - DEF_CURRENCY_CODE: 'SKK' + DEF_CURRENCY_CODE: 'EUR' }; @@ -2112,7 +2239,7 @@ goog.i18n.NumberFormatSymbols_sl = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', DEF_CURRENCY_CODE: 'EUR' }; @@ -2130,7 +2257,7 @@ goog.i18n.NumberFormatSymbols_sl_SI = goog.i18n.NumberFormatSymbols_sl; */ goog.i18n.NumberFormatSymbols_sq = { DECIMAL_SEP: ',', - GROUP_SEP: '.', + GROUP_SEP: '\u00A0', PERCENT: '%', ZERO_DIGIT: '0', PLUS_SIGN: '+', @@ -2184,13 +2311,6 @@ goog.i18n.NumberFormatSymbols_sr = { goog.i18n.NumberFormatSymbols_sr_Cyrl_RS = goog.i18n.NumberFormatSymbols_sr; -/** - * Number formatting symbols for locale sr_Latn_RS. - * @enum {string} - */ -goog.i18n.NumberFormatSymbols_sr_Latn_RS = goog.i18n.NumberFormatSymbols_sr; - - /** * Number formatting symbols for locale sv. * @enum {string} @@ -2239,7 +2359,7 @@ goog.i18n.NumberFormatSymbols_sw = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', DEF_CURRENCY_CODE: 'TZS' }; @@ -2265,7 +2385,7 @@ goog.i18n.NumberFormatSymbols_ta = { EXP_SYMBOL: 'E', PERMILL: '\u2030', INFINITY: '\u221E', - NAN: '\u0B8E\u0BA3\u0BCD \u0B87\u0BB2\u0BCD\u0BB2\u0BC8', + NAN: 'NaN', DECIMAL_PATTERN: '#,##,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##,##0%', @@ -2292,14 +2412,14 @@ goog.i18n.NumberFormatSymbols_te = { ZERO_DIGIT: '0', PLUS_SIGN: '+', MINUS_SIGN: '-', - EXP_SYMBOL: '\u0C24\u0C42', + EXP_SYMBOL: 'E', PERMILL: '\u2030', INFINITY: '\u221E', NAN: 'NaN', - DECIMAL_PATTERN: '#,##,##0.###', + DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', - PERCENT_PATTERN: '#,##,##0%', - CURRENCY_PATTERN: '\u00A4\u00A0#,##,##0.00', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', DEF_CURRENCY_CODE: 'INR' }; @@ -2329,7 +2449,7 @@ goog.i18n.NumberFormatSymbols_th = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', - CURRENCY_PATTERN: '\u00A4#,##0.00;\u00A4-#,##0.00', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', DEF_CURRENCY_CODE: 'THB' }; @@ -2359,7 +2479,7 @@ goog.i18n.NumberFormatSymbols_tl = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', - CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', DEF_CURRENCY_CODE: 'PHP' }; @@ -2382,7 +2502,7 @@ goog.i18n.NumberFormatSymbols_tr = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '%#,##0', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', DEF_CURRENCY_CODE: 'TRY' }; @@ -2408,7 +2528,7 @@ goog.i18n.NumberFormatSymbols_uk = { EXP_SYMBOL: '\u0415', PERMILL: '\u2030', INFINITY: '\u221E', - NAN: '\u041D\u0435 \u0447\u0438\u0441\u043B\u043E', + NAN: '\u041D\u0435\u00A0\u0447\u0438\u0441\u043B\u043E', DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', @@ -2502,7 +2622,7 @@ goog.i18n.NumberFormatSymbols_zh = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', - CURRENCY_PATTERN: '\u00A4#,##0.00', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', DEF_CURRENCY_CODE: 'CNY' }; @@ -2537,13 +2657,6 @@ goog.i18n.NumberFormatSymbols_zh_HK = { }; -/** - * Number formatting symbols for locale zh_Hans. - * @enum {string} - */ -goog.i18n.NumberFormatSymbols_zh_Hans = goog.i18n.NumberFormatSymbols_zh; - - /** * Number formatting symbols for locale zh_Hans_CN. * @enum {string} @@ -2579,8 +2692,8 @@ goog.i18n.NumberFormatSymbols_zh_TW = { * @enum {string} */ goog.i18n.NumberFormatSymbols_zu = { - DECIMAL_SEP: ',', - GROUP_SEP: '\u00A0', + DECIMAL_SEP: '.', + GROUP_SEP: ',', PERCENT: '%', ZERO_DIGIT: '0', PLUS_SIGN: '+', @@ -2588,11 +2701,11 @@ goog.i18n.NumberFormatSymbols_zu = { EXP_SYMBOL: 'E', PERMILL: '\u2030', INFINITY: '\u221E', - NAN: 'NaN', + NAN: 'I-NaN', DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', - CURRENCY_PATTERN: '\u00A4#,##0.00', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', DEF_CURRENCY_CODE: 'ZAR' }; @@ -2653,10 +2766,22 @@ if (goog.LOCALE == 'bn_BD' || goog.LOCALE == 'bn-BD') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_bn; } +if (goog.LOCALE == 'br') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_br; +} + +if (goog.LOCALE == 'br_FR' || goog.LOCALE == 'br-FR') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_br; +} + if (goog.LOCALE == 'ca') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ca; } +if (goog.LOCALE == 'ca_AD' || goog.LOCALE == 'ca-AD') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ca; +} + if (goog.LOCALE == 'ca_ES' || goog.LOCALE == 'ca-ES') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ca; } @@ -2737,11 +2862,11 @@ if (goog.LOCALE == 'en_AU' || goog.LOCALE == 'en-AU') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_AU; } -if (goog.LOCALE == 'en_Dsrt' || goog.LOCALE == 'en-Dsrt') { +if (goog.LOCALE == 'en_Dsrt_US' || goog.LOCALE == 'en-Dsrt-US') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en; } -if (goog.LOCALE == 'en_Dsrt_US' || goog.LOCALE == 'en-Dsrt-US') { +if (goog.LOCALE == 'en_FM' || goog.LOCALE == 'en-FM') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en; } @@ -2769,10 +2894,22 @@ if (goog.LOCALE == 'en_MP' || goog.LOCALE == 'en-MP') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en; } +if (goog.LOCALE == 'en_PR' || goog.LOCALE == 'en-PR') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en; +} + +if (goog.LOCALE == 'en_PW' || goog.LOCALE == 'en-PW') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en; +} + if (goog.LOCALE == 'en_SG' || goog.LOCALE == 'en-SG') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_SG; } +if (goog.LOCALE == 'en_TC' || goog.LOCALE == 'en-TC') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en; +} + if (goog.LOCALE == 'en_UM' || goog.LOCALE == 'en-UM') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en; } @@ -2781,6 +2918,10 @@ if (goog.LOCALE == 'en_US' || goog.LOCALE == 'en-US') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en; } +if (goog.LOCALE == 'en_VG' || goog.LOCALE == 'en-VG') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en; +} + if (goog.LOCALE == 'en_VI' || goog.LOCALE == 'en-VI') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en; } @@ -2797,10 +2938,18 @@ if (goog.LOCALE == 'es_419' || goog.LOCALE == 'es-419') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_es_419; } +if (goog.LOCALE == 'es_EA' || goog.LOCALE == 'es-EA') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_es; +} + if (goog.LOCALE == 'es_ES' || goog.LOCALE == 'es-ES') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_es; } +if (goog.LOCALE == 'es_IC' || goog.LOCALE == 'es-IC') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_es; +} + if (goog.LOCALE == 'et') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_et; } @@ -2977,6 +3126,10 @@ if (goog.LOCALE == 'it_IT' || goog.LOCALE == 'it-IT') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_it; } +if (goog.LOCALE == 'it_SM' || goog.LOCALE == 'it-SM') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_it; +} + if (goog.LOCALE == 'iw') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_iw; } @@ -3049,7 +3202,7 @@ if (goog.LOCALE == 'ms') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ms; } -if (goog.LOCALE == 'ms_MY' || goog.LOCALE == 'ms-MY') { +if (goog.LOCALE == 'ms_Latn_MY' || goog.LOCALE == 'ms-Latn-MY') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ms; } @@ -3061,6 +3214,14 @@ if (goog.LOCALE == 'mt_MT' || goog.LOCALE == 'mt-MT') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_mt; } +if (goog.LOCALE == 'nb') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_nb; +} + +if (goog.LOCALE == 'nb_NO' || goog.LOCALE == 'nb-NO') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_nb; +} + if (goog.LOCALE == 'nl') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_nl; } @@ -3149,10 +3310,6 @@ if (goog.LOCALE == 'sr_Cyrl_RS' || goog.LOCALE == 'sr-Cyrl-RS') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_sr; } -if (goog.LOCALE == 'sr_Latn_RS' || goog.LOCALE == 'sr-Latn-RS') { - goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_sr; -} - if (goog.LOCALE == 'sv') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_sv; } @@ -3241,10 +3398,6 @@ if (goog.LOCALE == 'zh_HK' || goog.LOCALE == 'zh-HK') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_zh_HK; } -if (goog.LOCALE == 'zh_Hans' || goog.LOCALE == 'zh-Hans') { - goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_zh; -} - if (goog.LOCALE == 'zh_Hans_CN' || goog.LOCALE == 'zh-Hans-CN') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_zh; } diff --git a/master/closure-library/closure/goog/i18n/numberformatsymbolsext.js b/edit/closure-library/closure/goog/i18n/numberformatsymbolsext.js similarity index 73% rename from master/closure-library/closure/goog/i18n/numberformatsymbolsext.js rename to edit/closure-library/closure/goog/i18n/numberformatsymbolsext.js index 3b879ac27d..8bf8f5306d 100644 --- a/master/closure-library/closure/goog/i18n/numberformatsymbolsext.js +++ b/edit/closure-library/closure/goog/i18n/numberformatsymbolsext.js @@ -18,6 +18,7 @@ * This file is autogenerated by script: * http://go/generate_number_constants.py * using the --for_closure flag. + * File generated from CLDR ver. 23 * * This file coveres those locales that are not covered in * "numberformatsymbols.js". @@ -40,24 +41,35 @@ goog.provide('goog.i18n.NumberFormatSymbols_ak'); goog.provide('goog.i18n.NumberFormatSymbols_ak_GH'); goog.provide('goog.i18n.NumberFormatSymbols_ar_AE'); goog.provide('goog.i18n.NumberFormatSymbols_ar_BH'); +goog.provide('goog.i18n.NumberFormatSymbols_ar_DJ'); goog.provide('goog.i18n.NumberFormatSymbols_ar_DZ'); +goog.provide('goog.i18n.NumberFormatSymbols_ar_EH'); +goog.provide('goog.i18n.NumberFormatSymbols_ar_ER'); +goog.provide('goog.i18n.NumberFormatSymbols_ar_IL'); goog.provide('goog.i18n.NumberFormatSymbols_ar_IQ'); goog.provide('goog.i18n.NumberFormatSymbols_ar_JO'); +goog.provide('goog.i18n.NumberFormatSymbols_ar_KM'); goog.provide('goog.i18n.NumberFormatSymbols_ar_KW'); goog.provide('goog.i18n.NumberFormatSymbols_ar_LB'); goog.provide('goog.i18n.NumberFormatSymbols_ar_LY'); goog.provide('goog.i18n.NumberFormatSymbols_ar_MA'); +goog.provide('goog.i18n.NumberFormatSymbols_ar_MR'); goog.provide('goog.i18n.NumberFormatSymbols_ar_OM'); +goog.provide('goog.i18n.NumberFormatSymbols_ar_PS'); goog.provide('goog.i18n.NumberFormatSymbols_ar_QA'); goog.provide('goog.i18n.NumberFormatSymbols_ar_SA'); goog.provide('goog.i18n.NumberFormatSymbols_ar_SD'); +goog.provide('goog.i18n.NumberFormatSymbols_ar_SO'); goog.provide('goog.i18n.NumberFormatSymbols_ar_SY'); +goog.provide('goog.i18n.NumberFormatSymbols_ar_TD'); goog.provide('goog.i18n.NumberFormatSymbols_ar_TN'); goog.provide('goog.i18n.NumberFormatSymbols_ar_YE'); goog.provide('goog.i18n.NumberFormatSymbols_as'); goog.provide('goog.i18n.NumberFormatSymbols_as_IN'); goog.provide('goog.i18n.NumberFormatSymbols_asa'); goog.provide('goog.i18n.NumberFormatSymbols_asa_TZ'); +goog.provide('goog.i18n.NumberFormatSymbols_ast'); +goog.provide('goog.i18n.NumberFormatSymbols_ast_ES'); goog.provide('goog.i18n.NumberFormatSymbols_az'); goog.provide('goog.i18n.NumberFormatSymbols_az_Cyrl'); goog.provide('goog.i18n.NumberFormatSymbols_az_Cyrl_AZ'); @@ -77,12 +89,13 @@ goog.provide('goog.i18n.NumberFormatSymbols_bn_IN'); goog.provide('goog.i18n.NumberFormatSymbols_bo'); goog.provide('goog.i18n.NumberFormatSymbols_bo_CN'); goog.provide('goog.i18n.NumberFormatSymbols_bo_IN'); -goog.provide('goog.i18n.NumberFormatSymbols_br'); -goog.provide('goog.i18n.NumberFormatSymbols_br_FR'); goog.provide('goog.i18n.NumberFormatSymbols_brx'); goog.provide('goog.i18n.NumberFormatSymbols_brx_IN'); goog.provide('goog.i18n.NumberFormatSymbols_bs'); -goog.provide('goog.i18n.NumberFormatSymbols_bs_BA'); +goog.provide('goog.i18n.NumberFormatSymbols_bs_Cyrl'); +goog.provide('goog.i18n.NumberFormatSymbols_bs_Cyrl_BA'); +goog.provide('goog.i18n.NumberFormatSymbols_bs_Latn'); +goog.provide('goog.i18n.NumberFormatSymbols_bs_Latn_BA'); goog.provide('goog.i18n.NumberFormatSymbols_byn'); goog.provide('goog.i18n.NumberFormatSymbols_byn_ER'); goog.provide('goog.i18n.NumberFormatSymbols_cgg'); @@ -112,22 +125,59 @@ goog.provide('goog.i18n.NumberFormatSymbols_ee'); goog.provide('goog.i18n.NumberFormatSymbols_ee_GH'); goog.provide('goog.i18n.NumberFormatSymbols_ee_TG'); goog.provide('goog.i18n.NumberFormatSymbols_el_CY'); +goog.provide('goog.i18n.NumberFormatSymbols_en_150'); +goog.provide('goog.i18n.NumberFormatSymbols_en_AG'); goog.provide('goog.i18n.NumberFormatSymbols_en_BB'); goog.provide('goog.i18n.NumberFormatSymbols_en_BE'); goog.provide('goog.i18n.NumberFormatSymbols_en_BM'); +goog.provide('goog.i18n.NumberFormatSymbols_en_BS'); goog.provide('goog.i18n.NumberFormatSymbols_en_BW'); goog.provide('goog.i18n.NumberFormatSymbols_en_BZ'); goog.provide('goog.i18n.NumberFormatSymbols_en_CA'); +goog.provide('goog.i18n.NumberFormatSymbols_en_CM'); +goog.provide('goog.i18n.NumberFormatSymbols_en_DM'); +goog.provide('goog.i18n.NumberFormatSymbols_en_Dsrt'); +goog.provide('goog.i18n.NumberFormatSymbols_en_FJ'); +goog.provide('goog.i18n.NumberFormatSymbols_en_GD'); +goog.provide('goog.i18n.NumberFormatSymbols_en_GG'); +goog.provide('goog.i18n.NumberFormatSymbols_en_GH'); +goog.provide('goog.i18n.NumberFormatSymbols_en_GI'); +goog.provide('goog.i18n.NumberFormatSymbols_en_GM'); goog.provide('goog.i18n.NumberFormatSymbols_en_GY'); goog.provide('goog.i18n.NumberFormatSymbols_en_HK'); +goog.provide('goog.i18n.NumberFormatSymbols_en_IM'); +goog.provide('goog.i18n.NumberFormatSymbols_en_JE'); goog.provide('goog.i18n.NumberFormatSymbols_en_JM'); +goog.provide('goog.i18n.NumberFormatSymbols_en_KE'); +goog.provide('goog.i18n.NumberFormatSymbols_en_KI'); +goog.provide('goog.i18n.NumberFormatSymbols_en_KN'); +goog.provide('goog.i18n.NumberFormatSymbols_en_KY'); +goog.provide('goog.i18n.NumberFormatSymbols_en_LC'); +goog.provide('goog.i18n.NumberFormatSymbols_en_LR'); +goog.provide('goog.i18n.NumberFormatSymbols_en_LS'); +goog.provide('goog.i18n.NumberFormatSymbols_en_MG'); goog.provide('goog.i18n.NumberFormatSymbols_en_MT'); goog.provide('goog.i18n.NumberFormatSymbols_en_MU'); +goog.provide('goog.i18n.NumberFormatSymbols_en_MW'); goog.provide('goog.i18n.NumberFormatSymbols_en_NA'); +goog.provide('goog.i18n.NumberFormatSymbols_en_NG'); goog.provide('goog.i18n.NumberFormatSymbols_en_NZ'); +goog.provide('goog.i18n.NumberFormatSymbols_en_PG'); goog.provide('goog.i18n.NumberFormatSymbols_en_PH'); goog.provide('goog.i18n.NumberFormatSymbols_en_PK'); +goog.provide('goog.i18n.NumberFormatSymbols_en_SB'); +goog.provide('goog.i18n.NumberFormatSymbols_en_SC'); +goog.provide('goog.i18n.NumberFormatSymbols_en_SL'); +goog.provide('goog.i18n.NumberFormatSymbols_en_SS'); +goog.provide('goog.i18n.NumberFormatSymbols_en_SZ'); +goog.provide('goog.i18n.NumberFormatSymbols_en_TO'); goog.provide('goog.i18n.NumberFormatSymbols_en_TT'); +goog.provide('goog.i18n.NumberFormatSymbols_en_TZ'); +goog.provide('goog.i18n.NumberFormatSymbols_en_UG'); +goog.provide('goog.i18n.NumberFormatSymbols_en_VC'); +goog.provide('goog.i18n.NumberFormatSymbols_en_VU'); +goog.provide('goog.i18n.NumberFormatSymbols_en_WS'); +goog.provide('goog.i18n.NumberFormatSymbols_en_ZM'); goog.provide('goog.i18n.NumberFormatSymbols_en_ZW'); goog.provide('goog.i18n.NumberFormatSymbols_eo'); goog.provide('goog.i18n.NumberFormatSymbols_es_AR'); @@ -135,6 +185,7 @@ goog.provide('goog.i18n.NumberFormatSymbols_es_BO'); goog.provide('goog.i18n.NumberFormatSymbols_es_CL'); goog.provide('goog.i18n.NumberFormatSymbols_es_CO'); goog.provide('goog.i18n.NumberFormatSymbols_es_CR'); +goog.provide('goog.i18n.NumberFormatSymbols_es_CU'); goog.provide('goog.i18n.NumberFormatSymbols_es_DO'); goog.provide('goog.i18n.NumberFormatSymbols_es_EC'); goog.provide('goog.i18n.NumberFormatSymbols_es_GQ'); @@ -144,6 +195,7 @@ goog.provide('goog.i18n.NumberFormatSymbols_es_MX'); goog.provide('goog.i18n.NumberFormatSymbols_es_NI'); goog.provide('goog.i18n.NumberFormatSymbols_es_PA'); goog.provide('goog.i18n.NumberFormatSymbols_es_PE'); +goog.provide('goog.i18n.NumberFormatSymbols_es_PH'); goog.provide('goog.i18n.NumberFormatSymbols_es_PR'); goog.provide('goog.i18n.NumberFormatSymbols_es_PY'); goog.provide('goog.i18n.NumberFormatSymbols_es_SV'); @@ -168,18 +220,29 @@ goog.provide('goog.i18n.NumberFormatSymbols_fr_CH'); goog.provide('goog.i18n.NumberFormatSymbols_fr_CI'); goog.provide('goog.i18n.NumberFormatSymbols_fr_CM'); goog.provide('goog.i18n.NumberFormatSymbols_fr_DJ'); +goog.provide('goog.i18n.NumberFormatSymbols_fr_DZ'); goog.provide('goog.i18n.NumberFormatSymbols_fr_GA'); goog.provide('goog.i18n.NumberFormatSymbols_fr_GN'); goog.provide('goog.i18n.NumberFormatSymbols_fr_GQ'); +goog.provide('goog.i18n.NumberFormatSymbols_fr_HT'); goog.provide('goog.i18n.NumberFormatSymbols_fr_KM'); goog.provide('goog.i18n.NumberFormatSymbols_fr_LU'); +goog.provide('goog.i18n.NumberFormatSymbols_fr_MA'); goog.provide('goog.i18n.NumberFormatSymbols_fr_MG'); goog.provide('goog.i18n.NumberFormatSymbols_fr_ML'); +goog.provide('goog.i18n.NumberFormatSymbols_fr_MR'); +goog.provide('goog.i18n.NumberFormatSymbols_fr_MU'); +goog.provide('goog.i18n.NumberFormatSymbols_fr_NC'); goog.provide('goog.i18n.NumberFormatSymbols_fr_NE'); +goog.provide('goog.i18n.NumberFormatSymbols_fr_PF'); goog.provide('goog.i18n.NumberFormatSymbols_fr_RW'); +goog.provide('goog.i18n.NumberFormatSymbols_fr_SC'); goog.provide('goog.i18n.NumberFormatSymbols_fr_SN'); +goog.provide('goog.i18n.NumberFormatSymbols_fr_SY'); goog.provide('goog.i18n.NumberFormatSymbols_fr_TD'); goog.provide('goog.i18n.NumberFormatSymbols_fr_TG'); +goog.provide('goog.i18n.NumberFormatSymbols_fr_TN'); +goog.provide('goog.i18n.NumberFormatSymbols_fr_VU'); goog.provide('goog.i18n.NumberFormatSymbols_fur'); goog.provide('goog.i18n.NumberFormatSymbols_fur_IT'); goog.provide('goog.i18n.NumberFormatSymbols_ga'); @@ -195,14 +258,18 @@ goog.provide('goog.i18n.NumberFormatSymbols_ha_Latn'); goog.provide('goog.i18n.NumberFormatSymbols_ha_Latn_GH'); goog.provide('goog.i18n.NumberFormatSymbols_ha_Latn_NE'); goog.provide('goog.i18n.NumberFormatSymbols_ha_Latn_NG'); +goog.provide('goog.i18n.NumberFormatSymbols_hr_BA'); goog.provide('goog.i18n.NumberFormatSymbols_hy'); goog.provide('goog.i18n.NumberFormatSymbols_hy_AM'); goog.provide('goog.i18n.NumberFormatSymbols_ia'); +goog.provide('goog.i18n.NumberFormatSymbols_ia_FR'); goog.provide('goog.i18n.NumberFormatSymbols_ig'); goog.provide('goog.i18n.NumberFormatSymbols_ig_NG'); goog.provide('goog.i18n.NumberFormatSymbols_ii'); goog.provide('goog.i18n.NumberFormatSymbols_ii_CN'); goog.provide('goog.i18n.NumberFormatSymbols_it_CH'); +goog.provide('goog.i18n.NumberFormatSymbols_jgo'); +goog.provide('goog.i18n.NumberFormatSymbols_jgo_CM'); goog.provide('goog.i18n.NumberFormatSymbols_jmc'); goog.provide('goog.i18n.NumberFormatSymbols_jmc_TZ'); goog.provide('goog.i18n.NumberFormatSymbols_ka'); @@ -222,27 +289,36 @@ goog.provide('goog.i18n.NumberFormatSymbols_ki_KE'); goog.provide('goog.i18n.NumberFormatSymbols_kk'); goog.provide('goog.i18n.NumberFormatSymbols_kk_Cyrl'); goog.provide('goog.i18n.NumberFormatSymbols_kk_Cyrl_KZ'); +goog.provide('goog.i18n.NumberFormatSymbols_kkj'); +goog.provide('goog.i18n.NumberFormatSymbols_kkj_CM'); goog.provide('goog.i18n.NumberFormatSymbols_kl'); goog.provide('goog.i18n.NumberFormatSymbols_kl_GL'); goog.provide('goog.i18n.NumberFormatSymbols_kln'); goog.provide('goog.i18n.NumberFormatSymbols_kln_KE'); goog.provide('goog.i18n.NumberFormatSymbols_km'); goog.provide('goog.i18n.NumberFormatSymbols_km_KH'); +goog.provide('goog.i18n.NumberFormatSymbols_ko_KP'); goog.provide('goog.i18n.NumberFormatSymbols_kok'); goog.provide('goog.i18n.NumberFormatSymbols_kok_IN'); +goog.provide('goog.i18n.NumberFormatSymbols_ks'); +goog.provide('goog.i18n.NumberFormatSymbols_ks_Arab'); +goog.provide('goog.i18n.NumberFormatSymbols_ks_Arab_IN'); goog.provide('goog.i18n.NumberFormatSymbols_ksb'); goog.provide('goog.i18n.NumberFormatSymbols_ksb_TZ'); goog.provide('goog.i18n.NumberFormatSymbols_ksf'); goog.provide('goog.i18n.NumberFormatSymbols_ksf_CM'); goog.provide('goog.i18n.NumberFormatSymbols_ksh'); goog.provide('goog.i18n.NumberFormatSymbols_ksh_DE'); -goog.provide('goog.i18n.NumberFormatSymbols_ku'); goog.provide('goog.i18n.NumberFormatSymbols_kw'); goog.provide('goog.i18n.NumberFormatSymbols_kw_GB'); +goog.provide('goog.i18n.NumberFormatSymbols_ky'); +goog.provide('goog.i18n.NumberFormatSymbols_ky_KG'); goog.provide('goog.i18n.NumberFormatSymbols_lag'); goog.provide('goog.i18n.NumberFormatSymbols_lag_TZ'); goog.provide('goog.i18n.NumberFormatSymbols_lg'); goog.provide('goog.i18n.NumberFormatSymbols_lg_UG'); +goog.provide('goog.i18n.NumberFormatSymbols_ln_AO'); +goog.provide('goog.i18n.NumberFormatSymbols_ln_CF'); goog.provide('goog.i18n.NumberFormatSymbols_ln_CG'); goog.provide('goog.i18n.NumberFormatSymbols_lo'); goog.provide('goog.i18n.NumberFormatSymbols_lo_LA'); @@ -263,17 +339,22 @@ goog.provide('goog.i18n.NumberFormatSymbols_mg'); goog.provide('goog.i18n.NumberFormatSymbols_mg_MG'); goog.provide('goog.i18n.NumberFormatSymbols_mgh'); goog.provide('goog.i18n.NumberFormatSymbols_mgh_MZ'); +goog.provide('goog.i18n.NumberFormatSymbols_mgo'); +goog.provide('goog.i18n.NumberFormatSymbols_mgo_CM'); goog.provide('goog.i18n.NumberFormatSymbols_mk'); goog.provide('goog.i18n.NumberFormatSymbols_mk_MK'); -goog.provide('goog.i18n.NumberFormatSymbols_ms_BN'); +goog.provide('goog.i18n.NumberFormatSymbols_mn'); +goog.provide('goog.i18n.NumberFormatSymbols_mn_Cyrl'); +goog.provide('goog.i18n.NumberFormatSymbols_mn_Cyrl_MN'); +goog.provide('goog.i18n.NumberFormatSymbols_ms_Latn'); +goog.provide('goog.i18n.NumberFormatSymbols_ms_Latn_BN'); +goog.provide('goog.i18n.NumberFormatSymbols_ms_Latn_SG'); goog.provide('goog.i18n.NumberFormatSymbols_mua'); goog.provide('goog.i18n.NumberFormatSymbols_mua_CM'); goog.provide('goog.i18n.NumberFormatSymbols_my'); goog.provide('goog.i18n.NumberFormatSymbols_my_MM'); goog.provide('goog.i18n.NumberFormatSymbols_naq'); goog.provide('goog.i18n.NumberFormatSymbols_naq_NA'); -goog.provide('goog.i18n.NumberFormatSymbols_nb'); -goog.provide('goog.i18n.NumberFormatSymbols_nb_NO'); goog.provide('goog.i18n.NumberFormatSymbols_nd'); goog.provide('goog.i18n.NumberFormatSymbols_nd_ZW'); goog.provide('goog.i18n.NumberFormatSymbols_ne'); @@ -282,11 +363,14 @@ goog.provide('goog.i18n.NumberFormatSymbols_ne_NP'); goog.provide('goog.i18n.NumberFormatSymbols_nl_AW'); goog.provide('goog.i18n.NumberFormatSymbols_nl_BE'); goog.provide('goog.i18n.NumberFormatSymbols_nl_CW'); +goog.provide('goog.i18n.NumberFormatSymbols_nl_SR'); goog.provide('goog.i18n.NumberFormatSymbols_nl_SX'); goog.provide('goog.i18n.NumberFormatSymbols_nmg'); goog.provide('goog.i18n.NumberFormatSymbols_nmg_CM'); goog.provide('goog.i18n.NumberFormatSymbols_nn'); goog.provide('goog.i18n.NumberFormatSymbols_nn_NO'); +goog.provide('goog.i18n.NumberFormatSymbols_nnh'); +goog.provide('goog.i18n.NumberFormatSymbols_nnh_CM'); goog.provide('goog.i18n.NumberFormatSymbols_nr'); goog.provide('goog.i18n.NumberFormatSymbols_nr_ZA'); goog.provide('goog.i18n.NumberFormatSymbols_nso'); @@ -298,6 +382,9 @@ goog.provide('goog.i18n.NumberFormatSymbols_nyn_UG'); goog.provide('goog.i18n.NumberFormatSymbols_om'); goog.provide('goog.i18n.NumberFormatSymbols_om_ET'); goog.provide('goog.i18n.NumberFormatSymbols_om_KE'); +goog.provide('goog.i18n.NumberFormatSymbols_os'); +goog.provide('goog.i18n.NumberFormatSymbols_os_GE'); +goog.provide('goog.i18n.NumberFormatSymbols_os_RU'); goog.provide('goog.i18n.NumberFormatSymbols_pa'); goog.provide('goog.i18n.NumberFormatSymbols_pa_Arab'); goog.provide('goog.i18n.NumberFormatSymbols_pa_Arab_PK'); @@ -306,9 +393,12 @@ goog.provide('goog.i18n.NumberFormatSymbols_pa_Guru_IN'); goog.provide('goog.i18n.NumberFormatSymbols_ps'); goog.provide('goog.i18n.NumberFormatSymbols_ps_AF'); goog.provide('goog.i18n.NumberFormatSymbols_pt_AO'); +goog.provide('goog.i18n.NumberFormatSymbols_pt_CV'); goog.provide('goog.i18n.NumberFormatSymbols_pt_GW'); +goog.provide('goog.i18n.NumberFormatSymbols_pt_MO'); goog.provide('goog.i18n.NumberFormatSymbols_pt_MZ'); goog.provide('goog.i18n.NumberFormatSymbols_pt_ST'); +goog.provide('goog.i18n.NumberFormatSymbols_pt_TL'); goog.provide('goog.i18n.NumberFormatSymbols_rm'); goog.provide('goog.i18n.NumberFormatSymbols_rm_CH'); goog.provide('goog.i18n.NumberFormatSymbols_rn'); @@ -316,6 +406,9 @@ goog.provide('goog.i18n.NumberFormatSymbols_rn_BI'); goog.provide('goog.i18n.NumberFormatSymbols_ro_MD'); goog.provide('goog.i18n.NumberFormatSymbols_rof'); goog.provide('goog.i18n.NumberFormatSymbols_rof_TZ'); +goog.provide('goog.i18n.NumberFormatSymbols_ru_BY'); +goog.provide('goog.i18n.NumberFormatSymbols_ru_KG'); +goog.provide('goog.i18n.NumberFormatSymbols_ru_KZ'); goog.provide('goog.i18n.NumberFormatSymbols_ru_MD'); goog.provide('goog.i18n.NumberFormatSymbols_ru_UA'); goog.provide('goog.i18n.NumberFormatSymbols_rw'); @@ -351,12 +444,17 @@ goog.provide('goog.i18n.NumberFormatSymbols_so_DJ'); goog.provide('goog.i18n.NumberFormatSymbols_so_ET'); goog.provide('goog.i18n.NumberFormatSymbols_so_KE'); goog.provide('goog.i18n.NumberFormatSymbols_so_SO'); +goog.provide('goog.i18n.NumberFormatSymbols_sq_MK'); +goog.provide('goog.i18n.NumberFormatSymbols_sq_XK'); goog.provide('goog.i18n.NumberFormatSymbols_sr_Cyrl'); goog.provide('goog.i18n.NumberFormatSymbols_sr_Cyrl_BA'); goog.provide('goog.i18n.NumberFormatSymbols_sr_Cyrl_ME'); +goog.provide('goog.i18n.NumberFormatSymbols_sr_Cyrl_XK'); goog.provide('goog.i18n.NumberFormatSymbols_sr_Latn'); goog.provide('goog.i18n.NumberFormatSymbols_sr_Latn_BA'); goog.provide('goog.i18n.NumberFormatSymbols_sr_Latn_ME'); +goog.provide('goog.i18n.NumberFormatSymbols_sr_Latn_RS'); +goog.provide('goog.i18n.NumberFormatSymbols_sr_Latn_XK'); goog.provide('goog.i18n.NumberFormatSymbols_ss'); goog.provide('goog.i18n.NumberFormatSymbols_ss_SZ'); goog.provide('goog.i18n.NumberFormatSymbols_ss_ZA'); @@ -365,11 +463,15 @@ goog.provide('goog.i18n.NumberFormatSymbols_ssy_ER'); goog.provide('goog.i18n.NumberFormatSymbols_st'); goog.provide('goog.i18n.NumberFormatSymbols_st_LS'); goog.provide('goog.i18n.NumberFormatSymbols_st_ZA'); +goog.provide('goog.i18n.NumberFormatSymbols_sv_AX'); goog.provide('goog.i18n.NumberFormatSymbols_sv_FI'); goog.provide('goog.i18n.NumberFormatSymbols_sw_KE'); +goog.provide('goog.i18n.NumberFormatSymbols_sw_UG'); goog.provide('goog.i18n.NumberFormatSymbols_swc'); goog.provide('goog.i18n.NumberFormatSymbols_swc_CD'); goog.provide('goog.i18n.NumberFormatSymbols_ta_LK'); +goog.provide('goog.i18n.NumberFormatSymbols_ta_MY'); +goog.provide('goog.i18n.NumberFormatSymbols_ta_SG'); goog.provide('goog.i18n.NumberFormatSymbols_teo'); goog.provide('goog.i18n.NumberFormatSymbols_teo_KE'); goog.provide('goog.i18n.NumberFormatSymbols_teo_UG'); @@ -382,9 +484,11 @@ goog.provide('goog.i18n.NumberFormatSymbols_ti_ET'); goog.provide('goog.i18n.NumberFormatSymbols_tig'); goog.provide('goog.i18n.NumberFormatSymbols_tig_ER'); goog.provide('goog.i18n.NumberFormatSymbols_tn'); +goog.provide('goog.i18n.NumberFormatSymbols_tn_BW'); goog.provide('goog.i18n.NumberFormatSymbols_tn_ZA'); goog.provide('goog.i18n.NumberFormatSymbols_to'); goog.provide('goog.i18n.NumberFormatSymbols_to_TO'); +goog.provide('goog.i18n.NumberFormatSymbols_tr_CY'); goog.provide('goog.i18n.NumberFormatSymbols_ts'); goog.provide('goog.i18n.NumberFormatSymbols_ts_ZA'); goog.provide('goog.i18n.NumberFormatSymbols_twq'); @@ -407,6 +511,7 @@ goog.provide('goog.i18n.NumberFormatSymbols_vai_Vaii'); goog.provide('goog.i18n.NumberFormatSymbols_vai_Vaii_LR'); goog.provide('goog.i18n.NumberFormatSymbols_ve'); goog.provide('goog.i18n.NumberFormatSymbols_ve_ZA'); +goog.provide('goog.i18n.NumberFormatSymbols_vo'); goog.provide('goog.i18n.NumberFormatSymbols_vun'); goog.provide('goog.i18n.NumberFormatSymbols_vun_TZ'); goog.provide('goog.i18n.NumberFormatSymbols_wae'); @@ -421,6 +526,7 @@ goog.provide('goog.i18n.NumberFormatSymbols_yav'); goog.provide('goog.i18n.NumberFormatSymbols_yav_CM'); goog.provide('goog.i18n.NumberFormatSymbols_yo'); goog.provide('goog.i18n.NumberFormatSymbols_yo_NG'); +goog.provide('goog.i18n.NumberFormatSymbols_zh_Hans'); goog.provide('goog.i18n.NumberFormatSymbols_zh_Hans_HK'); goog.provide('goog.i18n.NumberFormatSymbols_zh_Hans_MO'); goog.provide('goog.i18n.NumberFormatSymbols_zh_Hans_SG'); @@ -527,7 +633,7 @@ goog.i18n.NumberFormatSymbols_af_NA = { SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', - DEF_CURRENCY_CODE: 'ZAR' + DEF_CURRENCY_CODE: 'NAD' }; @@ -567,7 +673,7 @@ goog.i18n.NumberFormatSymbols_agq_CM = goog.i18n.NumberFormatSymbols_agq; */ goog.i18n.NumberFormatSymbols_ak = { DECIMAL_SEP: '.', - GROUP_SEP: '\u00A0', + GROUP_SEP: ',', PERCENT: '%', ZERO_DIGIT: '0', PLUS_SIGN: '+', @@ -580,7 +686,7 @@ goog.i18n.NumberFormatSymbols_ak = { SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', CURRENCY_PATTERN: '\u00A4#,##0.00', - DEF_CURRENCY_CODE: 'GHC' + DEF_CURRENCY_CODE: 'GHS' }; @@ -605,7 +711,7 @@ goog.i18n.NumberFormatSymbols_ar_AE = { EXP_SYMBOL: '\u0627\u0633', PERMILL: '\u0609', INFINITY: '\u221E', - NAN: '\u0644\u064A\u0633 \u0631\u0642\u0645', + NAN: '\u0644\u064A\u0633\u00A0\u0631\u0642\u0645', DECIMAL_PATTERN: '#0.###;#0.###-', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', @@ -628,7 +734,7 @@ goog.i18n.NumberFormatSymbols_ar_BH = { EXP_SYMBOL: '\u0627\u0633', PERMILL: '\u0609', INFINITY: '\u221E', - NAN: '\u0644\u064A\u0633 \u0631\u0642\u0645', + NAN: '\u0644\u064A\u0633\u00A0\u0631\u0642\u0645', DECIMAL_PATTERN: '#0.###;#0.###-', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', @@ -637,6 +743,29 @@ goog.i18n.NumberFormatSymbols_ar_BH = { }; +/** + * Number formatting symbols for locale ar_DJ. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_ar_DJ = { + DECIMAL_SEP: '\u066B', + GROUP_SEP: '\u066C', + PERCENT: '\u066A', + ZERO_DIGIT: '\u0660', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: '\u0627\u0633', + PERMILL: '\u0609', + INFINITY: '\u221E', + NAN: '\u0644\u064A\u0633\u00A0\u0631\u0642\u0645', + DECIMAL_PATTERN: '#0.###;#0.###-', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#0.00;\u00A4\u00A0#0.00-', + DEF_CURRENCY_CODE: 'DJF' +}; + + /** * Number formatting symbols for locale ar_DZ. * @enum {string} @@ -660,6 +789,75 @@ goog.i18n.NumberFormatSymbols_ar_DZ = { }; +/** + * Number formatting symbols for locale ar_EH. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_ar_EH = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#0.###;#0.###-', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#0.00;\u00A4\u00A0#0.00-', + DEF_CURRENCY_CODE: 'MAD' +}; + + +/** + * Number formatting symbols for locale ar_ER. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_ar_ER = { + DECIMAL_SEP: '\u066B', + GROUP_SEP: '\u066C', + PERCENT: '\u066A', + ZERO_DIGIT: '\u0660', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: '\u0627\u0633', + PERMILL: '\u0609', + INFINITY: '\u221E', + NAN: '\u0644\u064A\u0633\u00A0\u0631\u0642\u0645', + DECIMAL_PATTERN: '#0.###;#0.###-', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#0.00;\u00A4\u00A0#0.00-', + DEF_CURRENCY_CODE: 'ERN' +}; + + +/** + * Number formatting symbols for locale ar_IL. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_ar_IL = { + DECIMAL_SEP: '\u066B', + GROUP_SEP: '\u066C', + PERCENT: '\u066A', + ZERO_DIGIT: '\u0660', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: '\u0627\u0633', + PERMILL: '\u0609', + INFINITY: '\u221E', + NAN: '\u0644\u064A\u0633\u00A0\u0631\u0642\u0645', + DECIMAL_PATTERN: '#0.###;#0.###-', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#0.00;\u00A4\u00A0#0.00-', + DEF_CURRENCY_CODE: 'ILS' +}; + + /** * Number formatting symbols for locale ar_IQ. * @enum {string} @@ -674,7 +872,7 @@ goog.i18n.NumberFormatSymbols_ar_IQ = { EXP_SYMBOL: '\u0627\u0633', PERMILL: '\u0609', INFINITY: '\u221E', - NAN: '\u0644\u064A\u0633 \u0631\u0642\u0645', + NAN: '\u0644\u064A\u0633\u00A0\u0631\u0642\u0645', DECIMAL_PATTERN: '#0.###;#0.###-', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', @@ -697,7 +895,7 @@ goog.i18n.NumberFormatSymbols_ar_JO = { EXP_SYMBOL: '\u0627\u0633', PERMILL: '\u0609', INFINITY: '\u221E', - NAN: '\u0644\u064A\u0633 \u0631\u0642\u0645', + NAN: '\u0644\u064A\u0633\u00A0\u0631\u0642\u0645', DECIMAL_PATTERN: '#0.###;#0.###-', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', @@ -706,6 +904,29 @@ goog.i18n.NumberFormatSymbols_ar_JO = { }; +/** + * Number formatting symbols for locale ar_KM. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_ar_KM = { + DECIMAL_SEP: '\u066B', + GROUP_SEP: '\u066C', + PERCENT: '\u066A', + ZERO_DIGIT: '\u0660', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: '\u0627\u0633', + PERMILL: '\u0609', + INFINITY: '\u221E', + NAN: '\u0644\u064A\u0633\u00A0\u0631\u0642\u0645', + DECIMAL_PATTERN: '#0.###;#0.###-', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#0.00;\u00A4\u00A0#0.00-', + DEF_CURRENCY_CODE: 'KMF' +}; + + /** * Number formatting symbols for locale ar_KW. * @enum {string} @@ -720,7 +941,7 @@ goog.i18n.NumberFormatSymbols_ar_KW = { EXP_SYMBOL: '\u0627\u0633', PERMILL: '\u0609', INFINITY: '\u221E', - NAN: '\u0644\u064A\u0633 \u0631\u0642\u0645', + NAN: '\u0644\u064A\u0633\u00A0\u0631\u0642\u0645', DECIMAL_PATTERN: '#0.###;#0.###-', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', @@ -743,7 +964,7 @@ goog.i18n.NumberFormatSymbols_ar_LB = { EXP_SYMBOL: '\u0627\u0633', PERMILL: '\u0609', INFINITY: '\u221E', - NAN: '\u0644\u064A\u0633 \u0631\u0642\u0645', + NAN: '\u0644\u064A\u0633\u00A0\u0631\u0642\u0645', DECIMAL_PATTERN: '#0.###;#0.###-', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', @@ -757,16 +978,16 @@ goog.i18n.NumberFormatSymbols_ar_LB = { * @enum {string} */ goog.i18n.NumberFormatSymbols_ar_LY = { - DECIMAL_SEP: '\u066B', - GROUP_SEP: '\u066C', - PERCENT: '\u066A', - ZERO_DIGIT: '\u0660', + DECIMAL_SEP: ',', + GROUP_SEP: '.', + PERCENT: '%', + ZERO_DIGIT: '0', PLUS_SIGN: '+', MINUS_SIGN: '-', - EXP_SYMBOL: '\u0627\u0633', - PERMILL: '\u0609', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', INFINITY: '\u221E', - NAN: '\u0644\u064A\u0633 \u0631\u0642\u0645', + NAN: 'NaN', DECIMAL_PATTERN: '#0.###;#0.###-', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', @@ -798,6 +1019,29 @@ goog.i18n.NumberFormatSymbols_ar_MA = { }; +/** + * Number formatting symbols for locale ar_MR. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_ar_MR = { + DECIMAL_SEP: '\u066B', + GROUP_SEP: '\u066C', + PERCENT: '\u066A', + ZERO_DIGIT: '\u0660', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: '\u0627\u0633', + PERMILL: '\u0609', + INFINITY: '\u221E', + NAN: '\u0644\u064A\u0633\u00A0\u0631\u0642\u0645', + DECIMAL_PATTERN: '#0.###;#0.###-', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#0.00;\u00A4\u00A0#0.00-', + DEF_CURRENCY_CODE: 'MRO' +}; + + /** * Number formatting symbols for locale ar_OM. * @enum {string} @@ -812,7 +1056,7 @@ goog.i18n.NumberFormatSymbols_ar_OM = { EXP_SYMBOL: '\u0627\u0633', PERMILL: '\u0609', INFINITY: '\u221E', - NAN: '\u0644\u064A\u0633 \u0631\u0642\u0645', + NAN: '\u0644\u064A\u0633\u00A0\u0631\u0642\u0645', DECIMAL_PATTERN: '#0.###;#0.###-', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', @@ -821,6 +1065,29 @@ goog.i18n.NumberFormatSymbols_ar_OM = { }; +/** + * Number formatting symbols for locale ar_PS. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_ar_PS = { + DECIMAL_SEP: '\u066B', + GROUP_SEP: '\u066C', + PERCENT: '\u066A', + ZERO_DIGIT: '\u0660', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: '\u0627\u0633', + PERMILL: '\u0609', + INFINITY: '\u221E', + NAN: '\u0644\u064A\u0633\u00A0\u0631\u0642\u0645', + DECIMAL_PATTERN: '#0.###;#0.###-', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#0.00;\u00A4\u00A0#0.00-', + DEF_CURRENCY_CODE: 'ILS' +}; + + /** * Number formatting symbols for locale ar_QA. * @enum {string} @@ -835,7 +1102,7 @@ goog.i18n.NumberFormatSymbols_ar_QA = { EXP_SYMBOL: '\u0627\u0633', PERMILL: '\u0609', INFINITY: '\u221E', - NAN: '\u0644\u064A\u0633 \u0631\u0642\u0645', + NAN: '\u0644\u064A\u0633\u00A0\u0631\u0642\u0645', DECIMAL_PATTERN: '#0.###;#0.###-', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', @@ -858,7 +1125,7 @@ goog.i18n.NumberFormatSymbols_ar_SA = { EXP_SYMBOL: '\u0627\u0633', PERMILL: '\u0609', INFINITY: '\u221E', - NAN: '\u0644\u064A\u0633 \u0631\u0642\u0645', + NAN: '\u0644\u064A\u0633\u00A0\u0631\u0642\u0645', DECIMAL_PATTERN: '#0.###;#0.###-', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', @@ -881,12 +1148,35 @@ goog.i18n.NumberFormatSymbols_ar_SD = { EXP_SYMBOL: '\u0627\u0633', PERMILL: '\u0609', INFINITY: '\u221E', - NAN: '\u0644\u064A\u0633 \u0631\u0642\u0645', + NAN: '\u0644\u064A\u0633\u00A0\u0631\u0642\u0645', DECIMAL_PATTERN: '#0.###;#0.###-', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', CURRENCY_PATTERN: '\u00A4\u00A0#0.00;\u00A4\u00A0#0.00-', - DEF_CURRENCY_CODE: 'SDD' + DEF_CURRENCY_CODE: 'SDG' +}; + + +/** + * Number formatting symbols for locale ar_SO. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_ar_SO = { + DECIMAL_SEP: '\u066B', + GROUP_SEP: '\u066C', + PERCENT: '\u066A', + ZERO_DIGIT: '\u0660', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: '\u0627\u0633', + PERMILL: '\u0609', + INFINITY: '\u221E', + NAN: '\u0644\u064A\u0633\u00A0\u0631\u0642\u0645', + DECIMAL_PATTERN: '#0.###;#0.###-', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#0.00;\u00A4\u00A0#0.00-', + DEF_CURRENCY_CODE: 'SOS' }; @@ -904,7 +1194,7 @@ goog.i18n.NumberFormatSymbols_ar_SY = { EXP_SYMBOL: '\u0627\u0633', PERMILL: '\u0609', INFINITY: '\u221E', - NAN: '\u0644\u064A\u0633 \u0631\u0642\u0645', + NAN: '\u0644\u064A\u0633\u00A0\u0631\u0642\u0645', DECIMAL_PATTERN: '#0.###;#0.###-', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', @@ -913,6 +1203,29 @@ goog.i18n.NumberFormatSymbols_ar_SY = { }; +/** + * Number formatting symbols for locale ar_TD. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_ar_TD = { + DECIMAL_SEP: '\u066B', + GROUP_SEP: '\u066C', + PERCENT: '\u066A', + ZERO_DIGIT: '\u0660', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: '\u0627\u0633', + PERMILL: '\u0609', + INFINITY: '\u221E', + NAN: '\u0644\u064A\u0633\u00A0\u0631\u0642\u0645', + DECIMAL_PATTERN: '#0.###;#0.###-', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#0.00;\u00A4\u00A0#0.00-', + DEF_CURRENCY_CODE: 'XAF' +}; + + /** * Number formatting symbols for locale ar_TN. * @enum {string} @@ -950,7 +1263,7 @@ goog.i18n.NumberFormatSymbols_ar_YE = { EXP_SYMBOL: '\u0627\u0633', PERMILL: '\u0609', INFINITY: '\u221E', - NAN: '\u0644\u064A\u0633 \u0631\u0642\u0645', + NAN: '\u0644\u064A\u0633\u00A0\u0631\u0642\u0645', DECIMAL_PATTERN: '#0.###;#0.###-', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', @@ -967,7 +1280,7 @@ goog.i18n.NumberFormatSymbols_as = { DECIMAL_SEP: '.', GROUP_SEP: ',', PERCENT: '%', - ZERO_DIGIT: '\u09e6', + ZERO_DIGIT: '\u09E6', PLUS_SIGN: '+', MINUS_SIGN: '-', EXP_SYMBOL: 'E', @@ -1019,6 +1332,36 @@ goog.i18n.NumberFormatSymbols_asa = { goog.i18n.NumberFormatSymbols_asa_TZ = goog.i18n.NumberFormatSymbols_asa; +/** + * Number formatting symbols for locale ast. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_ast = { + DECIMAL_SEP: ',', + GROUP_SEP: '.', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + DEF_CURRENCY_CODE: 'EUR' +}; + + +/** + * Number formatting symbols for locale ast_ES. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_ast_ES = goog.i18n.NumberFormatSymbols_ast; + + /** * Number formatting symbols for locale az. * @enum {string} @@ -1046,7 +1389,23 @@ goog.i18n.NumberFormatSymbols_az = { * Number formatting symbols for locale az_Cyrl. * @enum {string} */ -goog.i18n.NumberFormatSymbols_az_Cyrl = goog.i18n.NumberFormatSymbols_az; +goog.i18n.NumberFormatSymbols_az_Cyrl = { + DECIMAL_SEP: ',', + GROUP_SEP: '.', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', + DEF_CURRENCY_CODE: 'EUR' +}; /** @@ -1060,7 +1419,23 @@ goog.i18n.NumberFormatSymbols_az_Cyrl_AZ = goog.i18n.NumberFormatSymbols_az; * Number formatting symbols for locale az_Latn. * @enum {string} */ -goog.i18n.NumberFormatSymbols_az_Latn = goog.i18n.NumberFormatSymbols_az; +goog.i18n.NumberFormatSymbols_az_Latn = { + DECIMAL_SEP: ',', + GROUP_SEP: '.', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', + DEF_CURRENCY_CODE: 'EUR' +}; /** @@ -1149,7 +1524,7 @@ goog.i18n.NumberFormatSymbols_bem = { SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', - DEF_CURRENCY_CODE: 'ZMK' + DEF_CURRENCY_CODE: 'ZMW' }; @@ -1228,13 +1603,13 @@ goog.i18n.NumberFormatSymbols_bn_IN = { DECIMAL_SEP: '.', GROUP_SEP: ',', PERCENT: '%', - ZERO_DIGIT: '\u09e6', + ZERO_DIGIT: '\u09E6', PLUS_SIGN: '+', MINUS_SIGN: '-', EXP_SYMBOL: 'E', PERMILL: '\u2030', INFINITY: '\u221E', - NAN: '\u09B8\u0982\u0996\u09CD\u09AF\u09BE \u09A8\u09BE', + NAN: '\u09B8\u0982\u0996\u09CD\u09AF\u09BE\u00A0\u09A8\u09BE', DECIMAL_PATTERN: '#,##,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##,##0%', @@ -1296,36 +1671,6 @@ goog.i18n.NumberFormatSymbols_bo_IN = { }; -/** - * Number formatting symbols for locale br. - * @enum {string} - */ -goog.i18n.NumberFormatSymbols_br = { - DECIMAL_SEP: ',', - GROUP_SEP: '\u00A0', - PERCENT: '%', - ZERO_DIGIT: '0', - PLUS_SIGN: '+', - MINUS_SIGN: '-', - EXP_SYMBOL: 'E', - PERMILL: '\u2030', - INFINITY: '\u221E', - NAN: 'NaN', - DECIMAL_PATTERN: '#,##0.###', - SCIENTIFIC_PATTERN: '#E0', - PERCENT_PATTERN: '#,##0%', - CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', - DEF_CURRENCY_CODE: 'EUR' -}; - - -/** - * Number formatting symbols for locale br_FR. - * @enum {string} - */ -goog.i18n.NumberFormatSymbols_br_FR = goog.i18n.NumberFormatSymbols_br; - - /** * Number formatting symbols for locale brx. * @enum {string} @@ -1380,10 +1725,79 @@ goog.i18n.NumberFormatSymbols_bs = { /** - * Number formatting symbols for locale bs_BA. + * Number formatting symbols for locale bs_Cyrl. * @enum {string} */ -goog.i18n.NumberFormatSymbols_bs_BA = goog.i18n.NumberFormatSymbols_bs; +goog.i18n.NumberFormatSymbols_bs_Cyrl = { + DECIMAL_SEP: ',', + GROUP_SEP: '.', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + DEF_CURRENCY_CODE: 'EUR' +}; + + +/** + * Number formatting symbols for locale bs_Cyrl_BA. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_bs_Cyrl_BA = { + DECIMAL_SEP: ',', + GROUP_SEP: '.', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + DEF_CURRENCY_CODE: 'BAM' +}; + + +/** + * Number formatting symbols for locale bs_Latn. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_bs_Latn = { + DECIMAL_SEP: ',', + GROUP_SEP: '.', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', + DEF_CURRENCY_CODE: 'EUR' +}; + + +/** + * Number formatting symbols for locale bs_Latn_BA. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_bs_Latn_BA = goog.i18n.NumberFormatSymbols_bs; /** @@ -1473,7 +1887,23 @@ goog.i18n.NumberFormatSymbols_ckb = { * Number formatting symbols for locale ckb_Arab. * @enum {string} */ -goog.i18n.NumberFormatSymbols_ckb_Arab = goog.i18n.NumberFormatSymbols_ckb; +goog.i18n.NumberFormatSymbols_ckb_Arab = { + DECIMAL_SEP: '\u066B', + GROUP_SEP: '\u066C', + PERCENT: '\u066A', + ZERO_DIGIT: '\u0660', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: '\u0627\u0633', + PERMILL: '\u0609', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', + DEF_CURRENCY_CODE: 'EUR' +}; /** @@ -1540,7 +1970,23 @@ goog.i18n.NumberFormatSymbols_ckb_IR = { * Number formatting symbols for locale ckb_Latn. * @enum {string} */ -goog.i18n.NumberFormatSymbols_ckb_Latn = goog.i18n.NumberFormatSymbols_ckb; +goog.i18n.NumberFormatSymbols_ckb_Latn = { + DECIMAL_SEP: '\u066B', + GROUP_SEP: '\u066C', + PERCENT: '\u066A', + ZERO_DIGIT: '\u0660', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: '\u0627\u0633', + PERMILL: '\u0609', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', + DEF_CURRENCY_CODE: 'EUR' +}; /** @@ -1701,15 +2147,15 @@ goog.i18n.NumberFormatSymbols_dz = { DECIMAL_SEP: '.', GROUP_SEP: ',', PERCENT: '%', - ZERO_DIGIT: '0', + ZERO_DIGIT: '\u0F20', PLUS_SIGN: '+', MINUS_SIGN: '-', EXP_SYMBOL: 'E', PERMILL: '\u2030', - INFINITY: '\u221E', - NAN: 'NaN', + INFINITY: '\u0F42\u0FB2\u0F44\u0F66\u0F0B\u0F58\u0F7A\u0F51', + NAN: '\u0F68\u0F44\u0F0B\u0F58\u0F51', DECIMAL_PATTERN: '#,##,##0.###', - SCIENTIFIC_PATTERN: '#E+00', + SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##,##0\u00A0%', CURRENCY_PATTERN: '\u00A4#,##,##0.00', DEF_CURRENCY_CODE: 'BTN' @@ -1772,7 +2218,7 @@ goog.i18n.NumberFormatSymbols_ee = { SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', - DEF_CURRENCY_CODE: 'GHC' + DEF_CURRENCY_CODE: 'GHS' }; @@ -1822,10 +2268,56 @@ goog.i18n.NumberFormatSymbols_el_CY = { INFINITY: '\u221E', NAN: 'NaN', DECIMAL_PATTERN: '#,##0.###', - SCIENTIFIC_PATTERN: '#E0', + SCIENTIFIC_PATTERN: '[#E0]', PERCENT_PATTERN: '#,##0%', CURRENCY_PATTERN: '\u00A4#,##0.00', - DEF_CURRENCY_CODE: 'CYP' + DEF_CURRENCY_CODE: 'EUR' +}; + + +/** + * Number formatting symbols for locale en_150. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_150 = { + DECIMAL_SEP: ',', + GROUP_SEP: '.', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + DEF_CURRENCY_CODE: 'USD' +}; + + +/** + * Number formatting symbols for locale en_AG. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_AG = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'XCD' }; @@ -1898,6 +2390,29 @@ goog.i18n.NumberFormatSymbols_en_BM = { }; +/** + * Number formatting symbols for locale en_BS. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_BS = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'BSD' +}; + + /** * Number formatting symbols for locale en_BW. * @enum {string} @@ -1967,6 +2482,213 @@ goog.i18n.NumberFormatSymbols_en_CA = { }; +/** + * Number formatting symbols for locale en_CM. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_CM = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'XAF' +}; + + +/** + * Number formatting symbols for locale en_DM. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_DM = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'XCD' +}; + + +/** + * Number formatting symbols for locale en_Dsrt. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_Dsrt = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'EUR' +}; + + +/** + * Number formatting symbols for locale en_FJ. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_FJ = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'FJD' +}; + + +/** + * Number formatting symbols for locale en_GD. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_GD = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'XCD' +}; + + +/** + * Number formatting symbols for locale en_GG. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_GG = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'GBP' +}; + + +/** + * Number formatting symbols for locale en_GH. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_GH = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'GHS' +}; + + +/** + * Number formatting symbols for locale en_GI. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_GI = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'GIP' +}; + + +/** + * Number formatting symbols for locale en_GM. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_GM = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'GMD' +}; + + /** * Number formatting symbols for locale en_GY. * @enum {string} @@ -2013,6 +2735,52 @@ goog.i18n.NumberFormatSymbols_en_HK = { }; +/** + * Number formatting symbols for locale en_IM. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_IM = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'GBP' +}; + + +/** + * Number formatting symbols for locale en_JE. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_JE = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'GBP' +}; + + /** * Number formatting symbols for locale en_JM. * @enum {string} @@ -2036,6 +2804,190 @@ goog.i18n.NumberFormatSymbols_en_JM = { }; +/** + * Number formatting symbols for locale en_KE. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_KE = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'KES' +}; + + +/** + * Number formatting symbols for locale en_KI. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_KI = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'AUD' +}; + + +/** + * Number formatting symbols for locale en_KN. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_KN = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'XCD' +}; + + +/** + * Number formatting symbols for locale en_KY. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_KY = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'KYD' +}; + + +/** + * Number formatting symbols for locale en_LC. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_LC = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'XCD' +}; + + +/** + * Number formatting symbols for locale en_LR. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_LR = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'LRD' +}; + + +/** + * Number formatting symbols for locale en_LS. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_LS = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'ZAR' +}; + + +/** + * Number formatting symbols for locale en_MG. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_MG = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'MGA' +}; + + /** * Number formatting symbols for locale en_MT. * @enum {string} @@ -2055,7 +3007,7 @@ goog.i18n.NumberFormatSymbols_en_MT = { SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', - DEF_CURRENCY_CODE: 'MTL' + DEF_CURRENCY_CODE: 'EUR' }; @@ -2082,6 +3034,29 @@ goog.i18n.NumberFormatSymbols_en_MU = { }; +/** + * Number formatting symbols for locale en_MW. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_MW = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'MWK' +}; + + /** * Number formatting symbols for locale en_NA. * @enum {string} @@ -2101,7 +3076,30 @@ goog.i18n.NumberFormatSymbols_en_NA = { SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', CURRENCY_PATTERN: '\u00A4#,##0.00', - DEF_CURRENCY_CODE: 'ZAR' + DEF_CURRENCY_CODE: 'NAD' +}; + + +/** + * Number formatting symbols for locale en_NG. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_NG = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'NGN' }; @@ -2128,6 +3126,29 @@ goog.i18n.NumberFormatSymbols_en_NZ = { }; +/** + * Number formatting symbols for locale en_PG. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_PG = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'PGK' +}; + + /** * Number formatting symbols for locale en_PH. * @enum {string} @@ -2174,6 +3195,144 @@ goog.i18n.NumberFormatSymbols_en_PK = { }; +/** + * Number formatting symbols for locale en_SB. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_SB = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'SBD' +}; + + +/** + * Number formatting symbols for locale en_SC. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_SC = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'SCR' +}; + + +/** + * Number formatting symbols for locale en_SL. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_SL = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'SLL' +}; + + +/** + * Number formatting symbols for locale en_SS. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_SS = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'SSP' +}; + + +/** + * Number formatting symbols for locale en_SZ. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_SZ = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'SZL' +}; + + +/** + * Number formatting symbols for locale en_TO. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_TO = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'TOP' +}; + + /** * Number formatting symbols for locale en_TT. * @enum {string} @@ -2197,6 +3356,144 @@ goog.i18n.NumberFormatSymbols_en_TT = { }; +/** + * Number formatting symbols for locale en_TZ. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_TZ = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'TZS' +}; + + +/** + * Number formatting symbols for locale en_UG. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_UG = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'UGX' +}; + + +/** + * Number formatting symbols for locale en_VC. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_VC = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'XCD' +}; + + +/** + * Number formatting symbols for locale en_VU. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_VU = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'VUV' +}; + + +/** + * Number formatting symbols for locale en_WS. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_WS = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'WST' +}; + + +/** + * Number formatting symbols for locale en_ZM. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_en_ZM = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'ZMW' +}; + + /** * Number formatting symbols for locale en_ZW. * @enum {string} @@ -2216,7 +3513,7 @@ goog.i18n.NumberFormatSymbols_en_ZW = { SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', CURRENCY_PATTERN: '\u00A4#,##0.00', - DEF_CURRENCY_CODE: 'ZWD' + DEF_CURRENCY_CODE: 'USD' }; @@ -2358,6 +3655,29 @@ goog.i18n.NumberFormatSymbols_es_CR = { }; +/** + * Number formatting symbols for locale es_CU. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_es_CU = { + DECIMAL_SEP: ',', + GROUP_SEP: '.', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + DEF_CURRENCY_CODE: 'CUP' +}; + + /** * Number formatting symbols for locale es_DO. * @enum {string} @@ -2565,6 +3885,29 @@ goog.i18n.NumberFormatSymbols_es_PE = { }; +/** + * Number formatting symbols for locale es_PH. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_es_PH = { + DECIMAL_SEP: ',', + GROUP_SEP: '.', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + DEF_CURRENCY_CODE: 'PHP' +}; + + /** * Number formatting symbols for locale es_PR. * @enum {string} @@ -2630,7 +3973,7 @@ goog.i18n.NumberFormatSymbols_es_SV = { SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', - DEF_CURRENCY_CODE: 'SVC' + DEF_CURRENCY_CODE: 'USD' }; @@ -2699,7 +4042,7 @@ goog.i18n.NumberFormatSymbols_es_VE = { SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', CURRENCY_PATTERN: '\u00A4#,##0.00;\u00A4-#,##0.00', - DEF_CURRENCY_CODE: 'VEB' + DEF_CURRENCY_CODE: 'VEF' }; @@ -2743,15 +4086,15 @@ goog.i18n.NumberFormatSymbols_fa_AF = { PERCENT: '\u066A', ZERO_DIGIT: '\u06F0', PLUS_SIGN: '+', - MINUS_SIGN: '-', + MINUS_SIGN: '\u2212', EXP_SYMBOL: '\u00D7\u06F1\u06F0^', PERMILL: '\u0609', INFINITY: '\u221E', - NAN: 'NaN', + NAN: '\u0646\u0627\u0639\u062F\u062F', DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '\'\u202A\'#,##0%\'\u202C\'', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;\u2212#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '\u200E\u00A4#,##0.00;\u200E(\u00A4#,##0.00)', DEF_CURRENCY_CODE: 'AFN' }; @@ -2834,7 +4177,7 @@ goog.i18n.NumberFormatSymbols_fr_BE = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0\u00A0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', DEF_CURRENCY_CODE: 'EUR' }; @@ -2857,7 +4200,7 @@ goog.i18n.NumberFormatSymbols_fr_BF = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0\u00A0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', DEF_CURRENCY_CODE: 'XOF' }; @@ -2880,7 +4223,7 @@ goog.i18n.NumberFormatSymbols_fr_BI = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0\u00A0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', DEF_CURRENCY_CODE: 'BIF' }; @@ -2903,7 +4246,7 @@ goog.i18n.NumberFormatSymbols_fr_BJ = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0\u00A0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', DEF_CURRENCY_CODE: 'XOF' }; @@ -2926,7 +4269,7 @@ goog.i18n.NumberFormatSymbols_fr_CD = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0\u00A0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', DEF_CURRENCY_CODE: 'CDF' }; @@ -2949,7 +4292,7 @@ goog.i18n.NumberFormatSymbols_fr_CF = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0\u00A0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', DEF_CURRENCY_CODE: 'XAF' }; @@ -2972,7 +4315,7 @@ goog.i18n.NumberFormatSymbols_fr_CG = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0\u00A0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', DEF_CURRENCY_CODE: 'XAF' }; @@ -3018,7 +4361,7 @@ goog.i18n.NumberFormatSymbols_fr_CI = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0\u00A0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', DEF_CURRENCY_CODE: 'XOF' }; @@ -3041,7 +4384,7 @@ goog.i18n.NumberFormatSymbols_fr_CM = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0\u00A0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', DEF_CURRENCY_CODE: 'XAF' }; @@ -3064,11 +4407,34 @@ goog.i18n.NumberFormatSymbols_fr_DJ = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0\u00A0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', DEF_CURRENCY_CODE: 'DJF' }; +/** + * Number formatting symbols for locale fr_DZ. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_fr_DZ = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0\u00A0%', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', + DEF_CURRENCY_CODE: 'DZD' +}; + + /** * Number formatting symbols for locale fr_GA. * @enum {string} @@ -3087,7 +4453,7 @@ goog.i18n.NumberFormatSymbols_fr_GA = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0\u00A0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', DEF_CURRENCY_CODE: 'XAF' }; @@ -3110,7 +4476,7 @@ goog.i18n.NumberFormatSymbols_fr_GN = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0\u00A0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', DEF_CURRENCY_CODE: 'GNF' }; @@ -3133,11 +4499,34 @@ goog.i18n.NumberFormatSymbols_fr_GQ = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0\u00A0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', DEF_CURRENCY_CODE: 'XAF' }; +/** + * Number formatting symbols for locale fr_HT. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_fr_HT = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0\u00A0%', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', + DEF_CURRENCY_CODE: 'HTG' +}; + + /** * Number formatting symbols for locale fr_KM. * @enum {string} @@ -3156,7 +4545,7 @@ goog.i18n.NumberFormatSymbols_fr_KM = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0\u00A0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', DEF_CURRENCY_CODE: 'KMF' }; @@ -3179,11 +4568,34 @@ goog.i18n.NumberFormatSymbols_fr_LU = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0\u00A0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', DEF_CURRENCY_CODE: 'EUR' }; +/** + * Number formatting symbols for locale fr_MA. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_fr_MA = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0\u00A0%', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', + DEF_CURRENCY_CODE: 'MAD' +}; + + /** * Number formatting symbols for locale fr_MG. * @enum {string} @@ -3202,7 +4614,7 @@ goog.i18n.NumberFormatSymbols_fr_MG = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0\u00A0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', DEF_CURRENCY_CODE: 'MGA' }; @@ -3225,11 +4637,80 @@ goog.i18n.NumberFormatSymbols_fr_ML = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0\u00A0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', DEF_CURRENCY_CODE: 'XOF' }; +/** + * Number formatting symbols for locale fr_MR. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_fr_MR = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0\u00A0%', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', + DEF_CURRENCY_CODE: 'MRO' +}; + + +/** + * Number formatting symbols for locale fr_MU. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_fr_MU = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0\u00A0%', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', + DEF_CURRENCY_CODE: 'MUR' +}; + + +/** + * Number formatting symbols for locale fr_NC. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_fr_NC = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0\u00A0%', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', + DEF_CURRENCY_CODE: 'XPF' +}; + + /** * Number formatting symbols for locale fr_NE. * @enum {string} @@ -3248,11 +4729,34 @@ goog.i18n.NumberFormatSymbols_fr_NE = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0\u00A0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', DEF_CURRENCY_CODE: 'XOF' }; +/** + * Number formatting symbols for locale fr_PF. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_fr_PF = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0\u00A0%', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', + DEF_CURRENCY_CODE: 'XPF' +}; + + /** * Number formatting symbols for locale fr_RW. * @enum {string} @@ -3271,11 +4775,34 @@ goog.i18n.NumberFormatSymbols_fr_RW = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0\u00A0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', DEF_CURRENCY_CODE: 'RWF' }; +/** + * Number formatting symbols for locale fr_SC. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_fr_SC = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0\u00A0%', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', + DEF_CURRENCY_CODE: 'SCR' +}; + + /** * Number formatting symbols for locale fr_SN. * @enum {string} @@ -3294,11 +4821,34 @@ goog.i18n.NumberFormatSymbols_fr_SN = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0\u00A0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', DEF_CURRENCY_CODE: 'XOF' }; +/** + * Number formatting symbols for locale fr_SY. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_fr_SY = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0\u00A0%', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', + DEF_CURRENCY_CODE: 'SYP' +}; + + /** * Number formatting symbols for locale fr_TD. * @enum {string} @@ -3317,7 +4867,7 @@ goog.i18n.NumberFormatSymbols_fr_TD = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0\u00A0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', DEF_CURRENCY_CODE: 'XAF' }; @@ -3340,11 +4890,57 @@ goog.i18n.NumberFormatSymbols_fr_TG = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0\u00A0%', - CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', DEF_CURRENCY_CODE: 'XOF' }; +/** + * Number formatting symbols for locale fr_TN. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_fr_TN = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0\u00A0%', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', + DEF_CURRENCY_CODE: 'TND' +}; + + +/** + * Number formatting symbols for locale fr_VU. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_fr_VU = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0\u00A0%', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', + DEF_CURRENCY_CODE: 'VUV' +}; + + /** * Number formatting symbols for locale fur. * @enum {string} @@ -3522,7 +5118,23 @@ goog.i18n.NumberFormatSymbols_ha = { * Number formatting symbols for locale ha_Latn. * @enum {string} */ -goog.i18n.NumberFormatSymbols_ha_Latn = goog.i18n.NumberFormatSymbols_ha; +goog.i18n.NumberFormatSymbols_ha_Latn = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', + DEF_CURRENCY_CODE: 'EUR' +}; /** @@ -3544,7 +5156,7 @@ goog.i18n.NumberFormatSymbols_ha_Latn_GH = { SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', - DEF_CURRENCY_CODE: 'GHC' + DEF_CURRENCY_CODE: 'GHS' }; @@ -3578,6 +5190,29 @@ goog.i18n.NumberFormatSymbols_ha_Latn_NE = { goog.i18n.NumberFormatSymbols_ha_Latn_NG = goog.i18n.NumberFormatSymbols_ha; +/** + * Number formatting symbols for locale hr_BA. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_hr_BA = { + DECIMAL_SEP: ',', + GROUP_SEP: '.', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + DEF_CURRENCY_CODE: 'BAM' +}; + + /** * Number formatting symbols for locale hy. * @enum {string} @@ -3627,10 +5262,17 @@ goog.i18n.NumberFormatSymbols_ia = { SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', - DEF_CURRENCY_CODE: 'USD' + DEF_CURRENCY_CODE: 'EUR' }; +/** + * Number formatting symbols for locale ia_FR. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_ia_FR = goog.i18n.NumberFormatSymbols_ia; + + /** * Number formatting symbols for locale ig. * @enum {string} @@ -3714,6 +5356,36 @@ goog.i18n.NumberFormatSymbols_it_CH = { }; +/** + * Number formatting symbols for locale jgo. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_jgo = { + DECIMAL_SEP: ',', + GROUP_SEP: '.', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', + DEF_CURRENCY_CODE: 'XAF' +}; + + +/** + * Number formatting symbols for locale jgo_CM. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_jgo_CM = goog.i18n.NumberFormatSymbols_jgo; + + /** * Number formatting symbols for locale jmc. * @enum {string} @@ -3750,7 +5422,7 @@ goog.i18n.NumberFormatSymbols_jmc_TZ = goog.i18n.NumberFormatSymbols_jmc; */ goog.i18n.NumberFormatSymbols_ka = { DECIMAL_SEP: ',', - GROUP_SEP: '.', + GROUP_SEP: '\u00A0', PERCENT: '%', ZERO_DIGIT: '0', PLUS_SIGN: '+', @@ -3981,7 +5653,23 @@ goog.i18n.NumberFormatSymbols_kk = { * Number formatting symbols for locale kk_Cyrl. * @enum {string} */ -goog.i18n.NumberFormatSymbols_kk_Cyrl = goog.i18n.NumberFormatSymbols_kk; +goog.i18n.NumberFormatSymbols_kk_Cyrl = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + DEF_CURRENCY_CODE: 'EUR' +}; /** @@ -3991,6 +5679,36 @@ goog.i18n.NumberFormatSymbols_kk_Cyrl = goog.i18n.NumberFormatSymbols_kk; goog.i18n.NumberFormatSymbols_kk_Cyrl_KZ = goog.i18n.NumberFormatSymbols_kk; +/** + * Number formatting symbols for locale kkj. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_kkj = { + DECIMAL_SEP: ',', + GROUP_SEP: '.', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', + DEF_CURRENCY_CODE: 'XAF' +}; + + +/** + * Number formatting symbols for locale kkj_CM. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_kkj_CM = goog.i18n.NumberFormatSymbols_kkj; + + /** * Number formatting symbols for locale kl. * @enum {string} @@ -4069,7 +5787,7 @@ goog.i18n.NumberFormatSymbols_km = { DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', - CURRENCY_PATTERN: '#,##0.00\u00A4', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', DEF_CURRENCY_CODE: 'KHR' }; @@ -4081,6 +5799,29 @@ goog.i18n.NumberFormatSymbols_km = { goog.i18n.NumberFormatSymbols_km_KH = goog.i18n.NumberFormatSymbols_km; +/** + * Number formatting symbols for locale ko_KP. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_ko_KP = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'KPW' +}; + + /** * Number formatting symbols for locale kok. * @enum {string} @@ -4111,6 +5852,59 @@ goog.i18n.NumberFormatSymbols_kok = { goog.i18n.NumberFormatSymbols_kok_IN = goog.i18n.NumberFormatSymbols_kok; +/** + * Number formatting symbols for locale ks. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_ks = { + DECIMAL_SEP: '\u066B', + GROUP_SEP: '\u066C', + PERCENT: '\u066A', + ZERO_DIGIT: '\u06F0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: '\u00D7\u06F1\u06F0^', + PERMILL: '\u0609', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#,##,##0.00', + DEF_CURRENCY_CODE: 'INR' +}; + + +/** + * Number formatting symbols for locale ks_Arab. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_ks_Arab = { + DECIMAL_SEP: '\u066B', + GROUP_SEP: '\u066C', + PERCENT: '\u066A', + ZERO_DIGIT: '\u06F0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: '\u00D7\u06F1\u06F0^', + PERMILL: '\u0609', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#,##,##0.00', + DEF_CURRENCY_CODE: 'EUR' +}; + + +/** + * Number formatting symbols for locale ks_Arab_IN. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_ks_Arab_IN = goog.i18n.NumberFormatSymbols_ks; + + /** * Number formatting symbols for locale ksb. * @enum {string} @@ -4181,7 +5975,7 @@ goog.i18n.NumberFormatSymbols_ksh = { PERCENT: '%', ZERO_DIGIT: '0', PLUS_SIGN: '+', - MINUS_SIGN: '\u2212', + MINUS_SIGN: '-', EXP_SYMBOL: '\u00D710^', PERMILL: '\u2030', INFINITY: '\u221E', @@ -4201,29 +5995,6 @@ goog.i18n.NumberFormatSymbols_ksh = { goog.i18n.NumberFormatSymbols_ksh_DE = goog.i18n.NumberFormatSymbols_ksh; -/** - * Number formatting symbols for locale ku. - * @enum {string} - */ -goog.i18n.NumberFormatSymbols_ku = { - DECIMAL_SEP: '.', - GROUP_SEP: ',', - PERCENT: '%', - ZERO_DIGIT: '0', - PLUS_SIGN: '+', - MINUS_SIGN: '-', - EXP_SYMBOL: 'E', - PERMILL: '\u2030', - INFINITY: '\u221E', - NAN: 'NaN', - DECIMAL_PATTERN: '#,##0.###', - SCIENTIFIC_PATTERN: '#E0', - PERCENT_PATTERN: '#,##0%', - CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', - DEF_CURRENCY_CODE: 'IQD' -}; - - /** * Number formatting symbols for locale kw. * @enum {string} @@ -4254,6 +6025,36 @@ goog.i18n.NumberFormatSymbols_kw = { goog.i18n.NumberFormatSymbols_kw_GB = goog.i18n.NumberFormatSymbols_kw; +/** + * Number formatting symbols for locale ky. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_ky = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', + DEF_CURRENCY_CODE: 'KGS' +}; + + +/** + * Number formatting symbols for locale ky_KG. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_ky_KG = goog.i18n.NumberFormatSymbols_ky; + + /** * Number formatting symbols for locale lag. * @enum {string} @@ -4314,6 +6115,52 @@ goog.i18n.NumberFormatSymbols_lg = { goog.i18n.NumberFormatSymbols_lg_UG = goog.i18n.NumberFormatSymbols_lg; +/** + * Number formatting symbols for locale ln_AO. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_ln_AO = { + DECIMAL_SEP: ',', + GROUP_SEP: '.', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + DEF_CURRENCY_CODE: 'AOA' +}; + + +/** + * Number formatting symbols for locale ln_CF. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_ln_CF = { + DECIMAL_SEP: ',', + GROUP_SEP: '.', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + DEF_CURRENCY_CODE: 'XAF' +}; + + /** * Number formatting symbols for locale ln_CG. * @enum {string} @@ -4342,8 +6189,8 @@ goog.i18n.NumberFormatSymbols_ln_CG = { * @enum {string} */ goog.i18n.NumberFormatSymbols_lo = { - DECIMAL_SEP: '.', - GROUP_SEP: ',', + DECIMAL_SEP: ',', + GROUP_SEP: '.', PERCENT: '%', ZERO_DIGIT: '0', PLUS_SIGN: '+', @@ -4353,7 +6200,7 @@ goog.i18n.NumberFormatSymbols_lo = { INFINITY: '\u221E', NAN: 'NaN', DECIMAL_PATTERN: '#,##0.###', - SCIENTIFIC_PATTERN: '#E0', + SCIENTIFIC_PATTERN: '#', PERCENT_PATTERN: '#,##0%', CURRENCY_PATTERN: '\u00A4#,##0.00;\u00A4-#,##0.00', DEF_CURRENCY_CODE: 'LAK' @@ -4630,6 +6477,36 @@ goog.i18n.NumberFormatSymbols_mgh = { goog.i18n.NumberFormatSymbols_mgh_MZ = goog.i18n.NumberFormatSymbols_mgh; +/** + * Number formatting symbols for locale mgo. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_mgo = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', + DEF_CURRENCY_CODE: 'XAF' +}; + + +/** + * Number formatting symbols for locale mgo_CM. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_mgo_CM = goog.i18n.NumberFormatSymbols_mgo; + + /** * Number formatting symbols for locale mk. * @enum {string} @@ -4661,10 +6538,86 @@ goog.i18n.NumberFormatSymbols_mk_MK = goog.i18n.NumberFormatSymbols_mk; /** - * Number formatting symbols for locale ms_BN. + * Number formatting symbols for locale mn. * @enum {string} */ -goog.i18n.NumberFormatSymbols_ms_BN = { +goog.i18n.NumberFormatSymbols_mn = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', + DEF_CURRENCY_CODE: 'MNT' +}; + + +/** + * Number formatting symbols for locale mn_Cyrl. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_mn_Cyrl = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', + DEF_CURRENCY_CODE: 'EUR' +}; + + +/** + * Number formatting symbols for locale mn_Cyrl_MN. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_mn_Cyrl_MN = goog.i18n.NumberFormatSymbols_mn; + + +/** + * Number formatting symbols for locale ms_Latn. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_ms_Latn = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'EUR' +}; + + +/** + * Number formatting symbols for locale ms_Latn_BN. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_ms_Latn_BN = { DECIMAL_SEP: ',', GROUP_SEP: '.', PERCENT: '%', @@ -4683,6 +6636,29 @@ goog.i18n.NumberFormatSymbols_ms_BN = { }; +/** + * Number formatting symbols for locale ms_Latn_SG. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_ms_Latn_SG = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'SGD' +}; + + /** * Number formatting symbols for locale mua. * @enum {string} @@ -4762,7 +6738,7 @@ goog.i18n.NumberFormatSymbols_naq = { SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', CURRENCY_PATTERN: '\u00A4#,##0.00', - DEF_CURRENCY_CODE: 'ZAR' + DEF_CURRENCY_CODE: 'NAD' }; @@ -4773,36 +6749,6 @@ goog.i18n.NumberFormatSymbols_naq = { goog.i18n.NumberFormatSymbols_naq_NA = goog.i18n.NumberFormatSymbols_naq; -/** - * Number formatting symbols for locale nb. - * @enum {string} - */ -goog.i18n.NumberFormatSymbols_nb = { - DECIMAL_SEP: ',', - GROUP_SEP: '\u00A0', - PERCENT: '%', - ZERO_DIGIT: '0', - PLUS_SIGN: '+', - MINUS_SIGN: '-', - EXP_SYMBOL: 'E', - PERMILL: '\u2030', - INFINITY: '\u221E', - NAN: 'NaN', - DECIMAL_PATTERN: '#,##0.###', - SCIENTIFIC_PATTERN: '#E0', - PERCENT_PATTERN: '#,##0\u00A0%', - CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', - DEF_CURRENCY_CODE: 'NOK' -}; - - -/** - * Number formatting symbols for locale nb_NO. - * @enum {string} - */ -goog.i18n.NumberFormatSymbols_nb_NO = goog.i18n.NumberFormatSymbols_nb; - - /** * Number formatting symbols for locale nd. * @enum {string} @@ -4822,7 +6768,7 @@ goog.i18n.NumberFormatSymbols_nd = { SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', - DEF_CURRENCY_CODE: 'ZWD' + DEF_CURRENCY_CODE: 'USD' }; @@ -4841,7 +6787,7 @@ goog.i18n.NumberFormatSymbols_ne = { DECIMAL_SEP: '.', GROUP_SEP: ',', PERCENT: '%', - ZERO_DIGIT: '0', + ZERO_DIGIT: '\u0966', PLUS_SIGN: '+', MINUS_SIGN: '-', EXP_SYMBOL: 'E', @@ -4864,7 +6810,7 @@ goog.i18n.NumberFormatSymbols_ne_IN = { DECIMAL_SEP: '.', GROUP_SEP: ',', PERCENT: '%', - ZERO_DIGIT: '0', + ZERO_DIGIT: '\u0966', PLUS_SIGN: '+', MINUS_SIGN: '-', EXP_SYMBOL: 'E', @@ -4955,6 +6901,29 @@ goog.i18n.NumberFormatSymbols_nl_CW = { }; +/** + * Number formatting symbols for locale nl_SR. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_nl_SR = { + DECIMAL_SEP: ',', + GROUP_SEP: '.', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00;\u00A4\u00A0#,##0.00-', + DEF_CURRENCY_CODE: 'SRD' +}; + + /** * Number formatting symbols for locale nl_SX. * @enum {string} @@ -5038,6 +7007,36 @@ goog.i18n.NumberFormatSymbols_nn = { goog.i18n.NumberFormatSymbols_nn_NO = goog.i18n.NumberFormatSymbols_nn; +/** + * Number formatting symbols for locale nnh. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_nnh = { + DECIMAL_SEP: ',', + GROUP_SEP: '.', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', + DEF_CURRENCY_CODE: 'XAF' +}; + + +/** + * Number formatting symbols for locale nnh_CM. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_nnh_CM = goog.i18n.NumberFormatSymbols_nnh; + + /** * Number formatting symbols for locale nr. * @enum {string} @@ -5117,7 +7116,7 @@ goog.i18n.NumberFormatSymbols_nus = { SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', - DEF_CURRENCY_CODE: 'SDD' + DEF_CURRENCY_CODE: 'SDG' }; @@ -5211,6 +7210,59 @@ goog.i18n.NumberFormatSymbols_om_KE = { }; +/** + * Number formatting symbols for locale os. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_os = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: '\u041D\u041D', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', + DEF_CURRENCY_CODE: 'GEL' +}; + + +/** + * Number formatting symbols for locale os_GE. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_os_GE = goog.i18n.NumberFormatSymbols_os; + + +/** + * Number formatting symbols for locale os_RU. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_os_RU = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: '\u041D\u041D', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', + DEF_CURRENCY_CODE: 'RUB' +}; + + /** * Number formatting symbols for locale pa. * @enum {string} @@ -5269,7 +7321,23 @@ goog.i18n.NumberFormatSymbols_pa_Arab_PK = * Number formatting symbols for locale pa_Guru. * @enum {string} */ -goog.i18n.NumberFormatSymbols_pa_Guru = goog.i18n.NumberFormatSymbols_pa; +goog.i18n.NumberFormatSymbols_pa_Guru = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#,##,##0.00', + DEF_CURRENCY_CODE: 'EUR' +}; /** @@ -5332,6 +7400,29 @@ goog.i18n.NumberFormatSymbols_pt_AO = { }; +/** + * Number formatting symbols for locale pt_CV. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_pt_CV = { + DECIMAL_SEP: ',', + GROUP_SEP: '.', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'CVE' +}; + + /** * Number formatting symbols for locale pt_GW. * @enum {string} @@ -5355,6 +7446,29 @@ goog.i18n.NumberFormatSymbols_pt_GW = { }; +/** + * Number formatting symbols for locale pt_MO. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_pt_MO = { + DECIMAL_SEP: ',', + GROUP_SEP: '.', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'MOP' +}; + + /** * Number formatting symbols for locale pt_MZ. * @enum {string} @@ -5401,6 +7515,29 @@ goog.i18n.NumberFormatSymbols_pt_ST = { }; +/** + * Number formatting symbols for locale pt_TL. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_pt_TL = { + DECIMAL_SEP: ',', + GROUP_SEP: '.', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'USD' +}; + + /** * Number formatting symbols for locale rm. * @enum {string} @@ -5478,7 +7615,7 @@ goog.i18n.NumberFormatSymbols_ro_MD = { NAN: 'NaN', DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', - PERCENT_PATTERN: '#,##0%', + PERCENT_PATTERN: '#,##0\u00A0%', CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', DEF_CURRENCY_CODE: 'MDL' }; @@ -5514,6 +7651,75 @@ goog.i18n.NumberFormatSymbols_rof = { goog.i18n.NumberFormatSymbols_rof_TZ = goog.i18n.NumberFormatSymbols_rof; +/** + * Number formatting symbols for locale ru_BY. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_ru_BY = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: '\u043D\u0435\u00A0\u0447\u0438\u0441\u043B\u043E', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0\u00A0%', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + DEF_CURRENCY_CODE: 'BYR' +}; + + +/** + * Number formatting symbols for locale ru_KG. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_ru_KG = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: '\u043D\u0435\u00A0\u0447\u0438\u0441\u043B\u043E', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0\u00A0%', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + DEF_CURRENCY_CODE: 'KGS' +}; + + +/** + * Number formatting symbols for locale ru_KZ. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_ru_KZ = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: '\u043D\u0435\u00A0\u0447\u0438\u0441\u043B\u043E', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0\u00A0%', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + DEF_CURRENCY_CODE: 'KZT' +}; + + /** * Number formatting symbols for locale ru_MD. * @enum {string} @@ -5528,7 +7734,7 @@ goog.i18n.NumberFormatSymbols_ru_MD = { EXP_SYMBOL: 'E', PERMILL: '\u2030', INFINITY: '\u221E', - NAN: '\u043D\u0435 \u0447\u0438\u0441\u043B\u043E', + NAN: '\u043D\u0435\u00A0\u0447\u0438\u0441\u043B\u043E', DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0\u00A0%', @@ -5551,7 +7757,7 @@ goog.i18n.NumberFormatSymbols_ru_UA = { EXP_SYMBOL: 'E', PERMILL: '\u2030', INFINITY: '\u221E', - NAN: '\u043D\u0435 \u0447\u0438\u0441\u043B\u043E', + NAN: '\u043D\u0435\u00A0\u0447\u0438\u0441\u043B\u043E', DECIMAL_PATTERN: '#,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0\u00A0%', @@ -5880,7 +8086,23 @@ goog.i18n.NumberFormatSymbols_shi = { * Number formatting symbols for locale shi_Latn. * @enum {string} */ -goog.i18n.NumberFormatSymbols_shi_Latn = goog.i18n.NumberFormatSymbols_shi; +goog.i18n.NumberFormatSymbols_shi_Latn = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '#,##0.00\u00A4', + DEF_CURRENCY_CODE: 'EUR' +}; /** @@ -5894,7 +8116,23 @@ goog.i18n.NumberFormatSymbols_shi_Latn_MA = goog.i18n.NumberFormatSymbols_shi; * Number formatting symbols for locale shi_Tfng. * @enum {string} */ -goog.i18n.NumberFormatSymbols_shi_Tfng = goog.i18n.NumberFormatSymbols_shi; +goog.i18n.NumberFormatSymbols_shi_Tfng = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '#,##0.00\u00A4', + DEF_CURRENCY_CODE: 'EUR' +}; /** @@ -5922,7 +8160,7 @@ goog.i18n.NumberFormatSymbols_si = { DECIMAL_PATTERN: '#,##,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##,##0%', - CURRENCY_PATTERN: '\u00A4#,##,##0.00;(\u00A4#,##,##0.00)', + CURRENCY_PATTERN: '\u00A4\u00A0#,##,##0.00', DEF_CURRENCY_CODE: 'LKR' }; @@ -5953,7 +8191,7 @@ goog.i18n.NumberFormatSymbols_sn = { SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', - DEF_CURRENCY_CODE: 'ZWD' + DEF_CURRENCY_CODE: 'USD' }; @@ -6063,6 +8301,52 @@ goog.i18n.NumberFormatSymbols_so_KE = { goog.i18n.NumberFormatSymbols_so_SO = goog.i18n.NumberFormatSymbols_so; +/** + * Number formatting symbols for locale sq_MK. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_sq_MK = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00', + DEF_CURRENCY_CODE: 'MKD' +}; + + +/** + * Number formatting symbols for locale sq_XK. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_sq_XK = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00', + DEF_CURRENCY_CODE: 'EUR' +}; + + /** * Number formatting symbols for locale sr_Cyrl. * @enum {string} @@ -6117,6 +8401,14 @@ goog.i18n.NumberFormatSymbols_sr_Cyrl_ME = goog.i18n.NumberFormatSymbols_sr_Cyrl; +/** + * Number formatting symbols for locale sr_Cyrl_XK. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_sr_Cyrl_XK = + goog.i18n.NumberFormatSymbols_sr_Cyrl; + + /** * Number formatting symbols for locale sr_Latn. * @enum {string} @@ -6136,7 +8428,7 @@ goog.i18n.NumberFormatSymbols_sr_Latn = { SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', - DEF_CURRENCY_CODE: 'USD' + DEF_CURRENCY_CODE: 'EUR' }; @@ -6167,7 +8459,15 @@ goog.i18n.NumberFormatSymbols_sr_Latn_BA = { * Number formatting symbols for locale sr_Latn_ME. * @enum {string} */ -goog.i18n.NumberFormatSymbols_sr_Latn_ME = { +goog.i18n.NumberFormatSymbols_sr_Latn_ME = + goog.i18n.NumberFormatSymbols_sr_Latn; + + +/** + * Number formatting symbols for locale sr_Latn_RS. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_sr_Latn_RS = { DECIMAL_SEP: ',', GROUP_SEP: '.', PERCENT: '%', @@ -6182,10 +8482,18 @@ goog.i18n.NumberFormatSymbols_sr_Latn_ME = { SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##0%', CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', - DEF_CURRENCY_CODE: 'EUR' + DEF_CURRENCY_CODE: 'RSD' }; +/** + * Number formatting symbols for locale sr_Latn_XK. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_sr_Latn_XK = + goog.i18n.NumberFormatSymbols_sr_Latn; + + /** * Number formatting symbols for locale ss. * @enum {string} @@ -6296,23 +8604,7 @@ goog.i18n.NumberFormatSymbols_st = { * Number formatting symbols for locale st_LS. * @enum {string} */ -goog.i18n.NumberFormatSymbols_st_LS = { - DECIMAL_SEP: ',', - GROUP_SEP: '\u00A0', - PERCENT: '%', - ZERO_DIGIT: '0', - PLUS_SIGN: '+', - MINUS_SIGN: '-', - EXP_SYMBOL: 'E', - PERMILL: '\u2030', - INFINITY: '\u221E', - NAN: 'NaN', - DECIMAL_PATTERN: '#,##0.###', - SCIENTIFIC_PATTERN: '#E0', - PERCENT_PATTERN: '#,##0%', - CURRENCY_PATTERN: '\u00A4#,##0.00', - DEF_CURRENCY_CODE: 'LSL' -}; +goog.i18n.NumberFormatSymbols_st_LS = goog.i18n.NumberFormatSymbols_st; /** @@ -6322,6 +8614,29 @@ goog.i18n.NumberFormatSymbols_st_LS = { goog.i18n.NumberFormatSymbols_st_ZA = goog.i18n.NumberFormatSymbols_st; +/** + * Number formatting symbols for locale sv_AX. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_sv_AX = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '\u2212', + EXP_SYMBOL: '\u00D710^', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: '\u00A4\u00A4\u00A4', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0\u00A0%', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + DEF_CURRENCY_CODE: 'EUR' +}; + + /** * Number formatting symbols for locale sv_FI. * @enum {string} @@ -6368,6 +8683,29 @@ goog.i18n.NumberFormatSymbols_sw_KE = { }; +/** + * Number formatting symbols for locale sw_UG. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_sw_UG = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'UGX' +}; + + /** * Number formatting symbols for locale swc. * @enum {string} @@ -6412,7 +8750,7 @@ goog.i18n.NumberFormatSymbols_ta_LK = { EXP_SYMBOL: 'E', PERMILL: '\u2030', INFINITY: '\u221E', - NAN: '\u0B8E\u0BA3\u0BCD \u0B87\u0BB2\u0BCD\u0BB2\u0BC8', + NAN: 'NaN', DECIMAL_PATTERN: '#,##,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##,##0%', @@ -6421,6 +8759,52 @@ goog.i18n.NumberFormatSymbols_ta_LK = { }; +/** + * Number formatting symbols for locale ta_MY. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_ta_MY = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', + DEF_CURRENCY_CODE: 'MYR' +}; + + +/** + * Number formatting symbols for locale ta_SG. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_ta_SG = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', + DEF_CURRENCY_CODE: 'SGD' +}; + + /** * Number formatting symbols for locale teo. * @enum {string} @@ -6501,7 +8885,23 @@ goog.i18n.NumberFormatSymbols_tg = { * Number formatting symbols for locale tg_Cyrl. * @enum {string} */ -goog.i18n.NumberFormatSymbols_tg_Cyrl = goog.i18n.NumberFormatSymbols_tg; +goog.i18n.NumberFormatSymbols_tg_Cyrl = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', + DEF_CURRENCY_CODE: 'EUR' +}; /** @@ -6617,6 +9017,29 @@ goog.i18n.NumberFormatSymbols_tn = { }; +/** + * Number formatting symbols for locale tn_BW. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_tn_BW = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00', + DEF_CURRENCY_CODE: 'BWP' +}; + + /** * Number formatting symbols for locale tn_ZA. * @enum {string} @@ -6639,9 +9062,9 @@ goog.i18n.NumberFormatSymbols_to = { PERMILL: '\u2030', INFINITY: '\u221E', NAN: 'NaN', - DECIMAL_PATTERN: '#,##0.###', + DECIMAL_PATTERN: '#0.###', SCIENTIFIC_PATTERN: '#E0', - PERCENT_PATTERN: '#,##0%', + PERCENT_PATTERN: '\u200E#0%', CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', DEF_CURRENCY_CODE: 'TOP' }; @@ -6654,6 +9077,29 @@ goog.i18n.NumberFormatSymbols_to = { goog.i18n.NumberFormatSymbols_to_TO = goog.i18n.NumberFormatSymbols_to; +/** + * Number formatting symbols for locale tr_CY. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_tr_CY = { + DECIMAL_SEP: ',', + GROUP_SEP: '.', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '%#,##0', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4;(#,##0.00\u00A0\u00A4)', + DEF_CURRENCY_CODE: 'EUR' +}; + + /** * Number formatting symbols for locale ts. * @enum {string} @@ -6741,7 +9187,23 @@ goog.i18n.NumberFormatSymbols_tzm = { * Number formatting symbols for locale tzm_Latn. * @enum {string} */ -goog.i18n.NumberFormatSymbols_tzm_Latn = goog.i18n.NumberFormatSymbols_tzm; +goog.i18n.NumberFormatSymbols_tzm_Latn = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '#,##0.00\u00A0\u00A4', + DEF_CURRENCY_CODE: 'EUR' +}; /** @@ -6756,16 +9218,16 @@ goog.i18n.NumberFormatSymbols_tzm_Latn_MA = goog.i18n.NumberFormatSymbols_tzm; * @enum {string} */ goog.i18n.NumberFormatSymbols_ur_IN = { - DECIMAL_SEP: '\u066B', - GROUP_SEP: '\u066C', - PERCENT: '\u066A', + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', ZERO_DIGIT: '\u06F0', PLUS_SIGN: '+', MINUS_SIGN: '-', - EXP_SYMBOL: '\u00D7\u06F1\u06F0^', - PERMILL: '\u0609', + EXP_SYMBOL: '\u0642', + PERMILL: '\u2030', INFINITY: '\u221E', - NAN: 'NaN', + NAN: '\u06CC\u06C1\u00A0\u0639\u062F\u062F\u00A0\u0646\u06C1\u06CC\u06BA', DECIMAL_PATTERN: '#,##,##0.###', SCIENTIFIC_PATTERN: '#E0', PERCENT_PATTERN: '#,##,##0%', @@ -6832,7 +9294,23 @@ goog.i18n.NumberFormatSymbols_uz_Arab_AF = * Number formatting symbols for locale uz_Cyrl. * @enum {string} */ -goog.i18n.NumberFormatSymbols_uz_Cyrl = goog.i18n.NumberFormatSymbols_uz; +goog.i18n.NumberFormatSymbols_uz_Cyrl = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', + DEF_CURRENCY_CODE: 'EUR' +}; /** @@ -6846,7 +9324,23 @@ goog.i18n.NumberFormatSymbols_uz_Cyrl_UZ = goog.i18n.NumberFormatSymbols_uz; * Number formatting symbols for locale uz_Latn. * @enum {string} */ -goog.i18n.NumberFormatSymbols_uz_Latn = goog.i18n.NumberFormatSymbols_uz; +goog.i18n.NumberFormatSymbols_uz_Latn = { + DECIMAL_SEP: ',', + GROUP_SEP: '\u00A0', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', + DEF_CURRENCY_CODE: 'EUR' +}; /** @@ -6883,7 +9377,23 @@ goog.i18n.NumberFormatSymbols_vai = { * Number formatting symbols for locale vai_Latn. * @enum {string} */ -goog.i18n.NumberFormatSymbols_vai_Latn = goog.i18n.NumberFormatSymbols_vai; +goog.i18n.NumberFormatSymbols_vai_Latn = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'EUR' +}; /** @@ -6897,7 +9407,23 @@ goog.i18n.NumberFormatSymbols_vai_Latn_LR = goog.i18n.NumberFormatSymbols_vai; * Number formatting symbols for locale vai_Vaii. * @enum {string} */ -goog.i18n.NumberFormatSymbols_vai_Vaii = goog.i18n.NumberFormatSymbols_vai; +goog.i18n.NumberFormatSymbols_vai_Vaii = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'EUR' +}; /** @@ -6937,6 +9463,29 @@ goog.i18n.NumberFormatSymbols_ve = { goog.i18n.NumberFormatSymbols_ve_ZA = goog.i18n.NumberFormatSymbols_ve; +/** + * Number formatting symbols for locale vo. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_vo = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4\u00A0#,##0.00', + DEF_CURRENCY_CODE: 'USD' +}; + + /** * Number formatting symbols for locale vun. * @enum {string} @@ -7147,6 +9696,29 @@ goog.i18n.NumberFormatSymbols_yo = { goog.i18n.NumberFormatSymbols_yo_NG = goog.i18n.NumberFormatSymbols_yo; +/** + * Number formatting symbols for locale zh_Hans. + * @enum {string} + */ +goog.i18n.NumberFormatSymbols_zh_Hans = { + DECIMAL_SEP: '.', + GROUP_SEP: ',', + PERCENT: '%', + ZERO_DIGIT: '0', + PLUS_SIGN: '+', + MINUS_SIGN: '-', + EXP_SYMBOL: 'E', + PERMILL: '\u2030', + INFINITY: '\u221E', + NAN: 'NaN', + DECIMAL_PATTERN: '#,##0.###', + SCIENTIFIC_PATTERN: '#E0', + PERCENT_PATTERN: '#,##0%', + CURRENCY_PATTERN: '\u00A4#,##0.00;(\u00A4#,##0.00)', + DEF_CURRENCY_CODE: 'EUR' +}; + + /** * Number formatting symbols for locale zh_Hans_HK. * @enum {string} @@ -7341,10 +9913,26 @@ if (goog.LOCALE == 'ar_BH' || goog.LOCALE == 'ar-BH') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ar_BH; } +if (goog.LOCALE == 'ar_DJ' || goog.LOCALE == 'ar-DJ') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ar_DJ; +} + if (goog.LOCALE == 'ar_DZ' || goog.LOCALE == 'ar-DZ') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ar_DZ; } +if (goog.LOCALE == 'ar_EH' || goog.LOCALE == 'ar-EH') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ar_EH; +} + +if (goog.LOCALE == 'ar_ER' || goog.LOCALE == 'ar-ER') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ar_ER; +} + +if (goog.LOCALE == 'ar_IL' || goog.LOCALE == 'ar-IL') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ar_IL; +} + if (goog.LOCALE == 'ar_IQ' || goog.LOCALE == 'ar-IQ') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ar_IQ; } @@ -7353,6 +9941,10 @@ if (goog.LOCALE == 'ar_JO' || goog.LOCALE == 'ar-JO') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ar_JO; } +if (goog.LOCALE == 'ar_KM' || goog.LOCALE == 'ar-KM') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ar_KM; +} + if (goog.LOCALE == 'ar_KW' || goog.LOCALE == 'ar-KW') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ar_KW; } @@ -7369,10 +9961,18 @@ if (goog.LOCALE == 'ar_MA' || goog.LOCALE == 'ar-MA') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ar_MA; } +if (goog.LOCALE == 'ar_MR' || goog.LOCALE == 'ar-MR') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ar_MR; +} + if (goog.LOCALE == 'ar_OM' || goog.LOCALE == 'ar-OM') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ar_OM; } +if (goog.LOCALE == 'ar_PS' || goog.LOCALE == 'ar-PS') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ar_PS; +} + if (goog.LOCALE == 'ar_QA' || goog.LOCALE == 'ar-QA') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ar_QA; } @@ -7385,10 +9985,18 @@ if (goog.LOCALE == 'ar_SD' || goog.LOCALE == 'ar-SD') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ar_SD; } +if (goog.LOCALE == 'ar_SO' || goog.LOCALE == 'ar-SO') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ar_SO; +} + if (goog.LOCALE == 'ar_SY' || goog.LOCALE == 'ar-SY') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ar_SY; } +if (goog.LOCALE == 'ar_TD' || goog.LOCALE == 'ar-TD') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ar_TD; +} + if (goog.LOCALE == 'ar_TN' || goog.LOCALE == 'ar-TN') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ar_TN; } @@ -7413,12 +10021,20 @@ if (goog.LOCALE == 'asa_TZ' || goog.LOCALE == 'asa-TZ') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_asa; } +if (goog.LOCALE == 'ast') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ast; +} + +if (goog.LOCALE == 'ast_ES' || goog.LOCALE == 'ast-ES') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ast; +} + if (goog.LOCALE == 'az') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_az; } if (goog.LOCALE == 'az_Cyrl' || goog.LOCALE == 'az-Cyrl') { - goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_az; + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_az_Cyrl; } if (goog.LOCALE == 'az_Cyrl_AZ' || goog.LOCALE == 'az-Cyrl-AZ') { @@ -7426,7 +10042,7 @@ if (goog.LOCALE == 'az_Cyrl_AZ' || goog.LOCALE == 'az-Cyrl-AZ') { } if (goog.LOCALE == 'az_Latn' || goog.LOCALE == 'az-Latn') { - goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_az; + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_az_Latn; } if (goog.LOCALE == 'az_Latn_AZ' || goog.LOCALE == 'az-Latn-AZ') { @@ -7489,14 +10105,6 @@ if (goog.LOCALE == 'bo_IN' || goog.LOCALE == 'bo-IN') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_bo_IN; } -if (goog.LOCALE == 'br') { - goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_br; -} - -if (goog.LOCALE == 'br_FR' || goog.LOCALE == 'br-FR') { - goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_br; -} - if (goog.LOCALE == 'brx') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_brx; } @@ -7509,7 +10117,19 @@ if (goog.LOCALE == 'bs') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_bs; } -if (goog.LOCALE == 'bs_BA' || goog.LOCALE == 'bs-BA') { +if (goog.LOCALE == 'bs_Cyrl' || goog.LOCALE == 'bs-Cyrl') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_bs_Cyrl; +} + +if (goog.LOCALE == 'bs_Cyrl_BA' || goog.LOCALE == 'bs-Cyrl-BA') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_bs_Cyrl_BA; +} + +if (goog.LOCALE == 'bs_Latn' || goog.LOCALE == 'bs-Latn') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_bs_Latn; +} + +if (goog.LOCALE == 'bs_Latn_BA' || goog.LOCALE == 'bs-Latn-BA') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_bs; } @@ -7534,7 +10154,7 @@ if (goog.LOCALE == 'ckb') { } if (goog.LOCALE == 'ckb_Arab' || goog.LOCALE == 'ckb-Arab') { - goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ckb; + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ckb_Arab; } if (goog.LOCALE == 'ckb_Arab_IQ' || goog.LOCALE == 'ckb-Arab-IQ') { @@ -7554,7 +10174,7 @@ if (goog.LOCALE == 'ckb_IR' || goog.LOCALE == 'ckb-IR') { } if (goog.LOCALE == 'ckb_Latn' || goog.LOCALE == 'ckb-Latn') { - goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ckb; + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ckb_Latn; } if (goog.LOCALE == 'ckb_Latn_IQ' || goog.LOCALE == 'ckb-Latn-IQ') { @@ -7629,6 +10249,14 @@ if (goog.LOCALE == 'el_CY' || goog.LOCALE == 'el-CY') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_el_CY; } +if (goog.LOCALE == 'en_150' || goog.LOCALE == 'en-150') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_150; +} + +if (goog.LOCALE == 'en_AG' || goog.LOCALE == 'en-AG') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_AG; +} + if (goog.LOCALE == 'en_BB' || goog.LOCALE == 'en-BB') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_BB; } @@ -7641,6 +10269,10 @@ if (goog.LOCALE == 'en_BM' || goog.LOCALE == 'en-BM') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_BM; } +if (goog.LOCALE == 'en_BS' || goog.LOCALE == 'en-BS') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_BS; +} + if (goog.LOCALE == 'en_BW' || goog.LOCALE == 'en-BW') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_BW; } @@ -7653,6 +10285,42 @@ if (goog.LOCALE == 'en_CA' || goog.LOCALE == 'en-CA') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_CA; } +if (goog.LOCALE == 'en_CM' || goog.LOCALE == 'en-CM') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_CM; +} + +if (goog.LOCALE == 'en_DM' || goog.LOCALE == 'en-DM') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_DM; +} + +if (goog.LOCALE == 'en_Dsrt' || goog.LOCALE == 'en-Dsrt') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_Dsrt; +} + +if (goog.LOCALE == 'en_FJ' || goog.LOCALE == 'en-FJ') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_FJ; +} + +if (goog.LOCALE == 'en_GD' || goog.LOCALE == 'en-GD') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_GD; +} + +if (goog.LOCALE == 'en_GG' || goog.LOCALE == 'en-GG') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_GG; +} + +if (goog.LOCALE == 'en_GH' || goog.LOCALE == 'en-GH') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_GH; +} + +if (goog.LOCALE == 'en_GI' || goog.LOCALE == 'en-GI') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_GI; +} + +if (goog.LOCALE == 'en_GM' || goog.LOCALE == 'en-GM') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_GM; +} + if (goog.LOCALE == 'en_GY' || goog.LOCALE == 'en-GY') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_GY; } @@ -7661,10 +10329,50 @@ if (goog.LOCALE == 'en_HK' || goog.LOCALE == 'en-HK') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_HK; } +if (goog.LOCALE == 'en_IM' || goog.LOCALE == 'en-IM') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_IM; +} + +if (goog.LOCALE == 'en_JE' || goog.LOCALE == 'en-JE') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_JE; +} + if (goog.LOCALE == 'en_JM' || goog.LOCALE == 'en-JM') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_JM; } +if (goog.LOCALE == 'en_KE' || goog.LOCALE == 'en-KE') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_KE; +} + +if (goog.LOCALE == 'en_KI' || goog.LOCALE == 'en-KI') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_KI; +} + +if (goog.LOCALE == 'en_KN' || goog.LOCALE == 'en-KN') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_KN; +} + +if (goog.LOCALE == 'en_KY' || goog.LOCALE == 'en-KY') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_KY; +} + +if (goog.LOCALE == 'en_LC' || goog.LOCALE == 'en-LC') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_LC; +} + +if (goog.LOCALE == 'en_LR' || goog.LOCALE == 'en-LR') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_LR; +} + +if (goog.LOCALE == 'en_LS' || goog.LOCALE == 'en-LS') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_LS; +} + +if (goog.LOCALE == 'en_MG' || goog.LOCALE == 'en-MG') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_MG; +} + if (goog.LOCALE == 'en_MT' || goog.LOCALE == 'en-MT') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_MT; } @@ -7673,14 +10381,26 @@ if (goog.LOCALE == 'en_MU' || goog.LOCALE == 'en-MU') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_MU; } +if (goog.LOCALE == 'en_MW' || goog.LOCALE == 'en-MW') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_MW; +} + if (goog.LOCALE == 'en_NA' || goog.LOCALE == 'en-NA') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_NA; } +if (goog.LOCALE == 'en_NG' || goog.LOCALE == 'en-NG') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_NG; +} + if (goog.LOCALE == 'en_NZ' || goog.LOCALE == 'en-NZ') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_NZ; } +if (goog.LOCALE == 'en_PG' || goog.LOCALE == 'en-PG') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_PG; +} + if (goog.LOCALE == 'en_PH' || goog.LOCALE == 'en-PH') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_PH; } @@ -7689,10 +10409,58 @@ if (goog.LOCALE == 'en_PK' || goog.LOCALE == 'en-PK') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_PK; } +if (goog.LOCALE == 'en_SB' || goog.LOCALE == 'en-SB') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_SB; +} + +if (goog.LOCALE == 'en_SC' || goog.LOCALE == 'en-SC') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_SC; +} + +if (goog.LOCALE == 'en_SL' || goog.LOCALE == 'en-SL') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_SL; +} + +if (goog.LOCALE == 'en_SS' || goog.LOCALE == 'en-SS') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_SS; +} + +if (goog.LOCALE == 'en_SZ' || goog.LOCALE == 'en-SZ') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_SZ; +} + +if (goog.LOCALE == 'en_TO' || goog.LOCALE == 'en-TO') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_TO; +} + if (goog.LOCALE == 'en_TT' || goog.LOCALE == 'en-TT') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_TT; } +if (goog.LOCALE == 'en_TZ' || goog.LOCALE == 'en-TZ') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_TZ; +} + +if (goog.LOCALE == 'en_UG' || goog.LOCALE == 'en-UG') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_UG; +} + +if (goog.LOCALE == 'en_VC' || goog.LOCALE == 'en-VC') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_VC; +} + +if (goog.LOCALE == 'en_VU' || goog.LOCALE == 'en-VU') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_VU; +} + +if (goog.LOCALE == 'en_WS' || goog.LOCALE == 'en-WS') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_WS; +} + +if (goog.LOCALE == 'en_ZM' || goog.LOCALE == 'en-ZM') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_ZM; +} + if (goog.LOCALE == 'en_ZW' || goog.LOCALE == 'en-ZW') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_en_ZW; } @@ -7721,6 +10489,10 @@ if (goog.LOCALE == 'es_CR' || goog.LOCALE == 'es-CR') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_es_CR; } +if (goog.LOCALE == 'es_CU' || goog.LOCALE == 'es-CU') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_es_CU; +} + if (goog.LOCALE == 'es_DO' || goog.LOCALE == 'es-DO') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_es_DO; } @@ -7757,6 +10529,10 @@ if (goog.LOCALE == 'es_PE' || goog.LOCALE == 'es-PE') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_es_PE; } +if (goog.LOCALE == 'es_PH' || goog.LOCALE == 'es-PH') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_es_PH; +} + if (goog.LOCALE == 'es_PR' || goog.LOCALE == 'es-PR') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_es_PR; } @@ -7853,6 +10629,10 @@ if (goog.LOCALE == 'fr_DJ' || goog.LOCALE == 'fr-DJ') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_fr_DJ; } +if (goog.LOCALE == 'fr_DZ' || goog.LOCALE == 'fr-DZ') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_fr_DZ; +} + if (goog.LOCALE == 'fr_GA' || goog.LOCALE == 'fr-GA') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_fr_GA; } @@ -7865,6 +10645,10 @@ if (goog.LOCALE == 'fr_GQ' || goog.LOCALE == 'fr-GQ') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_fr_GQ; } +if (goog.LOCALE == 'fr_HT' || goog.LOCALE == 'fr-HT') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_fr_HT; +} + if (goog.LOCALE == 'fr_KM' || goog.LOCALE == 'fr-KM') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_fr_KM; } @@ -7873,6 +10657,10 @@ if (goog.LOCALE == 'fr_LU' || goog.LOCALE == 'fr-LU') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_fr_LU; } +if (goog.LOCALE == 'fr_MA' || goog.LOCALE == 'fr-MA') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_fr_MA; +} + if (goog.LOCALE == 'fr_MG' || goog.LOCALE == 'fr-MG') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_fr_MG; } @@ -7881,18 +10669,42 @@ if (goog.LOCALE == 'fr_ML' || goog.LOCALE == 'fr-ML') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_fr_ML; } +if (goog.LOCALE == 'fr_MR' || goog.LOCALE == 'fr-MR') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_fr_MR; +} + +if (goog.LOCALE == 'fr_MU' || goog.LOCALE == 'fr-MU') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_fr_MU; +} + +if (goog.LOCALE == 'fr_NC' || goog.LOCALE == 'fr-NC') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_fr_NC; +} + if (goog.LOCALE == 'fr_NE' || goog.LOCALE == 'fr-NE') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_fr_NE; } +if (goog.LOCALE == 'fr_PF' || goog.LOCALE == 'fr-PF') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_fr_PF; +} + if (goog.LOCALE == 'fr_RW' || goog.LOCALE == 'fr-RW') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_fr_RW; } +if (goog.LOCALE == 'fr_SC' || goog.LOCALE == 'fr-SC') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_fr_SC; +} + if (goog.LOCALE == 'fr_SN' || goog.LOCALE == 'fr-SN') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_fr_SN; } +if (goog.LOCALE == 'fr_SY' || goog.LOCALE == 'fr-SY') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_fr_SY; +} + if (goog.LOCALE == 'fr_TD' || goog.LOCALE == 'fr-TD') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_fr_TD; } @@ -7901,6 +10713,14 @@ if (goog.LOCALE == 'fr_TG' || goog.LOCALE == 'fr-TG') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_fr_TG; } +if (goog.LOCALE == 'fr_TN' || goog.LOCALE == 'fr-TN') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_fr_TN; +} + +if (goog.LOCALE == 'fr_VU' || goog.LOCALE == 'fr-VU') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_fr_VU; +} + if (goog.LOCALE == 'fur') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_fur; } @@ -7946,7 +10766,7 @@ if (goog.LOCALE == 'ha') { } if (goog.LOCALE == 'ha_Latn' || goog.LOCALE == 'ha-Latn') { - goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ha; + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ha_Latn; } if (goog.LOCALE == 'ha_Latn_GH' || goog.LOCALE == 'ha-Latn-GH') { @@ -7961,6 +10781,10 @@ if (goog.LOCALE == 'ha_Latn_NG' || goog.LOCALE == 'ha-Latn-NG') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ha; } +if (goog.LOCALE == 'hr_BA' || goog.LOCALE == 'hr-BA') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_hr_BA; +} + if (goog.LOCALE == 'hy') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_hy; } @@ -7973,6 +10797,10 @@ if (goog.LOCALE == 'ia') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ia; } +if (goog.LOCALE == 'ia_FR' || goog.LOCALE == 'ia-FR') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ia; +} + if (goog.LOCALE == 'ig') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ig; } @@ -7993,6 +10821,14 @@ if (goog.LOCALE == 'it_CH' || goog.LOCALE == 'it-CH') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_it_CH; } +if (goog.LOCALE == 'jgo') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_jgo; +} + +if (goog.LOCALE == 'jgo_CM' || goog.LOCALE == 'jgo-CM') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_jgo; +} + if (goog.LOCALE == 'jmc') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_jmc; } @@ -8062,13 +10898,21 @@ if (goog.LOCALE == 'kk') { } if (goog.LOCALE == 'kk_Cyrl' || goog.LOCALE == 'kk-Cyrl') { - goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_kk; + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_kk_Cyrl; } if (goog.LOCALE == 'kk_Cyrl_KZ' || goog.LOCALE == 'kk-Cyrl-KZ') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_kk; } +if (goog.LOCALE == 'kkj') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_kkj; +} + +if (goog.LOCALE == 'kkj_CM' || goog.LOCALE == 'kkj-CM') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_kkj; +} + if (goog.LOCALE == 'kl') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_kl; } @@ -8093,6 +10937,10 @@ if (goog.LOCALE == 'km_KH' || goog.LOCALE == 'km-KH') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_km; } +if (goog.LOCALE == 'ko_KP' || goog.LOCALE == 'ko-KP') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ko_KP; +} + if (goog.LOCALE == 'kok') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_kok; } @@ -8101,6 +10949,18 @@ if (goog.LOCALE == 'kok_IN' || goog.LOCALE == 'kok-IN') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_kok; } +if (goog.LOCALE == 'ks') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ks; +} + +if (goog.LOCALE == 'ks_Arab' || goog.LOCALE == 'ks-Arab') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ks_Arab; +} + +if (goog.LOCALE == 'ks_Arab_IN' || goog.LOCALE == 'ks-Arab-IN') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ks; +} + if (goog.LOCALE == 'ksb') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ksb; } @@ -8125,10 +10985,6 @@ if (goog.LOCALE == 'ksh_DE' || goog.LOCALE == 'ksh-DE') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ksh; } -if (goog.LOCALE == 'ku') { - goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ku; -} - if (goog.LOCALE == 'kw') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_kw; } @@ -8137,6 +10993,14 @@ if (goog.LOCALE == 'kw_GB' || goog.LOCALE == 'kw-GB') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_kw; } +if (goog.LOCALE == 'ky') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ky; +} + +if (goog.LOCALE == 'ky_KG' || goog.LOCALE == 'ky-KG') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ky; +} + if (goog.LOCALE == 'lag') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_lag; } @@ -8153,6 +11017,14 @@ if (goog.LOCALE == 'lg_UG' || goog.LOCALE == 'lg-UG') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_lg; } +if (goog.LOCALE == 'ln_AO' || goog.LOCALE == 'ln-AO') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ln_AO; +} + +if (goog.LOCALE == 'ln_CF' || goog.LOCALE == 'ln-CF') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ln_CF; +} + if (goog.LOCALE == 'ln_CG' || goog.LOCALE == 'ln-CG') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ln_CG; } @@ -8233,6 +11105,14 @@ if (goog.LOCALE == 'mgh_MZ' || goog.LOCALE == 'mgh-MZ') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_mgh; } +if (goog.LOCALE == 'mgo') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_mgo; +} + +if (goog.LOCALE == 'mgo_CM' || goog.LOCALE == 'mgo-CM') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_mgo; +} + if (goog.LOCALE == 'mk') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_mk; } @@ -8241,8 +11121,28 @@ if (goog.LOCALE == 'mk_MK' || goog.LOCALE == 'mk-MK') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_mk; } -if (goog.LOCALE == 'ms_BN' || goog.LOCALE == 'ms-BN') { - goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ms_BN; +if (goog.LOCALE == 'mn') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_mn; +} + +if (goog.LOCALE == 'mn_Cyrl' || goog.LOCALE == 'mn-Cyrl') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_mn_Cyrl; +} + +if (goog.LOCALE == 'mn_Cyrl_MN' || goog.LOCALE == 'mn-Cyrl-MN') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_mn; +} + +if (goog.LOCALE == 'ms_Latn' || goog.LOCALE == 'ms-Latn') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ms_Latn; +} + +if (goog.LOCALE == 'ms_Latn_BN' || goog.LOCALE == 'ms-Latn-BN') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ms_Latn_BN; +} + +if (goog.LOCALE == 'ms_Latn_SG' || goog.LOCALE == 'ms-Latn-SG') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ms_Latn_SG; } if (goog.LOCALE == 'mua') { @@ -8269,14 +11169,6 @@ if (goog.LOCALE == 'naq_NA' || goog.LOCALE == 'naq-NA') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_naq; } -if (goog.LOCALE == 'nb') { - goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_nb; -} - -if (goog.LOCALE == 'nb_NO' || goog.LOCALE == 'nb-NO') { - goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_nb; -} - if (goog.LOCALE == 'nd') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_nd; } @@ -8309,6 +11201,10 @@ if (goog.LOCALE == 'nl_CW' || goog.LOCALE == 'nl-CW') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_nl_CW; } +if (goog.LOCALE == 'nl_SR' || goog.LOCALE == 'nl-SR') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_nl_SR; +} + if (goog.LOCALE == 'nl_SX' || goog.LOCALE == 'nl-SX') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_nl_SX; } @@ -8329,6 +11225,14 @@ if (goog.LOCALE == 'nn_NO' || goog.LOCALE == 'nn-NO') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_nn; } +if (goog.LOCALE == 'nnh') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_nnh; +} + +if (goog.LOCALE == 'nnh_CM' || goog.LOCALE == 'nnh-CM') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_nnh; +} + if (goog.LOCALE == 'nr') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_nr; } @@ -8373,6 +11277,18 @@ if (goog.LOCALE == 'om_KE' || goog.LOCALE == 'om-KE') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_om_KE; } +if (goog.LOCALE == 'os') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_os; +} + +if (goog.LOCALE == 'os_GE' || goog.LOCALE == 'os-GE') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_os; +} + +if (goog.LOCALE == 'os_RU' || goog.LOCALE == 'os-RU') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_os_RU; +} + if (goog.LOCALE == 'pa') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_pa; } @@ -8386,7 +11302,7 @@ if (goog.LOCALE == 'pa_Arab_PK' || goog.LOCALE == 'pa-Arab-PK') { } if (goog.LOCALE == 'pa_Guru' || goog.LOCALE == 'pa-Guru') { - goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_pa; + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_pa_Guru; } if (goog.LOCALE == 'pa_Guru_IN' || goog.LOCALE == 'pa-Guru-IN') { @@ -8405,10 +11321,18 @@ if (goog.LOCALE == 'pt_AO' || goog.LOCALE == 'pt-AO') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_pt_AO; } +if (goog.LOCALE == 'pt_CV' || goog.LOCALE == 'pt-CV') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_pt_CV; +} + if (goog.LOCALE == 'pt_GW' || goog.LOCALE == 'pt-GW') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_pt_GW; } +if (goog.LOCALE == 'pt_MO' || goog.LOCALE == 'pt-MO') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_pt_MO; +} + if (goog.LOCALE == 'pt_MZ' || goog.LOCALE == 'pt-MZ') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_pt_MZ; } @@ -8417,6 +11341,10 @@ if (goog.LOCALE == 'pt_ST' || goog.LOCALE == 'pt-ST') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_pt_ST; } +if (goog.LOCALE == 'pt_TL' || goog.LOCALE == 'pt-TL') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_pt_TL; +} + if (goog.LOCALE == 'rm') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_rm; } @@ -8445,6 +11373,18 @@ if (goog.LOCALE == 'rof_TZ' || goog.LOCALE == 'rof-TZ') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_rof; } +if (goog.LOCALE == 'ru_BY' || goog.LOCALE == 'ru-BY') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ru_BY; +} + +if (goog.LOCALE == 'ru_KG' || goog.LOCALE == 'ru-KG') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ru_KG; +} + +if (goog.LOCALE == 'ru_KZ' || goog.LOCALE == 'ru-KZ') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ru_KZ; +} + if (goog.LOCALE == 'ru_MD' || goog.LOCALE == 'ru-MD') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ru_MD; } @@ -8534,7 +11474,7 @@ if (goog.LOCALE == 'shi') { } if (goog.LOCALE == 'shi_Latn' || goog.LOCALE == 'shi-Latn') { - goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_shi; + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_shi_Latn; } if (goog.LOCALE == 'shi_Latn_MA' || goog.LOCALE == 'shi-Latn-MA') { @@ -8542,7 +11482,7 @@ if (goog.LOCALE == 'shi_Latn_MA' || goog.LOCALE == 'shi-Latn-MA') { } if (goog.LOCALE == 'shi_Tfng' || goog.LOCALE == 'shi-Tfng') { - goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_shi; + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_shi_Tfng; } if (goog.LOCALE == 'shi_Tfng_MA' || goog.LOCALE == 'shi-Tfng-MA') { @@ -8585,6 +11525,14 @@ if (goog.LOCALE == 'so_SO' || goog.LOCALE == 'so-SO') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_so; } +if (goog.LOCALE == 'sq_MK' || goog.LOCALE == 'sq-MK') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_sq_MK; +} + +if (goog.LOCALE == 'sq_XK' || goog.LOCALE == 'sq-XK') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_sq_XK; +} + if (goog.LOCALE == 'sr_Cyrl' || goog.LOCALE == 'sr-Cyrl') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_sr_Cyrl; } @@ -8597,6 +11545,10 @@ if (goog.LOCALE == 'sr_Cyrl_ME' || goog.LOCALE == 'sr-Cyrl-ME') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_sr_Cyrl; } +if (goog.LOCALE == 'sr_Cyrl_XK' || goog.LOCALE == 'sr-Cyrl-XK') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_sr_Cyrl; +} + if (goog.LOCALE == 'sr_Latn' || goog.LOCALE == 'sr-Latn') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_sr_Latn; } @@ -8606,7 +11558,15 @@ if (goog.LOCALE == 'sr_Latn_BA' || goog.LOCALE == 'sr-Latn-BA') { } if (goog.LOCALE == 'sr_Latn_ME' || goog.LOCALE == 'sr-Latn-ME') { - goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_sr_Latn_ME; + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_sr_Latn; +} + +if (goog.LOCALE == 'sr_Latn_RS' || goog.LOCALE == 'sr-Latn-RS') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_sr_Latn_RS; +} + +if (goog.LOCALE == 'sr_Latn_XK' || goog.LOCALE == 'sr-Latn-XK') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_sr_Latn; } if (goog.LOCALE == 'ss') { @@ -8634,13 +11594,17 @@ if (goog.LOCALE == 'st') { } if (goog.LOCALE == 'st_LS' || goog.LOCALE == 'st-LS') { - goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_st_LS; + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_st; } if (goog.LOCALE == 'st_ZA' || goog.LOCALE == 'st-ZA') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_st; } +if (goog.LOCALE == 'sv_AX' || goog.LOCALE == 'sv-AX') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_sv_AX; +} + if (goog.LOCALE == 'sv_FI' || goog.LOCALE == 'sv-FI') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_sv_FI; } @@ -8649,6 +11613,10 @@ if (goog.LOCALE == 'sw_KE' || goog.LOCALE == 'sw-KE') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_sw_KE; } +if (goog.LOCALE == 'sw_UG' || goog.LOCALE == 'sw-UG') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_sw_UG; +} + if (goog.LOCALE == 'swc') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_swc; } @@ -8661,6 +11629,14 @@ if (goog.LOCALE == 'ta_LK' || goog.LOCALE == 'ta-LK') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ta_LK; } +if (goog.LOCALE == 'ta_MY' || goog.LOCALE == 'ta-MY') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ta_MY; +} + +if (goog.LOCALE == 'ta_SG' || goog.LOCALE == 'ta-SG') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ta_SG; +} + if (goog.LOCALE == 'teo') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_teo; } @@ -8678,7 +11654,7 @@ if (goog.LOCALE == 'tg') { } if (goog.LOCALE == 'tg_Cyrl' || goog.LOCALE == 'tg-Cyrl') { - goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_tg; + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_tg_Cyrl; } if (goog.LOCALE == 'tg_Cyrl_TJ' || goog.LOCALE == 'tg-Cyrl-TJ') { @@ -8709,6 +11685,10 @@ if (goog.LOCALE == 'tn') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_tn; } +if (goog.LOCALE == 'tn_BW' || goog.LOCALE == 'tn-BW') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_tn_BW; +} + if (goog.LOCALE == 'tn_ZA' || goog.LOCALE == 'tn-ZA') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_tn; } @@ -8721,6 +11701,10 @@ if (goog.LOCALE == 'to_TO' || goog.LOCALE == 'to-TO') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_to; } +if (goog.LOCALE == 'tr_CY' || goog.LOCALE == 'tr-CY') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_tr_CY; +} + if (goog.LOCALE == 'ts') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ts; } @@ -8742,7 +11726,7 @@ if (goog.LOCALE == 'tzm') { } if (goog.LOCALE == 'tzm_Latn' || goog.LOCALE == 'tzm-Latn') { - goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_tzm; + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_tzm_Latn; } if (goog.LOCALE == 'tzm_Latn_MA' || goog.LOCALE == 'tzm-Latn-MA') { @@ -8766,7 +11750,7 @@ if (goog.LOCALE == 'uz_Arab_AF' || goog.LOCALE == 'uz-Arab-AF') { } if (goog.LOCALE == 'uz_Cyrl' || goog.LOCALE == 'uz-Cyrl') { - goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_uz; + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_uz_Cyrl; } if (goog.LOCALE == 'uz_Cyrl_UZ' || goog.LOCALE == 'uz-Cyrl-UZ') { @@ -8774,7 +11758,7 @@ if (goog.LOCALE == 'uz_Cyrl_UZ' || goog.LOCALE == 'uz-Cyrl-UZ') { } if (goog.LOCALE == 'uz_Latn' || goog.LOCALE == 'uz-Latn') { - goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_uz; + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_uz_Latn; } if (goog.LOCALE == 'uz_Latn_UZ' || goog.LOCALE == 'uz-Latn-UZ') { @@ -8786,7 +11770,7 @@ if (goog.LOCALE == 'vai') { } if (goog.LOCALE == 'vai_Latn' || goog.LOCALE == 'vai-Latn') { - goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_vai; + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_vai_Latn; } if (goog.LOCALE == 'vai_Latn_LR' || goog.LOCALE == 'vai-Latn-LR') { @@ -8794,7 +11778,7 @@ if (goog.LOCALE == 'vai_Latn_LR' || goog.LOCALE == 'vai-Latn-LR') { } if (goog.LOCALE == 'vai_Vaii' || goog.LOCALE == 'vai-Vaii') { - goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_vai; + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_vai_Vaii; } if (goog.LOCALE == 'vai_Vaii_LR' || goog.LOCALE == 'vai-Vaii-LR') { @@ -8809,6 +11793,10 @@ if (goog.LOCALE == 've_ZA' || goog.LOCALE == 've-ZA') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_ve; } +if (goog.LOCALE == 'vo') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_vo; +} + if (goog.LOCALE == 'vun') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_vun; } @@ -8865,6 +11853,10 @@ if (goog.LOCALE == 'yo_NG' || goog.LOCALE == 'yo-NG') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_yo; } +if (goog.LOCALE == 'zh_Hans' || goog.LOCALE == 'zh-Hans') { + goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_zh_Hans; +} + if (goog.LOCALE == 'zh_Hans_HK' || goog.LOCALE == 'zh-Hans-HK') { goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_zh_Hans_HK; } diff --git a/master/closure-library/closure/goog/i18n/ordinalrules.js b/edit/closure-library/closure/goog/i18n/ordinalrules.js similarity index 86% rename from master/closure-library/closure/goog/i18n/ordinalrules.js rename to edit/closure-library/closure/goog/i18n/ordinalrules.js index 5e0daed2b8..fb238d2616 100644 --- a/master/closure-library/closure/goog/i18n/ordinalrules.js +++ b/edit/closure-library/closure/goog/i18n/ordinalrules.js @@ -17,6 +17,7 @@ * * This file is autogenerated by script: * http://go/generate_pluralrules.py + * File generated from CLDR ver. 23 * * Before check in, this file could have been manually edited. This is to * incorporate changes before we could fix CLDR. All manual modification must be @@ -59,7 +60,7 @@ goog.i18n.ordinalRules.defaultSelect_ = function(n) { */ goog.i18n.ordinalRules.frSelect_ = function(n) { if (n == 1) { - return goog.i18n.ordinalRules.Keyword.ONE; + return goog.i18n.ordinalRules.Keyword.ONE; } return goog.i18n.ordinalRules.Keyword.OTHER; }; @@ -74,7 +75,7 @@ goog.i18n.ordinalRules.frSelect_ = function(n) { */ goog.i18n.ordinalRules.huSelect_ = function(n) { if (n == 1 || n == 5) { - return goog.i18n.ordinalRules.Keyword.ONE; + return goog.i18n.ordinalRules.Keyword.ONE; } return goog.i18n.ordinalRules.Keyword.OTHER; }; @@ -89,7 +90,7 @@ goog.i18n.ordinalRules.huSelect_ = function(n) { */ goog.i18n.ordinalRules.svSelect_ = function(n) { if ((n % 10 == 1 || n % 10 == 2) && n % 100 != 11 && n % 100 != 12) { - return goog.i18n.ordinalRules.Keyword.ONE; + return goog.i18n.ordinalRules.Keyword.ONE; } return goog.i18n.ordinalRules.Keyword.OTHER; }; @@ -104,13 +105,13 @@ goog.i18n.ordinalRules.svSelect_ = function(n) { */ goog.i18n.ordinalRules.enSelect_ = function(n) { if (n % 10 == 1 && n % 100 != 11) { - return goog.i18n.ordinalRules.Keyword.ONE; + return goog.i18n.ordinalRules.Keyword.ONE; } if (n % 10 == 2 && n % 100 != 12) { - return goog.i18n.ordinalRules.Keyword.TWO; + return goog.i18n.ordinalRules.Keyword.TWO; } if (n % 10 == 3 && n % 100 != 13) { - return goog.i18n.ordinalRules.Keyword.FEW; + return goog.i18n.ordinalRules.Keyword.FEW; } return goog.i18n.ordinalRules.Keyword.OTHER; }; @@ -125,7 +126,7 @@ goog.i18n.ordinalRules.enSelect_ = function(n) { */ goog.i18n.ordinalRules.itSelect_ = function(n) { if (n == 11 || n == 8 || n == 80 || n == 800) { - return goog.i18n.ordinalRules.Keyword.MANY; + return goog.i18n.ordinalRules.Keyword.MANY; } return goog.i18n.ordinalRules.Keyword.OTHER; }; @@ -140,13 +141,13 @@ goog.i18n.ordinalRules.itSelect_ = function(n) { */ goog.i18n.ordinalRules.caSelect_ = function(n) { if (n == 1 || n == 3) { - return goog.i18n.ordinalRules.Keyword.ONE; + return goog.i18n.ordinalRules.Keyword.ONE; } if (n == 2) { - return goog.i18n.ordinalRules.Keyword.TWO; + return goog.i18n.ordinalRules.Keyword.TWO; } if (n == 4) { - return goog.i18n.ordinalRules.Keyword.FEW; + return goog.i18n.ordinalRules.Keyword.FEW; } return goog.i18n.ordinalRules.Keyword.OTHER; }; @@ -161,13 +162,13 @@ goog.i18n.ordinalRules.caSelect_ = function(n) { */ goog.i18n.ordinalRules.mrSelect_ = function(n) { if (n == 1) { - return goog.i18n.ordinalRules.Keyword.ONE; + return goog.i18n.ordinalRules.Keyword.ONE; } if (n == 2 || n == 3) { - return goog.i18n.ordinalRules.Keyword.TWO; + return goog.i18n.ordinalRules.Keyword.TWO; } if (n == 4) { - return goog.i18n.ordinalRules.Keyword.FEW; + return goog.i18n.ordinalRules.Keyword.FEW; } return goog.i18n.ordinalRules.Keyword.OTHER; }; @@ -182,16 +183,16 @@ goog.i18n.ordinalRules.mrSelect_ = function(n) { */ goog.i18n.ordinalRules.guSelect_ = function(n) { if (n == 1) { - return goog.i18n.ordinalRules.Keyword.ONE; + return goog.i18n.ordinalRules.Keyword.ONE; } if (n == 2 || n == 3) { - return goog.i18n.ordinalRules.Keyword.TWO; + return goog.i18n.ordinalRules.Keyword.TWO; } if (n == 4) { - return goog.i18n.ordinalRules.Keyword.FEW; + return goog.i18n.ordinalRules.Keyword.FEW; } if (n == 6) { - return goog.i18n.ordinalRules.Keyword.MANY; + return goog.i18n.ordinalRules.Keyword.MANY; } return goog.i18n.ordinalRules.Keyword.OTHER; }; @@ -206,16 +207,16 @@ goog.i18n.ordinalRules.guSelect_ = function(n) { */ goog.i18n.ordinalRules.bnSelect_ = function(n) { if (n == 1 || n == 5 || n == 7 || n == 8 || n == 9 || n == 10) { - return goog.i18n.ordinalRules.Keyword.ONE; + return goog.i18n.ordinalRules.Keyword.ONE; } if (n == 2 || n == 3) { - return goog.i18n.ordinalRules.Keyword.TWO; + return goog.i18n.ordinalRules.Keyword.TWO; } if (n == 4) { - return goog.i18n.ordinalRules.Keyword.FEW; + return goog.i18n.ordinalRules.Keyword.FEW; } if (n == 6) { - return goog.i18n.ordinalRules.Keyword.MANY; + return goog.i18n.ordinalRules.Keyword.MANY; } return goog.i18n.ordinalRules.Keyword.OTHER; }; @@ -230,13 +231,13 @@ goog.i18n.ordinalRules.bnSelect_ = function(n) { */ goog.i18n.ordinalRules.zuSelect_ = function(n) { if (n == 1) { - return goog.i18n.ordinalRules.Keyword.ONE; + return goog.i18n.ordinalRules.Keyword.ONE; } if (n == (n | 0) && n >= 2 && n <= 9) { - return goog.i18n.ordinalRules.Keyword.FEW; + return goog.i18n.ordinalRules.Keyword.FEW; } if (n == (n | 0) && (n >= 10 && n <= 19 || n >= 100 && n <= 199 || n >= 1000 && n <= 1999)) { - return goog.i18n.ordinalRules.Keyword.MANY; + return goog.i18n.ordinalRules.Keyword.MANY; } return goog.i18n.ordinalRules.Keyword.OTHER; }; @@ -246,6 +247,10 @@ goog.i18n.ordinalRules.zuSelect_ = function(n) { * Selected ordinal rules by locale. */ goog.i18n.ordinalRules.select = goog.i18n.ordinalRules.enSelect_; +if (goog.LOCALE == 'af') { + goog.i18n.ordinalRules.select = goog.i18n.ordinalRules.defaultSelect_; +} + if (goog.LOCALE == 'am') { goog.i18n.ordinalRules.select = goog.i18n.ordinalRules.defaultSelect_; } @@ -270,10 +275,18 @@ if (goog.LOCALE == 'ca') { goog.i18n.ordinalRules.select = goog.i18n.ordinalRules.caSelect_; } +if (goog.LOCALE == 'chr') { + goog.i18n.ordinalRules.select = goog.i18n.ordinalRules.defaultSelect_; +} + if (goog.LOCALE == 'cs') { goog.i18n.ordinalRules.select = goog.i18n.ordinalRules.defaultSelect_; } +if (goog.LOCALE == 'cy') { + goog.i18n.ordinalRules.select = goog.i18n.ordinalRules.defaultSelect_; +} + if (goog.LOCALE == 'da') { goog.i18n.ordinalRules.select = goog.i18n.ordinalRules.defaultSelect_; } @@ -330,6 +343,14 @@ if (goog.LOCALE == 'es') { goog.i18n.ordinalRules.select = goog.i18n.ordinalRules.defaultSelect_; } +if (goog.LOCALE == 'es_419' || goog.LOCALE == 'es-419') { + goog.i18n.ordinalRules.select = goog.i18n.ordinalRules.defaultSelect_; +} + +if (goog.LOCALE == 'es_ES' || goog.LOCALE == 'es-ES') { + goog.i18n.ordinalRules.select = goog.i18n.ordinalRules.defaultSelect_; +} + if (goog.LOCALE == 'et') { goog.i18n.ordinalRules.select = goog.i18n.ordinalRules.defaultSelect_; } @@ -370,6 +391,10 @@ if (goog.LOCALE == 'gu') { goog.i18n.ordinalRules.select = goog.i18n.ordinalRules.guSelect_; } +if (goog.LOCALE == 'haw') { + goog.i18n.ordinalRules.select = goog.i18n.ordinalRules.defaultSelect_; +} + if (goog.LOCALE == 'he') { goog.i18n.ordinalRules.select = goog.i18n.ordinalRules.defaultSelect_; } @@ -446,6 +471,10 @@ if (goog.LOCALE == 'mt') { goog.i18n.ordinalRules.select = goog.i18n.ordinalRules.defaultSelect_; } +if (goog.LOCALE == 'nb') { + goog.i18n.ordinalRules.select = goog.i18n.ordinalRules.defaultSelect_; +} + if (goog.LOCALE == 'nl') { goog.i18n.ordinalRules.select = goog.i18n.ordinalRules.defaultSelect_; } @@ -554,3 +583,7 @@ if (goog.LOCALE == 'zh_TW' || goog.LOCALE == 'zh-TW') { goog.i18n.ordinalRules.select = goog.i18n.ordinalRules.defaultSelect_; } +if (goog.LOCALE == 'zu') { + goog.i18n.ordinalRules.select = goog.i18n.ordinalRules.zuSelect_; +} + diff --git a/master/closure-library/closure/goog/i18n/pluralrules.js b/edit/closure-library/closure/goog/i18n/pluralrules.js similarity index 81% rename from master/closure-library/closure/goog/i18n/pluralrules.js rename to edit/closure-library/closure/goog/i18n/pluralrules.js index 9d115cd829..eccaa866f4 100644 --- a/master/closure-library/closure/goog/i18n/pluralrules.js +++ b/edit/closure-library/closure/goog/i18n/pluralrules.js @@ -17,6 +17,7 @@ * * This file is autogenerated by script: * http://go/generate_pluralrules.py + * File generated from CLDR ver. 23 * * Before check in, this file could have been manually edited. This is to * incorporate changes before we could fix CLDR. All manual modification must be @@ -59,19 +60,40 @@ goog.i18n.pluralRules.defaultSelect_ = function(n) { */ goog.i18n.pluralRules.arSelect_ = function(n) { if (n == 0) { - return goog.i18n.pluralRules.Keyword.ZERO; + return goog.i18n.pluralRules.Keyword.ZERO; } if (n == 1) { - return goog.i18n.pluralRules.Keyword.ONE; + return goog.i18n.pluralRules.Keyword.ONE; } if (n == 2) { - return goog.i18n.pluralRules.Keyword.TWO; + return goog.i18n.pluralRules.Keyword.TWO; } if (n == (n | 0) && n % 100 >= 3 && n % 100 <= 10) { - return goog.i18n.pluralRules.Keyword.FEW; + return goog.i18n.pluralRules.Keyword.FEW; } if (n == (n | 0) && n % 100 >= 11 && n % 100 <= 99) { - return goog.i18n.pluralRules.Keyword.MANY; + return goog.i18n.pluralRules.Keyword.MANY; + } + return goog.i18n.pluralRules.Keyword.OTHER; +}; + + +/** + * Plural select rules for he locale + * + * @param {number} n The count of items. + * @return {goog.i18n.pluralRules.Keyword} Locale-specific plural value. + * @private + */ +goog.i18n.pluralRules.heSelect_ = function(n) { + if (n == 1) { + return goog.i18n.pluralRules.Keyword.ONE; + } + if (n == 2) { + return goog.i18n.pluralRules.Keyword.TWO; + } + if (n != 0 && n % 10 == 0) { + return goog.i18n.pluralRules.Keyword.MANY; } return goog.i18n.pluralRules.Keyword.OTHER; }; @@ -86,7 +108,7 @@ goog.i18n.pluralRules.arSelect_ = function(n) { */ goog.i18n.pluralRules.enSelect_ = function(n) { if (n == 1) { - return goog.i18n.pluralRules.Keyword.ONE; + return goog.i18n.pluralRules.Keyword.ONE; } return goog.i18n.pluralRules.Keyword.OTHER; }; @@ -101,7 +123,7 @@ goog.i18n.pluralRules.enSelect_ = function(n) { */ goog.i18n.pluralRules.filSelect_ = function(n) { if (n == 0 || n == 1) { - return goog.i18n.pluralRules.Keyword.ONE; + return goog.i18n.pluralRules.Keyword.ONE; } return goog.i18n.pluralRules.Keyword.OTHER; }; @@ -116,7 +138,7 @@ goog.i18n.pluralRules.filSelect_ = function(n) { */ goog.i18n.pluralRules.frSelect_ = function(n) { if (n >= 0 && n <= 2 && n != 2) { - return goog.i18n.pluralRules.Keyword.ONE; + return goog.i18n.pluralRules.Keyword.ONE; } return goog.i18n.pluralRules.Keyword.OTHER; }; @@ -131,10 +153,10 @@ goog.i18n.pluralRules.frSelect_ = function(n) { */ goog.i18n.pluralRules.lvSelect_ = function(n) { if (n == 0) { - return goog.i18n.pluralRules.Keyword.ZERO; + return goog.i18n.pluralRules.Keyword.ZERO; } if (n % 10 == 1 && n % 100 != 11) { - return goog.i18n.pluralRules.Keyword.ONE; + return goog.i18n.pluralRules.Keyword.ONE; } return goog.i18n.pluralRules.Keyword.OTHER; }; @@ -149,10 +171,10 @@ goog.i18n.pluralRules.lvSelect_ = function(n) { */ goog.i18n.pluralRules.iuSelect_ = function(n) { if (n == 1) { - return goog.i18n.pluralRules.Keyword.ONE; + return goog.i18n.pluralRules.Keyword.ONE; } if (n == 2) { - return goog.i18n.pluralRules.Keyword.TWO; + return goog.i18n.pluralRules.Keyword.TWO; } return goog.i18n.pluralRules.Keyword.OTHER; }; @@ -167,16 +189,16 @@ goog.i18n.pluralRules.iuSelect_ = function(n) { */ goog.i18n.pluralRules.gaSelect_ = function(n) { if (n == 1) { - return goog.i18n.pluralRules.Keyword.ONE; + return goog.i18n.pluralRules.Keyword.ONE; } if (n == 2) { - return goog.i18n.pluralRules.Keyword.TWO; + return goog.i18n.pluralRules.Keyword.TWO; } if (n == (n | 0) && n >= 3 && n <= 6) { - return goog.i18n.pluralRules.Keyword.FEW; + return goog.i18n.pluralRules.Keyword.FEW; } if (n == (n | 0) && n >= 7 && n <= 10) { - return goog.i18n.pluralRules.Keyword.MANY; + return goog.i18n.pluralRules.Keyword.MANY; } return goog.i18n.pluralRules.Keyword.OTHER; }; @@ -191,10 +213,10 @@ goog.i18n.pluralRules.gaSelect_ = function(n) { */ goog.i18n.pluralRules.roSelect_ = function(n) { if (n == 1) { - return goog.i18n.pluralRules.Keyword.ONE; + return goog.i18n.pluralRules.Keyword.ONE; } if (n == 0 || n != 1 && n == (n | 0) && n % 100 >= 1 && n % 100 <= 19) { - return goog.i18n.pluralRules.Keyword.FEW; + return goog.i18n.pluralRules.Keyword.FEW; } return goog.i18n.pluralRules.Keyword.OTHER; }; @@ -209,10 +231,10 @@ goog.i18n.pluralRules.roSelect_ = function(n) { */ goog.i18n.pluralRules.ltSelect_ = function(n) { if (n % 10 == 1 && (n % 100 < 11 || n % 100 > 19)) { - return goog.i18n.pluralRules.Keyword.ONE; + return goog.i18n.pluralRules.Keyword.ONE; } if (n == (n | 0) && n % 10 >= 2 && n % 10 <= 9 && (n % 100 < 11 || n % 100 > 19)) { - return goog.i18n.pluralRules.Keyword.FEW; + return goog.i18n.pluralRules.Keyword.FEW; } return goog.i18n.pluralRules.Keyword.OTHER; }; @@ -227,13 +249,13 @@ goog.i18n.pluralRules.ltSelect_ = function(n) { */ goog.i18n.pluralRules.beSelect_ = function(n) { if (n % 10 == 1 && n % 100 != 11) { - return goog.i18n.pluralRules.Keyword.ONE; + return goog.i18n.pluralRules.Keyword.ONE; } if (n == (n | 0) && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) { - return goog.i18n.pluralRules.Keyword.FEW; + return goog.i18n.pluralRules.Keyword.FEW; } if (n % 10 == 0 || n == (n | 0) && n % 10 >= 5 && n % 10 <= 9 || n == (n | 0) && n % 100 >= 11 && n % 100 <= 14) { - return goog.i18n.pluralRules.Keyword.MANY; + return goog.i18n.pluralRules.Keyword.MANY; } return goog.i18n.pluralRules.Keyword.OTHER; }; @@ -248,10 +270,10 @@ goog.i18n.pluralRules.beSelect_ = function(n) { */ goog.i18n.pluralRules.csSelect_ = function(n) { if (n == 1) { - return goog.i18n.pluralRules.Keyword.ONE; + return goog.i18n.pluralRules.Keyword.ONE; } if (n == (n | 0) && n >= 2 && n <= 4) { - return goog.i18n.pluralRules.Keyword.FEW; + return goog.i18n.pluralRules.Keyword.FEW; } return goog.i18n.pluralRules.Keyword.OTHER; }; @@ -266,13 +288,13 @@ goog.i18n.pluralRules.csSelect_ = function(n) { */ goog.i18n.pluralRules.plSelect_ = function(n) { if (n == 1) { - return goog.i18n.pluralRules.Keyword.ONE; + return goog.i18n.pluralRules.Keyword.ONE; } if (n == (n | 0) && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) { - return goog.i18n.pluralRules.Keyword.FEW; + return goog.i18n.pluralRules.Keyword.FEW; } if (n != 1 && (n % 10 == 0 || n % 10 == 1) || n == (n | 0) && n % 10 >= 5 && n % 10 <= 9 || n == (n | 0) && n % 100 >= 12 && n % 100 <= 14) { - return goog.i18n.pluralRules.Keyword.MANY; + return goog.i18n.pluralRules.Keyword.MANY; } return goog.i18n.pluralRules.Keyword.OTHER; }; @@ -287,13 +309,13 @@ goog.i18n.pluralRules.plSelect_ = function(n) { */ goog.i18n.pluralRules.slSelect_ = function(n) { if (n % 100 == 1) { - return goog.i18n.pluralRules.Keyword.ONE; + return goog.i18n.pluralRules.Keyword.ONE; } if (n % 100 == 2) { - return goog.i18n.pluralRules.Keyword.TWO; + return goog.i18n.pluralRules.Keyword.TWO; } if (n % 100 == 3 || n % 100 == 4) { - return goog.i18n.pluralRules.Keyword.FEW; + return goog.i18n.pluralRules.Keyword.FEW; } return goog.i18n.pluralRules.Keyword.OTHER; }; @@ -308,13 +330,13 @@ goog.i18n.pluralRules.slSelect_ = function(n) { */ goog.i18n.pluralRules.mtSelect_ = function(n) { if (n == 1) { - return goog.i18n.pluralRules.Keyword.ONE; + return goog.i18n.pluralRules.Keyword.ONE; } if (n == 0 || n == (n | 0) && n % 100 >= 2 && n % 100 <= 10) { - return goog.i18n.pluralRules.Keyword.FEW; + return goog.i18n.pluralRules.Keyword.FEW; } if (n == (n | 0) && n % 100 >= 11 && n % 100 <= 19) { - return goog.i18n.pluralRules.Keyword.MANY; + return goog.i18n.pluralRules.Keyword.MANY; } return goog.i18n.pluralRules.Keyword.OTHER; }; @@ -329,7 +351,7 @@ goog.i18n.pluralRules.mtSelect_ = function(n) { */ goog.i18n.pluralRules.mkSelect_ = function(n) { if (n % 10 == 1 && n != 11) { - return goog.i18n.pluralRules.Keyword.ONE; + return goog.i18n.pluralRules.Keyword.ONE; } return goog.i18n.pluralRules.Keyword.OTHER; }; @@ -344,19 +366,19 @@ goog.i18n.pluralRules.mkSelect_ = function(n) { */ goog.i18n.pluralRules.cySelect_ = function(n) { if (n == 0) { - return goog.i18n.pluralRules.Keyword.ZERO; + return goog.i18n.pluralRules.Keyword.ZERO; } if (n == 1) { - return goog.i18n.pluralRules.Keyword.ONE; + return goog.i18n.pluralRules.Keyword.ONE; } if (n == 2) { - return goog.i18n.pluralRules.Keyword.TWO; + return goog.i18n.pluralRules.Keyword.TWO; } if (n == 3) { - return goog.i18n.pluralRules.Keyword.FEW; + return goog.i18n.pluralRules.Keyword.FEW; } if (n == 6) { - return goog.i18n.pluralRules.Keyword.MANY; + return goog.i18n.pluralRules.Keyword.MANY; } return goog.i18n.pluralRules.Keyword.OTHER; }; @@ -371,10 +393,10 @@ goog.i18n.pluralRules.cySelect_ = function(n) { */ goog.i18n.pluralRules.lagSelect_ = function(n) { if (n == 0) { - return goog.i18n.pluralRules.Keyword.ZERO; + return goog.i18n.pluralRules.Keyword.ZERO; } if (n >= 0 && n <= 2 && n != 0 && n != 2) { - return goog.i18n.pluralRules.Keyword.ONE; + return goog.i18n.pluralRules.Keyword.ONE; } return goog.i18n.pluralRules.Keyword.OTHER; }; @@ -389,10 +411,10 @@ goog.i18n.pluralRules.lagSelect_ = function(n) { */ goog.i18n.pluralRules.shiSelect_ = function(n) { if (n >= 0 && n <= 1) { - return goog.i18n.pluralRules.Keyword.ONE; + return goog.i18n.pluralRules.Keyword.ONE; } if (n == (n | 0) && n >= 2 && n <= 10) { - return goog.i18n.pluralRules.Keyword.FEW; + return goog.i18n.pluralRules.Keyword.FEW; } return goog.i18n.pluralRules.Keyword.OTHER; }; @@ -407,16 +429,16 @@ goog.i18n.pluralRules.shiSelect_ = function(n) { */ goog.i18n.pluralRules.brSelect_ = function(n) { if (n % 10 == 1 && n % 100 != 11 && n % 100 != 71 && n % 100 != 91) { - return goog.i18n.pluralRules.Keyword.ONE; + return goog.i18n.pluralRules.Keyword.ONE; } if (n % 10 == 2 && n % 100 != 12 && n % 100 != 72 && n % 100 != 92) { - return goog.i18n.pluralRules.Keyword.TWO; + return goog.i18n.pluralRules.Keyword.TWO; } if ((n % 10 == 3 || n % 10 == 4 || n % 10 == 9) && ((n % 100 < 10 || n % 100 > 19) && (n % 100 < 70 || n % 100 > 79) && (n % 100 < 90 || n % 100 > 99))) { - return goog.i18n.pluralRules.Keyword.FEW; + return goog.i18n.pluralRules.Keyword.FEW; } - if (n % 1000000 == 0 && n != 0) { - return goog.i18n.pluralRules.Keyword.MANY; + if (n != 0 && n % 1000000 == 0) { + return goog.i18n.pluralRules.Keyword.MANY; } return goog.i18n.pluralRules.Keyword.OTHER; }; @@ -431,10 +453,10 @@ goog.i18n.pluralRules.brSelect_ = function(n) { */ goog.i18n.pluralRules.kshSelect_ = function(n) { if (n == 0) { - return goog.i18n.pluralRules.Keyword.ZERO; + return goog.i18n.pluralRules.Keyword.ZERO; } if (n == 1) { - return goog.i18n.pluralRules.Keyword.ONE; + return goog.i18n.pluralRules.Keyword.ONE; } return goog.i18n.pluralRules.Keyword.OTHER; }; @@ -449,7 +471,7 @@ goog.i18n.pluralRules.kshSelect_ = function(n) { */ goog.i18n.pluralRules.tzmSelect_ = function(n) { if (n == 0 || n == 1 || n == (n | 0) && n >= 11 && n <= 99) { - return goog.i18n.pluralRules.Keyword.ONE; + return goog.i18n.pluralRules.Keyword.ONE; } return goog.i18n.pluralRules.Keyword.OTHER; }; @@ -464,7 +486,7 @@ goog.i18n.pluralRules.tzmSelect_ = function(n) { */ goog.i18n.pluralRules.gvSelect_ = function(n) { if (n % 10 == 1 || n % 10 == 2 || n % 20 == 0) { - return goog.i18n.pluralRules.Keyword.ONE; + return goog.i18n.pluralRules.Keyword.ONE; } return goog.i18n.pluralRules.Keyword.OTHER; }; @@ -479,13 +501,13 @@ goog.i18n.pluralRules.gvSelect_ = function(n) { */ goog.i18n.pluralRules.gdSelect_ = function(n) { if (n == 1 || n == 11) { - return goog.i18n.pluralRules.Keyword.ONE; + return goog.i18n.pluralRules.Keyword.ONE; } if (n == 2 || n == 12) { - return goog.i18n.pluralRules.Keyword.TWO; + return goog.i18n.pluralRules.Keyword.TWO; } if (n == (n | 0) && (n >= 3 && n <= 10 || n >= 13 && n <= 19)) { - return goog.i18n.pluralRules.Keyword.FEW; + return goog.i18n.pluralRules.Keyword.FEW; } return goog.i18n.pluralRules.Keyword.OTHER; }; @@ -495,6 +517,10 @@ goog.i18n.pluralRules.gdSelect_ = function(n) { * Selected plural rules by locale. */ goog.i18n.pluralRules.select = goog.i18n.pluralRules.enSelect_; +if (goog.LOCALE == 'af') { + goog.i18n.pluralRules.select = goog.i18n.pluralRules.enSelect_; +} + if (goog.LOCALE == 'am') { goog.i18n.pluralRules.select = goog.i18n.pluralRules.filSelect_; } @@ -519,10 +545,18 @@ if (goog.LOCALE == 'ca') { goog.i18n.pluralRules.select = goog.i18n.pluralRules.enSelect_; } +if (goog.LOCALE == 'chr') { + goog.i18n.pluralRules.select = goog.i18n.pluralRules.enSelect_; +} + if (goog.LOCALE == 'cs') { goog.i18n.pluralRules.select = goog.i18n.pluralRules.csSelect_; } +if (goog.LOCALE == 'cy') { + goog.i18n.pluralRules.select = goog.i18n.pluralRules.cySelect_; +} + if (goog.LOCALE == 'da') { goog.i18n.pluralRules.select = goog.i18n.pluralRules.enSelect_; } @@ -579,6 +613,14 @@ if (goog.LOCALE == 'es') { goog.i18n.pluralRules.select = goog.i18n.pluralRules.enSelect_; } +if (goog.LOCALE == 'es_419' || goog.LOCALE == 'es-419') { + goog.i18n.pluralRules.select = goog.i18n.pluralRules.enSelect_; +} + +if (goog.LOCALE == 'es_ES' || goog.LOCALE == 'es-ES') { + goog.i18n.pluralRules.select = goog.i18n.pluralRules.enSelect_; +} + if (goog.LOCALE == 'et') { goog.i18n.pluralRules.select = goog.i18n.pluralRules.enSelect_; } @@ -619,10 +661,14 @@ if (goog.LOCALE == 'gu') { goog.i18n.pluralRules.select = goog.i18n.pluralRules.enSelect_; } -if (goog.LOCALE == 'he') { +if (goog.LOCALE == 'haw') { goog.i18n.pluralRules.select = goog.i18n.pluralRules.enSelect_; } +if (goog.LOCALE == 'he') { + goog.i18n.pluralRules.select = goog.i18n.pluralRules.heSelect_; +} + if (goog.LOCALE == 'hi') { goog.i18n.pluralRules.select = goog.i18n.pluralRules.filSelect_; } @@ -652,7 +698,7 @@ if (goog.LOCALE == 'it') { } if (goog.LOCALE == 'iw') { - goog.i18n.pluralRules.select = goog.i18n.pluralRules.defaultSelect_; + goog.i18n.pluralRules.select = goog.i18n.pluralRules.heSelect_; } if (goog.LOCALE == 'ja') { @@ -695,6 +741,10 @@ if (goog.LOCALE == 'mt') { goog.i18n.pluralRules.select = goog.i18n.pluralRules.mtSelect_; } +if (goog.LOCALE == 'nb') { + goog.i18n.pluralRules.select = goog.i18n.pluralRules.enSelect_; +} + if (goog.LOCALE == 'nl') { goog.i18n.pluralRules.select = goog.i18n.pluralRules.enSelect_; } @@ -803,3 +853,7 @@ if (goog.LOCALE == 'zh_TW' || goog.LOCALE == 'zh-TW') { goog.i18n.pluralRules.select = goog.i18n.pluralRules.defaultSelect_; } +if (goog.LOCALE == 'zu') { + goog.i18n.pluralRules.select = goog.i18n.pluralRules.enSelect_; +} + diff --git a/master/closure-library/closure/goog/i18n/timezone.js b/edit/closure-library/closure/goog/i18n/timezone.js similarity index 98% rename from master/closure-library/closure/goog/i18n/timezone.js rename to edit/closure-library/closure/goog/i18n/timezone.js index dc65711693..cb7e8a8193 100644 --- a/master/closure-library/closure/goog/i18n/timezone.js +++ b/edit/closure-library/closure/goog/i18n/timezone.js @@ -123,7 +123,7 @@ goog.i18n.TimeZone.NameType = { * January 1, 1970, and each adjustment is the adjustment to apply * for times after the DST transition, given as minutes EAST of UTC. * - * @return {goog.i18n.TimeZone} A goog.i18n.TimeZone object for the given + * @return {!goog.i18n.TimeZone} A goog.i18n.TimeZone object for the given * time zone data. */ goog.i18n.TimeZone.createTimeZone = function(timeZoneData) { @@ -142,7 +142,7 @@ goog.i18n.TimeZone.createTimeZone = function(timeZoneData) { /** * This factory method creates a time zone object with a constant offset. * @param {number} timeZoneOffsetInMinutes Offset in minutes WEST of UTC. - * @return {goog.i18n.TimeZone} A time zone object with the given constant + * @return {!goog.i18n.TimeZone} A time zone object with the given constant * offset. Note that the time zone ID of this object will use the POSIX * convention, which has a reversed sign ("Etc/GMT+8" means UTC-8 or PST). * @private @@ -223,7 +223,7 @@ goog.i18n.TimeZone.composeUTCString_ = function(offset) { /** * Convert the contents of time zone object to a timeZoneData object, suitable * for passing to goog.i18n.TimeZone.createTimeZone. - * @return {Object} A timeZoneData object (see the documentation for + * @return {!Object} A timeZoneData object (see the documentation for * goog.i18n.TimeZone.createTimeZone). */ goog.i18n.TimeZone.prototype.getTimeZoneData = function() { @@ -338,4 +338,3 @@ goog.i18n.TimeZone.prototype.getTimeZoneId = function() { goog.i18n.TimeZone.prototype.isDaylightTime = function(date) { return this.getDaylightAdjustment(date) > 0; }; - diff --git a/master/closure-library/closure/goog/i18n/uchar.js b/edit/closure-library/closure/goog/i18n/uchar.js similarity index 85% rename from master/closure-library/closure/goog/i18n/uchar.js rename to edit/closure-library/closure/goog/i18n/uchar.js index 4b1e6cb6c6..d6f52602aa 100644 --- a/master/closure-library/closure/goog/i18n/uchar.js +++ b/edit/closure-library/closure/goog/i18n/uchar.js @@ -28,6 +28,69 @@ goog.provide('goog.i18n.uChar'); goog.i18n.uChar.charData_ = null; +// Constants for handling Unicode supplementary characters (surrogate pairs). + + +/** + * The minimum value for Supplementary code points. + * @type {number} + * @private + */ +goog.i18n.uChar.SUPPLEMENTARY_CODE_POINT_MIN_VALUE_ = 0x10000; + + +/** + * The highest Unicode code point value (scalar value) according to the Unicode + * Standard. + * @type {number} + * @private + */ +goog.i18n.uChar.CODE_POINT_MAX_VALUE_ = 0x10FFFF; + + +/** + * Lead surrogate minimum value. + * @type {number} + * @private + */ +goog.i18n.uChar.LEAD_SURROGATE_MIN_VALUE_ = 0xD800; + + +/** + * Lead surrogate maximum value. + * @type {number} + * @private + */ +goog.i18n.uChar.LEAD_SURROGATE_MAX_VALUE_ = 0xDBFF; + + +/** + * Trail surrogate minimum value. + * @type {number} + * @private + */ +goog.i18n.uChar.TRAIL_SURROGATE_MIN_VALUE_ = 0xDC00; + + +/** + * Trail surrogate maximum value. + * @type {number} + * @private + */ +goog.i18n.uChar.TRAIL_SURROGATE_MAX_VALUE_ = 0xDFFF; + + +/** + * The number of least significant bits of a supplementary code point that in + * UTF-16 become the least significant bits of the trail surrogate. The rest of + * the in-use bits of the supplementary code point become the least significant + * bits of the lead surrogate. + * @type {number} + * @private + */ +goog.i18n.uChar.TRAIL_SURROGATE_BIT_COUNT_ = 10; + + /** * Gets the U+ notation string of a Unicode character. Ex: 'U+0041' for 'A'. * @param {string} ch The given character. @@ -60,35 +123,180 @@ goog.i18n.uChar.padString_ = function(str, length, ch) { /** * Gets Unicode value of the given character. - * @param {string} ch The given character. + * @param {string} ch The given character, which in the case of a supplementary + * character is actually a surrogate pair. The remainder of the string is + * ignored. * @return {number} The Unicode value of the character. */ goog.i18n.uChar.toCharCode = function(ch) { - var chCode = ch.charCodeAt(0); - if (chCode >= 0xD800 && chCode <= 0xDBFF) { - var chCode2 = ch.charCodeAt(1); - chCode = (chCode - 0xD800) * 0x400 + chCode2 - 0xDC00 + 0x10000; - } - - return chCode; + return goog.i18n.uChar.getCodePointAround(ch, 0); }; /** - * Gets a character from the given Unicode value. + * Gets a character from the given Unicode value. If the given code point is not + * a valid Unicode code point, null is returned. * @param {number} code The Unicode value of the character. - * @return {?string} The character from Unicode value. + * @return {?string} The character corresponding to the given Unicode value. */ goog.i18n.uChar.fromCharCode = function(code) { - if (!code || code > 0x10FFFF) { + if (!goog.isDefAndNotNull(code) || + !(code >= 0 && code <= goog.i18n.uChar.CODE_POINT_MAX_VALUE_)) { return null; - } else if (code >= 0x10000) { - var hi = Math.floor((code - 0x10000) / 0x400) + 0xD800; - var lo = (code - 0x10000) % 0x400 + 0xDC00; - return String.fromCharCode(hi) + String.fromCharCode(lo); - } else { - return String.fromCharCode(code); } + if (goog.i18n.uChar.isSupplementaryCodePoint(code)) { + // First, we split the code point into the trail surrogate part (the + // TRAIL_SURROGATE_BIT_COUNT_ least significant bits) and the lead surrogate + // part (the rest of the bits, shifted down; note that for now this includes + // the supplementary offset, also shifted down, to be subtracted off below). + var leadBits = code >> goog.i18n.uChar.TRAIL_SURROGATE_BIT_COUNT_; + var trailBits = code & + // A bit-mask to get the TRAIL_SURROGATE_BIT_COUNT_ (i.e. 10) least + // significant bits. 1 << 10 = 0x0400. 0x0400 - 1 = 0x03FF. + ((1 << goog.i18n.uChar.TRAIL_SURROGATE_BIT_COUNT_) - 1); + + // Now we calculate the code point of each surrogate by adding each offset + // to the corresponding base code point. + var leadCodePoint = leadBits + (goog.i18n.uChar.LEAD_SURROGATE_MIN_VALUE_ - + // Subtract off the supplementary offset, which had been shifted down + // with the rest of leadBits. We do this here instead of before the + // shift in order to save a separate subtraction step. + (goog.i18n.uChar.SUPPLEMENTARY_CODE_POINT_MIN_VALUE_ >> + goog.i18n.uChar.TRAIL_SURROGATE_BIT_COUNT_)); + var trailCodePoint = trailBits + goog.i18n.uChar.TRAIL_SURROGATE_MIN_VALUE_; + + // Convert the code points into a 2-character long string. + return String.fromCharCode(leadCodePoint) + + String.fromCharCode(trailCodePoint); + } + return String.fromCharCode(code); +}; + + +/** + * Returns the Unicode code point at the specified index. + * + * If the char value specified at the given index is in the leading-surrogate + * range, and the following index is less than the length of {@code string}, and + * the char value at the following index is in the trailing-surrogate range, + * then the supplementary code point corresponding to this surrogate pair is + * returned. + * + * If the char value specified at the given index is in the trailing-surrogate + * range, and the preceding index is not before the start of {@code string}, and + * the char value at the preceding index is in the leading-surrogate range, then + * the negated supplementary code point corresponding to this surrogate pair is + * returned. + * + * The negation allows the caller to differentiate between the case where the + * given index is at the leading surrogate and the one where it is at the + * trailing surrogate, and thus deduce where the next character starts and + * preceding character ends. + * + * Otherwise, the char value at the given index is returned. Thus, a leading + * surrogate is returned when it is not followed by a trailing surrogate, and a + * trailing surrogate is returned when it is not preceded by a leading + * surrogate. + * + * @param {!string} string The string. + * @param {number} index The index from which the code point is to be retrieved. + * @return {number} The code point at the given index. If the given index is + * that of the start (i.e. lead surrogate) of a surrogate pair, returns the code + * point encoded by the pair. If the given index is that of the end (i.e. trail + * surrogate) of a surrogate pair, returns the negated code pointed encoded by + * the pair. + */ +goog.i18n.uChar.getCodePointAround = function(string, index) { + var charCode = string.charCodeAt(index); + if (goog.i18n.uChar.isLeadSurrogateCodePoint(charCode) && + index + 1 < string.length) { + var trail = string.charCodeAt(index + 1); + if (goog.i18n.uChar.isTrailSurrogateCodePoint(trail)) { + // Part of a surrogate pair. + return /** @type {number} */ (goog.i18n.uChar. + buildSupplementaryCodePoint(charCode, trail)); + } + } else if (goog.i18n.uChar.isTrailSurrogateCodePoint(charCode) && + index > 0) { + var lead = string.charCodeAt(index - 1); + if (goog.i18n.uChar.isLeadSurrogateCodePoint(lead)) { + // Part of a surrogate pair. + return /** @type {number} */ (-goog.i18n.uChar. + buildSupplementaryCodePoint(lead, charCode)); + } + } + return charCode; +}; + + +/** + * Determines the length of the string needed to represent the specified + * Unicode code point. + * @param {number} codePoint + * @return {number} 2 if codePoint is a supplementary character, 1 otherwise. + */ +goog.i18n.uChar.charCount = function(codePoint) { + return goog.i18n.uChar.isSupplementaryCodePoint(codePoint) ? 2 : 1; +}; + + +/** + * Determines whether the specified Unicode code point is in the supplementary + * Unicode characters range. + * @param {number} codePoint + * @return {boolean} Whether then given code point is a supplementary character. + */ +goog.i18n.uChar.isSupplementaryCodePoint = function(codePoint) { + return codePoint >= goog.i18n.uChar.SUPPLEMENTARY_CODE_POINT_MIN_VALUE_ && + codePoint <= goog.i18n.uChar.CODE_POINT_MAX_VALUE_; +}; + + +/** + * Gets whether the given code point is a leading surrogate character. + * @param {number} codePoint + * @return {boolean} Whether the given code point is a leading surrogate + * character. + */ +goog.i18n.uChar.isLeadSurrogateCodePoint = function(codePoint) { + return codePoint >= goog.i18n.uChar.LEAD_SURROGATE_MIN_VALUE_ && + codePoint <= goog.i18n.uChar.LEAD_SURROGATE_MAX_VALUE_; +}; + + +/** + * Gets whether the given code point is a trailing surrogate character. + * @param {number} codePoint + * @return {boolean} Whether the given code point is a trailing surrogate + * character. + */ +goog.i18n.uChar.isTrailSurrogateCodePoint = function(codePoint) { + return codePoint >= goog.i18n.uChar.TRAIL_SURROGATE_MIN_VALUE_ && + codePoint <= goog.i18n.uChar.TRAIL_SURROGATE_MAX_VALUE_; +}; + + +/** + * Composes a supplementary Unicode code point from the given UTF-16 surrogate + * pair. If leadSurrogate isn't a leading surrogate code point or trailSurrogate + * isn't a trailing surrogate code point, null is returned. + * @param {number} lead The leading surrogate code point. + * @param {number} trail The trailing surrogate code point. + * @return {?number} The supplementary Unicode code point obtained by decoding + * the given UTF-16 surrogate pair. + */ +goog.i18n.uChar.buildSupplementaryCodePoint = function(lead, trail) { + if (goog.i18n.uChar.isLeadSurrogateCodePoint(lead) && + goog.i18n.uChar.isTrailSurrogateCodePoint(trail)) { + var shiftedLeadOffset = (lead << + goog.i18n.uChar.TRAIL_SURROGATE_BIT_COUNT_) - + (goog.i18n.uChar.LEAD_SURROGATE_MIN_VALUE_ << + goog.i18n.uChar.TRAIL_SURROGATE_BIT_COUNT_); + var trailOffset = trail - goog.i18n.uChar.TRAIL_SURROGATE_MIN_VALUE_ + + goog.i18n.uChar.SUPPLEMENTARY_CODE_POINT_MIN_VALUE_; + return shiftedLeadOffset + trailOffset; + } + return null; }; @@ -111,7 +319,7 @@ goog.i18n.uChar.toName = function(ch) { } else if (chCodeStr in names) { return names[chCode]; } else if (0xFE00 <= chCode && chCode <= 0xFE0F || - 0xE0100 <= chCode && chCode <= 0xE01EF) { + 0xE0100 <= chCode && chCode <= 0xE01EF) { var seqnum; if (0xFE00 <= chCode && chCode <= 0xFE0F) { // Variation selectors from 1 to 16. diff --git a/master/closure-library/closure/goog/i18n/uchar/localnamefetcher.js b/edit/closure-library/closure/goog/i18n/uchar/localnamefetcher.js similarity index 93% rename from master/closure-library/closure/goog/i18n/uchar/localnamefetcher.js rename to edit/closure-library/closure/goog/i18n/uchar/localnamefetcher.js index b0cacb7cd0..c3f210eb71 100644 --- a/master/closure-library/closure/goog/i18n/uchar/localnamefetcher.js +++ b/edit/closure-library/closure/goog/i18n/uchar/localnamefetcher.js @@ -21,9 +21,9 @@ goog.provide('goog.i18n.uChar.LocalNameFetcher'); -goog.require('goog.debug.Logger'); goog.require('goog.i18n.uChar'); goog.require('goog.i18n.uChar.NameFetcher'); +goog.require('goog.log'); @@ -42,11 +42,11 @@ goog.i18n.uChar.LocalNameFetcher = function() { /** * A reference to the LocalNameFetcher logger. * - * @type {!goog.debug.Logger} + * @type {goog.log.Logger} * @private */ goog.i18n.uChar.LocalNameFetcher.logger_ = - goog.debug.Logger.getLogger('goog.i18n.uChar.LocalNameFetcher'); + goog.log.getLogger('goog.i18n.uChar.LocalNameFetcher'); /** @override */ diff --git a/master/closure-library/closure/goog/i18n/uchar/namefetcher.js b/edit/closure-library/closure/goog/i18n/uchar/namefetcher.js similarity index 100% rename from master/closure-library/closure/goog/i18n/uchar/namefetcher.js rename to edit/closure-library/closure/goog/i18n/uchar/namefetcher.js diff --git a/master/closure-library/closure/goog/i18n/uchar/remotenamefetcher.js b/edit/closure-library/closure/goog/i18n/uchar/remotenamefetcher.js similarity index 95% rename from master/closure-library/closure/goog/i18n/uchar/remotenamefetcher.js rename to edit/closure-library/closure/goog/i18n/uchar/remotenamefetcher.js index 3524e2837f..d7b74a05ce 100644 --- a/master/closure-library/closure/goog/i18n/uchar/remotenamefetcher.js +++ b/edit/closure-library/closure/goog/i18n/uchar/remotenamefetcher.js @@ -34,9 +34,9 @@ goog.provide('goog.i18n.uChar.RemoteNameFetcher'); goog.require('goog.Disposable'); goog.require('goog.Uri'); -goog.require('goog.debug.Logger'); goog.require('goog.i18n.uChar'); goog.require('goog.i18n.uChar.NameFetcher'); +goog.require('goog.log'); goog.require('goog.net.XhrIo'); goog.require('goog.structs.Map'); @@ -92,29 +92,29 @@ goog.inherits(goog.i18n.uChar.RemoteNameFetcher, goog.Disposable); /** * Key to the listener on XHR for prefetch(). Used to clear previous listeners. * - * @type {?number} + * @type {goog.events.Key} * @private */ -goog.i18n.uChar.RemoteNameFetcher.prototype.prefetchLastListenerKey_ = 0; +goog.i18n.uChar.RemoteNameFetcher.prototype.prefetchLastListenerKey_; /** * Key to the listener on XHR for getName(). Used to clear previous listeners. * - * @type {?number} + * @type {goog.events.Key} * @private */ -goog.i18n.uChar.RemoteNameFetcher.prototype.getNameLastListenerKey_ = 0; +goog.i18n.uChar.RemoteNameFetcher.prototype.getNameLastListenerKey_; /** * A reference to the RemoteNameFetcher logger. * - * @type {!goog.debug.Logger} + * @type {goog.log.Logger} * @private */ goog.i18n.uChar.RemoteNameFetcher.logger_ = - goog.debug.Logger.getLogger('goog.i18n.uChar.RemoteNameFetcher'); + goog.log.getLogger('goog.i18n.uChar.RemoteNameFetcher'); @@ -135,7 +135,7 @@ goog.i18n.uChar.RemoteNameFetcher.prototype.prefetch = function(characters) { info('Aborted previous prefetch() call for new incoming request'); this.prefetchXhrIo_.abort(); } - if (this.prefetchLastListenerKey_ != 0) { + if (this.prefetchLastListenerKey_) { goog.events.unlistenByKey(this.prefetchLastListenerKey_); } @@ -176,7 +176,7 @@ goog.i18n.uChar.RemoteNameFetcher.prototype.getName = function(character, info('Aborted previous getName() call for new incoming request'); this.getNameXhrIo_.abort(); } - if (this.getNameLastListenerKey_ != 0) { + if (this.getNameLastListenerKey_) { goog.events.unlistenByKey(this.getNameLastListenerKey_); } @@ -217,7 +217,7 @@ goog.i18n.uChar.RemoteNameFetcher.prototype.getNameCallback_ = function( */ goog.i18n.uChar.RemoteNameFetcher.prototype.processResponse_ = function(xhrIo) { if (!xhrIo.isSuccess()) { - goog.i18n.uChar.RemoteNameFetcher.logger_.severe( + goog.log.error(goog.i18n.uChar.RemoteNameFetcher.logger_, 'Problem with data source: ' + xhrIo.getLastError()); return; } @@ -268,7 +268,7 @@ goog.i18n.uChar.RemoteNameFetcher.prototype.fetch_ = function(requestType, var url = new goog.Uri(this.dataSourceUri_); url.setParameterValue(requestType, requestInput); url.setParameterValue('p', 'name'); - goog.i18n.uChar.RemoteNameFetcher.logger_.info('Request: ' + + goog.log.info(goog.i18n.uChar.RemoteNameFetcher.logger_, 'Request: ' + url.toString()); xhrIo.send(url); }; diff --git a/master/closure-library/closure/goog/iter/iter.js b/edit/closure-library/closure/goog/iter/iter.js similarity index 90% rename from master/closure-library/closure/goog/iter/iter.js rename to edit/closure-library/closure/goog/iter/iter.js index f270463287..f9a0dccdd2 100644 --- a/master/closure-library/closure/goog/iter/iter.js +++ b/edit/closure-library/closure/goog/iter/iter.js @@ -138,19 +138,23 @@ goog.iter.toIterator = function(iterable) { * @param {goog.iter.Iterable} iterable The iterator to iterate * over. If the iterable is an object {@code toIterator} will be called on * it. - * @param {Function} f The function to call for every element. This function +* @param {function(this:T,?,?,?):?} f The function to call for every + * element. This function * takes 3 arguments (the element, undefined, and the iterator) and the * return value is irrelevant. The reason for passing undefined as the * second argument is so that the same function can be used in * {@see goog.array#forEach} as well as others. - * @param {Object=} opt_obj The object to be used as the value of 'this' within + * @param {T=} opt_obj The object to be used as the value of 'this' within * {@code f}. + * @template T */ goog.iter.forEach = function(iterable, f, opt_obj) { if (goog.isArrayLike(iterable)) { /** @preserveTry */ try { - goog.array.forEach((/** @type {goog.array.ArrayLike} */ iterable), f, + // NOTES: this passes the index number to the second parameter + // of the callback contrary to the documentation above. + goog.array.forEach(/** @type {goog.array.ArrayLike} */(iterable), f, opt_obj); } catch (ex) { if (ex !== goog.iter.StopIteration) { @@ -178,15 +182,17 @@ goog.iter.forEach = function(iterable, f, opt_obj) { * returns true adds the element to a new iterator. * * @param {goog.iter.Iterable} iterable The iterator to iterate over. - * @param {Function} f The function to call for every element. This function + * @param {function(this:T,?,undefined,?):boolean} f The function to call for + * every element. This function * takes 3 arguments (the element, undefined, and the iterator) and should * return a boolean. If the return value is true the element will be * included in the returned iteror. If it is false the element is not * included. - * @param {Object=} opt_obj The object to be used as the value of 'this' within + * @param {T=} opt_obj The object to be used as the value of 'this' within * {@code f}. * @return {!goog.iter.Iterator} A new iterator in which only elements that * passed the test are present. + * @template T */ goog.iter.filter = function(iterable, f, opt_obj) { var iterator = goog.iter.toIterator(iterable); @@ -262,13 +268,15 @@ goog.iter.join = function(iterable, deliminator) { * with that value. * * @param {goog.iter.Iterable} iterable The iterator to iterate over. - * @param {Function} f The function to call for every element. This function + * @param {function(this:T,?,undefined,?):?} f The function to call for every + * element. This function * takes 3 arguments (the element, undefined, and the iterator) and should * return a new value. - * @param {Object=} opt_obj The object to be used as the value of 'this' within + * @param {T=} opt_obj The object to be used as the value of 'this' within * {@code f}. * @return {!goog.iter.Iterator} A new iterator that returns the results of * applying the function to each element in the original iterator. + * @template T */ goog.iter.map = function(iterable, f, opt_obj) { var iterator = goog.iter.toIterator(iterable); @@ -288,15 +296,16 @@ goog.iter.map = function(iterable, f, opt_obj) { * result. * * @param {goog.iter.Iterable} iterable The iterator to iterate over. - * @param {Function} f The function to call for every element. This function - * takes 2 arguments (the function's previous result or the initial value, - * and the value of the current element). + * @param {function(this:T,V,?):V} f The function to call for every + * element. This function takes 2 arguments (the function's previous result + * or the initial value, and the value of the current element). * function(previousValue, currentElement) : newValue. - * @param {*} val The initial value to pass into the function on the first call. - * @param {Object=} opt_obj The object to be used as the value of 'this' + * @param {V} val The initial value to pass into the function on the first call. + * @param {T=} opt_obj The object to be used as the value of 'this' * within f. - * @return {*} Result of evaluating f repeatedly across the values of + * @return {V} Result of evaluating f repeatedly across the values of * the iterator. + * @template T,V */ goog.iter.reduce = function(iterable, f, val, opt_obj) { var rval = val; @@ -313,12 +322,14 @@ goog.iter.reduce = function(iterable, f, val, opt_obj) { * return false this will return false. * * @param {goog.iter.Iterable} iterable The iterator object. - * @param {Function} f The function to call for every value. This function + * @param {function(this:T,?,undefined,?):boolean} f The function to call for + * every value. This function * takes 3 arguments (the value, undefined, and the iterator) and should * return a boolean. - * @param {Object=} opt_obj The object to be used as the value of 'this' within + * @param {T=} opt_obj The object to be used as the value of 'this' within * {@code f}. * @return {boolean} true if any value passes the test. + * @template T */ goog.iter.some = function(iterable, f, opt_obj) { iterable = goog.iter.toIterator(iterable); @@ -344,12 +355,14 @@ goog.iter.some = function(iterable, f, opt_obj) { * return true this will return true. * * @param {goog.iter.Iterable} iterable The iterator object. - * @param {Function} f The function to call for every value. This function + * @param {function(this:T,?,undefined,?):boolean} f The function to call for + * every value. This function * takes 3 arguments (the value, undefined, and the iterator) and should * return a boolean. - * @param {Object=} opt_obj The object to be used as the value of 'this' within + * @param {T=} opt_obj The object to be used as the value of 'this' within * {@code f}. * @return {boolean} true if every value passes the test. + * @template T */ goog.iter.every = function(iterable, f, opt_obj) { iterable = goog.iter.toIterator(iterable); @@ -413,13 +426,15 @@ goog.iter.chain = function(var_args) { * Builds a new iterator that iterates over the original, but skips elements as * long as a supplied function returns true. * @param {goog.iter.Iterable} iterable The iterator object. - * @param {Function} f The function to call for every value. This function + * @param {function(this:T,?,undefined,?):boolean} f The function to call for + * every value. This function * takes 3 arguments (the value, undefined, and the iterator) and should * return a boolean. - * @param {Object=} opt_obj The object to be used as the value of 'this' within + * @param {T=} opt_obj The object to be used as the value of 'this' within * {@code f}. * @return {!goog.iter.Iterator} A new iterator that drops elements from the * original iterator as long as {@code f} is true. + * @template T */ goog.iter.dropWhile = function(iterable, f, opt_obj) { var iterator = goog.iter.toIterator(iterable); @@ -444,12 +459,14 @@ goog.iter.dropWhile = function(iterable, f, opt_obj) { * Builds a new iterator that iterates over the original, but only as long as a * supplied function returns true. * @param {goog.iter.Iterable} iterable The iterator object. - * @param {Function} f The function to call for every value. This function + * @param {function(this:T,?,undefined,?):boolean} f The function to call for + * every value. This function * takes 3 arguments (the value, undefined, and the iterator) and should * return a boolean. - * @param {Object=} opt_obj This is used as the 'this' object in f when called. + * @param {T=} opt_obj This is used as the 'this' object in f when called. * @return {!goog.iter.Iterator} A new iterator that keeps elements in the * original iterator as long as the function is true. + * @template T */ goog.iter.takeWhile = function(iterable, f, opt_obj) { var iterator = goog.iter.toIterator(iterable); @@ -481,7 +498,7 @@ goog.iter.takeWhile = function(iterable, f, opt_obj) { goog.iter.toArray = function(iterable) { // Fast path for array-like. if (goog.isArrayLike(iterable)) { - return goog.array.toArray((/** @type {!goog.array.ArrayLike} */ iterable)); + return goog.array.toArray(/** @type {!goog.array.ArrayLike} */(iterable)); } iterable = goog.iter.toIterator(iterable); var array = []; @@ -656,7 +673,6 @@ goog.iter.cycle = function(iterable) { // Pull elements off the original iterator if not using cache if (!useCache) { - try { // Return the element from the iterable returnElement = baseIterator.next(); diff --git a/master/closure-library/closure/goog/json/evaljsonprocessor.js b/edit/closure-library/closure/goog/json/evaljsonprocessor.js similarity index 100% rename from master/closure-library/closure/goog/json/evaljsonprocessor.js rename to edit/closure-library/closure/goog/json/evaljsonprocessor.js diff --git a/master/closure-library/closure/goog/json/json.js b/edit/closure-library/closure/goog/json/json.js similarity index 96% rename from master/closure-library/closure/goog/json/json.js rename to edit/closure-library/closure/goog/json/json.js index 3fa6400b70..f9f296dadb 100644 --- a/master/closure-library/closure/goog/json/json.js +++ b/edit/closure-library/closure/goog/json/json.js @@ -61,7 +61,7 @@ goog.json.isValid_ = function(s) { // Don't make these static since they have the global flag. var backslashesRe = /\\["\\\/bfnrtu]/g; var simpleValuesRe = - /"[^"\\\n\r\u2028\u2029\x00-\x08\x10-\x1f\x80-\x9f]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g; + /"[^"\\\n\r\u2028\u2029\x00-\x08\x0a-\x1f]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g; var openBracketsRe = /(?:^|:|,)(?:[\s\u2028\u2029]*\[)+/g; var remainderRe = /^[\],:{}\s\u2028\u2029]*$/; @@ -188,10 +188,10 @@ goog.json.Serializer.prototype.serialize = function(object) { goog.json.Serializer.prototype.serialize_ = function(object, sb) { switch (typeof object) { case 'string': - this.serializeString_((/** @type {string} */ object), sb); + this.serializeString_(/** @type {string} */ (object), sb); break; case 'number': - this.serializeNumber_((/** @type {number} */ object), sb); + this.serializeNumber_(/** @type {number} */ (object), sb); break; case 'boolean': sb.push(object); @@ -205,13 +205,13 @@ goog.json.Serializer.prototype.serialize_ = function(object, sb) { break; } if (goog.isArray(object)) { - this.serializeArray((/** @type {!Array} */ object), sb); + this.serializeArray(/** @type {!Array} */ (object), sb); break; } // should we allow new String, new Number and new Boolean to be treated // as string, number and boolean? Most implementations do not and the // need is not very big - this.serializeObject_((/** @type {Object} */ object), sb); + this.serializeObject_(/** @type {Object} */ (object), sb); break; case 'function': // Skip functions. diff --git a/master/closure-library/closure/goog/json/nativejsonprocessor.js b/edit/closure-library/closure/goog/json/nativejsonprocessor.js similarity index 100% rename from master/closure-library/closure/goog/json/nativejsonprocessor.js rename to edit/closure-library/closure/goog/json/nativejsonprocessor.js diff --git a/master/closure-library/closure/goog/json/processor.js b/edit/closure-library/closure/goog/json/processor.js similarity index 99% rename from master/closure-library/closure/goog/json/processor.js rename to edit/closure-library/closure/goog/json/processor.js index 86c97aeeac..5ac3df248d 100644 --- a/master/closure-library/closure/goog/json/processor.js +++ b/edit/closure-library/closure/goog/json/processor.js @@ -23,6 +23,7 @@ goog.require('goog.string.Parser'); goog.require('goog.string.Stringifier'); + /** * An interface for JSON parsing and serialization. * @interface diff --git a/edit/closure-library/closure/goog/labs/classdef/classdef.js b/edit/closure-library/closure/goog/labs/classdef/classdef.js new file mode 100644 index 0000000000..5007d59675 --- /dev/null +++ b/edit/closure-library/closure/goog/labs/classdef/classdef.js @@ -0,0 +1,162 @@ +// Copyright 2012 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview Restricted class definitions for Closure. + * + * @author johnlenz@google.com (John Lenz) + */ + +goog.provide('goog.labs.classdef'); + + +/** @typedef { + {constructor:!Function}| + {constructor:!Function, statics:(Object|function(Function):void)}} */ +goog.labs.classdef.ClassDescriptor; + + +/** + * Creates a restricted form of a Closure "class": + * - from the compiler's perspective, the instance returned from the + * constructor is sealed (no new properties may be added). This enables + * better type checking. + * - the compiler will rewrite this definition to a form that is optimal + * for type checking and optimization (initially this will be a more + * traditional form). + * + * @param {Function} superClass The superclass or null. + * @param {goog.labs.classdef.ClassDescriptor} def + * An object literal describing the + * the class. It may have the following properties: + * "constructor": the constructor function + * "statics": an object literal containing methods to add to the constructor + * as "static" methods or a function that will recieve the constructor + * function as its only parameter to which static properties can + * be added. + * all other properties are added to the prototype. + * @return {!Function} The class constructor. + */ +goog.labs.classdef.defineClass = function(superClass, def) { + // TODO(johnlenz): consider making the superClass an optional parameter. + var constructor = def.constructor; + var statics = def.statics; + // Wrap the constructor prior to setting up the prototype and static methods. + if (!constructor || constructor == Object.prototype.constructor) { + throw Error('constructor property is required.'); + } + + var cls = goog.labs.classdef.createSealingConstructor_(constructor); + if (superClass) { + goog.inherits(cls, superClass); + } + + // Remove all the properties that should not be copied to the prototype. + delete def.constructor; + delete def.statics; + + goog.labs.classdef.applyProperties_(cls.prototype, def); + if (statics != null) { + if (statics instanceof Function) { + statics(cls); + } else { + goog.labs.classdef.applyProperties_(cls, statics); + } + } + + return cls; +}; + + +/** + * @define {boolean} Whether the instances returned by + * goog.labs.classdef.defineClass should be sealed when possible. + */ +goog.define('goog.labs.classdef.SEAL_CLASS_INSTANCES', goog.DEBUG); + + +/** + * If goog.labs.classdef.SEAL_CLASS_INSTANCES is enabled and Object.seal is + * defined, this function will wrap the constructor in a function that seals the + * results of the provided constructor function. + * + * @param {!Function} ctr The constructor whose results maybe be sealed. + * @return {!Function} The replacement constructor. + * @private + */ +goog.labs.classdef.createSealingConstructor_ = function(ctr) { + if (goog.labs.classdef.SEAL_CLASS_INSTANCES && + Object.seal instanceof Function) { + /** @this {*} */ + var wrappedCtr = function() { + // Don't seal an instance of a subclass when it calls the constructor of + // its super class as there is most likely still setup to do. + var instance = ctr.apply(this, arguments) || this; + if (this.constructor === wrappedCtr) { + Object.seal(instance); + } + return instance; + }; + return wrappedCtr; + } + return ctr; +}; + + +// TODO(johnlenz): share these values with the goog.object +/** + * The names of the fields that are defined on Object.prototype. + * @type {!Array.} + * @private + * @const + */ +goog.labs.classdef.OBJECT_PROTOTYPE_FIELDS_ = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' +]; + + +// TODO(johnlenz): share this function with the goog.object +/** + * @param {!Object} target The object to add properties to. + * @param {!Object} source The object to copy properites from. + * @private + */ +goog.labs.classdef.applyProperties_ = function(target, source) { + // TODO(johnlenz): update this to support ES5 getters/setters + + var key; + for (key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + + // For IE the for-in-loop does not contain any properties that are not + // enumerable on the prototype object (for example isPrototypeOf from + // Object.prototype) and it will also not include 'replace' on objects that + // extend String and change 'replace' (not that it is common for anyone to + // extend anything except Object). + for (var i = 0; i < goog.labs.classdef.OBJECT_PROTOTYPE_FIELDS_.length; i++) { + key = goog.labs.classdef.OBJECT_PROTOTYPE_FIELDS_[i]; + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } +}; diff --git a/edit/closure-library/closure/goog/labs/events/touch.js b/edit/closure-library/closure/goog/labs/events/touch.js new file mode 100644 index 0000000000..f03a0ade43 --- /dev/null +++ b/edit/closure-library/closure/goog/labs/events/touch.js @@ -0,0 +1,82 @@ +// Copyright 2013 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview Utilities to abstract mouse and touch events. + */ + + +goog.provide('goog.labs.events.touch'); +goog.provide('goog.labs.events.touch.TouchData'); + +goog.require('goog.array'); +goog.require('goog.asserts'); +goog.require('goog.events.EventType'); +goog.require('goog.string'); + + +/** + * Description the geometry and target of an event. + * + * @typedef {{ + * clientX: number, + * clientY: number, + * screenX: number, + * screenY: number, + * target: EventTarget + * }} + */ +goog.labs.events.touch.TouchData; + + +/** + * Takes a mouse or touch event and returns the relevent geometry and target + * data. + * @param {!Event} e A mouse or touch event. + * @return {!goog.labs.events.touch.TouchData} + */ +goog.labs.events.touch.getTouchData = function(e) { + + var source = e; + goog.asserts.assert( + goog.string.startsWith(e.type, 'touch') || + goog.string.startsWith(e.type, 'mouse'), + 'Event must be mouse or touch event.'); + + if (goog.string.startsWith(e.type, 'touch')) { + goog.asserts.assert( + goog.array.contains([ + goog.events.EventType.TOUCHCANCEL, + goog.events.EventType.TOUCHEND, + goog.events.EventType.TOUCHMOVE, + goog.events.EventType.TOUCHSTART + ], e.type), + 'Touch event not of valid type.'); + + // If the event is end or cancel, take the first changed touch, + // otherwise the first target touch. + source = (e.type == goog.events.EventType.TOUCHEND || + e.type == goog.events.EventType.TOUCHCANCEL) ? + e.changedTouches[0] : e.targetTouches[0]; + } + + return { + clientX: source['clientX'], + clientY: source['clientY'], + screenX: source['screenX'], + screenY: source['screenY'], + target: source['target'] + }; +}; + diff --git a/edit/closure-library/closure/goog/labs/events/touch_test.js b/edit/closure-library/closure/goog/labs/events/touch_test.js new file mode 100644 index 0000000000..77d1f52a68 --- /dev/null +++ b/edit/closure-library/closure/goog/labs/events/touch_test.js @@ -0,0 +1,96 @@ +// Copyright 2013 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview Unit tests for goog.labs.events.touch. + */ + + +goog.provide('goog.labs.events.touchTest'); + +goog.require('goog.labs.events.touch'); +goog.require('goog.testing.jsunit'); + +goog.setTestOnly('goog.labs.events.touchTest'); + +function testMouseEvent() { + var fakeTarget = {}; + + var fakeMouseMove = { + 'clientX': 1, + 'clientY': 2, + 'screenX': 3, + 'screenY': 4, + 'target': fakeTarget, + 'type': 'mousemove' + }; + + var data = goog.labs.events.touch.getTouchData(fakeMouseMove); + assertEquals(1, data.clientX); + assertEquals(2, data.clientY); + assertEquals(3, data.screenX); + assertEquals(4, data.screenY); + assertEquals(fakeTarget, data.target); +} + +function testTouchEvent() { + var fakeTarget = {}; + + var fakeTouch = { + 'clientX': 1, + 'clientY': 2, + 'screenX': 3, + 'screenY': 4, + 'target': fakeTarget + }; + + var fakeTouchStart = { + 'targetTouches': [fakeTouch], + 'target': fakeTarget, + 'type': 'touchstart' + }; + + var data = goog.labs.events.touch.getTouchData(fakeTouchStart); + assertEquals(1, data.clientX); + assertEquals(2, data.clientY); + assertEquals(3, data.screenX); + assertEquals(4, data.screenY); + assertEquals(fakeTarget, data.target); +} + +function testTouchChangeEvent() { + var fakeTarget = {}; + + var fakeTouch = { + 'clientX': 1, + 'clientY': 2, + 'screenX': 3, + 'screenY': 4, + 'target': fakeTarget + }; + + var fakeTouchStart = { + 'changedTouches': [fakeTouch], + 'target': fakeTarget, + 'type': 'touchend' + }; + + var data = goog.labs.events.touch.getTouchData(fakeTouchStart); + assertEquals(1, data.clientX); + assertEquals(2, data.clientY); + assertEquals(3, data.screenX); + assertEquals(4, data.screenY); + assertEquals(fakeTarget, data.target); +} + diff --git a/edit/closure-library/closure/goog/labs/format/csv.js b/edit/closure-library/closure/goog/labs/format/csv.js new file mode 100644 index 0000000000..0cd56b01eb --- /dev/null +++ b/edit/closure-library/closure/goog/labs/format/csv.js @@ -0,0 +1,391 @@ +// Copyright 2012 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview Provides a parser that turns a string of well-formed CSV data + * into an array of objects or an array of arrays. All values are returned as + * strings; the user has to convert data into numbers or Dates as required. + * Empty fields (adjacent commas) are returned as empty strings. + * + * This parser uses http://tools.ietf.org/html/rfc4180 as the definition of CSV. + * + */ +goog.provide('goog.labs.format.csv'); +goog.provide('goog.labs.format.csv.ParseError'); +goog.provide('goog.labs.format.csv.Token'); + +goog.require('goog.array'); +goog.require('goog.asserts'); +goog.require('goog.debug.Error'); +goog.require('goog.object'); +goog.require('goog.string'); +goog.require('goog.string.newlines'); + + +/** + * @define {boolean} Enable verbose debugging. This is a flag so it can be + * enabled in production if necessary post-compilation. Otherwise, debug + * information will be stripped to minimize final code size. + */ +goog.labs.format.csv.ENABLE_VERBOSE_DEBUGGING = goog.DEBUG; + + + +/** + * Error thrown when parsing fails. + * + * @param {string} text The CSV source text being parsed. + * @param {number} index The index, in the string, of the position of the + * error. + * @param {string=} opt_message A description of the violated parse expectation. + * @constructor + * @extends {goog.debug.Error} + */ +goog.labs.format.csv.ParseError = function(text, index, opt_message) { + + var message; + + /** + * @type {?{line: number, column: number}} The line and column of the parse + * error. + */ + this.position = null; + + if (goog.labs.format.csv.ENABLE_VERBOSE_DEBUGGING) { + message = opt_message || ''; + + var info = goog.labs.format.csv.ParseError.findLineInfo_(text, index); + if (info) { + var lineNumber = info.lineIndex + 1; + var columnNumber = index - info.line.startLineIndex + 1; + + this.position = { + line: lineNumber, + column: columnNumber + }; + + message += goog.string.subs(' at line %s column %s', + lineNumber, columnNumber); + message += '\n' + goog.labs.format.csv.ParseError.getLineDebugString_( + info.line.getContent(), columnNumber); + } + } + + goog.base(this, message); +}; +goog.inherits(goog.labs.format.csv.ParseError, goog.debug.Error); + + +/** @inheritDoc */ +goog.labs.format.csv.ParseError.prototype.name = 'ParseError'; + + +/** + * Calculate the line and column for an index in a string. + * TODO(nnaze): Consider moving to goog.string.newlines. + * @param {string} str A string. + * @param {number} index An index into the string. + * @return {?{line: !goog.string.newlines.Line, lineIndex: number}} The line + * and index of the line. + * @private + */ +goog.labs.format.csv.ParseError.findLineInfo_ = function(str, index) { + var lines = goog.string.newlines.getLines(str); + var lineIndex = goog.array.findIndex(lines, function(line) { + return line.startLineIndex <= index && line.endLineIndex > index; + }); + + if (goog.isNumber(lineIndex)) { + var line = lines[lineIndex]; + return { + line: line, + lineIndex: lineIndex + }; + } + + return null; +}; + + +/** + * Get a debug string of a line and a pointing caret beneath it. + * @param {string} str The string. + * @param {number} column The column to point at (1-indexed). + * @return {string} The debug line. + * @private + */ +goog.labs.format.csv.ParseError.getLineDebugString_ = function(str, column) { + var returnString = str + '\n'; + returnString += goog.string.repeat(' ', column - 1) + '^'; + return returnString; +}; + + +/** + * A token -- a single-character string or a sentinel. + * @typedef {string|!goog.labs.format.csv.Sentinels_} + */ +goog.labs.format.csv.Token; + + +/** + * Parses a CSV string to create a two-dimensional array. + * + * This function does not process header lines, etc -- such transformations can + * be made on the resulting array. + * + * @param {string} text The entire CSV text to be parsed. + * @return {!Array.>} The parsed CSV. + */ +goog.labs.format.csv.parse = function(text) { + + var index = 0; // current char offset being considered + + + var EOF = goog.labs.format.csv.Sentinels_.EOF; + var EOR = goog.labs.format.csv.Sentinels_.EOR; + var NEWLINE = goog.labs.format.csv.Sentinels_.NEWLINE; // \r?\n + var EMPTY = goog.labs.format.csv.Sentinels_.EMPTY; + + var pushBackToken = null; // A single-token pushback. + var sawComma = false; // Special case for terminal comma. + + /** + * Push a single token into the push-back variable. + * @param {goog.labs.format.csv.Token} t Single token. + */ + function pushBack(t) { + goog.labs.format.csv.assertToken_(t); + goog.asserts.assert(goog.isNull(pushBackToken)); + pushBackToken = t; + } + + /** + * @return {goog.labs.format.csv.Token} The next token in the stream. + */ + function nextToken() { + + // Give the push back token if present. + if (pushBackToken != null) { + var c = pushBackToken; + pushBackToken = null; + return c; + } + + // We're done. EOF. + if (index >= text.length) { + return EOF; + } + + // Give the next charater. + var chr = text.charAt(index++); + goog.labs.format.csv.assertToken_(chr); + + // Check if this is a newline. If so, give the new line sentinel. + var isNewline = false; + if (chr == '\n') { + isNewline = true; + } else if (chr == '\r') { + + // This is a '\r\n' newline. Treat as single token, go + // forward two indicies. + if (index < text.length && text.charAt(index) == '\n') { + index++; + } + + isNewline = true; + } + + if (isNewline) { + return NEWLINE; + } + + return chr; + } + + /** + * Read a quoted field from input. + * @return {string} The field, as a string. + */ + function readQuotedField() { + // We've already consumed the first quote by the time we get here. + var start = index; + var end = null; + + for (var token = nextToken(); token != EOF; token = nextToken()) { + if (token == '"') { + end = index - 1; + token = nextToken(); + + // Two double quotes in a row. Keep scanning. + if (token == '"') { + end = null; + continue; + } + + // End of field. Break out. + if (token == ',' || token == EOF || token == NEWLINE) { + if (token == NEWLINE) { + pushBack(token); + } + break; + } + + throw new goog.labs.format.csv.ParseError( + text, index - 1, + 'Unexpected character "' + token + '" after quote mark'); + } + } + + if (goog.isNull(end)) { + throw new goog.labs.format.csv.ParseError( + text, text.length - 1, + 'Unexpected end of text after open quote'); + } + + // Take substring, combine double quotes. + return text.substring(start, end).replace(/""/g, '"'); + } + + /** + * Read a field from input. + * @return {string|!goog.labs.format.csv.Sentinels_} The field, as a string, + * or a sentinel (if applicable). + */ + function readField() { + var start = index; + var didSeeComma = sawComma; + sawComma = false; + var token = nextToken(); + if (token == EMPTY) { + return EOR; + } + if (token == EOF || token == NEWLINE) { + if (didSeeComma) { + pushBack(EMPTY); + return ''; + } + return EOR; + } + + // This is the beginning of a quoted field. + if (token == '"') { + return readQuotedField(); + } + + while (true) { + + // This is the end of line or file. + if (token == EOF || token == NEWLINE) { + pushBack(token); + break; + } + + // This is the end of record. + if (token == ',') { + sawComma = true; + break; + } + + if (token == '"') { + throw new goog.labs.format.csv.ParseError(text, index - 1, + 'Unexpected quote mark'); + } + + token = nextToken(); + } + + + var returnString = (token == EOF) ? + text.substring(start) : // Return to end of file. + text.substring(start, index - 1); + + return returnString.replace(/[\r\n]+/g, ''); // Squash any CRLFs. + } + + /** + * Read the next record. + * @return {!Array.|!goog.labs.format.csv.Sentinels_} A single record + * with multiple fields. + */ + function readRecord() { + if (index >= text.length) { + return EOF; + } + var record = []; + for (var field = readField(); field != EOR; field = readField()) { + record.push(field); + } + return record; + } + + // Read all records and return. + var records = []; + for (var record = readRecord(); record != EOF; record = readRecord()) { + records.push(record); + } + return records; +}; + + +/** + * Sentinel tracking objects. + * @enum {Object} + * @private + */ +goog.labs.format.csv.Sentinels_ = { + /** Empty field */ + EMPTY: {}, + + /** End of file */ + EOF: {}, + + /** End of record */ + EOR: {}, + + /** Newline. \r?\n */ + NEWLINE: {} +}; + + +/** + * @param {string} str A string. + * @return {boolean} Whether the string is a single character. + * @private + */ +goog.labs.format.csv.isCharacterString_ = function(str) { + return goog.isString(str) && str.length == 1; +}; + + +/** + * Assert the parameter is a token. + * @param {*} o What should be a token. + * @throws {goog.asserts.AssertionError} If {@ code} is not a token. + * @private + */ +goog.labs.format.csv.assertToken_ = function(o) { + if (goog.isString(o)) { + goog.asserts.assertString(o); + goog.asserts.assert(goog.labs.format.csv.isCharacterString_(o), + 'Should be a string of length 1 or a sentinel.'); + } else { + goog.asserts.assert( + goog.object.containsValue(goog.labs.format.csv.Sentinels_, o), + 'Should be a string of length 1 or a sentinel.'); + } +}; + + + diff --git a/edit/closure-library/closure/goog/labs/format/csv_test.js b/edit/closure-library/closure/goog/labs/format/csv_test.js new file mode 100644 index 0000000000..2392a12387 --- /dev/null +++ b/edit/closure-library/closure/goog/labs/format/csv_test.js @@ -0,0 +1,169 @@ +// Copyright 2012 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +goog.provide('goog.labs.format.csvTest'); + +goog.require('goog.labs.format.csv'); +goog.require('goog.labs.format.csv.ParseError'); +goog.require('goog.object'); +goog.require('goog.testing.asserts'); +goog.require('goog.testing.jsunit'); + +goog.setTestOnly('goog.labs.format.csvTest'); + + +function testGoldenPath() { + assertObjectEquals( + [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']], + goog.labs.format.csv.parse('a,b,c\nd,e,f\ng,h,i\n')); + assertObjectEquals( + [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']], + goog.labs.format.csv.parse('a,b,c\r\nd,e,f\r\ng,h,i\r\n')); +} + +function testNoCrlfAtEnd() { + assertObjectEquals( + [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']], + goog.labs.format.csv.parse('a,b,c\nd,e,f\ng,h,i')); +} + +function testQuotes() { + assertObjectEquals( + [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']], + goog.labs.format.csv.parse('a,"b",c\n"d","e","f"\ng,h,"i"')); + assertObjectEquals( + [['a', 'b, as in boy', 'c'], ['d', 'e', 'f']], + goog.labs.format.csv.parse('a,"b, as in boy",c\n"d","e","f"\n')); +} + +function testEmbeddedCrlfs() { + assertObjectEquals( + [['a', 'b\nball', 'c'], ['d\nd', 'e', 'f'], ['g', 'h', 'i']], + goog.labs.format.csv.parse('a,"b\nball",c\n"d\nd","e","f"\ng,h,"i"\n')); +} + +function testEmbeddedQuotes() { + assertObjectEquals( + [['a', '"b"', 'Jonathan "Smokey" Feinberg'], ['d', 'e', 'f']], + goog.labs.format.csv.parse( + 'a,"""b""","Jonathan ""Smokey"" Feinberg"\nd,e,f\r\n')); +} + +function testUnclosedQuote() { + var e = assertThrows(function() { + goog.labs.format.csv.parse('a,"b,c\nd,e,f'); + }); + + assertTrue(e instanceof goog.labs.format.csv.ParseError); + assertEquals(2, e.position.line); + assertEquals(5, e.position.column); + assertEquals( + 'Unexpected end of text after open quote at line 2 column 5\n' + + 'd,e,f\n' + + ' ^', + e.message); +} + +function testQuotesInUnquotedField() { + var e = assertThrows(function() { + goog.labs.format.csv.parse('a,b "and" b,c\nd,e,f'); + }); + + assertTrue(e instanceof goog.labs.format.csv.ParseError); + + assertEquals(1, e.position.line); + assertEquals(5, e.position.column); + + assertEquals( + 'Unexpected quote mark at line 1 column 5\n' + + 'a,b "and" b,c\n' + + ' ^', + e.message); +} + +function testGarbageOutsideQuotes() { + var e = assertThrows(function() { + goog.labs.format.csv.parse('a,"b",c\nd,"e"oops,f'); + }); + + assertTrue(e instanceof goog.labs.format.csv.ParseError); + assertEquals(2, e.position.line); + assertEquals(6, e.position.column); + assertEquals( + 'Unexpected character "o" after quote mark at line 2 column 6\n' + + 'd,"e"oops,f\n' + + ' ^', + e.message); +} + +function testEmptyRecords() { + assertObjectEquals( + [['a', '', 'c'], ['d', 'e', ''], ['', '', '']], + goog.labs.format.csv.parse('a,,c\r\nd,e,\n,,')); +} + +function testFindLineInfo() { + var testString = 'abc\ndef\rghi'; + var info = goog.labs.format.csv.ParseError.findLineInfo_(testString, 4); + + assertEquals(4, info.line.startLineIndex); + assertEquals(7, info.line.endContentIndex); + assertEquals(8, info.line.endLineIndex); + + assertEquals(1, info.lineIndex); +} + +function testGetLineDebugString() { + var str = 'abcdefghijklmnop'; + var index = str.indexOf('j'); + var column = index + 1; + assertEquals( + goog.labs.format.csv.ParseError.getLineDebugString_(str, column), + 'abcdefghijklmnop\n' + + ' ^'); + +} + +function testIsCharacterString() { + assertTrue(goog.labs.format.csv.isCharacterString_('a')); + assertTrue(goog.labs.format.csv.isCharacterString_('\n')); + assertTrue(goog.labs.format.csv.isCharacterString_(' ')); + + assertFalse(goog.labs.format.csv.isCharacterString_(null)); + assertFalse(goog.labs.format.csv.isCharacterString_(' ')); + assertFalse(goog.labs.format.csv.isCharacterString_('')); + assertFalse(goog.labs.format.csv.isCharacterString_('aa')); +} + + +function testAssertToken() { + goog.labs.format.csv.assertToken_('a'); + + goog.object.forEach(goog.labs.format.csv.SENTINELS_, + function(value) { + goog.labs.format.csv.assertToken_(value); + }); + + assertThrows(function() { + goog.labs.format.csv.assertToken_('aa'); + }); + + assertThrows(function() { + goog.labs.format.csv.assertToken_(''); + }); + + assertThrows(function() { + goog.labs.format.csv.assertToken_({}); + }); +} diff --git a/edit/closure-library/closure/goog/labs/mock/mock.js b/edit/closure-library/closure/goog/labs/mock/mock.js new file mode 100644 index 0000000000..52be45ff84 --- /dev/null +++ b/edit/closure-library/closure/goog/labs/mock/mock.js @@ -0,0 +1,733 @@ +// Copyright 2012 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview Provides a mocking framework in Closure to make unit tests easy + * to write and understand. The methods provided here can be used to replace + * implementations of existing objects with 'mock' objects to abstract out + * external services and dependencies thereby isolating the code under test. + * Apart from mocking, methods are also provided to just monitor calls to an + * object (spying) and returning specific values for some or all the inputs to + * methods (stubbing). + * + * Design doc : http://go/closuremock + * + */ + + +goog.provide('goog.labs.mock'); + +goog.require('goog.array'); +goog.require('goog.debug'); +goog.require('goog.debug.Error'); +goog.require('goog.functions'); +goog.require('goog.json'); + + +/** + * Mocks a given object or class. + * + * @param {!Object} objectOrClass An instance or a constructor of a class to be + * mocked. + * @return {!Object} The mocked object. + */ +goog.labs.mock.mock = function(objectOrClass) { + // Go over properties of 'objectOrClass' and create a MockManager to + // be used for stubbing out calls to methods. + var mockObjectManager = new goog.labs.mock.MockObjectManager_(objectOrClass); + var mockedObject = mockObjectManager.getMockedItem(); + goog.asserts.assertObject(mockedObject); + return /** @type {!Object} */ (mockedObject); +}; + + +/** + * Mocks a given function. + * + * @param {!Function} func A function to be mocked. + * @return {!Function} The mocked function. + */ +goog.labs.mock.mockFunction = function(func) { + var mockFuncManager = new goog.labs.mock.MockFunctionManager_(func); + var mockedFunction = mockFuncManager.getMockedItem(); + goog.asserts.assertFunction(mockedFunction); + return /** @type {!Function} */ (mockedFunction); +}; + + +/** + * Spies on a given object. + * + * @param {!Object} obj The object to be spied on. + * @return {!Object} The spy object. + */ +goog.labs.mock.spy = function(obj) { + // Go over properties of 'obj' and create a MockSpyManager_ to + // be used for spying on calls to methods. + var mockSpyManager = new goog.labs.mock.MockSpyManager_(obj); + var spyObject = mockSpyManager.getMockedItem(); + goog.asserts.assert(spyObject); + return spyObject; +}; + + +/** + * Returns an object that can be used to verify calls to specific methods of a + * given mock. + * + * @param {!Object} obj The mocked object. + * @return {!Object} The verifier. + */ +goog.labs.mock.verify = function(obj) { + return obj.$callVerifier; +}; + + +/** + * Returns a name to identify a function. Named functions return their names, + * unnamed functions return a string of the form '#anonymous{ID}' where ID is + * a unique identifier for each anonymous function. + * @private + * @param {!Function} func The function. + * @return {string} The function name. + */ +goog.labs.mock.getFunctionName_ = function(func) { + var funcName = goog.debug.getFunctionName(func); + if (funcName == '' || funcName == '[Anonymous]') { + funcName = '#anonymous' + goog.getUid(func); + } + return funcName; +}; + + +/** + * Returns a nicely formatted, readble representation of a method call. + * @private + * @param {string} methodName The name of the method. + * @param {Array=} opt_args The method arguments. + * @return {string} The string representation of the method call. + */ +goog.labs.mock.formatMethodCall_ = function(methodName, opt_args) { + opt_args = opt_args || []; + opt_args = goog.array.map(opt_args, function(arg) { + if (goog.isFunction(arg)) { + var funcName = goog.labs.mock.getFunctionName_(arg); + return ''; + } else { + return goog.json.serialize(arg); + } + }); + return methodName + '(' + opt_args.join(', ') + ')'; +}; + + + +/** + * Error thrown when verification failed. + * + * @param {Array} recordedCalls The recorded calls that didn't match the + * expectation. + * @param {!string} methodName The expected method call. + * @param {!Array} args The expected arguments. + * @constructor + * @extends {goog.debug.Error} + */ +goog.labs.mock.VerificationError = function(recordedCalls, methodName, args) { + var msg = goog.labs.mock.VerificationError.getVerificationErrorMsg_( + recordedCalls, methodName, args); + goog.base(this, msg); +}; +goog.inherits(goog.labs.mock.VerificationError, goog.debug.Error); + + +/** @override */ +goog.labs.mock.VerificationError.prototype.name = 'VerificationError'; + + +/** + * This array contains the name of the functions that are part of the base + * Object prototype. + * Basically a copy of goog.object.PROTOTYPE_FIELDS_. + * @const + * @type {!Array.} + * @private + */ +goog.labs.mock.PROTOTYPE_FIELDS_ = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' +]; + + +/** + * Constructs a descriptive error message for an expected method call. + * @private + * @param {Array} recordedCalls The recorded calls that didn't match the + * expectation. + * @param {!string} methodName The expected method call. + * @param {!Array} args The expected arguments. + * @return {string} The error message. + */ +goog.labs.mock.VerificationError.getVerificationErrorMsg_ = + function(recordedCalls, methodName, args) { + + recordedCalls = goog.array.filter(recordedCalls, function(binding) { + return binding.getMethodName() == methodName; + }); + + var expected = goog.labs.mock.formatMethodCall_(methodName, args); + + var msg = '\nExpected: ' + expected.toString(); + msg += '\nRecorded: '; + + if (recordedCalls.length > 0) { + msg += recordedCalls.join(',\n '); + } else { + msg += 'No recorded calls'; + } + + return msg; +}; + + + +/** + * Base class that provides basic functionality for creating, adding and + * finding bindings, offering an executor method that is called when a call to + * the stub is made, an array to hold the bindings and the mocked item, among + * other things. + * + * @constructor + * @private + */ +goog.labs.mock.MockManager_ = function() { + /** + * Proxies the methods for the mocked object or class to execute the stubs. + * @type {!Object} + * @protected + */ + this.mockedItem = {}; + + /** + * A reference to the object or function being mocked. + * @type {Object|Function} + * @protected + */ + this.mockee = null; + + /** + * Holds the stub bindings established so far. + * @protected + */ + this.methodBindings = []; + + /** + * Holds a reference to the binder used to define stubs. + * @protected + */ + this.$stubBinder = null; + + /** + * Record method calls with no stub definitions. + * @type {!Array.} + * @private + */ + this.callRecords_ = []; +}; + + +/** + * Handles the first step in creating a stub, returning a stub-binder that + * is later used to bind a stub for a method. + * + * @param {string} methodName The name of the method being bound. + * @param {...} var_args The arguments to the method. + * @return {!goog.labs.mock.StubBinder_} The stub binder. + * @private + */ +goog.labs.mock.MockManager_.prototype.handleMockCall_ = + function(methodName, var_args) { + var args = goog.array.slice(arguments, 1); + return new goog.labs.mock.StubBinder_(this, methodName, args); +}; + + +/** + * Returns the mock object. This should have a stubbed method for each method + * on the object being mocked. + * + * @return {!Object|!Function} The mock object. + */ +goog.labs.mock.MockManager_.prototype.getMockedItem = function() { + return this.mockedItem; +}; + + +/** + * Adds a binding for the method name and arguments to be stubbed. + * + * @param {?string} methodName The name of the stubbed method. + * @param {!Array} args The arguments passed to the method. + * @param {!Function} func The stub function. + * + */ +goog.labs.mock.MockManager_.prototype.addBinding = + function(methodName, args, func) { + var binding = new goog.labs.mock.MethodBinding_(methodName, args, func); + this.methodBindings.push(binding); +}; + + +/** + * Returns a stub, if defined, for the method name and arguments passed in. + * + * @param {string} methodName The name of the stubbed method. + * @param {!Array} args The arguments passed to the method. + * @return {Function} The stub function or undefined. + * @protected + */ +goog.labs.mock.MockManager_.prototype.findBinding = + function(methodName, args) { + var stub = goog.array.find(this.methodBindings, function(binding) { + return binding.matches(methodName, args, false /* isVerification */); + }); + return stub && stub.getStub(); +}; + + +/** + * Returns a stub, if defined, for the method name and arguments passed in as + * parameters. + * + * @param {string} methodName The name of the stubbed method. + * @param {!Array} args The arguments passed to the method. + * @return {Function} The stub function or undefined. + * @protected + */ +goog.labs.mock.MockManager_.prototype.getExecutor = function(methodName, args) { + return this.findBinding(methodName, args); +}; + + +/** + * Looks up the list of stubs defined on the mock object and executes the + * function associated with that stub. + * + * @param {string} methodName The name of the method to execute. + * @param {...} var_args The arguments passed to the method. + * @return {*} Value returned by the stub function. + * @protected + */ +goog.labs.mock.MockManager_.prototype.executeStub = + function(methodName, var_args) { + var args = goog.array.slice(arguments, 1); + + // Record this call + this.recordCall_(methodName, args); + + var func = this.getExecutor(methodName, args); + if (func) { + return func.apply(null, args); + } +}; + + +/** + * Records a call to 'methodName' with arguments 'args'. + * + * @param {string} methodName The name of the called method. + * @param {!Array} args The array of arguments. + * @private + */ +goog.labs.mock.MockManager_.prototype.recordCall_ = + function(methodName, args) { + var callRecord = new goog.labs.mock.MethodBinding_(methodName, args, + goog.nullFunction); + + this.callRecords_.push(callRecord); +}; + + +/** + * Verify invocation of a method with specific arguments. + * + * @param {string} methodName The name of the method. + * @param {...} var_args The arguments passed. + * @protected + */ +goog.labs.mock.MockManager_.prototype.verifyInvocation = + function(methodName, var_args) { + var args = goog.array.slice(arguments, 1); + var binding = goog.array.find(this.callRecords_, function(binding) { + return binding.matches(methodName, args, true /* isVerification */); + }); + + if (!binding) { + throw new goog.labs.mock.VerificationError( + this.callRecords_, methodName, args); + } +}; + + + +/** + * Sets up mock for the given object (or class), stubbing out all the defined + * methods. By default, all stubs return {@code undefined}, though stubs can be + * later defined using {@code goog.labs.mock.when}. + * + * @param {!Object|!Function} objOrClass The object or class to set up the mock + * for. A class is a constructor function. + * + * @constructor + * @extends {goog.labs.mock.MockManager_} + * @private + */ +goog.labs.mock.MockObjectManager_ = function(objOrClass) { + goog.base(this); + + /** + * Proxies the calls to establish the first step of the stub bindings (object + * and method name) + * @private + */ + this.objectStubBinder_ = {}; + + this.mockee = objOrClass; + + /** + * The call verifier is used to verify the calls. It maps property names to + * the method that does call verification. + * @type {!Object.} + * @private + */ + this.objectCallVerifier_ = {}; + + var obj; + if (goog.isFunction(objOrClass)) { + // Create a temporary subclass with a no-op constructor so that we can + // create an instance and determine what methods it has. + /** @constructor */ + var tempCtor = function() {}; + goog.inherits(tempCtor, objOrClass); + obj = new tempCtor(); + } else { + obj = objOrClass; + } + + // Put the object being mocked in the prototype chain of the mock so that + // it has all the correct properties and instanceof works. + /** @constructor */ + var mockedItemCtor = function() {}; + mockedItemCtor.prototype = obj; + this.mockedItem = new mockedItemCtor(); + + var enumerableProperties = goog.object.getKeys(obj); + // The non enumerable properties are added due to the fact that IE8 does not + // enumerate any of the prototype Object functions even when overriden and + // mocking these is sometimes needed. + for (var i = 0; i < goog.labs.mock.PROTOTYPE_FIELDS_.length; i++) { + var prop = goog.labs.mock.PROTOTYPE_FIELDS_[i]; + if (!goog.array.contains(enumerableProperties, prop)) { + enumerableProperties.push(prop); + } + } + + // Adds the properties to the mock, creating a proxy stub for each method on + // the instance. + for (var i = 0; i < enumerableProperties.length; i++) { + var prop = enumerableProperties[i]; + if (goog.isFunction(obj[prop])) { + this.mockedItem[prop] = goog.bind(this.executeStub, this, prop); + // The stub binder used to create bindings. + this.objectStubBinder_[prop] = + goog.bind(this.handleMockCall_, this, prop); + // The verifier verifies the calls. + this.objectCallVerifier_[prop] = + goog.bind(this.verifyInvocation, this, prop); + } + } + // The alias for stub binder exposed to the world. + this.mockedItem.$stubBinder = this.objectStubBinder_; + + // The alias for verifier for the world. + this.mockedItem.$callVerifier = this.objectCallVerifier_; +}; +goog.inherits(goog.labs.mock.MockObjectManager_, + goog.labs.mock.MockManager_); + + + +/** + * Sets up the spying behavior for the given object. + * + * @param {!Object} obj The object to be spied on. + * + * @constructor + * @extends {goog.labs.mock.MockObjectManager_} + * @private + */ +goog.labs.mock.MockSpyManager_ = function(obj) { + goog.base(this, obj); +}; +goog.inherits(goog.labs.mock.MockSpyManager_, + goog.labs.mock.MockObjectManager_); + + +/** + * Return a stub, if defined, for the method and arguments passed in. If we lack + * a stub, instead look for a call record that matches the method and arguments. + * + * @return {Function} The stub or the invocation logger, if defined. + * @override + */ +goog.labs.mock.MockSpyManager_.prototype.findBinding = + function(methodName, args) { + var stub = goog.base(this, 'findBinding', methodName, args); + + if (!stub) { + stub = goog.bind(this.mockee[methodName], this.mockee); + } + + return stub; +}; + + + +/** + * Sets up mock for the given function, stubbing out. By default, all stubs + * return {@code undefined}, though stubs can be later defined using + * {@code goog.labs.mock.when}. + * + * @param {!Function} func The function to set up the mock for. + * + * @constructor + * @extends {goog.labs.mock.MockManager_} + * @private + */ +goog.labs.mock.MockFunctionManager_ = function(func) { + goog.base(this); + + this.func_ = func; + + /** + * The stub binder used to create bindings. + * Sets the first argument of handleMockCall_ to the function name. + * @type {!Function} + * @private + */ + this.functionStubBinder_ = this.useMockedFunctionName_(this.handleMockCall_); + + this.mockedItem = this.useMockedFunctionName_(this.executeStub); + this.mockedItem.$stubBinder = this.functionStubBinder_; + + /** + * The call verifier is used to verify function invocations. + * Sets the first argument of verifyInvocation to the function name. + * @type {!Function} + */ + this.mockedItem.$callVerifier = + this.useMockedFunctionName_(this.verifyInvocation); +}; +goog.inherits(goog.labs.mock.MockFunctionManager_, + goog.labs.mock.MockManager_); + + +/** + * Given a method, returns a new function that calls the first one setting + * the first argument to the mocked function name. + * This is used to dynamically override the stub binders and call verifiers. + * @private + * @param {Function} nextFunc The function to override. + * @return {!Function} The overloaded function. + */ +goog.labs.mock.MockFunctionManager_.prototype.useMockedFunctionName_ = + function(nextFunc) { + return goog.bind(function(var_args) { + var args = goog.array.slice(arguments, 0); + var name = + '#mockFor<' + goog.labs.mock.getFunctionName_(this.func_) + '>'; + goog.array.insertAt(args, name, 0); + return nextFunc.apply(this, args); + }, this); +}; + + + +/** + * The stub binder is the object that helps define the stubs by binding + * method name to the stub method. + * + * @param {!goog.labs.mock.MockManager_} + * mockManager The mock manager. + * @param {?string} name The method name. + * @param {!Array} args The other arguments to the method. + * + * @constructor + * @private + */ +goog.labs.mock.StubBinder_ = function(mockManager, name, args) { + /** + * The mock manager instance. + * @type {!goog.labs.mock.MockManager_} + * @private + */ + this.mockManager_ = mockManager; + + /** + * Holds the name of the method to be bound. + * @type {?string} + * @private + */ + this.name_ = name; + + /** + * Holds the arguments for the method. + * @type {!Array} + * @private + */ + this.args_ = args; +}; + + +/** + * Defines the stub to be called for the method name and arguments bound + * earlier. + * TODO(user): Add support for the 'Answer' interface. + * + * @param {!Function} func The stub. + */ +goog.labs.mock.StubBinder_.prototype.then = function(func) { + this.mockManager_.addBinding(this.name_, this.args_, func); +}; + + +/** + * Defines the stub to return a specific value for a method name and arguments. + * + * @param {*} value The value to return. + */ +goog.labs.mock.StubBinder_.prototype.thenReturn = function(value) { + this.mockManager_.addBinding(this.name_, this.args_, + goog.functions.constant(value)); +}; + + +/** + * Facilitates (and is the first step in) setting up stubs. Obtains an object + * on which, the method to be mocked is called to create a stub. Sample usage: + * + * var mockObj = goog.labs.mock.mock(objectBeingMocked); + * goog.labs.mock.when(mockObj).getFoo(3).thenReturn(4); + * + * @param {!Object} mockObject The mocked object. + * @return {!goog.labs.mock.StubBinder_} The property binder. + */ +goog.labs.mock.when = function(mockObject) { + goog.asserts.assert(mockObject.$stubBinder, 'Stub binder cannot be null!'); + return mockObject.$stubBinder; +}; + + + +/** + * Represents a binding between a method name, args and a stub. + * + * @param {?string} methodName The name of the method being stubbed. + * @param {!Array} args The arguments passed to the method. + * @param {!Function} stub The stub function to be called for the given method. + * @constructor + * @private + */ +goog.labs.mock.MethodBinding_ = function(methodName, args, stub) { + /** + * The name of the method being stubbed. + * @type {?string} + * @private + */ + this.methodName_ = methodName; + + /** + * The arguments for the method being stubbed. + * @type {!Array} + * @private + */ + this.args_ = args; + + /** + * The stub function. + * @type {!Function} + * @private + */ + this.stub_ = stub; +}; + + +/** + * @return {!Function} The stub to be executed. + */ +goog.labs.mock.MethodBinding_.prototype.getStub = function() { + return this.stub_; +}; + + +/** + * @override + * @return {string} A readable string representation of the binding + * as a method call. + */ +goog.labs.mock.MethodBinding_.prototype.toString = function() { + return goog.labs.mock.formatMethodCall_(this.methodName_ || '', this.args_); +}; + + +/** + * @return {string} The method name for this binding. + */ +goog.labs.mock.MethodBinding_.prototype.getMethodName = function() { + return this.methodName_ || ''; +}; + + +/** + * Determines whether the given args match the stored args_. Used to determine + * which stub to invoke for a method. + * + * @param {string} methodName The name of the method being stubbed. + * @param {!Array} args An array of arguments. + * @param {boolean} isVerification Whether this is a function verification call + * or not. + * @return {boolean} If it matches the stored arguments. + */ +goog.labs.mock.MethodBinding_.prototype.matches = function( + methodName, args, isVerification) { + var specs = isVerification ? args : this.args_; + var calls = isVerification ? this.args_ : args; + + //TODO(user): More elaborate argument matching. Think about matching + // objects. + return this.methodName_ == methodName && + goog.array.equals(calls, specs, function(arg, spec) { + // Duck-type to see if this is an object that implements the + // goog.labs.testing.Matcher interface. + if (goog.isFunction(spec.matches)) { + return spec.matches(arg); + } else { + return goog.array.defaultCompareEquality(spec, arg); + } + }); +}; diff --git a/master/closure-library/closure/goog/labs/net/image.js b/edit/closure-library/closure/goog/labs/net/image.js similarity index 93% rename from master/closure-library/closure/goog/labs/net/image.js rename to edit/closure-library/closure/goog/labs/net/image.js index a27b94fab8..1f1973ade4 100644 --- a/master/closure-library/closure/goog/labs/net/image.js +++ b/edit/closure-library/closure/goog/labs/net/image.js @@ -21,14 +21,14 @@ goog.provide('goog.labs.net.image'); goog.require('goog.events.EventHandler'); goog.require('goog.events.EventType'); -goog.require('goog.labs.result.SimpleResult'); goog.require('goog.net.EventType'); +goog.require('goog.result.SimpleResult'); goog.require('goog.userAgent'); /** * Loads a single image. Useful for preloading images. May be combined with - * goog.labs.result.combine to preload many images. + * goog.result.combine to preload many images. * * @param {string} uri URI of the image. * @param {(Image|function(): !Image)=} opt_image If present, instead of @@ -37,7 +37,7 @@ goog.require('goog.userAgent'); * can be used to control exactly how Image instances are created, for * example if they should be created in a particular document element, or * have fields that will trigger CORS image fetches. - * @return {!goog.labs.result.Result} An asyncronous result that will succeed + * @return {!goog.result.Result} An asyncronous result that will succeed * if the image successfully loads or error if the image load fails. */ goog.labs.net.image.load = function(uri, opt_image) { @@ -58,7 +58,7 @@ goog.labs.net.image.load = function(uri, opt_image) { var loadEvent = goog.userAgent.IE ? goog.net.EventType.READY_STATE_CHANGE : goog.events.EventType.LOAD; - var result = new goog.labs.result.SimpleResult(); + var result = new goog.result.SimpleResult(); var handler = new goog.events.EventHandler(); handler.listen( diff --git a/master/closure-library/closure/goog/labs/net/image_test.js b/edit/closure-library/closure/goog/labs/net/image_test.js similarity index 83% rename from master/closure-library/closure/goog/labs/net/image_test.js rename to edit/closure-library/closure/goog/labs/net/image_test.js index 2ae38416dd..dce243b2dd 100644 --- a/master/closure-library/closure/goog/labs/net/image_test.js +++ b/edit/closure-library/closure/goog/labs/net/image_test.js @@ -19,13 +19,13 @@ */ +/** @suppress {extraProvide} */ goog.provide('goog.labs.net.imageTest'); goog.require('goog.events'); goog.require('goog.labs.net.image'); -goog.require('goog.labs.result'); -goog.require('goog.labs.result.Result'); -goog.require('goog.net.EventType'); +goog.require('goog.result'); +goog.require('goog.result.Result'); goog.require('goog.string'); goog.require('goog.testing.AsyncTestCase'); goog.require('goog.testing.jsunit'); @@ -44,9 +44,9 @@ function testValidImage() { var result = goog.labs.net.image.load(url); - goog.labs.result.waitOnSuccess(result, function(value) { + goog.result.waitOnSuccess(result, function(value) { - assertEquals(goog.labs.result.Result.State.SUCCESS, result.getState()); + assertEquals(goog.result.Result.State.SUCCESS, result.getState()); assertEquals('IMG', value.tagName); assertTrue(goog.string.endsWith(value.src, url)); @@ -69,9 +69,9 @@ function testInvalidImage() { var result = goog.labs.net.image.load(url); - goog.labs.result.wait(result, function(result) { + goog.result.wait(result, function(result) { - assertEquals(goog.labs.result.Result.State.ERROR, result.getState()); + assertEquals(goog.result.Result.State.ERROR, result.getState()); assertUndefined(result.getValue()); assertUndefined(result.getError()); @@ -86,7 +86,7 @@ function testImageFactory() { var returnedImage = new Image(); var factory = function() { return returnedImage; - } + }; var countedFactory = goog.testing.recordFunction(factory); var url = 'testdata/cleardot.gif'; @@ -95,8 +95,8 @@ function testImageFactory() { assertEquals(0, goog.events.getTotalListenerCount()); var result = goog.labs.net.image.load(url, countedFactory); - goog.labs.result.waitOnSuccess(result, function(value) { - assertEquals(goog.labs.result.Result.State.SUCCESS, result.getState()); + goog.result.waitOnSuccess(result, function(value) { + assertEquals(goog.result.Result.State.SUCCESS, result.getState()); assertEquals(returnedImage, value); assertEquals(1, countedFactory.getCallCount()); assertUndefined(result.getError()); @@ -116,8 +116,8 @@ function testExistingImage() { assertEquals(0, goog.events.getTotalListenerCount()); var result = goog.labs.net.image.load(url, image); - goog.labs.result.waitOnSuccess(result, function(value) { - assertEquals(goog.labs.result.Result.State.SUCCESS, result.getState()); + goog.result.waitOnSuccess(result, function(value) { + assertEquals(goog.result.Result.State.SUCCESS, result.getState()); assertEquals(image, value); assertUndefined(result.getError()); diff --git a/edit/closure-library/closure/goog/labs/net/webchannel.js b/edit/closure-library/closure/goog/labs/net/webchannel.js new file mode 100644 index 0000000000..3e77d4cf54 --- /dev/null +++ b/edit/closure-library/closure/goog/labs/net/webchannel.js @@ -0,0 +1,188 @@ +// Copyright 2013 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview The API spec for the WebChannel messaging library. + * + * Similar to HTML5 WebSocket and Closure BrowserChannel, WebChannel + * offers an abstraction for point-to-point socket-like communication between + * a browser client and a remote origin. + * + * WebChannels are created via WebChannel. Multiple WebChannels + * may be multiplexed over the same WebChannelTransport, which represents + * the underlying physical connectivity over standard wire protocols + * such as HTTP and SPDY. + * + * A WebChannels in turn represents a logical communication channel between + * the client and server end point. A WebChannel remains open for + * as long as the client or server end-point allows. + * + * Messages may be delivered in-order or out-of-order, reliably or unreliably + * over the same WebChannel. Message delivery guarantees of a WebChannel is + * to be specified by the application code; and the choice of the + * underlying wire protocols is completely transparent to the API users. + * + * Client-to-client messaging via WebRTC based transport may also be support + * via the same WebChannel API in future. + * + */ + +goog.provide('goog.net.WebChannel'); + +goog.require('goog.events'); +goog.require('goog.events.Event'); + + + +/** + * A WebChannel represents a logical bi-directional channel over which the + * client communicates with a remote server that holds the other endpoint + * of the channel. A WebChannel is always created in the context of a shared + * {@link WebChannelTransport} instance. It is up to the underlying client-side + * and server-side implementations to decide how or when multiplexing is + * to be enabled. + * + * @interface + * @extends {EventTarget} + */ +goog.net.WebChannel = function() {}; + + +/** + * Configuration spec of a WebChannel (TODO(user): to complete): + * 1) delivery: ordered, reliable, timeout + * 2) HTTP: special headers, URI prefix, cross domains + * 3) debugging: stats, logging + * 4) pattern: full-duplex, server-client or client-server messaging + * 5) QoS: priority, throttling, + * 6) buffer management: batch size, delivery interval + * + * WebChannels are configured in the context of the containing + * {@link WebChannelTransport}. The configuration parameters are specified + * when a new instance of WebChannel is created via {@link WebChannelTransport}. + * + * @typedef {{ + * ordered: (boolean|undefined), + * reliable: (boolean|undefined), + * timeoutMs: (number|undefined), + * priority: (number|undefined) + * }} + */ +goog.net.WebChannel.Options; + + +/** + * Types that are allowed as message data. + * + * @typedef {(ArrayBuffer|Blob|Object.|Array)} + */ +goog.net.WebChannel.MessageData; + + +/** + * Open the WebChannel against the URI specified in the constructor. + */ +goog.net.WebChannel.prototype.open = goog.abstractMethod; + + +/** + * Close the WebChannel. + */ +goog.net.WebChannel.prototype.close = goog.abstractMethod; + + +/** + * Sends a message to the server that maintains the other end point of + * the WebChannel. + * + * @param {!goog.net.WebChannel.MessageData} message The message to send. + */ +goog.net.WebChannel.prototype.send = goog.abstractMethod; + + +/** + * Common events fired by WebChannels. + * @enum {string} + */ +goog.net.WebChannel.EventType = { + /** Dispatched when the channel is opened. */ + OPEN: goog.events.getUniqueId('open'), + + /** Dispatched when the channel is closed. */ + CLOSE: goog.events.getUniqueId('close'), + + /** Dispatched when the channel is aborted due to errors. */ + ERROR: goog.events.getUniqueId('error'), + + /** Dispatched when the channel has received a new message. */ + MESSAGE: goog.events.getUniqueId('message') +}; + + + +/** + * The event interface for the MESSAGE event. + * + * @constructor + * @extends {goog.events.Event} + */ +goog.net.WebChannel.MessageEvent = function() { + goog.base(this, goog.net.WebChannel.EventType.MESSAGE); +}; +goog.inherits(goog.net.WebChannel.MessageEvent, goog.events.Event); + + +/** + * The content of the message received from the server. + * + * @type {!goog.net.WebChannel.MessageData} + */ +goog.net.WebChannel.MessageEvent.prototype.data; + + +/** + * WebChannel level error conditions. + * @enum {number} + */ +goog.net.WebChannel.ErrorStatus = { + /** No error has occurred. */ + OK: 0, + + /** Communication to the server has failed. */ + NETWORK_ERROR: 1, + + /** The server fails to accept the WebChannel. */ + SERVER_ERROR: 2 +}; + + + +/** + * The event interface for the ERROR event. + * + * @constructor + * @extends {goog.events.Event} + */ +goog.net.WebChannel.ErrorEvent = function() { + goog.base(this, goog.net.WebChannel.EventType.ERROR); +}; +goog.inherits(goog.net.WebChannel.ErrorEvent, goog.events.Event); + + +/** + * The error status. + * + * @type {!goog.net.WebChannel.ErrorStatus} + */ +goog.net.WebChannel.ErrorEvent.prototype.status; diff --git a/edit/closure-library/closure/goog/labs/net/webchannel/basetestchannel.js b/edit/closure-library/closure/goog/labs/net/webchannel/basetestchannel.js new file mode 100644 index 0000000000..7f667a531a --- /dev/null +++ b/edit/closure-library/closure/goog/labs/net/webchannel/basetestchannel.js @@ -0,0 +1,639 @@ +// Copyright 2006 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview Base TestChannel implementation. + * + */ + + +goog.provide('goog.labs.net.webChannel.BaseTestChannel'); + +goog.require('goog.json.EvalJsonProcessor'); +goog.require('goog.labs.net.webChannel.Channel'); +goog.require('goog.labs.net.webChannel.WebChannelRequest'); +goog.require('goog.labs.net.webChannel.requestStats'); +goog.require('goog.labs.net.webChannel.requestStats.ServerReachability'); +goog.require('goog.labs.net.webChannel.requestStats.Stat'); +goog.require('goog.net.tmpnetwork'); + + + +/** + * A TestChannel is used during the first part of channel negotiation + * with the server to create the channel. It helps us determine whether we're + * behind a buffering proxy. It also runs the logic to see if the channel + * has been blocked by a network administrator. + * + * @constructor + * @param {!goog.labs.net.webChannel.Channel} channel The channel + * that owns this test channel. + * @param {!goog.labs.net.webChannel.WebChannelDebug} channelDebug A + * WebChannelDebug instance to use for logging. + * @implements {goog.labs.net.webChannel.Channel} + */ +goog.labs.net.webChannel.BaseTestChannel = function(channel, channelDebug) { + /** + * The channel that owns this test channel + * @type {!goog.labs.net.webChannel.Channel} + * @private + */ + this.channel_ = channel; + + /** + * The channel debug to use for logging + * @type {!goog.labs.net.webChannel.WebChannelDebug} + * @private + */ + this.channelDebug_ = channelDebug; + + /** + * Parser for a response payload. Defaults to use + * {@code goog.json.unsafeParse}. The parser should return an array. + * @type {goog.string.Parser} + * @private + */ + this.parser_ = new goog.json.EvalJsonProcessor(null, true); +}; + + +goog.scope(function() { +var BaseTestChannel = goog.labs.net.webChannel.BaseTestChannel; +var WebChannelDebug = goog.labs.net.webChannel.WebChannelDebug; +var WebChannelRequest = goog.labs.net.webChannel.WebChannelRequest; +var requestStats = goog.labs.net.webChannel.requestStats; +var Channel = goog.labs.net.webChannel.Channel; + + +/** + * Extra HTTP headers to add to all the requests sent to the server. + * @type {Object} + * @private + */ +BaseTestChannel.prototype.extraHeaders_ = null; + + +/** + * The test request. + * @type {WebChannelRequest} + * @private + */ +BaseTestChannel.prototype.request_ = null; + + +/** + * Whether we have received the first result as an intermediate result. This + * helps us determine whether we're behind a buffering proxy. + * @type {boolean} + * @private + */ +BaseTestChannel.prototype.receivedIntermediateResult_ = false; + + +/** + * The time when the test request was started. We use timing in IE as + * a heuristic for whether we're behind a buffering proxy. + * @type {?number} + * @private + */ +BaseTestChannel.prototype.startTime_ = null; + + +/** + * The time for of the first result part. We use timing in IE as a + * heuristic for whether we're behind a buffering proxy. + * @type {?number} + * @private + */ +BaseTestChannel.prototype.firstTime_ = null; + + +/** + * The time for of the last result part. We use timing in IE as a + * heuristic for whether we're behind a buffering proxy. + * @type {?number} + * @private + */ +BaseTestChannel.prototype.lastTime_ = null; + + +/** + * The relative path for test requests. + * @type {?string} + * @private + */ +BaseTestChannel.prototype.path_ = null; + + +/** + * The state of the state machine for this object. + * + * @type {?number} + * @private + */ +BaseTestChannel.prototype.state_ = null; + + +/** + * The last status code received. + * @type {number} + * @private + */ +BaseTestChannel.prototype.lastStatusCode_ = -1; + + +/** + * A subdomain prefix for using a subdomain in IE for the backchannel + * requests. + * @type {?string} + * @private + */ +BaseTestChannel.prototype.hostPrefix_ = null; + + +/** + * A subdomain prefix for testing whether the channel was disabled by + * a network administrator; + * @type {?string} + * @private + */ +BaseTestChannel.prototype.blockedPrefix_ = null; + + +/** + * Enum type for the test channel state machine + * @enum {number} + * @private + */ +BaseTestChannel.State_ = { + /** + * The state for the TestChannel state machine where we making the + * initial call to get the server configured parameters. + */ + INIT: 0, + + /** + * The state for the TestChannel state machine where we're checking to + * see if the channel has been blocked. + */ + CHECKING_BLOCKED: 1, + + /** + * The state for the TestChannel state machine where we're checking to + * se if we're behind a buffering proxy. + */ + CONNECTION_TESTING: 2 +}; + + +/** + * Time in MS for waiting for the request to see if the channel is blocked. + * If the response takes longer than this many ms, we assume the request has + * failed. + * @type {number} + * @private + */ +BaseTestChannel.BLOCKED_TIMEOUT_ = 5000; + + +/** + * Number of attempts to try to see if the check to see if we're blocked + * succeeds. Sometimes the request can fail because of flaky network conditions + * and checking multiple times reduces false positives. + * @type {number} + * @private + */ +BaseTestChannel.BLOCKED_RETRIES_ = 3; + + +/** + * Time in ms between retries of the blocked request + * @type {number} + * @private + */ +BaseTestChannel.BLOCKED_PAUSE_BETWEEN_RETRIES_ = 2000; + + +/** + * Time between chunks in the test connection that indicates that we + * are not behind a buffering proxy. This value should be less than or + * equals to the time between chunks sent from the server. + * @type {number} + * @private + */ +BaseTestChannel.MIN_TIME_EXPECTED_BETWEEN_DATA_ = 500; + + +/** + * Sets extra HTTP headers to add to all the requests sent to the server. + * + * @param {Object} extraHeaders The HTTP headers. + */ +BaseTestChannel.prototype.setExtraHeaders = function(extraHeaders) { + this.extraHeaders_ = extraHeaders; +}; + + +/** + * Sets a new parser for the response payload. A custom parser may be set to + * avoid using eval(), for example. + * By default, the parser uses {@code goog.json.unsafeParse}. + * @param {!goog.string.Parser} parser Parser. + */ +BaseTestChannel.prototype.setParser = function(parser) { + this.parser_ = parser; +}; + + +/** + * Starts the test channel. This initiates connections to the server. + * + * @param {string} path The relative uri for the test connection. + */ +BaseTestChannel.prototype.connect = function(path) { + this.path_ = path; + var sendDataUri = this.channel_.getForwardChannelUri(this.path_); + + requestStats.notifyStatEvent(requestStats.Stat.TEST_STAGE_ONE_START); + this.startTime_ = goog.now(); + + // If the channel already has the result of the first test, then skip it. + var firstTestResults = this.channel_.getFirstTestResults(); + if (goog.isDefAndNotNull(firstTestResults)) { + this.hostPrefix_ = this.channel_.correctHostPrefix(firstTestResults[0]); + this.blockedPrefix_ = firstTestResults[1]; + if (this.blockedPrefix_) { + this.state_ = BaseTestChannel.State_.CHECKING_BLOCKED; + this.checkBlocked_(); + } else { + this.state_ = BaseTestChannel.State_.CONNECTION_TESTING; + this.connectStage2_(); + } + return; + } + + // the first request returns server specific parameters + sendDataUri.setParameterValues('MODE', 'init'); + this.request_ = WebChannelRequest.createChannelRequest( + this, this.channelDebug_); + this.request_.setExtraHeaders(this.extraHeaders_); + this.request_.xmlHttpGet(sendDataUri, false /* decodeChunks */, + null /* hostPrefix */, true /* opt_noClose */); + this.state_ = BaseTestChannel.State_.INIT; +}; + + +/** + * Checks to see whether the channel is blocked. This is for implementing the + * feature that allows network administrators to block Gmail Chat. The + * strategy to determine if we're blocked is to try to load an image off a + * special subdomain that network administrators will block access to if they + * are trying to block chat. For Gmail Chat, the subdomain is + * chatenabled.mail.google.com. + * @private + */ +BaseTestChannel.prototype.checkBlocked_ = function() { + var uri = this.channel_.createDataUri(this.blockedPrefix_, + '/mail/images/cleardot.gif'); + uri.makeUnique(); + goog.net.tmpnetwork.testLoadImageWithRetries(uri.toString(), + BaseTestChannel.BLOCKED_TIMEOUT_, + goog.bind(this.checkBlockedCallback_, this), + BaseTestChannel.BLOCKED_RETRIES_, + BaseTestChannel.BLOCKED_PAUSE_BETWEEN_RETRIES_); + requestStats.notifyServerReachabilityEvent( + requestStats.ServerReachability.REQUEST_MADE); +}; + + +/** + * Callback for testLoadImageWithRetries to check if a channel is blocked. + * @param {boolean} succeeded Whether the request succeeded. + * @private + */ +BaseTestChannel.prototype.checkBlockedCallback_ = function( + succeeded) { + if (succeeded) { + this.state_ = BaseTestChannel.State_.CONNECTION_TESTING; + this.connectStage2_(); + } else { + requestStats.notifyStatEvent(requestStats.Stat.CHANNEL_BLOCKED); + this.channel_.testConnectionBlocked(this); + } + + // We don't dispatch a REQUEST_FAILED server reachability event when the + // block request fails, as such a failure is not a good signal that the + // server has actually become unreachable. + if (succeeded) { + requestStats.notifyServerReachabilityEvent( + requestStats.ServerReachability.REQUEST_SUCCEEDED); + } +}; + + +/** + * Begins the second stage of the test channel where we test to see if we're + * behind a buffering proxy. The server sends back a multi-chunked response + * with the first chunk containing the content '1' and then two seconds later + * sending the second chunk containing the content '2'. Depending on how we + * receive the content, we can tell if we're behind a buffering proxy. + * @private + */ +BaseTestChannel.prototype.connectStage2_ = function() { + this.channelDebug_.debug('TestConnection: starting stage 2'); + + // If the second test results are available, skip its execution. + var secondTestResults = this.channel_.getSecondTestResults(); + if (goog.isDefAndNotNull(secondTestResults)) { + this.channelDebug_.debug( + 'TestConnection: skipping stage 2, precomputed result is ' + + secondTestResults ? 'Buffered' : 'Unbuffered'); + requestStats.notifyStatEvent(requestStats.Stat.TEST_STAGE_TWO_START); + if (secondTestResults) { // Buffered/Proxy connection + requestStats.notifyStatEvent(requestStats.Stat.PROXY); + this.channel_.testConnectionFinished(this, false); + } else { // Unbuffered/NoProxy connection + requestStats.notifyStatEvent(requestStats.Stat.NOPROXY); + this.channel_.testConnectionFinished(this, true); + } + return; // Skip the test + } + this.request_ = WebChannelRequest.createChannelRequest( + this, this.channelDebug_); + this.request_.setExtraHeaders(this.extraHeaders_); + var recvDataUri = this.channel_.getBackChannelUri(this.hostPrefix_, + /** @type {string} */ (this.path_)); + + requestStats.notifyStatEvent(requestStats.Stat.TEST_STAGE_TWO_START); + if (!WebChannelRequest.supportsXhrStreaming()) { + recvDataUri.setParameterValues('TYPE', 'html'); + this.request_.tridentGet(recvDataUri, Boolean(this.hostPrefix_)); + } else { + recvDataUri.setParameterValues('TYPE', 'xmlhttp'); + this.request_.xmlHttpGet(recvDataUri, false /** decodeChunks */, + this.hostPrefix_, false /** opt_noClose */); + } +}; + + +/** + * @override + */ +BaseTestChannel.prototype.createXhrIo = function(hostPrefix) { + return this.channel_.createXhrIo(hostPrefix); +}; + + +/** + * Aborts the test channel. + */ +BaseTestChannel.prototype.abort = function() { + if (this.request_) { + this.request_.cancel(); + this.request_ = null; + } + this.lastStatusCode_ = -1; +}; + + +/** + * Returns whether the test channel is closed. The ChannelRequest object expects + * this method to be implemented on its handler. + * + * @return {boolean} Whether the channel is closed. + * @override + */ +BaseTestChannel.prototype.isClosed = function() { + return false; +}; + + +/** + * Callback from ChannelRequest for when new data is received + * + * @param {WebChannelRequest} req The request object. + * @param {string} responseText The text of the response. + * @override + */ +BaseTestChannel.prototype.onRequestData = function(req, responseText) { + this.lastStatusCode_ = req.getLastStatusCode(); + if (this.state_ == BaseTestChannel.State_.INIT) { + this.channelDebug_.debug('TestConnection: Got data for stage 1'); + if (!responseText) { + this.channelDebug_.debug('TestConnection: Null responseText'); + // The server should always send text; something is wrong here + this.channel_.testConnectionFailure(this, + WebChannelRequest.Error.BAD_DATA); + return; + } + /** @preserveTry */ + try { + var respArray = this.parser_.parse(responseText); + } catch (e) { + this.channelDebug_.dumpException(e); + this.channel_.testConnectionFailure(this, + WebChannelRequest.Error.BAD_DATA); + return; + } + this.hostPrefix_ = this.channel_.correctHostPrefix(respArray[0]); + this.blockedPrefix_ = respArray[1]; + } else if (this.state_ == BaseTestChannel.State_.CONNECTION_TESTING) { + if (this.receivedIntermediateResult_) { + requestStats.notifyStatEvent(requestStats.Stat.TEST_STAGE_TWO_DATA_TWO); + this.lastTime_ = goog.now(); + } else { + // '11111' is used instead of '1' to prevent a small amount of buffering + // by Safari. + if (responseText == '11111') { + requestStats.notifyStatEvent(requestStats.Stat.TEST_STAGE_TWO_DATA_ONE); + this.receivedIntermediateResult_ = true; + this.firstTime_ = goog.now(); + if (this.checkForEarlyNonBuffered_()) { + // If early chunk detection is on, and we passed the tests, + // assume HTTP_OK, cancel the test and turn on noproxy mode. + this.lastStatusCode_ = 200; + this.request_.cancel(); + this.channelDebug_.debug( + 'Test connection succeeded; using streaming connection'); + requestStats.notifyStatEvent(requestStats.Stat.NOPROXY); + this.channel_.testConnectionFinished(this, true); + } + } else { + requestStats.notifyStatEvent( + requestStats.Stat.TEST_STAGE_TWO_DATA_BOTH); + this.firstTime_ = this.lastTime_ = goog.now(); + this.receivedIntermediateResult_ = false; + } + } + } +}; + + +/** + * Callback from ChannelRequest that indicates a request has completed. + * + * @param {WebChannelRequest} req The request object. + * @override + */ +BaseTestChannel.prototype.onRequestComplete = function(req) { + this.lastStatusCode_ = this.request_.getLastStatusCode(); + if (!this.request_.getSuccess()) { + this.channelDebug_.debug( + 'TestConnection: request failed, in state ' + this.state_); + if (this.state_ == BaseTestChannel.State_.INIT) { + requestStats.notifyStatEvent(requestStats.Stat.TEST_STAGE_ONE_FAILED); + } else if (this.state_ == BaseTestChannel.State_.CONNECTION_TESTING) { + requestStats.notifyStatEvent(requestStats.Stat.TEST_STAGE_TWO_FAILED); + } + this.channel_.testConnectionFailure(this, + /** @type {WebChannelRequest.Error} */ + (this.request_.getLastError())); + return; + } + + if (this.state_ == BaseTestChannel.State_.INIT) { + this.channelDebug_.debug( + 'TestConnection: request complete for initial check'); + if (this.blockedPrefix_) { + this.state_ = BaseTestChannel.State_.CHECKING_BLOCKED; + this.checkBlocked_(); + } else { + this.state_ = BaseTestChannel.State_.CONNECTION_TESTING; + this.connectStage2_(); + } + } else if (this.state_ == BaseTestChannel.State_.CONNECTION_TESTING) { + this.channelDebug_.debug('TestConnection: request complete for stage 2'); + var goodConn = false; + + if (!WebChannelRequest.supportsXhrStreaming()) { + // we always get Trident responses in separate calls to + // onRequestData, so we have to check the time they came + var ms = this.lastTime_ - this.firstTime_; + if (ms < 200) { + // TODO: need to empirically verify that this number is OK + // for slow computers + goodConn = false; + } else { + goodConn = true; + } + } else { + goodConn = this.receivedIntermediateResult_; + } + + if (goodConn) { + this.channelDebug_.debug( + 'Test connection succeeded; using streaming connection'); + requestStats.notifyStatEvent(requestStats.Stat.NOPROXY); + this.channel_.testConnectionFinished(this, true); + } else { + this.channelDebug_.debug( + 'Test connection failed; not using streaming'); + requestStats.notifyStatEvent(requestStats.Stat.PROXY); + this.channel_.testConnectionFinished(this, false); + } + } +}; + + +/** + * Returns the last status code received for a request. + * @return {number} The last status code received for a request. + */ +BaseTestChannel.prototype.getLastStatusCode = function() { + return this.lastStatusCode_; +}; + + +/** + * @return {boolean} Whether we should be using secondary domains when the + * server instructs us to do so. + * @override + */ +BaseTestChannel.prototype.shouldUseSecondaryDomains = function() { + return this.channel_.shouldUseSecondaryDomains(); +}; + + +/** + * @override + */ +BaseTestChannel.prototype.isActive = function() { + return this.channel_.isActive(); +}; + + +/** + * @return {boolean} True if test stage 2 detected a non-buffered + * channel early and early no buffering detection is enabled. + * @private + */ +BaseTestChannel.prototype.checkForEarlyNonBuffered_ = function() { + var ms = this.firstTime_ - this.startTime_; + + // we always get Trident responses in separate calls to + // onRequestData, so we have to check the time that the first came in + // and verify that the data arrived before the second portion could + // have been sent. For all other browser's we skip the timing test. + return WebChannelRequest.supportsXhrStreaming() || + ms < BaseTestChannel.MIN_TIME_EXPECTED_BETWEEN_DATA_; +}; + + +/** + * @override + */ +BaseTestChannel.prototype.getForwardChannelUri = goog.abstractMethod; + + +/** + * @override + */ +BaseTestChannel.prototype.getBackChannelUri = goog.abstractMethod; + + +/** + * @override + */ +BaseTestChannel.prototype.correctHostPrefix = goog.abstractMethod; + + +/** + * @override + */ +BaseTestChannel.prototype.createDataUri = goog.abstractMethod; + + +/** + * @override + */ +BaseTestChannel.prototype.testConnectionBlocked = goog.abstractMethod; + + +/** + * @override + */ +BaseTestChannel.prototype.testConnectionFinished = goog.abstractMethod; + + +/** + * @override + */ +BaseTestChannel.prototype.testConnectionFailure = goog.abstractMethod; + + +/** + * @override + */ +BaseTestChannel.prototype.getFirstTestResults = goog.abstractMethod; +}); // goog.scope diff --git a/edit/closure-library/closure/goog/labs/net/webchannel/channel.js b/edit/closure-library/closure/goog/labs/net/webchannel/channel.js new file mode 100644 index 0000000000..62332bc15f --- /dev/null +++ b/edit/closure-library/closure/goog/labs/net/webchannel/channel.js @@ -0,0 +1,195 @@ +// Copyright 2013 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview A shared interface for WebChannelBase and BaseTestChannel. + * + * @visibility {//visibility:private} + */ + + +goog.provide('goog.labs.net.webChannel.Channel'); + + + +/** + * Shared interface between Channel and TestChannel to support callbacks + * between WebChannelBase and BaseTestChannel and between Channel and + * ChannelRequest. + * + * @interface + */ +goog.labs.net.webChannel.Channel = function() {}; + + +goog.scope(function() { +var Channel = goog.labs.net.webChannel.Channel; + + +/** + * Determines whether to use a secondary domain when the server gives us + * a host prefix. This allows us to work around browser per-domain + * connection limits. + * + * Currently, we use secondary domains when using Trident's ActiveXObject, + * because it supports cross-domain requests out of the box. Note that in IE10 + * we no longer use ActiveX since it's not supported in Metro mode and IE10 + * supports XHR streaming. + * + * If you need to use secondary domains on other browsers and IE10, + * you have two choices: + * 1) If you only care about browsers that support CORS + * (https://developer.mozilla.org/en-US/docs/HTTP_access_control), you + * can use {@link #setSupportsCrossDomainXhrs} and set the appropriate + * CORS response headers on the server. + * 2) Or, override this method in a subclass, and make sure that those + * browsers use some messaging mechanism that works cross-domain (e.g + * iframes and window.postMessage). + * + * @return {boolean} Whether to use secondary domains. + * @see http://code.google.com/p/closure-library/issues/detail?id=339 + */ +Channel.prototype.shouldUseSecondaryDomains = goog.abstractMethod; + + +/** + * Called when creating an XhrIo object. Override in a subclass if + * you need to customize the behavior, for example to enable the creation of + * XHR's capable of calling a secondary domain. Will also allow calling + * a secondary domain if withCredentials (CORS) is enabled. + * @param {?string} hostPrefix The host prefix, if we need an XhrIo object + * capable of calling a secondary domain. + * @return {!goog.net.XhrIo} A new XhrIo object. + */ +Channel.prototype.createXhrIo = goog.abstractMethod; + + +/** + * Callback from ChannelRequest that indicates a request has completed. + * @param {goog.labs.net.webChannel.WebChannelRequest} request + * The request object. + */ +Channel.prototype.onRequestComplete = goog.abstractMethod; + + +/** + * Returns whether the channel is closed + * @return {boolean} true if the channel is closed. + */ +Channel.prototype.isClosed = goog.abstractMethod; + + +/** + * Callback from ChannelRequest for when new data is received + * @param {goog.labs.net.webChannel.WebChannelRequest} request + * The request object. + * @param {string} responseText The text of the response. + */ +Channel.prototype.onRequestData = goog.abstractMethod; + + +/** + * Gets whether this channel is currently active. This is used to determine the + * length of time to wait before retrying. This call delegates to the handler. + * @return {boolean} Whether the channel is currently active. + */ +Channel.prototype.isActive = goog.abstractMethod; + + +/** + * Not needed for testchannel. + * + * Gets the Uri used for the connection that sends data to the server. + * @param {string} path The path on the host. + * @return {goog.Uri} The forward channel URI. + */ +Channel.prototype.getForwardChannelUri = goog.abstractMethod; + + +/** + * Not needed for testchannel. + * + * Gets the Uri used for the connection that receives data from the server. + * @param {?string} hostPrefix The host prefix. + * @param {string} path The path on the host. + * @return {goog.Uri} The back channel URI. + */ +Channel.prototype.getBackChannelUri = goog.abstractMethod; + + +/** + * Not needed for testchannel. + * + * Allows the handler to override a host prefix provided by the server. Will + * be called whenever the channel has received such a prefix and is considering + * its use. + * @param {?string} serverHostPrefix The host prefix provided by the server. + * @return {?string} The host prefix the client should use. + */ +Channel.prototype.correctHostPrefix = goog.abstractMethod; + + +/** + * Not needed for testchannel. + * + * Creates a data Uri applying logic for secondary hostprefix, port + * overrides, and versioning. + * @param {?string} hostPrefix The host prefix. + * @param {string} path The path on the host (may be absolute or relative). + * @param {number=} opt_overridePort Optional override port. + * @return {goog.Uri} The data URI. + */ +Channel.prototype.createDataUri = goog.abstractMethod; + + +/** + * Not needed for testchannel. + * + * Callback from TestChannel for when the channel is blocked. + * @param {goog.labs.net.webChannel.BaseTestChannel} testChannel + * The TestChannel. + */ +Channel.prototype.testConnectionBlocked = goog.abstractMethod; + + +/** + * Not needed for testchannel. + * + * Callback from TestChannel for when the channel is finished. + * @param {goog.labs.net.webChannel.BaseTestChannel} testChannel + * The TestChannel. + * @param {boolean} useChunked Whether we can chunk responses. + */ +Channel.prototype.testConnectionFinished = goog.abstractMethod; + + +/** + * Not needed for testchannel. + * + * Callback from TestChannel for when the channel has an error. + * @param {goog.labs.net.webChannel.BaseTestChannel} testChannel + * The TestChannel. + * @param {goog.labs.net.webChannel.WebChannelRequest.Error} errorCode + * The error code of the failure. + */ +Channel.prototype.testConnectionFailure = goog.abstractMethod; + + +/** + * Not needed for testchannel. + * Gets the results for the first channel test + * @return {Array.} The results. + */ +Channel.prototype.getFirstTestResults = goog.abstractMethod; +}); // goog.scope diff --git a/edit/closure-library/closure/goog/labs/net/webchannel/requeststats.js b/edit/closure-library/closure/goog/labs/net/webchannel/requeststats.js new file mode 100644 index 0000000000..580b8b75b1 --- /dev/null +++ b/edit/closure-library/closure/goog/labs/net/webchannel/requeststats.js @@ -0,0 +1,391 @@ +// Copyright 2013 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview Static utilities for collecting stats associated with + * WebChannelRequest. + * + * @visibility {//visibility:private} + */ + + +goog.provide('goog.labs.net.webChannel.requestStats'); +goog.provide('goog.labs.net.webChannel.requestStats.Event'); +goog.provide('goog.labs.net.webChannel.requestStats.ServerReachability'); +goog.provide('goog.labs.net.webChannel.requestStats.ServerReachabilityEvent'); +goog.provide('goog.labs.net.webChannel.requestStats.Stat'); +goog.provide('goog.labs.net.webChannel.requestStats.StatEvent'); +goog.provide('goog.labs.net.webChannel.requestStats.TimingEvent'); + +goog.require('goog.events.Event'); +goog.require('goog.events.EventTarget'); + + +goog.scope(function() { +var requestStats = goog.labs.net.webChannel.requestStats; + + +/** + * Events fired. + * @type {Object} + */ +requestStats.Event = {}; + + +/** + * Singleton event target for firing stat events + * @type {goog.events.EventTarget} + * @private + */ +requestStats.statEventTarget_ = new goog.events.EventTarget(); + + +/** + * The type of event that occurs every time some information about how reachable + * the server is is discovered. + */ +requestStats.Event.SERVER_REACHABILITY_EVENT = 'serverreachability'; + + +/** + * Types of events which reveal information about the reachability of the + * server. + * @enum {number} + */ +requestStats.ServerReachability = { + REQUEST_MADE: 1, + REQUEST_SUCCEEDED: 2, + REQUEST_FAILED: 3, + BACK_CHANNEL_ACTIVITY: 4 +}; + + + +/** + * Event class for SERVER_REACHABILITY_EVENT. + * + * @param {goog.events.EventTarget} target The stat event target for + the channel. + * @param {requestStats.ServerReachability} reachabilityType + * The reachability event type. + * @constructor + * @extends {goog.events.Event} + */ +requestStats.ServerReachabilityEvent = function(target, reachabilityType) { + goog.events.Event.call(this, + requestStats.Event.SERVER_REACHABILITY_EVENT, target); + + /** + * @type {requestStats.ServerReachability} + */ + this.reachabilityType = reachabilityType; +}; +goog.inherits(requestStats.ServerReachabilityEvent, goog.events.Event); + + +/** + * Notify the channel that a particular fine grained network event has occurred. + * Should be considered package-private. + * @param {requestStats.ServerReachability} reachabilityType + * The reachability event type. + */ +requestStats.notifyServerReachabilityEvent = function(reachabilityType) { + var target = requestStats.statEventTarget_; + target.dispatchEvent( + new requestStats.ServerReachabilityEvent(target, reachabilityType)); +}; + + +/** + * Stat Event that fires when things of interest happen that may be useful for + * applications to know about for stats or debugging purposes. + */ +requestStats.Event.STAT_EVENT = 'statevent'; + + +/** + * Enum that identifies events for statistics that are interesting to track. + * TODO(user) - Change name not to use Event or use EventTarget + * @enum {number} + */ +requestStats.Stat = { + /** Event indicating a new connection attempt. */ + CONNECT_ATTEMPT: 0, + + /** Event indicating a connection error due to a general network problem. */ + ERROR_NETWORK: 1, + + /** + * Event indicating a connection error that isn't due to a general network + * problem. + */ + ERROR_OTHER: 2, + + /** Event indicating the start of test stage one. */ + TEST_STAGE_ONE_START: 3, + + + /** Event indicating the channel is blocked by a network administrator. */ + CHANNEL_BLOCKED: 4, + + /** Event indicating the start of test stage two. */ + TEST_STAGE_TWO_START: 5, + + /** Event indicating the first piece of test data was received. */ + TEST_STAGE_TWO_DATA_ONE: 6, + + /** + * Event indicating that the second piece of test data was received and it was + * recieved separately from the first. + */ + TEST_STAGE_TWO_DATA_TWO: 7, + + /** Event indicating both pieces of test data were received simultaneously. */ + TEST_STAGE_TWO_DATA_BOTH: 8, + + /** Event indicating stage one of the test request failed. */ + TEST_STAGE_ONE_FAILED: 9, + + /** Event indicating stage two of the test request failed. */ + TEST_STAGE_TWO_FAILED: 10, + + /** + * Event indicating that a buffering proxy is likely between the client and + * the server. + */ + PROXY: 11, + + /** + * Event indicating that no buffering proxy is likely between the client and + * the server. + */ + NOPROXY: 12, + + /** Event indicating an unknown SID error. */ + REQUEST_UNKNOWN_SESSION_ID: 13, + + /** Event indicating a bad status code was received. */ + REQUEST_BAD_STATUS: 14, + + /** Event indicating incomplete data was received */ + REQUEST_INCOMPLETE_DATA: 15, + + /** Event indicating bad data was received */ + REQUEST_BAD_DATA: 16, + + /** Event indicating no data was received when data was expected. */ + REQUEST_NO_DATA: 17, + + /** Event indicating a request timeout. */ + REQUEST_TIMEOUT: 18, + + /** + * Event indicating that the server never received our hanging GET and so it + * is being retried. + */ + BACKCHANNEL_MISSING: 19, + + /** + * Event indicating that we have determined that our hanging GET is not + * receiving data when it should be. Thus it is dead dead and will be retried. + */ + BACKCHANNEL_DEAD: 20, + + /** + * The browser declared itself offline during the lifetime of a request, or + * was offline when a request was initially made. + */ + BROWSER_OFFLINE: 21, + + /** ActiveX is blocked by the machine's admin settings. */ + ACTIVE_X_BLOCKED: 22 +}; + + + +/** + * Event class for STAT_EVENT. + * + * @param {goog.events.EventTarget} eventTarget The stat event target for + the channel. + * @param {requestStats.Stat} stat The stat. + * @constructor + * @extends {goog.events.Event} + */ +requestStats.StatEvent = function(eventTarget, stat) { + goog.events.Event.call(this, requestStats.Event.STAT_EVENT, eventTarget); + + /** + * The stat + * @type {requestStats.Stat} + */ + this.stat = stat; + +}; +goog.inherits(requestStats.StatEvent, goog.events.Event); + + +/** + * Returns the singleton event target for stat events. + * @return {goog.events.EventTarget} The event target for stat events. + */ +requestStats.getStatEventTarget = function() { + return requestStats.statEventTarget_; +}; + + +/** + * Helper function to call the stat event callback. + * @param {requestStats.Stat} stat The stat. + */ +requestStats.notifyStatEvent = function(stat) { + var target = requestStats.statEventTarget_; + target.dispatchEvent(new requestStats.StatEvent(target, stat)); +}; + + +/** + * An event that fires when POST requests complete successfully, indicating + * the size of the POST and the round trip time. + */ +requestStats.Event.TIMING_EVENT = 'timingevent'; + + + +/** + * Event class for requestStats.Event.TIMING_EVENT + * + * @param {goog.events.EventTarget} target The stat event target for + the channel. + * @param {number} size The number of characters in the POST data. + * @param {number} rtt The total round trip time from POST to response in MS. + * @param {number} retries The number of times the POST had to be retried. + * @constructor + * @extends {goog.events.Event} + */ +requestStats.TimingEvent = function(target, size, rtt, retries) { + goog.events.Event.call(this, + requestStats.Event.TIMING_EVENT, target); + + /** + * @type {number} + */ + this.size = size; + + /** + * @type {number} + */ + this.rtt = rtt; + + /** + * @type {number} + */ + this.retries = retries; + +}; +goog.inherits(requestStats.TimingEvent, goog.events.Event); + + +/** + * Helper function to notify listeners about POST request performance. + * + * @param {number} size Number of characters in the POST data. + * @param {number} rtt The amount of time from POST start to response. + * @param {number} retries The number of times the POST had to be retried. + */ +requestStats.notifyTimingEvent = function(size, rtt, retries) { + var target = requestStats.statEventTarget_; + target.dispatchEvent( + new requestStats.TimingEvent( + target, size, rtt, retries)); +}; + + +/** + * Allows the application to set an execution hooks for when a channel + * starts processing requests. This is useful to track timing or logging + * special information. The function takes no parameters and return void. + * @param {Function} startHook The function for the start hook. + */ +requestStats.setStartThreadExecutionHook = function(startHook) { + requestStats.startExecutionHook_ = startHook; +}; + + +/** + * Allows the application to set an execution hooks for when a channel + * stops processing requests. This is useful to track timing or logging + * special information. The function takes no parameters and return void. + * @param {Function} endHook The function for the end hook. + */ +requestStats.setEndThreadExecutionHook = function(endHook) { + requestStats.endExecutionHook_ = endHook; +}; + + +/** + * Application provided execution hook for the start hook. + * + * @type {Function} + * @private + */ +requestStats.startExecutionHook_ = function() { }; + + +/** + * Application provided execution hook for the end hook. + * + * @type {Function} + * @private + */ +requestStats.endExecutionHook_ = function() { }; + + +/** + * Helper function to call the start hook + */ +requestStats.onStartExecution = function() { + requestStats.startExecutionHook_(); +}; + + +/** + * Helper function to call the end hook + */ +requestStats.onEndExecution = function() { + requestStats.endExecutionHook_(); +}; + + +/** + * Wrapper around SafeTimeout which calls the start and end execution hooks + * with a try...finally block. + * @param {Function} fn The callback function. + * @param {number} ms The time in MS for the timer. + * @return {number} The ID of the timer. + */ +requestStats.setTimeout = function(fn, ms) { + if (!goog.isFunction(fn)) { + throw Error('Fn must not be null and must be a function'); + } + return goog.global.setTimeout(function() { + requestStats.onStartExecution(); + try { + fn(); + } finally { + requestStats.onEndExecution(); + } + }, ms); +}; +}); // goog.scope diff --git a/edit/closure-library/closure/goog/labs/net/webchannel/webchannelbase.js b/edit/closure-library/closure/goog/labs/net/webchannel/webchannelbase.js new file mode 100644 index 0000000000..438c9914bc --- /dev/null +++ b/edit/closure-library/closure/goog/labs/net/webchannel/webchannelbase.js @@ -0,0 +1,2171 @@ +// Copyright 2006 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview Base WebChannel implementation. + * + */ + + +goog.provide('goog.labs.net.webChannel.WebChannelBase'); + +goog.require('goog.Uri'); +goog.require('goog.array'); +goog.require('goog.asserts'); +goog.require('goog.debug.TextFormatter'); +goog.require('goog.json'); +goog.require('goog.json.EvalJsonProcessor'); +goog.require('goog.labs.net.webChannel.BaseTestChannel'); +goog.require('goog.labs.net.webChannel.Channel'); +goog.require('goog.labs.net.webChannel.WebChannelDebug'); +goog.require('goog.labs.net.webChannel.WebChannelRequest'); +goog.require('goog.labs.net.webChannel.requestStats'); +goog.require('goog.labs.net.webChannel.requestStats.Stat'); +goog.require('goog.log'); +goog.require('goog.net.XhrIo'); +goog.require('goog.net.tmpnetwork'); +goog.require('goog.string'); +goog.require('goog.structs'); +goog.require('goog.structs.CircularBuffer'); + +goog.scope(function() { +var BaseTestChannel = goog.labs.net.webChannel.BaseTestChannel; +var WebChannelDebug = goog.labs.net.webChannel.WebChannelDebug; +var WebChannelRequest = goog.labs.net.webChannel.WebChannelRequest; +var requestStats = goog.labs.net.webChannel.requestStats; + + + +/** + * This WebChannel implementation is branched off goog.net.BrowserChannel + * for now. Ongoing changes to goog.net.BrowserChannel will be back + * ported to this implementation as needed. + * + * @param {string=} opt_clientVersion An application-specific version number + * that is sent to the server when connected. + * @param {!Array.=} opt_firstTestResults Previously determined results + * of the first channel test. + * @param {boolean=} opt_secondTestResults Previously determined results + * of the second channel test. + * @constructor + * @implements {goog.labs.net.webChannel.Channel} + */ +goog.labs.net.webChannel.WebChannelBase = function( + opt_clientVersion, opt_firstTestResults, opt_secondTestResults) { + /** + * The application specific version that is passed to the server. + * @private {?string} + */ + this.clientVersion_ = opt_clientVersion || null; + + /** + * An array of queued maps that need to be sent to the server. + * @private {!Array.} + */ + this.outgoingMaps_ = []; + + /** + * An array of dequeued maps that we have either received a non-successful + * response for, or no response at all, and which therefore may or may not + * have been received by the server. + * @private {!Array.} + */ + this.pendingMaps_ = []; + + /** + * The channel debug used for logging + * @private {!WebChannelDebug} + */ + this.channelDebug_ = new WebChannelDebug(); + + /** + * Parser for a response payload. Defaults to use + * {@code goog.json.unsafeParse}. The parser should return an array. + * @private {!goog.string.Parser} + */ + this.parser_ = new goog.json.EvalJsonProcessor(null, true); + + /** + * An array of results for the first test call. + * @private {Array.} + */ + this.firstTestResults_ = opt_firstTestResults || null; + + /** + * The results of the second test. True implies the + * connection is buffered, False means unbuffered, null means that + * the results are not available. + * @private {?boolean} + */ + this.secondTestResults_ = goog.isDefAndNotNull(opt_secondTestResults) ? + opt_secondTestResults : null; + + /** + * Extra HTTP headers to add to all the requests sent to the server. + * @private {Object} + */ + this.extraHeaders_ = null; + + /** + * Extra parameters to add to all the requests sent to the server. + * @private {Object} + */ + this.extraParams_ = null; + + /** + * The current ChannelRequest object for the forwardchannel. + * @private {WebChannelRequest} + */ + this.forwardChannelRequest_ = null; + + /** + * The ChannelRequest object for the backchannel. + * @private {WebChannelRequest} + */ + this.backChannelRequest_ = null; + + /** + * The relative path (in the context of the the page hosting the browser + * channel) for making requests to the server. + * @private {?string} + */ + this.path_ = null; + + /** + * The absolute URI for the forwardchannel request. + * @private {goog.Uri} + */ + this.forwardChannelUri_ = null; + + /** + * The absolute URI for the backchannel request. + * @private {goog.Uri} + */ + this.backChannelUri_ = null; + + /** + * A subdomain prefix for using a subdomain in IE for the backchannel + * requests. + * @private {?string} + */ + this.hostPrefix_ = null; + + /** + * Whether we allow the use of a subdomain in IE for the backchannel requests. + * @private {boolean} + */ + this.allowHostPrefix_ = true; + + /** + * The next id to use for the RID (request identifier) parameter. This + * identifier uniquely identifies the forward channel request. + * @private {number} + */ + this.nextRid_ = 0; + + /** + * The id to use for the next outgoing map. This identifier uniquely + * identifies a sent map. + * @private {number} + */ + this.nextMapId_ = 0; + + /** + * Whether to fail forward-channel requests after one try or a few tries. + * @private {boolean} + */ + this.failFast_ = false; + + /** + * The handler that receive callbacks for state changes and data. + * @private {goog.labs.net.webChannel.WebChannelBase.Handler} + */ + this.handler_ = null; + + /** + * Timer identifier for asynchronously making a forward channel request. + * @private {?number} + */ + this.forwardChannelTimerId_ = null; + + /** + * Timer identifier for asynchronously making a back channel request. + * @private {?number} + */ + this.backChannelTimerId_ = null; + + /** + * Timer identifier for the timer that waits for us to retry the backchannel + * in the case where it is dead and no longer receiving data. + * @private {?number} + */ + this.deadBackChannelTimerId_ = null; + + /** + * The TestChannel object which encapsulates the logic for determining + * interesting network conditions about the client. + * @private {BaseTestChannel} + */ + this.connectionTest_ = null; + + /** + * Whether the client's network conditions can support chunked responses. + * @private {?boolean} + */ + this.useChunked_ = null; + + /** + * Whether chunked mode is allowed. In certain debugging situations, it's + * useful to disable this. + * @private {boolean} + */ + this.allowChunkedMode_ = true; + + /** + * The array identifier of the last array received from the server for the + * backchannel request. + * @private {number} + */ + this.lastArrayId_ = -1; + + /** + * The array id of the last array sent by the server that we know about. + * @private {number} + */ + this.lastPostResponseArrayId_ = -1; + + /** + * The last status code received. + * @private {number} + */ + this.lastStatusCode_ = -1; + + /** + * Number of times we have retried the current forward channel request. + * @private {number} + */ + this.forwardChannelRetryCount_ = 0; + + /** + * Number of times in a row that we have retried the current back channel + * request and received no data. + * @private {number} + */ + this.backChannelRetryCount_ = 0; + + /** + * The attempt id for the current back channel request. Starts at 1 and + * increments for each reconnect. The server uses this to log if our + * connection is flaky or not. + * @private {number} + */ + this.backChannelAttemptId_ = 0; + + /** + * The base part of the time before firing next retry request. Default is 5 + * seconds. Note that a random delay is added (see {@link retryDelaySeedMs_}) + * for all retries, and linear backoff is applied to the sum for subsequent + * retries. + * @private {number} + */ + this.baseRetryDelayMs_ = 5 * 1000; + + /** + * A random time between 0 and this number of MS is added to the + * {@link baseRetryDelayMs_}. Default is 10 seconds. + * @private {number} + */ + this.retryDelaySeedMs_ = 10 * 1000; + + /** + * Maximum number of attempts to connect to the server for forward channel + * requests. Defaults to 2. + * @private {number} + */ + this.forwardChannelMaxRetries_ = 2; + + /** + * The timeout in milliseconds for a forward channel request. Defaults to 20 + * seconds. Note that part of this timeout can be randomized. + * @private {number} + */ + this.forwardChannelRequestTimeoutMs_ = 20 * 1000; + + /** + * A throttle time in ms for readystatechange events for the backchannel. + * Useful for throttling when ready state is INTERACTIVE (partial data). + * + * This throttle is useful if the server sends large data chunks down the + * backchannel. It prevents examining XHR partial data on every readystate + * change event. This is useful because large chunks can trigger hundreds + * of readystatechange events, each of which takes ~5ms or so to handle, + * in turn making the UI unresponsive for a significant period. + * + * If set to zero no throttle is used. + * @private {number} + */ + this.readyStateChangeThrottleMs_ = 0; + + /** + * Whether cross origin requests are supported for the channel. + * + * See {@link goog.net.XhrIo#setWithCredentials}. + * @private {boolean} + */ + this.supportsCrossDomainXhrs_ = false; +}; + +var WebChannelBase = goog.labs.net.webChannel.WebChannelBase; + + + +/** + * Simple container class for a (mapId, map) pair. + * @param {number} mapId The id for this map. + * @param {!Object|!goog.structs.Map} map The map itself. + * @param {!Object=} opt_context The context associated with the map. + * @constructor + */ +WebChannelBase.QueuedMap = function(mapId, map, opt_context) { + /** + * The id for this map. + * @type {number} + */ + this.mapId = mapId; + + /** + * The map itself. + * @type {!Object|!goog.structs.Map} + */ + this.map = map; + + /** + * The context for the map. + * @type {Object} + */ + this.context = opt_context || null; +}; + + +/** + * The latest protocol version that this class supports. We request this version + * from the server when opening the connection. Should match + * LATEST_CHANNEL_VERSION on the server code. + * @type {number} + */ +WebChannelBase.LATEST_CHANNEL_VERSION = 8; + + +/** + * The channel version that we negotiated with the server for this session. + * Starts out as the version we request, and then is changed to the negotiated + * version after the initial open. + * @private {number} + */ +WebChannelBase.prototype.channelVersion_ = + WebChannelBase.LATEST_CHANNEL_VERSION; + + +/** + * Enum type for the channel state machine. + * @enum {number} + */ +WebChannelBase.State = { + /** The channel is closed. */ + CLOSED: 0, + + /** The channel has been initialized but hasn't yet initiated a connection. */ + INIT: 1, + + /** The channel is in the process of opening a connection to the server. */ + OPENING: 2, + + /** The channel is open. */ + OPENED: 3 +}; + + +/** + * The current state of the WebChannel. + * @private {!WebChannelBase.State} + */ +WebChannelBase.prototype.state_ = WebChannelBase.State.INIT; + + +/** + * The timeout in milliseconds for a forward channel request. + * @type {number} + */ +WebChannelBase.FORWARD_CHANNEL_RETRY_TIMEOUT = 20 * 1000; + + +/** + * Maximum number of attempts to connect to the server for back channel + * requests. + * @type {number} + */ +WebChannelBase.BACK_CHANNEL_MAX_RETRIES = 3; + + +/** + * A number in MS of how long we guess the maxmium amount of time a round trip + * to the server should take. In the future this could be substituted with a + * real measurement of the RTT. + * @type {number} + */ +WebChannelBase.RTT_ESTIMATE = 3 * 1000; + + +/** + * When retrying for an inactive channel, we will multiply the total delay by + * this number. + * @type {number} + */ +WebChannelBase.INACTIVE_CHANNEL_RETRY_FACTOR = 2; + + +/** + * Enum type for identifying an error. + * @enum {number} + */ +WebChannelBase.Error = { + /** Value that indicates no error has occurred. */ + OK: 0, + + /** An error due to a request failing. */ + REQUEST_FAILED: 2, + + /** An error due to the user being logged out. */ + LOGGED_OUT: 4, + + /** An error due to server response which contains no data. */ + NO_DATA: 5, + + /** An error due to a server response indicating an unknown session id */ + UNKNOWN_SESSION_ID: 6, + + /** An error due to a server response requesting to stop the channel. */ + STOP: 7, + + /** A general network error. */ + NETWORK: 8, + + /** An error due to the channel being blocked by a network administrator. */ + BLOCKED: 9, + + /** An error due to bad data being returned from the server. */ + BAD_DATA: 10, + + /** An error due to a response that is not parsable. */ + BAD_RESPONSE: 11, + + /** ActiveX is blocked by the machine's admin settings. */ + ACTIVE_X_BLOCKED: 12 +}; + + +/** + * Internal enum type for the two channel types. + * @enum {number} + * @private + */ +WebChannelBase.ChannelType_ = { + FORWARD_CHANNEL: 1, + + BACK_CHANNEL: 2 +}; + + +/** + * The maximum number of maps that can be sent in one POST. Should match + * MAX_MAPS_PER_REQUEST on the server code. + * @type {number} + * @private + */ +WebChannelBase.MAX_MAPS_PER_REQUEST_ = 1000; + + +/** + * A guess at a cutoff at which to no longer assume the backchannel is dead + * when we are slow to receive data. Number in bytes. + * + * Assumption: The worst bandwidth we work on is 50 kilobits/sec + * 50kbits/sec * (1 byte / 8 bits) * 6 sec dead backchannel timeout + * @type {number} + */ +WebChannelBase.OUTSTANDING_DATA_BACKCHANNEL_RETRY_CUTOFF = 37500; + + +/** + * Returns the logger. + * + * @return {WebChannelDebug} The channel debug object. + */ +WebChannelBase.prototype.getChannelDebug = function() { + return this.channelDebug_; +}; + + +/** + * Sets the logger. + * TODO(user): Add interface for channel loggers or remove this function. + * + * @param {!WebChannelDebug} channelDebug The channel debug object. + */ +WebChannelBase.prototype.setChannelDebug = function(channelDebug) { + this.channelDebug_ = channelDebug; +}; + + +/** + * Starts the channel. This initiates connections to the server. + * + * @param {string} testPath The path for the test connection. + * @param {string} channelPath The path for the channel connection. + * @param {!Object=} opt_extraParams Extra parameter keys and values to add to + * the requests. + * @param {string=} opt_oldSessionId Session ID from a previous session. + * @param {number=} opt_oldArrayId The last array ID from a previous session. + */ +WebChannelBase.prototype.connect = function(testPath, channelPath, + opt_extraParams, opt_oldSessionId, opt_oldArrayId) { + this.channelDebug_.debug('connect()'); + + requestStats.notifyStatEvent(requestStats.Stat.CONNECT_ATTEMPT); + + this.path_ = channelPath; + this.extraParams_ = opt_extraParams || {}; + + // Attach parameters about the previous session if reconnecting. + if (opt_oldSessionId && goog.isDef(opt_oldArrayId)) { + this.extraParams_['OSID'] = opt_oldSessionId; + this.extraParams_['OAID'] = opt_oldArrayId; + } + + this.connectTest_(testPath); +}; + + +/** + * Disconnects and closes the channel. + */ +WebChannelBase.prototype.disconnect = function() { + this.channelDebug_.debug('disconnect()'); + + this.cancelRequests_(); + + if (this.state_ == WebChannelBase.State.OPENED) { + var rid = this.nextRid_++; + var uri = this.forwardChannelUri_.clone(); + uri.setParameterValue('SID', this.sid_); + uri.setParameterValue('RID', rid); + uri.setParameterValue('TYPE', 'terminate'); + + // Add the reconnect parameters. + this.addAdditionalParams_(uri); + + var request = WebChannelRequest.createChannelRequest( + this, this.channelDebug_, this.sid_, rid); + request.sendUsingImgTag(uri); + } + + this.onClose_(); +}; + + +/** + * Returns the session id of the channel. Only available after the + * channel has been opened. + * @return {string} Session ID. + */ +WebChannelBase.prototype.getSessionId = function() { + return this.sid_; +}; + + +/** + * Starts the test channel to determine network conditions. + * + * @param {string} testPath The relative PATH for the test connection. + * @private + */ +WebChannelBase.prototype.connectTest_ = function(testPath) { + this.channelDebug_.debug('connectTest_()'); + if (!this.okToMakeRequest_()) { + return; // channel is cancelled + } + this.connectionTest_ = new BaseTestChannel(this, this.channelDebug_); + this.connectionTest_.setExtraHeaders(this.extraHeaders_); + this.connectionTest_.setParser(this.parser_); + this.connectionTest_.connect(testPath); +}; + + +/** + * Starts the regular channel which is run after the test channel is complete. + * @private + */ +WebChannelBase.prototype.connectChannel_ = function() { + this.channelDebug_.debug('connectChannel_()'); + this.ensureInState_(WebChannelBase.State.INIT, WebChannelBase.State.CLOSED); + this.forwardChannelUri_ = + this.getForwardChannelUri(/** @type {string} */ (this.path_)); + this.ensureForwardChannel_(); +}; + + +/** + * Cancels all outstanding requests. + * @private + */ +WebChannelBase.prototype.cancelRequests_ = function() { + if (this.connectionTest_) { + this.connectionTest_.abort(); + this.connectionTest_ = null; + } + + if (this.backChannelRequest_) { + this.backChannelRequest_.cancel(); + this.backChannelRequest_ = null; + } + + if (this.backChannelTimerId_) { + goog.global.clearTimeout(this.backChannelTimerId_); + this.backChannelTimerId_ = null; + } + + this.clearDeadBackchannelTimer_(); + + if (this.forwardChannelRequest_) { + this.forwardChannelRequest_.cancel(); + this.forwardChannelRequest_ = null; + } + + if (this.forwardChannelTimerId_) { + goog.global.clearTimeout(this.forwardChannelTimerId_); + this.forwardChannelTimerId_ = null; + } +}; + + +/** + * Returns the extra HTTP headers to add to all the requests sent to the server. + * + * @return {Object} The HTTP headers, or null. + */ +WebChannelBase.prototype.getExtraHeaders = function() { + return this.extraHeaders_; +}; + + +/** + * Sets extra HTTP headers to add to all the requests sent to the server. + * + * @param {Object} extraHeaders The HTTP headers, or null. + */ +WebChannelBase.prototype.setExtraHeaders = function( + extraHeaders) { + this.extraHeaders_ = extraHeaders; +}; + + +/** + * Sets the throttle for handling onreadystatechange events for the request. + * + * @param {number} throttle The throttle in ms. A value of zero indicates + * no throttle. + */ +WebChannelBase.prototype.setReadyStateChangeThrottle = function(throttle) { + this.readyStateChangeThrottleMs_ = throttle; +}; + + +/** + * Sets whether cross origin requests are supported for the channel. + * + * Setting this allows the creation of requests to secondary domains and + * sends XHRs with the CORS withCredentials bit set to true. + * + * In order for cross-origin requests to work, the server will also need to set + * CORS response headers as per: + * https://developer.mozilla.org/en-US/docs/HTTP_access_control + * + * See {@link goog.net.XhrIo#setWithCredentials}. + * @param {boolean} supportCrossDomain Whether cross domain XHRs are supported. + */ +WebChannelBase.prototype.setSupportsCrossDomainXhrs = + function(supportCrossDomain) { + this.supportsCrossDomainXhrs_ = supportCrossDomain; +}; + + +/** + * Returns the handler used for channel callback events. + * + * @return {WebChannelBase.Handler} The handler. + */ +WebChannelBase.prototype.getHandler = function() { + return this.handler_; +}; + + +/** + * Sets the handler used for channel callback events. + * @param {WebChannelBase.Handler} handler The handler to set. + */ +WebChannelBase.prototype.setHandler = function(handler) { + this.handler_ = handler; +}; + + +/** + * Returns whether the channel allows the use of a subdomain. There may be + * cases where this isn't allowed. + * @return {boolean} Whether a host prefix is allowed. + */ +WebChannelBase.prototype.getAllowHostPrefix = function() { + return this.allowHostPrefix_; +}; + + +/** + * Sets whether the channel allows the use of a subdomain. There may be cases + * where this isn't allowed, for example, logging in with troutboard where + * using a subdomain causes Apache to force the user to authenticate twice. + * @param {boolean} allowHostPrefix Whether a host prefix is allowed. + */ +WebChannelBase.prototype.setAllowHostPrefix = function(allowHostPrefix) { + this.allowHostPrefix_ = allowHostPrefix; +}; + + +/** + * Returns whether the channel is buffered or not. This state is valid for + * querying only after the test connection has completed. This may be + * queried in the WebChannelBase.okToMakeRequest() callback. + * A channel may be buffered if the test connection determines that + * a chunked response could not be sent down within a suitable time. + * @return {boolean} Whether the channel is buffered. + */ +WebChannelBase.prototype.isBuffered = function() { + return !this.useChunked_; +}; + + +/** + * Returns whether chunked mode is allowed. In certain debugging situations, + * it's useful for the application to have a way to disable chunked mode for a + * user. + + * @return {boolean} Whether chunked mode is allowed. + */ +WebChannelBase.prototype.getAllowChunkedMode = function() { + return this.allowChunkedMode_; +}; + + +/** + * Sets whether chunked mode is allowed. In certain debugging situations, it's + * useful for the application to have a way to disable chunked mode for a user. + * @param {boolean} allowChunkedMode Whether chunked mode is allowed. + */ +WebChannelBase.prototype.setAllowChunkedMode = function(allowChunkedMode) { + this.allowChunkedMode_ = allowChunkedMode; +}; + + +/** + * Sends a request to the server. The format of the request is a Map data + * structure of key/value pairs. These maps are then encoded in a format + * suitable for the wire and then reconstituted as a Map data structure that + * the server can process. + * @param {!Object|!goog.structs.Map} map The map to send. + * @param {!Object=} opt_context The context associated with the map. + */ +WebChannelBase.prototype.sendMap = function(map, opt_context) { + goog.asserts.assert(this.state_ != WebChannelBase.State.CLOSED, + 'Invalid operation: sending map when state is closed'); + + // We can only send 1000 maps per POST, but typically we should never have + // that much to send, so warn if we exceed that (we still send all the maps). + if (this.outgoingMaps_.length == WebChannelBase.MAX_MAPS_PER_REQUEST_) { + // severe() is temporary so that we get these uploaded and can figure out + // what's causing them. Afterwards can change to warning(). + this.channelDebug_.severe( + 'Already have ' + WebChannelBase.MAX_MAPS_PER_REQUEST_ + + ' queued maps upon queueing ' + goog.json.serialize(map)); + } + + this.outgoingMaps_.push( + new WebChannelBase.QueuedMap(this.nextMapId_++, map, opt_context)); + if (this.state_ == WebChannelBase.State.OPENING || + this.state_ == WebChannelBase.State.OPENED) { + this.ensureForwardChannel_(); + } +}; + + +/** + * When set to true, this changes the behavior of the forward channel so it + * will not retry requests; it will fail after one network failure, and if + * there was already one network failure, the request will fail immediately. + * @param {boolean} failFast Whether or not to fail fast. + */ +WebChannelBase.prototype.setFailFast = function(failFast) { + this.failFast_ = failFast; + this.channelDebug_.info('setFailFast: ' + failFast); + if ((this.forwardChannelRequest_ || this.forwardChannelTimerId_) && + this.forwardChannelRetryCount_ > this.getForwardChannelMaxRetries()) { + this.channelDebug_.info( + 'Retry count ' + this.forwardChannelRetryCount_ + + ' > new maxRetries ' + this.getForwardChannelMaxRetries() + + '. Fail immediately!'); + if (this.forwardChannelRequest_) { + this.forwardChannelRequest_.cancel(); + // Go through the standard onRequestComplete logic to expose the max-retry + // failure in the standard way. + this.onRequestComplete(this.forwardChannelRequest_); + } else { // i.e., this.forwardChannelTimerId_ + goog.global.clearTimeout(this.forwardChannelTimerId_); + this.forwardChannelTimerId_ = null; + // The error code from the last failed request is gone, so just use a + // generic one. + this.signalError_(WebChannelBase.Error.REQUEST_FAILED); + } + } +}; + + +/** + * @return {number} The max number of forward-channel retries, which will be 0 + * in fail-fast mode. + */ +WebChannelBase.prototype.getForwardChannelMaxRetries = function() { + return this.failFast_ ? 0 : this.forwardChannelMaxRetries_; +}; + + +/** + * Sets the maximum number of attempts to connect to the server for forward + * channel requests. + * @param {number} retries The maximum number of attempts. + */ +WebChannelBase.prototype.setForwardChannelMaxRetries = function(retries) { + this.forwardChannelMaxRetries_ = retries; +}; + + +/** + * Sets the timeout for a forward channel request. + * @param {number} timeoutMs The timeout in milliseconds. + */ +WebChannelBase.prototype.setForwardChannelRequestTimeout = function(timeoutMs) { + this.forwardChannelRequestTimeoutMs_ = timeoutMs; +}; + + +/** + * @return {number} The max number of back-channel retries, which is a constant. + */ +WebChannelBase.prototype.getBackChannelMaxRetries = function() { + // Back-channel retries is a constant. + return WebChannelBase.BACK_CHANNEL_MAX_RETRIES; +}; + + +/** + * @override + */ +WebChannelBase.prototype.isClosed = function() { + return this.state_ == WebChannelBase.State.CLOSED; +}; + + +/** + * Returns the channel state. + * @return {WebChannelBase.State} The current state of the channel. + */ +WebChannelBase.prototype.getState = function() { + return this.state_; +}; + + +/** + * Return the last status code received for a request. + * @return {number} The last status code received for a request. + */ +WebChannelBase.prototype.getLastStatusCode = function() { + return this.lastStatusCode_; +}; + + +/** + * @return {number} The last array id received. + */ +WebChannelBase.prototype.getLastArrayId = function() { + return this.lastArrayId_; +}; + + +/** + * Returns whether there are outstanding requests servicing the channel. + * @return {boolean} true if there are outstanding requests. + */ +WebChannelBase.prototype.hasOutstandingRequests = function() { + return this.getOutstandingRequests_() != 0; +}; + + +/** + * Sets a new parser for the response payload. A custom parser may be set to + * avoid using eval(), for example. By default, the parser uses + * {@code goog.json.unsafeParse}. + * @param {!goog.string.Parser} parser Parser. + */ +WebChannelBase.prototype.setParser = function(parser) { + this.parser_ = parser; +}; + + +/** + * Returns the number of outstanding requests. + * @return {number} The number of outstanding requests to the server. + * @private + */ +WebChannelBase.prototype.getOutstandingRequests_ = function() { + var count = 0; + if (this.backChannelRequest_) { + count++; + } + if (this.forwardChannelRequest_) { + count++; + } + return count; +}; + + +/** + * Ensures that a forward channel request is scheduled. + * @private + */ +WebChannelBase.prototype.ensureForwardChannel_ = function() { + if (this.forwardChannelRequest_) { + // connection in process - no need to start a new request + return; + } + + if (this.forwardChannelTimerId_) { + // no need to start a new request - one is already scheduled + return; + } + + this.forwardChannelTimerId_ = requestStats.setTimeout( + goog.bind(this.onStartForwardChannelTimer_, this), 0); + this.forwardChannelRetryCount_ = 0; +}; + + +/** + * Schedules a forward-channel retry for the specified request, unless the max + * retries has been reached. + * @param {WebChannelRequest} request The failed request to retry. + * @return {boolean} true iff a retry was scheduled. + * @private + */ +WebChannelBase.prototype.maybeRetryForwardChannel_ = + function(request) { + if (this.forwardChannelRequest_ || this.forwardChannelTimerId_) { + // Should be impossible to be called in this state. + this.channelDebug_.severe('Request already in progress'); + return false; + } + + if (this.state_ == WebChannelBase.State.INIT || // no retry open_() + (this.forwardChannelRetryCount_ >= this.getForwardChannelMaxRetries())) { + return false; + } + + this.channelDebug_.debug('Going to retry POST'); + + this.forwardChannelTimerId_ = requestStats.setTimeout( + goog.bind(this.onStartForwardChannelTimer_, this, request), + this.getRetryTime_(this.forwardChannelRetryCount_)); + this.forwardChannelRetryCount_++; + return true; +}; + + +/** + * Timer callback for ensureForwardChannel + * @param {WebChannelRequest=} opt_retryRequest A failed request + * to retry. + * @private + */ +WebChannelBase.prototype.onStartForwardChannelTimer_ = function( + opt_retryRequest) { + this.forwardChannelTimerId_ = null; + this.startForwardChannel_(opt_retryRequest); +}; + + +/** + * Begins a new forward channel operation to the server. + * @param {WebChannelRequest=} opt_retryRequest A failed request to retry. + * @private + */ +WebChannelBase.prototype.startForwardChannel_ = function( + opt_retryRequest) { + this.channelDebug_.debug('startForwardChannel_'); + if (!this.okToMakeRequest_()) { + return; // channel is cancelled + } else if (this.state_ == WebChannelBase.State.INIT) { + if (opt_retryRequest) { + this.channelDebug_.severe('Not supposed to retry the open'); + return; + } + this.open_(); + this.state_ = WebChannelBase.State.OPENING; + } else if (this.state_ == WebChannelBase.State.OPENED) { + if (opt_retryRequest) { + this.makeForwardChannelRequest_(opt_retryRequest); + return; + } + + if (this.outgoingMaps_.length == 0) { + this.channelDebug_.debug('startForwardChannel_ returned: ' + + 'nothing to send'); + // no need to start a new forward channel request + return; + } + + if (this.forwardChannelRequest_) { + // Should be impossible to be called in this state. + this.channelDebug_.severe('startForwardChannel_ returned: ' + + 'connection already in progress'); + return; + } + + this.makeForwardChannelRequest_(); + this.channelDebug_.debug('startForwardChannel_ finished, sent request'); + } +}; + + +/** + * Establishes a new channel session with the the server. + * @private + */ +WebChannelBase.prototype.open_ = function() { + this.channelDebug_.debug('open_()'); + this.nextRid_ = Math.floor(Math.random() * 100000); + + var rid = this.nextRid_++; + var request = WebChannelRequest.createChannelRequest( + this, this.channelDebug_, '', rid); + request.setExtraHeaders(this.extraHeaders_); + var requestText = this.dequeueOutgoingMaps_(); + var uri = this.forwardChannelUri_.clone(); + uri.setParameterValue('RID', rid); + if (this.clientVersion_) { + uri.setParameterValue('CVER', this.clientVersion_); + } + + // Add the reconnect parameters. + this.addAdditionalParams_(uri); + + request.xmlHttpPost(uri, requestText, true); + this.forwardChannelRequest_ = request; +}; + + +/** + * Makes a forward channel request using XMLHTTP. + * @param {!WebChannelRequest=} opt_retryRequest A failed request to retry. + * @private + */ +WebChannelBase.prototype.makeForwardChannelRequest_ = + function(opt_retryRequest) { + var rid; + var requestText; + if (opt_retryRequest) { + this.requeuePendingMaps_(); + rid = this.nextRid_ - 1; // Must use last RID + requestText = this.dequeueOutgoingMaps_(); + } else { + rid = this.nextRid_++; + requestText = this.dequeueOutgoingMaps_(); + } + + var uri = this.forwardChannelUri_.clone(); + uri.setParameterValue('SID', this.sid_); + uri.setParameterValue('RID', rid); + uri.setParameterValue('AID', this.lastArrayId_); + // Add the additional reconnect parameters. + this.addAdditionalParams_(uri); + + var request = WebChannelRequest.createChannelRequest(this, this.channelDebug_, + this.sid_, rid, this.forwardChannelRetryCount_ + 1); + request.setExtraHeaders(this.extraHeaders_); + + // Randomize from 50%-100% of the forward channel timeout to avoid + // a big hit if servers happen to die at once. + request.setTimeout( + Math.round(this.forwardChannelRequestTimeoutMs_ * 0.50) + + Math.round(this.forwardChannelRequestTimeoutMs_ * 0.50 * Math.random())); + this.forwardChannelRequest_ = request; + request.xmlHttpPost(uri, requestText, true); +}; + + +/** + * Adds the additional parameters from the handler to the given URI. + * @param {!goog.Uri} uri The URI to add the parameters to. + * @private + */ +WebChannelBase.prototype.addAdditionalParams_ = function(uri) { + // Add the additional reconnect parameters as needed. + if (this.handler_) { + var params = this.handler_.getAdditionalParams(this); + if (params) { + goog.structs.forEach(params, function(value, key, coll) { + uri.setParameterValue(key, value); + }); + } + } +}; + + +/** + * Returns the request text from the outgoing maps and resets it. + * @return {string} The encoded request text created from all the currently + * queued outgoing maps. + * @private + */ +WebChannelBase.prototype.dequeueOutgoingMaps_ = function() { + var count = Math.min(this.outgoingMaps_.length, + WebChannelBase.MAX_MAPS_PER_REQUEST_); + var sb = ['count=' + count]; + var offset; + if (count > 0) { + // To save a bit of bandwidth, specify the base mapId and the rest as + // offsets from it. + offset = this.outgoingMaps_[0].mapId; + sb.push('ofs=' + offset); + } else { + offset = 0; + } + for (var i = 0; i < count; i++) { + var mapId = this.outgoingMaps_[i].mapId; + var map = this.outgoingMaps_[i].map; + mapId -= offset; + try { + goog.structs.forEach(map, function(value, key, coll) { + sb.push('req' + mapId + '_' + key + '=' + encodeURIComponent(value)); + }); + } catch (ex) { + // We send a map here because lots of the retry logic relies on map IDs, + // so we have to send something. + sb.push('req' + mapId + '_' + 'type' + '=' + + encodeURIComponent('_badmap')); + if (this.handler_) { + this.handler_.badMapError(this, map); + } + } + } + this.pendingMaps_ = this.pendingMaps_.concat( + this.outgoingMaps_.splice(0, count)); + return sb.join('&'); +}; + + +/** + * Requeues unacknowledged sent arrays for retransmission in the next forward + * channel request. + * @private + */ +WebChannelBase.prototype.requeuePendingMaps_ = function() { + this.outgoingMaps_ = this.pendingMaps_.concat(this.outgoingMaps_); + this.pendingMaps_.length = 0; +}; + + +/** + * Ensures there is a backchannel request for receiving data from the server. + * @private + */ +WebChannelBase.prototype.ensureBackChannel_ = function() { + if (this.backChannelRequest_) { + // already have one + return; + } + + if (this.backChannelTimerId_) { + // no need to start a new request - one is already scheduled + return; + } + + this.backChannelAttemptId_ = 1; + this.backChannelTimerId_ = requestStats.setTimeout( + goog.bind(this.onStartBackChannelTimer_, this), 0); + this.backChannelRetryCount_ = 0; +}; + + +/** + * Schedules a back-channel retry, unless the max retries has been reached. + * @return {boolean} true iff a retry was scheduled. + * @private + */ +WebChannelBase.prototype.maybeRetryBackChannel_ = function() { + if (this.backChannelRequest_ || this.backChannelTimerId_) { + // Should be impossible to be called in this state. + this.channelDebug_.severe('Request already in progress'); + return false; + } + + if (this.backChannelRetryCount_ >= this.getBackChannelMaxRetries()) { + return false; + } + + this.channelDebug_.debug('Going to retry GET'); + + this.backChannelAttemptId_++; + this.backChannelTimerId_ = requestStats.setTimeout( + goog.bind(this.onStartBackChannelTimer_, this), + this.getRetryTime_(this.backChannelRetryCount_)); + this.backChannelRetryCount_++; + return true; +}; + + +/** + * Timer callback for ensureBackChannel_. + * @private + */ +WebChannelBase.prototype.onStartBackChannelTimer_ = function() { + this.backChannelTimerId_ = null; + this.startBackChannel_(); +}; + + +/** + * Begins a new back channel operation to the server. + * @private + */ +WebChannelBase.prototype.startBackChannel_ = function() { + if (!this.okToMakeRequest_()) { + // channel is cancelled + return; + } + + this.channelDebug_.debug('Creating new HttpRequest'); + this.backChannelRequest_ = WebChannelRequest.createChannelRequest(this, + this.channelDebug_, this.sid_, 'rpc', this.backChannelAttemptId_); + this.backChannelRequest_.setExtraHeaders(this.extraHeaders_); + this.backChannelRequest_.setReadyStateChangeThrottle( + this.readyStateChangeThrottleMs_); + var uri = this.backChannelUri_.clone(); + uri.setParameterValue('RID', 'rpc'); + uri.setParameterValue('SID', this.sid_); + uri.setParameterValue('CI', this.useChunked_ ? '0' : '1'); + uri.setParameterValue('AID', this.lastArrayId_); + + // Add the reconnect parameters. + this.addAdditionalParams_(uri); + + if (!WebChannelRequest.supportsXhrStreaming()) { + uri.setParameterValue('TYPE', 'html'); + this.backChannelRequest_.tridentGet(uri, Boolean(this.hostPrefix_)); + } else { + uri.setParameterValue('TYPE', 'xmlhttp'); + this.backChannelRequest_.xmlHttpGet(uri, true /* decodeChunks */, + this.hostPrefix_, false /* opt_noClose */); + } + this.channelDebug_.debug('New Request created'); +}; + + +/** + * Gives the handler a chance to return an error code and stop channel + * execution. A handler might want to do this to check that the user is still + * logged in, for example. + * @private + * @return {boolean} If it's OK to make a request. + */ +WebChannelBase.prototype.okToMakeRequest_ = function() { + if (this.handler_) { + var result = this.handler_.okToMakeRequest(this); + if (result != WebChannelBase.Error.OK) { + this.channelDebug_.debug( + 'Handler returned error code from okToMakeRequest'); + this.signalError_(result); + return false; + } + } + return true; +}; + + +/** + * @override + */ +WebChannelBase.prototype.testConnectionFinished = + function(testChannel, useChunked) { + this.channelDebug_.debug('Test Connection Finished'); + + this.useChunked_ = this.allowChunkedMode_ && useChunked; + this.lastStatusCode_ = testChannel.getLastStatusCode(); + this.connectChannel_(); +}; + + +/** + * @override + */ +WebChannelBase.prototype.testConnectionFailure = + function(testChannel, errorCode) { + this.channelDebug_.debug('Test Connection Failed'); + this.lastStatusCode_ = testChannel.getLastStatusCode(); + this.signalError_(WebChannelBase.Error.REQUEST_FAILED); +}; + + +/** + * @override + */ +WebChannelBase.prototype.testConnectionBlocked = + function(testChannel) { + this.channelDebug_.debug('Test Connection Blocked'); + this.lastStatusCode_ = this.connectionTest_.getLastStatusCode(); + this.signalError_(WebChannelBase.Error.BLOCKED); +}; + + +/** + * @override + */ +WebChannelBase.prototype.onRequestData = function(request, responseText) { + if (this.state_ == WebChannelBase.State.CLOSED || + (this.backChannelRequest_ != request && + this.forwardChannelRequest_ != request)) { + // either CLOSED or a request we don't know about (perhaps an old request) + return; + } + this.lastStatusCode_ = request.getLastStatusCode(); + + if (this.forwardChannelRequest_ == request && + this.state_ == WebChannelBase.State.OPENED) { + var response; + try { + response = this.parser_.parse(responseText); + } catch (ex) { + response = null; + } + if (goog.isArray(response) && response.length == 3) { + this.handlePostResponse_(/** @type {!Array} */ (response)); + } else { + this.channelDebug_.debug('Bad POST response data returned'); + this.signalError_(WebChannelBase.Error.BAD_RESPONSE); + } + } else { + if (this.backChannelRequest_ == request) { + this.clearDeadBackchannelTimer_(); + } + if (!goog.string.isEmpty(responseText)) { + var response = this.parser_.parse(responseText); + goog.asserts.assert(goog.isArray(response)); + this.onInput_(/** @type {!Array} */ (response)); + } + } +}; + + +/** + * Handles a POST response from the server. + * @param {Array} responseValues The key value pairs in the POST response. + * @private + */ +WebChannelBase.prototype.handlePostResponse_ = function(responseValues) { + // The first response value is set to 0 if server is missing backchannel. + if (responseValues[0] == 0) { + this.handleBackchannelMissing_(); + return; + } + this.lastPostResponseArrayId_ = responseValues[1]; + var outstandingArrays = this.lastPostResponseArrayId_ - this.lastArrayId_; + if (0 < outstandingArrays) { + var numOutstandingBackchannelBytes = responseValues[2]; + this.channelDebug_.debug(numOutstandingBackchannelBytes + ' bytes (in ' + + outstandingArrays + ' arrays) are outstanding on the BackChannel'); + if (!this.shouldRetryBackChannel_(numOutstandingBackchannelBytes)) { + return; + } + if (!this.deadBackChannelTimerId_) { + // We expect to receive data within 2 RTTs or we retry the backchannel. + this.deadBackChannelTimerId_ = requestStats.setTimeout( + goog.bind(this.onBackChannelDead_, this), + 2 * WebChannelBase.RTT_ESTIMATE); + } + } +}; + + +/** + * Handles a POST response from the server telling us that it has detected that + * we have no hanging GET connection. + * @private + */ +WebChannelBase.prototype.handleBackchannelMissing_ = function() { + // As long as the back channel was started before the POST was sent, + // we should retry the backchannel. We give a slight buffer of RTT_ESTIMATE + // so as not to excessively retry the backchannel + this.channelDebug_.debug('Server claims our backchannel is missing.'); + if (this.backChannelTimerId_) { + this.channelDebug_.debug('But we are currently starting the request.'); + return; + } else if (!this.backChannelRequest_) { + this.channelDebug_.warning( + 'We do not have a BackChannel established'); + } else if (this.backChannelRequest_.getRequestStartTime() + + WebChannelBase.RTT_ESTIMATE < + this.forwardChannelRequest_.getRequestStartTime()) { + this.clearDeadBackchannelTimer_(); + this.backChannelRequest_.cancel(); + this.backChannelRequest_ = null; + } else { + return; + } + this.maybeRetryBackChannel_(); + requestStats.notifyStatEvent(requestStats.Stat.BACKCHANNEL_MISSING); +}; + + +/** + * Determines whether we should start the process of retrying a possibly + * dead backchannel. + * @param {number} outstandingBytes The number of bytes for which the server has + * not yet received acknowledgement. + * @return {boolean} Whether to start the backchannel retry timer. + * @private + */ +WebChannelBase.prototype.shouldRetryBackChannel_ = function( + outstandingBytes) { + // Not too many outstanding bytes, not buffered and not after a retry. + return outstandingBytes < + WebChannelBase.OUTSTANDING_DATA_BACKCHANNEL_RETRY_CUTOFF && + !this.isBuffered() && + this.backChannelRetryCount_ == 0; +}; + + +/** + * Decides which host prefix should be used, if any. If there is a handler, + * allows the handler to validate a host prefix provided by the server, and + * optionally override it. + * @param {?string} serverHostPrefix The host prefix provided by the server. + * @return {?string} The host prefix to actually use, if any. Will return null + * if the use of host prefixes was disabled via setAllowHostPrefix(). + * @override + */ +WebChannelBase.prototype.correctHostPrefix = function(serverHostPrefix) { + if (this.allowHostPrefix_) { + if (this.handler_) { + return this.handler_.correctHostPrefix(serverHostPrefix); + } + return serverHostPrefix; + } + return null; +}; + + +/** + * Handles the timer that indicates that our backchannel is no longer able to + * successfully receive data from the server. + * @private + */ +WebChannelBase.prototype.onBackChannelDead_ = function() { + if (goog.isDefAndNotNull(this.deadBackChannelTimerId_)) { + this.deadBackChannelTimerId_ = null; + this.backChannelRequest_.cancel(); + this.backChannelRequest_ = null; + this.maybeRetryBackChannel_(); + requestStats.notifyStatEvent(requestStats.Stat.BACKCHANNEL_DEAD); + } +}; + + +/** + * Clears the timer that indicates that our backchannel is no longer able to + * successfully receive data from the server. + * @private + */ +WebChannelBase.prototype.clearDeadBackchannelTimer_ = function() { + if (goog.isDefAndNotNull(this.deadBackChannelTimerId_)) { + goog.global.clearTimeout(this.deadBackChannelTimerId_); + this.deadBackChannelTimerId_ = null; + } +}; + + +/** + * Returns whether or not the given error/status combination is fatal or not. + * On fatal errors we immediately close the session rather than retrying the + * failed request. + * @param {?WebChannelRequest.Error} error The error code for the + * failed request. + * @param {number} statusCode The last HTTP status code. + * @return {boolean} Whether or not the error is fatal. + * @private + */ +WebChannelBase.isFatalError_ = function(error, statusCode) { + return error == WebChannelRequest.Error.UNKNOWN_SESSION_ID || + error == WebChannelRequest.Error.ACTIVE_X_BLOCKED || + (error == WebChannelRequest.Error.STATUS && + statusCode > 0); +}; + + +/** + * @override + */ +WebChannelBase.prototype.onRequestComplete = function(request) { + this.channelDebug_.debug('Request complete'); + var type; + if (this.backChannelRequest_ == request) { + this.clearDeadBackchannelTimer_(); + this.backChannelRequest_ = null; + type = WebChannelBase.ChannelType_.BACK_CHANNEL; + } else if (this.forwardChannelRequest_ == request) { + this.forwardChannelRequest_ = null; + type = WebChannelBase.ChannelType_.FORWARD_CHANNEL; + } else { + // return if it was an old request from a previous session + return; + } + + this.lastStatusCode_ = request.getLastStatusCode(); + + if (this.state_ == WebChannelBase.State.CLOSED) { + return; + } + + if (request.getSuccess()) { + // Yay! + if (type == WebChannelBase.ChannelType_.FORWARD_CHANNEL) { + var size = request.getPostData() ? request.getPostData().length : 0; + requestStats.notifyTimingEvent(size, + goog.now() - request.getRequestStartTime(), + this.forwardChannelRetryCount_); + this.ensureForwardChannel_(); + this.onSuccess_(); + this.pendingMaps_.length = 0; + } else { // i.e., back-channel + this.ensureBackChannel_(); + } + return; + } + // Else unsuccessful. Fall through. + + var lastError = request.getLastError(); + if (!WebChannelBase.isFatalError_(lastError, this.lastStatusCode_)) { + // Maybe retry. + this.channelDebug_.debug('Maybe retrying, last error: ' + + WebChannelRequest.errorStringFromCode( + /** @type {WebChannelRequest.Error} */ (lastError), + this.lastStatusCode_)); + if (type == WebChannelBase.ChannelType_.FORWARD_CHANNEL) { + if (this.maybeRetryForwardChannel_(request)) { + return; + } + } + if (type == WebChannelBase.ChannelType_.BACK_CHANNEL) { + if (this.maybeRetryBackChannel_()) { + return; + } + } + // Else exceeded max retries. Fall through. + this.channelDebug_.debug('Exceeded max number of retries'); + } else { + // Else fatal error. Fall through and mark the pending maps as failed. + this.channelDebug_.debug('Not retrying due to error type'); + } + + + // Can't save this session. :( + this.channelDebug_.debug('Error: HTTP request failed'); + switch (lastError) { + case WebChannelRequest.Error.NO_DATA: + this.signalError_(WebChannelBase.Error.NO_DATA); + break; + case WebChannelRequest.Error.BAD_DATA: + this.signalError_(WebChannelBase.Error.BAD_DATA); + break; + case WebChannelRequest.Error.UNKNOWN_SESSION_ID: + this.signalError_(WebChannelBase.Error.UNKNOWN_SESSION_ID); + break; + case WebChannelRequest.Error.ACTIVE_X_BLOCKED: + this.signalError_(WebChannelBase.Error.ACTIVE_X_BLOCKED); + break; + default: + this.signalError_(WebChannelBase.Error.REQUEST_FAILED); + break; + } +}; + + +/** + * @param {number} retryCount Number of retries so far. + * @return {number} Time in ms before firing next retry request. + * @private + */ +WebChannelBase.prototype.getRetryTime_ = function(retryCount) { + var retryTime = this.baseRetryDelayMs_ + + Math.floor(Math.random() * this.retryDelaySeedMs_); + if (!this.isActive()) { + this.channelDebug_.debug('Inactive channel'); + retryTime = + retryTime * WebChannelBase.INACTIVE_CHANNEL_RETRY_FACTOR; + } + // Backoff for subsequent retries + retryTime *= retryCount; + return retryTime; +}; + + +/** + * @param {number} baseDelayMs The base part of the retry delay, in ms. + * @param {number} delaySeedMs A random delay between 0 and this is added to + * the base part. + */ +WebChannelBase.prototype.setRetryDelay = function(baseDelayMs, delaySeedMs) { + this.baseRetryDelayMs_ = baseDelayMs; + this.retryDelaySeedMs_ = delaySeedMs; +}; + + +/** + * Processes the data returned by the server. + * @param {!Array.} respArray The response array returned by the server. + * @private + */ +WebChannelBase.prototype.onInput_ = function(respArray) { + var batch = this.handler_ && this.handler_.channelHandleMultipleArrays ? + [] : null; + for (var i = 0; i < respArray.length; i++) { + var nextArray = respArray[i]; + this.lastArrayId_ = nextArray[0]; + nextArray = nextArray[1]; + if (this.state_ == WebChannelBase.State.OPENING) { + if (nextArray[0] == 'c') { + this.sid_ = nextArray[1]; + this.hostPrefix_ = this.correctHostPrefix(nextArray[2]); + var negotiatedVersion = nextArray[3]; + if (goog.isDefAndNotNull(negotiatedVersion)) { + this.channelVersion_ = negotiatedVersion; + } + this.state_ = WebChannelBase.State.OPENED; + if (this.handler_) { + this.handler_.channelOpened(this); + } + this.backChannelUri_ = this.getBackChannelUri( + this.hostPrefix_, /** @type {string} */ (this.path_)); + // Open connection to receive data + this.ensureBackChannel_(); + } else if (nextArray[0] == 'stop') { + this.signalError_(WebChannelBase.Error.STOP); + } + } else if (this.state_ == WebChannelBase.State.OPENED) { + if (nextArray[0] == 'stop') { + if (batch && !goog.array.isEmpty(batch)) { + this.handler_.channelHandleMultipleArrays(this, batch); + batch.length = 0; + } + this.signalError_(WebChannelBase.Error.STOP); + } else if (nextArray[0] == 'noop') { + // ignore - noop to keep connection happy + } else { + if (batch) { + batch.push(nextArray); + } else if (this.handler_) { + this.handler_.channelHandleArray(this, nextArray); + } + } + // We have received useful data on the back-channel, so clear its retry + // count. We do this because back-channels by design do not complete + // quickly, so on a flaky connection we could have many fail to complete + // fully but still deliver a lot of data before they fail. We don't want + // to count such failures towards the retry limit, because we don't want + // to give up on a session if we can still receive data. + this.backChannelRetryCount_ = 0; + } + } + if (batch && !goog.array.isEmpty(batch)) { + this.handler_.channelHandleMultipleArrays(this, batch); + } +}; + + +/** + * Helper to ensure the channel is in the expected state. + * @param {...number} var_args The channel must be in one of the indicated + * states. + * @private + */ +WebChannelBase.prototype.ensureInState_ = function(var_args) { + goog.asserts.assert(goog.array.contains(arguments, this.state_), + 'Unexpected channel state: %s', this.state_); +}; + + +/** + * Signals an error has occurred. + * @param {WebChannelBase.Error} error The error code for the failure. + * @private + */ +WebChannelBase.prototype.signalError_ = function(error) { + this.channelDebug_.info('Error code ' + error); + if (error == WebChannelBase.Error.REQUEST_FAILED || + error == WebChannelBase.Error.BLOCKED) { + // Ping google to check if it's a server error or user's network error. + var imageUri = null; + if (this.handler_) { + imageUri = this.handler_.getNetworkTestImageUri(this); + } + goog.net.tmpnetwork.testGoogleCom( + goog.bind(this.testGoogleComCallback_, this), imageUri); + } else { + requestStats.notifyStatEvent(requestStats.Stat.ERROR_OTHER); + } + this.onError_(error); +}; + + +/** + * Callback for testGoogleCom during error handling. + * @param {boolean} networkUp Whether the network is up. + * @private + */ +WebChannelBase.prototype.testGoogleComCallback_ = function(networkUp) { + if (networkUp) { + this.channelDebug_.info('Successfully pinged google.com'); + requestStats.notifyStatEvent(requestStats.Stat.ERROR_OTHER); + } else { + this.channelDebug_.info('Failed to ping google.com'); + requestStats.notifyStatEvent(requestStats.Stat.ERROR_NETWORK); + // We call onError_ here instead of signalError_ because the latter just + // calls notifyStatEvent, and we don't want to have another stat event. + this.onError_(WebChannelBase.Error.NETWORK); + } +}; + + +/** + * Called when messages have been successfully sent from the queue. + * @private + */ +WebChannelBase.prototype.onSuccess_ = function() { + if (this.handler_) { + this.handler_.channelSuccess(this, this.pendingMaps_); + } +}; + + +/** + * Called when we've determined the final error for a channel. It closes the + * notifiers the handler of the error and closes the channel. + * @param {WebChannelBase.Error} error The error code for the failure. + * @private + */ +WebChannelBase.prototype.onError_ = function(error) { + this.channelDebug_.debug('HttpChannel: error - ' + error); + this.state_ = WebChannelBase.State.CLOSED; + if (this.handler_) { + this.handler_.channelError(this, error); + } + this.onClose_(); + this.cancelRequests_(); +}; + + +/** + * Called when the channel has been closed. It notifiers the handler of the + * event, and reports any pending or undelivered maps. + * @private + */ +WebChannelBase.prototype.onClose_ = function() { + this.state_ = WebChannelBase.State.CLOSED; + this.lastStatusCode_ = -1; + if (this.handler_) { + if (this.pendingMaps_.length == 0 && this.outgoingMaps_.length == 0) { + this.handler_.channelClosed(this); + } else { + this.channelDebug_.debug('Number of undelivered maps' + + ', pending: ' + this.pendingMaps_.length + + ', outgoing: ' + this.outgoingMaps_.length); + + var copyOfPendingMaps = goog.array.clone(this.pendingMaps_); + var copyOfUndeliveredMaps = goog.array.clone(this.outgoingMaps_); + this.pendingMaps_.length = 0; + this.outgoingMaps_.length = 0; + + this.handler_.channelClosed(this, copyOfPendingMaps, + copyOfUndeliveredMaps); + } + } +}; + + +/** + * @override + */ +WebChannelBase.prototype.getForwardChannelUri = function(path) { + var uri = this.createDataUri(null, path); + this.channelDebug_.debug('GetForwardChannelUri: ' + uri); + return uri; +}; + + +/** + * @override + */ +WebChannelBase.prototype.getFirstTestResults = function() { + return this.firstTestResults_; +}; + + +/** + * Gets the results for the second channel test + * @return {?boolean} The results. True -> buffered connection, + * False -> unbuffered, null -> unknown. + */ +WebChannelBase.prototype.getSecondTestResults = function() { + return this.secondTestResults_; +}; + + +/** + * @override + */ +WebChannelBase.prototype.getBackChannelUri = function(hostPrefix, path) { + var uri = this.createDataUri(this.shouldUseSecondaryDomains() ? + hostPrefix : null, path); + this.channelDebug_.debug('GetBackChannelUri: ' + uri); + return uri; +}; + + +/** + * @override + */ +WebChannelBase.prototype.createDataUri = + function(hostPrefix, path, opt_overridePort) { + var uri = goog.Uri.parse(path); + var uriAbsolute = (uri.getDomain() != ''); + if (uriAbsolute) { + if (hostPrefix) { + uri.setDomain(hostPrefix + '.' + uri.getDomain()); + } + + uri.setPort(opt_overridePort || uri.getPort()); + } else { + var locationPage = window.location; + var hostName; + if (hostPrefix) { + hostName = hostPrefix + '.' + locationPage.hostname; + } else { + hostName = locationPage.hostname; + } + + var port = opt_overridePort || locationPage.port; + + uri = goog.Uri.create(locationPage.protocol, null, hostName, port, path); + } + + if (this.extraParams_) { + goog.structs.forEach(this.extraParams_, function(value, key, coll) { + uri.setParameterValue(key, value); + }); + } + + // Add the protocol version to the URI. + uri.setParameterValue('VER', this.channelVersion_); + + // Add the reconnect parameters. + this.addAdditionalParams_(uri); + + return uri; +}; + + +/** + * @override + */ +WebChannelBase.prototype.createXhrIo = function(hostPrefix) { + if (hostPrefix && !this.supportsCrossDomainXhrs_) { + throw Error('Can\'t create secondary domain capable XhrIo object.'); + } + var xhr = new goog.net.XhrIo(); + xhr.setWithCredentials(this.supportsCrossDomainXhrs_); + return xhr; +}; + + +/** + * @override + */ +WebChannelBase.prototype.isActive = function() { + return !!this.handler_ && this.handler_.isActive(this); +}; + + +/** + * @override + */ +WebChannelBase.prototype.shouldUseSecondaryDomains = function() { + return this.supportsCrossDomainXhrs_ || + !WebChannelRequest.supportsXhrStreaming(); +}; + + +/** + * A LogSaver that can be used to accumulate all the debug logs so they + * can be sent to the server when a problem is detected. + */ +WebChannelBase.LogSaver = {}; + + +/** + * Buffer for accumulating the debug log + * @type {goog.structs.CircularBuffer} + * @private + */ +WebChannelBase.LogSaver.buffer_ = new goog.structs.CircularBuffer(1000); + + +/** + * Whether we're currently accumulating the debug log. + * @type {boolean} + * @private + */ +WebChannelBase.LogSaver.enabled_ = false; + + +/** + * Formatter for saving logs. + * @type {goog.debug.Formatter} + * @private + */ +WebChannelBase.LogSaver.formatter_ = new goog.debug.TextFormatter(); + + +/** + * Returns whether the LogSaver is enabled. + * @return {boolean} Whether saving is enabled or disabled. + */ +WebChannelBase.LogSaver.isEnabled = function() { + return WebChannelBase.LogSaver.enabled_; +}; + + +/** + * Enables of disables the LogSaver. + * @param {boolean} enable Whether to enable or disable saving. + */ +WebChannelBase.LogSaver.setEnabled = function(enable) { + if (enable == WebChannelBase.LogSaver.enabled_) { + return; + } + + var fn = WebChannelBase.LogSaver.addLogRecord; + var logger = goog.log.getLogger('goog.net'); + if (enable) { + goog.log.addHandler(logger, fn); + } else { + goog.log.removeHandler(logger, fn); + } +}; + + +/** + * Adds a log record. + * @param {goog.log.LogRecord} logRecord the LogRecord. + */ +WebChannelBase.LogSaver.addLogRecord = function(logRecord) { + WebChannelBase.LogSaver.buffer_.add( + WebChannelBase.LogSaver.formatter_.formatRecord(logRecord)); +}; + + +/** + * Returns the log as a single string. + * @return {string} The log as a single string. + */ +WebChannelBase.LogSaver.getBuffer = function() { + return WebChannelBase.LogSaver.buffer_.getValues().join(''); +}; + + +/** + * Clears the buffer + */ +WebChannelBase.LogSaver.clearBuffer = function() { + WebChannelBase.LogSaver.buffer_.clear(); +}; + + + +/** + * Abstract base class for the channel handler + * @constructor + */ +WebChannelBase.Handler = function() {}; + + +/** + * Callback handler for when a batch of response arrays is received from the + * server. + * @type {?function(!WebChannelBase, !Array.)} + */ +WebChannelBase.Handler.prototype.channelHandleMultipleArrays = + goog.abstractMethod; + + +/** + * Whether it's okay to make a request to the server. A handler can return + * false if the channel should fail. For example, if the user has logged out, + * the handler may want all requests to fail immediately. + * @param {WebChannelBase} channel The channel. + * @return {WebChannelBase.Error} An error code. The code should + * return WebChannelBase.Error.OK to indicate it's okay. Any other + * error code will cause a failure. + */ +WebChannelBase.Handler.prototype.okToMakeRequest = function(channel) { + return WebChannelBase.Error.OK; +}; + + +/** + * Indicates the WebChannel has successfully negotiated with the server + * and can now send and receive data. + * @param {WebChannelBase} channel The channel. + */ +WebChannelBase.Handler.prototype.channelOpened = function(channel) { +}; + + +/** + * New input is available for the application to process. + * + * @param {WebChannelBase} channel The channel. + * @param {Array} array The data array. + */ +WebChannelBase.Handler.prototype.channelHandleArray = function(channel, array) { +}; + + +/** + * Indicates maps were successfully sent on the channel. + * + * @param {WebChannelBase} channel The channel. + * @param {Array.} deliveredMaps The + * array of maps that have been delivered to the server. This is a direct + * reference to the internal array, so a copy should be made + * if the caller desires a reference to the data. + */ +WebChannelBase.Handler.prototype.channelSuccess = + function(channel, deliveredMaps) { +}; + + +/** + * Indicates an error occurred on the WebChannel. + * + * @param {WebChannelBase} channel The channel. + * @param {WebChannelBase.Error} error The error code. + */ +WebChannelBase.Handler.prototype.channelError = function(channel, error) { +}; + + +/** + * Indicates the WebChannel is closed. Also notifies about which maps, + * if any, that may not have been delivered to the server. + * @param {WebChannelBase} channel The channel. + * @param {Array.=} opt_pendingMaps The + * array of pending maps, which may or may not have been delivered to the + * server. + * @param {Array.=} opt_undeliveredMaps + * The array of undelivered maps, which have definitely not been delivered + * to the server. + */ +WebChannelBase.Handler.prototype.channelClosed = + function(channel, opt_pendingMaps, opt_undeliveredMaps) { +}; + + +/** + * Gets any parameters that should be added at the time another connection is + * made to the server. + * @param {WebChannelBase} channel The channel. + * @return {Object} Extra parameter keys and values to add to the + * requests. + */ +WebChannelBase.Handler.prototype.getAdditionalParams = function(channel) { + return {}; +}; + + +/** + * Gets the URI of an image that can be used to test network connectivity. + * @param {WebChannelBase} channel The channel. + * @return {goog.Uri?} A custom URI to load for the network test. + */ +WebChannelBase.Handler.prototype.getNetworkTestImageUri = function(channel) { + return null; +}; + + +/** + * Gets whether this channel is currently active. This is used to determine the + * length of time to wait before retrying. + * @param {WebChannelBase} channel The channel. + * @return {boolean} Whether the channel is currently active. + */ +WebChannelBase.Handler.prototype.isActive = function(channel) { + return true; +}; + + +/** + * Called by the channel if enumeration of the map throws an exception. + * @param {WebChannelBase} channel The channel. + * @param {Object} map The map that can't be enumerated. + */ +WebChannelBase.Handler.prototype.badMapError = function(channel, map) { + return; +}; + + +/** + * Allows the handler to override a host prefix provided by the server. Will + * be called whenever the channel has received such a prefix and is considering + * its use. + * @param {?string} serverHostPrefix The host prefix provided by the server. + * @return {?string} The host prefix the client should use. + */ +WebChannelBase.Handler.prototype.correctHostPrefix = + function(serverHostPrefix) { + return serverHostPrefix; +}; +}); // goog.scope diff --git a/edit/closure-library/closure/goog/labs/net/webchannel/webchannelbase_test.js b/edit/closure-library/closure/goog/labs/net/webchannel/webchannelbase_test.js new file mode 100644 index 0000000000..8fee1b56f8 --- /dev/null +++ b/edit/closure-library/closure/goog/labs/net/webchannel/webchannelbase_test.js @@ -0,0 +1,1400 @@ +// Copyright 2013 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview Unit tests for goog.labs.net.webChannel.WebChannelBase. + * @suppress {accessControls} Private methods are accessed for test purposes. + * + */ + + +goog.provide('goog.labs.net.webChannel.webChannelBaseTest'); + +goog.require('goog.Timer'); +goog.require('goog.array'); +goog.require('goog.dom'); +goog.require('goog.functions'); +goog.require('goog.json'); +goog.require('goog.labs.net.webChannel.WebChannelBase'); +goog.require('goog.labs.net.webChannel.WebChannelDebug'); +goog.require('goog.labs.net.webChannel.WebChannelRequest'); +goog.require('goog.labs.net.webChannel.requestStats'); +goog.require('goog.labs.net.webChannel.requestStats.Stat'); +goog.require('goog.net.tmpnetwork'); +goog.require('goog.structs.Map'); +goog.require('goog.testing.MockClock'); +goog.require('goog.testing.PropertyReplacer'); +goog.require('goog.testing.asserts'); +goog.require('goog.testing.jsunit'); +goog.require('goog.testing.recordFunction'); + +goog.setTestOnly('goog.labs.net.webChannel.webChannelBaseTest'); + + +/** + * Delay between a network failure and the next network request. + */ +var RETRY_TIME = 1000; + + +/** + * A really long time - used to make sure no more timeouts will fire. + */ +var ALL_DAY_MS = 1000 * 60 * 60 * 24; + +var stubs = new goog.testing.PropertyReplacer(); + +var channel; +var deliveredMaps; +var handler; +var mockClock; +var gotError; +var numStatEvents; +var lastStatEvent; +var numTimingEvents; +var lastPostSize; +var lastPostRtt; +var lastPostRetryCount; + +// Set to true to see the channel debug output in the browser window. +var debug = false; +// Debug message to print out when debug is true. +var debugMessage = ''; + +function debugToWindow(message) { + if (debug) { + debugMessage += message + '
'; + goog.dom.getElement('debug').innerHTML = debugMessage; + } +} + + +/** + * Stubs goog.net.tmpnetwork to always time out. It maintains the + * contract given by goog.net.tmpnetwork.testGoogleCom, but always + * times out (calling callback(false)). + * + * stubTmpnetwork should be called in tests that require it before + * a call to testGoogleCom happens. It is reset at tearDown. + */ +function stubTmpnetwork() { + stubs.set(goog.net.tmpnetwork, 'testLoadImage', + function(url, timeout, callback) { + goog.Timer.callOnce(goog.partial(callback, false), timeout); + }); +} + + + +/** + * Mock ChannelRequest. + * @constructor + */ +var MockChannelRequest = function(channel, channelDebug, opt_sessionId, + opt_requestId, opt_retryId) { + this.channel_ = channel; + this.channelDebug_ = channelDebug; + this.sessionId_ = opt_sessionId; + this.requestId_ = opt_requestId; + this.successful_ = true; + this.lastError_ = null; + this.lastStatusCode_ = 200; + + // For debugging, keep track of whether this is a back or forward channel. + this.isBack = !!(opt_requestId == 'rpc'); + this.isForward = !this.isBack; +}; + +MockChannelRequest.prototype.postData_ = null; + +MockChannelRequest.prototype.requestStartTime_ = null; + +MockChannelRequest.prototype.setExtraHeaders = function(extraHeaders) {}; + +MockChannelRequest.prototype.setTimeout = function(timeout) {}; + +MockChannelRequest.prototype.setReadyStateChangeThrottle = + function(throttle) {}; + +MockChannelRequest.prototype.xmlHttpPost = function(uri, postData, + decodeChunks) { + this.channelDebug_.debug('---> POST: ' + uri + ', ' + postData + ', ' + + decodeChunks); + this.postData_ = postData; + this.requestStartTime_ = goog.now(); +}; + +MockChannelRequest.prototype.xmlHttpGet = function(uri, decodeChunks, + opt_noClose) { + this.channelDebug_.debug('<--- GET: ' + uri + ', ' + decodeChunks + ', ' + + opt_noClose); + this.requestStartTime_ = goog.now(); +}; + +MockChannelRequest.prototype.tridentGet = function(uri, usingSecondaryDomain) { + this.channelDebug_.debug('<---GET (T): ' + uri); + this.requestStartTime_ = goog.now(); +}; + +MockChannelRequest.prototype.sendUsingImgTag = function(uri) { + this.requestStartTime_ = goog.now(); +}; + +MockChannelRequest.prototype.cancel = function() { + this.successful_ = false; +}; + +MockChannelRequest.prototype.getSuccess = function() { + return this.successful_; +}; + +MockChannelRequest.prototype.getLastError = function() { + return this.lastError_; +}; + +MockChannelRequest.prototype.getLastStatusCode = function() { + return this.lastStatusCode_; +}; + +MockChannelRequest.prototype.getSessionId = function() { + return this.sessionId_; +}; + +MockChannelRequest.prototype.getRequestId = function() { + return this.requestId_; +}; + +MockChannelRequest.prototype.getPostData = function() { + return this.postData_; +}; + +MockChannelRequest.prototype.getRequestStartTime = function() { + return this.requestStartTime_; +}; + + +/** + * @suppress {invalidCasts} The cast from MockChannelRequest to + * WebChannelRequest is invalid and will not compile. * + */ +function setUpPage() { + // Use our MockChannelRequests instead of the real ones. + goog.labs.net.webChannel.WebChannelRequest.createChannelRequest = function( + channel, channelDebug, opt_sessionId, opt_requestId, opt_retryId) { + return /** @type {!goog.labs.net.webChannel.WebChannelRequest} */ ( + new MockChannelRequest(channel, channelDebug, opt_sessionId, + opt_requestId, opt_retryId)); + }; + + // Mock out the stat notification code. + goog.labs.net.webChannel.requestStats.notifyStatEvent = function( + stat) { + numStatEvents++; + lastStatEvent = stat; + }; + + goog.labs.net.webChannel.requestStats.notifyTimingEvent = function( + size, rtt, retries) { + numTimingEvents++; + lastPostSize = size; + lastPostRtt = rtt; + lastPostRetryCount = retries; + }; +} + +function setUp() { + numTimingEvents = 0; + lastPostSize = null; + lastPostRtt = null; + lastPostRetryCount = null; + + mockClock = new goog.testing.MockClock(true); + channel = new goog.labs.net.webChannel.WebChannelBase('1'); + gotError = false; + + handler = new goog.labs.net.webChannel.WebChannelBase.Handler(); + handler.channelOpened = function() {}; + handler.channelError = function(channel, error) { + gotError = true; + }; + handler.channelSuccess = function(channel, maps) { + deliveredMaps = goog.array.clone(maps); + }; + + /** + * @suppress {checkTypes} The callback function type declaration is skipped. + */ + handler.channelClosed = function( + channel, opt_pendingMaps, opt_undeliveredMaps) { + // Mock out the handler, and let it set a formatted user readable string + // of the undelivered maps which we can use when verifying our assertions. + if (opt_pendingMaps) { + handler.pendingMapsString = formatArrayOfMaps(opt_pendingMaps); + } + if (opt_undeliveredMaps) { + handler.undeliveredMapsString = formatArrayOfMaps(opt_undeliveredMaps); + } + }; + handler.channelHandleMultipleArrays = function() {}; + handler.channelHandleArray = function() {}; + + channel.setHandler(handler); + + // Provide a predictable retry time for testing. + channel.getRetryTime_ = function(retryCount) { + return RETRY_TIME; + }; + + var channelDebug = new goog.labs.net.webChannel.WebChannelDebug(); + channelDebug.debug = function(message) { + debugToWindow(message); + }; + channel.setChannelDebug(channelDebug); + + numStatEvents = 0; + lastStatEvent = null; +} + + +function tearDown() { + mockClock.dispose(); + stubs.reset(); + debugToWindow('
'); +} + + +/** + * Helper function to return a formatted string representing an array of maps. + */ +function formatArrayOfMaps(arrayOfMaps) { + var result = []; + for (var i = 0; i < arrayOfMaps.length; i++) { + var map = arrayOfMaps[i]; + var keys = map.map.getKeys(); + for (var j = 0; j < keys.length; j++) { + var tmp = keys[j] + ':' + map.map.get(keys[j]) + (map.context ? + ':' + map.context : ''); + result.push(tmp); + } + } + return result.join(', '); +} + + +function testFormatArrayOfMaps() { + // This function is used in a non-trivial test, so let's verify that it works. + var map1 = new goog.structs.Map(); + map1.set('k1', 'v1'); + map1.set('k2', 'v2'); + var map2 = new goog.structs.Map(); + map2.set('k3', 'v3'); + var map3 = new goog.structs.Map(); + map3.set('k4', 'v4'); + map3.set('k5', 'v5'); + map3.set('k6', 'v6'); + + // One map. + var a = []; + a.push(new goog.labs.net.webChannel.WebChannelBase.QueuedMap(0, map1)); + assertEquals('k1:v1, k2:v2', + formatArrayOfMaps(a)); + + // Many maps. + var b = []; + b.push(new goog.labs.net.webChannel.WebChannelBase.QueuedMap(0, map1)); + b.push(new goog.labs.net.webChannel.WebChannelBase.QueuedMap(0, map2)); + b.push(new goog.labs.net.webChannel.WebChannelBase.QueuedMap(0, map3)); + assertEquals('k1:v1, k2:v2, k3:v3, k4:v4, k5:v5, k6:v6', + formatArrayOfMaps(b)); + + // One map with a context. + var c = []; + c.push(new goog.labs.net.webChannel.WebChannelBase.QueuedMap( + 0, map1, new String('c1'))); + assertEquals('k1:v1:c1, k2:v2:c1', + formatArrayOfMaps(c)); +} + + +/** + * @param {number=} opt_serverVersion + * @param {string=} opt_hostPrefix + * @param {string=} opt_uriPrefix + */ +function connectForwardChannel( + opt_serverVersion, opt_hostPrefix, opt_uriPrefix) { + var uriPrefix = opt_uriPrefix || ''; + channel.connect(uriPrefix + '/test', uriPrefix + '/bind', null); + mockClock.tick(0); + completeTestConnection(); + completeForwardChannel(opt_serverVersion, opt_hostPrefix); +} + + +/** + * @param {number=} opt_serverVersion + * @param {string=} opt_hostPrefix + * @param {string=} opt_uriPrefix + */ +function connect(opt_serverVersion, opt_hostPrefix, opt_uriPrefix) { + connectForwardChannel(opt_serverVersion, opt_hostPrefix, opt_uriPrefix); + completeBackChannel(); +} + + +function disconnect() { + channel.disconnect(); + mockClock.tick(0); +} + + +function completeTestConnection() { + completeForwardTestConnection(); + completeBackTestConnection(); + assertEquals(goog.labs.net.webChannel.WebChannelBase.State.OPENING, + channel.getState()); +} + + +function completeForwardTestConnection() { + channel.connectionTest_.onRequestData( + channel.connectionTest_, + '["b"]'); + channel.connectionTest_.onRequestComplete( + channel.connectionTest_); + mockClock.tick(0); +} + + +function completeBackTestConnection() { + channel.connectionTest_.onRequestData( + channel.connectionTest_, + '11111'); + mockClock.tick(0); +} + + +/** + * @param {number=} opt_serverVersion + * @param {string=} opt_hostPrefix + */ +function completeForwardChannel(opt_serverVersion, opt_hostPrefix) { + var responseData = '[[0,["c","1234567890ABCDEF",' + + (opt_hostPrefix ? '"' + opt_hostPrefix + '"' : 'null') + + (opt_serverVersion ? ',' + opt_serverVersion : '') + + ']]]'; + channel.onRequestData( + channel.forwardChannelRequest_, + responseData); + channel.onRequestComplete( + channel.forwardChannelRequest_); + mockClock.tick(0); +} + + +function completeBackChannel() { + channel.onRequestData( + channel.backChannelRequest_, + '[[1,["foo"]]]'); + channel.onRequestComplete( + channel.backChannelRequest_); + mockClock.tick(0); +} + + +function responseDone() { + channel.onRequestData( + channel.forwardChannelRequest_, + '[1,0,0]'); // mock data + channel.onRequestComplete( + channel.forwardChannelRequest_); + mockClock.tick(0); +} + + +/** + * + * @param {number=} opt_lastArrayIdSentFromServer + * @param {number=} opt_outstandingDataSize + */ +function responseNoBackchannel( + opt_lastArrayIdSentFromServer, opt_outstandingDataSize) { + var responseData = goog.json.serialize( + [0, opt_lastArrayIdSentFromServer, opt_outstandingDataSize]); + channel.onRequestData( + channel.forwardChannelRequest_, + responseData); + channel.onRequestComplete( + channel.forwardChannelRequest_); + mockClock.tick(0); +} + +function response(lastArrayIdSentFromServer, outstandingDataSize) { + var responseData = goog.json.serialize( + [1, lastArrayIdSentFromServer, outstandingDataSize]); + channel.onRequestData( + channel.forwardChannelRequest_, + responseData + ); + channel.onRequestComplete( + channel.forwardChannelRequest_); + mockClock.tick(0); +} + + +function receive(data) { + channel.onRequestData( + channel.backChannelRequest_, + '[[1,' + data + ']]'); + channel.onRequestComplete( + channel.backChannelRequest_); + mockClock.tick(0); +} + + +function responseTimeout() { + channel.forwardChannelRequest_lastError_ = + goog.labs.net.webChannel.WebChannelRequest.Error.TIMEOUT; + channel.forwardChannelRequest_.successful_ = false; + channel.onRequestComplete( + channel.forwardChannelRequest_); + mockClock.tick(0); +} + + +/** + * @param {number=} opt_statusCode + */ +function responseRequestFailed(opt_statusCode) { + channel.forwardChannelRequest_.lastError_ = + goog.labs.net.webChannel.WebChannelRequest.Error.STATUS; + channel.forwardChannelRequest_.lastStatusCode_ = + opt_statusCode || 503; + channel.forwardChannelRequest_.successful_ = false; + channel.onRequestComplete( + channel.forwardChannelRequest_); + mockClock.tick(0); +} + + +function responseUnknownSessionId() { + channel.forwardChannelRequest_.lastError_ = + goog.labs.net.webChannel.WebChannelRequest.Error.UNKNOWN_SESSION_ID; + channel.forwardChannelRequest_.successful_ = false; + channel.onRequestComplete( + channel.forwardChannelRequest_); + mockClock.tick(0); +} + + +function responseActiveXBlocked() { + channel.backChannelRequest_.lastError_ = + goog.labs.net.webChannel.WebChannelRequest.Error.ACTIVE_X_BLOCKED; + channel.backChannelRequest_.successful_ = false; + channel.onRequestComplete( + channel.backChannelRequest_); + mockClock.tick(0); +} + + +/** + * @param {string} key + * @param {string} value + * @param {string=} opt_context + */ +function sendMap(key, value, opt_context) { + var map = new goog.structs.Map(); + map.set(key, value); + channel.sendMap(map, opt_context); + mockClock.tick(0); +} + + +function hasForwardChannel() { + return !!channel.forwardChannelRequest_; +} + + +function hasBackChannel() { + return !!channel.backChannelRequest_; +} + + +function hasDeadBackChannelTimer() { + return goog.isDefAndNotNull(channel.deadBackChannelTimerId_); +} + + +function assertHasForwardChannel() { + assertTrue('Forward channel missing.', hasForwardChannel()); +} + + +function assertHasBackChannel() { + assertTrue('Back channel missing.', hasBackChannel()); +} + + +function testConnect() { + connect(); + assertEquals(goog.labs.net.webChannel.WebChannelBase.State.OPENED, + channel.getState()); + // If the server specifies no version, the client assumes the latest version + assertEquals(goog.labs.net.webChannel.WebChannelBase.LATEST_CHANNEL_VERSION, + channel.channelVersion_); + assertFalse(channel.isBuffered()); +} + +function testConnect_backChannelEstablished() { + connect(); + assertHasBackChannel(); +} + +function testConnect_withServerHostPrefix() { + connect(undefined, 'serverHostPrefix'); + assertEquals('serverHostPrefix', channel.hostPrefix_); +} + +function testConnect_withClientHostPrefix() { + handler.correctHostPrefix = function(hostPrefix) { + return 'clientHostPrefix'; + }; + connect(); + assertEquals('clientHostPrefix', channel.hostPrefix_); +} + +function testConnect_overrideServerHostPrefix() { + handler.correctHostPrefix = function(hostPrefix) { + return 'clientHostPrefix'; + }; + connect(undefined, 'serverHostPrefix'); + assertEquals('clientHostPrefix', channel.hostPrefix_); +} + +function testConnect_withServerVersion() { + connect(8); + assertEquals(8, channel.channelVersion_); +} + +function testConnect_notOkToMakeRequestForTest() { + handler.okToMakeRequest = goog.functions.constant( + goog.labs.net.webChannel.WebChannelBase.Error.NETWORK); + channel.connect('/test', '/bind', null); + mockClock.tick(0); + assertEquals(goog.labs.net.webChannel.WebChannelBase.State.CLOSED, + channel.getState()); +} + +function testConnect_notOkToMakeRequestForBind() { + channel.connect('/test', '/bind', null); + mockClock.tick(0); + completeTestConnection(); + handler.okToMakeRequest = goog.functions.constant( + goog.labs.net.webChannel.WebChannelBase.Error.NETWORK); + completeForwardChannel(); + assertEquals(goog.labs.net.webChannel.WebChannelBase.State.CLOSED, + channel.getState()); +} + + +function testSendMap() { + connect(); + assertEquals(1, numTimingEvents); + sendMap('foo', 'bar'); + responseDone(); + assertEquals(2, numTimingEvents); + assertEquals('foo:bar', formatArrayOfMaps(deliveredMaps)); +} + + +function testSendMap_twice() { + connect(); + sendMap('foo1', 'bar1'); + responseDone(); + assertEquals('foo1:bar1', formatArrayOfMaps(deliveredMaps)); + sendMap('foo2', 'bar2'); + responseDone(); + assertEquals('foo2:bar2', formatArrayOfMaps(deliveredMaps)); +} + + +function testSendMap_andReceive() { + connect(); + sendMap('foo', 'bar'); + responseDone(); + receive('["the server reply"]'); +} + + +function testReceive() { + connect(); + receive('["message from server"]'); + assertHasBackChannel(); +} + + +function testReceive_twice() { + connect(); + receive('["message one from server"]'); + receive('["message two from server"]'); + assertHasBackChannel(); +} + + +function testReceive_andSendMap() { + connect(); + receive('["the server reply"]'); + sendMap('foo', 'bar'); + responseDone(); + assertHasBackChannel(); +} + + +function testBackChannelRemainsEstablished_afterSingleSendMap() { + connect(); + + sendMap('foo', 'bar'); + responseDone(); + receive('["ack"]'); + + assertHasBackChannel(); +} + + +function testBackChannelRemainsEstablished_afterDoubleSendMap() { + connect(); + + sendMap('foo1', 'bar1'); + sendMap('foo2', 'bar2'); + responseDone(); + receive('["ack"]'); + + // This assertion would fail prior to CL 13302660. + assertHasBackChannel(); +} + + +function testTimingEvent() { + connect(); + assertEquals(1, numTimingEvents); + sendMap('', ''); + assertEquals(1, numTimingEvents); + mockClock.tick(20); + var expSize = channel.forwardChannelRequest_.getPostData().length; + responseDone(); + + assertEquals(2, numTimingEvents); + assertEquals(expSize, lastPostSize); + assertEquals(20, lastPostRtt); + assertEquals(0, lastPostRetryCount); + + sendMap('abcdefg', '123456'); + expSize = channel.forwardChannelRequest_.getPostData().length; + responseTimeout(); + assertEquals(2, numTimingEvents); + mockClock.tick(RETRY_TIME + 1); + responseDone(); + assertEquals(3, numTimingEvents); + assertEquals(expSize, lastPostSize); + assertEquals(1, lastPostRetryCount); + assertEquals(1, lastPostRtt); + +} + + +/** + * Make sure that dropping the forward channel retry limit below the retry count + * reports an error, and prevents another request from firing. + */ +function testSetFailFastWhileWaitingForRetry() { + stubTmpnetwork(); + + connect(); + assertEquals(1, numTimingEvents); + + sendMap('foo', 'bar'); + assertNull(channel.forwardChannelTimerId_); + assertNotNull(channel.forwardChannelRequest_); + assertEquals(0, channel.forwardChannelRetryCount_); + + // Watchdog timeout. + responseTimeout(); + assertNotNull(channel.forwardChannelTimerId_); + assertNull(channel.forwardChannelRequest_); + assertEquals(1, channel.forwardChannelRetryCount_); + + // Almost finish the between-retry timeout. + mockClock.tick(RETRY_TIME - 1); + assertNotNull(channel.forwardChannelTimerId_); + assertNull(channel.forwardChannelRequest_); + assertEquals(1, channel.forwardChannelRetryCount_); + + // Setting max retries to 0 should cancel the timer and raise an error. + channel.setFailFast(true); + assertNull(channel.forwardChannelTimerId_); + assertNull(channel.forwardChannelRequest_); + assertEquals(1, channel.forwardChannelRetryCount_); + + assertTrue(gotError); + assertEquals(0, deliveredMaps.length); + // We get the error immediately before starting to ping google.com. + // Simulate that timing out. We should get a network error in addition to the + // initial failure. + gotError = false; + mockClock.tick(goog.net.tmpnetwork.GOOGLECOM_TIMEOUT); + assertTrue('No error after tmpnetwork ping timed out.', gotError); + + // Make sure no more retry timers are firing. + mockClock.tick(ALL_DAY_MS); + assertNull(channel.forwardChannelTimerId_); + assertNull(channel.forwardChannelRequest_); + assertEquals(1, channel.forwardChannelRetryCount_); + assertEquals(1, numTimingEvents); +} + + +/** + * Make sure that dropping the forward channel retry limit below the retry count + * reports an error, and prevents another request from firing. + */ +function testSetFailFastWhileRetryXhrIsInFlight() { + stubTmpnetwork(); + + connect(); + assertEquals(1, numTimingEvents); + + sendMap('foo', 'bar'); + assertNull(channel.forwardChannelTimerId_); + assertNotNull(channel.forwardChannelRequest_); + assertEquals(0, channel.forwardChannelRetryCount_); + + // Watchdog timeout. + responseTimeout(); + assertNotNull(channel.forwardChannelTimerId_); + assertNull(channel.forwardChannelRequest_); + assertEquals(1, channel.forwardChannelRetryCount_); + + // Wait for the between-retry timeout. + mockClock.tick(RETRY_TIME); + assertNull(channel.forwardChannelTimerId_); + assertNotNull(channel.forwardChannelRequest_); + assertEquals(1, channel.forwardChannelRetryCount_); + + // Simulate a second watchdog timeout. + responseTimeout(); + assertNotNull(channel.forwardChannelTimerId_); + assertNull(channel.forwardChannelRequest_); + assertEquals(2, channel.forwardChannelRetryCount_); + + // Wait for another between-retry timeout. + mockClock.tick(RETRY_TIME); + // Now the third req is in flight. + assertNull(channel.forwardChannelTimerId_); + assertNotNull(channel.forwardChannelRequest_); + assertEquals(2, channel.forwardChannelRetryCount_); + + // Set fail fast, killing the request + channel.setFailFast(true); + assertNull(channel.forwardChannelTimerId_); + assertNull(channel.forwardChannelRequest_); + assertEquals(2, channel.forwardChannelRetryCount_); + + assertTrue(gotError); + // We get the error immediately before starting to ping google.com. + // Simulate that timing out. We should get a network error in addition to the + gotError = false; + mockClock.tick(goog.net.tmpnetwork.GOOGLECOM_TIMEOUT); + assertTrue('No error after tmpnetwork ping timed out.', gotError); + + // Make sure no more retry timers are firing. + mockClock.tick(ALL_DAY_MS); + assertNull(channel.forwardChannelTimerId_); + assertNull(channel.forwardChannelRequest_); + assertEquals(2, channel.forwardChannelRetryCount_); + assertEquals(1, numTimingEvents); +} + + +/** + * Makes sure that setting fail fast while not retrying doesn't cause a failure. + */ +function testSetFailFastAtRetryCount() { + stubTmpnetwork(); + + connect(); + assertEquals(1, numTimingEvents); + + sendMap('foo', 'bar'); + assertNull(channel.forwardChannelTimerId_); + assertNotNull(channel.forwardChannelRequest_); + assertEquals(0, channel.forwardChannelRetryCount_); + + // Set fail fast. + channel.setFailFast(true); + // Request should still be alive. + assertNull(channel.forwardChannelTimerId_); + assertNotNull(channel.forwardChannelRequest_); + assertEquals(0, channel.forwardChannelRetryCount_); + + // Watchdog timeout. Now we should get an error. + responseTimeout(); + assertNull(channel.forwardChannelTimerId_); + assertNull(channel.forwardChannelRequest_); + assertEquals(0, channel.forwardChannelRetryCount_); + + assertTrue(gotError); + // We get the error immediately before starting to ping google.com. + // Simulate that timing out. We should get a network error in addition to the + // initial failure. + gotError = false; + mockClock.tick(goog.net.tmpnetwork.GOOGLECOM_TIMEOUT); + assertTrue('No error after tmpnetwork ping timed out.', gotError); + + // Make sure no more retry timers are firing. + mockClock.tick(ALL_DAY_MS); + assertNull(channel.forwardChannelTimerId_); + assertNull(channel.forwardChannelRequest_); + assertEquals(0, channel.forwardChannelRetryCount_); + assertEquals(1, numTimingEvents); +} + + +function testRequestFailedClosesChannel() { + stubTmpnetwork(); + + connect(); + assertEquals(1, numTimingEvents); + + sendMap('foo', 'bar'); + responseRequestFailed(); + + assertEquals('Should be closed immediately after request failed.', + goog.labs.net.webChannel.WebChannelBase.State.CLOSED, channel.getState()); + + mockClock.tick(goog.net.tmpnetwork.GOOGLECOM_TIMEOUT); + + assertEquals('Should remain closed after the ping timeout.', + goog.labs.net.webChannel.WebChannelBase.State.CLOSED, channel.getState()); + assertEquals(1, numTimingEvents); +} + + +function testStatEventReportedOnlyOnce() { + stubTmpnetwork(); + + connect(); + sendMap('foo', 'bar'); + numStatEvents = 0; + lastStatEvent = null; + responseUnknownSessionId(); + + assertEquals(1, numStatEvents); + assertEquals(goog.labs.net.webChannel.requestStats.Stat.ERROR_OTHER, + lastStatEvent); + + numStatEvents = 0; + mockClock.tick(goog.net.tmpnetwork.GOOGLECOM_TIMEOUT); + assertEquals('No new stat events should be reported.', 0, numStatEvents); +} + + +function testActiveXBlockedEventReportedOnlyOnce() { + stubTmpnetwork(); + + connectForwardChannel(); + numStatEvents = 0; + lastStatEvent = null; + responseActiveXBlocked(); + + assertEquals(1, numStatEvents); + assertEquals(goog.labs.net.webChannel.requestStats.Stat.ERROR_OTHER, + lastStatEvent); + + mockClock.tick(goog.net.tmpnetwork.GOOGLECOM_TIMEOUT); + assertEquals('No new stat events should be reported.', 1, numStatEvents); +} + + +function testStatEventReportedOnlyOnce_onNetworkUp() { + stubTmpnetwork(); + + connect(); + sendMap('foo', 'bar'); + numStatEvents = 0; + lastStatEvent = null; + responseRequestFailed(); + + assertEquals('No stat event should be reported before we know the reason.', + 0, numStatEvents); + + // Let the ping time out. + mockClock.tick(goog.net.tmpnetwork.GOOGLECOM_TIMEOUT); + + // Assert we report the correct stat event. + assertEquals(1, numStatEvents); + assertEquals( + goog.labs.net.webChannel.requestStats.Stat.ERROR_NETWORK, + lastStatEvent); +} + + +function testStatEventReportedOnlyOnce_onNetworkDown() { + stubTmpnetwork(); + + connect(); + sendMap('foo', 'bar'); + numStatEvents = 0; + lastStatEvent = null; + responseRequestFailed(); + + assertEquals('No stat event should be reported before we know the reason.', + 0, numStatEvents); + + // Wait half the ping timeout period, and then fake the network being up. + mockClock.tick(goog.net.tmpnetwork.GOOGLECOM_TIMEOUT / 2); + channel.testGoogleComCallback_(true); + + // Assert we report the correct stat event. + assertEquals(1, numStatEvents); + assertEquals(goog.labs.net.webChannel.requestStats.Stat.ERROR_OTHER, + lastStatEvent); +} + + +function testOutgoingMapsAwaitsResponse() { + connect(); + assertEquals(0, channel.outgoingMaps_.length); + + sendMap('foo1', 'bar'); + assertEquals(0, channel.outgoingMaps_.length); + sendMap('foo2', 'bar'); + assertEquals(1, channel.outgoingMaps_.length); + sendMap('foo3', 'bar'); + assertEquals(2, channel.outgoingMaps_.length); + sendMap('foo4', 'bar'); + assertEquals(3, channel.outgoingMaps_.length); + + responseDone(); + // Now the forward channel request is completed and a new started, so all maps + // are dequeued from the array of outgoing maps into this new forward request. + assertEquals(0, channel.outgoingMaps_.length); +} + +function testUndeliveredMaps_doesNotNotifyWhenSuccessful() { + /** + * @suppress {checkTypes} The callback function type declaration is skipped. + */ + handler.channelClosed = function( + channel, opt_pendingMaps, opt_undeliveredMaps) { + if (opt_pendingMaps || opt_undeliveredMaps) { + fail('No pending or undelivered maps should be reported.'); + } + }; + + connect(); + sendMap('foo1', 'bar1'); + responseDone(); + sendMap('foo2', 'bar2'); + responseDone(); + disconnect(); +} + + +function testUndeliveredMaps_doesNotNotifyIfNothingWasSent() { + /** + * @suppress {checkTypes} The callback function type declaration is skipped. + */ + handler.channelClosed = function( + channel, opt_pendingMaps, opt_undeliveredMaps) { + if (opt_pendingMaps || opt_undeliveredMaps) { + fail('No pending or undelivered maps should be reported.'); + } + }; + + connect(); + mockClock.tick(ALL_DAY_MS); + disconnect(); +} + + +function testUndeliveredMaps_clearsPendingMapsAfterNotifying() { + connect(); + sendMap('foo1', 'bar1'); + sendMap('foo2', 'bar2'); + sendMap('foo3', 'bar3'); + + assertEquals(1, channel.pendingMaps_.length); + assertEquals(2, channel.outgoingMaps_.length); + + disconnect(); + + assertEquals(0, channel.pendingMaps_.length); + assertEquals(0, channel.outgoingMaps_.length); +} + + +function testUndeliveredMaps_notifiesWithContext() { + connect(); + + // First send two messages that succeed. + sendMap('foo1', 'bar1', 'context1'); + responseDone(); + sendMap('foo2', 'bar2', 'context2'); + responseDone(); + + // Pretend the server hangs and no longer responds. + sendMap('foo3', 'bar3', 'context3'); + sendMap('foo4', 'bar4', 'context4'); + sendMap('foo5', 'bar5', 'context5'); + + // Give up. + disconnect(); + + // Assert that we are informed of any undelivered messages; both about + // #3 that was sent but which we don't know if the server received, and + // #4 and #5 which remain in the outgoing maps and have not yet been sent. + assertEquals('foo3:bar3:context3', handler.pendingMapsString); + assertEquals('foo4:bar4:context4, foo5:bar5:context5', + handler.undeliveredMapsString); +} + + +function testUndeliveredMaps_serviceUnavailable() { + // Send a few maps, and let one fail. + connect(); + sendMap('foo1', 'bar1'); + responseDone(); + sendMap('foo2', 'bar2'); + responseRequestFailed(); + + // After a failure, the channel should be closed. + disconnect(); + + assertEquals('foo2:bar2', handler.pendingMapsString); + assertEquals('', handler.undeliveredMapsString); +} + + +function testUndeliveredMaps_onPingTimeout() { + stubTmpnetwork(); + + connect(); + + // Send a message. + sendMap('foo1', 'bar1'); + + // Fake REQUEST_FAILED, triggering a ping to check the network. + responseRequestFailed(); + + // Let the ping time out, unsuccessfully. + mockClock.tick(goog.net.tmpnetwork.GOOGLECOM_TIMEOUT); + + // Assert channel is closed. + assertEquals(goog.labs.net.webChannel.WebChannelBase.State.CLOSED, + channel.getState()); + + // Assert that the handler is notified about the undelivered messages. + assertEquals('foo1:bar1', handler.pendingMapsString); + assertEquals('', handler.undeliveredMapsString); +} + + +function testResponseNoBackchannelPostNotBeforeBackchannel() { + connect(8); + sendMap('foo1', 'bar1'); + + mockClock.tick(10); + assertFalse(channel.backChannelRequest_.getRequestStartTime() < + channel.forwardChannelRequest_.getRequestStartTime()); + responseNoBackchannel(); + assertNotEquals( + goog.labs.net.webChannel.requestStats.Stat.BACKCHANNEL_MISSING, + lastStatEvent); +} + + +function testResponseNoBackchannel() { + connect(8); + sendMap('foo1', 'bar1'); + response(-1, 0); + mockClock.tick(goog.labs.net.webChannel.WebChannelBase.RTT_ESTIMATE + 1); + sendMap('foo2', 'bar2'); + assertTrue(channel.backChannelRequest_.getRequestStartTime() + + goog.labs.net.webChannel.WebChannelBase.RTT_ESTIMATE < + channel.forwardChannelRequest_.getRequestStartTime()); + responseNoBackchannel(); + assertEquals( + goog.labs.net.webChannel.requestStats.Stat.BACKCHANNEL_MISSING, + lastStatEvent); +} + + +function testResponseNoBackchannelWithNoBackchannel() { + connect(8); + sendMap('foo1', 'bar1'); + assertNull(channel.backChannelTimerId_); + channel.backChannelRequest_.cancel(); + channel.backChannelRequest_ = null; + responseNoBackchannel(); + assertEquals( + goog.labs.net.webChannel.requestStats.Stat.BACKCHANNEL_MISSING, + lastStatEvent); +} + + +function testResponseNoBackchannelWithStartTimer() { + connect(8); + sendMap('foo1', 'bar1'); + + channel.backChannelRequest_.cancel(); + channel.backChannelRequest_ = null; + channel.backChannelTimerId_ = 123; + responseNoBackchannel(); + assertNotEquals( + goog.labs.net.webChannel.requestStats.Stat.BACKCHANNEL_MISSING, + lastStatEvent); +} + + +function testResponseWithNoArraySent() { + connect(8); + sendMap('foo1', 'bar1'); + + // Send a response as if the server hasn't sent down an array. + response(-1, 0); + + // POST response with an array ID lower than our last received is OK. + assertEquals(1, channel.lastArrayId_); + assertEquals(-1, channel.lastPostResponseArrayId_); +} + + +function testResponseWithArraysMissing() { + connect(8); + sendMap('foo1', 'bar1'); + assertEquals(-1, channel.lastPostResponseArrayId_); + + // Send a response as if the server has sent down seven arrays. + response(7, 111); + + assertEquals(1, channel.lastArrayId_); + assertEquals(7, channel.lastPostResponseArrayId_); + mockClock.tick(goog.labs.net.webChannel.WebChannelBase.RTT_ESTIMATE * 2); + assertEquals( + goog.labs.net.webChannel.requestStats.Stat.BACKCHANNEL_DEAD, + lastStatEvent); +} + + +function testMultipleResponsesWithArraysMissing() { + connect(8); + sendMap('foo1', 'bar1'); + assertEquals(-1, channel.lastPostResponseArrayId_); + + // Send a response as if the server has sent down seven arrays. + response(7, 111); + + assertEquals(1, channel.lastArrayId_); + assertEquals(7, channel.lastPostResponseArrayId_); + sendMap('foo2', 'bar2'); + mockClock.tick(goog.labs.net.webChannel.WebChannelBase.RTT_ESTIMATE); + response(8, 119); + mockClock.tick(goog.labs.net.webChannel.WebChannelBase.RTT_ESTIMATE); + // The original timer should still fire. + assertEquals( + goog.labs.net.webChannel.requestStats.Stat.BACKCHANNEL_DEAD, + lastStatEvent); +} + + +function testOnlyRetryOnceBasedOnResponse() { + connect(8); + sendMap('foo1', 'bar1'); + assertEquals(-1, channel.lastPostResponseArrayId_); + + // Send a response as if the server has sent down seven arrays. + response(7, 111); + + assertEquals(1, channel.lastArrayId_); + assertEquals(7, channel.lastPostResponseArrayId_); + assertTrue(hasDeadBackChannelTimer()); + mockClock.tick(goog.labs.net.webChannel.WebChannelBase.RTT_ESTIMATE * 2); + assertEquals( + goog.labs.net.webChannel.requestStats.Stat.BACKCHANNEL_DEAD, + lastStatEvent); + assertEquals(1, channel.backChannelRetryCount_); + mockClock.tick(goog.labs.net.webChannel.WebChannelBase.RTT_ESTIMATE); + sendMap('foo2', 'bar2'); + assertFalse(hasDeadBackChannelTimer()); + response(8, 119); + assertFalse(hasDeadBackChannelTimer()); +} + + +function testResponseWithArraysMissingAndLiveChannel() { + connect(8); + sendMap('foo1', 'bar1'); + assertEquals(-1, channel.lastPostResponseArrayId_); + + // Send a response as if the server has sent down seven arrays. + response(7, 111); + + assertEquals(1, channel.lastArrayId_); + assertEquals(7, channel.lastPostResponseArrayId_); + mockClock.tick(goog.labs.net.webChannel.WebChannelBase.RTT_ESTIMATE); + assertTrue(hasDeadBackChannelTimer()); + receive('["ack"]'); + assertFalse(hasDeadBackChannelTimer()); + mockClock.tick(goog.labs.net.webChannel.WebChannelBase.RTT_ESTIMATE); + assertNotEquals( + goog.labs.net.webChannel.requestStats.Stat.BACKCHANNEL_DEAD, + lastStatEvent); +} + + +function testResponseWithBigOutstandingData() { + connect(8); + sendMap('foo1', 'bar1'); + assertEquals(-1, channel.lastPostResponseArrayId_); + + // Send a response as if the server has sent down seven arrays and 50kbytes. + response(7, 50000); + + assertEquals(1, channel.lastArrayId_); + assertEquals(7, channel.lastPostResponseArrayId_); + assertFalse(hasDeadBackChannelTimer()); + mockClock.tick(goog.labs.net.webChannel.WebChannelBase.RTT_ESTIMATE * 2); + assertNotEquals( + goog.labs.net.webChannel.requestStats.Stat.BACKCHANNEL_DEAD, + lastStatEvent); +} + + +function testResponseInBufferedMode() { + connect(8); + channel.useChunked_ = false; + sendMap('foo1', 'bar1'); + assertEquals(-1, channel.lastPostResponseArrayId_); + response(7, 111); + + assertEquals(1, channel.lastArrayId_); + assertEquals(7, channel.lastPostResponseArrayId_); + assertFalse(hasDeadBackChannelTimer()); + mockClock.tick(goog.labs.net.webChannel.WebChannelBase.RTT_ESTIMATE * 2); + assertNotEquals( + goog.labs.net.webChannel.requestStats.Stat.BACKCHANNEL_DEAD, + lastStatEvent); +} + + +function testResponseWithGarbage() { + connect(8); + sendMap('foo1', 'bar1'); + channel.onRequestData( + channel.forwardChannelRequest_, + 'garbage' + ); + assertEquals(goog.labs.net.webChannel.WebChannelBase.State.CLOSED, + channel.getState()); +} + + +function testResponseWithGarbageInArray() { + connect(8); + sendMap('foo1', 'bar1'); + channel.onRequestData( + channel.forwardChannelRequest_, + '["garbage"]' + ); + assertEquals(goog.labs.net.webChannel.WebChannelBase.State.CLOSED, + channel.getState()); +} + + +function testResponseWithEvilData() { + connect(8); + sendMap('foo1', 'bar1'); + channel.onRequestData( + channel.forwardChannelRequest_, + 'foo= + + + + diff --git a/edit/examples/animation.js b/edit/examples/animation.js new file mode 100644 index 0000000000..a68db94928 --- /dev/null +++ b/edit/examples/animation.js @@ -0,0 +1,133 @@ +var london = ol.proj.transform([-0.12755, 51.507222], 'EPSG:4326', 'EPSG:3857'); +var moscow = ol.proj.transform([37.6178, 55.7517], 'EPSG:4326', 'EPSG:3857'); +var istanbul = ol.proj.transform([28.9744, 41.0128], 'EPSG:4326', 'EPSG:3857'); +var rome = ol.proj.transform([12.5, 41.9], 'EPSG:4326', 'EPSG:3857'); +var bern = ol.proj.transform([7.4458, 46.95], 'EPSG:4326', 'EPSG:3857'); +var madrid = ol.proj.transform([-3.683333, 40.4], 'EPSG:4326', 'EPSG:3857'); + +var view = new ol.View2D({ + // the view's initial state + center: istanbul, + zoom: 6 +}); + +var map = new ol.Map({ + layers: [ + new ol.layer.Tile({ + preload: 4, + source: new ol.source.OSM() + }) + ], + renderers: ol.RendererHints.createFromQueryData(), + target: 'map', + view: view +}); + +var rotateLeft = document.getElementById('rotate-left'); +rotateLeft.addEventListener('click', function() { + var rotateLeft = ol.animation.rotate({ + duration: 2000, + rotation: -4 * Math.PI + }); + map.beforeRender(rotateLeft); +}, false); +var rotateRight = document.getElementById('rotate-right'); +rotateRight.addEventListener('click', function() { + var rotateRight = ol.animation.rotate({ + duration: 2000, + rotation: 4 * Math.PI + }); + map.beforeRender(rotateRight); +}, false); + + +var panToLondon = document.getElementById('pan-to-london'); +panToLondon.addEventListener('click', function() { + var pan = ol.animation.pan({ + duration: 2000, + source: view.getCenter() + }); + map.beforeRender(pan); + view.setCenter(london); +}, false); + +var elasticToMoscow = document.getElementById('elastic-to-moscow'); +elasticToMoscow.addEventListener('click', function() { + var pan = ol.animation.pan({ + duration: 2000, + easing: ol.easing.elastic, + source: view.getCenter() + }); + map.beforeRender(pan); + view.setCenter(moscow); +}, false); + +var bounceToIstanbul = document.getElementById('bounce-to-istanbul'); +bounceToIstanbul.addEventListener('click', function() { + var pan = ol.animation.pan({ + duration: 2000, + easing: ol.easing.bounce, + source: view.getCenter() + }); + map.beforeRender(pan); + view.setCenter(istanbul); +}, false); + +var spinToRome = document.getElementById('spin-to-rome'); +spinToRome.addEventListener('click', function() { + var duration = 2000; + var start = +new Date(); + var pan = ol.animation.pan({ + duration: duration, + source: view.getCenter(), + start: start + }); + var rotate = ol.animation.rotate({ + duration: duration, + rotation: 2 * Math.PI, + start: start + }); + map.beforeRender(pan, rotate); + view.setCenter(rome); +}, false); + +var flyToBern = document.getElementById('fly-to-bern'); +flyToBern.addEventListener('click', function() { + var duration = 2000; + var start = +new Date(); + var pan = ol.animation.pan({ + duration: duration, + source: view.getCenter(), + start: start + }); + var bounce = ol.animation.bounce({ + duration: duration, + resolution: 4 * view.getResolution(), + start: start + }); + map.beforeRender(pan, bounce); + view.setCenter(bern); +}, false); + +var spiralToMadrid = document.getElementById('spiral-to-madrid'); +spiralToMadrid.addEventListener('click', function() { + var duration = 2000; + var start = +new Date(); + var pan = ol.animation.pan({ + duration: duration, + source: view.getCenter(), + start: start + }); + var bounce = ol.animation.bounce({ + duration: duration, + resolution: 2 * view.getResolution(), + start: start + }); + var rotate = ol.animation.rotate({ + duration: duration, + rotation: -4 * Math.PI, + start: start + }); + map.beforeRender(pan, bounce, rotate); + view.setCenter(madrid); +}, false); diff --git a/edit/examples/bind-input-require.js b/edit/examples/bind-input-require.js new file mode 100644 index 0000000000..cf165cf681 --- /dev/null +++ b/edit/examples/bind-input-require.js @@ -0,0 +1,7 @@ +goog.require('ol.Map'); +goog.require('ol.RendererHints'); +goog.require('ol.View2D'); +goog.require('ol.dom.Input'); +goog.require('ol.layer.Tile'); +goog.require('ol.source.OSM'); +goog.require('ol.webgl.SUPPORTED'); diff --git a/edit/examples/bind-input.html b/edit/examples/bind-input.html new file mode 100644 index 0000000000..13242c3503 --- /dev/null +++ b/edit/examples/bind-input.html @@ -0,0 +1,94 @@ + + + + + + + + + + + Bind HTML input example + + + + + +
+ +
+
+
+
+
+ +
+ +
+

Bind HTML input example

+

Demonstrates two-way binding of HTML input elements to OpenLayers objects.

+
+

See the bind-input.js source to see how this is done.

+ +
+
input, bind, openstreetmap
+
+ +
+
+
+ Layer + + + + + + + + + + + +
+
+
+ +
+
+
+ View + + + + +
+
+
+ +
+ +
+ + + + + + diff --git a/edit/examples/bind-input.js b/edit/examples/bind-input.js new file mode 100644 index 0000000000..e59400227f --- /dev/null +++ b/edit/examples/bind-input.js @@ -0,0 +1,49 @@ +if (!ol.webgl.SUPPORTED) { + var inputs = document.getElementsByClassName('webgl'); + for (var i = 0, len = inputs.length; i < len; i++) { + inputs[i].disabled = true; + } + var info = document.getElementById('no-webgl'); + /** + * display warning message + */ + info.style.display = ''; +} + +var layer = new ol.layer.Tile({ + source: new ol.source.OSM() +}); +var map = new ol.Map({ + layers: [layer], + renderers: ol.RendererHints.createFromQueryData(), + target: 'map', + view: new ol.View2D({ + center: [0, 0], + zoom: 2 + }) +}); + +var visible = new ol.dom.Input(document.getElementById('visible')); +visible.bindTo('checked', layer, 'visible'); + +var opacity = new ol.dom.Input(document.getElementById('opacity')); +opacity.bindTo('valueAsNumber', layer, 'opacity'); + +var hue = new ol.dom.Input(document.getElementById('hue')); +hue.bindTo('valueAsNumber', layer, 'hue'); + +var saturation = new ol.dom.Input(document.getElementById('saturation')); +saturation.bindTo('valueAsNumber', layer, 'saturation'); + +var contrast = new ol.dom.Input(document.getElementById('contrast')); +contrast.bindTo('valueAsNumber', layer, 'contrast'); + +var brightness = new ol.dom.Input(document.getElementById('brightness')); +brightness.bindTo('valueAsNumber', layer, 'brightness'); + + +var rotation = new ol.dom.Input(document.getElementById('rotation')); +rotation.bindTo('valueAsNumber', map.getView(), 'rotation'); + +var resolution = new ol.dom.Input(document.getElementById('resolution')); +resolution.bindTo('valueAsNumber', map.getView(), 'resolution'); diff --git a/master/examples/bing-maps-require.js b/edit/examples/bing-maps-require.js similarity index 55% rename from master/examples/bing-maps-require.js rename to edit/examples/bing-maps-require.js index bfb9b043eb..0f085fe93a 100644 --- a/master/examples/bing-maps-require.js +++ b/edit/examples/bing-maps-require.js @@ -1,7 +1,6 @@ -goog.require('ol.Coordinate'); goog.require('ol.Map'); goog.require('ol.RendererHints'); goog.require('ol.View2D'); -goog.require('ol.layer.TileLayer'); -goog.require('ol.projection'); +goog.require('ol.layer.Tile'); +goog.require('ol.proj'); goog.require('ol.source.BingMaps'); diff --git a/master/examples/bing-maps.html b/edit/examples/bing-maps.html similarity index 58% rename from master/examples/bing-maps.html rename to edit/examples/bing-maps.html index b4c20e3071..d4c95e11f4 100644 --- a/master/examples/bing-maps.html +++ b/edit/examples/bing-maps.html @@ -4,9 +4,10 @@ - - - + + + + Bing Maps example @@ -14,10 +15,12 @@ + +]]> + #khStylem0350 + + + + +-55.39375,51.64408,0 -55.53551,50.93423,0 -55.44086,50.79227,0 -55.50396,50.03511,0 -55.43297,49.94835000000001,0 -55.78001,49.76695,0 -55.72480000000001,49.68018,0 -55.33043000000001,49.53822,0 -55.07016,49.58554000000001,0 -54.81778000000001,49.70385,0 -54.09216,49.77482000000001,0 -53.91076,49.6092,0 -53.43753,49.27005,0 -53.59527,48.93091,0 -53.56372,48.82837,0 -53.57161,48.71006000000001,0 -53.50852,48.59177,0 -53.41388,48.63908000000001,0 -53.26402000000001,48.59966,0 -53.08260000000001,48.72585,0 -52.94065000000001,48.59177,0 -53.05107,48.41823999999999,0 -53.36654000000001,48.25262,0 -53.18515000000001,48.10277,0 -52.93275,48.20530000000001,0 -52.72769000000001,48.16587000000001,0 -52.77501,48.08699,0 -53.01952000000001,47.90558999999999,0 -53.09838,47.69263,0 -52.88544,47.69263,0 -52.81445000000001,47.83459,0 -52.68037,47.76362,0 -52.59361000000001,47.51122,0 -52.80656000000001,47.16419000000001,0 -52.90121,46.76984000000002,0 -53.12204000000001,46.59632000000001,0 -53.32711000000001,46.66731,0 -53.42175000000002,46.66731,0 -53.53217000000001,46.59632000000001,0 -53.61893000000001,46.61998,0 -53.68204000000001,46.69886,0 -53.6426,46.91969000000001,0 -53.80033,46.94335,0 -53.91864,46.84081,0 -54.06062,46.77773,0 -54.21047,46.78561,0 -54.21047,46.91969000000001,0 -54.03695,47.25095000000001,0 -54.36033000000001,47.37714,0 -54.99129,47.17208000000001,0 -55.14116,46.9749,0 -55.3541,46.82505,0 -56.10338,46.84081,0 -56.10338,46.90392,0 -55.89832,47.07743000000001,0 -55.71691000000001,47.14054000000001,0 -55.88254000000001,47.25095000000001,0 -56.01662,47.24306000000001,0 -56.30055,47.5901,0 -56.81322,47.47968,0 -56.97096000000001,47.3456,0 -57.71236,47.58221000000001,0 -58.29600000000001,47.62165000000001,0 -59.2109,47.527,0 -59.3292,47.5901,0 -59.43964,47.90558999999999,0 -59.28977,48.48923,0 -59.22667000000001,48.58387000000001,0 -58.77711000000001,48.81260000000002,0 -58.39064,49.19907,0 -57.94108,49.80638,0 -57.32588,50.86326,0 -57.10572,51.03270000000001,0 -57.07413,53.19926000000002,0 -55.742,53.19926000000002,0 -55.76833000000001,52.86228000000001,0 -55.60509,52.46212,0 -55.61563,52.12514000000001,0 -55.39375,51.64408,0 + + + 1 + + + + GMT -03:00 +
+ +]]> + #khStylem0300 + + + + + +-56.12872,46.48062,0 -56.74985000000001,46.48062,0 -56.74985000000001,47.16830000000001,0 -56.12872,47.16830000000001,0 -56.12872,46.48062,0 + + + 1 + + + + + +-37.51992,84.90001,0 -37.51992,83.74590000000001,0 -34.51386,83.78599,0 -29.51426,83.7223,0 -28.22116000000001,83.70583000000001,0 -23.25304,83.14206,0 -22.56975,83.06453000000002,0 -21.33607,82.72414000000001,0 -19.25519,82.23316,0 -18.10955,81.78892999999999,0 -17.59517,81.92921,0 -16.16897,82.02274,0 -13.71401,81.90584,0 -12.03061,81.69541,0 -12.03061,81.55513000000001,0 -14.53233,80.80695,0 -15.51431,80.61991,0 -17.31461,79.94186999999999,0 -17.47827,79.26384,0 -17.52503,77.76749,0 -18.06279,76.85564000000001,0 -18.50702,75.85029,0 -17.24447,75.26577,0 -17.26786,74.98521,0 -18.13293,74.58775,0 -19.34872,74.17858,0 -20.28394,73.40702,0 -21.42958000000001,72.84589,0 -21.78029,72.14449000000001,0 -21.17239,70.78841,0 -21.35944,70.48445,0 -22.03747,69.97009,0 -22.51389,69.82120999999999,0 -23.90792,69.38557000000002,0 -25.89525,68.70753000000001,0 -27.43837,68.38021000000001,0 -29.7998,67.98274000000001,0 -31.90405,67.86584000000001,0 -33.65758,66.67344,0 -35.45789,65.8785,0 -37.51991,65.16843,0 -37.51991,64.96842,0 -37.51991,59.96843000000001,0 -37.51991,54.96843,0 -37.51991,49.96843,0 -37.51991,44.96843000000001,0 -37.51991,39.96843,0 -37.51991,34.96843,0 -37.51991,29.96842,0 -37.51991,25.36843,0 -37.51991,20.36843,0 -37.51991,15.36843,0 -37.51991,15.36609,0 -37.51991,10.36609,0 -37.51991,5.366087,0 -37.51991,0.3660925,0 -37.51991,-4.633912,0 -37.28973,-4.726108,0 -37.17445,-4.918609,0 -36.88278,-4.949163,0 -36.79723,-5.046391,0 -36.68722,-5.098339,0 -36.54417,-5.134447,0 -36.52583,-5.108608,0 -36.58167,-5.088051,0 -36.28028,-5.11111,0 -36.25472,-5.10166,0 -36.28751,-5.091660000000001,0 -36.12889,-5.097502,0 -35.93472,-5.052223,0 -35.60445000000001,-5.110839,0 -35.4175,-5.214717000000001,0 -35.26195,-5.484726,0 -35.14557,-5.938893000000001,0 -35.105,-5.981112000000001,0 -35.09278,-6.178887000000001,0 -35.11528,-6.165838,0 -35.15501,-6.208894,0 -35.13584,-6.228612,0 -35.08778,-6.199164,0 -35.04139,-6.233887000000001,0 -35.01501,-6.374998000000001,0 -34.98028,-6.40639,0 -34.94334,-6.779997000000001,0 -34.91195,-6.879997000000001,0 -34.85834,-6.919444,0 -34.915,-7.127497,0 -34.85695,-7.075837,0 -34.82556,-6.987502,0 -34.83084,-7.108605,0 -34.7925,-7.178607,0 -34.8075,-7.515000000000001,0 -34.81779,-7.546942,0 -34.8932,-7.543089,0 -34.92334,-7.563889000000001,0 -34.84056,-7.554448,0 -34.80083,-7.63111,0 -34.83084,-7.683337,0 -34.87555,-7.622227000000001,0 -34.85167,-7.695559000000002,0 -34.90696,-7.735834,0 -34.85834,-7.73028,0 -34.89333,-7.804998000000001,0 -34.84472,-7.835554000000001,0 -34.81528,-7.935283000000001,0 -34.85612,-8.073612000000001,0 -34.92668,-8.038333,0 -34.88001,-8.113049999999999,0 -34.94,-8.270550999999999,0 -34.93584,-8.350552,0 -35.02194,-8.423056000000001,0 -34.98694,-8.418888000000001,0 -34.99195,-8.448895,0 -34.97001,-8.430552000000001,0 -35.16612,-8.960283,0 -35.32751,-9.228889000000001,0 -35.45667,-9.346393000000001,0 -35.5825,-9.535833,0 -35.65751,-9.586387,0 -35.69028,-9.668889999999999,0 -35.77306,-9.695277000000001,0 -35.73695,-9.651394000000002,0 -35.79362,-9.589725,0 -35.79222,-9.683056000000001,0 -35.86,-9.739160999999999,0 -35.90528,-9.621667,0 -35.95196,-9.602784,0 -35.86917,-9.764163999999999,0 -35.79557,-9.728334,0 -36.04444000000001,-10.07583,0 -36.28139,-10.28695,0 -36.28445,-10.3525,0 -36.40483,-10.49879,0 -36.56751,-10.54445,0 -36.85861,-10.73916,0 -37.02166,-10.93584,0 -37.00862,-10.81056,0 -37.06889000000001,-10.79445,0 -37.07779,-10.73389,0 -37.15333,-10.74861,0 -37.09417000000001,-10.80111,0 -37.14168,-10.82528,0 -37.04028000000001,-10.8375,0 -37.05333,-10.94917,0 -37.15667,-11.10444,0 -37.20723,-11.03723,0 -37.27916,-11.02528,0 -37.26028,-11.07222,0 -37.20195,-11.0925,0 -37.22112,-11.10778,0 -37.16446,-11.11389,0 -37.15112,-11.19194,0 -37.26501,-11.28667,0 -37.33000000000001,-11.42723,0 -37.39834,-11.40223,0 -37.36362,-11.31556,0 -37.27584,-11.25973,0 -37.29862,-11.20195,0 -37.30555,-11.245,0 -37.34779,-11.18778,0 -37.31362,-11.26305,0 -37.34861,-11.25028,0 -37.33139,-11.28667,0 -37.39528,-11.33389,0 -37.41223,-11.40278,0 -37.46917,-11.36667,0 -37.39305,-11.45,0 -37.48791,-11.52023,0 -37.39806,-11.49972,0 -37.36223,-11.45472,0 -37.51972,-11.77389,0 -37.51972,-12.17389,0 -37.51974,-17.17389,0 -37.51975,-22.17389,0 -37.51977,-27.17389,0 -37.51978,-32.17389,0 -37.51979,-37.17389,0 -37.51979,-42.17389,0 -37.5198,-47.08813000000001,0 -37.51982,-52.08813,0 -40.01502,-52.08813,0 -45.01502000000001,-52.08813,0 -45.01502000000001,-54.93388,0 -42.51982,-54.93388,0 -37.51983,-54.93388,0 -37.51984,-59.90001,0 -37.51985000000001,-64.90000000000001,0 -37.51987,-69.90000000000001,0 -37.51987,-74.90000000000001,0 -37.51988,-79.90000000000001,0 -37.51989,-84.89999,0 -37.51991,-89.90000000000001,0 -38.51878,-89.90000000000001,0 -39.51765,-89.90000000000001,0 -40.51651,-89.90000000000001,0 -41.51539,-89.90000000000001,0 -42.51426,-89.90000000000001,0 -43.51314000000001,-89.90000000000001,0 -44.51201,-89.90000000000001,0 -45.51088,-89.90000000000001,0 -46.50975,-89.90000000000001,0 -47.50861,-89.90000000000001,0 -48.50749,-89.90000000000001,0 -49.50636,-89.90000000000001,0 -50.50524000000001,-89.90000000000001,0 -51.5041,-89.90000000000001,0 -52.50298000000001,-89.90000000000001,0 -52.50305,-87.53888000000001,0 -52.50323000000001,-82.53889,0 -52.50335,-79.03888000000001,0 -52.50352,-74.03888000000001,0 -52.50368,-69.03889,0 -52.50372,-67.88475,0 -52.50385,-62.88475,0 -52.50398000000001,-57.88475,0 -52.50412000000001,-52.88476000000001,0 -52.50425,-47.88475,0 -52.50438,-42.88476,0 -52.50452,-37.88475,0 -52.50465000000001,-32.88476,0 -52.74139000000001,-33.25695,0 -53.3743,-33.74068,0 -53.48251000000001,-33.85445,0 -53.53723000000001,-34.06612,0 -53.75029,-34.25751,0 -53.77139,-34.39083,0 -53.98890000000001,-34.50389,0 -54.13,-34.62389000000001,0 -54.14500000000001,-34.67139,0 -54.25695,-34.68945000000001,0 -54.2425,-34.58139,0 -54.32557,-34.56278,0 -54.28167,-34.59306,0 -54.34583,-34.64362,0 -54.30083000000001,-34.65,0 -54.27916,-34.69389,0 -54.53111,-34.80609000000001,0 -54.95129000000001,-34.9778,0 -54.95612000000001,-34.94028,0 -55.05556000000001,-34.8914,0 -55.25666,-34.90723,0 -55.36501,-34.81056,0 -55.68557000000001,-34.77444,0 -56.16861,-34.93194,0 -56.22084,-34.88945,0 -56.32028,-34.91057,0 -56.42556,-34.84306,0 -56.36723,-34.79444,0 -56.5639,-34.77251,0 -56.88779,-34.66612,0 -57.11778,-34.46222,0 -57.45778,-34.44222,0 -57.51945000000001,-34.46445,0 -57.58195000000001,-34.43917,0 -57.84028,-34.49473,0 -57.90722,-34.37,0 -58.08334,-34.18695,0 -58.18541,-34.16549,0 -58.40885999999999,-34.22926,0 -58.47195,-34.28111,0 -58.56667,-34.29056,0 -58.48417000000001,-34.34166,0 -58.52528,-34.43972,0 -58.46972000000001,-34.53972,0 -58.36945000000001,-34.58389,0 -58.34633000000001,-34.63362,0 -58.34472,-34.63612,0 -58.19723,-34.73861,0 -57.81361,-34.86584,0 -57.49889,-35.04556,0 -57.33555,-35.15556,0 -57.18833000000001,-35.32055,0 -57.12473,-35.41695,0 -57.12972000000001,-35.47029,0 -57.37612,-35.78139,0 -57.37666999999999,-35.96278,0 -57.23667,-36.18418,0 -57.05334,-36.31417,0 -56.93389,-36.34723,0 -56.94195,-36.38334,0 -56.84778,-36.34222,0 -56.76778000000001,-36.3475,0 -56.77361,-36.30445,0 -56.74167,-36.31834,0 -56.67168000000001,-36.57584,0 -56.66306000000001,-36.90056,0 -57.09973000000002,-37.47445,0 -57.48056,-37.82584,0 -57.54112,-37.98195000000001,0 -57.53306,-38.08611,0 -57.63473000000001,-38.18,0 -57.84584,-38.29917,0 -58.31223000000001,-38.48972,0 -58.72279,-38.58055000000001,0 -59.03807,-38.69251,0 -59.61,-38.77973,0 -59.78973,-38.83694,0 -60.86000000000001,-38.97639,0 -61.16223,-38.99889,0 -61.38361,-38.97973000000001,0 -61.56255,-39.01225,0 -61.85882,-39.24178,0 -62.05002,-39.48876,0 -62.11639,-39.83945,0 -62.18917,-39.86,0 -62.3075,-39.81861,0 -62.28612,-39.85473,0 -62.32000000000001,-39.86834,0 -62.36418000000001,-40.05528,0 -62.35278000000002,-40.18167,0 -62.48945,-40.29945,0 -62.42084,-40.45945,0 -62.33139000000001,-40.49834,0 -62.29111,-40.56583,0 -62.26000000000001,-40.56001,0 -62.26139000000001,-40.63334,0 -62.34807,-40.60723,0 -62.32666,-40.67834000000001,0 -62.18389,-40.62972000000001,0 -62.22972,-40.66361,0 -62.32110999999999,-40.86723,0 -62.72333,-41.04611,0 -62.80139,-41.04333,0 -63.03334000000002,-41.14834,0 -63.14195000000001,-41.16056,0 -63.8075,-41.15917,0 -63.96001,-41.06445,0 -64.05833,-41.04501,0 -64.05334000000001,-40.99918,0 -64.14223,-41.02195,0 -64.41251,-40.90945,0 -64.69112,-40.83889,0 -64.88528,-40.83806,0 -64.91166,-40.82028,0 -64.89612,-40.79862,0 -64.74918,-40.80278,0 -64.75194999999999,-40.77695,0 -64.7975,-40.77223,0 -64.77528,-40.73278,0 -64.98141,-40.72195,0 -64.9264,-40.72862,0 -64.93807,-40.75639,0 -64.90611,-40.76862,0 -65.0125,-40.77195,0 -65.12584,-40.84056,0 -65.17973000000001,-40.99667,0 -65.07111999999999,-41.43334,0 -64.99111000000001,-41.51083000000001,0 -65.02916999999999,-41.67556,0 -64.99084000000001,-41.77862,0 -65.07445,-41.93167,0 -65.06223,-42.01,0 -64.99418,-42.11222,0 -64.87139999999999,-42.19195,0 -64.46251,-42.26362,0 -64.60695,-42.41889,0 -64.45193999999999,-42.44584,0 -64.30417,-42.41528,0 -64.1189,-42.43444000000001,0 -64.04528999999999,-42.37251,0 -64.06305999999999,-42.27862,0 -64.33446000000001,-42.23667,0 -64.19917,-42.22417,0 -63.87195000000001,-42.10250000000001,0 -63.74694,-42.09056000000001,0 -63.59083,-42.31695,0 -63.57805,-42.60612,0 -63.63334,-42.71278,0 -63.62583,-42.76194,0 -63.69306000000001,-42.82168,0 -64.08694,-42.89028,0 -64.24918,-42.77612,0 -64.19611999999999,-42.63889,0 -64.39806,-42.51584,0 -64.62194,-42.52,0 -64.82084999999999,-42.62862,0 -64.96056000000002,-42.66639,0 -65.01806999999999,-42.73944000000001,0 -64.99278,-42.79361,0 -64.80862000000001,-42.84028000000001,0 -64.59390000000001,-42.94112000000001,0 -64.50389,-42.93806000000001,0 -64.41028,-42.97805,0 -64.31556999999999,-42.94944,0 -64.29501000000001,-42.99195,0 -64.49168,-43.08445,0 -64.80029999999999,-43.16112,0 -65.02806,-43.30445,0 -65.03722000000001,-43.39418,0 -65.33029000000001,-43.66779,0 -65.32001,-43.81945,0 -65.25834999999999,-43.96973,0 -65.21028,-43.95528,0 -65.22445999999999,-44.10751000000001,0 -65.29695,-44.13223,0 -65.31249,-44.18696,0 -65.22806,-44.33667000000001,0 -65.34222,-44.43862,0 -65.27667,-44.48028,0 -65.35945,-44.48306,0 -65.38751000000001,-44.52166,0 -65.3614,-44.54418,0 -65.44056999999999,-44.53807,0 -65.59945999999999,-44.61805,0 -65.71917999999999,-44.77612,0 -65.71084999999999,-44.83362,0 -65.53055999999999,-44.895,0 -65.58474,-44.92445,0 -65.60474000000001,-45.0164,0 -65.68556,-45.04306,0 -65.85139,-44.98584,0 -65.87529000000001,-45.01944000000001,0 -65.94917,-45.02223,0 -66.01528999999999,-44.97389,0 -66.19473000000001,-44.95917,0 -66.28500000000001,-45.03167000000001,0 -66.52196000000001,-45.08667000000001,0 -66.53473,-45.11584,0 -66.45975,-45.14362,0 -66.58863,-45.13862,0 -66.51918000000001,-45.17889,0 -66.53528,-45.20444000000001,0 -66.84668000000001,-45.21029,0 -66.94946,-45.25557,0 -67.18362000000001,-45.52861,0 -67.31611000000001,-45.61501,0 -67.34166999999999,-45.77890000000001,0 -67.42222,-45.82195,0 -67.58436000000002,-46.00031,0 -67.58667,-46.00389000000001,0 -67.62029,-46.17139,0 -67.53667,-46.4175,0 -67.33805,-46.62528,0 -67.12445,-46.72639,0 -67.05473000000001,-46.81001,0 -66.71666999999999,-47.04000000000001,0 -66.20916,-47.09361000000001,0 -65.99335000000001,-47.06667000000001,0 -65.90001,-47.09862,0 -65.77224,-47.19834,0 -65.73222,-47.34418,0 -65.75696000000001,-47.54194,0 -65.87584,-47.76222,0 -66.02251,-47.76084,0 -66.12083,-47.81973,0 -66.32168,-47.87306,0 -66.38863000000001,-47.8625,0 -66.32418,-47.88278,0 -65.97333999999999,-47.78389000000001,0 -65.91195999999999,-47.80418,0 -65.87000999999999,-47.90222000000001,0 -65.78722999999999,-47.93557000000001,0 -65.79584,-47.97028000000001,0 -65.97139,-47.96111000000001,0 -65.89778,-48.09973000000001,0 -66.07944999999999,-48.10444,0 -66.1414,-48.18472,0 -66.33556,-48.28362000000001,0 -66.32751,-48.34555,0 -66.44362,-48.34723000000001,0 -66.46805999999999,-48.39917000000001,0 -66.66750999999999,-48.44167,0 -66.82668,-48.57111,0 -67.08278,-48.63889000000001,0 -67.23972999999999,-48.82278000000001,0 -67.39917,-48.89056000000001,0 -67.50834999999999,-48.98417,0 -67.49554000000002,-53.95288,0 -66.92418000000001,-54.21918,0 -66.70361,-54.28917,0 -66.54667000000001,-54.41389,0 -66.27166000000001,-54.52806000000001,0 -65.82751,-54.65584,0 -65.67361,-54.67306,0 -65.22362,-54.63361,0 -64.55267000000001,-54.715,0 -64.4539,-54.75833,0 -64.41278,-54.73667,0 -64.38112,-54.78861,0 -64.35806,-54.70639,0 -64.17834000000001,-54.75083999999999,0 -64.16833,-54.71417000000002,0 -64.06417999999999,-54.75000000000001,0 -63.92001,-54.71417000000002,0 -63.81362000000001,-54.7314,0 -63.96861000000001,-54.81807,0 -63.97278,-54.75973000000001,0 -64.25389,-54.84223,0 -64.25306999999999,-54.77972,0 -64.30945,-54.77778,0 -64.41862,-54.83862000000001,0 -64.49612000000001,-54.82696,0 -64.60972,-54.9,0 -64.67834000000001,-54.90723,0 -65.37667999999999,-54.93056,0 -65.47139,-54.88361,0 -65.49001,-54.93472000000001,0 -65.59889,-54.93056,0 -65.6575,-54.97223,0 -65.70585,-54.96611,0 -65.73779,-54.90222,0 -65.95529000000001,-54.89612000000001,0 -66.01334,-54.95612000000001,0 -66.37195,-54.98500000000001,0 -66.45808000000001,-55.05168,0 -66.64944,-55.02584,0 -66.79639,-54.94555,0 -67.01134,-54.90862,0 -67.84778,-54.87611,0 -68.28834999999999,-54.79362,0 -68.32334,-54.84361,0 -68.55723999999999,-54.88001,0 -68.6431,-54.88861,0 -68.63612000000001,-54.80477,0 -68.63583,-54.78834,0 -68.61758000000002,-52.64151,0 -68.44176,-52.37778000000001,0 -68.4375,-52.32833,0 -68.82861,-52.27973,0 -69.23362,-52.14334000000001,0 -69.46139000000001,-52.14362000000001,0 -69.99834,-51.9964,0 -71.9314,-51.98889000000001,0 -71.96251,-51.96029000000001,0 -71.93946,-51.89889,0 -71.96639999999999,-51.84861,0 -72.13555,-51.74001,0 -72.28558,-51.69917000000001,0 -72.33085,-51.58723000000001,0 -72.43944999999999,-51.55972000000001,0 -72.33945,-51.47583,0 -72.30917,-51.30222,0 -72.24529000000001,-51.24443999999999,0 -72.37167,-51.16473000000001,0 -72.39778,-51.11418000000001,0 -72.34113000000001,-51.03666,0 -72.26694999999999,-51.01723,0 -72.24223000000001,-50.85111,0 -72.34166999999999,-50.7439,0 -72.29416999999999,-50.64972000000001,0 -72.50112,-50.60334,0 -72.62973,-50.67305,0 -72.75834999999999,-50.6189,0 -72.90611,-50.6675,0 -73.01806000000001,-50.74945,0 -73.14445000000001,-50.76750000000001,0 -73.18085000000001,-50.72918,0 -73.17834000000001,-50.64777999999999,0 -73.24918,-50.57639,0 -73.28001999999999,-50.32278,0 -73.34639,-50.23806,0 -73.53223,-50.14056,0 -73.46722,-50.00666,0 -73.56445000000001,-49.92472999999999,0 -73.44446000000001,-49.7825,0 -73.53333000000001,-49.68973,0 -73.51000999999999,-49.61334,0 -73.58168000000001,-49.53196,0 -73.52972,-49.49639000000001,0 -73.53111,-49.43111,0 -73.45252000000001,-49.38528000000001,0 -73.46474000000001,-49.31139000000001,0 -73.13528,-49.30556,0 -73.08278000000001,-49.26917000000001,0 -73.16768999999999,-49.25264000000001,0 -73.1664,-49.20001000000001,0 -72.98805,-48.98167,0 -72.75528,-48.92806,0 -72.56419,-48.80445,0 -72.58974000000001,-48.4664,0 -72.4075,-48.39694,0 -72.36668,-48.34612000000001,0 -72.28973000000001,-48.3475,0 -72.32278,-48.07556,0 -72.51501,-47.96111000000001,0 -72.53528000000001,-47.90917000000001,0 -72.33168000000001,-47.60168,0 -72.30556,-47.50723,0 -72.35945,-47.48111999999999,0 -72.34723,-47.445,0 -72.25639,-47.41112,0 -72.18056,-47.42028000000001,0 -72.08362,-47.35472000000001,0 -72.01501,-47.27444000000001,0 -72.03195,-47.20333,0 -71.91752,-47.23446,0 -71.86528,-47.21694000000001,0 -71.86057,-47.14194,0 -71.99667,-47.06111,0 -71.90472,-47.00084,0 -71.96056,-46.95,0 -71.92471999999999,-46.85056,0 -71.94029000000001,-46.81556000000001,0 -71.80891,-46.78417,0 -71.68195,-46.69889,0 -71.66916999999999,-46.54750000000001,0 -71.74890000000001,-46.38612000000001,0 -71.74751000000001,-46.24278,0 -71.90611,-46.14834000000001,0 -71.76028,-46.11417,0 -71.645,-45.99945,0 -71.60167,-45.97473000000002,0 -71.63001000000001,-45.90084000000001,0 -71.75501,-45.84833,0 -71.73833999999999,-45.79028,0 -71.79250999999999,-45.73251,0 -71.78055999999999,-45.64889000000001,0 -71.73278999999999,-45.59890000000001,0 -71.75666,-45.56278,0 -71.50249,-45.51556,0 -71.46751999999999,-45.4775,0 -71.50639,-45.41139,0 -71.37334,-45.36944,0 -71.29779000000001,-45.29334000000001,0 -71.33835000000001,-45.22055,0 -71.45361,-45.15918,0 -71.57362000000001,-44.97945,0 -71.67473,-44.98028,0 -71.75335,-44.93194,0 -71.8839,-44.94862,0 -72.06279000000001,-44.90556,0 -72.08085,-44.77473000000001,0 -72.0425,-44.75417,0 -71.84945999999999,-44.79306,0 -71.77,-44.75389,0 -71.65363000000001,-44.78279,0 -71.50084,-44.74305,0 -71.28223,-44.80028000000001,0 -71.22362,-44.745,0 -71.23334,-44.66278,0 -71.19723999999999,-44.59694,0 -71.13473000000001,-44.58389,0 -71.10806,-44.53972,0 -71.20361,-44.42694,0 -71.83835000000001,-44.39334,0 -71.85139,-44.36,0 -71.79389999999999,-44.32557,0 -71.82250999999999,-44.26529,0 -71.79389999999999,-44.21556,0 -71.85474000000001,-44.11084000000001,0 -71.75806,-44.07168,0 -71.65224000000001,-43.95166,0 -71.64724,-43.91861,0 -71.69834,-43.86668,0 -71.75557000000001,-43.82557,0 -71.7375,-43.77194,0 -71.7914,-43.78223,0 -71.81140000000001,-43.74917,0 -71.69862000000001,-43.68723,0 -71.70278999999999,-43.59584,0 -71.78001999999999,-43.54834,0 -71.86973999999999,-43.54028,0 -71.85834,-43.46222,0 -71.94665999999999,-43.44723,0 -71.89418000000001,-43.32306,0 -71.74335000000001,-43.30223,0 -71.73584,-43.17694,0 -71.83638999999999,-43.13195000000001,0 -72.05277,-43.10472,0 -72.13946,-42.99139,0 -72.10196999999999,-42.85472,0 -72.13918,-42.58751000000001,0 -72.10945,-42.525,0 -72.02585000000001,-42.4775,0 -72.07167,-42.42973,0 -72.04779000000001,-42.35667000000001,0 -72.13139,-42.28196,0 -72.01221,-42.13111000000001,0 -71.9639,-42.12750000000001,0 -71.91389,-42.17806000000001,0 -71.72889000000001,-42.10139,0 -71.75977,-41.99973,0 -71.78528,-41.86611,0 -71.91833,-41.64473,0 -71.84002,-41.57528,0 -71.87779000000001,-41.52251,0 -71.86472999999999,-41.44083,0 -71.89944,-41.35861,0 -71.83694,-40.95944,0 -71.95056,-40.73278,0 -71.84390000000001,-40.61639,0 -71.85583,-40.555,0 -71.7914,-40.41528,0 -71.71973,-40.42778,0 -71.66389000000001,-40.33611,0 -71.66972,-40.29473,0 -71.70251,-40.27639,0 -71.72861,-40.30112,0 -71.81863,-40.20196,0 -71.78889,-40.07861,0 -71.66166,-40.09389,0 -71.67307,-40.01611000000001,0 -71.60639999999999,-39.91251,0 -71.66945,-39.85723,0 -71.70444999999999,-39.73278,0 -71.68223999999999,-39.56722,0 -71.61528000000001,-39.61973,0 -71.50945,-39.61945,0 -71.48806,-39.59305,0 -71.48584,-39.5575,0 -71.54085000000002,-39.53139,0 -71.47335,-39.47862,0 -71.44889000000001,-39.4325,0 -71.47057,-39.38807,0 -71.40195,-39.32723,0 -71.38751000000001,-39.23446,0 -71.42279000000001,-39.03694,0 -71.4014,-38.92028,0 -71.22612,-38.80306,0 -70.92583999999999,-38.7425,0 -70.86,-38.68806,0 -70.87667,-38.63889,0 -70.82418,-38.56806,0 -70.97083000000001,-38.41807,0 -71.01306,-38.23056,0 -70.99751999999999,-38.07112,0 -71.18028000000001,-37.69806,0 -71.17167000000001,-37.61806000000001,0 -71.11557000000001,-37.57944,0 -71.10806,-37.45862,0 -71.19667,-37.29668,0 -71.13918,-37.22416,0 -71.13528,-37.14417,0 -71.07919,-37.10418,0 -71.125,-37.07557,0 -71.14612,-36.99667,0 -71.20113000000001,-36.97055,0 -71.12223,-36.94695,0 -71.15833000000001,-36.925,0 -71.14028999999999,-36.8825,0 -71.18696,-36.84889,0 -71.13834,-36.69084,0 -71.04584,-36.68584,0 -71.06056000000001,-36.59306,0 -71.02918,-36.47917,0 -70.93611000000001,-36.48194,0 -70.88751000000001,-36.40055,0 -70.80168999999999,-36.43473,0 -70.70808,-36.41778,0 -70.70473,-36.27057,0 -70.58974000000001,-36.19194,0 -70.57999,-36.14861,0 -70.47387999999999,-36.16529,0 -70.42431999999999,-36.13604,0 -70.36917,-36.04667,0 -70.40945000000001,-35.96362,0 -70.37361,-35.91389,0 -70.41058,-35.88694,0 -70.33778,-35.80834,0 -70.42028000000001,-35.64362,0 -70.39667000000002,-35.50362,0 -70.46223000000001,-35.38305,0 -70.42001000000001,-35.34723,0 -70.55029000000002,-35.29667,0 -70.56751,-35.24778,0 -70.53639,-35.20639,0 -70.36806,-35.15889,0 -70.36194999999999,-35.00445,0 -70.26363000000002,-34.79778,0 -70.31362,-34.74889,0 -70.25306999999999,-34.71806000000001,0 -70.22139,-34.59,0 -70.0475,-34.40917,0 -70.04944999999999,-34.28751,0 -69.89335,-34.28612,0 -69.88918,-34.25945,0 -69.81249,-34.23555,0 -69.8689,-34.13361,0 -69.84889,-33.97195,0 -69.90443999999999,-33.95166,0 -69.88306,-33.87972,0 -69.90611,-33.78778000000001,0 -69.84668000000001,-33.71751,0 -69.88528,-33.66278,0 -69.8689,-33.55194,0 -69.82919,-33.53167,0 -69.77444,-33.38111,0 -69.80779,-33.27389,0 -69.91916999999999,-33.23806,0 -69.99583,-33.30194,0 -70.09889,-33.1725,0 -70.10139,-33.03001,0 -70.03528,-32.99834,0 -69.9875,-32.87889,0 -70.14862000000001,-32.75249,0 -70.17111,-32.60778,0 -70.12946,-32.56528,0 -70.16251,-32.46305,0 -70.23889,-32.4175,0 -70.24432000000002,-32.30984,0 -70.31668999999999,-32.28333,0 -70.32529,-32.13751,0 -70.38001,-32.05167,0 -70.36389,-32.02916,0 -70.26251000000001,-32.04362,0 -70.23445,-31.9425,0 -70.29056,-31.88668,0 -70.41,-31.88084,0 -70.45889,-31.8325,0 -70.47667,-31.72639,0 -70.58805,-31.56167,0 -70.54224000000001,-31.37333,0 -70.5611,-31.31416,0 -70.52943999999999,-31.17444,0 -70.47139,-31.09805,0 -70.44556,-31.09306,0 -70.41335000000001,-31.15389,0 -70.32778999999999,-31.03972,0 -70.25502000000002,-31.03416,0 -70.32778999999999,-30.95834,0 -70.32668,-30.88805,0 -70.20695000000001,-30.505,0 -70.1339,-30.43973,0 -70.16334999999999,-30.36472,0 -70.02972,-30.39778,0 -69.94416,-30.37639,0 -69.89751,-30.3225,0 -69.87000000000001,-30.21084,0 -69.83168000000001,-30.19055,0 -69.85861,-30.10695000000001,0 -69.97083000000002,-30.08444,0 -69.91880000000001,-29.97406,0 -69.90555999999999,-29.79112,0 -69.91501,-29.71778,0 -69.96834,-29.66112,0 -69.96056,-29.55029,0 -70.03140000000001,-29.30639,0 -69.90807,-29.14139,0 -69.79389999999999,-29.09862,0 -69.79528999999999,-28.95112,0 -69.72307000000001,-28.80334,0 -69.74500999999999,-28.66055,0 -69.6664,-28.57279,0 -69.65537999999999,-28.40094,0 -69.53001999999999,-28.31223,0 -69.47612,-28.19139,0 -69.40640999999999,-28.20889,0 -69.30029999999999,-27.99944,0 -69.18584,-27.96584,0 -69.10806,-27.72194,0 -69.06556999999999,-27.69889,0 -69.08416000000001,-27.64583,0 -69.01251000000001,-27.53168000000001,0 -69.00696000000001,-27.45889,0 -68.90472,-27.36667,0 -68.86585,-27.28806,0 -68.87723,-27.23083,0 -68.81084000000001,-27.12056,0 -68.69667,-27.10750000000001,0 -68.58195000000002,-27.16973,0 -68.50306999999999,-27.07472,0 -68.31556999999999,-27.04194,0 -68.29584,-26.89168,0 -68.58362,-26.50528,0 -68.56362,-26.30056,0 -68.39776999999999,-26.15611000000001,0 -68.5975,-25.44333,0 -68.50223,-25.17723,0 -68.46502000000001,-25.14056,0 -68.42028999999999,-25.15279,0 -68.35197000000001,-25.11723,0 -68.42419,-25.03361,0 -68.455,-24.90500000000001,0 -68.54528999999999,-24.87361,0 -68.56916,-24.78612,0 -68.48779,-24.6025,0 -68.44363,-24.62639,0 -68.38918,-24.50166,0 -68.30779,-24.4925,0 -68.25223,-24.39639,0 -67.33584999999999,-24.02167,0 -67.15085000000001,-23.39194000000001,0 -67.00084,-23.00278,0 -67.18362000000001,-22.82166,0 -67.12306,-22.71805000000001,0 -67.01221,-22.64279,0 -67.02251,-22.5239,0 -66.96335000000001,-22.5225,0 -66.92639,-22.47805,0 -66.77473000000001,-22.42695000000001,0 -66.73669,-22.2275,0 -66.6889,-22.19611,0 -66.62806999999999,-22.21305,0 -66.29333,-22.0825,0 -66.22301,-21.78051,0 -66.07751,-21.83195,0 -66.0414,-21.91667,0 -65.92612,-21.93333,0 -65.74806,-22.11166,0 -65.57861,-22.08472,0 -64.98833999999999,-22.09083,0 -64.59473000000001,-22.21167,0 -64.53889,-22.27639,0 -64.56612,-22.36139,0 -64.4314,-22.54778,0 -64.45252000000001,-22.64834,0 -64.36,-22.74084,0 -64.32472,-22.87361,0 -64.25333999999999,-22.56778,0 -64.12667,-22.41028,0 -63.94111,-22.00083,0 -63.73306,-22.00278,0 -63.70057000000001,-22.03861,0 -63.68584000000001,-22.00306,0 -62.81195,-21.99695,0 -62.78946000000001,-22.12278,0 -62.64377,-22.2389,0 -62.62417,-22.30694,0 -62.46028,-22.37971,0 -62.39918,-22.45278,0 -62.29056,-22.48055,0 -62.24694,-22.52889,0 -62.25917000000001,-22.60445,0 -62.19,-22.63,0 -62.18861,-22.71029,0 -62.02944999999999,-22.89194,0 -61.98639,-23.01028000000001,0 -61.78167000000001,-23.1475,0 -61.73973000000001,-23.24362,0 -61.51722,-23.345,0 -61.49694,-23.41361,0 -61.29472,-23.48917,0 -61.11556000000001,-23.60362,0 -61.11639000000001,-23.66666,0 -61.02473,-23.78612,0 -60.85499999999999,-23.8725,0 -60.61389000000001,-23.89444,0 -60.57334000000001,-23.95111,0 -60.28639,-24.0375,0 -60.03806,-24.00972000000001,0 -59.47278000000001,-24.35306,0 -59.33889000000001,-24.48889,0 -59.06778,-24.60695000000001,0 -58.80334000000001,-24.78417,0 -58.45056,-24.85695000000001,0 -58.33833000000001,-24.99778,0 -58.22139,-24.93916,0 -57.98083000000001,-25.07805000000001,0 -57.87112000000001,-25.08778,0 -57.7561,-25.17694,0 -57.64029000000001,-25.37917,0 -57.55333000000001,-25.44834,0 -57.57750999999999,-25.57889000000001,0 -57.75167,-25.67056,0 -57.77167,-25.7075,0 -57.74196,-25.72806,0 -57.81098,-25.77314,0 -57.80361000000001,-25.83473,0 -57.87445,-25.87861,0 -57.84973,-25.91833,0 -57.90361,-25.95833,0 -57.85583000000001,-26.00195,0 -58.07805,-26.12472,0 -58.11000000000001,-26.19806000000001,0 -58.1525,-26.18861,0 -58.10389000000001,-26.23555,0 -58.17250000000001,-26.27305,0 -58.16251,-26.31973,0 -58.21139,-26.42640000000001,0 -58.18306000000001,-26.4614,0 -58.21917,-26.535,0 -58.16889000000001,-26.60279,0 -58.18167,-26.65611,0 -58.23973,-26.64973,0 -58.24639,-26.765,0 -58.28584,-26.77195,0 -58.28389,-26.81139,0 -58.34584,-26.81722,0 -58.32167,-26.88223,0 -58.47834,-26.93916000000001,0 -58.51028,-27.05861,0 -58.54639000000001,-27.04611,0 -58.56417,-27.1175,0 -58.65278,-27.15834,0 -58.65573,-27.19161,0 -58.59888999999999,-27.245,0 -58.60461000000001,-27.31692,0 -58.22,-27.26555,0 -57.79139,-27.29223,0 -57.6264,-27.36916,0 -57.12944000000001,-27.48973000000001,0 -57.07167000000001,-27.49195,0 -56.90862000000001,-27.41778,0 -56.73695,-27.50694,0 -56.67305,-27.46140000000001,0 -56.55,-27.4525,0 -56.37806,-27.58834,0 -56.27084,-27.46140000000001,0 -56.26805000000001,-27.3875,0 -56.13778,-27.30889,0 -55.89833000000001,-27.32918,0 -55.84251,-27.40778,0 -55.73612000000001,-27.43944,0 -55.67557,-27.36862,0 -55.59639000000001,-27.33806,0 -55.56751000000001,-27.24944,0 -55.60196,-27.16834,0 -55.55667,-27.16166,0 -55.53973,-27.105,0 -55.455,-27.09528,0 -55.41389,-26.98278000000001,0 -55.27111,-26.9375,0 -55.12889,-26.94917,0 -55.12889,-26.86805,0 -55.05112,-26.80028,0 -54.95722,-26.77834,0 -54.92389,-26.68056,0 -54.80612,-26.66418,0 -54.77862,-26.61083,0 -54.79362,-26.52305,0 -54.69278000000001,-26.42834,0 -54.6675,-26.23888,0 -54.63333999999999,-26.20028,0 -54.66166000000001,-26.15834,0 -54.64083,-26.07139,0 -54.665,-25.9825,0 -54.60139,-25.95278,0 -54.61723,-25.89556,0 -54.58584000000001,-25.81944,0 -54.64556000000001,-25.66250000000001,0 -54.58501,-25.64139000000001,0 -54.59892,-25.57323,0 -54.61696,-25.43806,0 -54.42305,-25.14306,0 -54.45639,-25.08723,0 -54.45250999999999,-25.01111,0 -54.33055,-24.67945,0 -54.33139000000001,-24.49278,0 -54.24889,-24.35362,0 -54.33778000000001,-24.14389,0 -54.2439,-24.05361,0 -54.08028000000001,-23.94806,0 -53.96889000000001,-23.44695000000002,0 -53.72139000000001,-23.30028,0 -53.57218000000002,-22.88526,0 -53.15685,-22.70582,0 -52.97528000000001,-22.48223,0 -52.49723,-22.21611,0 -52.36556,-22.10028000000001,0 -52.29028,-21.96084,0 -52.17445,-21.85778,0 -52.15028,-21.78334,0 -52.05334,-21.71889,0 -52.03723,-21.64639,0 -52.09195,-21.55584,0 -52.04973,-21.50278000000001,0 -51.9625,-21.49778,0 -51.87056000000001,-21.35029,0 -51.84973,-21.26973,0 -51.87111000000001,-21.14917,0 -51.79223,-21.09139,0 -51.63001,-20.88028,0 -51.58084000000001,-20.60028,0 -51.46612,-20.53917,0 -51.26055000000001,-20.31528,0 -51.04611,-20.25028,0 -51.00643,-20.07929,0 -50.98584000000001,-19.9075,0 -51.02361000000001,-19.7225,0 -50.98112,-19.57166,0 -50.9325,-19.55667,0 -50.96278000000001,-19.475,0 -50.92341,-19.45669,0 -51.11418000000001,-19.29083,0 -51.3064,-19.25889,0 -51.42306,-19.15806,0 -51.63223,-19.13334,0 -51.84166,-19.05361,0 -51.89694,-18.995,0 -52.06557,-18.94416,0 -52.18861,-18.83695,0 -52.34917,-18.81667,0 -52.47278,-18.70834,0 -52.63667,-18.72305,0 -52.89001,-18.67805,0 -52.8675,-18.57695,0 -52.75805,-18.4125,0 -52.895,-18.34694,0 -52.98834000000001,-18.38889,0 -53.02973,-18.37194,0 -53.05806,-18.28305,0 -53.05389000000001,-18.01667,0 -53.1139,-17.8889,0 -53.12612000000001,-17.67167,0 -53.22778000000001,-17.49805,0 -53.19084,-17.36723,0 -53.20166,-17.28473,0 -53.03973,-17.0525,0 -53.0275,-16.93778,0 -52.97334,-16.82111,0 -52.83222,-16.76417,0 -52.72084,-16.66471,0 -52.69139,-16.57639,0 -52.63779000000001,-16.53889,0 -52.57751,-16.34166,0 -52.43473,-16.27139,0 -52.44056000000001,-16.09694,0 -52.33055,-16.0425,0 -52.24306000000001,-15.88028,0 -52.03751,-15.87555,0 -51.96584,-15.80111,0 -51.90389,-15.8225,0 -51.87695,-15.80055,0 -51.77973000000001,-15.63084,0 -51.78861,-15.53417,0 -51.74973,-15.54084,0 -51.70361,-15.48194,0 -51.63667000000001,-15.17556,0 -51.41251000000001,-14.99723,0 -51.31833000000001,-14.9625,0 -51.29611,-15.01473,0 -51.25723,-15.02139,0 -51.16028,-14.975,0 -51.0975,-14.89111,0 -51.03833,-14.65973,0 -50.96778000000001,-14.53083,0 -50.99918000000001,-14.40555,0 -50.92694,-14.11972,0 -50.84555,-14.08639,0 -50.87056,-13.71861,0 -50.78973000000001,-13.66806,0 -50.75834,-13.53778,0 -50.59166,-13.29694,0 -50.56834,-13.22861,0 -50.59028000000001,-13.07723,0 -50.49806,-12.96056,0 -50.48167000000001,-12.8475,0 -50.4841,-12.84488,0 -50.59806,-12.81056,0 -50.62555,-12.65639,0 -50.67362000000001,-12.62805,0 -50.61361,-12.38416,0 -50.61972,-12.28444,0 -50.67334000000001,-12.20223,0 -50.68389,-12.04861,0 -50.64251,-11.88555,0 -50.67973000000001,-11.87,0 -50.71448,-11.74943,0 -50.64834,-11.60334,0 -50.73667,-11.52445,0 -50.74139,-11.46444,0 -50.65917000000001,-11.24305,0 -50.66473000000001,-11.1425,0 -50.60946,-11.06528,0 -50.63778,-10.9325,0 -50.61167,-10.88139,0 -50.62944,-10.82611,0 -50.5825,-10.73945,0 -50.60667000000001,-10.65584,0 -50.52278,-10.56334,0 -50.48278,-10.39361,0 -50.40862,-10.3075,0 -50.38167,-10.11029,0 -50.30944,-10.02889,0 -50.23251000000001,-9.844165,0 -51.1372,-9.797392,0 -51.07751,-9.31194,0 -51.12167,-9.258607,0 -51.1725,-8.998056,0 -51.33805,-8.772786,0 -51.44778000000001,-8.691948999999999,0 -51.52667000000001,-8.544447999999999,0 -51.51973,-8.418888000000001,0 -51.42722,-8.269164,0 -51.44501,-8.193051000000001,0 -51.40862000000001,-8.134731,0 -51.43333000000001,-8.088058,0 -51.41695,-8.028333999999999,0 -51.26918,-7.983613,0 -51.16889,-7.914447,0 -51.10196000000001,-7.803054,0 -51.23056,-7.623612,0 -51.18334,-7.543612,0 -51.21639,-7.419159,0 -51.20167000000001,-7.342497,0 -51.27251,-7.274448000000001,0 -51.38807,-7.269723000000002,0 -51.48695,-7.19416,0 -51.64500000000001,-7.158888000000001,0 -51.65556000000002,-7.06222,0 -51.74084,-6.956110000000001,0 -51.69805,-6.901659,0 -51.72723,-6.893613,0 -51.71278000000002,-6.860278,0 -51.78751,-6.690835,0 -51.9575,-6.613336,0 -52.01314,-6.657526,0 -52.08528,-6.548607000000001,0 -52.22473,-6.573888,0 -52.36139000000001,-6.381109,0 -52.43055,-6.338053000000001,0 -52.43056000000001,-6.210279,0 -52.53807,-6.036390000000001,0 -52.53889,-5.840838000000001,0 -52.645,-5.688891,0 -52.70612,-5.469165,0 -52.84084,-5.406949,0 -52.86778000000001,-5.365558,0 -52.86972,-5.210001,0 -52.92639,-5.008608,0 -52.83056,-4.882780000000001,0 -52.66223,-4.493052,0 -52.66278000000001,-4.433338,0 -52.73,-4.376107,0 -52.73806,-4.331107,0 -52.63945,-4.193614000000001,0 -52.60722000000001,-3.860839,0 -52.35639000000001,-3.665836,0 -52.23778,-3.510559,0 -52.15778,-3.34305,0 -52.15028,-3.235554,0 -52.04611000000001,-3.294441,0 -51.94445,-3.409444,0 -51.92667,-3.553605999999999,0 -51.83223000000001,-3.609163,0 -51.74917,-3.562498000000001,0 -51.66917,-3.471661,0 -51.74472000000001,-3.35611,0 -51.63556000000001,-3.291661,0 -51.61153,-3.147264,0 -51.82334,-3.100285,0 -51.94334000000001,-2.898334000000001,0 -52.04999999999999,-2.809999,0 -52.06667000000001,-2.714715,0 -52.03139,-2.59722,0 -52.12361000000001,-2.389717000000001,0 -52.20028,-2.407501,0 -52.15028,-2.358055,0 -52.25917,-2.161108,0 -52.26723,-2.061666,0 -52.36806000000001,-2.098612,0 -52.27139,-2.01916,0 -52.31806000000001,-1.935559,0 -52.26917,-1.813051,0 -52.34612,-1.674721,0 -52.31139000000001,-1.627498,0 -52.26806,-1.682218,0 -52.2275,-1.616392,0 -52.28528,-1.53361,0 -52.44972,-1.586944,0 -52.54084,-1.571949,0 -52.71278,-1.603333,0 -52.70722,-1.561105,0 -52.47639,-1.490553,0 -52.43805,-1.441108,0 -52.22139,-1.342504,0 -52.10778,-1.415835,0 -52.00557,-1.404163,0 -51.92334,-1.328608,0 -51.93501,-1.192501,0 -51.90139,-1.150552,0 -51.9775,-1.135279,0 -52.0475,-1.170838,0 -52.06945,-1.220284,0 -52.11389000000001,-1.155286,0 -52.27112000000001,-1.133893,0 -52.37028000000001,-1.061388,0 -52.38528000000002,-0.8791655,0 -52.51918000000001,-0.8797145,0 -52.50666,-0.7508345000000001,0 -52.5066,-0.7438775,0 -52.53807,-0.6247175,0 -52.60056,-0.6144485,0 -52.62723,-0.5727785,0 -52.63278,-0.3822215000000001,0 -52.81223000000001,-0.1780565,0 -52.87194,-0.2033375,0 -52.92334,-0.1863905,0 -52.97112,-0.01638954,0 -53.01583,0.03500046,0 -53.0061,0.1311115,0 -53.04139000000001,0.2474995,0 -53.12889,0.3866664,0 -53.11723000000001,0.7422205,0 -53.28250000000001,0.7902805000000003,0 -53.41861999999999,0.9422185000000001,0 -53.46723,1.142496,0 -53.40584000000001,1.187504,0 -53.4325,1.25666,0 -53.54889,1.243889,0 -53.55306,1.367783,0 -53.65639000000001,1.363058,0 -53.66417,1.429442,0 -53.69694000000001,1.410281,0 -53.73695,1.437786,0 -53.75307000000002,1.392497,0 -53.82167,1.419722,0 -53.82723,1.384163,0 -53.85778,1.383605,0 -53.98807000000001,1.520558,0 -54.08278000000001,1.505556,0 -54.10139,1.613051,0 -54.36111,1.763054,0 -54.735,1.768607,0 -54.76307,1.986947,0 -54.80084,2.017781,0 -54.75029,2.076659,0 -54.78945,2.163609,0 -54.71111,2.274723,0 -54.73722000000001,2.425833,0 -54.77539,2.456846,0 -54.86750000000001,2.440278,0 -54.97223,2.554721,0 -54.94834000000001,2.617496,0 -55.11195,2.527217,0 -55.13807000000001,2.573891000000001,0 -55.24139000000001,2.499164,0 -55.32249,2.516948,0 -55.38,2.428056,0 -55.58473,2.438334,0 -55.71028,2.399165,0 -55.96584,2.53277,0 -55.99195000000001,2.4075,0 -56.04528000000001,2.344445,0 -56.08917,2.355281,0 -56.13807,2.266947,0 -56.0425,2.232782,0 -56.03639,2.177505,0 -55.90139000000001,2.045285,0 -55.90417,1.89305,0 -55.94667,1.853333,0 -56.03723,1.836944,0 -56.47063,1.944503,0 -56.56279,2.023892,0 -56.69187,2.028734,0 -56.81057,2.193336,0 -56.8064,2.250836,0 -56.87833000000001,2.297781,0 -56.87112,2.348891,0 -56.92806,2.391948,0 -56.91778,2.428056,0 -57.09806,2.749166,0 -57.20139000000001,2.821391000000001,0 -57.21333,2.878892000000001,0 -57.17917,2.914443,0 -57.21111,2.928051,0 -57.24111000000001,3.138057,0 -57.28528,3.143888000000001,0 -57.30139,3.377501000000001,0 -57.35028,3.355001,0 -57.41057000000001,3.382496,0 -57.48083000000001,3.323888999999999,0 -57.50334,3.351393,0 -57.64223000000001,3.356387,0 -57.66693999999999,3.395555,0 -57.63721,3.455,0 -57.65445,3.518612,0 -57.73473,3.610277,0 -57.83583,3.664998000000001,0 -57.87668,3.80916,0 -58.04723,4.008338,0 -58.0714,4.159161,0 -57.9539,4.28777,0 -57.95889,4.403339,0 -57.83862,4.654718,0 -57.92333000000001,4.821948,0 -57.84112,4.927778,0 -57.77140000000001,4.922774,0 -57.68806000000001,5.010282,0 -57.42028,4.989168,0 -57.28889,5.016663,0 -57.32305,5.069717,0 -57.29695,5.160285000000001,0 -57.25471,5.175279,0 -57.22889,5.140835,0 -57.18862,5.16861,0 -57.23521000000001,5.259942,0 -57.26307,5.26778,0 -57.25639000000001,5.22278,0 -57.27916,5.223339,0 -57.28723000000002,5.310557,0 -57.33555,5.313338,0 -57.27223000000001,5.38028,0 -57.24850000000001,5.486112,0 -57.16833,5.537222,0 -57.13139,5.773337,0 -57.06833000000001,5.942223,0 -56.97724,6.000021,0 -55.15563000000001,6.048935,0 -54.47205,5.976981000000002,0 -52.91902,5.485283,0 -52.50826000000001,5.098526,0 -52.50826000000001,5.239709,0 -52.5083,10.2397,0 -52.50835,15.23971,0 -52.50838,19.83971,0 -52.50841,24.83971,0 -52.50846,29.83971,0 -52.50845000000001,29.94478,0 -52.50809000000001,34.94477,0 -52.50773000000001,39.94478,0 -52.50738,44.94477,0 -52.50703,49.94478,0 -52.50666,54.94477,0 -52.50631,59.94478000000001,0 -52.50595000000001,64.94479,0 -53.01731,65.35898,0 -53.71276,66.05441999999999,0 -54.00934,67.10271,0 -53.82526,67.68565,0 -55.02182000000001,69.63903000000001,0 -55.07296,70.48277,0 -55.18546,71.07594,0 -55.98318,71.67934000000001,0 -56.16726000000001,72.58955,0 -57.85474000000001,74.69123,0 -59.57289,75.70371,0 -62.34444,76.01053,0 -63.58193000000001,76.31222,0 -63.60658000000001,76.32865,0 -67.76724,79.10155,0 -67.31153999999999,79.16665000000002,0 -65.98242999999999,79.14412,0 -64.97996999999999,79.47077,0 -65.14892000000002,79.84247000000001,0 -65.29535,80.06775,0 -65.64452,80.00015999999999,0 -66.0838,80.00015999999999,0 -66.66951,80.05649,0 -67.10879,80.04520000000001,0 -67.52555,80.18038,0 -67.54808,80.29301,0 -67.49175,80.34933,0 -66.92856999999999,80.47324,0 -66.92856999999999,80.65346,0 -66.78216000000001,80.72104,0 -66.44423999999999,80.6084,0 -64.91238,80.92377000000001,0 -64.79975,81.00261999999999,0 -63.96624000000001,81.07021000000002,0 -63.81981,81.14906000000001,0 -62.97503,81.25042999999999,0 -62.23162000000001,81.21664,0 -61.55581000000002,81.11526000000001,0 -61.30801,81.16032,0 -61.35306000000001,81.34054,0 -61.31927,81.39686,0 -61.02642,81.47570000000002,0 -61.49949,81.73477000000001,0 -61.47697000000001,81.79107999999999,0 -60.51955,81.93752000000001,0 -59.49456,82.01636000000002,0 -58.87425,82.10625,0 -56.03332,82.31142000000001,0 -54.21828,82.37454,0 -53.42914,82.29564000000001,0 -52.95565,82.35877000000001,0 -52.52951,82.29564000000001,0 -52.52415,84.90001,0 -52.51387,89.90000000000001,0 -51.51426,89.90000000000001,0 -50.51467,89.90000000000001,0 -49.51508,89.90000000000001,0 -48.51547000000001,89.90000000000001,0 -47.51588000000001,89.90000000000001,0 -46.51628000000002,89.90000000000001,0 -45.51669,89.90000000000001,0 -44.51709,89.90000000000001,0 -43.51749,89.90000000000001,0 -42.5179,89.90000000000001,0 -41.51830000000001,89.90000000000001,0 -40.51871,89.90000000000001,0 -39.51911,89.90000000000001,0 -38.5195,89.90000000000001,0 -37.51992,89.90000000000001,0 -37.51992,84.90001,0 + + + + + +-19.77925,75.15038,0 -19.60578,75.14566000000001,0 -19.46688,75.2666,0 -19.43014,75.36224,0 -19.4368,75.46748000000001,0 -19.48732,75.56003,0 -19.57222,75.62255,0 -19.67559,75.64335,0 -19.77806,75.6185,0 -19.86044,75.55269,0 -19.90594,75.4571,0 -19.90611,75.27975000000001,0 -19.77925,75.15038,0 + + + +-22.03397,75.85133,0 -21.86051,75.84662,0 -21.72161,75.96755,0 -21.68487,76.06319000000001,0 -21.69154,76.16843000000002,0 -21.74206,76.26098,0 -21.82695,76.32351,0 -21.93032,76.3443,0 -22.03279,76.31946000000001,0 -22.11516,76.25364,0 -22.16067,76.15807000000001,0 -22.16084,75.98069,0 -22.03397,75.85133,0 + + + 1 + + + + + GMT -02:00 +
+ +]]> + #khStylem0200 + + + + + +-25.28129,67.4954,0 -25.28129,62.86423,0 -22.54213,62.86423,0 -22.5419,60.19076,0 -22.54149,55.19075000000002,0 -22.54108,50.19075,0 -22.54066,45.19075,0 -22.54025,40.19075,0 -26.74697,40.19075,0 -31.74697000000001,40.19075,0 -31.74697000000001,36.49937,0 -27.5395,36.49937,0 -22.5395,36.49937,0 -22.53887,33.39533,0 -22.53785,28.39532,0 -22.53685,23.39533000000001,0 -22.53583,18.39532,0 -27.51274,18.39532,0 -27.51274,13.4011,0 -22.53482,13.4011,0 -22.53417,10.20111,0 -22.53316,5.201108,0 -22.53215,0.2011045,0 -22.53113000000001,-4.798891,0 -22.53011,-9.798895,0 -22.52911,-14.79889,0 -22.52809,-19.79889,0 -22.52777,-21.39890000000001,0 -22.52676,-26.39889000000001,0 -22.52574,-31.3989,0 -22.52472,-36.39889,0 -22.52435,-38.2989,0 -22.52333,-43.29889000000001,0 -22.52232,-48.29890000000001,0 -22.5213,-53.2989,0 -22.52029,-58.2989,0 -22.51928,-63.2989,0 -22.51827,-68.2989,0 -22.51725,-73.2989,0 -22.51667,-76.19889000000001,0 -22.51565,-81.19889000000001,0 -22.51464,-86.19888,0 -22.51389,-89.90000000000001,0 -23.45178,-89.90000000000001,0 -24.38965,-89.90000000000001,0 -25.32752,-89.90000000000001,0 -26.2654,-89.90000000000001,0 -27.20327,-89.90000000000001,0 -28.14115,-89.90000000000001,0 -29.07903,-89.90000000000001,0 -30.0169,-89.90000000000001,0 -30.95478,-89.90000000000001,0 -31.89265,-89.90000000000001,0 -32.83052,-89.90000000000001,0 -33.76841,-89.90000000000001,0 -34.70629,-89.90000000000001,0 -35.64416,-89.90000000000001,0 -36.58204,-89.90000000000001,0 -37.51991,-89.90000000000001,0 -37.51989,-84.89999,0 -37.51988,-79.90000000000001,0 -37.51987,-74.90000000000001,0 -37.51987,-69.90000000000001,0 -37.51985000000001,-64.90000000000001,0 -37.51984,-59.90001,0 -37.51983,-54.93388,0 -42.51982,-54.93388,0 -45.01502000000001,-54.93388,0 -45.01502000000001,-52.08813,0 -40.01502,-52.08813,0 -37.51982,-52.08813,0 -37.5198,-47.08813000000001,0 -37.51979,-42.17389,0 -37.51979,-37.17389,0 -37.51978,-32.17389,0 -37.51977,-27.17389,0 -37.51975,-22.17389,0 -37.51974,-17.17389,0 -37.51972,-12.17389,0 -37.51972,-11.77389,0 -37.36223,-11.45472,0 -37.39806,-11.49972,0 -37.48791,-11.52023,0 -37.39305,-11.45,0 -37.46917,-11.36667,0 -37.41223,-11.40278,0 -37.39528,-11.33389,0 -37.33139,-11.28667,0 -37.34861,-11.25028,0 -37.31362,-11.26305,0 -37.34779,-11.18778,0 -37.30555,-11.245,0 -37.29862,-11.20195,0 -37.27584,-11.25973,0 -37.36362,-11.31556,0 -37.39834,-11.40223,0 -37.33000000000001,-11.42723,0 -37.26501,-11.28667,0 -37.15112,-11.19194,0 -37.16446,-11.11389,0 -37.22112,-11.10778,0 -37.20195,-11.0925,0 -37.26028,-11.07222,0 -37.27916,-11.02528,0 -37.20723,-11.03723,0 -37.15667,-11.10444,0 -37.05333,-10.94917,0 -37.04028000000001,-10.8375,0 -37.14168,-10.82528,0 -37.09417000000001,-10.80111,0 -37.15333,-10.74861,0 -37.07779,-10.73389,0 -37.06889000000001,-10.79445,0 -37.00862,-10.81056,0 -37.02166,-10.93584,0 -36.85861,-10.73916,0 -36.56751,-10.54445,0 -36.40483,-10.49879,0 -36.28445,-10.3525,0 -36.28139,-10.28695,0 -36.04444000000001,-10.07583,0 -35.79557,-9.728334,0 -35.86917,-9.764163999999999,0 -35.95196,-9.602784,0 -35.90528,-9.621667,0 -35.86,-9.739160999999999,0 -35.79222,-9.683056000000001,0 -35.79362,-9.589725,0 -35.73695,-9.651394000000002,0 -35.77306,-9.695277000000001,0 -35.69028,-9.668889999999999,0 -35.65751,-9.586387,0 -35.5825,-9.535833,0 -35.45667,-9.346393000000001,0 -35.32751,-9.228889000000001,0 -35.16612,-8.960283,0 -34.97001,-8.430552000000001,0 -34.99195,-8.448895,0 -34.98694,-8.418888000000001,0 -35.02194,-8.423056000000001,0 -34.93584,-8.350552,0 -34.94,-8.270550999999999,0 -34.88001,-8.113049999999999,0 -34.92668,-8.038333,0 -34.85612,-8.073612000000001,0 -34.81528,-7.935283000000001,0 -34.84472,-7.835554000000001,0 -34.89333,-7.804998000000001,0 -34.85834,-7.73028,0 -34.90696,-7.735834,0 -34.85167,-7.695559000000002,0 -34.87555,-7.622227000000001,0 -34.83084,-7.683337,0 -34.80083,-7.63111,0 -34.84056,-7.554448,0 -34.92334,-7.563889000000001,0 -34.8932,-7.543089,0 -34.81779,-7.546942,0 -34.8075,-7.515000000000001,0 -34.7925,-7.178607,0 -34.83084,-7.108605,0 -34.82556,-6.987502,0 -34.85695,-7.075837,0 -34.915,-7.127497,0 -34.85834,-6.919444,0 -34.91195,-6.879997000000001,0 -34.94334,-6.779997000000001,0 -34.98028,-6.40639,0 -35.01501,-6.374998000000001,0 -35.04139,-6.233887000000001,0 -35.08778,-6.199164,0 -35.13584,-6.228612,0 -35.15501,-6.208894,0 -35.11528,-6.165838,0 -35.09278,-6.178887000000001,0 -35.105,-5.981112000000001,0 -35.14557,-5.938893000000001,0 -35.26195,-5.484726,0 -35.4175,-5.214717000000001,0 -35.60445000000001,-5.110839,0 -35.93472,-5.052223,0 -36.12889,-5.097502,0 -36.28751,-5.091660000000001,0 -36.25472,-5.10166,0 -36.28028,-5.11111,0 -36.58167,-5.088051,0 -36.52583,-5.108608,0 -36.54417,-5.134447,0 -36.68722,-5.098339,0 -36.79723,-5.046391,0 -36.88278,-4.949163,0 -37.17445,-4.918609,0 -37.28973,-4.726108,0 -37.51991,-4.633912,0 -37.51991,0.3660925,0 -37.51991,5.366087,0 -37.51991,10.36609,0 -37.51991,15.36609,0 -37.51991,15.36843,0 -37.51991,20.36843,0 -37.51991,25.36843,0 -37.51991,29.96842,0 -37.51991,34.96843,0 -37.51991,39.96843,0 -37.51991,44.96843000000001,0 -37.51991,49.96843,0 -37.51991,54.96843,0 -37.51991,59.96843000000001,0 -37.51991,64.96842,0 -37.51991,65.16843,0 -35.45789,65.8785,0 -33.65758,66.67344,0 -31.90405,67.86584000000001,0 -29.7998,67.98274000000001,0 -27.43837,68.38021000000001,0 -25.89525,68.70753000000001,0 -23.90792,69.38557000000002,0 -22.51389,69.82120999999999,0 -22.51389,67.4954,0 -25.28129,67.4954,0 + + + 1 + + + + + +-22.55908,84.90009000000001,0 -22.56975,83.06453000000002,0 -23.25304,83.14206,0 -28.22116000000001,83.70583000000001,0 -29.51426,83.7223,0 -34.51386,83.78599,0 -37.51992,83.74590000000001,0 -37.51992,84.90001,0 -37.51992,89.90000000000001,0 -36.5206,89.90000000000001,0 -35.52126,89.90000000000001,0 -34.52194,89.90000000000001,0 -33.52261,89.90000000000001,0 -32.52328,89.90000000000001,0 -31.52396,89.90000000000001,0 -30.52463,89.90000000000001,0 -29.5253,89.90000000000001,0 -28.52597,89.90000000000001,0 -27.52664,89.90000000000001,0 -26.52732,89.90000000000001,0 -25.52799,89.90000000000001,0 -24.52866,89.90000000000001,0 -23.52934,89.90000000000001,0 -22.53001,89.90000000000001,0 -22.55908,84.90009000000001,0 + + + 1 + + + + + GMT -01:00 +
+ +]]> + #khStylem0100 + + + + + +-8.807823000000001,54.70094,0 -9.054081,54.29253,0 -9.834866999999999,54.36460000000001,0 -10.12917,54.26851,0 -10.25529,54.12435000000001,0 -10.29734,53.98021000000001,0 -10.32736,53.58982,0 -10.18322,53.39763,0 -9.8649,53.12735000000001,0 -9.498528000000002,52.94116,0 -9.68472,52.71294,0 -9.948978,52.56879000000001,0 -10.65169,52.04025,0 -10.42346,51.86608,0 -10.24928,51.55978,0 -9.828864000000001,51.43965,0 -9.50454,51.40962,0 -8.525547,51.58981000000001,0 -7.812513,51.89045000000001,0 -7.812513,46.89045,0 -7.812513,43.71458,0 -7.894449000000001,43.66638,0 -7.850556,43.71472,0 -7.856109000000001,43.765,0 -7.898058000000001,43.76416,0 -7.991946000000001,43.70555,0 -8.060841,43.70361,0 -8.049447000000001,43.63666,0 -8.089173000000001,43.66194,0 -8.253333,43.55806,0 -8.319447,43.56221,0 -8.295282,43.52639,0 -8.331660000000001,43.50889,0 -8.339724,43.45693,0 -8.166942000000001,43.50777,0 -8.194445999999999,43.46611,0 -8.317214999999999,43.44305,0 -8.13195,43.42334,0 -8.213058,43.4025,0 -8.215551,43.33055,0 -8.329725,43.40388,0 -8.360001000000001,43.34027,0 -8.38611,43.33944,0 -8.398611000000001,43.38582,0 -8.539443000000002,43.30972,0 -8.701389000000001,43.28722,0 -8.782785000000001,43.30306,0 -8.843994,43.36485,0 -8.848053,43.32222,0 -8.980281,43.28139,0 -8.91639,43.23222,0 -9.010557,43.23195,0 -9.056664,43.18332,0 -9.169731000000001,43.18583,0 -9.209448,43.15277,0 -9.203894999999999,43.12554,0 -9.164448,43.13777,0 -9.165555,43.10722,0 -9.218889000000001,43.10806,0 -9.25389,43.05029,0 -9.2925,43.04804000000001,0 -9.252504000000002,43.0061,0 -9.293336999999999,42.92249,0 -9.273339,42.88694,0 -9.226944,42.93805,0 -9.181107000000001,42.91555,0 -9.185003999999999,42.9525,0 -9.123606000000002,42.90555,0 -9.14139,42.85695,0 -9.101394000000001,42.82332,0 -9.140283,42.795,0 -9.086112,42.73528,0 -9.058887,42.78472,0 -8.960283,42.77333,0 -8.903610000000001,42.82833,0 -8.85834,42.82444,0 -9.020286000000001,42.70472,0 -9.086112,42.58138000000001,0 -9.027782999999999,42.57972,0 -9.041391000000001,42.52888,0 -8.967249000000001,42.46196,0 -8.898606000000001,42.10806,0 -8.882225999999999,41.89004,0 -10.07815,41.89004,0 -15.07814,41.89004,0 -16.53966,38.78279,0 -18.66778,34.25829,0 -20.79591,29.7338,0 -20.79591,25.84186,0 -19.57629,25.84186,0 -14.57629,25.84186,0 -14.82666,25.30916,0 -14.83473,24.91528,0 -14.90111,24.68805,0 -14.98694,24.63639,0 -15.03139,24.54167,0 -15.18028,24.48805000000001,0 -15.29639,24.3336,0 -15.61417,24.02778,0 -15.7625,23.95694,0 -15.91167,23.82195,0 -16.00167,23.64389,0 -15.94334,23.68222,0 -15.86972,23.82861000000001,0 -15.79028,23.85806,0 -15.78167,23.91,0 -15.76278,23.79138,0 -15.92583,23.57722,0 -16.13584,23.17917,0 -16.21612,23.08388,0 -16.15167,23.06888,0 -16.15416,23.01639,0 -16.18973,22.94221,0 -16.30361,22.87555,0 -16.35917,22.56806,0 -16.42889,22.51611000000001,0 -16.50028,22.32221,0 -16.62806,22.27361,0 -16.66889,22.29639,0 -16.71944,22.26082,0 -16.85334,22.07139,0 -16.95945,21.82222,0 -16.94416,21.73972,0 -17.10528,20.84806,0 -17.05233,20.76409,0 -16.53566,19.38283,0 -16.46306,19.2554,0 -16.35111,19.20556,0 -16.28139,19.12777000000001,0 -16.18806,18.93945,0 -16.13805,18.65389,0 -16.05778,18.43472,0 -16.02862,18.08056,0 -16.06945,17.58972,0 -16.17556,17.25416,0 -16.46583,16.61971,0 -16.47278,16.48222,0 -16.53723,16.30166,0 -16.52768,16.06025,0 -16.53723,15.77584,0 -16.87834,15.225,0 -17.16694,14.90305,0 -17.53723,14.75611,0 -17.45626,14.64857,0 -17.2475,14.67323,0 -16.82851,13.87214,0 -16.83957,12.41371,0 -16.36448,11.88337,0 -16.5081,11.28123,0 -16.17665,11.01605,0 -15.12702,10.87243,0 -13.84538,9.425052000000001,0 -13.34819,8.972054,0 -13.27084,8.088164000000001,0 -13.02778,7.524683000000001,0 -12.39801,7.325810000000001,0 -11.38153,6.684983,0 -9.348579000000001,5.116076,0 -8.442594,4.596795,0 -7.506171,4.24899,0 -7.506171,4.17239,0 -7.506171,-0.8276135000000001,0 -7.506171,-5.827609,0 -11.18769,-5.827609,0 -16.18769,-5.827609,0 -16.1435,-9.363187,0 -12.50618,-9.363187,0 -7.506171,-9.363187,0 -7.506612000000001,-10.65897,0 -7.508295000000001,-15.65897,0 -7.509978000000001,-20.65897,0 -7.51167,-25.65897,0 -7.513353,-30.65898,0 -7.515036,-35.65897,0 -9.640872,-35.65897,0 -14.64088,-35.65897,0 -14.64088,-36.71363,0 -14.64088,-41.71362,0 -12.51732,-41.71362,0 -7.517322,-41.71362,0 -7.518411000000001,-44.61363,0 -7.520301000000001,-49.61362,0 -7.522191000000001,-54.61362,0 -7.524081000000001,-59.61362,0 -7.525971,-64.61363,0 -7.527861000000001,-69.61362,0 -7.529751,-74.61362,0 -7.531632,-79.61362,0 -7.531740000000001,-79.90000000000001,0 -7.533630000000001,-84.89999,0 -7.53552,-89.90000000000001,0 -8.53407,-89.90000000000001,0 -9.532638,-89.90000000000001,0 -10.53119,-89.90000000000001,0 -11.52976,-89.90000000000001,0 -12.52831,-89.90000000000001,0 -13.52687,-89.90000000000001,0 -14.52542,-89.90000000000001,0 -15.52398,-89.90000000000001,0 -16.52254,-89.90000000000001,0 -17.5211,-89.90000000000001,0 -18.51966,-89.90000000000001,0 -19.51822,-89.90000000000001,0 -20.51678,-89.90000000000001,0 -21.51534,-89.90000000000001,0 -22.51389,-89.90000000000001,0 -22.51464,-86.19888,0 -22.51565,-81.19889000000001,0 -22.51667,-76.19889000000001,0 -22.51725,-73.2989,0 -22.51827,-68.2989,0 -22.51928,-63.2989,0 -22.52029,-58.2989,0 -22.5213,-53.2989,0 -22.52232,-48.29890000000001,0 -22.52333,-43.29889000000001,0 -22.52435,-38.2989,0 -22.52472,-36.39889,0 -22.52574,-31.3989,0 -22.52676,-26.39889000000001,0 -22.52777,-21.39890000000001,0 -22.52809,-19.79889,0 -22.52911,-14.79889,0 -22.53011,-9.798895,0 -22.53113000000001,-4.798891,0 -22.53215,0.2011045,0 -22.53316,5.201108,0 -22.53417,10.20111,0 -22.53482,13.4011,0 -27.51274,13.4011,0 -27.51274,18.39532,0 -22.53583,18.39532,0 -22.53685,23.39533000000001,0 -22.53785,28.39532,0 -22.53887,33.39533,0 -22.5395,36.49937,0 -27.5395,36.49937,0 -31.74697000000001,36.49937,0 -31.74697000000001,40.19075,0 -26.74697,40.19075,0 -22.54025,40.19075,0 -22.54066,45.19075,0 -22.54108,50.19075,0 -22.54149,55.19075000000002,0 -22.5419,60.19076,0 -22.54213,62.86423,0 -17.54214,62.85332,0 -12.54215,62.84239,0 -7.806969000000001,62.83205,0 -7.806969000000001,57.83205,0 -7.806969000000001,55.35279,0 -8.261279999999999,55.27752,0 -8.567595000000001,55.00724,0 -8.807823000000001,54.70094,0 + + + 1 + + + + + +-19.46688,75.2666,0 -19.60578,75.14566000000001,0 -19.77925,75.15038,0 -19.90611,75.27975000000001,0 -19.90594,75.4571,0 -19.86044,75.55269,0 -19.77806,75.6185,0 -19.67559,75.64335,0 -19.57222,75.62255,0 -19.48732,75.56003,0 -19.4368,75.46748000000001,0 -19.43014,75.36224,0 -19.46688,75.2666,0 + + + 1 + + + + + +-7.511742000000002,84.90001,0 -7.511742000000002,79.90000000000001,0 -7.511742000000002,74.89999,0 -7.511742000000002,69.90000000000001,0 -7.511742000000002,67.45737,0 -12.51173,67.47004,0 -17.51171,67.48272,0 -22.5117,67.49539,0 -22.51389,67.4954,0 -22.51389,69.82120999999999,0 -22.03747,69.97009,0 -21.35944,70.48445,0 -21.17239,70.78841,0 -21.78029,72.14449000000001,0 -21.42958000000001,72.84589,0 -20.28394,73.40702,0 -19.34872,74.17858,0 -18.13293,74.58775,0 -17.26786,74.98521,0 -17.24447,75.26577,0 -18.50702,75.85029,0 -18.06279,76.85564000000001,0 -17.52503,77.76749,0 -17.47827,79.26384,0 -17.31461,79.94186999999999,0 -15.51431,80.61991,0 -14.53233,80.80695,0 -12.03061,81.55513000000001,0 -12.03061,81.69541,0 -13.71401,81.90584,0 -16.16897,82.02274,0 -17.59517,81.92921,0 -18.10955,81.78892999999999,0 -19.25519,82.23316,0 -21.33607,82.72414000000001,0 -22.56975,83.06453000000002,0 -22.55908,84.90009000000001,0 -22.53001,89.90000000000001,0 -21.59137,89.90000000000001,0 -20.65272,89.90000000000001,0 -19.71409,89.90000000000001,0 -18.77545,89.90000000000001,0 -17.8368,89.90000000000001,0 -16.89817,89.90000000000001,0 -15.95952,89.90000000000001,0 -15.02087,89.90000000000001,0 -14.08224,89.90000000000001,0 -13.14359,89.90000000000001,0 -12.20495,89.90000000000001,0 -11.26631,89.90000000000001,0 -10.32766,89.90000000000001,0 -9.389025000000002,89.90000000000001,0 -8.450379,89.90000000000001,0 -7.511742000000002,89.90000000000001,0 -7.511742000000002,84.90001,0 + + + 1 + + + + + GMT +00:00 +
+ +]]> + #khStyle0000 + + + + + +-8.201223000000002,42.15273,0 -8.185554,42.06471,0 -8.121942000000001,42.07944,0 -8.079723,42.05416,0 -8.084997000000001,42.02027,0 -8.218610999999999,41.91361000000001,0 -8.140554,41.80917000000001,0 -8.014725,41.83388,0 -7.892217,41.92666,0 -7.880004,41.85277,0 -7.692498,41.905,0 -7.591662,41.87972,0 -7.607781,41.83111000000001,0 -7.493058,41.87306000000001,0 -7.420284,41.81332,0 -7.37028,41.85139,0 -7.200558,41.88361,0 -7.182783,41.97944,0 -7.133607,41.99499,0 -7.056108,41.95111,0 -6.982848,41.97386,0 -6.837498,41.94722,0 -6.788052000000001,41.99167,0 -6.716943,41.93666,0 -6.581664,41.96749,0 -6.544719,41.93722,0 -6.568335,41.88721,0 -6.508341,41.87389,0 -6.562503,41.74529,0 -6.551388,41.6911,0 -6.497496000000001,41.65749,0 -6.442218000000002,41.68582,0 -6.303609,41.66333,0 -6.187221,41.57972,0 -6.32916,41.41527,0 -6.318333000000001,41.38722,0 -6.388056,41.38167,0 -6.381945,41.355,0 -6.496947,41.26445,0 -6.64389,41.24471000000001,0 -6.764445,41.13083,0 -6.754446000000002,41.10249,0 -6.808338,41.04056000000001,0 -6.931665000000001,41.01806,0 -6.803892,40.87416000000001,0 -6.829164,40.75528,0 -6.797781,40.65777,0 -6.838893000000001,40.575,0 -6.790833,40.51805,0 -6.848334000000001,40.44333,0 -6.778611,40.36279,0 -6.873894,40.26332,0 -7.005834,40.23083,0 -7.027218,40.18777,0 -7.004718,40.12611,0 -6.934725000000001,40.1075,0 -6.863895,40.01555,0 -6.913611,39.86472,0 -6.98319,39.81694,0 -7.017219,39.675,0 -7.266942,39.67194,0 -7.337502,39.64388000000001,0 -7.515000000000001,39.66611,0 -7.532505000000001,39.66942000000001,0 -7.505838000000001,39.60583,0 -7.390836000000001,39.53277,0 -7.38,39.49611,0 -7.293609,39.46777,0 -7.322778,39.38833,0 -7.235037000000001,39.27697,0 -7.242786000000002,39.21305,0 -7.139997000000001,39.17334,0 -7.142499,39.11111,0 -7.004997,39.10722,0 -6.954795,39.02639,0 -7.050285000000001,38.91082,0 -7.041663,38.86861,0 -7.257231,38.72834,0 -7.248051,38.6236,0 -7.329717,38.44722,0 -7.143894,38.27027,0 -7.087779,38.17443,0 -6.947784,38.21833000000001,0 -6.939162,38.17805,0 -7.006662000000001,38.02805,0 -7.103889000000001,38.04694,0 -7.126947,38.00333,0 -7.254450000000001,37.98749000000001,0 -7.284996,37.86027,0 -7.422498000000001,37.75472000000001,0 -7.447779,37.65777,0 -7.524441000000002,37.55250000000001,0 -7.467498,37.49082,0 -7.431858,37.25319,0 -7.384167000000002,37.16972,0 -7.333605,37.21222000000001,0 -7.080282000000001,37.2175,0 -6.725835000000001,37.09194,0 -6.515838,36.97194,0 -6.364449000000001,36.79528,0 -6.347214000000002,36.89638,0 -6.246387,36.89581,0 -6.339717000000001,36.88944,0 -6.337224000000001,36.79610000000001,0 -6.443613,36.71889,0 -6.392502,36.62639,0 -6.230835,36.575,0 -6.240834,36.50111,0 -6.172785000000001,36.51221,0 -6.239718,36.46193,0 -6.291666000000001,36.5375,0 -6.318891000000001,36.53249,0 -6.037497,36.18027,0 -5.911389,36.17916,0 -5.797224,36.07388,0 -5.693895,36.06167,0 -5.611662,36.00027,0 -5.425281000000001,36.07083,0 -5.432778,36.17417,0 -5.350833,36.16,0 -5.34528,36.11278,0 -5.395554,35.91634,0 -5.345838,35.84166,0 -5.318892,35.695,0 -5.274999,35.68111,0 -5.253057,35.57695,0 -5.171391,35.5375,0 -5.063337,35.40972,0 -4.695840000000001,35.20888,0 -4.353894,35.14611,0 -3.925278,35.25999,0 -3.892779,35.21583,0 -3.813894,35.20027,0 -3.682503,35.28778,0 -3.577221,35.22667,0 -3.332502,35.19139,0 -3.06639,35.28944,0 -2.973888,35.44027,0 -2.946942,35.32917,0 -2.962782,35.27499,0 -2.914722,35.27361,0 -2.909448,35.17638,0 -2.841660000000001,35.12694,0 -2.747214,35.11555,0 -2.885553,35.24277,0 -2.754999,35.13499,0 -2.635002,35.09972,0 -2.516949,35.09832,0 -2.419164,35.15332,0 -2.209446,35.08582,0 -2.180286,35.01222,0 -2.065833,34.93695,0 -1.99305,34.92945,0 -1.961388,34.87029,0 -1.747215,34.74722,0 -1.857501,34.61028,0 -1.686708,34.48551,0 -1.79334,34.37833,0 -1.750554,34.34945,0 -1.653336,34.085,0 -1.710279,33.8825,0 -1.680552,33.76972,0 -1.730556,33.70499,0 -1.65222,33.66277,0 -1.606662,33.59527,0 -1.600551,33.50972,0 -1.666665,33.38333,0 -1.668051,33.26111,0 -1.480284,33.06305,0 -1.487214,32.97917000000001,0 -1.542501,32.93944,0 -1.382778,32.72445,0 -1.300284,32.70055,0 -1.010286,32.50832,0 -1.119996,32.41555,0 -1.196109,32.40472,0 -1.249722,32.32695,0 -1.25361,32.21472,0 -1.295838,32.16306,0 -1.200834,32.17027,0 -1.175553,32.12083,0 -1.213056,32.08971,0 -2.331108,32.15749,0 -2.853891,32.08834,0 -2.938059,32.02888000000001,0 -2.980557,31.84416,0 -3.386115,31.72611,0 -3.511665,31.67334,0 -3.714714,31.71639,0 -3.830832,31.6775,0 -3.84084,31.47583,0 -3.724722,31.39472,0 -3.803895,31.33916,0 -3.79611,31.22167,0 -3.826107,31.16389,0 -3.788892000000001,31.14861,0 -3.724164,31.18861,0 -3.602214,31.09556,0 -3.617784,30.97667,0 -3.718890000000001,30.93806,0 -4.016943,30.91111,0 -4.16916,30.76916,0 -4.396941,30.64833,0 -4.591944,30.62639,0 -4.920552,30.50805,0 -5.133609,30.19806000000001,0 -5.351949,29.99722,0 -5.560002,29.895,0 -5.89833,29.85667000000001,0 -6.002784000000001,29.82945,0 -6.145839000000001,29.8475,0 -6.217227000000001,29.79888,0 -6.474168000000001,29.83306,0 -6.508611,29.63888,0 -6.58584,29.56722,0 -7.123887,29.63695,0 -7.298334,29.53833,0 -7.433892,29.39722,0 -7.644726000000001,29.385,0 -7.995555,29.11639,0 -8.17695,29.04084,0 -8.495559,28.79056,0 -8.667225,28.70944,0 -8.666667,27.66667,0 -8.666793,27.29046,0 -6.662781,26.12916,0 -4.806108,25.00027,0 -2.448333,23.48722,0 -0.008055,21.83055,0 1.169667,21.10254,0 1.197144,21.00248,0 1.167498,20.74111,0 1.317222,20.73833,0 1.375002,20.6575,0 1.627497,20.57111,0 1.663056,20.53611,0 1.668051,20.40861,0 1.795833,20.30833,0 1.881108,20.30139,0 1.908891,20.23139000000001,0 1.983339,20.26027,0 2.097504,20.21889,0 2.213055,20.28139,0 2.344167,20.17777,0 2.411667,20.0575,0 2.587779,20.00166,0 2.967219,19.95,0 3.233052,19.82028,0 3.210003,19.56527,0 3.277215,19.38972,0 3.206664,19.32611,0 3.196107000000001,19.25861,0 3.114162,19.15639,0 3.331944,18.97639,0 4.245282,19.14666,0 4.2525,16.99445,0 4.21416,16.99361,0 4.198887,16.82083,0 4.200840000000001,16.39389,0 4.069719,16.29389,0 3.981942,16.07638,0 4.000833,15.98971,0 3.924440999999999,15.90416,0 3.885003,15.70917,0 3.823893,15.66527,0 3.726666,15.65277,0 3.539997,15.49722,0 3.523986,15.35816,0 3.032496,15.43306,0 3.020832,15.34195,0 2.628054,15.35055,0 1.312497,15.28666,0 0.974718,14.97861,0 0.694998,14.94221,0 0.512217,15.00083,0 0.3966660000000001,14.96056,0 0.229995,15.00251,0 0.235044,14.91506,0 0.193338,14.83583,0 0.241389,14.75221,0 0.166662,14.52306,0 0.18945,14.46472,0 0.321111,14.36278,0 0.410832,14.24584,0 0.352503,14.1214,0 0.424161,13.98361,0 0.4711050000000001,13.95555,0 0.465003,13.91361,0 0.616662,13.77805,0 0.602217,13.70389,0 0.7727850000000001,13.68832,0 0.77445,13.64416,0 0.902214,13.62278,0 0.9952830000000001,13.56806,0 1.031661,13.4625,0 1.244448,13.39305,0 1.285308,13.34995,0 1.204164,13.36805,0 1.182222,13.31277,0 0.991665,13.37167,0 0.9891630000000002,13.04722,0 1.117215,13.01111,0 1.578339,12.63,0 1.871667,12.60889,0 1.928052,12.70056,0 1.988892,12.73111,0 2.142504,12.69445,0 2.22084,12.59361,0 2.264166,12.4186,0 2.161665,12.41555,0 2.058336,12.35722,0 2.397924,11.89615,0 2.366946,11.79,0 2.308608,11.72555,0 2.310552,11.67055,0 2.193894,11.60361,0 2.014722,11.4225,0 1.868607,11.44584,0 1.609164,11.38834,0 1.56861,11.4525,0 1.439721,11.46834,0 1.328337,11.35139,0 1.351107,11.3025,0 1.303605,11.28945,0 1.274715,11.315,0 1.264716,11.24611,0 1.138059,11.26527,0 1.156392,11.16277,0 1.125279,11.17528,0 1.058058,11.13139,0 1.117782,11.0275,0 0.978894,11.08027,0 0.948609,11.02389,0 0.9677789999999999,10.99584,0 0.917973,10.9964,0 0.879444,10.79972,0 0.8021880000000001,10.71245,0 0.7766640000000001,10.37667,0 1.355004,9.995282,0 1.373895,9.646667000000003,0 1.337499,9.542501,0 1.364256,9.481346,0 1.38861,9.492217999999999,0 1.416663,9.321111,0 1.567215,9.17,0 1.617786,9.049715000000001,0 1.624716,8.548056000000003,0 1.660833,8.496943999999999,0 1.613052,8.374715999999999,0 1.634715,8.357768,0 1.655838,7.532495,0 1.6425,6.995555000000001,0 1.548531,6.995177,0 1.606113,6.895268,0 1.594719,6.80445,0 1.623051,6.757775,0 1.575279,6.679718,0 1.749168,6.456663000000001,0 1.799325,6.281054,0 1.652499,6.250283,0 1.635399,6.21872,0 1.868607,6.273612,0 2.719611,6.36551,0 3.370833000000001,6.385832000000001,0 3.795282,6.432786000000001,0 4.379445,6.368057,0 4.525839,6.305004000000001,0 4.713606,6.164721,0 5.000004,5.857496,0 5.194161,5.502222,0 5.345271,5.329998,0 5.383890000000001,5.111946,0 5.497497,4.805838,0 5.578056,4.718609,0 5.554719,4.71528,0 5.579442,4.659722,0 5.777784,4.454999,0 5.843340000000001,4.410557000000001,0 5.862780000000001,4.434722,0 5.862222000000001,4.388607,0 5.931108000000001,4.340556,0 6.111108,4.272498,0 6.410556,4.313339,0 6.431112,4.345002,0 6.460839000000001,4.322502,0 6.794163000000001,4.336668,0 6.962769000000001,4.389164,0 7.018200000000002,4.374809,0 7.195104000000001,4.365161,0 7.538670000000001,4.437656,0 7.538670000000001,-0.5623475,0 7.538670000000001,-0.6855035,0 2.656305,-0.6707075,0 2.656305,-3.94561,0 7.538670000000001,-3.94561,0 7.538670000000001,-8.945614000000001,0 7.538679000000002,-13.94561,0 7.538679000000002,-18.94561,0 7.538679000000002,-23.94561,0 7.538679000000002,-28.94561,0 7.538679000000002,-33.94561,0 7.538679000000002,-34.50439,0 7.538679000000002,-39.50439,0 7.538679000000002,-44.50439,0 7.538679000000002,-49.50439000000002,0 7.538679000000002,-53.7044,0 7.538679000000002,-58.70439,0 7.538679000000002,-63.70440000000001,0 7.538679000000002,-68.70439,0 7.538679000000002,-73.70439000000002,0 7.538679000000002,-78.70439,0 7.538679000000002,-83.70439,0 7.538679000000002,-88.70438,0 7.538679000000002,-89.90000000000001,0 6.59655,-89.90000000000001,0 5.654412,-89.90000000000001,0 4.712274,-89.90000000000001,0 3.770127,-89.90000000000001,0 2.827989,-89.90000000000001,0 1.885851,-89.90000000000001,0 0.943722,-89.90000000000001,0 0.001584,-89.90000000000001,0 -0.9405540000000001,-89.90000000000001,0 -1.882692,-89.90000000000001,0 -2.82483,-89.90000000000001,0 -3.766967999999999,-89.90000000000001,0 -4.709106,-89.90000000000001,0 -5.651244,-89.90000000000001,0 -6.593382,-89.90000000000001,0 -7.53552,-89.90000000000001,0 -7.533630000000001,-84.89999,0 -7.531740000000001,-79.90000000000001,0 -7.531632,-79.61362,0 -7.529751,-74.61362,0 -7.527861000000001,-69.61362,0 -7.525971,-64.61363,0 -7.524081000000001,-59.61362,0 -7.522191000000001,-54.61362,0 -7.520301000000001,-49.61362,0 -7.518411000000001,-44.61363,0 -7.517322,-41.71362,0 -12.51732,-41.71362,0 -14.64088,-41.71362,0 -14.64088,-36.71363,0 -14.64088,-35.65897,0 -9.640872,-35.65897,0 -7.515036,-35.65897,0 -7.513353,-30.65898,0 -7.51167,-25.65897,0 -7.509978000000001,-20.65897,0 -7.508295000000001,-15.65897,0 -7.506612000000001,-10.65897,0 -7.506171,-9.363187,0 -12.50618,-9.363187,0 -16.1435,-9.363187,0 -16.18769,-5.827609,0 -11.18769,-5.827609,0 -7.506171,-5.827609,0 -7.506171,-0.8276135000000001,0 -7.506171,4.17239,0 -7.506171,4.24899,0 -8.442594,4.596795,0 -9.348579000000001,5.116076,0 -11.38153,6.684983,0 -12.39801,7.325810000000001,0 -13.02778,7.524683000000001,0 -13.27084,8.088164000000001,0 -13.34819,8.972054,0 -13.84538,9.425052000000001,0 -15.12702,10.87243,0 -16.17665,11.01605,0 -16.5081,11.28123,0 -16.36448,11.88337,0 -16.83957,12.41371,0 -16.82851,13.87214,0 -17.2475,14.67323,0 -17.45626,14.64857,0 -17.53723,14.75611,0 -17.16694,14.90305,0 -16.87834,15.225,0 -16.53723,15.77584,0 -16.52768,16.06025,0 -16.53723,16.30166,0 -16.47278,16.48222,0 -16.46583,16.61971,0 -16.17556,17.25416,0 -16.06945,17.58972,0 -16.02862,18.08056,0 -16.05778,18.43472,0 -16.13805,18.65389,0 -16.18806,18.93945,0 -16.28139,19.12777000000001,0 -16.35111,19.20556,0 -16.46306,19.2554,0 -16.53566,19.38283,0 -17.05233,20.76409,0 -17.10528,20.84806,0 -16.94416,21.73972,0 -16.95945,21.82222,0 -16.85334,22.07139,0 -16.71944,22.26082,0 -16.66889,22.29639,0 -16.62806,22.27361,0 -16.50028,22.32221,0 -16.42889,22.51611000000001,0 -16.35917,22.56806,0 -16.30361,22.87555,0 -16.18973,22.94221,0 -16.15416,23.01639,0 -16.15167,23.06888,0 -16.21612,23.08388,0 -16.13584,23.17917,0 -15.92583,23.57722,0 -15.76278,23.79138,0 -15.78167,23.91,0 -15.79028,23.85806,0 -15.86972,23.82861000000001,0 -15.94334,23.68222,0 -16.00167,23.64389,0 -15.91167,23.82195,0 -15.7625,23.95694,0 -15.61417,24.02778,0 -15.29639,24.3336,0 -15.18028,24.48805000000001,0 -15.03139,24.54167,0 -14.98694,24.63639,0 -14.90111,24.68805,0 -14.83473,24.91528,0 -14.82666,25.30916,0 -14.57629,25.84186,0 -19.57629,25.84186,0 -20.79591,25.84186,0 -20.79591,29.7338,0 -18.66778,34.25829,0 -16.53966,38.78279,0 -15.07814,41.89004,0 -10.07815,41.89004,0 -8.882225999999999,41.89004,0 -8.865278999999999,41.87554,0 -8.745011999999999,41.95250000000001,0 -8.606942999999999,42.05916,0 -8.327232,42.08528,0 -8.201223000000002,42.15273,0 + + + 1 + + + + + +-21.72161,75.96755,0 -21.86051,75.84662,0 -22.03397,75.85133,0 -22.16084,75.98069,0 -22.16067,76.15807000000001,0 -22.11516,76.25364,0 -22.03279,76.31946000000001,0 -21.93032,76.3443,0 -21.82695,76.32351,0 -21.74206,76.26098,0 -21.69154,76.16843000000002,0 -21.68487,76.06319000000001,0 -21.72161,75.96755,0 + + + 1 + + + + + +7.516629,69.90000000000001,0 7.516629,64.90000000000001,0 7.516629,63.25726,0 5.039118,62.19351,0 4.799088000000001,61.86831,0 4.590036,61.01659999999999,0 4.651983,60.7456,0 4.930722,60.25007,0 5.108805,59.16606000000001,0 5.45724,58.68601000000001,0 5.681772000000001,58.48469,0 6.595425,58.0511,0 7.013538000000001,57.97367,0 7.499043000000001,57.95962999999999,0 7.499043000000001,53.79065000000001,0 6.866424,53.69189,0 6.262488000000001,53.52154,0 5.495949,53.46734,0 5.023638,53.33572000000001,0 4.698432000000001,53.07247,0 4.551318,52.49174,0 4.319037,52.18204,0 3.978351,51.97298,0 3.428613,51.53938,0 3.072447,51.32258000000001,0 2.437524,51.08255,0 1.77939,50.97416,0 1.547109,50.88124000000001,0 1.52001,50.25794,0 1.396116,50.10309,0 1.016721,49.94823000000001,0 0.575379,49.8708,0 0.149526,49.71595,0 0.017901,49.46043000000001,0 -0.013077,49.33654000000001,0 -0.1989,49.29783000000001,0 -0.44667,49.35977,0 -1.18224,49.43721,0 -1.251927,49.72369000000001,0 -1.975878,49.74305,0 -1.882962,49.44108,0 -1.720368,49.23201,0 -1.604223,48.66679000000001,0 -1.828764,48.71325,0 -2.308815,48.71325,0 -2.479167,48.67454000000002,0 -2.66499,48.58163,0 -2.804364,48.67454000000002,0 -2.966967,48.88359000000001,0 -3.137301,48.91456,0 -4.058703,48.77519,0 -5.173668000000001,48.4887,0 -5.142699,48.41902,0 -4.732326000000001,48.0164,0 -4.337442,47.77636,0 -3.865130999999999,47.76862,0 -3.493476,47.61377,0 -3.253446,47.27309,0 -2.529495,47.25373,0 -2.297205,46.97499,0 -2.428839,46.72721,0 -1.778436,46.44073,0 -1.522926,46.18522000000001,0 -1.267407,45.71291,0 -1.204236,45.52971,0 -1.234737,45.14534,0 -1.338453,44.26832,0 -1.480338,43.68816000000001,0 -1.530639,43.54382,0 -1.619874,43.43629,0 -1.780839,43.38888,0 -2.130552,43.28916,0 -2.19834,43.31305,0 -2.295558,43.2961,0 -2.638053,43.4125,0 -2.687778,43.38139,0 -2.752497,43.45499,0 -2.941389,43.43556,0 -3.034998,43.37472,0 -3.020832,43.32861,0 -3.325284,43.41833,0 -3.422502,43.40972,0 -3.450834,43.43527,0 -3.462498000000001,43.39389,0 -3.482784000000001,43.42999,0 -3.430557,43.46444,0 -3.585555,43.51027,0 -3.719718,43.47166,0 -3.813057,43.40361,0 -3.83166,43.43943,0 -3.766392000000001,43.46999,0 -3.810285,43.49249,0 -3.944718,43.46778,0 -3.989448,43.43027000000001,0 -4.016943,43.44777,0 -4.025286,43.40554,0 -4.051395,43.4425,0 -4.21695,43.39389,0 -4.351941,43.40388,0 -4.383891000000001,43.39083,0 -4.371111,43.37028,0 -4.410279,43.40193,0 -4.514553,43.39634,0 -5.121108,43.48916000000001,0 -5.207499,43.47778,0 -5.288607000000001,43.53388,0 -5.365278,43.53917,0 -5.372667,43.51369,0 -5.418612,43.49694,0 -5.381109,43.5261,0 -5.398056,43.5525,0 -5.677785,43.54388,0 -5.844717000000001,43.65527,0 -5.954715,43.58055,0 -6.094998000000001,43.56194000000001,0 -6.235839,43.59499,0 -6.476949,43.55111,0 -6.943338,43.57777,0 -7.019442,43.56417,0 -7.002225000000001,43.53027,0 -7.044822000000001,43.4904,0 -7.045281,43.55943,0 -7.231113000000001,43.57028,0 -7.264998,43.54222,0 -7.248888000000001,43.57916,0 -7.365834,43.67611,0 -7.473609000000001,43.70555,0 -7.46361,43.72639,0 -7.551945,43.72861000000001,0 -7.595838,43.66611000000001,0 -7.629714000000001,43.74778,0 -7.693767,43.73127,0 -7.658892,43.76972,0 -7.683606,43.79277,0 -7.812513,43.71458,0 -7.812513,46.89045,0 -7.812513,51.89045000000001,0 -8.525547,51.58981000000001,0 -9.50454,51.40962,0 -9.828864000000001,51.43965,0 -10.24928,51.55978,0 -10.42346,51.86608,0 -10.65169,52.04025,0 -9.948978,52.56879000000001,0 -9.68472,52.71294,0 -9.498528000000002,52.94116,0 -9.8649,53.12735000000001,0 -10.18322,53.39763,0 -10.32736,53.58982,0 -10.29734,53.98021000000001,0 -10.25529,54.12435000000001,0 -10.12917,54.26851,0 -9.834866999999999,54.36460000000001,0 -9.054081,54.29253,0 -8.807823000000001,54.70094,0 -8.567595000000001,55.00724,0 -8.261279999999999,55.27752,0 -7.806969000000001,55.35279,0 -7.806969000000001,57.83205,0 -7.806969000000001,62.83205,0 -12.54215,62.84239,0 -17.54214,62.85332,0 -22.54213,62.86423,0 -25.28129,62.86423,0 -25.28129,67.4954,0 -22.51389,67.4954,0 -22.5117,67.49539,0 -17.51171,67.48272,0 -12.51173,67.47004,0 -7.511742000000002,67.45737,0 -7.511742000000002,69.90000000000001,0 -7.511742000000002,74.89999,0 -7.511742000000002,79.90000000000001,0 -7.511742000000002,84.90001,0 -7.511742000000002,89.90000000000001,0 -6.572475,89.90000000000001,0 -5.633190000000001,89.90000000000001,0 -4.693914000000001,89.90000000000001,0 -3.754647,89.90000000000001,0 -2.815371,89.90000000000001,0 -1.876104,89.90000000000001,0 -0.936828,89.90000000000001,0 0.002448,89.90000000000001,0 0.9417150000000001,89.90000000000001,0 1.880991,89.90000000000001,0 2.820267,89.90000000000001,0 3.759534,89.90000000000001,0 4.69881,89.90000000000001,0 5.638086,89.90000000000001,0 6.577353,89.90000000000001,0 7.516629,89.90000000000001,0 7.516629,84.90001,0 7.516629,79.90000000000001,0 7.516629,74.89999,0 7.516629,69.90000000000001,0 + + + 1 + + + + + GMT +01:00 + + +]]> + #khStyle0100 + + + + +22.54661000000001,89.90000000000001,0 22.54661000000001,84.90001,0 22.54661000000001,81.51716999999999,0 27.54661,81.51716999999999,0 32.54661,81.51716999999999,0 33.89268,81.51716999999999,0 33.89268,76.51716999999999,0 33.89268,75.84414,0 28.89267,75.84414,0 23.89267,75.84414,0 22.54661000000001,75.84414,0 22.54661000000001,70.84514,0 23.95011,71.17124,0 24.72286,71.15327000000001,0 25.9988,71.18922000000001,0 28.20923,71.09936999999999,0 28.92806,70.93761000000001,0 30.18603,70.73994,0 31.17443,70.36256,0 30.85484,69.7923,0 30.89805,69.70555,0 30.95472,69.68138,0 30.94583,69.58222000000001,0 30.91,69.54886999999999,0 30.52916,69.5461,0 30.20361,69.66388000000001,0 30.10333,69.66306,0 30.07277,69.6311,0 30.14277,69.62833000000001,0 30.185,69.58275999999999,0 30.09777,69.50333000000001,0 29.945,69.43053999999999,0 29.31,69.31527,0 29.32167,69.24554000000001,0 29.23916,69.1075,0 29.06333,69.02916999999999,0 28.95734,69.05162,0 28.78694,69.11915999999999,0 28.81916,69.23193000000001,0 29.29972,69.48027,0 29.1275,69.68582000000001,0 28.37972,69.8275,0 28.32332,69.88749,0 28.09417,69.93859000000001,0 27.97916,70.00664999999999,0 27.94416,70.08027,0 27.87305,70.08804000000001,0 27.57333,70.06887999999999,0 27.53833,70.03525999999999,0 27.3,69.99055,0 27.29194,69.95,0 27.06889,69.90860000000001,0 26.80658,69.95206,0 26.47056,69.93527,0 26.37806000000001,69.85444,0 26.15583,69.74249,0 25.97834,69.70193,0 25.94194,69.66722,0 25.97416,69.63527000000001,0 25.9575,69.59027,0 25.85277,69.54666,0 25.87416,69.48636999999999,0 25.82666,69.43638,0 25.83361,69.38416000000001,0 25.755,69.34220999999999,0 25.71333,69.25526000000001,0 25.73222,69.10916,0 25.81277,69.0175,0 25.65277,68.90639,0 25.58555,68.87887000000001,0 25.40695,68.88638,0 25.21445,68.81749000000001,0 25.15472,68.76778,0 25.10334,68.63472,0 24.95523,68.60391,0 24.89566,68.5582,0 24.75445,68.66025999999999,0 24.35139,68.71053000000001,0 23.97639,68.83249000000001,0 23.83,68.82999,0 23.69277,68.71222,0 23.22500000000001,68.62971,0 23.06389,68.69555,0 22.80277,68.69138,0 22.55,68.73779,0 22.39833,68.71111000000001,0 22.34667,68.8447,0 21.68195,69.28471,0 21.32083,69.32611,0 21.055,69.22861,0 21.02806,69.20805,0 21.04222,69.16082,0 21.11305,69.10805000000002,0 21.05944,69.03444,0 20.73833,69.09636999999999,0 20.58093,69.0603,0 20.60417,69.05305,0 20.86666,69.00499000000001,0 20.93889,68.95834000000001,0 20.88888,68.92583000000002,0 20.89527,68.89361,0 21.08139,68.86665000000001,0 21.30195,68.75555,0 21.40666,68.74361,0 21.46556,68.67805,0 21.62306,68.64942000000001,0 21.7575,68.57693,0 21.89722,68.56999,0 22.05056,68.47915999999999,0 22.33471,68.47275999999999,0 22.8236,68.38805000000001,0 23.14222,68.23000999999999,0 23.15138,68.12277,0 23.30722,68.13916,0 23.39445,68.0425,0 23.65695,67.95081999999999,0 23.64472,67.91306,0 23.48333,67.86305,0 23.48083,67.72665000000001,0 23.55361,67.58749,0 23.47195,67.55638,0 23.42889,67.47584000000001,0 23.48695,67.43804,0 23.54917,67.45332999999999,0 23.76778,67.41611,0 23.74472,67.36834,0 23.77333,67.31444000000001,0 23.60555,67.25943,0 23.58445,67.22387000000001,0 23.61028,67.20166,0 23.57167,67.15666,0 24.00777,66.80055,0 23.89,66.74303999999999,0 23.87861,66.55722,0 23.72527,66.50082999999999,0 23.63917,66.43053999999999,0 23.72222,66.20027,0 23.9125,66.14833,0 23.9486,66.10138000000001,0 24.16601,65.8115,0 20.69736,63.31795000000001,0 19.33158,60.19100000000001,0 19.36751,59.65187,0 21.30838,59.61593000000001,0 20.94284,55.2872,0 20.98481,55.27655,0 21.26394,55.24899,0 21.38128,55.28709,0 21.50389,55.19332,0 21.64027,55.18472,0 21.86305,55.09194,0 22.00972,55.08778,0 22.06194,55.02749000000001,0 22.19722000000001,55.06166,0 22.5992,55.07113,0 22.64082000000001,54.96638,0 22.73222000000001,54.96249,0 22.77056,54.93888,0 22.75555,54.92055000000001,0 22.83499000000001,54.90166,0 22.86916,54.82333,0 22.84249,54.77749,0 22.74055,54.72777000000001,0 22.69832,54.58943000000001,0 22.69444,54.47332000000001,0 22.78588,54.36384,0 22.85611,54.4086,0 22.98749000000001,54.38917000000001,0 23.06166,54.35167,0 23.06611,54.30804,0 23.14249,54.31054,0 23.35028000000001,54.23888000000001,0 23.48444,54.13833000000001,0 23.51777,54.03028,0 23.47528000000001,53.99110000000001,0 23.50404,53.94704,0 23.67472,53.4911,0 23.81472,53.25444,0 23.91055,53.16721,0 23.87805000000001,53.07555,0 23.93305,53.01417,0 23.91527,52.91888,0 23.94083,52.73220000000001,0 23.75389,52.61583000000001,0 23.59722,52.59639,0 23.39722,52.51445,0 23.1654,52.28227,0 23.20638,52.22526,0 23.49304,52.17416000000001,0 23.51472,52.1236,0 23.63861,52.07944,0 23.67277,51.99138,0 23.61173,51.91397,0 23.59472,51.8336,0 23.62944,51.80471,0 23.55556,51.74943,0 23.53499,51.65359000000001,0 23.56138,51.5425,0 23.60463,51.52769,0 23.69306,51.40471,0 23.63611,51.30110000000001,0 23.86694,51.14861,0 23.86277,51.09833,0 23.96638,50.94887,0 24.14471,50.85804,0 24.11472,50.83138000000001,0 23.97277,50.82805000000001,0 23.9525,50.79472,0 24.07972,50.70499000000001,0 24.13277,50.54445000000001,0 24.02611,50.49388,0 23.99166,50.40721,0 23.70388,50.37833,0 23.67694,50.32444,0 23.14611,49.98305,0 22.68607,49.5771,0 22.65611,49.51972,0 22.69222,49.42333000000001,0 22.73833,49.39027,0 22.76027,49.29528,0 22.70028,49.16555,0 22.73472,49.17722000000001,0 22.87611,49.09,0 22.88607,49.00292,0 22.76916,49.05332,0 22.67417,49.04416000000001,0 22.59805,49.09109999999999,0 22.55805,49.07944,0 22.53721,48.99554,0 22.46749,48.97860000000001,0 22.37694,48.85194,0 22.38917,48.79722,0 22.34805,48.76417000000001,0 22.32888,48.68694000000001,0 22.15888,48.58027,0 22.15145,48.41192000000001,0 22.26889,48.40721,0 22.26028,48.36082,0 22.31944,48.36166,0 22.31888,48.31416000000001,0 22.37861,48.24554,0 22.50445,48.24749000000001,0 22.57528,48.19443,0 22.62116,48.10163,0 22.7975,48.11472,0 22.8825,48.04694,0 22.85056,47.98083,0 22.8948,47.95454,0 22.77084,47.87943,0 22.77444,47.8364,0 22.65361,47.77638000000001,0 22.45444,47.79639000000001,0 22.42139,47.74389,0 22.27694,47.72861000000001,0 22.18639,47.59861000000001,0 22.01527000000001,47.51445,0 22.00972,47.38083,0 21.9225,47.35443,0 21.79084,47.12028000000001,0 21.65111,47.02972000000001,0 21.69582,47.00082,0 21.67167,46.95138,0 21.59972000000001,46.91805000000001,0 21.60527,46.85722000000001,0 21.51972,46.81527,0 21.48806,46.75278000000001,0 21.52194,46.71277000000001,0 21.44194,46.68194,0 21.40500000000001,46.62111000000001,0 21.32666,46.61999,0 21.26056,46.49528000000001,0 21.29222,46.42027000000001,0 21.19721,46.39139,0 21.17667,46.29556,0 21.05944,46.23917,0 20.82028,46.27472,0 20.75332,46.23888000000001,0 20.76305,46.19917000000001,0 20.72056,46.19166,0 20.72056,46.16555,0 20.62472,46.13027000000002,0 20.48694,46.18110999999999,0 20.47805,46.14972,0 20.34027,46.15944,0 20.26102,46.11486,0 20.37805,45.97806,0 20.59167,45.89417000000001,0 20.71334,45.74389,0 20.80139,45.76416,0 20.79888,45.65667,0 20.76666,45.60999,0 20.82361,45.53249,0 20.78305,45.48472,0 21.04889,45.31639,0 21.16306,45.30972,0 21.2675,45.23278,0 21.41666,45.21472000000001,0 21.51361,45.15111000000001,0 21.51277,45.12333,0 21.46028,45.10277,0 21.44722000000001,45.035,0 21.36695,45.00832,0 21.54083,44.93861,0 21.55861,44.89611,0 21.36611,44.86444,0 21.40040000000001,44.78082,0 21.58834,44.76332000000001,0 21.64944,44.65778,0 21.99389,44.63556,0 22.08444,44.50306,0 22.14638,44.47916,0 22.17694,44.48194000000001,0 22.31361,44.66417,0 22.47916,44.71027,0 22.76489000000001,44.55901,0 22.69958,44.52252,0 22.59027,44.54916,0 22.54611,44.4875,0 22.45734,44.47435,0 22.54972,44.32306,0 22.6875,44.27777,0 22.68144,44.2247,0 22.61667,44.17278,0 22.6225,44.07083,0 22.41695,44.00695,0 22.35945,43.81694,0 22.4275,43.68861,0 22.49555000000001,43.64555,0 22.49555000000001,43.57028,0 22.54333000000001,43.4725,0 22.76666,43.38582,0 22.90444000000002,43.23082,0 23.00721,43.19611,0 22.96639,43.10167,0 22.79083,42.98527,0 22.74556000000001,42.89361,0 22.525,42.87861,0 22.44222,42.82167,0 22.50139,42.73916,0 22.46111,42.6925,0 22.43861,42.57471000000001,0 22.55805,42.47916,0 22.45639,42.34027,0 22.36527,42.32389,0 22.5211,42.14861,0 22.67528,42.0675,0 22.86444,42.02722,0 22.89584,41.88527,0 22.96193,41.77861,0 23.03277,41.72834000000001,0 22.9525,41.63444,0 22.96083,41.3586,0 22.77222,41.32444,0 22.72917,41.14471,0 22.6725,41.18777,0 22.58555,41.11944,0 22.33417,41.12722,0 22.25667,41.17139,0 22.13111,41.12500000000001,0 22.06667,41.15834,0 21.91611,41.09527,0 21.91195,41.04943,0 21.80416,40.97777,0 21.79222,40.93278,0 21.69445,40.93805,0 21.6,40.87277,0 21.41972,40.91917,0 21.34305,40.87193,0 20.98349,40.8559,0 20.96194,40.77166,0 21.05194,40.67666000000001,0 21.04138,40.56195,0 20.94556,40.46694,0 20.84889,40.47916,0 20.78889,40.42832,0 20.78972,40.36083,0 20.71306,40.27833,0 20.72111,40.22305,0 20.67861,40.18527,0 20.67195,40.09805,0 20.45,40.07249,0 20.39416,39.99917000000001,0 20.3161,39.99334,0 20.41445,39.82443,0 20.38138,39.78722,0 20.29138,39.80667,0 20.32083,39.7336,0 20.26444,39.66916000000001,0 20.19916,39.64472,0 20.01002,39.6912,0 19.98255,39.68724,0 19.95083,39.78693,0 19.57928,39.90293,0 19.37265,39.8712,0 19.36993,39.84311,0 19.80221,39.58348,0 19.87652,39.44391,0 20.07227,39.36417,0 20.13298,39.19515,0 20.2381,39.1222,0 20.49728,39.20377,0 20.73834,38.90834,0 20.72928,38.86393,0 20.63178,38.84898,0 20.54984,38.68631000000001,0 20.51631,38.3501,0 20.48369,38.32835,0 20.44472,38.36641,0 20.39216,38.36551000000001,0 20.31669,38.18789,0 20.37856,38.13986,0 20.45741,38.14892,0 20.51087,38.09272000000001,0 20.61781,37.81678,0 20.68738,37.72452,0 20.80903,37.64777,0 20.99752,37.69217,0 21.30836,37.62784,0 21.36454,37.6464,0 21.54217,37.54129,0 21.67267,37.33829,0 21.57297,37.21142,0 21.53381,37.02636,0 21.70063,36.72363,0 21.79948,36.68655,0 21.98484,36.77306,0 21.94816,36.8444,0 21.95903,36.9749,0 22.04059,37.01296,0 22.13302,37.00752,0 22.12033,36.90784,0 22.23996,36.84983,0 22.32878,36.7139,0 22.35234,36.64503,0 22.33602000000001,36.51816,0 22.3926,36.43942,0 22.50257,36.37666,0 22.50257,32.79314,0 23.12222,32.62666,0 23.09833,32.52166,0 23.14555,32.46694000000001,0 23.13333,32.39666,0 23.09306,32.42667,0 23.08139,32.33277,0 23.20889,32.27555,0 23.30916,32.15861,0 23.30778,32.21861,0 23.50166,32.17139,0 23.72639,32.17472,0 23.98639,32.09833,0 23.96778,32.0675,0 24.09472,32.00111,0 24.54305,31.98527,0 24.7275,32.02693,0 24.97389,31.97,0 25.03611,31.92445,0 25.02555,31.84139,0 25.15166,31.64694,0 25.06972,31.58167,0 25.04222,31.49972,0 24.86833,31.375,0 24.86945,31.15639,0 25.01916,30.7875,0 24.92611000000001,30.50611,0 24.78082,30.33388,0 24.70667,30.16861,0 24.83472,29.87666,0 24.8125,29.78445,0 24.88694,29.66389,0 24.8775,29.50638,0 24.99777,29.24888,0 24.9989,26.99969000000002,0 25.00142,21.99969,0 25.00083,19.99916,0 24.00275,19.49907,0 23.99981,18.7543,0 23.9996,15.69871,0 23.60889,15.75833,0 23.35694,15.68166,0 23.11816,15.71029,0 22.93722,15.56194,0 22.92305,15.48722,0 22.99834,15.35639,0 22.93583,15.11611,0 22.84916,15.07834,0 22.75332,14.97694,0 22.7389,14.90278,0 22.67056,14.85945,0 22.7025,14.69139,0 22.47,14.62945,0 22.38416,14.55416,0 22.38138,14.52306,0 22.44556,14.47972,0 22.46972,14.34472,0 22.43444,14.30972,0 22.44389,14.27222,0 22.55527,14.23194,0 22.555,14.12555,0 22.23833,13.96833,0 22.19833,13.9225,0 22.08444,13.77916,0 22.13861,13.72806,0 22.15361,13.63444,0 22.22472,13.57195,0 22.23056,13.47889,0 22.29416000000001,13.35861,0 22.15972,13.19027,0 22.02055,13.13779,0 21.94333,13.05361,0 21.82777,12.7975,0 21.95277,12.64389,0 22.14056,12.65527,0 22.22333,12.74722,0 22.46694,12.62166,0 22.38389,12.46527,0 22.43278,12.40333,0 22.50139,12.17695,0 22.47666,12.03416,0 22.56361,12.07471,0 22.64082000000001,12.07111,0 22.56167,11.62166,0 22.64195,11.51611,0 22.77555,11.46222,0 22.79111,11.40167,0 22.93084,11.41583,0 22.97083,11.28306,0 22.9425,11.0925,0 22.86651,10.92244,0 23.00945,10.69861,0 23.30389,10.45916,0 23.66916000000001,9.866942,0 23.69471,9.671659999999999,0 23.62333,9.535275,0 23.63138,9.449442,0 23.66445,9.440837999999999,0 23.65222,9.279999,0 23.55639,9.181664,0 23.49277,9.174168,0 23.44861,9.025002000000001,0 23.50361,8.959716000000002,0 23.56528000000001,9.005281999999999,0 23.58305,8.988605,0 23.58167,8.906112,0 23.49833,8.77833,0 23.51777,8.714159,0 23.63305,8.736947000000001,0 23.73916,8.705276,0 23.82389,8.727785000000001,0 24.25333,8.691110999999999,0 24.23027,8.624995999999999,0 24.26917,8.583055999999999,0 24.16584,8.477783000000001,0 24.14027,8.375832000000001,0 24.17721,8.316108,0 24.36111,8.247221,0 24.46,8.271386,0 24.54583,8.204715,0 24.66,8.218610999999999,0 24.86555,8.165285000000001,0 24.94277,8.083888999999999,0 24.97333,7.992774,0 25.08027,7.897500000000001,0 25.18611,7.901946,0 25.25833,7.840836,0 25.29611,7.65,0 25.18389000000001,7.583336000000002,0 25.20695,7.497503,0 25.33111,7.425279,0 25.36555,7.348338,0 25.465,7.280001000000001,0 25.53139,7.277786,0 25.59389,7.216388,0 25.81389,7.147214000000001,0 25.81971,7.108335000000001,0 26.04834,6.998336,0 26.10083,6.841106,0 26.40628,6.63525,0 26.28916,6.468894,0 26.31361,6.457769000000001,0 26.30778000000002,6.383051,0 26.39527,6.307785,0 26.45944,6.294446000000001,0 26.47611,6.224714,0 26.52361000000001,6.221106,0 26.52361000000001,6.173613,0 26.4375,6.077772,0 26.51416,6.109722,0 26.55445,6.033608,0 26.80861,5.980004,0 26.83945,5.898338,0 26.91027,5.899446000000001,0 26.94972,5.846949000000001,0 27.00111,5.862501,0 27.04917,5.789997,0 27.14278,5.771943,0 27.24084,5.647779000000001,0 27.23389,5.588334,0 27.28166,5.578613,0 27.23584,5.428610000000001,0 27.25472,5.331392,0 27.3,5.22611,0 27.45806,5.083613,0 27.45527,5.016392,0 27.39361,5.089167,0 27.08417,5.204159,0 26.93777,5.141106,0 26.86777,5.029163,0 26.73166,5.092784,0 26.48889,5.04639,0 26.38639,5.145552,0 26.29222,5.141394,0 26.13277,5.257215,0 26.05694,5.192504,0 25.97333,5.231663000000001,0 25.9,5.166945,0 25.87583,5.217497,0 25.82583,5.195556,0 25.79083,5.263893,0 25.74916,5.241941,0 25.54222,5.381387,0 25.53833,5.350554,0 25.36195,5.314715000000001,0 25.37555,5.294717,0 25.31056,5.19111,0 25.34945,5.144714,0 25.30832,5.032503,0 25.17583,4.995278,0 25.13361,5.017778000000001,0 25.07027,4.945832,0 24.95888,4.987215000000001,0 24.73445,4.910841,0 24.65056,4.92111,0 24.66111,4.964445,0 24.52556,5.077214000000001,0 24.44750000000001,5.105834,0 24.42555,5.065838,0 24.39417,5.115554,0 24.355,5.054715,0 24.40056,5.030001,0 24.28611,4.994999,0 24.25611,4.929443,0 24.2275,4.960278000000001,0 24.15194,4.900004,0 24.10555,4.920002,0 23.98195,4.855275,0 23.95417,4.873337,0 23.94222,4.809996,0 23.83027,4.82084,0 23.58445,4.734449,0 23.44166,4.653612,0 23.42639,4.591943,0 23.38556000000001,4.587777,0 23.26833,4.627214,0 23.1825,4.727222,0 23.10000000000001,4.70528,0 23.0225,4.743053,0 22.97500000000001,4.831388,0 22.89584,4.821110000000001,0 22.85582000000001,4.706945,0 22.77584,4.706666,0 22.69027000000001,4.483611,0 22.59445,4.470551,0 22.60972,4.358889,0 22.54111,4.28111,0 22.53861,4.218894,0 22.4536,4.144580000000001,0 22.45972,4.137497,0 22.56111,4.101389,0 22.68722,3.998050999999999,0 22.75861,3.991391000000001,0 22.76555,3.905,0 22.85806,3.858604999999999,0 22.99083,3.883337,0 23.03555,3.860559,0 23.14722,3.896108,0 23.35889,3.809448,0 23.39943,3.835278000000001,0 23.515,3.825836,0 23.48695,3.738338,0 23.36971,3.615839,0 23.17111,3.678056000000001,0 23.03750000000001,3.547503,0 22.92861,3.548051000000001,0 22.67834,3.453893,0 22.62361,3.388896,0 22.64333,3.325284,0 22.79639,3.259449,0 22.77972,3.063887,0 22.81472000000001,2.996109,0 22.86417000000001,3.011947999999999,0 23.00111,3.161664000000001,0 23.08195,3.147218,0 22.98472,2.857779,0 23.00389,2.757221,0 22.96,2.672216,0 23.03806,2.558051,0 23.12666,2.502503,0 23.35945,2.523887,0 23.4225,2.451941,0 23.6275,2.330837,0 23.65138,2.192498,0 23.34389,2.251395000000001,0 23.09027,2.093894,0 22.97583,2.184165,0 22.86084,2.045835,0 22.75722,2.010284,0 22.69972,2.034162,0 22.6475,2.109447,0 22.57222000000001,2.110283,0 22.58861,2.048606,0 22.51667,1.916387,0 22.47277,1.693889,0 22.31111,1.557503,0 22.28639,1.503332,0 22.4339,1.489715,0 22.62416,1.361663,0 22.81472000000001,0.9963894000000001,0 22.86139,0.6711115,0 22.93528,0.5708334000000001,0 22.9936,0.3750025000000001,0 23.41361,-0.2336045,0 23.29389,-0.3172145,0 23.13,-0.2808366,0 22.97027,-0.4063866,0 23.21778,-0.4249986,0 23.26917,-0.4952795999999999,0 23.46778000000001,-0.4386065,0 23.62945,-0.6358325,0 23.48555,-0.6988865,0 23.35611,-0.8072196,0 23.52667,-0.9758345000000001,0 23.72972,-1.08334,0 23.77278,-1.179163,0 23.94889,-1.306666,0 24.10583,-1.384723,0 24.30388,-1.393057,0 24.37583,-1.538893,0 24.4214,-1.786798,0 24.03527,-1.73278,0 23.98527,-1.769167,0 23.83777,-1.765,0 23.78306,-1.806661,0 23.77472,-1.917495,0 23.69805,-1.931392,0 23.69389,-2.018889,0 23.5,-2.009998,0 23.22111,-2.085552,0 23.10944,-1.945837,0 23.03277,-1.928053,0 22.93666,-1.962216,0 22.87028,-1.88416,0 22.67972,-1.806661,0 22.62556,-1.801108,0 22.50972000000001,-1.958887,0 22.185,-1.903339,0 22.16638,-1.942219,0 22.28722000000001,-2.445553,0 22.25139,-2.466946,0 22.19861,-2.447784,0 22.19055000000001,-2.313334,0 22.13972,-2.276389,0 22.0486,-2.370835,0 21.95194,-2.415555,0 21.89883,-2.490597,0 21.82688,-2.529217,0 21.46972,-2.335284,0 21.44083,-2.480554,0 21.24555,-2.512783000000001,0 21.00686,-2.48896,0 20.95916,-2.588608,0 20.95417,-2.692783,0 20.82945,-2.848887,0 20.65611000000001,-3.307221999999999,0 20.66917,-4.151665,0 20.50944,-4.254166000000001,0 20.37444,-4.295278,0 20.3375,-4.397779,0 20.26277,-4.395555,0 20.22445,-4.335003,0 20.17777,-4.33278,0 20.12861,-4.278889,0 20.03889,-4.278051,0 20.03333,-4.300551,0 20.11889,-4.500837,0 20.06222,-4.595832,0 20.05445,-4.769164,0 20.19166,-5.159161,0 20.19639,-5.273613,0 20.14305,-5.40361,0 20.18,-5.684445000000001,0 20.11222,-5.834448,0 20.05305,-5.865004,0 20.01974,-5.942214,0 19.84027,-6.031107000000001,0 19.68847,-6.187500000000002,0 19.73667,-6.575553000000002,0 19.9325,-6.842503,0 19.96277,-6.995556000000001,0 20.31138,-6.99472,0 20.3325,-6.914449,0 20.62975,-6.913881,0 20.54306,-7.124445,0 20.53861,-7.284483,0 21.78295,-7.280848,0 21.81555,-7.316110000000001,0 21.85388,-7.425559000000001,0 21.85111,-7.591662,0 21.77305,-7.776109,0 21.75416,-7.999444000000001,0 21.85861,-8.157781,0 21.87666,-8.279163000000001,0 21.91611,-8.308612,0 21.94,-8.496109000000001,0 21.84777,-8.949718000000001,0 21.85472,-9.229445999999999,0 21.79056,-9.405559,0 21.87472,-9.665001999999999,0 21.95639,-9.763335,0 21.985,-9.755838000000001,0 22.02138,-9.848053,0 22.1625,-9.930555,0 22.20722,-10.15416,0 22.31361,-10.37,0 22.26416,-10.50055,0 22.30334,-10.53779,0 22.30806,-10.61278,0 22.31944,-10.75973,0 22.16361,-10.86139,0 22.19361,-10.99417,0 22.24611,-11.07305,0 22.25111,-11.2525,0 22.48,-11.13333,0 22.52972,-11.03778,0 22.71667,-11.09334,0 22.86361,-11.04917,0 22.94277,-11.095,0 23.085,-11.09668,0 23.21861000000001,-11.07639,0 23.36806,-10.98278,0 23.47639,-10.95834,0 23.8639,-11.02722,0 23.98621,-10.87046,0 24.0225,-10.96889,0 24.02527,-11.28056,0 24.08445,-11.40278,0 24.03083,-11.45306,0 24.03028,-11.52639,0 23.96583,-11.655,0 24.01555,-11.81417,0 23.98416,-11.88222,0 23.975,-12.19917,0 24.035,-12.26417,0 24.05222,-12.38528,0 23.9475,-12.53723,0 23.88611,-12.77111,0 23.89389,-12.83223,0 23.99777,-12.93723,0 24.02055,-13.00639,0 21.99834,-13.00416,0 22.00015,-16.17166,0 22.12111,-16.34112,0 22.13888,-16.4925,0 22.48778,-16.77417,0 23.20167,-17.47973,0 23.47611,-17.62584,0 21.37936,-18.01489,0 21.24194,-17.93889,0 21.16389,-17.93139,0 20.95417,-17.9675,0 20.82,-18.03861,0 20.75195,-17.99611000000001,0 20.5475,-17.98168,0 20.33806,-17.85805,0 20.03583,-17.90028,0 19.92056,-17.85723,0 19.81194,-17.85833,0 19.76195,-17.8989,0 19.66166,-17.83778,0 19.55916,-17.8675,0 19.34333,-17.8475,0 19.24222,-17.80583,0 18.91584,-17.81555,0 18.75638,-17.74778,0 18.63722,-17.64473,0 18.45154,-17.38984,0 18.00055,-17.38617,0 14.20417,-17.3831,0 14.17694,-17.42028,0 13.98556,-17.42584,0 13.52471,-17.12695,0 13.52611,-17.07778,0 13.47445,-17.01194,0 13.37333,-16.96945,0 13.25166,-16.98528,0 13.16056,-16.95278,0 12.88666,-17.03361,0 12.81611,-17.10889,0 12.55722,-17.24333,0 12.45083,-17.25417,0 12.4214,-17.20361,0 12.24611,-17.22721,0 12.16778,-17.14389,0 12.13139,-17.16112,0 12.08471,-17.13528,0 11.92861,-17.18278,0 11.82584,-17.26639000000001,0 11.75278,-17.25484,0 11.7211,-17.655,0 11.80472,-18.08195,0 11.9489,-18.25639,0 12.02083,-18.47111,0 12.29611,-18.7061,0 12.46083,-18.92805,0 12.46416,-19.00418,0 12.54222,-19.06778,0 12.67,-19.295,0 12.70722,-19.41778,0 12.93167,-19.79583,0 13.05111,-20.06778,0 13.175,-20.18084,0 13.25083,-20.46584,0 13.35277,-20.64667,0 13.4,-20.85583,0 13.85361,-21.49139,0 13.87972,-21.59944,0 13.97028,-21.73167,0 13.94916,-21.78194,0 14.27777,-22.11028,0 14.39167,-22.29,0 14.51139,-22.55279,0 14.52485,-22.69206,0 14.52584,-22.91112,0 14.46278,-23.00055,0 14.43833,-22.87778,0 14.41056,-22.96723,0 14.45388,-23.1464,0 14.49833,-23.33056,0 14.49194,-23.37584,0 14.47,-23.34668,0 14.43444,-23.41778,0 14.49611,-23.58834,0 14.48445,-23.75639,0 14.51471,-23.83583,0 14.50945,-23.90473,0 14.45611,-23.9675,0 14.46333,-24.10917,0 14.61278,-24.45639,0 14.59916,-24.56555,0 14.77695,-24.79945,0 14.79277,-24.94361,0 14.83207,-24.99944,0 14.85778,-25.08723,0 14.80083,-25.285,0 14.88222,-25.5675,0 14.83777,-25.76194,0 14.91361,-25.84472,0 14.90333,-25.91055,0 14.98,-26.0575,0 14.97805,-26.12667,0 14.93861,-26.13945,0 14.96833,-26.33972,0 15.08792,-26.40098,0 15.17111,-26.5964,0 15.14194,-26.67778,0 15.13472,-26.62889,0 15.07972,-26.65,0 15.08389,-26.69861,0 15.15777,-26.90278,0 15.23471,-26.96667,0 15.29417,-27.32250000000001,0 15.46666,-27.54445000000001,0 15.53333,-27.66139,0 15.52861,-27.7275,0 15.67,-27.87139000000001,0 15.67639,-27.9339,0 15.75277,-28.03055,0 16.02778,-28.24473,0 16.35445,-28.56278,0 16.44195,-28.61834,0 16.48959,-28.57819,0 16.46972,-28.63028,0 16.56833,-28.72389,0 16.60611,-28.87195,0 16.67083,-28.90584,0 16.73277,-29.01889,0 16.81528,-29.085,0 16.84444,-29.22139,0 17.00332,-29.52445,0 17.08445,-29.83584000000002,0 17.27889,-30.34667,0 17.53944,-30.7575,0 17.61195,-30.92972,0 17.90944,-31.35973,0 18.18139,-31.67473,0 18.2786,-31.89278,0 18.35027,-32.28807,0 18.31611,-32.33501,0 18.335,-32.47834,0 18.29222,-32.62445,0 18.13175,-32.77878000000001,0 18.05361,-32.77612,0 17.96694,-32.69862,0 17.9025,-32.73333,0 17.87666,-32.80612,0 17.8675,-32.81196000000001,0 17.84527,-32.82584,0 17.87694,-32.86084,0 17.85714,-32.91527000000001,0 17.89305,-33.03111,0 17.91389,-33.04805,0 17.98333,-33.00028,0 18.03444,-33.0325,0 18.03721,-33.10196,0 18.12306,-33.20001,0 18.00167,-33.09333,0 17.95556,-33.10305,0 17.96722,-33.13472,0 18.09,-33.22501,0 18.14805,-33.35612,0 18.29471,-33.46611,0 18.31527,-33.56834,0 18.44111,-33.70667,0 18.4825,-33.89473,0 18.38,-33.91195,0 18.31027,-34.0325,0 18.35555,-34.05834,0 18.30972,-34.14918,0 18.36305,-34.18723,0 18.42027,-34.32306,0 18.4901,-34.34823,0 18.46666,-34.3289,0 18.47888,-34.23445000000001,0 18.43583,-34.16889,0 18.48805,-34.09778,0 18.60195,-34.07362,0 18.79332,-34.08667,0 18.85527,-34.15611,0 18.81417,-34.19028,0 18.84527,-34.245,0 18.80833,-34.29723,0 18.81778,-34.37778000000001,0 19.08334,-34.34639,0 19.13722,-34.29834,0 19.08334,-34.36084000000001,0 19.11222,-34.40334,0 19.21082,-34.42861,0 19.28194,-34.40973,0 19.3575,-34.50029,0 19.36333,-34.53778,0 19.29611,-34.61972,0 19.38945,-34.60196,0 19.51416,-34.67084,0 19.51639,-34.67556,0 19.65166,-34.77584,0 19.85777,-34.7525,0 19.99861,-34.82195,0 20.05722,-34.805,0 20.055,-34.7525,0 20.08972,-34.72639,0 20.21972,-34.67973,0 20.46029,-34.48223,0 20.53444,-34.45583,0 20.85222,-34.46305,0 20.85666000000001,-34.42083,0 20.80861000000001,-34.39723,0 20.9425,-34.36028,0 21.06277,-34.36389,0 21.29472000000001,-34.43389,0 21.52832,-34.3525,0 21.65556,-34.39056,0 21.8025,-34.38305,0 21.90166,-34.33611,0 21.94972,-34.22501,0 22.13416,-34.19112,0 22.11167,-34.14861000000001,0 22.15389,-34.09251,0 22.50382,-34.04004,0 22.50382,-35.54002000000001,0 22.50382,-40.54002,0 22.50382,-45.54003,0 22.50382,-50.54002,0 22.50382,-55.54003,0 22.50382,-60.54002000000001,0 22.50382,-65.54002,0 22.50382,-70.54002,0 22.50382,-73.84003,0 22.50382,-78.84003,0 22.50382,-83.84003000000001,0 22.50382,-84.89999,0 22.50382,-89.90000000000001,0 21.50615,-89.90000000000001,0 20.50847,-89.90000000000001,0 19.51079,-89.90000000000001,0 18.51312,-89.90000000000001,0 17.51545,-89.90000000000001,0 16.51776,-89.90000000000001,0 15.52009,-89.90000000000001,0 14.52242,-89.90000000000001,0 13.52473,-89.90000000000001,0 12.52706,-89.90000000000001,0 11.52938,-89.90000000000001,0 10.53171,-89.90000000000001,0 9.534033000000001,-89.90000000000001,0 8.536356,-89.90000000000001,0 7.538679000000002,-89.90000000000001,0 7.538679000000002,-88.70438,0 7.538679000000002,-83.70439,0 7.538679000000002,-78.70439,0 7.538679000000002,-73.70439000000002,0 7.538679000000002,-68.70439,0 7.538679000000002,-63.70440000000001,0 7.538679000000002,-58.70439,0 7.538679000000002,-53.7044,0 7.538679000000002,-49.50439000000002,0 7.538679000000002,-44.50439,0 7.538679000000002,-39.50439,0 7.538679000000002,-34.50439,0 7.538679000000002,-33.94561,0 7.538679000000002,-28.94561,0 7.538679000000002,-23.94561,0 7.538679000000002,-18.94561,0 7.538679000000002,-13.94561,0 7.538670000000001,-8.945614000000001,0 7.538670000000001,-3.94561,0 2.656305,-3.94561,0 2.656305,-0.6707075,0 7.538670000000001,-0.6855035,0 7.538670000000001,-0.5623475,0 7.538670000000001,4.437656,0 7.195104000000001,4.365161,0 7.018200000000002,4.374809,0 6.962769000000001,4.389164,0 6.794163000000001,4.336668,0 6.460839000000001,4.322502,0 6.431112,4.345002,0 6.410556,4.313339,0 6.111108,4.272498,0 5.931108000000001,4.340556,0 5.862222000000001,4.388607,0 5.862780000000001,4.434722,0 5.843340000000001,4.410557000000001,0 5.777784,4.454999,0 5.579442,4.659722,0 5.554719,4.71528,0 5.578056,4.718609,0 5.497497,4.805838,0 5.383890000000001,5.111946,0 5.345271,5.329998,0 5.194161,5.502222,0 5.000004,5.857496,0 4.713606,6.164721,0 4.525839,6.305004000000001,0 4.379445,6.368057,0 3.795282,6.432786000000001,0 3.370833000000001,6.385832000000001,0 2.719611,6.36551,0 1.868607,6.273612,0 1.635399,6.21872,0 1.652499,6.250283,0 1.799325,6.281054,0 1.749168,6.456663000000001,0 1.575279,6.679718,0 1.623051,6.757775,0 1.594719,6.80445,0 1.606113,6.895268,0 1.548531,6.995177,0 1.6425,6.995555000000001,0 1.655838,7.532495,0 1.634715,8.357768,0 1.613052,8.374715999999999,0 1.660833,8.496943999999999,0 1.624716,8.548056000000003,0 1.617786,9.049715000000001,0 1.567215,9.17,0 1.416663,9.321111,0 1.38861,9.492217999999999,0 1.364256,9.481346,0 1.337499,9.542501,0 1.373895,9.646667000000003,0 1.355004,9.995282,0 0.7766640000000001,10.37667,0 0.8021880000000001,10.71245,0 0.879444,10.79972,0 0.917973,10.9964,0 0.9677789999999999,10.99584,0 0.948609,11.02389,0 0.978894,11.08027,0 1.117782,11.0275,0 1.058058,11.13139,0 1.125279,11.17528,0 1.156392,11.16277,0 1.13805,11.26527,0 1.264716,11.24611,0 1.274715,11.315,0 1.303605,11.28945,0 1.351107,11.3025,0 1.328337,11.35139,0 1.439721,11.46834,0 1.56861,11.4525,0 1.609164,11.38834,0 1.868607,11.44584,0 2.014722,11.4225,0 2.193894,11.60361,0 2.310552,11.67055,0 2.308608,11.72555,0 2.366946,11.79,0 2.397924,11.89615,0 2.058336,12.35722,0 2.161665,12.41555,0 2.264166,12.4186,0 2.22084,12.59361,0 2.142504,12.69445,0 1.988892,12.73111,0 1.928052,12.70056,0 1.871667,12.60889,0 1.578339,12.63,0 1.117215,13.01111,0 0.9891630000000002,13.04722,0 0.991665,13.37167,0 1.182222,13.31277,0 1.204164,13.36805,0 1.285308,13.34995,0 1.244448,13.39305,0 1.031661,13.4625,0 0.9952830000000001,13.56806,0 0.902214,13.62278,0 0.7744410000000001,13.64416,0 0.7727850000000001,13.68832,0 0.602217,13.70389,0 0.616662,13.77805,0 0.465003,13.91361,0 0.4711050000000001,13.95555,0 0.424161,13.98361,0 0.352503,14.1214,0 0.410832,14.24584,0 0.321111,14.36278,0 0.189441,14.46472,0 0.166662,14.52306,0 0.241389,14.75221,0 0.193338,14.83583,0 0.235044,14.91506,0 0.229995,15.00251,0 0.3966660000000001,14.96056,0 0.512217,15.00083,0 0.694998,14.94221,0 0.974718,14.97861,0 1.312497,15.28666,0 2.628054,15.35055,0 3.020832,15.34195,0 3.032496,15.43306,0 3.523986,15.35816,0 3.539997,15.49722,0 3.726666,15.65277,0 3.823893,15.66527,0 3.885003,15.70917,0 3.924440999999999,15.90416,0 4.000833,15.98971,0 3.981942,16.07638,0 4.069719,16.29389,0 4.200840000000001,16.39389,0 4.198887,16.82083,0 4.21416,16.99361,0 4.2525,16.99445,0 4.245282,19.14666,0 3.331944,18.97639,0 3.114162,19.15639,0 3.196107000000001,19.25861,0 3.206664,19.32611,0 3.277215,19.38972,0 3.210003,19.56527,0 3.233052,19.82028,0 2.967219,19.95,0 2.587779,20.00166,0 2.411667,20.0575,0 2.344167,20.17777,0 2.213055,20.28139,0 2.097504,20.21889,0 1.983339,20.26028,0 1.908891,20.23139000000001,0 1.881108,20.30139,0 1.795833,20.30833,0 1.668051,20.40861,0 1.663056,20.53611,0 1.627497,20.57111,0 1.375002,20.6575,0 1.317222,20.73833,0 1.167498,20.74111,0 1.197144,21.00248,0 1.169667,21.10254,0 -0.008055,21.83055,0 -2.448333,23.48722,0 -4.806108,25.00027,0 -6.662781,26.12916,0 -8.666793,27.29046,0 -8.666667,27.66667,0 -8.667225,28.70944,0 -8.495559,28.79056,0 -8.17695,29.04084,0 -7.995555,29.11639,0 -7.644726000000001,29.385,0 -7.433892,29.39722,0 -7.298334,29.53833,0 -7.123887,29.63695,0 -6.58584,29.56722,0 -6.508611,29.63888,0 -6.474168000000001,29.83306,0 -6.217227000000001,29.79888,0 -6.145839000000001,29.8475,0 -6.002784000000001,29.82945,0 -5.89833,29.85667000000001,0 -5.560002,29.895,0 -5.351949,29.99722,0 -5.133609,30.19806000000001,0 -4.920552,30.50805,0 -4.591944,30.62639,0 -4.396941,30.64833,0 -4.16916,30.76916,0 -4.016943,30.91111,0 -3.718890000000001,30.93806,0 -3.617784,30.97667,0 -3.602214,31.09556,0 -3.724164,31.18861,0 -3.788892000000001,31.14861,0 -3.826107,31.16389,0 -3.79611,31.22167,0 -3.803895,31.33916,0 -3.724722,31.39472,0 -3.84084,31.47583,0 -3.830832,31.6775,0 -3.714714,31.71639,0 -3.511665,31.67334,0 -3.386115,31.72611,0 -2.980557,31.84416,0 -2.938059,32.02888000000001,0 -2.853891,32.08834,0 -2.331108,32.15749,0 -1.213056,32.08971,0 -1.175553,32.12083,0 -1.200834,32.17027,0 -1.295838,32.16306,0 -1.25361,32.21472,0 -1.249722,32.32695,0 -1.196109,32.40472,0 -1.119996,32.41555,0 -1.010286,32.50832,0 -1.300284,32.70055,0 -1.382778,32.72445,0 -1.542501,32.93944,0 -1.487214,32.97917000000001,0 -1.480284,33.06305,0 -1.668051,33.26111,0 -1.666665,33.38333,0 -1.600551,33.50972,0 -1.606662,33.59527,0 -1.65222,33.66277,0 -1.730556,33.70499,0 -1.680552,33.76972,0 -1.710279,33.8825,0 -1.653336,34.085,0 -1.750554,34.34945,0 -1.79334,34.37833,0 -1.686708,34.48551,0 -1.857501,34.61028,0 -1.747215,34.74722,0 -1.961388,34.87029,0 -1.993059,34.92945,0 -2.065833,34.93695,0 -2.180286,35.01222,0 -2.209446,35.08582,0 -2.419164,35.15332,0 -2.516949,35.09832,0 -2.635002,35.09972,0 -2.754999,35.13499,0 -2.885553,35.24277,0 -2.747214,35.11555,0 -2.841660000000001,35.12694,0 -2.909448,35.17638,0 -2.914722,35.27361,0 -2.962782,35.27499,0 -2.946942,35.32917,0 -2.973888,35.44027,0 -3.06639,35.28944,0 -3.332502,35.19139,0 -3.577221,35.22667,0 -3.682503,35.28778,0 -3.813894,35.20027,0 -3.892779,35.21583,0 -3.925278,35.25999,0 -4.353894,35.14611,0 -4.695840000000001,35.20888,0 -5.063337,35.40972,0 -5.171391,35.5375,0 -5.253057,35.57695,0 -5.274999,35.68111,0 -5.318892,35.695,0 -5.345838,35.84166,0 -5.395554,35.91634,0 -5.34528,36.11278,0 -5.350833,36.16,0 -5.432778,36.17417,0 -5.425281000000001,36.07083,0 -5.611662,36.00027,0 -5.693895,36.06167,0 -5.797224,36.07388,0 -5.911389,36.17916,0 -6.037497,36.18027,0 -6.318891000000001,36.53249,0 -6.291666000000001,36.5375,0 -6.239718,36.46193,0 -6.172785000000001,36.51221,0 -6.240834,36.50111,0 -6.230835,36.575,0 -6.392502,36.62639,0 -6.443613,36.71889,0 -6.337224000000001,36.79610000000001,0 -6.339717000000001,36.88944,0 -6.246387,36.89581,0 -6.347214000000002,36.89638,0 -6.364449000000001,36.79528,0 -6.515838,36.97194,0 -6.725835000000001,37.09194,0 -7.080282000000001,37.2175,0 -7.333605,37.21222000000001,0 -7.384167000000002,37.16972,0 -7.431858,37.25319,0 -7.467498,37.49082,0 -7.52445,37.55250000000001,0 -7.447779,37.65777,0 -7.422498000000001,37.75472000000001,0 -7.284996,37.86027,0 -7.254450000000001,37.98749000000001,0 -7.126947,38.00333,0 -7.103889000000001,38.04694,0 -7.006662000000001,38.02805,0 -6.939162,38.17805,0 -6.947784,38.21833000000001,0 -7.087779,38.17443,0 -7.143894,38.27027,0 -7.329717,38.44722,0 -7.248051,38.6236,0 -7.257231,38.72834,0 -7.041663,38.86861,0 -7.050285000000001,38.91082,0 -6.954795,39.02639,0 -7.004997,39.10722,0 -7.142499,39.11111,0 -7.139997000000001,39.17334,0 -7.242786000000002,39.21305,0 -7.235037000000001,39.27697,0 -7.322778,39.38833,0 -7.293609,39.46777,0 -7.38,39.49611,0 -7.390836000000001,39.53277,0 -7.505838000000001,39.60583,0 -7.532505000000001,39.66942000000001,0 -7.515000000000001,39.66611,0 -7.337502,39.64388000000001,0 -7.266942,39.67194,0 -7.017219,39.675,0 -6.98319,39.81694,0 -6.913611,39.86472,0 -6.863895,40.01555,0 -6.934725000000001,40.1075,0 -7.004718,40.12611,0 -7.027218,40.18777,0 -7.005834,40.23083,0 -6.873894,40.26332,0 -6.778611,40.36279,0 -6.848334000000001,40.44333,0 -6.790833,40.51805,0 -6.838893000000001,40.575,0 -6.797781,40.65777,0 -6.829164,40.75528,0 -6.803892,40.87416000000001,0 -6.931665000000001,41.01806,0 -6.808338,41.04056000000001,0 -6.754446000000002,41.10249,0 -6.764445,41.13083,0 -6.64389,41.24471000000001,0 -6.496947,41.26445,0 -6.381945,41.355,0 -6.388056,41.38167,0 -6.318333000000001,41.38722,0 -6.32916,41.41527,0 -6.187221,41.57972,0 -6.303609,41.66333,0 -6.442218000000002,41.68582,0 -6.497496000000001,41.65749,0 -6.551388,41.6911,0 -6.562503,41.74529,0 -6.508341,41.87389,0 -6.568335,41.88721,0 -6.544719,41.93722,0 -6.581664,41.96749,0 -6.716943,41.93666,0 -6.788052000000001,41.99167,0 -6.837498,41.94722,0 -6.982848,41.97386,0 -7.056108,41.95111,0 -7.133607,41.99499,0 -7.182783,41.97944,0 -7.200558,41.88361,0 -7.37028,41.85139,0 -7.420284,41.81332,0 -7.493058,41.87306000000001,0 -7.607781,41.83111000000001,0 -7.591662,41.87972,0 -7.692498,41.905,0 -7.880004,41.85277,0 -7.892217,41.92666,0 -8.014725,41.83388,0 -8.140554,41.80917000000001,0 -8.218610999999999,41.91361000000001,0 -8.084997000000001,42.02027,0 -8.079723,42.05416,0 -8.121942000000001,42.07944,0 -8.185554,42.06471,0 -8.201223000000002,42.15273,0 -8.327232,42.08528,0 -8.606942999999999,42.05916,0 -8.745011999999999,41.95250000000001,0 -8.865278999999999,41.87554,0 -8.882225999999999,41.89004,0 -8.898606000000001,42.10806,0 -8.967249000000001,42.46196,0 -9.041391000000001,42.52888,0 -9.027782999999999,42.57972,0 -9.086112,42.58138000000001,0 -9.020286000000001,42.70472,0 -8.85834,42.82444,0 -8.903610000000001,42.82833,0 -8.960283,42.77333,0 -9.058887,42.78472,0 -9.086112,42.73528,0 -9.140283,42.795,0 -9.101394000000001,42.82332,0 -9.14139,42.85695,0 -9.123606000000002,42.90555,0 -9.185003999999999,42.9525,0 -9.181107000000001,42.91555,0 -9.226944,42.93805,0 -9.273339,42.88694,0 -9.293336999999999,42.92249,0 -9.252504000000002,43.0061,0 -9.2925,43.04804000000001,0 -9.25389,43.05029,0 -9.218889000000001,43.10806,0 -9.165555,43.10722,0 -9.164448,43.13777,0 -9.203894999999999,43.12554,0 -9.209448,43.15277,0 -9.169731000000001,43.18583,0 -9.056664,43.18332,0 -9.010557,43.23195,0 -8.91639,43.23222,0 -8.980281,43.28139,0 -8.848053,43.32222,0 -8.843994,43.36485,0 -8.782785000000001,43.30306,0 -8.701389000000001,43.28722,0 -8.539443000000002,43.30972,0 -8.398611000000001,43.38582,0 -8.38611,43.33944,0 -8.360001000000001,43.34027,0 -8.329725,43.40388,0 -8.215551,43.33055,0 -8.213058,43.4025,0 -8.13195,43.42334,0 -8.317214999999999,43.44305,0 -8.194445999999999,43.46611,0 -8.166942000000001,43.50777,0 -8.339724,43.45693,0 -8.331660000000001,43.50889,0 -8.295282,43.52639,0 -8.319447,43.56221,0 -8.253333,43.55806,0 -8.089173000000001,43.66194,0 -8.049447000000001,43.63666,0 -8.060841,43.70361,0 -7.991946000000001,43.70555,0 -7.898058000000001,43.76416,0 -7.856109000000001,43.765,0 -7.850556,43.71472,0 -7.894449000000001,43.66638,0 -7.812513,43.71458,0 -7.683606,43.79277,0 -7.658892,43.76972,0 -7.693767,43.73127,0 -7.629714000000001,43.74778,0 -7.595838,43.66611000000001,0 -7.551945,43.72861000000001,0 -7.46361,43.72639,0 -7.473609000000001,43.70555,0 -7.365834,43.67611,0 -7.248888000000001,43.57916,0 -7.264998,43.54222,0 -7.231113000000001,43.57028,0 -7.045281,43.55943,0 -7.044822000000001,43.4904,0 -7.002225000000001,43.53027,0 -7.019442,43.56417,0 -6.943338,43.57777,0 -6.476949,43.55111,0 -6.235839,43.59499,0 -6.094998000000001,43.56194000000001,0 -5.954715,43.58055,0 -5.844717000000001,43.65527,0 -5.677785,43.54388,0 -5.398056,43.5525,0 -5.381109,43.5261,0 -5.418612,43.49694,0 -5.372667,43.51369,0 -5.365278,43.53917,0 -5.288607000000001,43.53388,0 -5.207499,43.47778,0 -5.121108,43.48916000000001,0 -4.514553,43.39634,0 -4.410279,43.40193,0 -4.371111,43.37028,0 -4.383891000000001,43.39083,0 -4.351941,43.40388,0 -4.21695,43.39389,0 -4.051395,43.4425,0 -4.025286,43.40554,0 -4.016943,43.44777,0 -3.989448,43.43027000000001,0 -3.944718,43.46778,0 -3.810285,43.49249,0 -3.766392000000001,43.46999,0 -3.83166,43.43943,0 -3.813057,43.40361,0 -3.719718,43.47166,0 -3.585555,43.51027,0 -3.430557,43.46444,0 -3.482784000000001,43.42999,0 -3.462498000000001,43.39389,0 -3.450834,43.43527,0 -3.422502,43.40972,0 -3.325284,43.41833,0 -3.020832,43.32861,0 -3.034998,43.37472,0 -2.941389,43.43556,0 -2.752497,43.45499,0 -2.687778,43.38139,0 -2.638053,43.4125,0 -2.295558,43.2961,0 -2.19834,43.31305,0 -2.130552,43.28916,0 -1.780839,43.38888,0 -1.619874,43.43629,0 -1.530639,43.54382,0 -1.480338,43.68816000000001,0 -1.338453,44.26832,0 -1.234737,45.14534,0 -1.204236,45.52971,0 -1.267407,45.71291,0 -1.522926,46.18522000000001,0 -1.778436,46.44073,0 -2.428839,46.72721,0 -2.297205,46.97499,0 -2.529495,47.25373,0 -3.253446,47.27309,0 -3.493476,47.61377,0 -3.865130999999999,47.76862,0 -4.337442,47.77636,0 -4.732326000000001,48.0164,0 -5.142699,48.41902,0 -5.173668000000001,48.4887,0 -4.058703,48.77519,0 -3.137301,48.91456,0 -2.966967,48.88359000000001,0 -2.804364,48.67454000000002,0 -2.66499,48.58163,0 -2.479167,48.67454000000002,0 -2.308815,48.71325,0 -1.828764,48.71325,0 -1.604223,48.66679000000001,0 -1.720368,49.23201,0 -1.882962,49.44108,0 -1.975878,49.74305,0 -1.251927,49.72369000000001,0 -1.18224,49.43721,0 -0.44667,49.35977,0 -0.1989,49.29783000000001,0 -0.013077,49.33654000000001,0 0.017901,49.46043000000001,0 0.149526,49.71595,0 0.575379,49.8708,0 1.016721,49.94823000000001,0 1.396116,50.10309,0 1.52001,50.25794,0 1.547109,50.88124000000001,0 1.77939,50.97416,0 2.437524,51.08255,0 3.072447,51.32258000000001,0 3.428613,51.53938,0 3.978351,51.97298,0 4.319037,52.18204,0 4.551318,52.49174,0 4.698432000000001,53.07247,0 5.023638,53.33572000000001,0 5.495949,53.46734,0 6.262488000000001,53.52154,0 6.866424,53.69189,0 7.499043000000001,53.79065000000001,0 7.499043000000001,57.95962999999999,0 7.013538000000001,57.97367,0 6.595425,58.0511,0 5.681772000000001,58.48469,0 5.45724,58.68601000000001,0 5.108805,59.16606000000001,0 4.930722,60.25007,0 4.651983,60.7456,0 4.590036,61.01659999999999,0 4.799088000000001,61.86831,0 5.039118,62.19351,0 7.516629,63.25726,0 7.516629,64.90000000000001,0 7.516629,69.90000000000001,0 7.516629,74.89999,0 7.516629,79.90000000000001,0 7.516629,84.90001,0 7.516629,89.90000000000001,0 8.456004,89.90000000000001,0 9.395379,89.90000000000001,0 10.33475,89.90000000000001,0 11.27413,89.90000000000001,0 12.2135,89.90000000000001,0 13.15287,89.90000000000001,0 14.09225,89.90000000000001,0 15.03162,89.90000000000001,0 15.97099,89.90000000000001,0 16.91036,89.90000000000001,0 17.84974,89.90000000000001,0 18.78911,89.90000000000001,0 19.72849,89.90000000000001,0 20.66786,89.90000000000001,0 21.60724,89.90000000000001,0 22.54661000000001,89.90000000000001,0 + + + 1 + + + + GMT +02:00 + + +]]> + #khStyle0200 + + + + + +28.09417,69.93859000000001,0 28.32332,69.88749,0 28.37972,69.8275,0 29.1275,69.68582000000001,0 29.29972,69.48027,0 28.81916,69.23193000000001,0 28.78694,69.11915999999999,0 28.95734,69.05162,0 28.43195,68.89694,0 28.47917,68.8736,0 28.73778,68.87582,0 28.82056,68.84444000000001,0 28.73861,68.73416,0 28.4575,68.53194000000001,0 28.69334,68.19749,0 29.35695,68.08249000000001,0 29.69167,67.81527,0 30.02861,67.69472,0 29.98972,67.67194000000001,0 29.97778,67.57249,0 29.93279,67.51389,0 29.54611,67.31055000000001,0 29.08305,66.9586,0 29.09333,66.85138000000001,0 29.35027,66.68249,0 29.42056,66.58498,0 29.54833,66.49554000000001,0 29.56792,66.42856999999999,0 29.63861,66.32249,0 29.91028,66.12694000000001,0 29.97695,65.9811,0 30.09667,65.83333,0 30.13528000000001,65.70359999999999,0 30.12388,65.66499,0 30.02444,65.69110000000001,0 29.72194,65.63805000000001,0 29.85971,65.56610000000001,0 29.74611,65.51443,0 29.7475,65.34193000000001,0 29.59638,65.24887,0 29.85361,65.21612,0 29.87028,65.18747999999999,0 29.82333,65.14888999999999,0 29.87388,65.12082,0 29.62889,65.06305,0 29.60666,65.00166,0 29.63667,64.92805,0 29.80471,64.79389000000001,0 30.14083,64.77415000000001,0 30.12055000000001,64.73054999999999,0 30.19713000000001,64.68622000000001,0 30.19917,64.65028,0 29.97500000000001,64.58110000000001,0 30.00967,64.51286,0 30.08722,64.48305000000001,0 30.05222,64.40470999999999,0 30.15611000000001,64.35415999999999,0 30.38972,64.30943000000001,0 30.45416000000001,64.25694,0 30.56084,64.24442999999999,0 30.57722,64.21581999999999,0 30.54805,64.17471000000001,0 30.61444,64.08665000000001,0 30.59528,64.04694000000001,0 30.345,63.90972000000001,0 30.25584,63.81778,0 29.99671,63.74802,0 30.48166000000001,63.47861,0 30.79639,63.40194,0 30.9625,63.30972000000001,0 31.21972,63.22306,0 31.28222,63.10917,0 31.515,62.98693,0 31.58893,62.91440999999999,0 31.4675,62.80639,0 31.25972000000001,62.50777000000002,0 30.94777,62.31138000000001,0 30.64972,62.195,0 29.99138,61.72943,0 29.83222,61.65305000000002,0 29.80916,61.60833,0 29.52555,61.48277,0 29.48639,61.42611000000002,0 29.21361,61.25332,0 28.81277,61.10334,0 28.63888,60.96611,0 28.52916000000001,60.95499,0 28.38888,60.88667000000002,0 27.80783,60.5464,0 28.01583000000001,59.4786,0 28.19389,59.37582,0 28.17035,59.30978,0 27.91254,59.27182,0 27.72499,58.98777,0 27.4936,58.88193,0 27.42611,58.81361,0 27.5425,58.41389,0 27.53916,58.36166,0 27.46471,58.29777,0 27.47416,58.21388000000001,0 27.55417,58.13276000000001,0 27.67721,58.07417000000002,0 27.64222,58.02083,0 27.69722,58.00082,0 27.68388,57.92638,0 27.82306,57.87388,0 27.75306000000001,57.83916,0 27.54583,57.81777,0 27.57277,57.80277000000002,0 27.51639,57.77333,0 27.52666,57.72276,0 27.41306,57.69055,0 27.40583000000001,57.61361000000001,0 27.34806,57.59554000000001,0 27.37205,57.53564,0 27.54722,57.53638000000001,0 27.52722,57.4386,0 27.86111,57.30222000000001,0 27.84082,57.16361,0 27.70138,57.11916000000001,0 27.7775,57.06582,0 27.64,56.84805,0 27.81555,56.87833000000001,0 27.93527,56.82721,0 27.8861,56.74722,0 28.005,56.69137,0 28.03639,56.59054,0 28.1525,56.55443000000001,0 28.11306,56.50555000000001,0 28.18972,56.44055,0 28.18444,56.37471000000001,0 28.23777,56.2711,0 28.16801,56.15015,0 28.3125,56.04999,0 28.3875,56.0961,0 28.64611,56.09361000000001,0 28.75416,55.95388000000001,0 28.84694,55.94249000000001,0 28.86944,55.98055,0 29.05943,56.03278,0 29.41222,55.95777,0 29.46443,55.91109,0 29.40693,55.89582999999999,0 29.35916,55.78943,0 29.49388,55.68888,0 29.71916,55.78249000000002,0 29.82306,55.77528,0 29.92833,55.85167000000001,0 30.14055,55.82804000000002,0 30.22611,55.8661,0 30.48971,55.79999,0 30.49416,55.76388000000001,0 30.61249,55.72027,0 30.60889,55.68138,0 30.72694,55.65639,0 30.75666,55.59665,0 30.91888,55.60833000000001,0 30.93999,55.49583,0 30.90055,55.45915999999999,0 30.93943,55.39944000000001,0 30.81361,55.29333000000001,0 31.00472,55.14332,0 30.98722,55.11166000000002,0 31.02971,55.04332,0 30.92499,55.03333,0 30.94749,54.96915,0 30.83388,54.94415,0 30.845,54.8811,0 30.78,54.79694000000001,0 31.005,54.71167,0 31.02472,54.65222,0 31.18527,54.64222,0 31.18443,54.60609,0 31.0825,54.50556,0 31.1986,54.46093000000001,0 31.23194,54.45665,0 31.31167,54.35083,0 31.33166,54.2375,0 31.54416,54.14333,0 31.76167,54.10333,0 31.79333,54.05305000000001,0 31.84416,54.06444000000001,0 31.86083,53.96333,0 31.76423000000001,53.80262,0 31.90222,53.77777,0 32.11971,53.81999,0 32.32944,53.76222000000001,0 32.37694,53.71888,0 32.45166,53.72638,0 32.51056,53.68361,0 32.41471,53.64638,0 32.44389,53.57194000000001,0 32.5975,53.4911,0 32.67054,53.49722,0 32.66082,53.46666,0 32.7411,53.46305000000001,0 32.73693,53.34249,0 32.46249,53.30832,0 32.49833,53.27832,0 32.43999,53.20888000000001,0 32.29889,53.13193,0 32.22554,53.13333,0 32.22332,53.10555,0 31.93054,53.09554,0 31.80111,53.12583,0 31.77555,53.19415000000002,0 31.61611,53.21832,0 31.4225,53.20888000000001,0 31.37483,53.12193000000001,0 31.38638,53.09916,0 31.2664,53.02193,0 31.35638,52.97805000000001,0 31.41527,52.89305,0 31.53695,52.8561,0 31.58083,52.80304,0 31.595,52.73804,0 31.5,52.68999,0 31.65332,52.55305,0 31.58167,52.55083,0 31.59527,52.53221,0 31.56472000000001,52.51583,0 31.60889,52.49138,0 31.60166,52.40610000000001,0 31.62972,52.37054,0 31.58666,52.31888,0 31.71694,52.26167000000001,0 31.70389,52.1986,0 31.7825,52.16582,0 31.78388,52.10805000000001,0 31.89777,52.09610000000001,0 31.92638,52.03667,0 32.12444,52.04388000000001,0 32.22499,52.07944,0 32.33554,52.1572,0 32.34055000000001,52.22137,0 32.38638,52.25472,0 32.35833,52.30999,0 32.39415,52.33526,0 32.92361,52.24722,0 33.20471,52.37972,0 33.44887,52.34361,0 33.49778,52.36666000000002,0 33.53528,52.29333000000001,0 33.69638,52.36166999999999,0 33.83056,52.36472000000001,0 34.09778,52.15194,0 34.07306,52.06028000000001,0 34.12804,51.98972000000001,0 34.10943,51.95972,0 34.16945,51.95999,0 34.25777,51.87944000000001,0 34.38082,51.84499,0 34.44054,51.76721,0 34.40554,51.7186,0 34.10277,51.67443,0 34.10111,51.64749,0 34.15972,51.6286,0 34.23417,51.54666,0 34.23916,51.42777000000001,0 34.20361,51.40666,0 34.31499,51.35111,0 34.27388,51.28555,0 34.20892,51.25919,0 34.30526,51.23082000000001,0 34.38221,51.26361000000001,0 34.63361,51.24222,0 34.66999,51.17944,0 34.73499,51.17249,0 35.07381,51.22149,0 35.11852,51.20481,0 35.17075,51.0548,0 35.37189,51.04144,0 35.35855,51.01088000000001,0 35.29716000000001,50.99979,0 35.30577000000001,50.96033,0 35.36133,50.92614,0 35.3605,50.87226,0 35.39773,50.80308,0 35.45663,50.77279,0 35.45829,50.69417,0 35.48857,50.67585,0 35.39355,50.63808,0 35.44106,50.51198,0 35.5672,50.45306,0 35.58305,50.38305,0 35.64471,50.35416,0 35.72887,50.35332,0 35.73915,50.38333,0 35.85028,50.4286,0 36.13917,50.42527,0 36.29749,50.28444,0 36.41276,50.32166,0 36.56333000000001,50.27639,0 36.56249,50.22249,0 36.64028,50.21249000000001,0 36.7011,50.26693000000001,0 36.88444,50.33583000000001,0 37.13054,50.34833,0 37.31583,50.42804,0 37.4586,50.43971000000001,0 37.49444,50.35139000000001,0 37.62360000000001,50.30527,0 37.60527,50.21666,0 37.73304,50.08777000000001,0 37.92527,50.02471,0 38.01306,49.90138000000001,0 38.18526,49.9511,0 38.18415,50.06554000000001,0 38.30777,50.07388,0 38.3761,49.98749,0 38.49889,49.95193,0 38.68665,49.97887,0 38.69609,49.92749,0 38.88916,49.86805,0 38.94526,49.8075,0 39.06916,49.81777,0 39.18373,49.88041,0 39.27361,49.75194,0 39.58083,49.73082,0 39.63972,49.61555,0 39.79695000000001,49.55305,0 39.92167,49.56555,0 40.005,49.61444000000001,0 40.13977,49.60105000000001,0 40.14111,49.55916,0 40.07444,49.52694,0 40.05305,49.47833000000001,0 40.17972000000001,49.32695,0 40.16694,49.2486,0 39.96638,49.12388,0 39.93888,49.05499,0 39.69915,49.02277,0 39.69444,48.97305,0 39.76721,48.90388,0 39.97055,48.85999000000001,0 40.03027,48.8961,0 40.07667,48.87500000000001,0 39.98526,48.79139,0 39.80389,48.81777000000001,0 39.72721,48.76221,0 39.65693,48.61667,0 39.66966,48.58764000000002,0 39.85333,48.55471000000001,0 39.86694,48.50027000000001,0 39.83833,48.48388000000001,0 39.92152,48.36839,0 39.83805,48.3125,0 39.91277,48.27777,0 40.0125,48.28472,0 40.00249,48.24304000000001,0 39.93277,48.21332,0 39.84832,48.11306,0 39.86859,48.04084000000001,0 39.77609,48.02639000000001,0 39.81998,47.9697,0 39.79639,47.85722,0 39.72388,47.81833,0 39.34526,47.85304,0 39.13638,47.83388999999999,0 39.03817,47.8658,0 38.83833,47.85278000000001,0 38.75055,47.68387000000001,0 38.69137,47.69415000000002,0 38.60582,47.63803,0 38.33942,47.60139000000001,0 38.28083,47.5061,0 38.28555,47.3961,0 38.20804,47.31916,0 38.31916,47.27833,0 38.2161,47.19471,0 38.23582,47.10943,0 37.64138,46.73358000000001,0 36.67405,45.41802,0 36.54507,45.17941,0 36.53862,44.90856,0 36.5541,41.28566,0 36.61834,41.37498,0 36.85693,41.34721,0 37.02333,41.26749,0 37.04332,41.17555000000001,0 37.15228,41.14491,0 37.29499,41.14389,0 37.53721,41.02805,0 37.60777,41.04777,0 37.68748,41.13722,0 37.70638,41.11222,0 37.78944,41.11555,0 37.79361000000001,41.04554,0 37.89249,40.98277,0 38.2775,40.95056,0 38.36139,40.90943000000001,0 38.5236,40.92083,0 38.62554,40.97305,0 38.70999,40.95,0 38.81611,41.00999,0 39.16304,41.0825,0 39.2786,41.04972,0 39.4211,41.10944,0 39.64611,41.00166,0 39.73333,41.01388000000001,0 39.87721,40.95389,0 39.99776,40.97582,0 40.12859,40.91639,0 40.45804,41.0425,0 40.54332,41.02916,0 40.83305,41.19498,0 40.93111,41.18748,0 41.3875,41.37304000000001,0 41.53155,41.52388,0 41.65167,41.48277,0 41.72277,41.49554,0 41.72306,41.47055,0 41.83331,41.42832,0 41.96804,41.51915,0 42.05028,41.49056,0 42.18249,41.5075,0 42.47221,41.43333,0 42.51081,41.44333,0 42.59777,41.58305,0 42.82749,41.58500000000001,0 42.78832,41.50861,0 42.84722,41.47305,0 42.89278,41.50695,0 43.03972,41.37416,0 43.20777,41.30693,0 43.1236,41.25527,0 43.19943000000001,41.25527,0 43.23693,41.17638,0 43.3497,41.20193,0 43.42582,41.18527,0 43.47471,41.13999,0 43.46077,41.11296,0 43.47915,41.02528,0 43.59944,40.99249,0 43.67165,40.92806,0 43.6861,40.84195,0 43.75193,40.74,0 43.75361,40.67582,0 43.65304,40.53138,0 43.55415,40.4711,0 43.62027,40.41944,0 43.59417,40.33749,0 43.68,40.26443,0 43.67221,40.21972,0 43.72165,40.16332,0 43.65778,40.13971,0 43.65749,40.1086,0 43.93389000000001,40.01361,0 44.28,40.0461,0 44.34722,40.02389,0 44.48778,39.96277,0 44.59082,39.83305,0 44.69555,39.78998,0 44.77886,39.70638000000001,0 44.81304,39.63081,0 44.60582,39.78054000000001,0 44.47108,39.69886,0 44.4161,39.42527,0 44.31554,39.3875,0 44.20054,39.41694,0 44.03416,39.38499,0 44.09581,39.29138,0 44.09833,39.20638,0 44.21583,39.14083,0 44.18833,39.08306,0 44.20499,39.04165,0 44.15943,39.00221,0 44.20805,38.89581,0 44.30332000000001,38.83444,0 44.26082,38.72165,0 44.28276,38.69777,0 44.26333,38.66639,0 44.31388,38.63777,0 44.30693000000001,38.38833,0 44.38081,38.36971,0 44.43471000000001,38.39555,0 44.48416,38.34554,0 44.40471000000001,38.27166,0 44.38778,38.16583,0 44.26416,38.01416,0 44.22398000000001,37.89915,0 44.39333,37.86304,0 44.41916,37.81778,0 44.45193,37.81778,0 44.45609,37.77471,0 44.52693,37.78555,0 44.61805,37.72776,0 44.55804,37.64803,0 44.6136,37.60277,0 44.58859,37.44026,0 44.72499,37.38361,0 44.81527,37.30526,0 44.82193,37.2711,0 44.77332,37.22748,0 44.78733,37.1497,0 44.63806,37.18748,0 44.43638000000001,37.06304,0 44.35111,37.04833,0 44.31721,36.97055,0 44.25527,36.98666,0 44.19333,37.10027,0 44.26777,37.1675,0 44.26166,37.24194,0 44.11638,37.31638,0 44.01416,37.32054,0 43.91138,37.22415,0 43.83444,37.20499,0 43.79110000000001,37.23194,0 43.49471,37.24972,0 43.35666,37.33083,0 43.27916,37.3161,0 43.14971,37.37777,0 42.95554,37.32222,0 42.79083,37.38472,0 42.72666,37.35555000000001,0 42.58165,37.15277,0 42.35562,37.10693,0 42.37723,37.06467000000001,0 41.83528,36.59888,0 41.40304,36.52555,0 41.29027000000001,36.35555,0 41.25499000000001,36.05499,0 41.37806,35.83861,0 41.38388,35.62527,0 41.27777,35.49554,0 41.21527,35.22471,0 41.22915,34.78832,0 41.00388,34.41944,0 38.7947,33.37759,0 39.08601,32.50151,0 38.98602,32.47767,0 39.04366,32.30405,0 39.26,32.35555,0 39.30111,32.23638,0 39.19675,32.15495,0 39.005,32.00556,0 37.00527,31.50555,0 38.00139,30.50417,0 37.6675,30.33639,0 37.50277,30.00222000000001,0 36.74361,29.86472,0 36.50055,29.50277000000001,0 36.07,29.18889,0 34.96139,29.36083,0 34.85527,29.03861,0 34.84254,28.88452,0 34.78054,28.67083,0 34.80778,28.53639,0 34.64528,28.19361,0 34.65972,28.16445,0 34.62749000000001,28.17388,0 34.5714,28.09056,0 34.48494,27.99542,0 34.49483,27.93732,0 34.6346,27.87186,0 34.88189,27.89598,0 35.26789,27.63060000000001,0 35.71421,27.09985,0 36.49828,26.06245,0 36.47416,25.62217,0 36.54049,25.54376,0 36.83,25.51963,0 36.96872,25.39901,0 37.01093,24.97079,0 37.51406,24.19318,0 37.51406,19.32831,0 38.23912000000001,19.32831,0 38.24853,18.39601,0 38.51692,18.23592,0 38.64405,18.06641,0 38.60069,17.99488,0 38.45861,17.87111,0 38.37029,17.66611,0 38.27667,17.60694000000001,0 38.25777,17.5325,0 38.18583,17.56222,0 38.13361,17.5486,0 38.11138,17.48111,0 38.09555,17.54389,0 38.05584,17.55194,0 37.91722,17.4475,0 37.81888,17.48139,0 37.73584,17.37666,0 37.5125,17.32333,0 37.52058,17.1958,0 37.42329,17.03422,0 37.30693000000001,17.06111,0 37.15194,17.01555,0 36.99582,17.07389,0 37.01805,17.00361,0 36.98693,16.94306,0 37.02278,16.85056,0 36.98055,16.70611,0 36.91222,16.64111,0 36.89638,16.51777,0 36.95694,16.42528,0 36.97305,16.26944,0 36.91584,16.215,0 36.76361,15.80806,0 36.69777,15.75305,0 36.62611,15.48945,0 36.64777000000001,15.44971,0 36.61054,15.43721,0 36.54277,15.23472,0 36.44329,15.14995,0 36.54282,14.26206,0 36.44639,13.95695,0 36.48693,13.83944,0 36.3975,13.56778,0 36.24860000000001,13.36805,0 36.15944,13.04167,0 36.16972,12.98416,0 36.13278,12.92333,0 36.16528,12.87527,0 36.1427,12.70692,0 36.00638,12.72416,0 35.69944,12.66583,0 35.69528,12.61222,0 35.64916,12.59417,0 35.43249,12.20055,0 35.3811,12.16111,0 35.34555,12.03277,0 35.27111,11.97555,0 35.23555,11.90083,0 35.09693,11.82694,0 35.05806,11.72056,0 35.09361,11.55778,0 34.96388,11.25695,0 35.0075,11.19833,0 34.93333,10.95666,0 34.97861,10.91527,0 34.97527,10.86445,0 34.86861,10.78582,0 34.86443,10.735,0 34.80861,10.72945,0 34.77333,10.68694,0 34.77333,10.74584,0 34.59444,10.88779,0 34.43972,10.78445,0 34.28611,10.55416,0 34.34777,10.23195,0 34.32306,10.11721,0 34.23138000000001,10.03027,0 34.08583,9.553058999999999,0 34.13499,8.955270000000001,0 34.1228,8.584649000000001,0 33.97888,8.441387000000002,0 33.85249,8.425836,0 33.77599,8.364941999999999,0 33.69333,8.386389000000001,0 33.62555,8.470556,0 33.57804,8.449443000000001,0 33.50777,8.480834,0 33.38777,8.43777,0 33.2625,8.462502000000001,0 33.20444,8.433890000000002,0 33.16082,8.360001000000001,0 33.15834,8.291392999999999,0 33.20861,8.238049999999999,0 33.16527,8.204715,0 33.18643,8.136979999999999,0 33.03028,7.995248000000001,0 32.99683,7.887221000000001,0 33.05389,7.788888,0 33.16806,7.796393000000001,0 33.33944,7.713612000000001,0 33.47027,7.743339000000001,0 33.55138,7.686387,0 33.71139,7.660277,0 33.78889,7.56639,0 33.89278,7.518888,0 34.03083000000001,7.375004,0 34.03,7.240832,0 34.13361,7.158887,0 34.1825,7.163054000000001,0 34.2025,7.052219000000001,0 34.2947,6.966432000000001,0 34.46999,6.916112,0 34.53,6.743888,0 34.6375,6.727221,0 34.76277,6.605837000000002,0 34.79777,6.444719,0 34.85722,6.349445000000001,0 34.86055,6.26166,0 34.98782,6.013944,0 34.98639,5.878052000000001,0 35.10582,5.692779000000001,0 35.10388,5.632496000000001,0 35.28999,5.507774,0 35.26972,5.441112,0 35.31138,5.366942,0 35.35638,5.350275,0 35.44749,5.429448,0 35.50472,5.431391,0 35.605,5.373054,0 35.68443,5.391387,0 35.83583,5.318613,0 35.79556,5.251391,0 35.83083,5.153894000000001,0 35.77389,5.075279,0 35.77443,4.798611,0 35.94056,4.622499,0 35.50888,4.616738,0 34.38819,4.609683,0 33.99666,4.222782,0 33.51694,3.752217,0 33.18388,3.766113,0 33.01666,3.888612,0 32.89804,3.811949,0 32.71944,3.755834,0 32.40445,3.743613,0 32.19443,3.611042,0 32.19333,3.511394999999999,0 32.09361,3.532500000000001,0 32.0639,3.59028,0 31.95111,3.593889,0 31.93332,3.687785,0 31.79945,3.825557,0 31.70194,3.713058000000001,0 31.57389,3.691664,0 31.54083,3.653611999999999,0 31.28806,3.794714,0 31.17667000000001,3.795281,0 30.97471,3.691943,0 30.85882000000001,3.493394,0 30.91721,3.521942,0 30.935,3.411665,0 30.83,3.275558,0 30.7625,3.055004,0 30.85555,2.957499,0 30.87806000000001,2.843612,0 30.81667,2.769165,0 30.72972,2.448053,0 30.82667,2.442221,0 30.82527,2.399165,0 30.88027,2.337497,0 30.91416,2.339442,0 30.97084,2.411945,0 31.07027,2.335005,0 31.04972,2.303891,0 31.12528,2.278053,0 31.19694,2.305835,0 31.2025,2.229164,0 31.2992,2.162853,0 31.30277,2.121389,0 31.03666000000001,1.765556,0 30.68806,1.493891,0 30.45611,1.212785,0 30.34861,1.196108,0 30.33221,1.151387,0 30.27805,1.168893,0 30.23611,1.134161,0 30.21861000000001,0.9963894000000001,0 30.14583,0.8983344000000001,0 29.96055000000001,0.8255515,0 29.93833,0.6344455,0 29.9625,0.4872144,0 29.85833,0.3666595,0 29.81389,0.1586065,0 29.77332,0.1722145,0 29.71666000000002,0.07221546,0 29.735,-0.00083754,0 29.64861,-0.4397225,0 29.67195,-0.5722206,0 29.63805,-0.5933346000000001,0 29.61833,-0.7333385,0 29.62832,-0.8888946000000001,0 29.57833,-0.9000005,0 29.56639,-1.005841,0 29.59694,-1.385839,0 29.68332,-1.380556,0 29.73416,-1.341946,0 29.80306,-1.365553,0 29.84139,-1.320283,0 29.9075,-1.464166,0 29.97500000000001,-1.464445,0 30.17056,-1.339723,0 30.18472,-1.275004,0 30.22916,-1.266661,0 30.34566,-1.129168,0 30.36,-1.060003,0 30.48222,-1.063333,0 30.45333000000001,-1.095553,0 30.46945,-1.158337,0 30.51221,-1.164448,0 30.56166,-1.326943,0 30.73917,-1.436949,0 30.74888,-1.52055,0 30.84027,-1.670554,0 30.81111,-1.700551,0 30.835,-1.800559,0 30.80832,-1.929448,0 30.89417,-2.076112,0 30.82917,-2.357785,0 30.78222,-2.380554,0 30.69972,-2.347497,0 30.6525,-2.396665000000001,0 30.57332,-2.399167,0 30.43305,-2.647783,0 30.45721,-2.685835,0 30.52222,-2.657215,0 30.44028000000001,-2.747215,0 30.4175,-2.861946999999999,0 30.485,-2.947222,0 30.56333,-2.89305,0 30.66611,-2.976391,0 30.84477,-2.976012,0 30.79555,-3.048607,0 30.85222,-3.145285,0 30.835,-3.256948,0 30.65166,-3.332503,0 30.6222,-3.370122,0 30.66361,-3.386665,0 30.66222,-3.418893999999999,0 30.44916,-3.547215000000001,0 30.39139,-3.711106000000001,0 30.40084,-3.786112,0 30.32111,-3.78666,0 30.22806,-3.928051,0 30.17222,-4.086667,0 30.07277,-4.166667,0 30.02611,-4.269447,0 29.85777,-4.371111,0 29.81277,-4.360284,0 29.75222000000001,-4.461112,0 29.42334,-4.447504,0 29.42834,-4.552218,0 29.34139,-4.797783,0 29.34916000000001,-4.939732,0 29.63166,-5.721949,0 29.49777,-5.979726000000001,0 29.55029,-6.295285,0 29.66111,-6.455556,0 29.73250000000001,-6.627501,0 30.08611,-6.863607,0 30.31138,-7.136947000000001,0 30.40695,-7.356393,0 30.45583,-7.580277000000001,0 30.65445,-7.886943,0 30.77123,-8.192242,0 30.90138,-8.460001,0 31.04111,-8.590284000000001,0 31.13277,-8.615557000000001,0 31.22055,-8.576668,0 31.28527,-8.623333000000001,0 31.37556,-8.582229999999999,0 31.39806,-8.629443,0 31.45945,-8.629443,0 31.56332,-8.698608,0 31.57305,-8.818605,0 31.68361000000001,-8.908894,0 31.73861,-8.918056,0 31.78553000000001,-8.885061,0 31.95611,-8.930835999999999,0 31.93416,-9.018891,0 31.97972,-9.071109999999999,0 32.05611,-9.040832999999999,0 32.16,-9.063333999999999,0 32.24945000000001,-9.131949000000001,0 32.42556,-9.129718000000002,0 32.54527,-9.26667,0 32.74195,-9.281665,0 32.77166,-9.335557,0 32.9404,-9.405072000000001,0 32.99777,-9.373339,0 33.12583,-9.490285,0 33.1925,-9.509167,0 33.31444000000001,-9.485550999999999,0 33.39388,-9.538055999999999,0 33.43777,-9.615834,0 33.50889,-9.621945,0 33.585,-9.584164,0 33.68361,-9.610552,0 33.75583,-9.582777999999999,0 33.91961,-9.707652,0 33.95305000000001,-9.673335000000002,0 33.95721,-9.526671,0 34.03944,-9.482779000000001,0 34.32527,-9.73278,0 34.33805,-9.7875,0 34.5225,-10.01084,0 34.52389,-10.1075,0 34.58277,-10.27,0 34.57583,-10.51667,0 34.67611000000001,-10.74306,0 34.64305,-10.92194,0 34.59305,-11.01668,0 34.615,-11.10945,0 34.71027,-11.20111,0 34.76361000000001,-11.345,0 34.80555,-11.33222,0 34.89054,-11.38306,0 34.95972,-11.48666,0 34.96673,-11.57211,0 35.49416,-11.57918,0 35.51611,-11.61084,0 35.57638,-11.60667,0 35.6525,-11.58473,0 35.70389,-11.48778,0 35.7725,-11.47528,0 35.83833,-11.41472,0 35.94306,-11.43473,0 35.96556,-11.50084,0 36.16305,-11.57778,0 36.18972,-11.70666,0 36.49001,-11.68111,0 36.56195,-11.74028,0 36.67777,-11.71472,0 36.82972,-11.56861,0 36.90445,-11.59473,0 37.02584,-11.56721,0 37.12583,-11.67333,0 37.28611,-11.70418,0 37.34722,-11.68667,0 37.46204,-11.72732,0 37.52666,-11.6625,0 37.66306,-11.63833,0 37.81582,-11.53833,0 37.80972,-11.48,0 37.86861,-11.32666,0 38.09669,-11.25633,0 38.27972,-11.28834,0 38.37777,-11.37722,0 38.49171,-11.41531,0 38.65527,-11.2811,0 38.77389,-11.26166,0 38.89777,-11.17222,0 39.13444,-11.14195,0 39.26805,-11.16806,0 39.50833,-10.99528,0 39.76694000000001,-10.92056,0 39.89832000000001,-10.83166,0 40.00666,-10.80555,0 40.23611,-10.60278,0 40.3425,-10.56722,0 40.43681,-10.47817,0 40.47834,-10.4825,0 40.47277,-10.50778,0 40.52111,-10.48416,0 40.50388,-10.56444,0 40.55972,-10.58666,0 40.57332,-10.65,0 40.63945,-10.67166,0 40.64145,-10.69888,0 40.70627,-10.84757,0 40.71345000000001,-11.17438,0 40.47889,-11.40556,0 40.42471,-11.55416,0 40.45805,-11.60583,0 40.42417,-11.64973,0 40.47556,-11.82029,0 40.51611,-11.84333,0 40.49342,-11.91995,0 40.60549,-11.96501,0 40.63672,-12.37548,0 40.61845,-12.65416,0 40.57444,-12.64306,0 40.57139,-12.69806,0 40.61639,-12.71334,0 40.64194,-12.7814,0 40.55889,-12.785,0 40.56638,-12.81889,0 40.52361,-12.81778,0 40.55639,-12.85445,0 40.53416,-12.90416,0 40.47666,-12.88417,0 40.41,-12.96194,0 40.48972,-13.0275,0 40.50166000000001,-12.94445,0 40.59722,-12.97334,0 40.56,-13.07861,0 40.56806,-13.26222,0 40.52833,-13.3025,0 40.56638,-13.285,0 40.56528,-13.3664,0 40.59111,-13.37473,0 40.52584,-13.51528,0 40.60056,-13.57084,0 40.53749,-13.64528,0 40.64999000000001,-14.01694,0 40.63833000000001,-14.07918,0 40.59666,-14.08722,0 40.62277,-14.12555,0 40.53054,-14.17166,0 40.55584,-14.23,0 40.59389,-14.21084,0 40.59,-14.26834,0 40.64917,-14.1975,0 40.70361,-14.18222,0 40.74472,-14.27473,0 40.72861,-14.34306,0 40.66916,-14.36723,0 40.6375,-14.33973,0 40.65472000000001,-14.44195,0 40.6264,-14.445,0 40.62777,-14.56944,0 40.6661,-14.5375,0 40.68999,-14.43584,0 40.81166000000001,-14.40779,0 40.82804,-14.49944,0 40.76083,-14.53805,0 40.82999,-14.53028,0 40.8064,-14.61417,0 40.84472,-14.68611,0 40.84195,-14.795,0 40.72278,-14.89279,0 40.66888,-14.9075,0 40.64527,-14.85806,0 40.66305,-14.92111,0 40.74722,-14.92834,0 40.78027,-14.98667,0 40.66,-14.98721,0 40.70888000000001,-15.07834,0 40.64527,-15.08279,0 40.60167,-15.13389,0 40.52888,-15.13278,0 40.51445,-15.18723,0 40.57805,-15.20278,0 40.62722,-15.155,0 40.68472,-15.24973,0 40.57167,-15.45111,0 40.58777,-15.47973,0 40.54333,-15.53417,0 40.49666000000001,-15.52917,0 40.36028,-15.72333,0 40.17528,-15.92,0 40.06472,-15.99361,0 40.08749,-16.00944,0 40.13027,-15.9675,0 40.13582,-15.9925,0 39.98191,-16.23304,0 39.90667000000001,-16.4168,0 39.85722,-16.43055,0 39.7965,-16.46608,0 39.71716,-16.50974,0 39.28388,-16.76834,0 39.15639,-16.88083,0 39.12749,-16.87042,0 39.12917,-16.90084,0 39.08361,-16.91612,0 39.12749,-16.93305,0 39.08583,-16.99168,0 39.00154,-16.99003,0 38.81833,-17.05778,0 38.70972,-17.06361,0 38.66444,-17.02916,0 38.67889,-17.0775,0 38.60472,-17.09916,0 38.58806,-17.07723,0 38.54056,-17.12584,0 38.50638000000001,-17.10973,0 38.4975,-17.14417,0 38.15666,-17.2914,0 38.12889,-17.17834,0 38.11694,-17.20889,0 38.07889,-17.19278,0 38.13083,-17.25361,0 38.11138,-17.31139,0 37.87222,-17.37639,0 37.52949,-17.56545,0 37.52949,-19.06546,0 37.52949,-24.06546,0 37.52949,-29.06546000000001,0 37.52949,-34.06546,0 37.52949,-39.06546,0 37.52949,-44.06546000000001,0 37.52949,-49.06545000000001,0 37.52949,-52.36546,0 37.52949,-57.36545,0 37.52949,-62.36546000000001,0 37.52949,-67.36546000000001,0 37.52949,-69.90000000000001,0 37.52949,-74.90000000000001,0 37.52949,-79.90000000000001,0 37.52949,-84.89999,0 37.52949,-89.90000000000001,0 36.59039,-89.90000000000001,0 35.65129,-89.90000000000001,0 34.71218,-89.90000000000001,0 33.77307,-89.90000000000001,0 32.83397,-89.90000000000001,0 31.89487,-89.90000000000001,0 30.95576,-89.90000000000001,0 30.01666,-89.90000000000001,0 29.07755,-89.90000000000001,0 28.13845,-89.90000000000001,0 27.19934,-89.90000000000001,0 26.26024,-89.90000000000001,0 25.32114,-89.90000000000001,0 24.38203,-89.90000000000001,0 23.44293,-89.90000000000001,0 22.50382,-89.90000000000001,0 22.50382,-84.89999,0 22.50382,-83.84003000000001,0 22.50382,-78.84003,0 22.50382,-73.84003,0 22.50382,-70.54002,0 22.50382,-65.54002,0 22.50382,-60.54002000000001,0 22.50382,-55.54003,0 22.50382,-50.54002,0 22.50382,-45.54003,0 22.50382,-40.54002,0 22.50382,-35.54002000000001,0 22.50382,-34.04004,0 22.15389,-34.09251,0 22.11167,-34.14861000000001,0 22.13416,-34.19112,0 21.94972,-34.22501,0 21.90166,-34.33611,0 21.8025,-34.38305,0 21.65556,-34.39056,0 21.52832,-34.3525,0 21.29472000000001,-34.43389,0 21.06277,-34.36389,0 20.9425,-34.36028,0 20.80861000000001,-34.39723,0 20.85666000000001,-34.42083,0 20.85222,-34.46305,0 20.53444,-34.45583,0 20.46029,-34.48223,0 20.21972,-34.67973,0 20.08972,-34.72639,0 20.055,-34.7525,0 20.05722,-34.805,0 19.99861,-34.82195,0 19.85777,-34.7525,0 19.65166,-34.77584,0 19.51639,-34.67556,0 19.51416,-34.67084,0 19.38945,-34.60196,0 19.29611,-34.61972,0 19.36333,-34.53778,0 19.3575,-34.50029,0 19.28194,-34.40973,0 19.21082,-34.42861,0 19.11222,-34.40334,0 19.08334,-34.36084000000001,0 19.13722,-34.29834,0 19.08334,-34.34639,0 18.81778,-34.37778000000001,0 18.80833,-34.29723,0 18.84527,-34.245,0 18.81417,-34.19028,0 18.85527,-34.15611,0 18.79332,-34.08667,0 18.60195,-34.07362,0 18.48805,-34.09778,0 18.43583,-34.16889,0 18.47888,-34.23445000000001,0 18.46666,-34.3289,0 18.49011,-34.34823,0 18.42027,-34.32306,0 18.36305,-34.18723,0 18.30972,-34.14918,0 18.35555,-34.05834,0 18.31027,-34.0325,0 18.38,-33.91195,0 18.4825,-33.89473,0 18.44111,-33.70667,0 18.31527,-33.56834,0 18.29471,-33.46611,0 18.14805,-33.35612,0 18.09,-33.22501,0 17.96722,-33.13472,0 17.95556,-33.10305,0 18.00167,-33.09334,0 18.12306,-33.20001,0 18.03721,-33.10196,0 18.03444,-33.0325,0 17.98333,-33.00028,0 17.91389,-33.04805,0 17.89305,-33.03111,0 17.85714,-32.91527000000001,0 17.87694,-32.86084,0 17.84527,-32.82584,0 17.8675,-32.81196000000001,0 17.87666,-32.80612,0 17.9025,-32.73333,0 17.96694,-32.69862,0 18.05361,-32.77612,0 18.13175,-32.77878000000001,0 18.29222,-32.62445,0 18.335,-32.47834,0 18.31611,-32.33501,0 18.35027,-32.28806,0 18.2786,-31.89278,0 18.18139,-31.67473,0 17.90944,-31.35973,0 17.61195,-30.92972,0 17.53944,-30.7575,0 17.27889,-30.34667,0 17.08445,-29.83584000000002,0 17.00332,-29.52445,0 16.84444,-29.22139,0 16.81528,-29.085,0 16.73277,-29.01889,0 16.67083,-28.90584,0 16.60611,-28.87195,0 16.56833,-28.72389,0 16.46972,-28.63028,0 16.48959,-28.57819,0 16.44195,-28.61834,0 16.35445,-28.56278,0 16.02778,-28.24473,0 15.75277,-28.03055,0 15.67639,-27.9339,0 15.67,-27.87139000000001,0 15.52861,-27.7275,0 15.53333,-27.66139,0 15.46666,-27.54445000000001,0 15.29417,-27.32250000000001,0 15.23471,-26.96667,0 15.15777,-26.90278,0 15.08389,-26.69861,0 15.07972,-26.65,0 15.13472,-26.62889,0 15.14194,-26.67778,0 15.17111,-26.5964,0 15.08792,-26.40098,0 14.96833,-26.33972,0 14.93861,-26.13945,0 14.97805,-26.12667,0 14.98,-26.0575,0 14.90333,-25.91055,0 14.91361,-25.84472,0 14.83777,-25.76194,0 14.88222,-25.5675,0 14.80083,-25.285,0 14.85778,-25.08723,0 14.83207,-24.99944,0 14.79277,-24.94361,0 14.77695,-24.79945,0 14.59916,-24.56555,0 14.61278,-24.45639,0 14.46333,-24.10917,0 14.45611,-23.9675,0 14.50945,-23.90473,0 14.51471,-23.83583,0 14.48445,-23.75639,0 14.49611,-23.58834,0 14.43444,-23.41778,0 14.47,-23.34668,0 14.49194,-23.37584,0 14.49833,-23.33056,0 14.45388,-23.1464,0 14.41056,-22.96723,0 14.43833,-22.87778,0 14.46278,-23.00055,0 14.52584,-22.91112,0 14.52485,-22.69206,0 14.51139,-22.55279,0 14.39167,-22.29,0 14.27777,-22.11028,0 13.94916,-21.78194,0 13.97028,-21.73167,0 13.87972,-21.59944,0 13.85361,-21.49139,0 13.4,-20.85583,0 13.35277,-20.64667,0 13.25083,-20.46584,0 13.175,-20.18084,0 13.05111,-20.06778,0 12.93167,-19.79583,0 12.70722,-19.41778,0 12.67,-19.295,0 12.54222,-19.06778,0 12.46416,-19.00418,0 12.46083,-18.92805,0 12.29611,-18.7061,0 12.02083,-18.47111,0 11.9489,-18.25639,0 11.80472,-18.08195,0 11.7211,-17.655,0 11.75278,-17.25484,0 11.82584,-17.26639000000001,0 11.92861,-17.18278,0 12.08471,-17.13528,0 12.13139,-17.16112,0 12.16778,-17.14389,0 12.24611,-17.22721,0 12.42139,-17.20361,0 12.45083,-17.25417,0 12.55722,-17.24333,0 12.81611,-17.10889,0 12.88666,-17.03361,0 13.16056,-16.95278,0 13.25166,-16.98528,0 13.37333,-16.96945,0 13.47445,-17.01194,0 13.52611,-17.07778,0 13.52471,-17.12695,0 13.98556,-17.42584,0 14.17694,-17.42028,0 14.20417,-17.3831,0 18.00055,-17.38617,0 18.45154,-17.38984,0 18.63722,-17.64473,0 18.75638,-17.74778,0 18.91584,-17.81555,0 19.24222,-17.80583,0 19.34333,-17.8475,0 19.55916,-17.8675,0 19.66166,-17.83778,0 19.76195,-17.8989,0 19.81194,-17.85833,0 19.92056,-17.85723,0 20.03583,-17.90028,0 20.33806,-17.85805,0 20.5475,-17.98168,0 20.75195,-17.99611000000001,0 20.82,-18.03861,0 20.95417,-17.9675,0 21.16389,-17.93139,0 21.24194,-17.93889,0 21.37936,-18.01489,0 23.47611,-17.62584,0 23.20167,-17.47973,0 22.48778,-16.77417,0 22.13888,-16.4925,0 22.12111,-16.34112,0 22.00015,-16.17166,0 21.99834,-13.00416,0 24.02055,-13.00639,0 23.99777,-12.93723,0 23.89389,-12.83223,0 23.88611,-12.77111,0 23.9475,-12.53723,0 24.05222,-12.38528,0 24.035,-12.26417,0 23.975,-12.19917,0 23.98416,-11.88222,0 24.01555,-11.81417,0 23.96583,-11.655,0 24.03028,-11.52639,0 24.03083,-11.45306,0 24.08445,-11.40278,0 24.02527,-11.28056,0 24.0225,-10.96889,0 23.98621,-10.87046,0 23.8639,-11.02722,0 23.47639,-10.95834,0 23.36806,-10.98278,0 23.21861000000001,-11.07639,0 23.085,-11.09668,0 22.94277,-11.095,0 22.86361,-11.04917,0 22.71667,-11.09334,0 22.52972,-11.03778,0 22.48,-11.13333,0 22.25111,-11.2525,0 22.24611,-11.07305,0 22.19361,-10.99417,0 22.16361,-10.86139,0 22.31944,-10.75973,0 22.30806,-10.61278,0 22.30334,-10.53779,0 22.26416,-10.50055,0 22.31361,-10.37,0 22.20722,-10.15416,0 22.1625,-9.930555,0 22.02138,-9.848053,0 21.985,-9.755838000000001,0 21.95639,-9.763335,0 21.87472,-9.665001999999999,0 21.79056,-9.405559,0 21.85472,-9.229445999999999,0 21.84777,-8.949718000000001,0 21.94,-8.496109000000001,0 21.91611,-8.308612,0 21.87666,-8.279163000000001,0 21.85861,-8.157781,0 21.75416,-7.999444000000001,0 21.77305,-7.776109,0 21.85111,-7.591662,0 21.85388,-7.425559000000001,0 21.81555,-7.316110000000001,0 21.78295,-7.280848,0 20.53861,-7.284483,0 20.54306,-7.124445,0 20.62975,-6.913881,0 20.3325,-6.914449,0 20.31138,-6.99472,0 19.96277,-6.995556000000001,0 19.9325,-6.842503,0 19.73667,-6.575553000000002,0 19.68847,-6.187500000000002,0 19.84027,-6.031107000000001,0 20.01974,-5.942214,0 20.05305,-5.865004,0 20.11222,-5.834448,0 20.18,-5.684445000000001,0 20.14305,-5.40361,0 20.19639,-5.273613,0 20.19166,-5.159161,0 20.05445,-4.769164,0 20.06222,-4.595832,0 20.11889,-4.500837,0 20.03333,-4.300551,0 20.03889,-4.278051,0 20.12861,-4.278889,0 20.17777,-4.33278,0 20.22445,-4.335003,0 20.26277,-4.395555,0 20.3375,-4.397779,0 20.37444,-4.295278,0 20.50944,-4.254166000000001,0 20.66917,-4.151665,0 20.65611000000001,-3.307221999999999,0 20.82945,-2.848887,0 20.95417,-2.692783,0 20.95916,-2.588608,0 21.00686,-2.48896,0 21.24555,-2.512783000000001,0 21.44083,-2.480554,0 21.46972,-2.335284,0 21.82688,-2.529217,0 21.89883,-2.490597,0 21.95194,-2.415555,0 22.0486,-2.370835,0 22.13972,-2.276389,0 22.19055000000001,-2.313334,0 22.19861,-2.447784,0 22.25139,-2.466946,0 22.28722000000001,-2.445553,0 22.16638,-1.942219,0 22.185,-1.903339,0 22.50972000000001,-1.958887,0 22.62556,-1.801108,0 22.67972,-1.806661,0 22.87028,-1.88416,0 22.93666,-1.962216,0 23.03277,-1.928053,0 23.10944,-1.945837,0 23.22111,-2.085552,0 23.5,-2.009998,0 23.69389,-2.018889,0 23.69805,-1.931392,0 23.77472,-1.917505,0 23.78306,-1.806661,0 23.83777,-1.765,0 23.98527,-1.769167,0 24.03527,-1.73278,0 24.4214,-1.786798,0 24.37583,-1.538893,0 24.30388,-1.393057,0 24.10583,-1.384723,0 23.94889,-1.306666,0 23.77278,-1.179163,0 23.72972,-1.08334,0 23.52667,-0.9758345000000001,0 23.35611,-0.8072196,0 23.48555,-0.6988865,0 23.62945,-0.6358325,0 23.46778000000001,-0.4386065,0 23.26917,-0.4952795999999999,0 23.21778,-0.4249986,0 22.97027,-0.4063866,0 23.13,-0.2808366,0 23.29389,-0.3172145,0 23.41361,-0.2336045,0 22.9936,0.3750025000000001,0 22.93528,0.5708334000000001,0 22.86139,0.6711115,0 22.81472000000001,0.9963894000000001,0 22.62416,1.361663,0 22.4339,1.489715,0 22.28639,1.503332,0 22.31111,1.557503,0 22.47277,1.693889,0 22.51667,1.916387,0 22.58861,2.048606,0 22.57222000000001,2.110283,0 22.6475,2.109447,0 22.69972,2.034162,0 22.75722,2.010284,0 22.86084,2.045835,0 22.97583,2.184165,0 23.09027,2.093894,0 23.34389,2.251395000000001,0 23.65138,2.192498,0 23.6275,2.330837,0 23.4225,2.451941,0 23.35945,2.523887,0 23.12666,2.502503,0 23.03806,2.558051,0 22.96,2.672216,0 23.00389,2.757221,0 22.98472,2.857779,0 23.08195,3.147218,0 23.00111,3.161664000000001,0 22.86417000000001,3.011947999999999,0 22.81472000000001,2.996109,0 22.77972,3.063887,0 22.79639,3.259449,0 22.64333,3.325284,0 22.62361,3.388886,0 22.67834,3.453893,0 22.92861,3.548051000000001,0 23.03750000000001,3.547503,0 23.17111,3.678056000000001,0 23.36971,3.615839,0 23.48695,3.738338,0 23.515,3.825836,0 23.39943,3.835278000000001,0 23.35889,3.809448,0 23.14722,3.896108,0 23.03555,3.860559,0 22.99083,3.883337,0 22.85806,3.858604999999999,0 22.76555,3.905,0 22.75861,3.991391000000001,0 22.68722,3.998050999999999,0 22.56111,4.101389,0 22.45972,4.137497,0 22.4536,4.144580000000001,0 22.53861,4.218894,0 22.54111,4.28111,0 22.60972,4.358889,0 22.59445,4.470551,0 22.69027000000001,4.483611,0 22.77584,4.706666,0 22.85582000000001,4.706945,0 22.89584,4.821110000000001,0 22.97500000000001,4.831388,0 23.0225,4.743053,0 23.10000000000001,4.70528,0 23.1825,4.727222,0 23.26833,4.627214,0 23.38556000000001,4.587777,0 23.42639,4.591943,0 23.44166,4.653612,0 23.58445,4.734449,0 23.83027,4.82084,0 23.94222,4.810004,0 23.95417,4.873337,0 23.98195,4.855275,0 24.10555,4.920002,0 24.15194,4.900004,0 24.2275,4.960278000000001,0 24.25611,4.929443,0 24.28611,4.994999,0 24.40056,5.030001,0 24.355,5.054715,0 24.39417,5.115554,0 24.42555,5.065838,0 24.44750000000001,5.105834,0 24.52556,5.077214000000001,0 24.66111,4.964445,0 24.65056,4.92111,0 24.73445,4.910841,0 24.95888,4.987215000000001,0 25.07027,4.945832,0 25.13361,5.017778000000001,0 25.17583,4.995278,0 25.30832,5.032503,0 25.34945,5.144714,0 25.31056,5.19111,0 25.37555,5.294717,0 25.36195,5.314715000000001,0 25.53833,5.350554,0 25.54222,5.381387,0 25.74916,5.241941,0 25.79083,5.263893,0 25.82583,5.195556,0 25.87583,5.217497,0 25.9,5.166945,0 25.97333,5.231663000000001,0 26.05694,5.192504,0 26.13277,5.257215,0 26.29222,5.141394,0 26.38639,5.145552,0 26.48889,5.04639,0 26.73166,5.092784,0 26.86777,5.029163,0 26.93777,5.141106,0 27.08417,5.204159,0 27.39361,5.089167,0 27.45527,5.016392,0 27.45806,5.083613,0 27.3,5.22611,0 27.25472,5.331392,0 27.23584,5.428610000000001,0 27.28166,5.578613,0 27.23389,5.588334,0 27.24084,5.647779000000001,0 27.14278,5.771943,0 27.04917,5.789997,0 27.00111,5.862501,0 26.94972,5.846949000000001,0 26.91027,5.899446000000001,0 26.83945,5.898338,0 26.80861,5.980004,0 26.55445,6.033608,0 26.51416,6.109722,0 26.4375,6.077772,0 26.52361000000001,6.173613,0 26.52361000000001,6.221106,0 26.47611,6.224714,0 26.45944,6.294446000000001,0 26.39527,6.307785,0 26.30778000000002,6.383051,0 26.31361,6.457769000000001,0 26.28916,6.468894,0 26.40628,6.63525,0 26.10083,6.841106,0 26.04834,6.998336,0 25.81971,7.108335000000001,0 25.81389,7.147214000000001,0 25.59389,7.216388,0 25.53139,7.277786,0 25.465,7.280001000000001,0 25.36555,7.348338,0 25.33111,7.425279,0 25.20695,7.497503,0 25.18389000000001,7.583336000000002,0 25.29611,7.65,0 25.25833,7.840836,0 25.18611,7.901946,0 25.08027,7.897500000000001,0 24.97333,7.992774,0 24.94277,8.083888999999999,0 24.86555,8.165285000000001,0 24.66,8.218610999999999,0 24.54583,8.204715,0 24.46,8.271386,0 24.36111,8.247221,0 24.17722,8.316108,0 24.14027,8.375832000000001,0 24.16584,8.477783000000001,0 24.26917,8.583055999999999,0 24.23027,8.624995999999999,0 24.25333,8.691110999999999,0 23.82389,8.727785000000001,0 23.73916,8.705276,0 23.63305,8.736947000000001,0 23.51777,8.714159,0 23.49833,8.77833,0 23.58167,8.906112,0 23.58306,8.988605,0 23.56528000000001,9.005281999999999,0 23.50361,8.959716000000002,0 23.44861,9.025002000000001,0 23.49277,9.174168,0 23.55639,9.181664,0 23.65222,9.279999,0 23.66445,9.440837999999999,0 23.63138,9.449442,0 23.62333,9.535275,0 23.69471,9.671659999999999,0 23.66916000000001,9.866942,0 23.30389,10.45916,0 23.00945,10.69861,0 22.86651,10.92244,0 22.9425,11.0925,0 22.97083,11.28306,0 22.93084,11.41583,0 22.79111,11.40167,0 22.77555,11.46222,0 22.64195,11.51611,0 22.56167,11.62166,0 22.64082000000001,12.07111,0 22.56361,12.07471,0 22.47666,12.03416,0 22.50139,12.17695,0 22.43278,12.40333,0 22.38389,12.46527,0 22.46694,12.62166,0 22.22333,12.74722,0 22.14056,12.65527,0 21.95277,12.64389,0 21.82777,12.7975,0 21.94334,13.05361,0 22.02055,13.13779,0 22.15972,13.19027,0 22.29416000000001,13.35861,0 22.23056,13.47889,0 22.22472,13.57195,0 22.15361,13.63444,0 22.13861,13.72806,0 22.08444,13.77916,0 22.19833,13.9225,0 22.23833,13.96833,0 22.555,14.12555,0 22.55527,14.23194,0 22.44389,14.27222,0 22.43444,14.30972,0 22.46972,14.34472,0 22.44556,14.47972,0 22.38138,14.52306,0 22.38416,14.55416,0 22.47,14.62945,0 22.7025,14.69139,0 22.67056,14.85945,0 22.7389,14.90278,0 22.75332,14.97694,0 22.84916,15.07834,0 22.93583,15.11611,0 22.99834,15.35639,0 22.92305,15.48722,0 22.93722,15.56194,0 23.11816,15.71029,0 23.35694,15.68166,0 23.60889,15.75833,0 23.9996,15.69871,0 23.99981,18.7543,0 24.00275,19.49907,0 25.00083,19.99916,0 25.00142,21.99969,0 24.9989,26.99969000000002,0 24.99777,29.24888,0 24.8775,29.50638,0 24.88694,29.66389,0 24.8125,29.78445,0 24.83472,29.87666,0 24.70667,30.16861,0 24.78082,30.33388,0 24.92611000000001,30.50611,0 25.01916,30.7875,0 24.86945,31.15639,0 24.86833,31.375,0 25.04222,31.49972,0 25.06972,31.58167,0 25.15166,31.64694,0 25.02555,31.84139,0 25.03611,31.92445,0 24.97389,31.97,0 24.7275,32.02693,0 24.54305,31.98527,0 24.09472,32.00111,0 23.96778,32.0675,0 23.98639,32.09833,0 23.72639,32.17472,0 23.50166,32.17139,0 23.30778,32.21861,0 23.30916,32.15861,0 23.20889,32.27555,0 23.08139,32.33277,0 23.09306,32.42667,0 23.13333,32.39666,0 23.14555,32.46694000000001,0 23.09833,32.52166,0 23.12222,32.62666,0 22.50257,32.79314,0 22.50257,36.37666,0 22.3926,36.43942,0 22.33602000000001,36.51816,0 22.35234,36.64503,0 22.32878,36.7139,0 22.23996,36.84983,0 22.12033,36.90784,0 22.13302,37.00752,0 22.04059,37.01296,0 21.95903,36.9749,0 21.94816,36.8444,0 21.98484,36.77306,0 21.79948,36.68655,0 21.70063,36.72363,0 21.53381,37.02636,0 21.57297,37.21142,0 21.67267,37.33829,0 21.54217,37.54129,0 21.36454,37.6464,0 21.30836,37.62784,0 20.99752,37.69217,0 20.80903,37.64777,0 20.68738,37.72452,0 20.61781,37.81678,0 20.51087,38.09272000000001,0 20.45741,38.14892,0 20.37856,38.13986,0 20.31669,38.18789,0 20.39216,38.36551000000001,0 20.44472,38.36641,0 20.48369,38.32835,0 20.51631,38.3501,0 20.54984,38.68631000000001,0 20.63178,38.84898,0 20.72928,38.86393,0 20.73834,38.90834,0 20.49728,39.20377,0 20.2381,39.1222,0 20.13298,39.19515,0 20.07227,39.36417,0 19.87652,39.44391,0 19.80221,39.58348,0 19.36993,39.84311,0 19.37265,39.8712,0 19.57928,39.90293,0 19.95083,39.78693,0 19.98255,39.68724,0 20.01002,39.6912,0 20.19916,39.64472,0 20.26444,39.66916000000001,0 20.32083,39.7336,0 20.29138,39.80667,0 20.38138,39.78722,0 20.41445,39.82443,0 20.3161,39.99334,0 20.39416,39.99917000000001,0 20.45,40.07249,0 20.67195,40.09805,0 20.67861,40.18527,0 20.72111,40.22305,0 20.71306,40.27833,0 20.78972,40.36083,0 20.78889,40.42832,0 20.84889,40.47916,0 20.94556,40.46694,0 21.04138,40.56195,0 21.05194,40.67666000000001,0 20.96194,40.77166,0 20.98349,40.8559,0 21.34305,40.87193,0 21.41972,40.91917,0 21.6,40.87277,0 21.69445,40.93805,0 21.79222,40.93278,0 21.80416,40.97777,0 21.91195,41.04943,0 21.91611,41.09527,0 22.06667,41.15834,0 22.13111,41.12500000000001,0 22.25667,41.17139,0 22.33417,41.12722,0 22.58555,41.11944,0 22.6725,41.18777,0 22.72917,41.14471,0 22.77222,41.32444,0 22.96083,41.3586,0 22.9525,41.63444,0 23.03277,41.72834000000001,0 22.96193,41.77861,0 22.89584,41.88527,0 22.86444,42.02722,0 22.67528,42.0675,0 22.5211,42.14861,0 22.36527,42.32389,0 22.45639,42.34027,0 22.55805,42.47916,0 22.43861,42.57471000000001,0 22.46111,42.6925,0 22.50139,42.73916,0 22.44222,42.82167,0 22.525,42.87861,0 22.74556000000001,42.89361,0 22.79083,42.98527,0 22.96639,43.10167,0 23.00721,43.19611,0 22.90444000000002,43.23082,0 22.76666,43.38582,0 22.54333000000001,43.4725,0 22.49555000000001,43.57028,0 22.49555000000001,43.64555,0 22.4275,43.68861,0 22.35945,43.81694,0 22.41695,44.00695,0 22.6225,44.07083,0 22.61667,44.17278,0 22.68144,44.2247,0 22.6875,44.27777,0 22.54972,44.32306,0 22.45734,44.47435,0 22.54611,44.4875,0 22.59027,44.54916,0 22.69958,44.52252,0 22.76489000000001,44.55901,0 22.47916,44.71027,0 22.31361,44.66417,0 22.17694,44.48194000000001,0 22.14638,44.47916,0 22.08444,44.50306,0 21.99389,44.63556,0 21.64944,44.65778,0 21.58834,44.76332000000001,0 21.40040000000001,44.78082,0 21.36611,44.86444,0 21.55861,44.89611,0 21.54083,44.93861,0 21.36695,45.00832,0 21.44722000000001,45.035,0 21.46028,45.10277,0 21.51277,45.12333,0 21.51361,45.15111000000001,0 21.41666,45.21472000000001,0 21.2675,45.23278,0 21.16306,45.30972,0 21.04889,45.31639,0 20.78305,45.48472,0 20.82361,45.53249,0 20.76666,45.60999,0 20.79888,45.65667,0 20.80139,45.76416,0 20.71334,45.74389,0 20.59167,45.89417000000001,0 20.37805,45.97806,0 20.26102,46.11486,0 20.34027,46.15944,0 20.47805,46.14972,0 20.48694,46.18110999999999,0 20.62472,46.13027000000002,0 20.72056,46.16555,0 20.72056,46.19166,0 20.76305,46.19917000000001,0 20.75332,46.23888000000001,0 20.82028,46.27472,0 21.05944,46.23917,0 21.17667,46.29556,0 21.19721,46.39139,0 21.29222,46.42027000000001,0 21.26056,46.49528000000001,0 21.32666,46.61999,0 21.40500000000001,46.62111000000001,0 21.44194,46.68194,0 21.52194,46.71277000000001,0 21.48806,46.75278000000001,0 21.51972,46.81527,0 21.60527,46.85722000000001,0 21.59972000000001,46.91805000000001,0 21.67167,46.95138,0 21.69583,47.00082,0 21.65111,47.02972000000001,0 21.79084,47.12028000000001,0 21.9225,47.35443,0 22.00972,47.38083,0 22.01527000000001,47.51445,0 22.18639,47.59861000000001,0 22.27694,47.72861000000001,0 22.42139,47.74389,0 22.45444,47.79639000000001,0 22.65361,47.77638000000001,0 22.77444,47.8364,0 22.77084,47.87943,0 22.8948,47.95454,0 22.85056,47.98083,0 22.8825,48.04694,0 22.7975,48.11472,0 22.62116,48.10163,0 22.57528,48.19443,0 22.50445,48.24749000000001,0 22.37861,48.24554,0 22.31888,48.31416000000001,0 22.31944,48.36166,0 22.26028,48.36082,0 22.26889,48.40721,0 22.15145,48.41192000000001,0 22.15888,48.58027,0 22.32888,48.68694000000001,0 22.34805,48.76416,0 22.38917,48.79722,0 22.37694,48.85194,0 22.46749,48.97860000000001,0 22.53721,48.99554,0 22.55805,49.07944,0 22.59805,49.09109999999999,0 22.67417,49.04416000000001,0 22.76916,49.05332,0 22.88607,49.00292,0 22.87611,49.09,0 22.73472,49.17722000000001,0 22.70028,49.16555,0 22.76027,49.29528,0 22.73833,49.39027,0 22.69222,49.42333000000001,0 22.65611,49.51972,0 22.68607,49.5771,0 23.14611,49.98305,0 23.67694,50.32444,0 23.70388,50.37833,0 23.99166,50.40721,0 24.02611,50.49388,0 24.13277,50.54445000000001,0 24.07972,50.70499000000001,0 23.9525,50.79472,0 23.97277,50.82805000000001,0 24.11472,50.83138000000001,0 24.14471,50.85804,0 23.96638,50.94887,0 23.86277,51.09833,0 23.86694,51.14861,0 23.63611,51.30110000000001,0 23.69306,51.40471,0 23.60463,51.52769,0 23.56138,51.5425,0 23.53499,51.65359000000001,0 23.55556,51.74943,0 23.62944,51.80471,0 23.59472,51.8336,0 23.61173,51.91397,0 23.67277,51.99138,0 23.63861,52.07944,0 23.51472,52.1236,0 23.49304,52.17416000000001,0 23.20638,52.22526,0 23.1654,52.28227,0 23.39722,52.51445,0 23.59722,52.59639,0 23.75389,52.61583000000001,0 23.94083,52.73220000000001,0 23.91527,52.91888,0 23.93305,53.01417,0 23.87805000000001,53.07555,0 23.91055,53.16721,0 23.81472,53.25444,0 23.67472,53.4911,0 23.50404,53.94704,0 23.47528000000001,53.99110000000001,0 23.51777,54.03028,0 23.48444,54.13833000000001,0 23.35028000000001,54.23888000000001,0 23.14249,54.31054,0 23.06611,54.30804,0 23.06166,54.35167,0 22.98749000000001,54.38917000000001,0 22.85611,54.4086,0 22.78588,54.36384,0 22.69444,54.47332000000001,0 22.69832,54.58943000000001,0 22.74055,54.72777000000001,0 22.84249,54.77749,0 22.86916,54.82333,0 22.83499000000001,54.90166,0 22.75555,54.92055000000001,0 22.77056,54.93888,0 22.73222000000001,54.96249,0 22.64082000000001,54.96638,0 22.5992,55.07113,0 22.19722000000001,55.06166,0 22.06194,55.02749000000001,0 22.00972,55.08778,0 21.86305,55.09194,0 21.64027,55.18472,0 21.50389,55.19332,0 21.38128,55.28709,0 21.26394,55.24899,0 20.98481,55.27655,0 20.94284,55.2872,0 21.30838,59.61593000000001,0 19.36751,59.65187,0 19.33158,60.19100000000001,0 20.69736,63.31795000000001,0 24.16601,65.8115,0 23.9486,66.10138000000001,0 23.9125,66.14833,0 23.72222,66.20027,0 23.63917,66.43053999999999,0 23.72527,66.50082999999999,0 23.87861,66.55722,0 23.89,66.74303999999999,0 24.00777,66.80055,0 23.57167,67.15666,0 23.61028,67.20166,0 23.58445,67.22387000000001,0 23.60555,67.25943,0 23.77333,67.31444000000001,0 23.74472,67.36834,0 23.76778,67.41611,0 23.54917,67.45332999999999,0 23.48695,67.43804,0 23.42889,67.47584000000001,0 23.47195,67.55638,0 23.55361,67.58749,0 23.48083,67.72665000000001,0 23.48333,67.86305,0 23.64472,67.91306,0 23.65695,67.95081999999999,0 23.39445,68.0425,0 23.30722,68.13916,0 23.15138,68.12277,0 23.14222,68.23000999999999,0 22.8236,68.38805000000001,0 22.33471,68.47275999999999,0 22.05056,68.47915999999999,0 21.89722,68.56999,0 21.7575,68.57693,0 21.62306,68.64942000000001,0 21.46556,68.67805,0 21.40666,68.74361,0 21.30195,68.75555,0 21.08139,68.86665000000001,0 20.89527,68.89361,0 20.88888,68.92583000000002,0 20.93889,68.95834000000001,0 20.86666,69.00499000000001,0 20.60417,69.05305,0 20.58093,69.0603,0 20.73833,69.09636999999999,0 21.05944,69.03444,0 21.11305,69.10805000000002,0 21.04222,69.16082,0 21.02806,69.20805,0 21.055,69.22861,0 21.32083,69.32611,0 21.68195,69.28471,0 22.34667,68.8447,0 22.39833,68.71111000000001,0 22.55,68.73779,0 22.80277,68.69138,0 23.06389,68.69555,0 23.22500000000001,68.62971,0 23.69277,68.71222,0 23.83,68.82999,0 23.97639,68.83249000000001,0 24.35139,68.71053000000001,0 24.75445,68.66025999999999,0 24.89566,68.5582,0 24.95523,68.60391,0 25.10334,68.63472,0 25.15472,68.76778,0 25.21445,68.81749000000001,0 25.40695,68.88638,0 25.58555,68.87887000000001,0 25.65277,68.90639,0 25.81277,69.0175,0 25.73222,69.10916,0 25.71333,69.25526000000001,0 25.755,69.34220999999999,0 25.83361,69.38416000000001,0 25.82666,69.43638,0 25.87416,69.48636999999999,0 25.85277,69.54666,0 25.9575,69.59027,0 25.97416,69.63527000000001,0 25.94194,69.66722,0 25.97834,69.70193,0 26.15583,69.74249,0 26.37806000000001,69.85444,0 26.47056,69.93527,0 26.80658,69.95206,0 27.06889,69.90860000000001,0 27.29194,69.95,0 27.3,69.99055,0 27.53833,70.03525999999999,0 27.57333,70.06887999999999,0 27.87305,70.08804000000001,0 27.94416,70.08027,0 27.97916,70.00664999999999,0 28.09417,69.93859000000001,0 + + + 1 + + + + + +37.5369,84.90001,0 37.5369,81.47494,0 35.86762,81.47494,0 35.86762,78.71200000000002,0 37.59446,78.71200000000002,0 37.56522,73.71208,0 37.5369,68.86902000000001,0 37.16386,68.89137,0 36.23384,69.15934,0 35.31956,69.30909,0 33.48315,69.49036,0 33.13635,69.77410999999999,0 32.28514,69.92385,0 31.92259,70.01843,0 31.17443,70.36256,0 30.18603,70.73994,0 28.92806,70.93761000000001,0 28.20923,71.09936999999999,0 25.9988,71.18922000000001,0 24.72286,71.15327000000001,0 23.95011,71.17124,0 22.54661000000001,70.84514,0 22.54661000000001,75.84414,0 23.89267,75.84414,0 28.89267,75.84414,0 33.89268,75.84414,0 33.89268,76.51716999999999,0 33.89268,81.51716999999999,0 32.54661,81.51716999999999,0 27.54661,81.51716999999999,0 22.54661000000001,81.51716999999999,0 22.54661000000001,84.90001,0 22.54661000000001,89.90000000000001,0 23.54596,89.90000000000001,0 24.54531,89.90000000000001,0 25.54466,89.90000000000001,0 26.54402,89.90000000000001,0 27.54338,89.90000000000001,0 28.54273,89.90000000000001,0 29.54207,89.90000000000001,0 30.54143,89.90000000000001,0 31.54078000000001,89.90000000000001,0 32.54013,89.90000000000001,0 33.53948,89.90000000000001,0 34.53884000000001,89.90000000000001,0 35.53819,89.90000000000001,0 36.53754,89.90000000000001,0 37.5369,89.90000000000001,0 37.5369,84.90001,0 + + + 1 + + + + + GMT +03:00 + + +]]> + #khStyle0300 + + + + + +42.79083,37.38472,0 42.95554,37.32222,0 43.14971,37.37777,0 43.27916,37.3161,0 43.35666,37.33083,0 43.49471,37.24972,0 43.79110000000001,37.23194,0 43.83444,37.20499,0 43.91138,37.22415,0 44.01416,37.32054,0 44.11638,37.31638,0 44.26166,37.24194,0 44.26777,37.1675,0 44.19333,37.10027,0 44.25527,36.98666,0 44.31721,36.97055,0 44.35111,37.04833,0 44.43638000000001,37.06304,0 44.63806,37.18748,0 44.78733,37.1497,0 44.76554,37.11694,0 44.78499,37.08472,0 44.90972000000001,37.02388,0 44.88416,36.96166,0 44.90664,36.88832,0 44.84915,36.79832,0 45.01277000000001,36.7536,0 45.06666000000001,36.68054,0 45.01471000000002,36.53527,0 45.09415,36.42443,0 45.23916,36.43137,0 45.27916,36.3811,0 45.27303000000001,36.30859,0 45.30332000000001,36.28083,0 45.27582,36.25776,0 45.31971,36.23832,0 45.32027000000001,36.15609,0 45.36832,36.08637,0 45.33165,36.01416,0 45.34916,35.99055,0 45.50555000000001,36.02055,0 45.55777000000001,36.0022,0 45.66332000000001,35.94054,0 45.76583000000001,35.81194,0 46.08749,35.86639,0 46.18166000000001,35.80417,0 46.34444,35.82193,0 46.2686,35.72805,0 46.02944,35.68776,0 46.02388,35.57999,0 45.97999000000001,35.58471,0 46.0061,35.53778,0 45.99221,35.48109,0 46.14805,35.29746,0 46.11916000000001,35.24444,0 46.19305,35.21111,0 46.15331,35.1611,0 46.16638,35.10722,0 46.03944,35.05833,0 45.93378,35.09876,0 45.92193000000001,35.05443,0 45.8786,35.03527,0 45.89555,34.9636,0 45.86776,34.9036,0 45.77249,34.91444,0 45.76611,34.84583,0 45.68860000000002,34.81528,0 45.6511,34.72694,0 45.70833,34.65915,0 45.72220999999999,34.55665,0 45.61472,34.55999,0 45.52473000000001,34.6032,0 45.52555,34.50249,0 45.43555000000001,34.45528,0 45.48777000000001,34.33583,0 45.53555,34.35111,0 45.58472,34.30249,0 45.54695000000002,34.18833,0 45.56276,34.14054,0 45.46888,34.07917,0 45.40582,33.9711,0 45.50804,33.94249,0 45.68888,33.67499,0 45.75527000000001,33.63361,0 45.74694,33.59166,0 45.90659000000001,33.63655,0 45.89666,33.60139,0 45.9486,33.55665,0 45.87471,33.49166,0 46.00647000000001,33.48579,0 46.05027000000001,33.37778,0 46.17555000000001,33.2686,0 46.19944,33.19582,0 46.11138,33.11277,0 46.05138000000001,33.11832,0 46.05416000000001,33.08805,0 46.14972,33.06527,0 46.0975,33.00555,0 46.10722,32.96749,0 46.42388,32.93749,0 46.73944000000001,32.75999,0 47.1375,32.46305,0 47.27499000000001,32.49194,0 47.3561,32.47638,0 47.43416,32.39778,0 47.41332,32.34109,0 47.52887,32.22887,0 47.5075,32.15416,0 47.68971000000001,32.02388,0 47.79056000000001,31.86,0 47.86445,31.79861,0 47.69721000000001,31.40778,0 47.69388000000001,31.00111,0 48.03638,30.99749,0 48.03249,30.49138,0 48.16043,30.42708,0 48.1992,30.32573,0 48.27964000000001,30.33528,0 48.40781,30.21121,0 48.38777000000001,30.13694,0 48.45333000000001,29.99805,0 48.54556,29.96302,0 48.59428,29.94093000000001,0 49.22824000000001,30.14287,0 49.3535,30.13924,0 49.55681000000001,29.98495000000001,0 50.0717,29.82476,0 50.27212,29.1344,0 51.29651,27.95413,0 51.54147,27.7537,0 52.52133,27.48647,0 52.52133,24.12054,0 52.33083,23.99971,0 52.08055,23.95555,0 51.94305,23.99277,0 51.92555000000001,23.95471,0 51.79873,24.01633,0 51.77584000000001,24.27528,0 51.74389,24.28639,0 51.70888,24.21472,0 51.67222,24.2725,0 51.63556000000001,24.20972,0 51.62222000000001,24.34472,0 51.59138,24.37833,0 51.58423000000001,24.26046,0 51.58333,24.11666,0 52.58333,22.93889,0 55.14166,22.63333,0 55.19917000000002,22.69972,0 55.66611000000001,21.99972,0 55.00000000000001,20,0 51.99929,18.99934,0 53.11444,16.64278,0 52.94389,16.60806,0 52.52133,16.43764,0 52.52133,13.61265,0 55.86174,13.61265,0 55.86174,10.62857,0 52.52067,10.62583,0 52.52069,7.825823000000002,0 52.52073,2.825829000000001,0 52.52075,-2.174176,0 52.52079000000001,-7.17417,0 52.52081,-12.17417,0 52.52085,-17.17417,0 52.52089,-22.17417,0 52.52089,-24.17416,0 52.52093000000001,-29.17417,0 52.52097,-34.17416,0 52.521,-39.17416,0 52.52101,-41.47417,0 52.52105,-46.47416000000001,0 52.52108,-51.47417,0 52.52111,-56.47416,0 52.52115,-61.47417000000001,0 52.52118000000001,-66.47416,0 52.52121000000001,-71.47417,0 52.52125,-76.47417,0 52.52126,-78.97417,0 52.52129000000001,-83.97417000000002,0 52.52133,-88.97416,0 52.52133,-89.90000000000001,0 51.52188,-89.90000000000001,0 50.52242,-89.90000000000001,0 49.52297,-89.90000000000001,0 48.52351,-89.90000000000001,0 47.52406,-89.90000000000001,0 46.52459000000001,-89.90000000000001,0 45.52513,-89.90000000000001,0 44.52568,-89.90000000000001,0 43.52622,-89.90000000000001,0 42.52677,-89.90000000000001,0 41.52731,-89.90000000000001,0 40.52786,-89.90000000000001,0 39.5284,-89.90000000000001,0 38.52895,-89.90000000000001,0 37.52949,-89.90000000000001,0 37.52949,-84.89999,0 37.52949,-79.90000000000001,0 37.52949,-74.90000000000001,0 37.52949,-69.90000000000001,0 37.52949,-67.36546000000001,0 37.52949,-62.36546000000001,0 37.52949,-57.36545,0 37.52949,-52.36546,0 37.52949,-49.06545000000001,0 37.52949,-44.06546000000001,0 37.52949,-39.06546,0 37.52949,-34.06546,0 37.52949,-29.06546000000001,0 37.52949,-24.06546,0 37.52949,-19.06546,0 37.52949,-17.56545,0 37.87222,-17.37639,0 38.11138,-17.31139,0 38.13083,-17.25361,0 38.07889,-17.19278,0 38.11694,-17.20889,0 38.12889,-17.17834,0 38.15666,-17.2914,0 38.4975,-17.14417,0 38.50638000000001,-17.10973,0 38.54056,-17.12584,0 38.58806,-17.07723,0 38.60472,-17.09916,0 38.67889,-17.0775,0 38.66444,-17.02916,0 38.70972,-17.06361,0 38.81833,-17.05778,0 39.00154,-16.99003,0 39.08583,-16.99168,0 39.12749,-16.93305,0 39.08361,-16.91612,0 39.12917,-16.90084,0 39.12749,-16.87042,0 39.15639,-16.88083,0 39.28388,-16.76834,0 39.71716,-16.50974,0 39.7965,-16.46608,0 39.85722,-16.43055,0 39.90667000000001,-16.4168,0 39.98191,-16.23304,0 40.13582,-15.9925,0 40.13027,-15.9675,0 40.08749,-16.00944,0 40.06472,-15.99361,0 40.17528,-15.92,0 40.36028,-15.72333,0 40.49666000000001,-15.52917,0 40.54333,-15.53417,0 40.58777,-15.47973,0 40.57167,-15.45111,0 40.68472,-15.24973,0 40.62722,-15.155,0 40.57805,-15.20278,0 40.51445,-15.18723,0 40.52888,-15.13278,0 40.60167,-15.13389,0 40.64527,-15.08279,0 40.70888000000001,-15.07834,0 40.66,-14.98721,0 40.78027,-14.98667,0 40.74722,-14.92834,0 40.66305,-14.92111,0 40.64527,-14.85806,0 40.66888,-14.9075,0 40.72278,-14.89279,0 40.84195,-14.795,0 40.84472,-14.68611,0 40.8064,-14.61417,0 40.82999,-14.53028,0 40.76083,-14.53805,0 40.82804,-14.49944,0 40.81166000000001,-14.40779,0 40.68999,-14.43584,0 40.6661,-14.5375,0 40.62777,-14.56944,0 40.6264,-14.445,0 40.65472000000001,-14.44195,0 40.6375,-14.33973,0 40.66916,-14.36723,0 40.72861,-14.34306,0 40.74472,-14.27473,0 40.70361,-14.18222,0 40.64917,-14.1975,0 40.59,-14.26834,0 40.59389,-14.21084,0 40.55584,-14.23,0 40.53054,-14.17166,0 40.62277,-14.12555,0 40.59666,-14.08722,0 40.63833000000001,-14.07918,0 40.64999000000001,-14.01694,0 40.53749,-13.64528,0 40.60056,-13.57084,0 40.52584,-13.51528,0 40.59111,-13.37473,0 40.56528,-13.3664,0 40.56638,-13.285,0 40.52833,-13.3025,0 40.56806,-13.26222,0 40.56,-13.07861,0 40.59722,-12.97334,0 40.50166000000001,-12.94445,0 40.48972,-13.0275,0 40.41,-12.96194,0 40.47666,-12.88417,0 40.53416,-12.90416,0 40.55639,-12.85445,0 40.52361,-12.81778,0 40.56638,-12.81889,0 40.55889,-12.785,0 40.64194,-12.7814,0 40.61639,-12.71334,0 40.57139,-12.69806,0 40.57444,-12.64306,0 40.61845,-12.65416,0 40.63672,-12.37548,0 40.60549,-11.96501,0 40.49342,-11.91995,0 40.51611,-11.84333,0 40.47556,-11.82029,0 40.42417,-11.64973,0 40.45805,-11.60583,0 40.42471,-11.55416,0 40.47889,-11.40556,0 40.71345000000001,-11.17438,0 40.70627,-10.84757,0 40.64145,-10.69888,0 40.63945,-10.67166,0 40.57332,-10.65,0 40.55972,-10.58666,0 40.50388,-10.56444,0 40.52111,-10.48416,0 40.47277,-10.50778,0 40.47834,-10.4825,0 40.43681,-10.47817,0 40.3425,-10.56722,0 40.23611,-10.60278,0 40.00666,-10.80555,0 39.89832000000001,-10.83166,0 39.76694000000001,-10.92056,0 39.50833,-10.99528,0 39.26805,-11.16806,0 39.13444,-11.14195,0 38.89777,-11.17222,0 38.77389,-11.26166,0 38.65527,-11.2811,0 38.49171,-11.41531,0 38.37777,-11.37722,0 38.27972,-11.28834,0 38.09669,-11.25633,0 37.86861,-11.32666,0 37.80972,-11.48,0 37.81582,-11.53833,0 37.66306,-11.63833,0 37.52666,-11.6625,0 37.46204,-11.72732,0 37.34722,-11.68667,0 37.28611,-11.70418,0 37.12583,-11.67333,0 37.02584,-11.56721,0 36.90445,-11.59473,0 36.82972,-11.56861,0 36.67777,-11.71472,0 36.56195,-11.74028,0 36.49001,-11.68111,0 36.18972,-11.70666,0 36.16305,-11.57778,0 35.96556,-11.50084,0 35.94306,-11.43473,0 35.83833,-11.41472,0 35.7725,-11.47528,0 35.70389,-11.48778,0 35.6525,-11.58473,0 35.57638,-11.60667,0 35.51611,-11.61084,0 35.49416,-11.57918,0 34.96673,-11.57211,0 34.95972,-11.48666,0 34.89054,-11.38306,0 34.80555,-11.33222,0 34.76361000000001,-11.345,0 34.71027,-11.20111,0 34.615,-11.10945,0 34.59305,-11.01668,0 34.64305,-10.92194,0 34.67611000000001,-10.74306,0 34.57583,-10.51667,0 34.58277,-10.27,0 34.52389,-10.1075,0 34.5225,-10.01084,0 34.33805,-9.7875,0 34.32527,-9.73278,0 34.03944,-9.482779000000001,0 33.95721,-9.526671,0 33.95305000000001,-9.673335000000002,0 33.91961,-9.707652,0 33.75583,-9.582777999999999,0 33.68361,-9.610552,0 33.585,-9.584164,0 33.50889,-9.621945,0 33.43777,-9.615834,0 33.39388,-9.538055999999999,0 33.31444000000001,-9.485550999999999,0 33.1925,-9.509167,0 33.12583,-9.490285,0 32.99777,-9.373339,0 32.9404,-9.405072000000001,0 32.77166,-9.335557,0 32.74195,-9.281665,0 32.54527,-9.26667,0 32.42556,-9.129718000000002,0 32.24945000000001,-9.131949000000001,0 32.16,-9.063333999999999,0 32.05611,-9.040832999999999,0 31.97972,-9.071109999999999,0 31.93416,-9.018891,0 31.95611,-8.930835999999999,0 31.78553000000001,-8.885061,0 31.73861,-8.918056,0 31.68361000000001,-8.908894,0 31.57305,-8.818605,0 31.56332,-8.698608,0 31.45945,-8.629443,0 31.39806,-8.629443,0 31.37556,-8.582229999999999,0 31.28527,-8.623333000000001,0 31.22055,-8.576668,0 31.13277,-8.615557000000001,0 31.04111,-8.590284000000001,0 30.90138,-8.460001,0 30.77123,-8.192242,0 30.65445,-7.886943,0 30.45583,-7.580277000000001,0 30.40695,-7.356393,0 30.31138,-7.136947000000001,0 30.08611,-6.863607,0 29.73250000000001,-6.627501,0 29.66111,-6.455556,0 29.55029,-6.295285,0 29.49777,-5.979726000000001,0 29.63166,-5.721949,0 29.34916000000001,-4.939732,0 29.34139,-4.797783,0 29.42834,-4.552218,0 29.42334,-4.447504,0 29.75222000000001,-4.461112,0 29.81277,-4.360284,0 29.85777,-4.371111,0 30.02611,-4.269447,0 30.07277,-4.166667,0 30.17222,-4.086667,0 30.22806,-3.928051,0 30.32111,-3.78666,0 30.40084,-3.786112,0 30.39139,-3.711106000000001,0 30.44916,-3.547215000000001,0 30.66222,-3.418893999999999,0 30.66361,-3.386665,0 30.6222,-3.370122,0 30.65166,-3.332503,0 30.835,-3.256948,0 30.85222,-3.145285,0 30.79555,-3.048607,0 30.84477,-2.976012,0 30.66611,-2.976391,0 30.56333,-2.89305,0 30.485,-2.947222,0 30.4175,-2.861946999999999,0 30.44028000000001,-2.747215,0 30.52222,-2.657215,0 30.45721,-2.685835,0 30.43305,-2.647783,0 30.57332,-2.399167,0 30.6525,-2.396665000000001,0 30.69972,-2.347497,0 30.78222,-2.380554,0 30.82917,-2.357785,0 30.89417,-2.076112,0 30.80832,-1.929448,0 30.835,-1.800559,0 30.81111,-1.700551,0 30.84027,-1.670554,0 30.74888,-1.52055,0 30.73917,-1.436949,0 30.56166,-1.326943,0 30.51222,-1.164448,0 30.46945,-1.158337,0 30.45333000000001,-1.095553,0 30.48222,-1.063333,0 30.36,-1.060003,0 30.34566,-1.129168,0 30.22916,-1.266661,0 30.18472,-1.275004,0 30.17056,-1.339723,0 29.97500000000001,-1.464445,0 29.9075,-1.464166,0 29.84139,-1.320283,0 29.80306,-1.365553,0 29.73416,-1.341946,0 29.68332,-1.380556,0 29.59694,-1.385839,0 29.56639,-1.005841,0 29.57833,-0.9000005,0 29.62832,-0.8888946000000001,0 29.61833,-0.7333385,0 29.63805,-0.5933346000000001,0 29.67195,-0.5722206,0 29.64861,-0.4397225,0 29.735,-0.00083754,0 29.71666000000002,0.07221546,0 29.77332,0.1722145,0 29.81389,0.1586065,0 29.85833,0.3666595,0 29.9625,0.4872144,0 29.93833,0.6344455,0 29.96055000000001,0.8255515,0 30.14583,0.8983344000000001,0 30.21861000000001,0.9963894000000001,0 30.23611,1.134161,0 30.27805,1.168893,0 30.33221,1.151387,0 30.34861,1.196108,0 30.45611,1.212785,0 30.68806,1.493891,0 31.03666000000001,1.765556,0 31.30277,2.121389,0 31.2992,2.162853,0 31.2025,2.229164,0 31.19694,2.305835,0 31.12528,2.278053,0 31.04972,2.303891,0 31.07027,2.335005,0 30.97084,2.411945,0 30.91416,2.339442,0 30.88027,2.337497,0 30.82527,2.399165,0 30.82667,2.442221,0 30.72972,2.448053,0 30.81667,2.769165,0 30.87806000000001,2.843612,0 30.85555,2.957499,0 30.7625,3.055004,0 30.83,3.275558,0 30.935,3.411665,0 30.91721,3.521942,0 30.85882000000001,3.493394,0 30.97471,3.691943,0 31.17667000000001,3.795281,0 31.28806,3.794714,0 31.54083,3.653611999999999,0 31.57389,3.691664,0 31.70194,3.713058000000001,0 31.79945,3.825557,0 31.93332,3.687785,0 31.95111,3.593889,0 32.0639,3.59028,0 32.09361,3.532500000000001,0 32.19333,3.511394999999999,0 32.19443,3.611042,0 32.40445,3.743613,0 32.71944,3.755834,0 32.89804,3.811949,0 33.01666,3.888612,0 33.18388,3.766113,0 33.51694,3.752217,0 33.99666,4.222782,0 34.38819,4.609683,0 35.50888,4.616738,0 35.94056,4.622499,0 35.77443,4.798611,0 35.77389,5.075279,0 35.83083,5.153894000000001,0 35.79556,5.251391,0 35.83583,5.318613,0 35.68443,5.391387,0 35.605,5.373054,0 35.50472,5.431391,0 35.44749,5.429448,0 35.35638,5.350275,0 35.31138,5.366942,0 35.26972,5.441112,0 35.28999,5.507774,0 35.10388,5.632496000000001,0 35.10582,5.692779000000001,0 34.98639,5.878052000000001,0 34.98782,6.013944,0 34.86055,6.26166,0 34.85722,6.349445000000001,0 34.79777,6.444719,0 34.76277,6.605837000000002,0 34.6375,6.727221,0 34.53,6.743888,0 34.46999,6.916112,0 34.2947,6.966432000000001,0 34.2025,7.052219000000001,0 34.1825,7.163054000000001,0 34.13361,7.158887,0 34.03,7.240832,0 34.03083000000001,7.375004,0 33.89278,7.518888,0 33.78889,7.56639,0 33.71139,7.660277,0 33.55138,7.686387,0 33.47027,7.743339000000001,0 33.33944,7.713612000000001,0 33.16806,7.796393000000001,0 33.05389,7.788888,0 32.99683,7.887221000000001,0 33.03028,7.995248000000001,0 33.18643,8.136979999999999,0 33.16527,8.204715,0 33.20861,8.238049999999999,0 33.15834,8.291392999999999,0 33.16082,8.360001000000001,0 33.20444,8.433890000000002,0 33.2625,8.462502000000001,0 33.38777,8.43777,0 33.50777,8.480834,0 33.57804,8.449443000000001,0 33.62555,8.470556,0 33.69333,8.386389000000001,0 33.77599,8.364941999999999,0 33.85249,8.425836,0 33.97888,8.441387000000002,0 34.1228,8.584649000000001,0 34.13499,8.955270000000001,0 34.08583,9.553058999999999,0 34.23138000000001,10.03027,0 34.32306,10.11721,0 34.34777,10.23195,0 34.28611,10.55416,0 34.43972,10.78445,0 34.59444,10.88779,0 34.77333,10.74584,0 34.77333,10.68694,0 34.80861,10.72945,0 34.86443,10.735,0 34.86861,10.78582,0 34.97527,10.86445,0 34.97861,10.91527,0 34.93333,10.95666,0 35.0075,11.19833,0 34.96388,11.25695,0 35.09361,11.55778,0 35.05806,11.72056,0 35.09693,11.82694,0 35.23555,11.90083,0 35.27111,11.97555,0 35.34555,12.03277,0 35.3811,12.16111,0 35.43249,12.20055,0 35.64916,12.59417,0 35.69528,12.61222,0 35.69944,12.66583,0 36.00638,12.72416,0 36.1427,12.70692,0 36.16528,12.87527,0 36.13278,12.92333,0 36.16972,12.98416,0 36.15944,13.04167,0 36.24860000000001,13.36805,0 36.3975,13.56778,0 36.48693,13.83944,0 36.44639,13.95695,0 36.54282,14.26206,0 36.44329,15.14995,0 36.54277,15.23472,0 36.61054,15.43721,0 36.64777000000001,15.44971,0 36.62611,15.48945,0 36.69777,15.75305,0 36.76361,15.80806,0 36.91584,16.215,0 36.97305,16.26944,0 36.95694,16.42528,0 36.89638,16.51777,0 36.91222,16.64111,0 36.98055,16.70611,0 37.02278,16.85056,0 36.98693,16.94306,0 37.01805,17.00361,0 36.99582,17.07389,0 37.15194,17.01555,0 37.30693000000001,17.06111,0 37.42329,17.03422,0 37.52058,17.1958,0 37.5125,17.32333,0 37.73584,17.37666,0 37.81888,17.48139,0 37.91722,17.4475,0 38.05584,17.55194,0 38.09555,17.54389,0 38.11138,17.48111,0 38.13361,17.5486,0 38.18583,17.56222,0 38.25777,17.5325,0 38.27667,17.60694000000001,0 38.37029,17.66611,0 38.45861,17.87111,0 38.60069,17.99488,0 38.64405,18.06641,0 38.51692,18.23592,0 38.24853,18.39601,0 38.23912000000001,19.32831,0 37.51406,19.32831,0 37.51406,24.19318,0 37.01093,24.97079,0 36.96872,25.39901,0 36.83,25.51963,0 36.54049,25.54376,0 36.47416,25.62217,0 36.49828,26.06245,0 35.71421,27.09985,0 35.26789,27.63060000000001,0 34.88189,27.89598,0 34.6346,27.87186,0 34.49483,27.93732,0 34.48494,27.99542,0 34.5714,28.09056,0 34.62749000000001,28.17388,0 34.65972,28.16445,0 34.64528,28.19361,0 34.80778,28.53639,0 34.78054,28.67083,0 34.84254,28.88452,0 34.85527,29.03861,0 34.96139,29.36083,0 36.07,29.18889,0 36.50055,29.50277000000001,0 36.74361,29.86472,0 37.50277,30.00222000000001,0 37.6675,30.33639,0 38.00139,30.50417,0 37.00527,31.50555,0 39.005,32.00556,0 39.19675,32.15495,0 39.30111,32.23638,0 39.26,32.35555,0 39.04366,32.30405,0 38.98602,32.47767,0 39.08601,32.50151,0 38.7947,33.37759,0 41.00388,34.41944,0 41.22915,34.78832,0 41.21527,35.22471,0 41.27777,35.49554,0 41.38388,35.62527,0 41.37806,35.83861,0 41.25499000000001,36.05499,0 41.29027000000001,36.35555,0 41.40304,36.52555,0 41.83528,36.59888,0 42.37723,37.06467000000001,0 42.35562,37.10693,0 42.58165,37.15277,0 42.72666,37.35555000000001,0 42.79083,37.38472,0 + + + 1 + + + + + +52.49656000000001,84.90001,0 52.49656000000001,82.81507000000001,0 57.49650000000001,82.84008,0 62.49644000000001,82.86508000000001,0 67.49638,82.89008,0 67.53675,82.89028,0 67.53675,81.66452,0 67.53675,77.00954,0 68.50082,76.95638,0 68.47275999999999,76.92554,0 68.80942,76.86638000000002,0 68.75443,76.82222,0 68.93137,76.78276,0 68.89361,76.75749,0 68.90054000000001,76.72776,0 69.03027000000002,76.70802999999999,0 68.85637,76.65665,0 68.78471999999999,76.58778,0 68.92554,76.55888,0 68.57971000000001,76.43304999999999,0 68.40109,76.40609000000001,0 68.43941,76.38972,0 68.33333,76.33582,0 68.16943999999999,76.31805,0 68.31331,76.28333000000001,0 67.53675,76.19176,0 67.53675,73.95477,0 67.53675,71.40988,0 67.08581000000001,71.30387,0 66.91553999999999,71.29276,0 66.83665000000001,71.20972,0 66.78388,71.14221000000001,0 66.62154,71.04885,0 66.54228000000001,70.92879000000001,0 66.61275999999999,70.86773,0 66.68886999999999,70.76054000000001,0 67.10720000000001,70.83526999999999,0 67.22887,70.82555000000001,0 67.33249000000001,70.76888,0 67.33971,70.72499000000001,0 67.20889,70.52666000000001,0 67.29221,70.46998000000001,0 67.25194999999999,70.44832,0 67.26666,70.41110000000001,0 67.19971,70.39027,0 67.08862000000001,70.21623,0 67.07941,70.12733,0 66.99387,70.04886999999999,0 66.87331,70.00109999999999,0 66.76721000000001,69.75722,0 66.79192999999999,69.58028,0 66.93801000000001,69.52226,0 66.95407,69.40528000000001,0 67.16154,69.35935000000001,0 67.25494999999999,69.40298,0 67.37054999999999,69.52164999999999,0 67.38528000000001,69.61859,0 67.61304,69.59166999999999,0 67.78610000000001,69.51666,0 67.96748,69.48415,0 68.03804,69.48888,0 68.00721,69.51860000000001,0 68.10165000000001,69.54665,0 68.10942,69.38889,0 68.02139,69.3436,0 68.04749,69.28137,0 68.47331,68.97248999999999,0 68.78498,68.91081,0 69.02164000000001,68.96416000000001,0 69.03248000000001,68.94193,0 69.22026,68.95722000000001,0 68.94386,68.89803000000001,0 69.10831,68.87248,0 69.09526,68.83333,0 69.00888000000001,68.79998999999999,0 68.89776999999999,68.60748,0 68.56303,68.36942000000001,0 68.57165999999999,68.33778,0 68.64999,68.31219,0 68.56415,68.31052,0 68.43637,68.22499000000001,0 68.28333000000001,68.18498,0 68.27025999999999,68.23915,0 68.18526,68.23609999999999,0 68.20081999999999,68.29471,0 68.26054000000001,68.33472,0 68.15942,68.41137000000001,0 67.78306000000001,68.47749,0 67.70610000000001,68.51054000000001,0 67.80582,68.50082,0 67.77222,68.51776,0 67.32337,68.69279,0 67.27820000000001,68.74968,0 67.38152,68.76640999999999,0 67.39063,68.80437000000001,0 67.12005000000001,68.84113000000001,0 66.55627,68.91167,0 66.52336,68.9671,0 66.2572,69.07253,0 65.79581,69.13697000000001,0 65.38193,69.18471,0 65.04832,69.27332,0 64.91499,69.25471,0 64.94275,69.2047,0 64.83257,69.15213,0 64.51999000000001,69.01776,0 64.51749,68.98248,0 64.58389,68.96082,0 64.52139,68.90776,0 64.54998999999999,68.87053000000002,0 64.74582,68.85526,0 64.75499000000001,68.88527000000001,0 64.80415000000001,68.89194000000001,0 65.08055,68.80888,0 65.20220999999999,68.82331000000001,0 65.34860000000001,68.79192000000001,0 65.32639000000002,68.72499000000001,0 65.40498,68.73276,0 65.42941999999999,68.7,0 65.37831,68.68053999999999,0 65.52361000000001,68.58414999999999,0 65.66165,68.54694000000001,0 65.61443,68.52554000000001,0 65.60609,68.48499,0 65.48054999999999,68.43053999999999,0 65.26775000000001,68.21998000000001,0 65.33333,68.08638000000001,0 65.28498999999999,68.01194,0 65.43471,67.91804999999999,0 65.78055000000001,67.9233,0 65.91081,67.96332,0 66.08611000000001,67.93442,0 66.09248,67.89027,0 66.05443,67.88083,0 66.01805,67.79305000000001,0 66.18388,67.74832000000002,0 66.21053000000001,67.69609,0 66.10526,67.64554,0 65.99275,67.67915000000002,0 65.84054999999999,67.65192999999999,0 65.81805,67.62608,0 65.86832,67.60664,0 65.79165999999999,67.56971,0 66.0397,67.57693,0 66.10664,67.47859,0 65.96138000000001,67.39525999999999,0 65.69054,67.38665,0 65.67249,67.36609,0 65.71887,67.34054999999999,0 65.65886999999999,67.30609,0 65.18248,67.15082,0 65.22136999999999,67.07693,0 65.07055,67.03942000000001,0 65.10554000000001,67.00805000000001,0 65.10138000000001,66.89055000000001,0 64.5761,66.79915,0 64.53999,66.7272,0 64.41277,66.72387000000001,0 64.31247999999999,66.66443,0 63.98277,66.65358999999999,0 63.81554000000001,66.54721000000001,0 63.65888000000001,66.52582,0 63.53722000000001,66.46026999999999,0 63.40915,66.48109,0 63.40860000000001,66.45277,0 63.22332000000001,66.32638,0 63.30416000000001,66.2747,0 63.29056,66.23276,0 63.15388,66.26749,0 63.04694000000001,66.2247,0 62.95917000000002,66.1097,0 62.86166000000001,66.07720999999999,0 62.81750000000001,66.01194,0 62.88833000000002,65.97998,0 62.79777000000001,65.93109,0 62.86111,65.87804,0 62.73193000000001,65.85776,0 62.69388,65.86331,0 62.68193999999999,65.86304,0 62.11306,65.72083000000001,0 61.87027000000001,65.70222,0 61.68694,65.57388,0 61.58222000000001,65.55165,0 61.41555000000002,65.39639,0 61.24917,65.31887999999999,0 61.3336,65.28888000000001,0 61.23944,65.18552,0 61.11166,65.17221000000001,0 60.96277000000001,65.04165999999999,0 60.81194,65.04859999999999,0 60.63138,64.88361,0 60.59638,64.94193,0 60.42972000000001,65.00082,0 60.42749,65.05193,0 60.15804000000001,65.06721,0 59.65416,64.78333000000001,0 59.63805000000001,64.72387000000001,0 59.70249,64.65166000000001,0 59.61361,64.62276,0 59.47970999999999,64.48193000000001,0 59.60470999999999,64.46026999999999,0 59.6361,64.33749,0 59.57943,64.27943000000001,0 59.58805,64.23248,0 59.73388000000001,64.15331999999999,0 59.85972,64.1375,0 59.77055,63.99942999999999,0 59.56583000000001,63.91915,0 59.57249000000002,63.83666,0 59.51389,63.77999000000001,0 59.47776000000001,63.56805,0 59.31722000000001,63.39888000000001,0 59.35222,63.36306,0 59.28249,63.33278,0 59.3386,63.28999000000001,0 59.25889,63.2011,0 59.30277,63.12638,0 59.22221,63.07388,0 59.27665,62.96666,0 59.42471000000001,62.94415,0 59.48721000000001,62.89778,0 59.46083000000002,62.77917000000002,0 59.39138,62.72971,0 59.50972000000001,62.54722,0 59.65055,62.51721,0 59.60889,62.45333000000001,0 59.58472,62.41499,0 59.60028,62.36694,0 59.51527,62.31721000000002,0 59.40444,62.14222000000001,0 59.48555,61.98805,0 59.34137000000001,61.85695000000001,0 59.33915,61.80222,0 59.39694999999999,61.76110000000001,0 59.34887000000001,61.68221000000001,0 59.14333000000001,61.63305,0 59.01082000000001,61.54472,0 58.94054000000001,61.55972,0 58.80972,61.50556,0 57.18,61.51194,0 57.09666,61.48525999999999,0 56.67556,61.52777,0 56.60083,61.50249,0 56.54527,61.42888,0 56.3886,61.43943000000001,0 56.31638000000001,61.32527,0 56.34805,61.29388,0 56.29028000000001,61.20304000000001,0 55.82858,61.25057,0 55.72323,61.08145,0 55.27921000000001,61.12959000000002,0 55.19747,61.0041,0 55.06107,61.01941,0 54.97971,60.86388,0 53.86555,60.98749,0 53.80915000000001,60.84777,0 53.57389,60.86500000000001,0 53.33944000000001,60.89388,0 53.38499000000001,61.03389,0 52.87666,61.09388000000001,0 52.79499,60.94433,0 52.42917000000001,60.98137,0 52.34333,60.835,0 51.88777,60.87666,0 51.77333,60.59693999999999,0 52.15471000000001,60.54555000000001,0 52.12499,60.47027000000001,0 52.34304000000001,60.44638,0 52.34777,60.37330999999999,0 52.29815,60.24171,0 52.08278,60.31694000000002,0 52.0089,60.30360000000002,0 51.89999,60.24444,0 51.8,60.11083,0 51.53221000000001,59.94721,0 51.41332000000001,59.94165,0 51.34388,60.01833,0 51.07110999999999,60.06166000000001,0 50.82861000000001,59.86277000000001,0 50.40331000000001,59.84444,0 50.27887,59.80693000000002,0 50.2375,59.75277,0 49.99665,59.77887000000001,0 49.95193,59.74722000000001,0 50.05638,59.6875,0 49.85361,59.66361,0 49.83278,59.63693,0 49.78722000000001,59.50054999999999,0 49.82888000000001,59.48110000000001,0 49.79554,59.38388,0 49.82416,59.37054,0 49.79554,59.22221,0 49.59333,59.21776,0 49.50861,59.24610000000001,0 49.545,59.39305000000001,0 49.34194,59.41915000000001,0 49.3086,59.46694,0 49.14778,59.50889,0 49.03416,59.48444,0 49.08554,59.65554,0 48.50999,59.70388,0 48.45917000000001,60.19415,0 48.70499,60.30471,0 48.76305,60.365,0 48.67582000000001,60.40638000000001,0 48.54137999999999,60.41109,0 48.61777000000001,60.43333000000001,0 48.50416000000001,60.48276,0 48.51111000000001,60.51194,0 48.48110000000001,60.52499,0 48.53999,60.55915,0 48.53917,60.59999000000001,0 48.41924,60.85386000000001,0 47.9875,60.88665000000001,0 47.95999,61.00972,0 47.88139,60.99833,0 47.59415,61.05888,0 47.22833000000001,61.06444,0 47.19720000000002,61.05999,0 47.19138,60.99611000000002,0 47.10749,60.96194000000001,0 47.08027000000001,60.86221,0 47.04314000000001,60.85386000000001,0 47.08721000000001,60.82027,0 46.95277,60.65527,0 47.02388000000001,60.64695,0 47.01749,60.60249000000001,0 47.06166,60.57667000000001,0 46.85666,60.51527,0 46.87805,60.48166000000001,0 46.80444,60.38750000000001,0 46.83193000000001,60.37972,0 46.81305,60.32277,0 46.74499,60.25639000000001,0 46.43083000000001,60.27388,0 46.295,60.24249,0 46.35305,60.20972,0 46.36416000000001,60.1211,0 46.60609,60.06527,0 46.83138,60.07306000000001,0 46.89638,60.12583000000001,0 47.03694000000001,60.11832,0 46.92083000000001,59.84665,0 46.92305000000001,59.78444,0 47.12305,59.76139000000001,0 47.14305,59.71333,0 47.11351,59.61137999999999,0 47.05638,59.37860000000001,0 47.25249,59.35555,0 47.22332,59.2261,0 47.39443,59.14722,0 47.445,59.1675,0 47.45139,59.12694000000001,0 47.57639,59.06028,0 47.55082,58.9886,0 47.61166,58.91499,0 47.46777000000001,58.88416,0 47.45305000000001,58.92249,0 47.30721,58.91666,0 47.28111000000001,58.90222000000001,0 47.30388,58.85722,0 47.28028,58.81945,0 47.325,58.80082,0 47.265,58.75416,0 47.11333,58.77249,0 47.00417000000001,58.69583,0 47.0061,58.62249,0 46.58416,58.55804000000001,0 46.59026999999999,58.51832000000001,0 46.54972000000001,58.47665,0 46.59166000000001,58.43194,0 46.41137,58.36388,0 46.48109,58.33222,0 46.41026999999999,58.30805,0 46.41499000000001,58.21054000000001,0 46.35527,58.18721,0 46.30972000000001,58.11054,0 46.34132,58.07474,0 46.44972,58.01749,0 46.52304000000001,58.03889,0 47.38666,58.02332000000001,0 47.45610000000001,57.98555000000001,0 47.70083,57.96361,0 47.77027,57.90028,0 47.5611,57.80249,0 47.55082,57.765,0 47.58027000000001,57.74638,0 47.52859,57.70304,0 47.54888,57.66361,0 47.52638000000001,57.58416,0 47.48666,57.58472,0 47.4711,57.52859999999999,0 47.25027,57.57083,0 47.03082,57.49304,0 46.74443,57.52333,0 46.79722000000001,57.45666,0 46.70471000000001,57.42555000000001,0 46.68970000000001,57.39083,0 46.75388,57.37999,0 46.67611000000001,57.35,0 46.72055,57.29445,0 46.78972,57.28944,0 46.80888,57.23583,0 46.85194000000001,57.23444000000001,0 46.83443000000001,57.19971,0 46.72638000000001,57.20000000000001,0 46.76528,57.14388,0 46.76806,57.02971,0 46.70805,57.0164,0 46.75388,56.97417,0 46.71510000000001,56.96634000000001,0 46.74471,56.95471,0 46.71583,56.93721,0 46.94471,56.94833000000001,0 47.13277,56.91693000000001,0 47.18194,56.84805,0 47.12277,56.83749,0 47.17083000000001,56.80860000000001,0 47.42444,56.88082,0 47.50249,56.85139,0 47.51139,56.90666,0 47.61721,56.9761,0 47.68916,57.01250000000001,0 47.76971000000001,57.00972000000001,0 47.7336,57.05527000000001,0 47.785,57.05721,0 47.83083000000001,57.00416000000001,0 47.91666,56.97665000000001,0 47.93111,57.00944,0 47.97193,56.97387000000001,0 47.98694,57.01444999999999,0 48.13916,56.99833,0 48.2086,57.02722,0 48.16304,57.07972000000002,0 48.24888000000001,57.10666000000001,0 48.19222000000001,57.12471,0 48.30777000000001,57.16860000000001,0 48.4511,57.12054,0 48.56945,57.17249000000001,0 48.83555,57.16444,0 48.86639,57.12249,0 48.84583,57.0886,0 48.95471,57.08554,0 48.99804,57.11888,0 49.01194,57.19332,0 49.04610000000001,57.2011,0 49.00639000000001,57.23332000000001,0 49.01611,57.28305,0 49.18333000000001,57.33139,0 49.22805,57.28889,0 49.14361,57.15972,0 49.23138000000001,57.1311,0 49.26832,57.04361,0 49.41915,57.02194,0 49.41249000000001,57.05305000000001,0 49.71194,57.07361000000001,0 49.72499,56.99110000000001,0 49.76194,56.96500000000001,0 49.71582999999999,56.93361,0 49.75722,56.91415000000001,0 49.73443,56.89667000000001,0 50.01445,56.86721000000001,0 50.07082000000001,56.83082,0 50.0611,56.79361,0 50.10167000000001,56.79416,0 50.07221000000001,56.62266,0 50.16194000000001,56.615,0 50.22138000000001,56.66082,0 50.29834,56.63999,0 50.32306,56.65444,0 50.30304,56.67638,0 50.34777,56.67361,0 50.41361000000001,56.62804,0 50.42333,56.58526,0 50.49333,56.61639,0 50.45,56.54472,0 50.56971000000001,56.40250000000001,0 50.63110000000001,56.40526,0 50.58638,56.35443,0 50.73304,56.32999000000002,0 50.78527,56.35638,0 50.7625,56.39944,0 50.785,56.41555,0 50.85139000000001,56.39027000000001,0 50.87389,56.32666,0 50.90693,56.31583,0 50.90165,56.27944000000002,0 50.86111,56.27804,0 50.83942,56.2411,0 51.07639,56.12498999999999,0 51.1075,56.15139000000001,0 51.20499,56.13943,0 51.22304000000001,56.09916,0 51.3147,56.06972,0 51.36194,56.13054000000001,0 51.43667,56.14444000000001,0 51.6536,56.13444000000001,0 51.48999000000001,56.07888000000001,0 51.39721,55.9922,0 51.43027000000001,55.92722,0 51.64277,55.96054,0 51.68943,55.93278,0 51.72971,55.95971,0 51.78889,55.88388000000001,0 51.96083,55.97915,0 52.03749000000001,55.95916,0 52.05638,55.895,0 52.16916000000001,55.89306,0 52.25166,55.95805000000001,0 52.20417,56.00443000000001,0 52.2461,56.06694,0 52.18693,56.05527,0 52.20471000000001,56.08416,0 52.43665,56.02833,0 52.48471,56.03694000000002,0 52.44666,56.06361,0 52.46776,56.07749,0 52.66221,56.01554,0 52.72887,56.06471000000001,0 52.70054,56.14138000000001,0 52.83694000000001,56.09222000000001,0 52.85443,56.12666,0 52.81055,56.13388000000001,0 52.84554,56.15721,0 52.80582,56.18194,0 52.81694,56.20249,0 52.57583,56.22748000000001,0 52.55833,56.2625,0 52.63638,56.28638,0 52.74055,56.37471000000001,0 52.72277,56.39138,0 52.82665999999999,56.38888000000002,0 52.95278,56.44165000000002,0 52.95165999999999,56.46916,0 52.82555,56.52193,0 52.91778000000001,56.50111,0 52.94444,56.54472,0 53.09528,56.52694000000001,0 52.9386,56.36694,0 52.98054,56.3475,0 52.94138,56.30639,0 52.98221,56.28082,0 52.95610000000001,56.25166,0 53.00305,56.22165,0 52.99416,56.18833,0 53.04193,56.20805000000001,0 53.06888,56.18249,0 53.04749,56.13528,0 53.14666,56.16220000000001,0 53.26111,56.08554,0 53.34499,56.08471,0 53.34249,56.14749,0 53.2589,56.25471000000001,0 53.41666,56.27833,0 53.55610000000001,56.24388,0 53.54499,56.14083000000001,0 53.47470000000001,56.12110000000001,0 53.37888,55.98972,0 53.28694999999999,55.93555,0 53.1825,55.92389000000001,0 53.29725,55.85252,0 53.63842,55.91552,0 53.99722,55.85082,0 53.97027,55.78249000000002,0 54.03820000000001,55.80095000000001,0 54.0261,55.75666,0 54.09528000000001,55.77592,0 54.24194000000001,55.69137000000001,0 54.17833,55.62276000000001,0 53.99638000000001,55.54972000000002,0 53.99694,55.50027,0 53.93333000000001,55.4586,0 53.89833000000002,55.38166,0 53.70916,55.3336,0 53.59999,55.26027,0 53.58611000000001,55.20776999999999,0 53.39944000000001,55.22110000000001,0 53.33805000000001,55.19499,0 53.33443,55.16249000000001,0 53.13888000000001,55.14388,0 53.14138000000001,55.09389,0 53.26834,55.05331,0 53.26694000000001,55.01028000000001,0 53.40639000000001,54.99722,0 53.51412,54.88120000000001,0 53.64249000000002,54.90139,0 53.57695,54.81499,0 53.60777,54.81249,0 53.57888,54.74888,0 53.6086,54.71138,0 53.41055,54.55750000000001,0 53.42194,54.48666000000001,0 53.34444,54.38694000000001,0 53.36138,54.32888,0 53.43444,54.26915,0 53.41305,54.22222,0 53.47020000000001,54.0452,0 53.41082,54.02694,0 53.37194,53.96749,0 53.285,54.02750000000001,0 53.27221999999999,54.06999,0 53.19444,54.09832,0 53.06054,54.06999,0 53.09137,54.12054,0 53.03361000000001,54.12749000000001,0 52.93694,54.2136,0 53.11582,54.24944000000001,0 53.04749,54.34167000000002,0 53.0014,54.31249,0 53.02944000000001,54.28944,0 53.01361,54.26805,0 52.92916,54.26805,0 52.88166,54.27777,0 52.93249,54.28804000000001,0 52.92304,54.31388,0 52.68775999999999,54.36111,0 52.62194,54.3411,0 52.53745,54.37707,0 52.49416,54.39999,0 52.50306000000001,54.45193,0 52.43943,54.47887,0 52.37915,54.41444,0 52.35054,54.42333,0 52.36388,54.45916,0 52.20972,54.44304,0 52.2,54.40639,0 52.105,54.40054000000001,0 52.12028000000001,54.35111,0 52.08526000000001,54.33942,0 52.01999,54.43665,0 51.93277,54.43638,0 51.92722000000001,54.53611,0 51.67972,54.56166000000001,0 51.52333,54.64638,0 51.49388,54.59527,0 51.39388,54.59304000000001,0 51.39554,54.67722000000001,0 51.28139000000002,54.63694,0 51.18111,54.64638,0 51.09361,54.54861,0 51.00972000000001,54.55165,0 50.99277,54.49916000000001,0 51.01721,54.47916,0 50.93610000000001,54.33999,0 50.70305000000001,54.42833,0 50.5186,54.32639000000001,0 50.47165,54.42333,0 50.42944,54.42749000000001,0 50.38889,54.48888000000001,0 50.27665,54.44054,0 50.22527,54.50361000000001,0 50.07688,54.51667000000001,0 50.12555,54.48194,0 50.11721,54.43027000000001,0 50.21111000000001,54.42167,0 50.19944,54.38416,0 50.26222,54.28944,0 50.20304000000002,54.14027,0 50.22554,54.07916,0 50.19749,54.03722,0 49.97443,53.96138,0 49.95361,53.90527,0 50.05305,53.86860000000001,0 50.03778000000001,53.82527000000001,0 49.85722000000001,53.8336,0 49.83805,53.89083000000001,0 49.61805,53.81139,0 49.60916000000001,53.855,0 49.42249000000001,53.87082000000001,0 49.34304000000001,53.87,0 49.31694,53.83333,0 49.03694,53.85944,0 48.86333000000001,53.71277,0 48.47222,53.77083,0 48.51305,53.69638000000001,0 48.60333,53.66945,0 48.4461,53.6661,0 48.42695,53.62915000000002,0 48.35638,53.6711,0 48.31416000000001,53.65583000000002,0 48.355,53.60167000000001,0 48.44083000000001,53.58138000000001,0 48.37666000000001,53.54277,0 48.37833000000001,53.47137,0 48.23611,53.45888999999999,0 48.2225,53.42443,0 48.16638,53.48249,0 48.04853,53.47771,0 48.00360000000001,53.40666,0 47.94194,53.37583,0 48.09332,53.26194,0 48.13138000000001,53.16888,0 48.21221,53.14582999999999,0 48.14472000000001,53.05916,0 48.2236,52.99722,0 48.26944000000001,53.05777,0 48.36888,53.06638,0 48.31833,52.98555,0 48.51057,52.97799,0 48.57805,52.93554,0 48.58694,52.8686,0 48.43007000000001,52.78054,0 48.28889,52.81082,0 48.10944,52.80138,0 47.98499,52.74722,0 48.08749,52.73193,0 48.07861000000001,52.70555,0 47.92527,52.6661,0 47.90027,52.72221,0 47.85971,52.73166,0 47.77304,52.67972000000001,0 47.78111000000001,52.62915,0 47.72470000000001,52.57916,0 47.55638,52.61833,0 47.43831999999999,52.56722,0 47.20610000000001,52.56666,0 47.1536,52.60999,0 47.0686,52.56638,0 46.9461,52.63832000000001,0 46.83077,52.6164,0 46.61694000000001,52.66109,0 46.61388000000002,52.72748,0 46.58027,52.73249,0 46.39999,52.67249,0 46.29834,52.68055,0 46.2761,52.61805,0 46.15331,52.60194000000001,0 46.14582,52.54972000000001,0 46.08749,52.56388,0 46.06444,52.52693000000001,0 45.97137000000001,52.49583,0 46.01639000000001,52.45776999999999,0 45.97526000000001,52.4361,0 45.98082000000001,52.40721000000001,0 45.71805,52.45889,0 45.73554000000001,52.52583,0 45.64111000000001,52.52028,0 45.52693,52.48166,0 45.51639000000001,52.43444,0 45.44194,52.40055,0 45.11139,52.41109,0 45.06916,52.37778000000001,0 45.10139000000001,52.33332000000001,0 45.05054000000001,52.31721,0 44.97332,52.37332,0 44.90554,52.37665000000001,0 44.86749,52.44666,0 44.66489,52.47935,0 44.54805,52.55249,0 44.49361,52.52665,0 44.53943,52.48638,0 44.51445,52.45916,0 44.54361,52.42944,0 44.41082,52.41305000000001,0 44.38916,52.36833000000001,0 44.33332,52.34805000000001,0 44.34638,52.3161,0 44.05526,52.34610000000001,0 43.77749,52.43472,0 43.34055,52.39111,0 43.3086,52.44555,0 43.19027,52.46666000000001,0 43.12276,52.40192,0 43.0798,52.40288,0 43.00916000000001,52.36388,0 42.92527,52.37500000000001,0 42.92221,52.30526,0 42.75333,52.18581,0 42.74749,52.08027,0 42.8111,52.01027,0 42.70305,51.98194,0 42.67638,51.83972,0 42.48666000000001,51.69305,0 42.51471,51.62388,0 42.48951,51.60789,0 42.86166,51.38166,0 42.83942,51.31666000000001,0 42.91221,51.24083,0 42.87309,51.23142,0 42.68444,51.23693000000001,0 42.56722,51.16526000000001,0 42.41888,51.17222,0 42.2672,51.13166,0 42.09888,51.14750000000001,0 41.96333,51.2086,0 41.8686,51.19388000000001,0 41.7286,51.01721,0 41.41193,50.90359,0 41.37777000000001,50.87666000000001,0 41.38277,50.83027,0 41.15639,50.77638,0 41.32777,50.71916,0 41.40749,50.61944,0 41.52833,50.60166,0 41.52416,50.56860000000001,0 41.45471,50.55138,0 41.4175,50.50527,0 41.5125,50.3811,0 41.36221,50.22629,0 41.4822,50.09027,0 41.5911,50.05525999999999,0 41.58277,50.005,0 41.61361000000001,49.96361,0 41.8661,49.90777000000001,0 42.17749,49.69083,0 42.11277,49.52583,0 42.0736,49.51056,0 42.04972,49.40499000000001,0 42.09693,49.29222,0 42.03194,49.26639999999999,0 42.07694,49.19971,0 42.06443,49.15388,0 42.34443,49.15249,0 42.39277,49.04972,0 42.48388,49.04472,0 42.66361,48.96777,0 42.66249,48.8886,0 42.74610000000001,48.80638,0 42.65027,48.70527,0 42.70166,48.61805,0 42.63054,48.54694,0 42.27665,48.49860000000001,0 42.07249,48.40889,0 42.15193,48.28221,0 42.04499,48.25916000000001,0 42.10278,48.16389000000002,0 42.05111,48.12972,0 42.02193,48.03027,0 42.27555,48.01305000000001,0 42.32638,48.04777,0 42.4986,48.01056,0 42.7286,47.85556,0 42.93971,47.51361,0 42.98776,47.51388000000001,0 43.05915,47.57639,0 43.13554000000001,47.57556,0 43.15998,47.48249,0 43.22499,47.44972,0 43.55833000000001,47.48972,0 43.65331,47.44222,0 43.73177,47.47655000000001,0 43.62944,47.55916,0 43.70583,47.68444,0 43.84138,47.7575,0 43.97499,47.76639,0 44.04443,47.82415,0 44.01582,47.86388,0 44.06582000000001,47.9108,0 44.38915,47.86832,0 44.3861,47.91415,0 44.46776,47.9786,0 44.46637,48.04084000000001,0 44.32305,48.05999000000001,0 44.30944,48.25999000000001,0 44.53582,48.20638000000002,0 44.54971,48.05833,0 44.61221,48.05665,0 44.64415000000001,48.09166,0 44.80053,48.05249000000001,0 44.94221,48.14388000000002,0 44.92471,48.19916000000001,0 44.95666,48.21194,0 45.12749000000001,48.11306,0 45.30082000000001,48.09768,0 45.39499,48.09833,0 45.55193000000001,47.99193,0 45.7136,48.03750000000002,0 45.74166,48.00222,0 45.70664000000001,47.93193000000001,0 45.71970000000001,47.86528,0 45.78556,47.81305,0 45.82916,47.72304,0 45.90720000000001,47.7122,0 45.93804,47.62887,0 46.08887000000001,47.51692,0 46.29666000000001,47.43664,0 46.3886,47.44443,0 46.68081,47.63248,0 46.83055,47.5761,0 46.52387000000001,47.43499,0 46.51554,47.39193000000001,0 46.79639,46.99638,0 46.92777,46.97832,0 46.99082,46.85082,0 47.12721,46.85833000000001,0 47.22776,46.74081,0 47.14026,46.69638,0 47.1497,46.66832,0 46.99805,46.63361,0 46.91332,46.55526,0 46.94916,46.53943000000001,0 46.96194,46.4286,0 46.66027,46.42804,0 46.47833,46.27555,0 46.86665,46.24805000000001,0 46.8336,46.07277,0 47.09082000000002,46.1186,0 47.175,46.10556,0 47.10915,46.00777,0 47.0411,45.96970000000001,0 46.89304000000001,45.57472000000001,0 47.29361000000001,45.6436,0 47.35971,45.68942,0 47.46748,45.63943,0 47.48619,45.57145,0 47.54332,45.50527000000001,0 47.50166,45.47998,0 47.48611,45.41860000000001,0 47.37803,45.41137000000001,0 47.46277000000001,45.38081,0 47.38554000000001,45.29527,0 47.3761,45.18193000000001,0 47.29193,45.18082,0 47.19915000000001,44.96859,0 47.14861,44.92694,0 47.09722000000001,44.94971,0 47.11666,44.86221,0 47.07555,44.78277,0 46.99165,44.92192000000001,0 47.00944,44.82111,0 46.95943,44.76389,0 46.71249,44.64777,0 46.72444,44.54472,0 46.67971,44.52304,0 46.7,44.44276,0 46.76027,44.39192,0 47.01222,44.36083,0 47.09248,44.24027,0 47.1586,44.20054,0 47.20554,44.21859,0 47.47952,44.4864,0 47.5322,44.50008,0 47.80731,43.98692,0 47.69832000000001,43.86887000000001,0 47.58498,43.72221,0 47.48721,43.45638,0 47.48832,43.29361000000001,0 47.57249000000001,43.33054,0 47.58833000000001,43.29695,0 47.48333000000002,43.20777,0 47.46221,43.01915,0 47.69694000000001,42.86638,0 47.73832,42.63388,0 47.85942,42.59389,0 47.94498,42.46249,0 48.11776,42.32638,0 48.3036,42.09748,0 48.38665,41.92638,0 48.54472,41.88028,0 48.58395000000001,41.83577,0 48.47137000000001,41.72359000000001,0 48.3997,41.58914,0 48.23137000000001,41.50249,0 48.07444000000001,41.46776,0 48.02276,41.36193,0 47.96249,41.35943,0 47.90831000000001,41.29084,0 47.91999,41.22637,0 47.76693,41.19609000000001,0 47.65972000000001,41.23554,0 47.57166,41.2111,0 47.52193,41.25416,0 47.28555000000001,41.31219,0 47.25888000000001,41.42471,0 47.16054,41.5611,0 47.04305000000001,41.55833,0 46.92554,41.71776,0 46.77081,41.79666,0 46.76081,41.86388,0 46.59166000000001,41.79221,0 46.56667000000001,41.80777,0 46.56833,41.88248,0 46.45176000000001,41.89705,0 46.39415,41.94054,0 46.31998,41.93888,0 46.23998,42.00139,0 46.10389,41.99415,0 46.07805,42.03416,0 46.01082,42.04305,0 45.96053,42.02387,0 45.91028,42.105,0 45.64748,42.20471,0 45.76028,42.47791,0 45.55277,42.55026,0 45.35167,42.52943,0 45.17137000000001,42.70083,0 45.05304,42.69415,0 44.92749,42.76193,0 44.855,42.74331,0 44.80388000000001,42.6172,0 44.68443,42.73943000000001,0 44.54972,42.75944000000001,0 44.28665,42.71278,0 44.22082000000001,42.63693,0 44.0536,42.61804,0 43.9611,42.55778,0 43.73555,42.63916,0 43.8361,42.72776,0 43.82721,42.7514,0 43.67083,42.7911,0 43.56055,42.86082,0 43.20083,42.93637,0 43.01082,43.05666,0 43.0211,43.10444,0 42.85722000000001,43.17748,0 42.7011,43.1825,0 42.62583,43.14305,0 42.41526,43.23916,0 42.18111,43.23555,0 42.05777,43.18610000000001,0 41.93971,43.21749,0 41.58971,43.22275,0 41.39332,43.3461,0 41.29554,43.33610000000001,0 41.16805,43.38722,0 41.04416000000001,43.37498000000001,0 40.68471,43.54583,0 40.54306,43.50861,0 40.25339,43.58252,0 40.12665,43.57222,0 40.0775,43.54694,0 40.00297,43.37926,0 40.22471,43.31443,0 40.32638,43.14192,0 40.38472,43.16555,0 40.58665,43.0825,0 40.8436,43.06777,0 40.93277,42.97222,0 41.03276000000001,42.97304,0 41.15583,42.78917,0 41.22082,42.79861,0 41.46137,42.70804,0 41.55331,42.38581000000001,0 41.63277,42.27194,0 41.66166,42.12109,0 41.7625,41.99221,0 41.77472,41.88563,0 41.73026000000001,41.72555,0 41.53155,41.52388,0 41.3875,41.37304000000001,0 40.93111,41.18748,0 40.83305,41.19498,0 40.54332,41.02916,0 40.45804,41.0425,0 40.12859,40.91639,0 39.99776,40.97582,0 39.87721,40.95389,0 39.73333,41.01388000000001,0 39.64611,41.00166,0 39.4211,41.10944,0 39.2786,41.04972,0 39.16304,41.0825,0 38.81611,41.00999,0 38.70999,40.95,0 38.62554,40.97305,0 38.5236,40.92083,0 38.36139,40.90943000000001,0 38.2775,40.95056,0 37.89249,40.98277,0 37.79361000000001,41.04554,0 37.78944,41.11555,0 37.70638,41.11222,0 37.68748,41.13722,0 37.60777,41.04777,0 37.53721,41.02805,0 37.29499,41.14389,0 37.15228,41.14491,0 37.04332,41.17555000000001,0 37.02333,41.26749,0 36.85693,41.34721,0 36.61834,41.37498,0 36.5541,41.28566,0 36.53862,44.90856,0 36.54507,45.17941,0 36.67405,45.41802,0 37.64138,46.73358000000001,0 38.23582,47.10943,0 38.2161,47.19471,0 38.31916,47.27833,0 38.20804,47.31916,0 38.28555,47.3961,0 38.28083,47.5061,0 38.33942,47.60139000000001,0 38.60582,47.63803,0 38.69137,47.69415000000002,0 38.75055,47.68387000000001,0 38.83832,47.85278000000001,0 39.03817,47.8658,0 39.13638,47.83388999999999,0 39.34526,47.85304,0 39.72388,47.81833,0 39.79639,47.85722,0 39.81998,47.9697,0 39.77609,48.02639000000001,0 39.86859,48.04084000000001,0 39.84832,48.11306,0 39.93277,48.21332,0 40.00249,48.24304000000001,0 40.0125,48.28472,0 39.91277,48.27777,0 39.83805,48.3125,0 39.92152,48.36839,0 39.83833,48.48388000000001,0 39.86694,48.50027000000001,0 39.85333,48.55471000000001,0 39.66966,48.58764000000002,0 39.65693,48.61667,0 39.72721,48.76221,0 39.80389,48.81777000000001,0 39.98526,48.79139,0 40.07667,48.87500000000001,0 40.03027,48.8961,0 39.97055,48.85999000000001,0 39.76721,48.90388,0 39.69444,48.97305,0 39.69915,49.02277,0 39.93888,49.05499,0 39.96638,49.12388,0 40.16694,49.2486,0 40.17972000000001,49.32695,0 40.05305,49.47833000000001,0 40.07444,49.52694,0 40.14111,49.55916,0 40.13977,49.60105000000001,0 40.005,49.61444000000001,0 39.92167,49.56555,0 39.79695000000001,49.55305,0 39.63972,49.61555,0 39.58083,49.73082,0 39.27361,49.75194,0 39.18373,49.88041,0 39.06916,49.81777,0 38.94526,49.8075,0 38.88916,49.86805,0 38.69609,49.92749,0 38.68665,49.97887,0 38.49889,49.95193,0 38.3761,49.98749,0 38.30777,50.07388,0 38.18415,50.06554000000001,0 38.18526,49.9511,0 38.01306,49.90138000000001,0 37.92527,50.02471,0 37.73304,50.08777000000001,0 37.60527,50.21666,0 37.62360000000001,50.30527,0 37.49444,50.35139000000001,0 37.4586,50.43971000000001,0 37.31583,50.42804,0 37.13054,50.34833,0 36.88444,50.33583000000001,0 36.7011,50.26693000000001,0 36.64028,50.21249000000001,0 36.56249,50.22249,0 36.56333000000001,50.27639,0 36.41276,50.32166,0 36.29749,50.28444,0 36.13917,50.42527,0 35.85028,50.4286,0 35.73915,50.38333,0 35.72887,50.35332,0 35.64471,50.35416,0 35.58305,50.38305,0 35.5672,50.45306,0 35.44106,50.51198,0 35.39355,50.63808,0 35.48857,50.67585,0 35.45829,50.69417,0 35.45663,50.77279,0 35.39773,50.80308,0 35.3605,50.87226,0 35.36133,50.92614,0 35.30577000000001,50.96033,0 35.29716000000001,50.99979,0 35.35855,51.01088000000001,0 35.37189,51.04144,0 35.17076,51.0548,0 35.11852,51.20481,0 35.07381,51.22149,0 34.73499,51.17249,0 34.66999,51.17944,0 34.63361,51.24222,0 34.38221,51.26361000000001,0 34.30526,51.23082000000001,0 34.20892,51.25919,0 34.27388,51.28555,0 34.31499,51.35111,0 34.20361,51.40666,0 34.23916,51.42777000000001,0 34.23417,51.54666,0 34.15972,51.6286,0 34.10111,51.64749,0 34.10277,51.67443,0 34.40554,51.7186,0 34.44054,51.76721,0 34.38082,51.84499,0 34.25777,51.87944000000001,0 34.16945,51.95999,0 34.10943,51.95972,0 34.12804,51.98972000000001,0 34.07306,52.06028000000001,0 34.09778,52.15194,0 33.83056,52.36472000000001,0 33.69638,52.36166999999999,0 33.53528,52.29333000000001,0 33.49778,52.36666000000002,0 33.44887,52.34361,0 33.20471,52.37972,0 32.92361,52.24722,0 32.39415,52.33526,0 32.35833,52.30999,0 32.38638,52.25472,0 32.34055000000001,52.22137,0 32.33554,52.1572,0 32.22499,52.07944,0 32.12444,52.04388000000001,0 31.92638,52.03667,0 31.89777,52.09610000000001,0 31.78388,52.10805000000001,0 31.7825,52.16582,0 31.70389,52.1986,0 31.71694,52.26167000000001,0 31.58666,52.31888,0 31.62972,52.37054,0 31.60166,52.40610000000001,0 31.60889,52.49138,0 31.56472000000001,52.51583,0 31.59527,52.53221,0 31.58167,52.55083,0 31.65332,52.55305,0 31.5,52.68999,0 31.595,52.73804,0 31.58083,52.80304,0 31.53695,52.8561,0 31.41527,52.89305,0 31.35638,52.97805000000001,0 31.2664,53.02193,0 31.38638,53.09916,0 31.37483,53.12193000000001,0 31.4225,53.20888000000001,0 31.61611,53.21832,0 31.77555,53.19415000000002,0 31.80111,53.12583,0 31.93054,53.09554,0 32.22332,53.10555,0 32.22554,53.13333,0 32.29889,53.13193,0 32.43999,53.20888000000001,0 32.49833,53.27832,0 32.46249,53.30832,0 32.73693,53.34249,0 32.7411,53.46305000000001,0 32.66082,53.46666,0 32.67054,53.49722,0 32.5975,53.4911,0 32.44389,53.57194000000001,0 32.41471,53.64638,0 32.51056,53.68361,0 32.45166,53.72638,0 32.37694,53.71888,0 32.32944,53.76222000000001,0 32.11971,53.81999,0 31.90222,53.77777,0 31.76423000000001,53.80262,0 31.86083,53.96333,0 31.84416,54.06444000000001,0 31.79333,54.05305000000001,0 31.76167,54.10333,0 31.54416,54.14333,0 31.33166,54.2375,0 31.31167,54.35083,0 31.23194,54.45665,0 31.1986,54.46093000000001,0 31.0825,54.50556,0 31.18443,54.60609,0 31.18527,54.64222,0 31.02472,54.65222,0 31.005,54.71167,0 30.78,54.79694000000001,0 30.845,54.8811,0 30.83388,54.94415,0 30.94749,54.96915,0 30.92499,55.03333,0 31.02971,55.04332,0 30.98722,55.11166000000002,0 31.00472,55.14332,0 30.81361,55.29333000000001,0 30.93943,55.39944000000001,0 30.90055,55.45915999999999,0 30.93999,55.49583,0 30.91888,55.60833000000001,0 30.75666,55.59665,0 30.72694,55.65639,0 30.60889,55.68138,0 30.61249,55.72027,0 30.49416,55.76388000000001,0 30.48971,55.79999,0 30.22611,55.8661,0 30.14055,55.82804000000002,0 29.92833,55.85167000000001,0 29.82306,55.77528,0 29.71916,55.78249000000002,0 29.49388,55.68888,0 29.35916,55.78943,0 29.40693,55.89582999999999,0 29.46443,55.91109,0 29.41222,55.95777,0 29.05943,56.03278,0 28.86944,55.98055,0 28.84694,55.94249000000001,0 28.75416,55.95388000000001,0 28.64611,56.09361000000001,0 28.3875,56.0961,0 28.3125,56.04999,0 28.16801,56.15015,0 28.23777,56.2711,0 28.18444,56.37471000000001,0 28.18972,56.44055,0 28.11306,56.50555000000001,0 28.1525,56.55443000000001,0 28.03639,56.59054,0 28.005,56.69137,0 27.8861,56.74722,0 27.93527,56.82721,0 27.81555,56.87833000000001,0 27.64,56.84805,0 27.7775,57.06582,0 27.70138,57.11916000000001,0 27.84082,57.16361,0 27.86111,57.30222000000001,0 27.52722,57.4386,0 27.54722,57.53638000000001,0 27.37205,57.53564,0 27.34806,57.59554000000001,0 27.40583000000001,57.61361000000001,0 27.41306,57.69055,0 27.52666,57.72276,0 27.51639,57.77333,0 27.57277,57.80277000000002,0 27.54583,57.81777,0 27.75306000000001,57.83916,0 27.82306,57.87388,0 27.68388,57.92638,0 27.69722,58.00082,0 27.64222,58.02083,0 27.67721,58.07417000000002,0 27.55417,58.13276000000001,0 27.47416,58.21388000000001,0 27.46471,58.29777,0 27.53916,58.36166,0 27.5425,58.41389,0 27.42611,58.81361,0 27.4936,58.88193,0 27.72499,58.98777,0 27.91254,59.27182,0 28.17035,59.30978,0 28.19389,59.37582,0 28.01583000000001,59.4786,0 27.80783,60.5464,0 28.38888,60.88667000000002,0 28.52916000000001,60.95499,0 28.63888,60.96611,0 28.81277,61.10334,0 29.21361,61.25332,0 29.48639,61.42611000000002,0 29.52555,61.48277,0 29.80916,61.60833,0 29.83222,61.65305000000002,0 29.99138,61.72943,0 30.64972,62.195,0 30.94777,62.31138000000001,0 31.25972000000001,62.50777000000002,0 31.4675,62.80639,0 31.58893,62.91440999999999,0 31.515,62.98693,0 31.28222,63.10917,0 31.21972,63.22306,0 30.9625,63.30972000000001,0 30.79639,63.40194,0 30.48166000000001,63.47861,0 29.99671,63.74802,0 30.25584,63.81778,0 30.345,63.90972000000001,0 30.59528,64.04694000000001,0 30.61444,64.08665000000001,0 30.54805,64.17471000000001,0 30.57722,64.21581999999999,0 30.56084,64.24442999999999,0 30.45416000000001,64.25694,0 30.38972,64.30943000000001,0 30.15611000000001,64.35415999999999,0 30.05222,64.40470999999999,0 30.08722,64.48305000000001,0 30.00967,64.51286,0 29.97500000000001,64.58110000000001,0 30.19917,64.65028,0 30.19713000000001,64.68622000000001,0 30.12055000000001,64.73054999999999,0 30.14083,64.77415000000001,0 29.80471,64.79389000000001,0 29.63667,64.92805,0 29.60666,65.00166,0 29.62889,65.06305,0 29.87388,65.12082,0 29.82333,65.14888999999999,0 29.87028,65.18747999999999,0 29.85361,65.21612,0 29.59638,65.24887,0 29.7475,65.34193000000001,0 29.74611,65.51443,0 29.85971,65.56610000000001,0 29.72194,65.63805000000001,0 30.02444,65.69110000000001,0 30.12388,65.66499,0 30.13528000000001,65.70359999999999,0 30.09667,65.83333,0 29.97695,65.9811,0 29.91028,66.12694000000001,0 29.63861,66.32249,0 29.56792,66.42856999999999,0 29.54833,66.49554000000001,0 29.42056,66.58498,0 29.35027,66.68249,0 29.09333,66.85138000000001,0 29.08305,66.9586,0 29.54611,67.31055000000001,0 29.93279,67.51389,0 29.97778,67.57249,0 29.98972,67.67194000000001,0 30.02861,67.69472,0 29.69167,67.81527,0 29.35695,68.08249000000001,0 28.69334,68.19749,0 28.4575,68.53194000000001,0 28.73861,68.73416,0 28.82056,68.84444000000001,0 28.73778,68.87582,0 28.47917,68.8736,0 28.43195,68.89694,0 28.95734,69.05162,0 29.06333,69.02916999999999,0 29.23916,69.1075,0 29.32167,69.24554000000001,0 29.31,69.31527,0 29.945,69.43053999999999,0 30.09777,69.50333000000001,0 30.185,69.58275999999999,0 30.14277,69.62833000000001,0 30.07277,69.6311,0 30.10333,69.66306,0 30.20361,69.66388000000001,0 30.52916,69.5461,0 30.91,69.54886999999999,0 30.94583,69.58222000000001,0 30.95472,69.68138,0 30.89805,69.70555,0 30.85484,69.7923,0 31.17443,70.36256,0 31.92259,70.01843,0 32.28514,69.92385,0 33.13635,69.77410999999999,0 33.48315,69.49036,0 35.31956,69.30909,0 36.23384,69.15934,0 37.16386,68.89137,0 37.5369,68.86902000000001,0 37.56522,73.71208,0 37.59446,78.71200000000002,0 35.86762,78.71200000000002,0 35.86762,81.47494,0 37.5369,81.47494,0 37.5369,84.90001,0 37.5369,89.90000000000001,0 38.53421000000001,89.90000000000001,0 39.53152,89.90000000000001,0 40.52883,89.90000000000001,0 41.52613,89.90000000000001,0 42.52345,89.90000000000001,0 43.52076,89.90000000000001,0 44.51808,89.90000000000001,0 45.51538,89.90000000000001,0 46.51269,89.90000000000001,0 47.51001000000002,89.90000000000001,0 48.50732,89.90000000000001,0 49.50463,89.90000000000001,0 50.50193000000001,89.90000000000001,0 51.49924,89.90000000000001,0 52.49656000000001,89.90000000000001,0 52.49656000000001,84.90001,0 + + + 1 + + + + + GMT +03:30 + + +]]> + #khStyle0350 + + + + +44.81304,39.63081,0 44.8886,39.60582,0 44.95028000000001,39.43582,0 45.06304999999999,39.37305,0 45.13055000000001,39.28556,0 45.14193,39.21748,0 45.30999000000001,39.19832,0 45.43499000000001,39.0511,0 45.43941000000001,38.99804,0 45.87194000000001,38.87999,0 46.05637,38.87831,0 46.17825000000001,38.84114000000001,0 46.35471,38.91054,0 46.54037,38.87559,0 46.83832000000001,39.15527000000001,0 46.94886,39.15443,0 47.02556,39.18942,0 47.09971,39.30444,0 47.29221,39.37693,0 47.39166,39.47054000000001,0 47.53334,39.50888000000001,0 47.80666,39.67722,0 47.93055,39.68359,0 47.97667000000001,39.71922,0 48.35979,39.38522,0 48.18916000000001,39.33332,0 48.11998,39.26361,0 48.13499000000001,39.20888,0 48.29387000000001,39.11249,0 48.32776,39.05165,0 48.31248,39.00776,0 48.07138000000001,38.95138,0 48.01415,38.90583,0 48.02081,38.83554,0 48.24387,38.72776,0 48.24361,38.66721,0 48.32776,38.60333,0 48.44193,38.62165,0 48.45416,38.56471,0 48.62305000000001,38.39526,0 48.78943000000001,38.44777,0 48.88828000000001,38.44241,0 48.86942,38.30054,0 48.94166,37.90749,0 48.99776,37.76361,0 49.10248,37.64304,0 49.41999,37.49332,0 49.83443,37.4511,0 49.92499,37.47971,0 49.96888,37.45387,0 49.94166,37.44471,0 50.19137000000001,37.38917,0 50.35166,37.1211,0 51.10111,36.72887,0 51.97276000000002,36.57999,0 53.22305,36.84833,0 53.92276,36.90972,0 54.00860999999999,36.94833,0 53.98499,36.89861000000001,0 53.6075,36.86833000000001,0 53.66137000000001,36.85777,0 53.63388000000001,36.84804,0 53.68194,36.81722,0 53.94332,36.8,0 54.0286,36.82471,0 54.03166,36.94833,0 53.98833,36.9822,0 54.01583000000001,37.02193000000001,0 53.90564,37.35085,0 54.23165000000001,37.32722,0 54.55165,37.4461,0 54.68111,37.4436,0 54.78694,37.51915000000001,0 54.80972000000001,37.57944,0 54.78221000000001,37.64804,0 54.83306000000001,37.74639,0 54.95471000000001,37.80499,0 55.14083,37.9561,0 55.21027,37.96221,0 55.44276000000001,38.08611,0 55.7561,38.12526,0 55.98276000000001,38.07249,0 56.16444,38.09499,0 56.22305,38.07028,0 56.33305000000001,38.08554,0 56.35277,38.13889,0 56.32249000000001,38.18526,0 56.44276,38.25999,0 56.61388,38.24055,0 56.75574000000001,38.28626,0 56.84583,38.23166000000001,0 57.05861,38.1936,0 57.14979,38.26009,0 57.18888,38.28334,0 57.20471,38.28334,0 57.24388,38.27082,0 57.28833,38.17055,0 57.3711,38.09305,0 57.35306,37.98944,0 57.45028000000001,37.93916,0 57.70805,37.92665,0 58.04694000000001,37.80944,0 58.17443,37.79639,0 58.20304000000001,37.78334000000001,0 58.22748,37.68111,0 58.38915999999999,37.63611,0 58.49805,37.64777,0 58.5625,37.7086,0 58.71277000000001,37.64861,0 58.80444,37.66693,0 58.82278,37.70361,0 59.06027,37.62999,0 59.25,37.51333,0 59.33888,37.53916000000001,0 59.38082,37.48555,0 59.39305000000001,37.32306,0 59.49139,37.24833,0 59.47693,37.21889000000001,0 59.56693,37.20888,0 59.62027000000001,37.13194,0 59.67054000000001,37.15611,0 59.81305,37.12471000000001,0 59.91471000000001,37.0586,0 60.02944,37.03695,0 60.27840000000001,36.76272,0 60.33306000000001,36.6561,0 61.1572,36.64999,0 61.18999,36.56777,0 61.15028,36.31499,0 61.18444,36.28667,0 61.22916,36.12666,0 61.16471,36.03527,0 61.16999,35.99527,0 61.12428,35.97565,0 61.22582,35.90388,0 61.26222,35.81972,0 61.22887,35.67805,0 61.27655000000001,35.60725,0 61.28778000000001,35.54999,0 61.19444,35.40222,0 61.19276000000001,35.30583,0 61.10444,35.27916,0 61.09471,35.18416,0 61.14249000000001,35.09832,0 61.06972,34.92888000000001,0 61.06305,34.80888,0 60.98333000000001,34.73388,0 60.97137,34.64444,0 60.72165,34.52222,0 60.91527000000001,34.32,0 60.66554,34.31249,0 60.67555000000001,34.28833,0 60.54610000000001,34.19638,0 60.50444,34.12222,0 60.55417000000001,33.81332,0 60.50527,33.73915,0 60.52776999999999,33.64415,0 60.66610000000001,33.5675,0 60.88639,33.55721,0 60.94305,33.51944,0 60.85443,33.48999,0 60.85167,33.41805,0 60.59109,33.16305,0 60.58056,33.0886,0 60.85778000000001,32.23471,0 60.83665,32.09027,0 60.79694000000001,32.0375,0 60.84389,31.49833,0 61.10417,31.46305,0 61.71361000000001,31.38332000000001,0 61.7711,31.31833,0 61.76466000000001,31.24477,0 61.8511,31.02111,0 61.80403,30.94514,0 61.78652,30.80953,0 60.86630000000002,29.86366,0 61.31443000000001,29.39583,0 61.3586,29.38444000000001,0 61.36027,29.26583000000001,0 61.42471,29.15528000000001,0 61.51111,29.08861,0 61.48804000000001,29.04361,0 61.5336,29.0125,0 61.58138000000001,28.88083,0 61.90554,28.555,0 62.40499,28.41722,0 62.59249,28.2336,0 62.78138,28.26695,0 62.75777,28.00027,0 62.82193,27.76027,0 62.83972,27.47443000000001,0 62.77833,27.35333,0 62.80694,27.32332,0 62.79583,27.28555,0 62.76471,27.27194,0 62.82305000000002,27.23027,0 62.93333000000001,27.21333,0 63.20583,27.2675,0 63.28832,27.21861,0 63.34194,27.1225,0 63.27859,27.12194,0 63.25305,27.08361,0 63.25916,26.93443,0 63.29056,26.89222,0 63.20638,26.84222,0 63.17638000000001,26.63111,0 62.77276000000001,26.64972,0 62.74305,26.61167,0 62.44609,26.56888,0 62.32027000000001,26.51527,0 62.27138,26.42472,0 62.27803000000001,26.35402,0 62.13583000000001,26.38083,0 62.12887,26.34444,0 62.10388,26.31444,0 61.87610000000001,26.24638,0 61.84416,26.21166,0 61.77583000000001,25.81861,0 61.68638,25.795,0 61.70361000000001,25.67667000000001,0 61.66859000000001,25.63277,0 61.64695,25.30611,0 61.61103000000001,25.19764,0 61.54971,25.25,0 61.55388,25.19749,0 61.48611,25.19722,0 61.51667,25.15472,0 61.49527,25.11527,0 61.42305,25.0975,0 61.4386,25.07528,0 61.22499,25.11861,0 61.17305000000002,25.17444,0 60.62222,25.26806,0 60.60277000000001,25.40028,0 60.54722,25.44167,0 60.45499,25.43166,0 60.39528,25.37555,0 60.46111,25.26361,0 60.30721,25.32945,0 60.29361,25.37832,0 60.19694,25.36528,0 60.18249000000002,25.32111,0 60.07111,25.37916,0 59.89388,25.345,0 59.83889,25.41082,0 59.59916,25.39554,0 59.47805,25.47722,0 59.247,25.42619,0 59.02583000000001,25.3975,0 58.9325,25.505,0 58.81833,25.56,0 58.40895,25.59111,0 58.32286,25.57843,0 58.13499,25.54138,0 58.04554,25.57695,0 57.95777,25.70027,0 57.77694,25.62806,0 57.78695,25.69833,0 57.74805,25.74554,0 57.6261,25.73027,0 57.31806,25.77083,0 57.27138,25.91944,0 57.16721,26.07222,0 57.21388,26.1725,0 57.12579,26.26425,0 57.09309,26.29857,0 57.0935,26.38464,0 57.08777,26.63972,0 57.02138,26.85222,0 56.92694,26.95166,0 56.9711,26.96388,0 56.96970000000001,27,0 56.92389,26.98249,0 56.84196,27.03251,0 55.89573,26.62316,0 55.33095,26.23366,0 54.55681,25.86849,0 54.48864,25.8831,0 54.47404000000001,26.26287,0 53.14484,26.8033,0 52.56544,27.35835000000001,0 52.52133,27.48647,0 51.54147,27.7537,0 51.29651,27.95413,0 50.27212,29.1344,0 50.0717,29.82476,0 49.55681000000001,29.98495000000001,0 49.3535,30.13924,0 49.22824000000001,30.14287,0 48.59428,29.94093000000001,0 48.54556,29.96302,0 48.45333000000001,29.99805,0 48.38777000000001,30.13694,0 48.40781,30.21121,0 48.27964000000001,30.33528,0 48.1992,30.32573,0 48.16043,30.42708,0 48.03249,30.49138,0 48.03638,30.99749,0 47.69388000000001,31.00111,0 47.69721000000001,31.40778,0 47.86445,31.79861,0 47.79056000000001,31.86,0 47.68971000000001,32.02388,0 47.5075,32.15416,0 47.52887,32.22887,0 47.41332,32.34109,0 47.43416,32.39778,0 47.3561,32.47638,0 47.27499000000001,32.49194,0 47.1375,32.46305,0 46.73944000000001,32.75999,0 46.42388,32.93749,0 46.10722,32.96749,0 46.0975,33.00555,0 46.14972,33.06527,0 46.05416000000001,33.08805,0 46.05138000000001,33.11832,0 46.11138,33.11277,0 46.19944,33.19582,0 46.17555000000001,33.2686,0 46.05027000000001,33.37778,0 46.00647000000001,33.48579,0 45.87471,33.49166,0 45.9486,33.55665,0 45.89666,33.60139,0 45.90659000000001,33.63655,0 45.74694,33.59166,0 45.75527000000001,33.63361,0 45.68888,33.67499,0 45.50804,33.94249,0 45.40582,33.9711,0 45.46888,34.07917,0 45.56276,34.14054,0 45.54695000000002,34.18833,0 45.58472,34.30249,0 45.53555,34.35111,0 45.48777000000001,34.33583,0 45.43555000000001,34.45528,0 45.52555,34.50249,0 45.52473000000001,34.6032,0 45.61472,34.55999,0 45.72220999999999,34.55665,0 45.70833,34.65915,0 45.6511,34.72694,0 45.68860000000002,34.81528,0 45.76611,34.84583,0 45.77249,34.91444,0 45.86776,34.9036,0 45.89555,34.9636,0 45.8786,35.03527,0 45.92193000000001,35.05443,0 45.93378,35.09876,0 46.03944,35.05833,0 46.16638,35.10722,0 46.15331,35.1611,0 46.19305,35.21111,0 46.11916000000001,35.24444,0 46.14805,35.29746,0 45.99221,35.48109,0 46.0061,35.53778,0 45.97999000000001,35.58471,0 46.02388,35.57999,0 46.02944,35.68776,0 46.2686,35.72805,0 46.34444,35.82193,0 46.18166000000001,35.80417,0 46.08749,35.86639,0 45.76583000000001,35.81194,0 45.66332000000001,35.94054,0 45.55777000000001,36.0022,0 45.50555000000001,36.02055,0 45.34916,35.99055,0 45.33165,36.01416,0 45.36832,36.08637,0 45.32027000000001,36.15609,0 45.31971,36.23832,0 45.27582,36.25776,0 45.30332000000001,36.28083,0 45.27303000000001,36.30859,0 45.27916,36.3811,0 45.23916,36.43137,0 45.09415,36.42443,0 45.01471000000002,36.53527,0 45.06666000000001,36.68054,0 45.01277000000001,36.7536,0 44.84915,36.79832,0 44.90664,36.88832,0 44.88416,36.96166,0 44.90972000000001,37.02388,0 44.78499,37.08472,0 44.76554,37.11694,0 44.78733,37.1497,0 44.77332,37.22748,0 44.82193,37.2711,0 44.81527,37.30526,0 44.72499,37.38361,0 44.58859,37.44026,0 44.6136,37.60277,0 44.55804,37.64803,0 44.61805,37.72776,0 44.52693,37.78555,0 44.45609,37.77471,0 44.45193,37.81778,0 44.41916,37.81778,0 44.39333,37.86304,0 44.22398000000001,37.89915,0 44.26416,38.01416,0 44.38778,38.16583,0 44.40471000000001,38.27166,0 44.48416,38.34554,0 44.43471000000001,38.39555,0 44.38081,38.36971,0 44.30693000000001,38.38833,0 44.31388,38.63777,0 44.26333,38.66639,0 44.28276,38.69777,0 44.26082,38.72165,0 44.30332000000001,38.83444,0 44.20805,38.89581,0 44.15943,39.00221,0 44.20499,39.04165,0 44.18833,39.08306,0 44.21583,39.14083,0 44.09833,39.20638,0 44.09581,39.29138,0 44.03416,39.38499,0 44.20054,39.41694,0 44.31553000000001,39.3875,0 44.4161,39.42527,0 44.47108,39.69886,0 44.60582,39.78054000000001,0 44.81304,39.63081,0 + + + 1 + + + + GMT +04:00 + + +]]> + #khStyle0400 + + + + + +54.48864,25.8831,0 54.55681,25.86849,0 55.33095,26.23366,0 55.89573,26.62316,0 56.84196,27.03251,0 56.92389,26.98249,0 56.96971,27,0 56.9711,26.96388,0 56.92694,26.95166,0 57.02138,26.85222,0 57.08777,26.63972,0 57.0935,26.38464,0 57.09309,26.29857,0 57.12579,26.26425,0 57.21388,26.1725,0 57.16721,26.07222,0 57.27138,25.91944,0 57.31806,25.77083,0 57.6261,25.73027,0 57.74805,25.74554,0 57.78695,25.69833,0 57.77694,25.62806,0 57.95777,25.70027,0 58.04554,25.57695,0 58.13499,25.54138,0 58.32286,25.57843,0 58.40895,25.59111,0 58.81833,25.56,0 58.9325,25.505,0 59.02583000000001,25.3975,0 59.247,25.42619,0 59.47805,25.47722,0 59.59916,25.39554,0 59.83889,25.41082,0 59.89388,25.345,0 60.07111,25.37916,0 60.18249000000002,25.32111,0 60.19694,25.36528,0 60.29361,25.37832,0 60.30721,25.32945,0 60.46111,25.26361,0 60.39528,25.37555,0 60.45499,25.43166,0 60.54722,25.44167,0 60.60277000000001,25.40028,0 60.62222,25.26806,0 61.17305000000002,25.17444,0 61.22499,25.11861,0 61.4386,25.07528,0 61.42305,25.0975,0 61.49527,25.11527,0 61.51667,25.15472,0 61.48611,25.19722,0 61.55388,25.19749,0 61.54971,25.25,0 61.61103000000001,25.19764,0 61.78221,25.19027000000001,0 61.72444,25.0525,0 61.83721,25.03444,0 61.86193000000001,25.09277,0 61.91137000000001,25.11277,0 62.10444,25.10167,0 62.07777000000002,25.18138,0 62.16777,25.21638,0 62.29527,25.19916,0 62.31917,25.14277,0 62.28167000000001,25.105,0 62.35305,25.09195,0 62.39111000000001,25.10221,0 62.33638,25.12778,0 62.36221000000001,25.17332,0 62.48554000000001,25.20944,0 62.46444,25.23638,0 62.52693,25.25556,0 62.74471,25.25945,0 63.00805,25.21471,0 63.15583,25.25638,0 63.50500000000002,25.18861,0 63.52361,25.21361,0 63.46998,25.28028,0 63.57249,25.36,0 63.7486,25.38527,0 63.92917000000001,25.33416,0 64.06299,25.33679,0 64.09166999999999,25.32861000000001,0 64.25555,25.31472,0 64.43497000000001,25.23111000000002,0 64.51666,25.26944,0 64.59276,25.25556,0 64.63109,25.22056,0 64.61998,25.16999,0 64.70999000000001,25.18027,0 64.66499,25.20944,0 64.66776000000002,25.25694,0 64.76888,25.32138,0 65.13970000000001,25.28778,0 65.25417,25.37749,0 65.38611,25.39056,0 65.38777,25.3625,0 65.46642,25.38267,0 65.66776,25.34278,0 65.84665,25.41667,0 66.26389,25.46778,0 66.49576999999999,25.39812,0 66.54637,25.3629,0 66.73276,25.19749,0 66.67415,24.93388,0 66.70499,24.89167,0 66.65028,24.82611,0 66.85943,24.85444,0 66.9511,24.80472,0 66.96082,24.83861,0 67.07283000000001,24.7676,0 67.14679,24.6441,0 67.15637000000001,24.6075,0 67.25166,24.58916,0 67.18165000000001,24.57972,0 67.22971,24.53305,0 67.21361000000002,24.50361,0 67.25722,24.41361,0 67.28554,24.43639,0 67.27887,24.35694,0 67.35942,24.34249,0 67.29803,24.33944,0 67.28166,24.28083000000001,0 67.3633,24.06714,0 67.45277,23.98666,0 67.50054,23.97499,0 67.50583,23.92138,0 67.53803000000002,23.93813000000001,0 67.48248,23.89583,0 67.51169000000002,23.87695,0 67.51169000000002,18.87694,0 67.51169000000002,13.87695,0 67.51169000000002,12.15223,0 67.51169000000002,7.824905,0 67.51169000000002,2.82491,0 67.51169000000002,-2.175094,0 67.51169000000002,-7.175088,0 67.51169000000002,-12.17509,0 67.51169000000002,-17.17509,0 67.51169000000002,-22.17509,0 67.51169000000002,-24.58749,0 67.51169000000002,-29.58749,0 67.51169000000002,-34.58749,0 67.51169000000002,-39.58749,0 67.51169000000002,-41.88749,0 67.51169000000002,-46.88749,0 67.51170000000001,-51.88749,0 67.51170000000001,-56.88749,0 67.51170000000001,-61.88749000000001,0 67.51170000000001,-66.88749,0 67.51170000000001,-71.88749,0 67.51170000000001,-76.88749,0 67.51170000000001,-79.64822,0 67.51170000000001,-84.64822,0 67.51170000000001,-89.64822,0 67.51170000000001,-89.90000000000001,0 66.51234,-89.90000000000001,0 65.51299,-89.90000000000001,0 64.51363000000001,-89.90000000000001,0 63.51426000000001,-89.90000000000001,0 62.51491,-89.90000000000001,0 61.51555000000001,-89.90000000000001,0 60.51619,-89.90000000000001,0 59.51684,-89.90000000000001,0 58.51747,-89.90000000000001,0 57.51812000000001,-89.90000000000001,0 56.51877000000001,-89.90000000000001,0 55.5194,-89.90000000000001,0 54.52005,-89.90000000000001,0 53.52069000000001,-89.90000000000001,0 52.52133,-89.90000000000001,0 52.52133,-88.97416,0 52.52129000000001,-83.97417000000002,0 52.52126,-78.97417,0 52.52125,-76.47417,0 52.52121000000001,-71.47417,0 52.52118000000001,-66.47416,0 52.52115,-61.47417000000001,0 52.52111,-56.47416,0 52.52108,-51.47417,0 52.52105,-46.47416000000001,0 52.52101,-41.47417,0 52.521,-39.17416,0 52.52097,-34.17416,0 52.52093000000001,-29.17417,0 52.52089,-24.17416,0 52.52089,-22.17417,0 52.52085,-17.17417,0 52.52081,-12.17417,0 52.52079000000001,-7.17417,0 52.52075,-2.174176,0 52.52073,2.825829000000001,0 52.52069,7.825823000000002,0 52.52067,10.62583,0 55.86174,10.62857,0 55.86174,13.61265,0 52.52133,13.61265,0 52.52133,16.43764,0 52.94389,16.60806,0 53.11444,16.64278,0 51.99929,18.99934,0 55.00000000000001,20,0 55.66611000000001,21.99972,0 55.19917000000002,22.69972,0 55.14166,22.63333,0 52.58333,22.93889,0 51.58333,24.11666,0 51.58423000000001,24.26046,0 51.59138,24.37833,0 51.62222000000001,24.34472,0 51.63556000000001,24.20972,0 51.67222,24.2725,0 51.70888,24.21472,0 51.74389,24.28639,0 51.77584000000001,24.27528,0 51.79873,24.01633,0 51.92555000000001,23.95471,0 51.94305,23.99277,0 52.08055,23.95555,0 52.33083,23.99971,0 52.52133,24.12054,0 52.52133,27.48647,0 52.56544,27.35835000000001,0 53.14484,26.8033,0 54.47404000000001,26.26287,0 54.48864,25.8831,0 + + + 1 + + + + + +40.25339,43.58252,0 40.54306,43.50861,0 40.68471,43.54583,0 41.04416000000001,43.37498000000001,0 41.16805,43.38722,0 41.29554,43.33610000000001,0 41.39332,43.3461,0 41.58971,43.22275,0 41.93971,43.21749,0 42.05777,43.18610000000001,0 42.18111,43.23555,0 42.41526,43.23916,0 42.62583,43.14305,0 42.7011,43.1825,0 42.85722000000001,43.17748,0 43.0211,43.10444,0 43.01082,43.05666,0 43.20083,42.93637,0 43.56055,42.86082,0 43.67083,42.7911,0 43.82721,42.7514,0 43.8361,42.72776,0 43.73555,42.63916,0 43.9611,42.55778,0 44.0536,42.61804,0 44.22082000000001,42.63693,0 44.28665,42.71278,0 44.54972,42.75944000000001,0 44.68443,42.73943000000001,0 44.80388000000001,42.6172,0 44.855,42.74331,0 44.92749,42.76193,0 45.05304,42.69415,0 45.17137000000001,42.70083,0 45.35167,42.52943,0 45.55277,42.55026,0 45.76028,42.47791,0 45.64748,42.20471,0 45.91028,42.105,0 45.96053,42.02387,0 46.01082,42.04305,0 46.07805,42.03416,0 46.10389,41.99415,0 46.23998,42.00139,0 46.31998,41.93888,0 46.39415,41.94054,0 46.45176000000001,41.89705,0 46.56833,41.88248,0 46.56667000000001,41.80777,0 46.59166000000001,41.79221,0 46.76082,41.86388,0 46.77081,41.79666,0 46.92554,41.71776,0 47.04305000000001,41.55833,0 47.16054,41.5611,0 47.25888000000001,41.42471,0 47.28555000000001,41.31219,0 47.52193,41.25416,0 47.57166,41.2111,0 47.65972000000001,41.23554,0 47.76693,41.19609000000001,0 47.91999,41.22637,0 47.90831000000001,41.29084,0 47.96249,41.35943,0 48.02276,41.36193,0 48.07444000000001,41.46776,0 48.23137000000001,41.50249,0 48.3997,41.58914,0 48.47137000000001,41.72359000000001,0 48.58395000000001,41.83577,0 48.67777000000001,41.78276,0 48.89944,41.52583,0 49.03998,41.41415,0 49.14055,41.26833000000001,0 49.15498000000001,41.15165,0 49.22221,41.01833,0 49.39804000000001,40.84971,0 49.53249000000001,40.78749,0 49.50805,40.69305,0 49.52805,40.66277,0 49.80499,40.56471,0 50.05525999999999,40.58444,0 50.125,40.51138,0 50.23536,40.4908,0 50.36295000000001,40.47673000000001,0 50.62228,40.32742,0 50.63309,40.29893,0 50.39325,40.22689,0 50.2625,40.32916,0 50.12417,40.35833000000001,0 49.98054,40.31998000000001,0 49.87804000000001,40.36276,0 49.82472,40.28499,0 49.57167,40.21277,0 49.48805000000001,40.15054,0 49.49582,40.09055,0 49.42499999999999,40.05388,0 49.48304,39.98943000000001,0 49.42110000000001,39.93081,0 49.44442000000001,39.8686,0 49.39332,39.77832,0 49.42416999999999,39.70638000000001,0 49.31889000000001,39.62498,0 49.28082000000001,39.50055,0 49.41361,39.38388,0 49.40331,39.31805,0 49.36388000000002,39.34499,0 49.40805,39.28776,0 49.31304,39.34138,0 49.25805,39.31944,0 49.20194,39.02471,0 49.12804,38.97331,0 49.06027000000001,38.96693,0 49.05165,39.00139,0 49.12694,39.02998,0 49.14471,39.09748,0 49.06722000000001,39.10777,0 49.03832000000001,39.18221,0 48.95554,39.16526,0 48.93304,38.95138,0 48.89083,38.88082,0 48.82999,38.85942,0 48.86665,38.74583,0 48.88828000000001,38.44241,0 48.78943000000001,38.44777,0 48.62305000000001,38.39526,0 48.45416,38.56471,0 48.44193,38.62165,0 48.32776,38.60333,0 48.24361,38.66721,0 48.24387,38.72776,0 48.02081,38.83554,0 48.01415,38.90583,0 48.07138000000001,38.95138,0 48.31248,39.00776,0 48.32776,39.05165,0 48.29387000000001,39.11249,0 48.13499000000001,39.20888,0 48.11998,39.26361,0 48.18916000000001,39.33332,0 48.35979,39.38522,0 47.97667000000001,39.71922,0 47.93055,39.68359,0 47.80666,39.67722,0 47.53334,39.50888000000001,0 47.39166,39.47054000000001,0 47.29221,39.37693,0 47.09971,39.30444,0 47.02556,39.18942,0 46.94886,39.15443,0 46.83832000000001,39.15527000000001,0 46.54037,38.87559,0 46.35471,38.91054,0 46.17825000000001,38.84114000000001,0 46.05637,38.87831,0 45.87194000000001,38.87999,0 45.43941000000001,38.99804,0 45.43499000000001,39.0511,0 45.30999000000001,39.19832,0 45.14193,39.21748,0 45.13055000000001,39.28556,0 45.06304999999999,39.37305,0 44.95028000000001,39.43582,0 44.8886,39.60582,0 44.81304,39.63081,0 44.77886,39.70638000000001,0 44.69555,39.78998,0 44.59082,39.83305,0 44.48778,39.96277,0 44.34722,40.02389,0 44.28,40.0461,0 43.93389000000001,40.01361,0 43.65749,40.1086,0 43.65778,40.13971,0 43.72165,40.16332,0 43.67221,40.21972,0 43.68,40.26443,0 43.59417,40.33749,0 43.62027,40.41944,0 43.55415,40.4711,0 43.65304,40.53138,0 43.75361,40.67582,0 43.75193,40.74,0 43.6861,40.84195,0 43.67165,40.92806,0 43.59944,40.99249,0 43.47915,41.02528,0 43.46077,41.11296,0 43.47471,41.13999,0 43.42582,41.18527,0 43.3497,41.20193,0 43.23693,41.17638,0 43.19943000000001,41.25527,0 43.1236,41.25527,0 43.20777,41.30693,0 43.03972,41.37416,0 42.89278,41.50695,0 42.84722,41.47305,0 42.78832,41.50861,0 42.82749,41.58500000000001,0 42.59777,41.58305,0 42.51081,41.44333,0 42.47221,41.43333,0 42.18249,41.5075,0 42.05029,41.49056,0 41.96804,41.51915,0 41.83331,41.42832,0 41.72306,41.47055,0 41.72277,41.49554,0 41.65167,41.48277,0 41.53155,41.52388,0 41.73026000000001,41.72555,0 41.77472,41.88563,0 41.7625,41.99221,0 41.66166,42.12109,0 41.63277,42.27194,0 41.55331,42.38581000000001,0 41.46137,42.70804,0 41.22082,42.79861,0 41.15583,42.78917,0 41.03276000000001,42.97304,0 40.93277,42.97222,0 40.8436,43.06777,0 40.58665,43.0825,0 40.38472,43.16555,0 40.32638,43.14192,0 40.22471,43.31443,0 40.00297,43.37926,0 40.0775,43.54694,0 40.12665,43.57222,0 40.25339,43.58252,0 + + + 1 + + + + + +51.39554,54.67722000000001,0 51.39388,54.59304000000001,0 51.49388,54.59527,0 51.52333,54.64638,0 51.67972,54.56166000000001,0 51.92722000000001,54.53611,0 51.93277,54.43638,0 52.01999,54.43665,0 52.08526000000001,54.33942,0 52.12028000000001,54.35111,0 52.105,54.40054000000001,0 52.2,54.40639,0 52.20972,54.44304,0 52.36388,54.45916,0 52.35054,54.42333,0 52.37915,54.41444,0 52.43943,54.47887,0 52.50306000000001,54.45193,0 52.49416,54.39999,0 52.53745,54.37707,0 52.51166,54.32194,0 52.27943,54.32833000000002,0 52.19444,54.29721000000001,0 52.34610000000001,54.22665000000001,0 52.34388000000001,54.17194,0 52.25833,54.14999,0 52.27194,54.11388000000001,0 52.39804000000001,54.1286,0 52.4875,54.05777000000001,0 52.37054,53.9761,0 52.41415,53.93027000000001,0 52.25804,53.65526,0 52.1836,53.55694,0 52.09167,53.55027,0 52.07527,53.50639,0 52.13499,53.44915,0 52.13803999999999,53.40305000000002,0 52.19665000000001,53.37944,0 52.13916,53.29166,0 52.16388000000001,53.26167,0 52.1236,53.22388,0 52.13417,53.17499,0 52.05471,53.14249000000001,0 52.15972,53.09665,0 52.06249,53.07833,0 52.05389,52.99055,0 51.86694000000001,52.92943,0 51.82417000000001,52.87388,0 51.72805,52.87194,0 51.71555,52.82277,0 51.77944,52.79583000000001,0 51.73360000000001,52.6675,0 51.53416,52.67416,0 51.50667000000001,52.63276000000001,0 51.55054,52.57417,0 51.47360000000001,52.57972,0 51.47083,52.52722,0 51.56361,52.43582,0 51.46388,52.41360000000001,0 51.47166,52.36583000000001,0 51.40694,52.34917,0 51.40805,52.25416,0 51.45750000000001,52.22776,0 51.41249000000001,52.08971,0 50.7733,51.76918,0 50.75861,51.71970000000001,0 50.81361,51.64805,0 50.81054000000001,51.59166,0 50.68277000000001,51.57306000000001,0 50.71749,51.62249,0 50.60277,51.63999,0 50.59471,51.58972,0 50.54361,51.56722000000001,0 50.54888,51.46861,0 50.38472,51.42527000000001,0 50.39721999999999,51.39972,0 50.35443,51.37805000000001,0 50.36332,51.31694000000001,0 49.96804,51.2261,0 49.80416,51.11027,0 49.46194,51.12416,0 49.36443,50.97971,0 49.44083,50.90583000000002,0 49.42583000000001,50.85139000000001,0 49.15833,50.79278000000002,0 49.03083,50.68804999999999,0 48.83027,50.59665,0 48.59361,50.64833000000001,0 48.59555,50.62249000000001,0 48.69749,50.59194000000001,0 48.72276000000001,50.35305000000002,0 48.81110000000001,50.19415000000001,0 48.79111,50.1236,0 48.87972000000001,50.10167000000001,0 48.91693000000001,50.03417,0 48.79695,49.94194,0 48.45082,49.81693000000001,0 48.33221,49.87887000000001,0 48.25166000000001,49.86971,0 48.24888000000001,49.90888000000001,0 48.16554000000001,49.9661,0 48.11054000000001,50.0986,0 47.76082000000001,50.37527,0 47.59972,50.46083000000001,0 47.4464,50.37695,0 47.4161,50.33193,0 47.31666,50.29445000000001,0 47.34276,50.24193,0 47.28054,50.18221,0 47.35666,50.09027,0 47.30249,50.03194000000001,0 47.18833,49.94415000000001,0 46.92944,49.86361000000001,0 46.79582,49.33972,0 47.02610000000001,49.23610999999999,0 47.06275999999999,49.14277,0 46.95444,49.01305,0 46.77888000000001,48.93665,0 46.49916000000002,48.4175,0 47.12277,48.27166,0 47.13332000000001,48.24249,0 47.09637,48.21000000000001,0 47.13832000000001,48.16999,0 47.12221,48.10222,0 47.21499000000001,48.07083,0 47.06248000000001,47.99609,0 47.18277,47.87417,0 47.13665000000001,47.82249000000001,0 47.38333,47.68888000000001,0 47.43581,47.84361000000001,0 47.69137,47.76583,0 48.06471000000001,47.77971,0 48.20442000000001,47.70499000000001,0 48.44388000000001,47.43693,0 48.54721000000001,47.41721,0 48.7211,47.09833,0 49.02720999999999,46.77610000000001,0 48.94137,46.70416,0 48.76527,46.69082,0 48.71054,46.75972,0 48.60333,46.77332000000001,0 48.52166,46.74305,0 48.4762,46.66768,0 48.55415,46.64389,0 48.58400000000001,46.59843000000002,0 48.56054,46.56499,0 48.74027000000001,46.55832,0 48.83388,46.48499000000001,0 48.91813000000001,46.48922,0 49.22253,46.34631,0 49.3143,46.2573,0 49.18897,46.05259,0 49.05737,45.98365,0 48.99471,46.00246,0 48.87982,45.94397000000001,0 48.79208,45.82907,0 48.72941,45.804,0 48.74612,45.69747000000001,0 48.36385000000001,45.64942000000001,0 48.20509,45.7121,0 48.0714,45.71836,0 48.015,45.69538,0 47.99829,45.51992000000001,0 47.81656,45.43218000000001,0 47.53247000000001,45.53033,0 47.48619,45.57145,0 47.46748,45.63943,0 47.35971,45.68942,0 47.29361000000001,45.6436,0 46.89304000000001,45.57472000000001,0 47.0411,45.96970000000001,0 47.10915,46.00777,0 47.175,46.10556,0 47.09082000000002,46.1186,0 46.8336,46.07277,0 46.86665,46.24805000000001,0 46.47833,46.27555,0 46.66027,46.42804,0 46.96194,46.4286,0 46.94916,46.53943000000001,0 46.91332,46.55526,0 46.99805,46.63361,0 47.1497,46.66832,0 47.14026,46.69638,0 47.22776,46.74081,0 47.12721,46.85833000000001,0 46.99082,46.85082,0 46.92777,46.97832,0 46.79639,46.99638,0 46.51554,47.39193000000001,0 46.52387000000001,47.43499,0 46.83055,47.5761,0 46.68081,47.63248,0 46.3886,47.44443,0 46.29666000000001,47.43664,0 46.08887000000001,47.51692,0 45.93804,47.62887,0 45.90720000000001,47.7122,0 45.82916,47.72304,0 45.78556,47.81305,0 45.71970000000001,47.86528,0 45.70664000000001,47.93193000000001,0 45.74166,48.00222,0 45.7136,48.03750000000002,0 45.55193000000001,47.99193,0 45.39499,48.09833,0 45.30082000000001,48.09768,0 45.12749000000001,48.11306,0 44.95666,48.21194,0 44.92471,48.19916000000001,0 44.94221,48.14388000000002,0 44.80053,48.05249000000001,0 44.64415000000001,48.09166,0 44.61221,48.05665,0 44.54971,48.05833,0 44.53582,48.20638000000002,0 44.30944,48.25999000000001,0 44.32305,48.05999000000001,0 44.46637,48.04084000000001,0 44.46776,47.9786,0 44.3861,47.91415,0 44.38915,47.86832,0 44.06582000000001,47.9108,0 44.01582,47.86388,0 44.04443,47.82415,0 43.97499,47.76639,0 43.84138,47.7575,0 43.70583,47.68444,0 43.62944,47.55916,0 43.73177,47.47655000000001,0 43.65331,47.44222,0 43.55833000000001,47.48972,0 43.22499,47.44972,0 43.15998,47.48249,0 43.13554000000001,47.57556,0 43.05915,47.57639,0 42.98776,47.51388000000001,0 42.93971,47.51361,0 42.7286,47.85556,0 42.4986,48.01056,0 42.32638,48.04777,0 42.27555,48.01305000000001,0 42.02193,48.03027,0 42.05111,48.12972,0 42.10278,48.16389000000002,0 42.04499,48.25916000000001,0 42.15193,48.28221,0 42.07249,48.40889,0 42.27665,48.49860000000001,0 42.63054,48.54694,0 42.70166,48.61805,0 42.65027,48.70527,0 42.74610000000001,48.80638,0 42.66249,48.8886,0 42.66361,48.96777,0 42.48388,49.04472,0 42.39277,49.04972,0 42.34443,49.15249,0 42.06443,49.15388,0 42.07694,49.19971,0 42.03194,49.26639999999999,0 42.09693,49.29222,0 42.04972,49.40499000000001,0 42.0736,49.51056,0 42.11277,49.52583,0 42.17749,49.69083,0 41.8661,49.90777000000001,0 41.61361000000001,49.96361,0 41.58277,50.005,0 41.5911,50.05525999999999,0 41.4822,50.09027,0 41.36221,50.22629,0 41.5125,50.3811,0 41.4175,50.50527,0 41.45471,50.55138,0 41.52416,50.56860000000001,0 41.52833,50.60166,0 41.40749,50.61944,0 41.32777,50.71916,0 41.15639,50.77638,0 41.38277,50.83027,0 41.37777000000001,50.87666000000001,0 41.41193,50.90359,0 41.7286,51.01721,0 41.8686,51.19388000000001,0 41.96333,51.2086,0 42.09888,51.14750000000001,0 42.2672,51.13166,0 42.41888,51.17222,0 42.56722,51.16526000000001,0 42.68444,51.23693000000001,0 42.87309,51.23142,0 42.91221,51.24083,0 42.83942,51.31666000000001,0 42.86166,51.38166,0 42.48951,51.60789,0 42.51471,51.62388,0 42.48666000000001,51.69305,0 42.67638,51.83972,0 42.70305,51.98194,0 42.8111,52.01027,0 42.74749,52.08027,0 42.75333,52.18581,0 42.92221,52.30526,0 42.92527,52.37500000000001,0 43.00916000000001,52.36388,0 43.0798,52.40288,0 43.12276,52.40192,0 43.19027,52.46666000000001,0 43.3086,52.44555,0 43.34055,52.39111,0 43.77749,52.43472,0 44.05526,52.34610000000001,0 44.34638,52.3161,0 44.33332,52.34805000000001,0 44.38916,52.36833000000001,0 44.41082,52.41305000000001,0 44.54361,52.42944,0 44.51445,52.45916,0 44.53943,52.48638,0 44.49361,52.52665,0 44.54805,52.55249,0 44.66489,52.47935,0 44.86749,52.44666,0 44.90554,52.37665000000001,0 44.97332,52.37332,0 45.05054000000001,52.31721,0 45.10139000000001,52.33332000000001,0 45.06916,52.37778000000001,0 45.11139,52.41109,0 45.44194,52.40055,0 45.51639000000001,52.43444,0 45.52693,52.48166,0 45.64111000000001,52.52028,0 45.73554000000001,52.52583,0 45.71805,52.45889,0 45.98082000000001,52.40721000000001,0 45.97526000000001,52.4361,0 46.01639000000001,52.45776999999999,0 45.97137000000001,52.49583,0 46.06444,52.52693000000001,0 46.08749,52.56388,0 46.14582,52.54972000000001,0 46.15331,52.60194000000001,0 46.2761,52.61805,0 46.29834,52.68055,0 46.39999,52.67249,0 46.58027,52.73249,0 46.61388000000002,52.72748,0 46.61694000000001,52.66109,0 46.83077,52.6164,0 46.9461,52.63832000000001,0 47.0686,52.56638,0 47.1536,52.60999,0 47.20610000000001,52.56666,0 47.43831999999999,52.56722,0 47.55638,52.61833,0 47.72470000000001,52.57916,0 47.78111000000001,52.62915,0 47.77304,52.67972000000001,0 47.85971,52.73166,0 47.90027,52.72221,0 47.92527,52.6661,0 48.07861000000001,52.70555,0 48.08749,52.73193,0 47.98499,52.74722,0 48.10944,52.80138,0 48.28889,52.81082,0 48.43007000000001,52.78054,0 48.58694,52.8686,0 48.57805,52.93554,0 48.51057,52.97799,0 48.31833,52.98555,0 48.36888,53.06638,0 48.26944000000001,53.05777,0 48.2236,52.99722,0 48.14472000000001,53.05916,0 48.21221,53.14582999999999,0 48.13138000000001,53.16888,0 48.09332,53.26194,0 47.94194,53.37583,0 48.00360000000001,53.40666,0 48.04853,53.47771,0 48.16638,53.48249,0 48.2225,53.42443,0 48.23611,53.45888999999999,0 48.37833000000001,53.47137,0 48.37666000000001,53.54277,0 48.44083000000001,53.58138000000001,0 48.355,53.60167000000001,0 48.31416000000001,53.65583000000002,0 48.35638,53.6711,0 48.42695,53.62915000000002,0 48.4461,53.6661,0 48.60333,53.66945,0 48.51305,53.69638000000001,0 48.47222,53.77083,0 48.86333000000001,53.71277,0 49.03694,53.85944,0 49.31694,53.83333,0 49.34304000000001,53.87,0 49.42249000000001,53.87082000000001,0 49.60916000000001,53.855,0 49.61805,53.81139,0 49.83805,53.89083000000001,0 49.85722000000001,53.8336,0 50.03778000000001,53.82527000000001,0 50.05305,53.86860000000001,0 49.95361,53.90527,0 49.97443,53.96138,0 50.19749,54.03722,0 50.22554,54.07916,0 50.20304000000002,54.14027,0 50.26222,54.28944,0 50.19944,54.38416,0 50.21111000000001,54.42167,0 50.11721,54.43027000000001,0 50.12555,54.48194,0 50.07688,54.51667000000001,0 50.22527,54.50361000000001,0 50.27665,54.44054,0 50.38889,54.48888000000001,0 50.42944,54.42749000000001,0 50.47165,54.42333,0 50.5186,54.32639000000001,0 50.70305000000001,54.42833,0 50.93610000000001,54.33999,0 51.01721,54.47916,0 50.99277,54.49916000000001,0 51.00972000000001,54.55165,0 51.09361,54.54861,0 51.18111,54.64638,0 51.28139000000002,54.63694,0 51.39554,54.67722000000001,0 + + + 1 + + + + + +47.59415,61.05888,0 47.88139,60.99833,0 47.95999,61.00972,0 47.9875,60.88665000000001,0 48.41924,60.85386000000001,0 48.53917,60.59999000000001,0 48.53999,60.55915,0 48.48110000000001,60.52499,0 48.51111000000001,60.51194,0 48.50416000000001,60.48276,0 48.61777000000001,60.43333000000001,0 48.54137999999999,60.41109,0 48.67582000000001,60.40638000000001,0 48.76305,60.365,0 48.70499,60.30471,0 48.45917000000001,60.19415,0 48.50999,59.70388,0 49.08554,59.65554,0 49.03416,59.48444,0 49.14778,59.50889,0 49.3086,59.46694,0 49.34194,59.41915000000001,0 49.545,59.39305000000001,0 49.50861,59.24610000000001,0 49.59333,59.21776,0 49.79554,59.22221,0 49.82416,59.37054,0 49.79554,59.38388,0 49.82888000000001,59.48110000000001,0 49.78722000000001,59.50054999999999,0 49.83278,59.63693,0 49.85361,59.66361,0 50.05638,59.6875,0 49.95193,59.74722000000001,0 49.99665,59.77887000000001,0 50.2375,59.75277,0 50.27887,59.80693000000002,0 50.40331000000001,59.84444,0 50.82861000000001,59.86277000000001,0 51.07110999999999,60.06166000000001,0 51.34388,60.01833,0 51.41332000000001,59.94165,0 51.53221000000001,59.94721,0 51.8,60.11083,0 51.89999,60.24444,0 52.0089,60.30360000000002,0 52.08278,60.31694000000002,0 52.29815,60.24171,0 52.42722000000001,60.20304,0 53.01083,60.15915,0 53.38611,60.16555,0 53.41137000000001,60.22443000000001,0 53.59887000000001,60.15666,0 53.71194,60.00332,0 53.60278000000001,59.70055000000001,0 53.42054,59.68971,0 53.3661,59.51832,0 53.2047,59.34944,0 53.24415000000001,59.27583,0 53.38555,59.15554,0 53.7236,59.09194000000002,0 53.68916000000001,59.12332000000001,0 53.75417,59.14111000000001,0 53.88416000000001,59.09054,0 53.83500000000001,59.05832000000001,0 53.84470000000001,59.03054,0 53.76500000000001,59.02277000000002,0 53.71915,58.93748999999999,0 53.80721000000001,58.82777000000001,0 53.92833,58.78166000000001,0 53.77055,58.71638000000002,0 53.74027,58.67972,0 53.75721999999999,58.6525,0 53.69610000000001,58.60333000000001,0 53.78463,58.43996000000001,0 53.79027,58.39249000000001,0 53.88916,58.32222,0 53.80972,58.22887,0 53.89415,58.18804,0 53.94276,58.09527000000001,0 54.10722,57.97276,0 54.08749,57.91331,0 54.13639000000001,57.83222,0 54.15665000000001,57.70249,0 54.06916,57.66666000000001,0 54.12111,57.61193,0 53.98749000000001,57.57111,0 54.10139,57.51805,0 54.11888,57.55944000000001,0 54.16999000000001,57.55972000000001,0 54.20361,57.53083,0 54.16582,57.51222,0 54.17860000000001,57.465,0 54.26472,57.46443000000001,0 54.27166,57.42222,0 54.14443,57.38693,0 54.11639,57.31027000000001,0 54.32000000000001,57.28666000000001,0 54.33472,57.15554000000001,0 54.27555,57.10082000000001,0 54.37444000000001,57.07389000000001,0 54.40269,57.03656000000002,0 54.09805,56.96249,0 54.09177,56.79174,0 54.01056,56.74916,0 53.88999,56.76445,0 53.88943,56.80444,0 53.82832,56.81193,0 53.80637999999999,56.77332,0 53.88081,56.67222,0 53.83554,56.63556,0 53.87,56.6075,0 53.96388,56.63110000000001,0 54.0286,56.69276,0 54.10083,56.66276000000001,0 54.02664999999999,56.58416,0 54.09083,56.58250000000001,0 54.12194,56.53361000000001,0 54.18472000000001,56.53722,0 54.23611,56.43581,0 54.32472000000001,56.46249,0 54.35241,56.35857,0 54.31527,56.34138,0 54.37526,56.30498999999999,0 54.35889,56.26222000000001,0 54.10722,56.14749,0 54.02443,56.02944000000001,0 53.83795000000001,56.04377,0 53.78472,55.96915,0 53.67193,55.95999,0 53.63842,55.91552,0 53.29725,55.85252,0 53.1825,55.92389000000001,0 53.28694999999999,55.93555,0 53.37888,55.98972,0 53.47470000000001,56.12110000000001,0 53.54499,56.14083000000001,0 53.55610000000001,56.24388,0 53.41666,56.27833,0 53.2589,56.25471000000001,0 53.34249,56.14749,0 53.34499,56.08471,0 53.26111,56.08554,0 53.14666,56.16220000000001,0 53.04749,56.13528,0 53.06888,56.18249,0 53.04193,56.20805000000001,0 52.99416,56.18833,0 53.00305,56.22165,0 52.95610000000001,56.25166,0 52.98221,56.28082,0 52.94138,56.30639,0 52.98054,56.3475,0 52.9386,56.36694,0 53.09528,56.52694000000001,0 52.94444,56.54472,0 52.91778000000001,56.50111,0 52.82555,56.52193,0 52.95165999999999,56.46916,0 52.95278,56.44165000000002,0 52.82665999999999,56.38888000000002,0 52.72277,56.39138,0 52.74055,56.37471000000001,0 52.63638,56.28638,0 52.55833,56.2625,0 52.57583,56.22748000000001,0 52.81694,56.20249,0 52.80582,56.18194,0 52.84554,56.15721,0 52.81055,56.13388000000001,0 52.85443,56.12666,0 52.83694000000001,56.09222000000001,0 52.70054,56.14138000000001,0 52.72887,56.06471000000001,0 52.66221,56.01554,0 52.46776,56.07749,0 52.44666,56.06361,0 52.48471,56.03694000000002,0 52.43665,56.02833,0 52.20471000000001,56.08416,0 52.18693,56.05527,0 52.2461,56.06694,0 52.20417,56.00443000000001,0 52.25166,55.95805000000001,0 52.16916000000001,55.89306,0 52.05638,55.895,0 52.03749000000001,55.95916,0 51.96083,55.97915,0 51.78889,55.88388000000001,0 51.72971,55.95971,0 51.68943,55.93278,0 51.64277,55.96054,0 51.43027000000001,55.92722,0 51.39721,55.9922,0 51.48999000000001,56.07888000000001,0 51.6536,56.13444000000001,0 51.43667,56.14444000000001,0 51.36194,56.13054000000001,0 51.3147,56.06972,0 51.22304000000001,56.09916,0 51.20499,56.13943,0 51.1075,56.15139000000001,0 51.07639,56.12498999999999,0 50.83942,56.2411,0 50.86111,56.27804,0 50.90165,56.27944000000002,0 50.90693,56.31583,0 50.87389,56.32666,0 50.85139000000001,56.39027000000001,0 50.785,56.41555,0 50.7625,56.39944,0 50.78527,56.35638,0 50.73304,56.32999000000002,0 50.58638,56.35443,0 50.63110000000001,56.40526,0 50.56971000000001,56.40250000000001,0 50.45,56.54472,0 50.49333,56.61639,0 50.42333,56.58526,0 50.41361000000001,56.62804,0 50.34777,56.67361,0 50.30304,56.67638,0 50.32306,56.65444,0 50.29834,56.63999,0 50.22138000000001,56.66082,0 50.16194000000001,56.615,0 50.07221000000001,56.62266,0 50.10167000000001,56.79416,0 50.0611,56.79361,0 50.07082000000001,56.83082,0 50.01445,56.86721000000001,0 49.73443,56.89667000000001,0 49.75722,56.91415000000001,0 49.71582999999999,56.93361,0 49.76194,56.96500000000001,0 49.72499,56.99110000000001,0 49.71194,57.07361000000001,0 49.41249000000001,57.05305000000001,0 49.41915,57.02194,0 49.26832,57.04361,0 49.23138000000001,57.1311,0 49.14361,57.15972,0 49.22805,57.28889,0 49.18333000000001,57.33139,0 49.01611,57.28305,0 49.00639000000001,57.23332000000001,0 49.04610000000001,57.2011,0 49.01194,57.19332,0 48.99804,57.11888,0 48.95471,57.08554,0 48.84583,57.0886,0 48.86639,57.12249,0 48.83555,57.16444,0 48.56945,57.17249000000001,0 48.4511,57.12054,0 48.30777000000001,57.16860000000001,0 48.19222000000001,57.12471,0 48.24888000000001,57.10666000000001,0 48.16304,57.07972000000002,0 48.2086,57.02722,0 48.13916,56.99833,0 47.98694,57.01444999999999,0 47.97193,56.97387000000001,0 47.93111,57.00944,0 47.91666,56.97665000000001,0 47.83083000000001,57.00416000000001,0 47.785,57.05721,0 47.7336,57.05527000000001,0 47.76971000000001,57.00972000000001,0 47.68916,57.01250000000001,0 47.61721,56.9761,0 47.51139,56.90666,0 47.50249,56.85139,0 47.42444,56.88082,0 47.17083000000001,56.80860000000001,0 47.12277,56.83749,0 47.18194,56.84805,0 47.13277,56.91693000000001,0 46.94471,56.94833000000001,0 46.71583,56.93721,0 46.74471,56.95471,0 46.71510000000001,56.96634000000001,0 46.75388,56.97417,0 46.70805,57.0164,0 46.76806,57.02971,0 46.76528,57.14388,0 46.72638000000001,57.20000000000001,0 46.83443000000001,57.19971,0 46.85194000000001,57.23444000000001,0 46.80888,57.23583,0 46.78972,57.28944,0 46.72055,57.29445,0 46.67611000000001,57.35,0 46.75388,57.37999,0 46.68970000000001,57.39083,0 46.70471000000001,57.42555000000001,0 46.79722000000001,57.45666,0 46.74443,57.52333,0 47.03082,57.49304,0 47.25027,57.57083,0 47.4711,57.52859999999999,0 47.48666,57.58472,0 47.52638000000001,57.58416,0 47.54888,57.66361,0 47.52859,57.70304,0 47.58027000000001,57.74638,0 47.55082,57.765,0 47.5611,57.80249,0 47.77027,57.90028,0 47.70083,57.96361,0 47.45610000000001,57.98555000000001,0 47.38666,58.02332000000001,0 46.52304000000001,58.03889,0 46.44972,58.01749,0 46.34132,58.07474,0 46.30972000000001,58.11054,0 46.35527,58.18721,0 46.41499000000001,58.21054000000001,0 46.41026999999999,58.30805,0 46.48109,58.33222,0 46.41137,58.36388,0 46.59166000000001,58.43194,0 46.54972000000001,58.47665,0 46.59026999999999,58.51832000000001,0 46.58416,58.55804000000001,0 47.0061,58.62249,0 47.00417000000001,58.69583,0 47.11333,58.77249,0 47.265,58.75416,0 47.325,58.80082,0 47.28028,58.81945,0 47.30388,58.85722,0 47.28111000000001,58.90222000000001,0 47.30721,58.91666,0 47.45305000000001,58.92249,0 47.46777000000001,58.88416,0 47.61166,58.91499,0 47.55082,58.9886,0 47.57639,59.06028,0 47.45139,59.12694000000001,0 47.445,59.1675,0 47.39443,59.14722,0 47.22332,59.2261,0 47.25249,59.35555,0 47.05638,59.37860000000001,0 47.11351,59.61137999999999,0 47.14305,59.71333,0 47.12305,59.76139000000001,0 46.92305000000001,59.78444,0 46.92083000000001,59.84665,0 47.03694000000001,60.11832,0 46.89638,60.12583000000001,0 46.83138,60.07306000000001,0 46.60609,60.06527,0 46.36416000000001,60.1211,0 46.35305,60.20972,0 46.295,60.24249,0 46.43083000000001,60.27388,0 46.74499,60.25639000000001,0 46.81304,60.32277,0 46.83193000000001,60.37972,0 46.80444,60.38750000000001,0 46.87805,60.48166000000001,0 46.85666,60.51527,0 47.06166,60.57667000000001,0 47.01749,60.60249000000001,0 47.02388000000001,60.64695,0 46.95277,60.65527,0 47.08721000000001,60.82027,0 47.04314000000001,60.85386000000001,0 47.08027000000001,60.86221,0 47.10749,60.96194000000001,0 47.19138,60.99611000000002,0 47.19720000000002,61.05999,0 47.22833000000001,61.06444,0 47.59415,61.05888,0 + + + 1 + + + + + +57.49650000000001,82.84008,0 52.49656000000001,82.81507000000001,0 52.49656000000001,84.90001,0 52.49656000000001,89.90000000000001,0 53.43657000000001,89.90000000000001,0 54.37659,89.90000000000001,0 55.31659000000001,89.90000000000001,0 56.25661,89.90000000000001,0 57.19662,89.90000000000001,0 58.13662000000001,89.90000000000001,0 59.07665,89.90000000000001,0 60.01665,89.90000000000001,0 60.95667,89.90000000000001,0 61.89668,89.90000000000001,0 62.83669,89.90000000000001,0 63.7767,89.90000000000001,0 64.71672,89.90000000000001,0 65.65673,89.90000000000001,0 66.59672999999999,89.90000000000001,0 67.53675,89.90000000000001,0 67.53675,84.90001,0 67.53675,82.89028,0 67.49638,82.89008,0 62.49644000000001,82.86508000000001,0 57.49650000000001,82.84008,0 + + + 1 + + + + + GMT +04:30 + + +]]> + #khStyle0450 + + + + +74.91575,37.23733,0 74.8111,37.22041,0 74.75110000000001,37.30375,0 74.65109,37.23457,0 74.52970999999999,37.24178,0 74.47942999999999,37.17925,0 74.39722,37.17841,0 74.40054000000001,37.13896,0 74.56543000000001,37.02782,0 74.55304,36.96173000000001,0 74.48888,37.01034000000001,0 74.41998,37.00144,0 74.25194000000001,36.89917,0 74.15166000000001,36.90387,0 74.12109000000001,36.83858000000001,0 74.03831,36.81468,0 73.8522,36.89273000000001,0 73.6683,36.90964,0 72.55663,36.82126,0 72.47416,36.7624,0 72.17554,36.7113,0 72.18163,36.64969,0 72.07916,36.63162,0 72.07471,36.58915,0 71.90443000000001,36.50722,0 71.79584,36.49164,0 71.80834,36.40364,0 71.63307,36.46555,0 71.56305999999999,36.37228,0 71.5789,36.33173,0 71.50725,36.31537,0 71.41252000000002,36.22043,0 71.3389,36.20492,0 71.18706,36.04219,0 71.38499,35.94194,0 71.38721,35.89695,0 71.43997,35.87082,0 71.49082,35.75667,0 71.54526,35.71111,0 71.50888000000001,35.62083,0 71.61665000000001,35.55526,0 71.60193,35.50055,0 71.64943,35.42499,0 71.54859999999999,35.30111,0 71.66388000000001,35.19555,0 71.53554,35.08665,0 71.53803000000001,35.01972,0 71.49890000000001,34.96635,0 71.30914000000001,34.88361,0 71.22553000000001,34.74444,0 71.09583000000001,34.67666,0 71.0886,34.55943,0 70.98748999999999,34.5511,0 71.00054,34.46305,0 71.15886999999999,34.34833,0 71.11832,34.26027,0 71.13554000000001,34.1661,0 71.07720999999999,34.11277,0 71.07720999999999,34.05222,0 70.98109,34.00889,0 70.90555000000001,34.01333,0 70.89109999999999,33.96638,0 70.49136,33.94305,0 70.00276,34.05277000000001,0 69.90637,34.03527,0 69.86913,33.92999,0 69.98554,33.75306,0 70.1375,33.73249000000001,0 70.15138,33.66554,0 70.19664,33.64083,0 70.16804000000001,33.52083,0 70.28610000000001,33.42276,0 70.32693,33.33193,0 70.14499000000001,33.20249,0 70.06776000000001,33.20499,0 70.02888,33.13583000000001,0 69.88109,33.08999,0 69.79137,33.12694,0 69.70081999999999,33.07777,0 69.58083000000001,33.08693,0 69.49081,33.00388,0 69.51277,32.86944,0 69.39499000000001,32.77388,0 69.45833,32.67054,0 69.37776,32.56833,0 69.28749000000001,32.52639,0 69.24802,32.44388,0 69.29137,32.3175,0 69.27193,32.14527,0 69.32825,31.94036,0 69.2244,31.87129,0 69.09972000000001,31.70667,0 69.01944,31.65055,0 68.83305,31.60388,0 68.72803999999999,31.70416000000001,0 68.70722000000001,31.78111000000001,0 68.51944,31.825,0 68.43719,31.78667,0 68.57165999999999,31.76527000000001,0 68.53137,31.72693,0 68.27222,31.77166,0 68.16609,31.83305,0 68.07165999999999,31.69527,0 67.98054999999999,31.63583,0 67.88193,31.63805,0 67.73193000000001,31.52916,0 67.57555000000001,31.53194,0 67.61526000000002,31.42777,0 67.66775,31.4,0 67.77303000000001,31.40861,0 67.79192000000001,31.3411,0 67.38472,31.21527,0 67.25648,31.22233,0 67.05582,31.24305,0 67.04276,31.31639,0 66.95694,31.31806,0 66.84166999999999,31.2725,0 66.79304000000001,31.21972,0 66.72304,31.21222,0 66.68414,31.08611,0 66.57277000000001,30.98138,0 66.39554,30.94083,0 66.28194000000001,30.57528,0 66.35165000000001,30.44527,0 66.32527,30.23778,0 66.23831000000001,30.07138,0 66.36221000000001,29.9561,0 66.25664999999999,29.85194,0 65.03416,29.54111,0 64.69553000000001,29.58638,0 64.47859,29.57306,0 64.21138000000001,29.4986,0 64.12221,29.38861,0 63.5872,29.50389,0 62.48444,29.40611,0 60.86630000000002,29.86366,0 61.78652,30.80953,0 61.80403,30.94514,0 61.8511,31.02111,0 61.76466000000001,31.24477,0 61.7711,31.31833,0 61.71361000000001,31.38332000000001,0 61.10417,31.46305,0 60.84389,31.49833,0 60.79694000000001,32.0375,0 60.83665,32.09027,0 60.85778000000001,32.23471,0 60.58056,33.0886,0 60.59109,33.16305,0 60.85167,33.41805,0 60.85443,33.48999,0 60.94305,33.51944,0 60.88639,33.55721,0 60.66610000000001,33.5675,0 60.52776999999999,33.64415,0 60.50527,33.73915,0 60.55417000000001,33.81332,0 60.50444,34.12222,0 60.54610000000001,34.19638,0 60.67555000000001,34.28833,0 60.66554,34.31249,0 60.91527000000001,34.32,0 60.72165,34.52222,0 60.97137,34.64444,0 60.98333000000001,34.73388,0 61.06305,34.80888,0 61.06972,34.92888000000001,0 61.14249000000001,35.09832,0 61.09471,35.18416,0 61.10444,35.27916,0 61.19276000000001,35.30583,0 61.19444,35.40222,0 61.28778000000001,35.54999,0 61.27655000000001,35.60725,0 61.37888,35.63527,0 61.40610000000002,35.56388,0 61.59583000000001,35.44415,0 61.80249,35.4111,0 61.99583,35.45832,0 62.13256,35.36806,0 62.26944000000001,35.28583,0 62.30915000000002,35.14166,0 62.46500000000001,35.28861,0 62.55444000000001,35.2336,0 62.72220999999999,35.25472,0 62.92249000000001,35.38417,0 63.10527,35.45083,0 63.12666,35.53361,0 63.09528,35.62609,0 63.24002000000002,35.69928,0 63.12972000000001,35.77527,0 63.11944,35.86193,0 63.34249000000001,35.85722000000001,0 63.52833,35.90499,0 63.60111000000001,35.96443,0 63.77832999999999,35.98054000000001,0 63.92055,36.0375,0 64.06386999999999,36.00027,0 64.05971,36.08805,0 64.09498000000001,36.12332,0 64.18137,36.17054,0 64.28248000000001,36.15193,0 64.33665000000001,36.22471,0 64.47387000000001,36.25555,0 64.61526000000001,36.42361,0 64.61693,36.63638,0 64.79526,36.92305,0 64.77916999999999,37.09583,0 64.82304000000001,37.1386,0 65.07277000000001,37.24444,0 65.55443,37.25638,0 65.65082,37.35555000000001,0 65.64444,37.44887,0 65.68109,37.51694,0 65.77193,37.53749,0 65.78167999999999,37.5715,0 65.84526,37.50444,0 66.09054999999999,37.43167,0 66.28999,37.32472,0 66.40833000000001,37.3461,0 66.44748,37.31860000000001,0 66.53773,37.36638,0 66.67221000000001,37.33833,0 67.00417,37.38221,0 67.09648,37.33997,0 67.11749,37.28028,0 67.18637,37.25805,0 67.23997,37.1861,0 67.39722,37.21749,0 67.49249,37.28083,0 67.55748,37.21555,0 67.64333000000001,37.24722,0 67.75526000000001,37.22054,0 67.77988000000001,37.18582,0 67.78221000000001,37.09610000000001,0 67.88554000000001,37.06138,0 68.02831999999999,36.92389,0 68.18719,37.02055,0 68.27499,37.01222,0 68.29471,37.10832,0 68.39749000000001,37.09916000000001,0 68.4122,37.14805,0 68.62388,37.20055000000001,0 68.66415000000001,37.27499,0 68.82165999999999,37.24499,0 68.80663,37.31806,0 68.83804000000001,37.32695,0 68.91943000000001,37.27555,0 68.88777,37.33860000000001,0 68.9997,37.30777,0 69.12527,37.16304,0 69.24664,37.09416,0 69.3886,37.1586,0 69.45055000000001,37.22527,0 69.41110000000001,37.24083000000001,0 69.38026000000001,37.4511,0 69.51582999999999,37.58082,0 69.80692999999999,37.58305,0 69.89915000000001,37.61501,0 69.9586,37.56499,0 70.06245,37.54134,0 70.16193,37.53956,0 70.21554999999999,37.61638,0 70.25360000000001,37.61574,0 70.28581,37.69707,0 70.24693000000001,37.81255,0 70.16553999999999,37.87172,0 70.16137000000001,37.93337,0 70.24745,37.93169,0 70.24721,37.96394,0 70.46416000000001,38.11119,0 70.58443,38.27816,0 70.59775999999999,38.34151,0 70.68552,38.37486,0 70.67221000000001,38.41403,0 70.87388,38.45295,0 70.92998,38.43045,0 70.96720000000002,38.47212,0 71.04971000000001,38.40294,0 71.14554,38.38574,0 71.36638000000002,38.23627,0 71.25277,37.92204,0 71.33472,37.88787,0 71.51537,37.94846,0 71.59193000000002,37.90262,0 71.58859,37.81565,0 71.52878,37.7639,0 71.49571,37.55815,0 71.5141,37.46773,0 71.47942000000001,37.41003,0 71.49026000000001,37.28362,0 71.44693000000001,37.20722000000001,0 71.42943,37.07583,0 71.45694,36.94474,0 71.55468999999999,36.76068,0 71.61006999999999,36.70038,0 71.69525,36.67184,0 71.84276,36.6921,0 72.30636,36.9781,0 72.65851000000001,37.0212,0 72.79359,37.22623,0 73.06914999999999,37.31407,0 73.15054000000001,37.40049,0 73.30721,37.46275,0 73.37248,37.44692,0 73.45637000000001,37.47611,0 73.77598,37.4343,0 73.76888,37.34113,0 73.64943,37.30415,0 73.61998,37.26248,0 73.73858,37.22164,0 74.19721,37.33897,0 74.23748999999999,37.36119,0 74.23997,37.40705,0 74.36388,37.42846,0 74.54221,37.38181,0 74.68427,37.39974,0 74.83277,37.32545,0 74.91575,37.23733,0 + + + 1 + + + + GMT +05:00 + + +]]> + #khStyle0500 + + + + + +74.69081,37.06259,0 74.73943,37.02037,0 74.81749000000001,37.02176000000001,0 74.90166000000001,36.91093,0 74.95972,36.98012,0 75.14444,36.99987,0 75.39722,36.91406000000001,0 75.45444000000001,36.73044,0 75.52303000000001,36.72906,0 75.54637,36.76963,0 75.63916,36.76355,0 75.85526000000002,36.66717,0 76.00499000000001,36.4586,0 75.99082,36.31444,0 76.04166000000001,36.23751,0 75.99359,36.20833,0 75.99387,36.15971,0 75.92303,36.1236,0 75.92609,36.07721,0 75.97275999999999,36.01165,0 76.12387,35.97776,0 76.17693,35.81444,0 76.42165,35.8336,0 76.56416,35.91276,0 76.58971000000001,35.75695,0 76.7122,35.715,0 76.77805000000001,35.65526,0 76.86415,35.64888,0 76.91443,35.59777,0 77.07555000000001,35.58777,0 77.18747999999999,35.52805,0 77.30803000000002,35.53472,0 77.43137,35.47165,0 77.7011,35.46111,0 77.82393,35.50133000000001,0 77.04248,35.09916,0 77.06081,35.01472,0 76.96416000000001,34.94055,0 76.91692999999999,34.68138,0 76.86998,34.65888,0 76.80138,34.67222,0 76.7272,34.74388,0 76.56303000000001,34.73166,0 76.47026,34.76999,0 76.29359,34.70027,0 76.22916000000001,34.60944,0 76.16748,34.58638,0 75.98804,34.62694,0 75.80553999999999,34.50721,0 75.66137000000001,34.50082,0 75.39249,34.55471,0 75.24303999999999,34.62609,0 74.69275,34.6936,0 74.38916,34.78194,0 73.94914,34.65444,0 73.94637,34.56554,0 73.88193,34.52194,0 73.87054000000001,34.45833,0 73.79637,34.38555,0 73.84805,34.3186,0 73.97331,34.30277,0 74.01776,34.21804000000001,0 74.01416999999999,34.17556,0 73.9122,34.11527,0 73.91332,34.0686,0 73.97887,34.01139,0 74.24442999999999,34.01915,0 74.29582000000001,33.97748,0 74.23581,33.88416,0 74.05025999999999,33.83167,0 73.99471,33.75555,0 74,33.65417,0 74.15443000000001,33.56139,0 74.18248,33.51056,0 74.12581,33.34333,0 74.02415000000001,33.27638,0 74.01331999999999,33.19888,0 74.17331,33.04749,0 74.33414999999999,33.00054,0 74.36388,32.86944,0 74.32966999999999,32.81542,0 74.37164,32.7711,0 74.45444000000001,32.79306,0 74.53166,32.75027,0 74.63248,32.77055,0 74.70165,32.84694,0 74.65358999999999,32.59332,0 74.70387,32.48555,0 74.74443000000001,32.465,0 74.86165,32.48472,0 74.93858,32.44887,0 75.04886999999999,32.47832,0 75.31931,32.34466,0 75.32859000000001,32.29276,0 75.39130000000002,32.24158,0 75.32883,32.20907,0 75.30686,32.13391,0 75.25653,32.09287,0 75.22417,32.11676,0 75.19403,32.07404,0 75.04075000000002,32.04146,0 74.90347000000001,32.05329,0 74.83311000000001,31.96271000000001,0 74.60532000000001,31.87712,0 74.54922000000001,31.74385,0 74.48872,31.72159,0 74.61033999999999,31.55431,0 74.59842,31.48941,0 74.65510999999999,31.42797,0 74.54837000000001,31.35443,0 74.53898,31.11872,0 74.55728000000001,31.07605,0 74.62375,31.12393,0 74.68432,31.11202,0 74.69459000000002,31.05396,0 74.56112,31.04559,0 74.55499,30.99505,0 74.43221,30.94277,0 74.40063000000001,30.88415000000001,0 74.31693,30.88944,0 74.16109,30.66167,0 74.04886999999999,30.59916000000001,0 74.05025999999999,30.515,0 73.99609,30.505,0 73.93380000000002,30.41625,0 73.8725,30.3901,0 73.8586,30.36028,0 73.93442,30.31416,0 73.96442,30.23472,0 73.93341,30.136,0 73.39749000000001,29.94277,0 73.26527,29.55306,0 73.08638000000001,29.24582,0 72.98888,29.14194000000001,0 72.94832,29.03583,0 72.38970999999999,28.785,0 72.29221,28.68,0 72.20663999999999,28.4025,0 71.91998,28.12082,0 71.89694,27.96194,0 71.62691,27.87611,0 71.22581,27.84583,0 70.86665000000001,27.70693,0 70.73775999999999,27.73138,0 70.6622,27.86333000000001,0 70.6636,27.92833,0 70.51443,28.03917,0 70.36832,28.02083,0 70.20354,27.88558,0 70.11971,27.81611,0 70.0311,27.59055,0 69.86749,27.40861,0 69.58333,27.17833,0 69.50972,26.99221,0 69.48609999999999,26.80638,0 69.51277,26.74667000000001,0 69.72276000000001,26.66527,0 69.80081,26.59416,0 70.07138000000001,26.59611,0 70.17192,26.55277,0 70.17386999999999,26.24444,0 70.09276,26.08,0 70.1172,25.91888000000001,0 70.29276000000002,25.70138,0 70.38611,25.67472,0 70.60637,25.71416,0 70.66638,25.69833,0 70.67747,25.40166,0 70.75333000000001,25.27389000000001,0 70.8797,25.15611,0 70.9422,24.93555,0 71.07743000000001,24.68047,0 70.99276,24.6361,0 70.97971,24.56056,0 71.00555,24.54084,0 71.0061,24.45805,0 71.08194,24.44861,0 71.10581999999999,24.41638,0 71.02916999999999,24.36361,0 70.92804,24.36167,0 70.86443,24.31694,0 70.88582,24.27444,0 70.79082,24.23944,0 70.65054000000001,24.24138,0 70.58443,24.27834,0 70.56776000000001,24.37138,0 70.60081,24.415,0 70.56749000000002,24.43639,0 70.12009000000001,24.30904,0 70.07071000000002,24.19792,0 70.01470999999999,24.16972000000001,0 69.72360000000001,24.17111,0 69.59860000000001,24.28139,0 69.31081,24.29666,0 69.18941,24.25805,0 69.08028,24.29722,0 68.98803,24.25694,0 68.92693,24.32555,0 68.85804,24.24166,0 68.82471000000001,24.33278,0 68.78306000000001,24.33278,0 68.74525,24.31639,0 68.74721,23.96999,0 68.39055000000001,23.96749000000001,0 68.37637000000001,23.94417,0 68.36193,23.97388,0 68.33054,23.91472,0 68.29053999999999,23.94444,0 68.28194000000001,23.89777,0 68.21442,23.86833,0 68.1978,23.76668,0 68.21388,23.68055,0 68.28027,23.66666,0 68.23054999999999,23.64361,0 68.2011,23.66417,0 68.14028,23.60471,0 68.32138999999999,23.58083,0 68.44747,23.72693,0 68.58804000000001,23.76695,0 68.62831,23.82611,0 68.81833,23.87638000000001,0 68.66887,23.80972,0 68.63638,23.75722,0 68.46693000000001,23.65304,0 68.48553,23.61,0 68.42331,23.62722,0 68.40292,23.51842,0 68.39158999999999,23.4551,0 68.43692,23.42638,0 68.46278,23.43944,0 68.47638000000001,23.40027,0 68.53804,23.41805,0 68.51105,23.36989,0 68.53916,23.27833,0 68.56887999999999,23.25,0 68.62053,23.26777,0 68.5936,23.22888,0 68.66665999999999,23.14222,0 69.14346999999999,22.8714,0 69.20937000000001,22.73017,0 69.13518999999999,22.5504,0 69.06914,22.48121,0 68.96388,22.38445,0 68.94274,22.32166,0 68.96278,22.24777,0 69.22942000000001,21.94722,0 69.36053,21.84722,0 69.38970999999999,21.87444,0 69.40331999999999,21.80306,0 69.59582,21.63333,0 69.80888,21.46361,0 70.01582999999999,21.18611,0 70.26028,20.97666,0 70.52777,20.81111,0 70.83138,20.69444,0 70.96608999999999,20.70277,0 71.01195000000001,20.74166,0 71.46693000000001,20.88194,0 71.56191,20.97861,0 71.56026,20.94611,0 72.04886999999999,21.16083,0 72.11053,21.20194,0 72.08611000000001,21.24471,0 72.10387,21.30972,0 72.24249,21.46527,0 72.30326,21.63418,0 72.52789,21.67045,0 72.61156,21.47095,0 72.59081999999999,21.41195,0 72.6947,21.46972,0 72.75499000000001,21.46472,0 72.56667,21.3825,0 72.64776999999999,21.35889,0 72.58249000000001,21.34138,0 72.60988999999999,21.25536,0 72.61248999999999,21.12068,0 72.62608,21.08472,0 72.66921000000001,21.093,0 72.70011,21.07702,0 72.70739,21.07498,0 72.73706,20.99305,0 72.78471999999999,21.00082,0 72.89109999999999,20.97888,0 72.83098,20.92505,0 72.79096,20.87397,0 72.83443,20.83416,0 72.89305,20.87305,0 72.88916999999999,20.79555,0 72.92110000000001,20.81583,0 72.94609,20.75833,0 72.90166000000001,20.73222,0 72.88527000000001,20.51305,0 72.75359,20.295,0 72.72745999999999,20.13218,0 72.64748,19.84666,0 72.67525999999999,19.74611,0 72.73220000000001,19.78277,0 72.73165,19.70555,0 72.68831,19.72111,0 72.71693000000001,19.5475,0 72.74249,19.51056,0 72.73305000000001,19.57805,0 72.79443000000001,19.52361,0 72.87916000000001,19.52778,0 72.74359,19.47611,0 72.75443,19.36972,0 72.79776,19.32611,0 72.96388,19.30917,0 73.04722,19.21726,0 73.01609999999999,19.20583,0 72.96971000000001,19.29166,0 72.77748,19.30861,0 72.77638,19.20388,0 72.82666,19.25056,0 72.77998,19.16027,0 72.82082,19.17277,0 72.82249,19.03777,0 72.76999000000002,18.94306,0 72.80247,18.95304,0 72.80582,18.895,0 72.85741,18.79465,0 72.85748,18.64805,0 72.91443000000001,18.55277,0 72.9611,18.55139000000001,0 73.01694000000001,18.46722,0 72.99387,18.4561,0 72.95139,18.52944,0 72.90916,18.52638,0 72.90694000000001,18.36249,0 72.98581,18.28389,0 73.06499,18.27389,0 73.07887,18.21472,0 73.05165,18.18305,0 73.05663000000001,18.22138,0 72.97165000000001,18.23944,0 72.93803,18.27945,0 72.92221000000001,18.22722,0 72.96915,18.18694,0 72.97971,18.06305,0 73.04443000000001,18.05167000000001,0 73.00054,18.01444,0 73.03498999999999,17.98472,0 73.01166000000001,17.94805,0 73.10914,17.76972,0 73.11443,17.63666,0 73.14166,17.59361,0 73.19914,17.58638,0 73.12776,17.56611,0 73.12776,17.53943,0 73.18581,17.44027,0 73.15998999999999,17.40055,0 73.24442999999999,17.28417,0 73.18359,17.29888,0 73.2747,17.08194,0 73.27139,17.03056,0 73.24832000000002,17.03555,0 73.28805,16.98166,0 73.26972000000001,16.85333,0 73.30971,16.80583,0 73.29109,16.7575,0 73.31693,16.62861,0 73.37276,16.62305,0 73.37276,16.59249,0 73.30859,16.60306,0 73.36774,16.55861,0 73.36054,16.51222,0 73.31581,16.55695,0 73.30165,16.5225,0 73.38194,16.39861,0 73.35581999999999,16.36889,0 73.40998999999999,16.21749,0 73.43804,16.21832,0 73.44776,16.10889,0 73.45499,16.16916,0 73.48859,16.18,0 73.44776,16.05584,0 73.51331999999999,16.01972,0 73.48553,15.99139,0 73.59387,15.89278,0 73.64943,15.78416,0 73.64193,15.74027,0 73.69721,15.72195,0 73.71638,15.61972,0 73.83526000000001,15.65944,0 73.73081999999999,15.59777,0 73.75832,15.49471,0 73.86388,15.53472,0 73.86499000000002,15.50667,0 73.78859,15.455,0 73.91692999999999,15.41916,0 73.96361,15.36361,0 73.91249000000001,15.40111,0 73.78610000000001,15.39805,0 73.88054,15.35971,0 73.96082000000001,15.15472,0 73.91553999999999,15.07805,0 74.01999000000001,15.00055,0 74.03361,14.91722,0 74.10136,14.86709,0 74.12303000000001,14.84417,0 74.20914999999999,14.89527,0 74.23499,14.87471,0 74.08971,14.79777,0 74.19414000000002,14.71444,0 74.22331,14.73777,0 74.25082999999999,14.71889,0 74.26470999999999,14.62222,0 74.33859,14.60611,0 74.28831,14.58417,0 74.30081,14.52166,0 74.3336,14.51555,0 74.35803,14.56833,0 74.42443,14.47611,0 74.39444,14.45332,0 74.35138000000001,14.51028,0 74.40942,14.29445,0 74.51186,14.24342,0 74.42525999999999,14.24861,0 74.49442999999999,14.01639,0 74.61913,13.8325,0 74.65721000000002,13.65972,0 74.68193000000001,13.70611,0 74.73443,13.65222,0 74.66388000000002,13.63194,0 74.67609,13.51028,0 74.71249000000002,13.46806,0 74.70139,13.41056,0 74.68248000000001,13.46278,0 74.68665,13.37833,0 74.77916999999999,13.08389,0 74.81026000000001,12.86472,0 74.84276,12.84556,0 74.93998000000001,12.87111,0 74.85999,12.82389,0 74.82332,12.83361,0 74.85526,12.755,0 75.10721,12.22,0 75.17613,12.06975,0 75.19582,12.00389,0 75.2186,12.01806,0 75.27831999999999,11.96194,0 75.25912,12.01889,0 75.29636000000002,12.03777,0 75.33167,12.01472,0 75.27442000000001,12.00777,0 75.30971,11.95222,0 75.39388,11.97222,0 75.39664999999999,11.91611,0 75.30775,11.93806,0 75.31219,11.90056,0 75.52858999999999,11.70027,0 75.61304,11.47166,0 75.67859,11.44583,0 75.7411,11.36306,0 75.72553000000001,11.32972,0 75.90748000000001,10.80333,0 75.93858,10.79277,0 75.92416,10.75556,0 76.05553999999999,10.505,0 76.15776,10.19527,0 76.20663999999999,10.20306,0 76.19497,10.26445,0 76.24109,10.22666,0 76.17747,10.17,0 76.19637,10.06528,0 76.23437,9.986049,0 76.23848,9.953955000000002,0 76.31582,9.463608000000001,0 76.44247,9.143325000000001,0 76.41914,9.249165,0 76.46138000000001,9.149445,0 76.48387,9.161667,0 76.47581,9.115550000000001,0 76.45471000000001,9.122499,0 76.52694,8.938890000000001,0 76.55692999999999,8.990829,0 76.55859,8.95166,0 76.57720999999999,8.994166999999999,0 76.66748,9.003609000000001,0 76.62943,8.981945,0 76.65860000000001,8.964998,0 76.60053000000001,8.971947,0 76.57082,8.939159,0 76.61414000000001,8.928890000000001,0 76.60415999999999,8.90972,0 76.54498,8.930277,0 76.54387,8.907496999999999,0 76.9986,8.365273999999999,0 77.30304,8.123327,0 77.54082,8.069715,0 77.5872,8.134722,0 77.77554000000001,8.181108,0 77.79275,8.225,0 77.99693000000001,8.338328000000001,0 78.06053,8.364167,0 78.13164999999999,8.486667000000001,0 78.13997999999999,8.617221000000001,0 78.11192,8.654715,0 78.21053000000001,8.75555,0 78.20804,8.781658999999999,0 78.16361000000002,8.754165,0 78.19247,8.904166999999999,0 78.39664999999999,9.089721000000001,0 78.65637,9.147779,0 78.66221,9.176660999999999,0 78.97110000000001,9.273607999999999,0 79.27222,9.252773,0 79.44081,9.148337,0 79.69427,9.086679,0 79.88623,8.969967000000001,0 79.91638000000002,8.931663,0 79.92596,8.795825000000001,0 79.77399000000001,8.533196,0 79.69804000000001,8.217504,0 79.70638,8.035830000000001,0 79.79694000000001,7.661394,0 79.82639,7.198893000000001,0 79.86248999999999,7.155837,0 79.8436,7.125272000000001,0 79.80748,7.192214,0 79.85831,7.024167000000001,0 79.85137,6.83639,0 79.98648,6.432363,0 80.02666000000001,6.268337000000001,0 80.12581,6.093891,0 80.20081999999999,6.026112000000001,0 80.44026,5.96555,0 80.46471,5.933340000000001,0 80.59193000000001,5.918336,0 80.71638,5.956946,0 80.8186,6.037776,0 81.11887,6.112503000000001,0 81.19609,6.181946,0 81.21138000000001,6.160284,0 81.32417,6.198327,0 81.66110000000001,6.440003000000001,0 81.78221000000001,6.624720000000001,0 81.89166,7.013609,0 81.87886,7.312221000000001,0 81.82656,7.473186000000001,0 81.80025999999999,7.610552,0 81.69465,7.757684,0 81.59305000000001,7.838892,0 81.56944000000001,7.983891000000001,0 81.51555000000002,8.003052,0 81.46361,8.112769999999999,0 81.43359,8.085824000000002,0 81.39027,8.140003999999999,0 81.39916,8.187497000000001,0 81.4397,8.101395,0 81.44331,8.173889000000001,0 81.39499000000001,8.340831,0 81.35498,8.366382,0 81.35442000000001,8.403893,0 81.39137,8.367217999999999,0 81.36136999999999,8.487215000000001,0 81.32026999999999,8.520002,0 81.26555000000001,8.453609,0 81.16775,8.514998,0 81.13054,8.500005,0 81.16137000000001,8.534447999999999,0 81.21388,8.508609,0 81.20833,8.570826,0 81.25221000000001,8.542214,0 81.20555000000002,8.608059000000001,0 81.23109,8.651106,0 80.97971,8.973611999999999,0 80.92081000000002,8.935551,0 80.93027000000001,8.979444000000001,0 80.87608,9.036395000000001,0 80.95750000000001,9.010556000000001,0 80.89249,9.111392,0 80.83222000000001,9.139715000000001,0 80.88388000000001,9.138609000000001,0 80.82444000000001,9.261945000000001,0 80.79665,9.266660999999999,0 80.80582000000001,9.240273,0 80.73499,9.302498999999999,0 80.80193,9.292769,0 80.36803000000002,9.653893999999999,0 80.24818999999999,9.827252,0 79.93916,10.12232,0 79.85971000000001,10.29538,0 79.84081999999999,10.81778,0 79.83110000000001,11.345,0 79.76389,11.36,0 79.67192,11.29556,0 79.76667000000001,11.38389,0 79.82249,11.37333,0 79.75139,11.54916,0 79.78386999999999,11.775,0 79.86720000000001,12.03277,0 80.0061,12.23027,0 79.94193,12.22305,0 80.03360000000001,12.27861,0 80.16025999999999,12.47305,0 80.25888000000001,12.78221,0 80.26277,12.94916,0 80.34972000000001,13.33417,0 80.22581,13.68,0 80.24748,13.80889,0 80.14915000000002,14.01111,0 80.12886,14.23667,0 80.03999,14.19528,0 80.07916,14.24472,0 80.13721000000001,14.25639,0 80.17415,14.34389,0 80.19859,14.57027,0 80.14413999999999,14.56555,0 80.18221,14.59638,0 80.15331000000001,14.67445,0 80.10578000000001,14.78102,0 80.04886999999999,15.04889,0 80.09081999999999,15.30916,0 80.20637000000002,15.48861,0 80.27943000000001,15.69917,0 80.55415000000001,15.87694,0 80.68552,15.88306,0 80.65776,15.88861,0 80.67137000000001,15.90583,0 80.80443000000001,15.84472,0 80.81507000000001,15.71571,0 81.01727,15.77555,0 81.00171,15.84445,0 81.15837000000001,15.97527,0 81.15782,16.05306,0 81.25944000000001,16.27662,0 81.41947999999999,16.33777,0 81.54474999999999,16.34416,0 81.54504000000001,16.37305,0 81.5856,16.33721,0 81.72726,16.31083,0 82.07449,16.44305,0 82.30199,16.575,0 82.28032,16.61944,0 82.31226,16.60444,0 82.34644,16.70472,0 82.37195,16.86854,0 82.36449,16.93222,0 82.35971000000002,16.82056,0 82.27222,16.86222,0 82.2486,16.92027,0 82.31331,17.04556,0 82.50555,17.22305,0 82.50565,13.81117,0 82.50581,8.811171,0 82.50595000000001,3.811175,0 82.5061,-1.188829,0 82.50624999999999,-6.188824,0 82.5064,-11.18883,0 82.50655,-16.18883,0 82.50658,-17.48883,0 82.50671,-22.48882,0 82.50684,-27.48883,0 82.50697,-32.48883,0 82.50700000000002,-33.68883,0 82.50713,-38.68883,0 82.50727999999999,-43.68883,0 82.5074,-48.68883000000001,0 82.50753000000002,-53.68882000000001,0 82.50766,-58.68883,0 82.5078,-63.68882,0 82.50792,-68.68883,0 82.50802,-72.28883000000002,0 82.50816,-77.28883,0 82.50829,-82.28883,0 82.50834999999999,-84.89999,0 82.50848000000001,-89.90000000000001,0 81.50870000000001,-89.90000000000001,0 80.50892,-89.90000000000001,0 79.50912000000001,-89.90000000000001,0 78.50934,-89.90000000000001,0 77.50954000000002,-89.90000000000001,0 76.50977,-89.90000000000001,0 75.50998,-89.90000000000001,0 74.5102,-89.90000000000001,0 73.51040999999999,-89.90000000000001,0 72.51063000000001,-89.90000000000001,0 71.51083,-89.90000000000001,0 70.51105,-89.90000000000001,0 69.51125,-89.90000000000001,0 68.51148000000001,-89.90000000000001,0 67.51170000000001,-89.90000000000001,0 67.51170000000001,-89.64822,0 67.51170000000001,-84.64822,0 67.51170000000001,-79.64822,0 67.51170000000001,-76.88749,0 67.51170000000001,-71.88749,0 67.51170000000001,-66.88749,0 67.51170000000001,-61.88749000000001,0 67.51170000000001,-56.88749,0 67.51170000000001,-51.88749,0 67.51169000000002,-46.88749,0 67.51169000000002,-41.88749,0 67.51169000000002,-39.58749,0 67.51169000000002,-34.58749,0 67.51169000000002,-29.58749,0 67.51169000000002,-24.58749,0 67.51169000000002,-22.17509,0 67.51169000000002,-17.17509,0 67.51169000000002,-12.17509,0 67.51169000000002,-7.175088,0 67.51169000000002,-2.175094,0 67.51169000000002,2.82491,0 67.51169000000002,7.824905,0 69.14654,7.824959000000001,0 74.14655000000001,7.825121,0 74.14655000000001,12.15223,0 72.51169,12.15223,0 67.51169000000002,12.15223,0 67.51169000000002,13.87695,0 67.51169000000002,18.87694,0 67.51169000000002,23.87695,0 67.48248,23.89583,0 67.53803000000002,23.93813000000001,0 67.50583,23.92138,0 67.50054,23.97499,0 67.45277,23.98666,0 67.3633,24.06714,0 67.28166,24.28083000000001,0 67.29803,24.33944,0 67.35942,24.34249,0 67.27887,24.35694,0 67.28554,24.43639,0 67.25722,24.41361,0 67.21361000000002,24.50361,0 67.22971,24.53305,0 67.18165000000001,24.57972,0 67.25166,24.58916,0 67.15637000000001,24.6075,0 67.14679,24.6441,0 67.07283000000001,24.7676,0 66.96082,24.83861,0 66.9511,24.80472,0 66.85943,24.85444,0 66.65028,24.82611,0 66.70499,24.89167,0 66.67415,24.93388,0 66.73276,25.19749,0 66.54637,25.3629,0 66.49576999999999,25.39812,0 66.26389,25.46778,0 65.84665,25.41667,0 65.66776,25.34278,0 65.46642,25.38267,0 65.38777,25.3625,0 65.38611,25.39056,0 65.25417,25.37749,0 65.13970000000001,25.28778,0 64.76888,25.32138,0 64.66776000000002,25.25694,0 64.66499,25.20944,0 64.70999000000001,25.18027,0 64.61998,25.16999,0 64.63109,25.22056,0 64.59276,25.25556,0 64.51666,25.26944,0 64.43497000000001,25.23111000000002,0 64.25555,25.31472,0 64.09166999999999,25.32861000000001,0 64.06299,25.33679,0 63.92917000000001,25.33416,0 63.7486,25.38527,0 63.57249,25.36,0 63.46998,25.28028,0 63.52361,25.21361,0 63.50500000000002,25.18861,0 63.15583,25.25638,0 63.00805,25.21471,0 62.74471,25.25945,0 62.52693,25.25556,0 62.46444,25.23638,0 62.48554000000001,25.20944,0 62.36221000000001,25.17332,0 62.33638,25.12778,0 62.39111000000001,25.10221,0 62.35305,25.09195,0 62.28167000000001,25.105,0 62.31917,25.14277,0 62.29527,25.19916,0 62.16777,25.21638,0 62.07777000000002,25.18138,0 62.10444,25.10167,0 61.91137000000001,25.11277,0 61.86193000000001,25.09277,0 61.83721,25.03444,0 61.72444,25.0525,0 61.78221,25.19027000000001,0 61.61103000000001,25.19764,0 61.64695,25.30611,0 61.66859000000001,25.63277,0 61.70361000000001,25.67667000000001,0 61.68638,25.795,0 61.77583000000001,25.81861,0 61.84416,26.21166,0 61.87610000000001,26.24638,0 62.10388,26.31444,0 62.12887,26.34444,0 62.13583000000001,26.38083,0 62.27803000000001,26.35402,0 62.27138,26.42472,0 62.32027000000001,26.51527,0 62.44609,26.56888,0 62.74305,26.61167,0 62.77276000000001,26.64972,0 63.17638000000001,26.63111,0 63.20638,26.84222,0 63.29056,26.89222,0 63.25916,26.93443,0 63.25305,27.08361,0 63.27859,27.12194,0 63.34194,27.1225,0 63.28832,27.21861,0 63.20583,27.2675,0 62.93333000000001,27.21333,0 62.82305000000002,27.23027,0 62.76471,27.27194,0 62.79583,27.28555,0 62.80694,27.32332,0 62.77833,27.35333,0 62.83972,27.47443000000001,0 62.82193,27.76027,0 62.75777,28.00027,0 62.78138,28.26695,0 62.59249,28.2336,0 62.40499,28.41722,0 61.90554,28.555,0 61.58138000000001,28.88083,0 61.53361000000001,29.0125,0 61.48804000000001,29.04361,0 61.51111,29.08861,0 61.42471,29.15528000000001,0 61.36027,29.26583000000001,0 61.3586,29.38444000000001,0 61.31443000000001,29.39583,0 60.86630000000002,29.86366,0 62.48444,29.40611,0 63.5872,29.50389,0 64.12221,29.38861,0 64.21138000000001,29.4986,0 64.47859,29.57306,0 64.69553000000001,29.58638,0 65.03416,29.54111,0 66.25664999999999,29.85194,0 66.36221000000001,29.9561,0 66.23831000000001,30.07138,0 66.32527,30.23778,0 66.35165000000001,30.44527,0 66.28194000000001,30.57528,0 66.39554,30.94083,0 66.57277000000001,30.98138,0 66.68414,31.08611,0 66.72304,31.21222,0 66.79304000000001,31.21972,0 66.84166999999999,31.2725,0 66.95694,31.31806,0 67.04276,31.31639,0 67.05582,31.24305,0 67.25648,31.22233,0 67.38472,31.21527,0 67.79192000000001,31.3411,0 67.77303000000001,31.40861,0 67.66775,31.4,0 67.61526000000002,31.42777,0 67.57555000000001,31.53194,0 67.73193000000001,31.52916,0 67.88193,31.63805,0 67.98054999999999,31.63583,0 68.07165999999999,31.69527,0 68.16609,31.83305,0 68.27222,31.77166,0 68.53137,31.72693,0 68.57165999999999,31.76527000000001,0 68.43719,31.78667,0 68.51944,31.825,0 68.70722000000001,31.78111000000001,0 68.72803999999999,31.70416000000001,0 68.83305,31.60388,0 69.01944,31.65055,0 69.09972000000001,31.70667,0 69.2244,31.87129,0 69.32825,31.94036,0 69.27193,32.14527,0 69.29137,32.3175,0 69.24802,32.44388,0 69.28749000000001,32.52639,0 69.37776,32.56833,0 69.45833,32.67054,0 69.39499000000001,32.77388,0 69.51277,32.86944,0 69.49081,33.00388,0 69.58083000000001,33.08693,0 69.70081999999999,33.07777,0 69.79137,33.12694,0 69.88109,33.08999,0 70.02888,33.13583000000001,0 70.06776000000001,33.20499,0 70.14499000000001,33.20249,0 70.32693,33.33193,0 70.28610000000001,33.42276,0 70.16804000000001,33.52083,0 70.19664,33.64083,0 70.15138,33.66554,0 70.1375,33.73249000000001,0 69.98554,33.75306,0 69.86913,33.92999,0 69.90637,34.03527,0 70.00276,34.05277000000001,0 70.49136,33.94305,0 70.89109999999999,33.96638,0 70.90555000000001,34.01333,0 70.98109,34.00889,0 71.07720999999999,34.05222,0 71.07720999999999,34.11277,0 71.13554000000001,34.1661,0 71.11832,34.26027,0 71.15886999999999,34.34833,0 71.00054,34.46305,0 70.98748999999999,34.5511,0 71.0886,34.55943,0 71.09583000000001,34.67666,0 71.22553000000001,34.74444,0 71.30914000000001,34.88361,0 71.49890000000001,34.96635,0 71.53803000000001,35.01972,0 71.53554,35.08665,0 71.66388000000001,35.19555,0 71.54859999999999,35.30111,0 71.64943,35.42499,0 71.60193,35.50055,0 71.61665000000001,35.55526,0 71.50888000000001,35.62083,0 71.54526,35.71111,0 71.49082,35.75667,0 71.43997,35.87082,0 71.38721,35.89695,0 71.38499,35.94194,0 71.18706,36.04219,0 71.3389,36.20492,0 71.41252000000002,36.22043,0 71.50725,36.31537,0 71.5789,36.33173,0 71.56305999999999,36.37228,0 71.63307,36.46555,0 71.80834,36.40364,0 71.79584,36.49164,0 71.90443000000001,36.50722,0 72.07471,36.58915,0 72.07916,36.63162,0 72.18163,36.64969,0 72.17554,36.7113,0 72.47416,36.7624,0 72.55663,36.82126,0 73.6683,36.90964,0 73.8522,36.89273000000001,0 74.03831,36.81468,0 74.12109000000001,36.83858000000001,0 74.15166000000001,36.90387,0 74.25194000000001,36.89917,0 74.41998,37.00144,0 74.48888,37.01034000000001,0 74.55304,36.96173000000001,0 74.56543000000001,37.02782,0 74.69081,37.06259,0 + + + + + +70.25215,-6.970275,0 70.25215,-9.433405000000001,0 73.35092,-9.431101,0 73.34769,-6.970275,0 70.25215,-6.970275,0 + + + 1 + + + + + +78.59721999999999,72.20972,0 78.67693,72.17944,0 78.80803,72.18332000000001,0 78.7711,72.17027,0 78.91165,72.14444,0 78.91081,72.11471,0 79.01859,72.11998,0 79.09193000000001,72.10165000000001,0 79.09444000000001,72.07055,0 79.38275000000002,72.06219,0 79.42276,72.03554,0 79.69692000000001,72.05915,0 79.86720000000001,72.02249000000001,0 79.91002,71.98448000000001,0 80.23093,71.94193,0 80.24838,71.91006,0 80.34878999999999,71.88601,0 80.2719,71.87848,0 80.27464000000001,71.85148,0 80.17328999999999,71.86931,0 80.03504,71.83147,0 80.12739999999999,71.7749,0 80.06631,71.76943,0 80.13540999999999,71.67453,0 79.86972,71.60027,0 79.38026000000001,71.61637,0 79.33138,71.59775999999999,0 79.39082000000001,71.54387,0 79.3586,71.49413,0 79.14027,71.42165,0 79.1747,71.34609,0 79.22915999999999,71.3175,0 79.50832,71.29331999999999,0 79.96638,71.13109,0 80.55004,71.05757,0 80.56647,70.85477,0 80.69016000000001,70.80186000000001,0 80.59229000000001,70.71675000000001,0 80.75629000000001,70.66586,0 80.72072,70.5945,0 80.6601,70.57407000000001,0 80.66569,70.51388,0 80.60648999999999,70.50095,0 80.67014000000002,70.44623,0 80.79858,70.44119000000001,0 80.79106,70.41504999999999,0 80.72770000000001,70.41077,0 80.76217,70.39443,0 80.70740000000001,70.39100999999999,0 80.69155000000001,70.42319999999999,0 80.62567,70.42167000000001,0 80.57176,70.46187999999999,0 80.17683,70.43655,0 80.18601000000001,70.39182,0 80.08208999999999,70.39373000000001,0 80.11404,70.36096000000001,0 79.85748,70.27222000000002,0 79.7247,70.28415000000001,0 79.70360000000001,70.26999000000001,0 79.73831,70.24887,0 79.70889,70.23859,0 79.62943,70.22109,0 79.49887,70.11053,0 79.32805000000001,70.14888000000001,0 79.34943,70.04498,0 79.19443,70.05165,0 79.17859,70.03498,0 79.21860000000001,70.01166000000001,0 79.11971,70.00664999999999,0 79.18747999999999,69.96416000000002,0 78.96582000000001,69.88026000000002,0 78.87527,69.88164999999999,0 79.01888,69.83499999999999,0 78.97582000000001,69.81165,0 79.06331,69.78664000000001,0 79.06638,69.74721,0 79.13970999999999,69.74303999999999,0 79.00417,69.69693,0 79.50583,69.65358999999999,0 79.49165000000001,69.63638,0 79.5372,69.63081,0 79.50082,69.60471,0 79.59583000000001,69.58832,0 79.63916999999999,69.48582,0 79.74082,69.44832,0 79.71388,69.43248,0 79.82805000000001,69.42249,0 79.82278,69.39444,0 79.8772,69.37276,0 79.85914000000001,69.34610000000001,0 80.14597999999999,69.36324999999999,0 80.76669000000001,69.30504000000001,0 80.79311,69.26394999999999,0 80.95596000000001,69.20667,0 81.33582,69.28803000000001,0 81.44414,69.25443000000001,0 81.58249000000001,69.27582,0 81.64028,69.31135999999999,0 81.61387000000002,69.32833000000001,0 81.62302,69.41526,0 81.67249,69.44832,0 81.7811,69.43137,0 81.93611,69.34665,0 81.75972000000002,69.25249000000001,0 81.81331,69.20055000000001,0 82.46388,69.16054,0 82.46138999999999,69.12442,0 82.50472000000002,69.10831,0 82.31638,69.05387,0 82.49721,68.98775999999999,0 82.5522,68.81833,0 82.78288000000001,68.79881,0 82.80164000000001,68.74082,0 83.04276,68.66776,0 82.9011,68.62527,0 82.69302999999999,68.63275,0 82.58999,68.60276,0 82.55859000000001,68.61111,0 82.54915,68.61443,0 82.45610000000001,68.57832999999999,0 82.68053999999999,68.49137,0 82.71249,68.40443000000001,0 82.68443000000001,68.34636999999999,0 82.70663999999999,68.29331999999999,0 82.57361,68.25583,0 82.52332000000001,68.20694,0 82.54359,68.17276,0 82.39276,68.17747,0 82.35693000000001,68.09583000000001,0 82.39610999999999,68.05914,0 82.37442,67.94914,0 81.98888,67.96332,0 81.8772,67.93165999999999,0 81.76194,67.95247999999999,0 81.72443000000001,67.92415,0 81.90304999999999,67.77778000000001,0 82.10554999999999,67.72887,0 82.08055,67.68858,0 82.11913,67.68747999999999,0 82.04109,67.65665,0 82.11416,67.59943,0 82.39664999999999,67.53498999999999,0 82.35138000000001,67.50109999999999,0 82.38054,67.47971,0 82.32971000000001,67.48109,0 82.2336,67.42081,0 82.33778,67.3608,0 82.2811,67.34887000000001,0 82.3647,67.33055,0 82.21833,67.31137,0 82.25915999999999,67.27998,0 82.18165999999999,67.28803000000001,0 82.19721,67.25943,0 82.11942999999999,67.23888000000001,0 83.04109,66.89221000000002,0 83.06192,66.88081,0 83.02748,66.85971000000001,0 83.17249,66.80914,0 83.1836,66.74748,0 83.30582,66.66165,0 83.08666,66.61053,0 83.08693,66.46972,0 83.12469,66.42165,0 83.34415,66.34193000000001,0 83.53970000000001,66.19525,0 83.37109,66.13666000000001,0 83.28943,66.06693,0 83.37276000000001,65.9836,0 83.52804999999999,65.90443000000001,0 83.50637,65.82944000000001,0 83.59108999999999,65.7736,0 84.01111,65.79832,0 84.17665,65.7,0 84.32249,65.67609,0 84.31914999999999,65.66943000000001,0 84.29276000000002,65.6122,0 84.19054,65.59444000000001,0 84.45028000000001,65.54554,0 84.55464000000001,65.43516,0 84.50194000000001,65.39664999999999,0 84.58832,65.31303,0 84.52443,65.21278,0 84.40999000000001,65.19082,0 84.3111,65.09860000000001,0 84.31386999999999,65.05721,0 84.38108,65.03276,0 84.39665000000001,64.99387,0 84.27804999999999,64.94054,0 84.29137,64.9011,0 84.90665,64.93026999999999,0 84.97748,64.88666000000001,0 84.93222,64.82639,0 85.09444000000001,64.81219,0 85.14694,64.75166,0 85.54694000000001,64.83028,0 85.86081,64.75526000000001,0 85.80859,64.64749000000001,0 85.91804000000001,64.5836,0 85.84526,64.50749,0 85.84081999999999,64.45889,0 85.92359999999999,64.41721,0 85.94970000000002,64.32832999999999,0 86.0311,64.27528,0 85.93248000000001,64.12776,0 85.96776,64.09775999999999,0 85.95804,64.05443,0 85.51639,63.93000000000001,0 85.36693,63.81333,0 85.33998,63.70693000000001,0 85.26721000000001,63.64638000000001,0 85.17693,63.59137,0 85.08998,63.60860000000002,0 85.03203000000001,63.58649000000001,0 85.08194,63.53638000000001,0 85.21193,63.50306000000001,0 85.2961,63.51583,0 85.37415,63.46220000000002,0 85.38970000000002,63.42333000000001,0 85.35276,63.40276999999999,0 85.40776,63.35,0 85.55942,63.37499,0 85.67387000000001,63.35443999999999,0 85.53665,63.26083,0 85.47832,63.17054,0 85.46638,63.13805,0 85.58716000000001,63.06996,0 85.49332,62.99027000000001,0 85.52083,62.93277,0 85.4511,62.88277,0 85.33249000000001,62.87331,0 85.2372,62.81444000000001,0 85.07777,62.67138000000001,0 85.09860000000001,62.6386,0 84.94803000000002,62.59137000000001,0 84.89055000000001,62.54220999999999,0 84.91387,62.49944000000001,0 84.85915,62.44778,0 84.72638000000001,62.40694,0 84.43692,62.18915,0 84.55441999999999,61.99694,0 84.51666,61.93915,0 84.55749,61.89472000000001,0 84.63388999999999,61.87971000000001,0 84.68749,61.8061,0 85.00805,61.78416,0 85.24832000000001,61.68526000000001,0 85.38582000000001,61.70167,0 85.46777,61.62860000000001,0 85.72275999999999,61.57361,0 85.85193,61.59777,0 85.96915,61.54305,0 85.96639,61.46915,0 85.75249,61.43999,0 85.64360000000001,61.38805,0 85.71054,61.29749,0 84.61415,61,0 84.25964000000001,60.85542,0 83.99387,60.82472,0 83.50944,61.04916,0 83.14499000000001,61.03277000000001,0 82.38247,60.71278,0 82.39027,60.61028,0 82.16665,60.51832,0 81.86165,60.65055,0 81.49776,60.61555,0 81.11116,60.6375,0 81.0555,60.68084,0 81.03823000000001,60.75419,0 80.69771000000002,60.80017,0 80.63061,60.76768000000001,0 80.42100000000001,60.76556999999999,0 80.18398999999999,60.66193,0 79.71581999999999,60.69555,0 79.50249,60.68694,0 79.38666000000001,60.64861,0 79.28360000000001,60.71999000000001,0 79.31833,60.79667000000001,0 79.18553,60.83860000000001,0 78.96915000000001,60.82805,0 78.91110000000001,60.78722000000001,0 78.80721,60.77887,0 78.68941,60.83083,0 78.47527,60.77694,0 78.12025,60.80222000000001,0 77.92137,60.74665,0 77.68941,60.82749,0 77.40804,60.81027,0 77.10498,60.85333000000001,0 77.07805000000001,60.72721,0 76.96776,60.71,0 76.96527,60.64111,0 77.03167000000001,60.63277,0 77.04721000000001,60.60361,0 77.03749000000001,60.535,0 76.77443,60.47665,0 76.74471,60.34249000000001,0 76.8186,60.33028000000002,0 76.85165000000001,60.26806000000001,0 76.68719,60.10777000000001,0 76.75888999999999,60.06081,0 76.74136,59.72943000000001,0 76.64554000000001,59.69332,0 76.64833,59.58027,0 76.45583000000001,59.54445,0 76.16304,59.54361,0 75.99082,59.41972,0 75.89749000000001,59.43721000000001,0 75.83138,59.29639,0 75.61526000000001,59.2411,0 75.69054,59.01194,0 75.38164999999999,58.78804,0 75.15028000000001,58.67805,0 75.17081,58.6186,0 75.10526,58.58111,0 74.89166,58.47776,0 74.87608,58.42722,0 74.79998999999999,58.42694,0 74.62665000000001,58.33915,0 74.62053,58.29361000000001,0 74.45499,58.25861,0 74.20638,58.13361,0 73.08443,58.14916,0 72.93858,58.08749000000001,0 72.96915,58.06055,0 72.87221,58.0061,0 72.12164,58.02304000000001,0 72.07055,58.09415,0 71.98888,58.12471,0 71.23859,58.07111,0 71.24887,58.12194,0 71.21915,58.14695,0 71.24721,58.3561,0 71.30387,58.39749000000001,0 71.11998,58.44887,0 71.07888,58.5286,0 70.87302,58.5425,0 70.43691,57.9336,0 70.37864999999999,57.91712,0 70.44171,57.83843000000001,0 70.42554,57.76639,0 70.48387,57.76777,0 70.49887,57.7075,0 70.57443000000001,57.70916,0 70.57720999999999,57.57861,0 70.66721,57.59276,0 70.69108,57.56666,0 70.68747999999999,57.51445,0 70.42498999999999,57.38916,0 70.51721000000001,57.28695,0 70.65609000000001,57.26416,0 70.60971000000001,57.19916,0 70.69443,57.19305,0 70.78194000000001,57.19916,0 70.75417,57.27749,0 70.81165,57.32804,0 71.10248,57.34083,0 71.09248,57.28999,0 71.14776999999999,57.25139000000001,0 71.09027,57.22055,0 71.23387,57.20027,0 71.37082,57.06360999999999,0 71.61304,56.95693,0 71.65860000000001,56.91470000000001,0 71.67554,56.82638,0 71.58553000000001,56.79445,0 71.54082,56.71915000000001,0 71.39695,56.73305,0 71.39388,56.68472,0 71.34887000000001,56.66916,0 71.16665999999999,56.67138,0 71.05582,56.71028,0 71.03306000000001,56.69221000000001,0 71.11913,56.64555,0 71.09081999999999,56.55555,0 70.95416,56.4911,0 70.85776,56.50305,0 70.75972,56.46111000000001,0 70.78471999999999,56.43665,0 70.86248999999999,56.46389000000001,0 70.94136,56.41167000000001,0 70.93359,56.34694,0 70.76277,56.28667000000001,0 70.77222,56.25471000000001,0 70.84027,56.25695,0 70.81749000000001,56.17333,0 70.91638,56.11055,0 70.80415000000001,55.92028000000001,0 70.47415,55.89166000000001,0 70.47527,55.85222000000001,0 70.59138,55.83611000000001,0 70.75915999999999,55.86332,0 70.78554,55.83306,0 70.58360999999999,55.7961,0 70.54693,55.67499,0 70.7636,55.59778,0 70.69664,55.50638,0 70.54915,55.49138,0 70.48775999999999,55.43859000000001,0 70.46608999999999,55.40499000000001,0 70.50666,55.33777000000001,0 70.46998000000001,55.29667000000001,0 70.39833,55.20917,0 70.28804,55.18721,0 70.23888,55.13888,0 70.05582,55.20776999999999,0 69.94914,55.20416,0 69.84610000000001,55.29500000000001,0 69.67276,55.35443,0 69.35138000000001,55.39443000000001,0 69.23276,55.3325,0 69.18552,55.34388000000001,0 69.16831999999999,55.40054,0 68.95247999999999,55.44471,0 68.9233,55.42416,0 68.93941,55.37028000000001,0 69.00109999999999,55.35361,0 69.00249,55.28749,0 68.93332,55.28611,0 68.87997,55.34276,0 68.73137,55.37055,0 68.70499000000001,55.28667,0 68.63889,55.25555,0 68.62581,55.20192999999999,0 68.30443,55.20527,0 68.19971,55.17833000000001,0 68.24444,55.10471,0 68.33083000000001,55.08056,0 68.25943,55.04888,0 68.20526,54.96609,0 68.03442,54.95027,0 67.9297,54.98332,0 67.83223,54.96332000000001,0 67.76639000000002,54.89194,0 67.58138,54.85443,0 67.32277000000001,54.86749,0 67.24552,54.80665,0 66.80887,54.76666,0 66.72275999999999,54.72694,0 66.49525,54.72304,0 66.10831,54.64500000000002,0 66.11304,54.5425,0 66.15192,54.48555,0 66.1236,54.44500000000001,0 66.16277,54.41945,0 66.15358999999999,54.38055,0 66.21944000000001,54.28055,0 66.11803999999999,54.2375,0 66.20610000000001,54.18333000000001,0 66.27858000000001,54.19028,0 66.35693000000001,54.08444,0 66.21442,54.07694999999999,0 66.00139,53.99471,0 66.03610000000002,53.91805,0 66.07581999999999,53.91526000000001,0 66.06581,53.79277,0 66.16499,53.78111,0 66.18304000000001,53.68249000000001,0 66.11775,53.63082,0 66.11165,53.49276,0 66.25526000000001,53.48555,0 66.26888,53.28277,0 66.26639,53.19388000000001,0 66.41443,53.1686,0 66.40526,53.09972000000001,0 66.20359999999999,53.10443,0 66.08194,53.06277,0 66.07777,52.96305000000001,0 66.41277,52.95222,0 66.40886999999999,52.90331,0 66.14360000000001,52.88610000000001,0 66.13443,52.81998999999999,0 66.05247,52.8186,0 66.02887,52.45304000000001,0 65.58414999999999,52.38972,0 65.58472,52.32777,0 65.46082,52.29639,0 65.04498,52.28027,0 65.05859,52.23165,0 64.75166,52.18166999999999,0 64.74887,52.12832,0 64.80138,52.12444,0 64.80609,52.02555,0 64.925,51.90889,0 65.00888000000001,51.89249,0 65.01666,51.82332,0 64.95775999999999,51.74943,0 65.01138,51.63777,0 64.94247,51.61306,0 64.95444000000001,51.52694,0 64.88415999999999,51.47027,0 65.13164999999999,51.28139000000002,0 65.21608999999999,51.24888000000001,0 65.30359,51.28221,0 65.40694000000001,51.23166,0 65.29498,51.16471,0 65.20583000000001,51.17332,0 64.97776,51.10333,0 64.91415000000001,51.13972,0 64.84972000000001,51.09664999999999,0 64.81944,51.07222000000001,0 64.91553999999999,51.00805,0 64.81386999999999,50.78638,0 64.73027,50.73805,0 64.69275,50.6711,0 64.60415999999999,50.65138000000002,0 64.56219,50.67888,0 64.47248999999999,50.63304999999999,0 64.47837,50.58194000000001,0 64.38943,50.55166,0 64.36461,50.51109,0 64.25,50.54055,0 64.22553000000001,50.51416,0 64.05998,50.57749,0 64.18747999999999,50.7336,0 64.25888000000001,50.75054999999999,0 64.34915000000001,50.87749000000001,0 64.09942,51.03916,0 63.81416,50.93859,0 63.265,50.82638000000002,0 63.20193,50.8772,0 63.13193,50.82222,0 62.93999,50.86555,0 62.86833000000001,50.82110999999999,0 62.78388,50.86056,0 62.42528,50.85695,0 62.19276,50.80443000000001,0 62.23583,50.74138,0 62.18916000000001,50.71000000000001,0 62.25444000000001,50.68249,0 62.38249,50.7225,0 62.50833000000001,50.46805,0 62.69833,50.28305000000001,0 62.71027,50.2122,0 62.86415,50.09777,0 62.94083000000001,49.99138,0 62.90444,49.89415000000001,0 62.73861,49.94778,0 62.57667000000001,49.85277,0 62.59694,49.77999000000001,0 62.45444,49.67888,0 62.48417,49.54805000000001,0 62.37360000000001,49.56833,0 62.30305,49.48638,0 62.35027,49.46944000000001,0 62.54499000000001,49.25111,0 62.35665000000001,49.25944,0 62.33611,49.19971,0 62.46249,49.17638000000001,0 62.56527,49.01082,0 62.84722,48.84332000000001,0 62.97610000000001,48.91194,0 63.10055000000001,48.86055,0 63.05693,48.72249,0 63.09416,48.67943000000001,0 63.41499000000001,48.59249,0 63.47083,48.53583,0 63.76111,48.45082,0 63.91554,48.23388,0 64.01220000000001,48.15694,0 64.13443,47.98499,0 64.28915000000001,47.88832,0 64.01609999999999,47.72165,0 63.19526000000001,47.34083,0 63.14249,47.285,0 62.85190999999999,47.13889,0 62.69305000000001,47.04257,0 63.08611,47.08972,0 63.41805000000001,46.92028000000001,0 64.38889,46.69665000000001,0 64.97026,46.47276,0 65.11913,46.48082000000002,0 65.27638,46.36306,0 65.62943,46.18166000000001,0 66.53555,46.14277,0 67.12168,46.16551,0 67.15776,46.12944000000001,0 67.16988000000001,45.99897000000001,0 67.18192999999999,45.9411,0 67.31441,45.84720999999999,0 67.35831,45.7711,0 67.25333000000001,45.58389,0 67.24942,45.45778000000001,0 67.17833,45.29341,0 67.36275999999999,45.17916,0 67.50499000000001,45.16194,0 67.50360000000001,44.40028,0 67.47887,44.36361,0 67.79832,44.26417,0 67.765,44.23277,0 67.82887000000001,44.15971,0 68.03525999999999,44.06888000000001,0 68.08277,44.00528,0 67.96387000000001,43.94972,0 67.94193,43.90527,0 67.99026000000001,43.80555,0 67.97387000000001,43.69555,0 67.84666,43.74749,0 67.84221000000001,43.58804,0 67.66199,43.37128,0 67.6797,43.30249000000001,0 67.72026,43.37276,0 67.75694,43.36055,0 67.72638000000001,43.35305000000001,0 67.74274,43.33693,0 67.7961,43.33749,0 67.8111,43.30249000000001,0 67.77831000000001,43.27805,0 67.82971000000001,43.24944,0 67.01609999999999,42.8661,0 66.21886000000001,42.42361,0 66.07079,42.42387,0 66.03665,42.42332,0 66.02916999999999,42.00305000000001,0 66.52638000000002,42.00305000000001,0 66.56247999999999,41.71693,0 66.71998000000001,41.17499,0 66.75949000000001,41.16484000000001,0 66.75305,41.11693,0 66.60804,41.11333000000001,0 66.63247,40.93888,0 66.7664,40.88750000000001,0 66.80525,40.76611,0 66.62003,40.49509,0 66.88831999999999,40.47833,0 66.90860000000001,40.24804,0 66.97998,40.17389,0 66.93471,40.125,0 66.9422,40.06333,0 67.03471999999999,40.06888,0 67.02361000000001,40.03277,0 67.10554999999999,39.98611,0 67.47971,39.93194,0 67.50444,39.81554,0 67.38136,39.78055,0 67.37109,39.68777,0 67.29248,39.66555,0 67.29803,39.58611,0 67.44196,39.48359,0 67.41054,39.29916,0 67.36609,39.29361,0 67.37636999999999,39.21249,0 67.69026,39.13805,0 67.70943,38.99666000000001,0 68.12387,38.98554,0 68.19637,38.85444,0 68.15498,38.8086,0 68.08305,38.79445,0 68.10081,38.73916,0 68.05775,38.69694,0 68.07193,38.54138,0 68.1272,38.42444,0 68.21554999999999,38.33221,0 68.33138,38.27333,0 68.38415000000001,38.19555,0 68.27748,37.95889,0 68.15054000000001,37.92805,0 68.07305,37.76528,0 67.83832,37.50583,0 67.81749000000002,37.4461,0 67.83804000000001,37.26194,0 67.77988000000001,37.18582,0 67.75526000000001,37.22054,0 67.64333000000001,37.24722,0 67.55748,37.21555,0 67.49249,37.28083,0 67.39722,37.21749,0 67.23997,37.1861,0 67.18637,37.25805,0 67.11749,37.28028,0 67.09648,37.33997,0 67.00417,37.38221,0 66.67221000000001,37.33833,0 66.53773,37.36638,0 66.44748,37.31860000000001,0 66.40833000000001,37.3461,0 66.28999,37.32472,0 66.09054999999999,37.43167,0 65.84526,37.50444,0 65.78167999999999,37.5715,0 65.77193,37.53749,0 65.68109,37.51694,0 65.64444,37.44887,0 65.65082,37.35555000000001,0 65.55443,37.25638,0 65.07277000000001,37.24444,0 64.82304000000001,37.1386,0 64.77916999999999,37.09583,0 64.79526,36.92305,0 64.61693,36.63638,0 64.61526000000001,36.42361,0 64.47387000000001,36.25555,0 64.33665000000001,36.22471,0 64.28248000000001,36.15193,0 64.18137,36.17054,0 64.09498000000001,36.12332,0 64.05971,36.08805,0 64.06386999999999,36.00027,0 63.92055,36.0375,0 63.77832999999999,35.98054000000001,0 63.60111000000001,35.96443,0 63.52833,35.90499,0 63.34249000000001,35.85722000000001,0 63.11944,35.86193,0 63.12972000000001,35.77527,0 63.24002000000002,35.69928,0 63.09528,35.62609,0 63.12666,35.53361,0 63.10527,35.45083,0 62.92249000000001,35.38417,0 62.72220999999999,35.25472,0 62.55444000000001,35.2336,0 62.46500000000001,35.28861,0 62.30915000000002,35.14166,0 62.26944000000001,35.28583,0 62.13256,35.36806,0 61.99583,35.45832,0 61.80249,35.4111,0 61.59583000000001,35.44415,0 61.40610000000002,35.56388,0 61.37888,35.63527,0 61.27655000000001,35.60725,0 61.22887,35.67805,0 61.26222,35.81972,0 61.22582,35.90388,0 61.12428,35.97565,0 61.16999,35.99527,0 61.16471,36.03527,0 61.22916,36.12666,0 61.18444,36.28667,0 61.15028,36.31499,0 61.18999,36.56777,0 61.1572,36.64999,0 60.33306000000001,36.6561,0 60.27840000000001,36.76272,0 60.02944,37.03695,0 59.91471000000001,37.0586,0 59.81305,37.12471000000001,0 59.67054000000001,37.15611,0 59.62027000000001,37.13194,0 59.56693,37.20888,0 59.47693,37.21889000000001,0 59.49139,37.24833,0 59.39305000000001,37.32306,0 59.38082,37.48555,0 59.33888,37.53916000000001,0 59.25,37.51333,0 59.06027,37.62999,0 58.82278,37.70361,0 58.80444,37.66693,0 58.71277000000001,37.64861,0 58.5625,37.7086,0 58.49805,37.64777,0 58.38915999999999,37.63611,0 58.22748,37.68111,0 58.20304000000001,37.78334000000001,0 58.17443,37.79639,0 58.04694000000001,37.80944,0 57.70805,37.92665,0 57.45028000000001,37.93916,0 57.35306,37.98944,0 57.3711,38.09305,0 57.28833,38.17055,0 57.24388,38.27082,0 57.20471,38.28334,0 57.18888,38.28334,0 57.14979,38.26009,0 57.05861,38.1936,0 56.84583,38.23166000000001,0 56.75574000000001,38.28626,0 56.61388,38.24055,0 56.44276,38.25999,0 56.32249000000001,38.18526,0 56.35277,38.13889,0 56.33305000000001,38.08554,0 56.22305,38.07028,0 56.16444,38.09499,0 55.98276000000001,38.07249,0 55.7561,38.12526,0 55.44276000000001,38.08611,0 55.21027,37.96221,0 55.14083,37.9561,0 54.95471000000001,37.80499,0 54.83306000000001,37.74639,0 54.78221000000001,37.64804,0 54.80972000000001,37.57944,0 54.78694,37.51915000000001,0 54.68111,37.4436,0 54.55165,37.4461,0 54.23165000000001,37.32722,0 53.90564,37.35085,0 54.01583000000001,37.02193000000001,0 53.98833,36.9822,0 54.03166,36.94833,0 54.0286,36.82471,0 53.94332,36.8,0 53.68194,36.81722,0 53.63388000000001,36.84804,0 53.66137000000001,36.85777,0 53.6075,36.86833000000001,0 53.98499,36.89861000000001,0 54.00860999999999,36.94833,0 53.92276,36.90972,0 53.22305,36.84833,0 51.97276000000002,36.57999,0 51.10111,36.72887,0 50.35167000000001,37.1211,0 50.19137000000001,37.38917,0 49.94166,37.44471,0 49.96888,37.45387,0 49.92499,37.47971,0 49.83443,37.4511,0 49.41999,37.49332,0 49.10248,37.64304,0 48.99776,37.76361,0 48.94166,37.90749,0 48.86942,38.30054,0 48.88828000000001,38.44241,0 48.86665,38.74583,0 48.82999,38.85942,0 48.89083,38.88082,0 48.93304,38.95138,0 48.95554,39.16526,0 49.03832000000001,39.18221,0 49.06722000000001,39.10777,0 49.14471,39.09748,0 49.12694,39.02998,0 49.05165,39.00139,0 49.06027000000001,38.96693,0 49.12804,38.97331,0 49.20194,39.02471,0 49.25805,39.31944,0 49.31304,39.34138,0 49.40805,39.28776,0 49.36388000000002,39.34499,0 49.40331,39.31805,0 49.41361,39.38388,0 49.28082000000001,39.50055,0 49.31889000000001,39.62498,0 49.42416999999999,39.70638000000001,0 49.39332,39.77832,0 49.44442000000001,39.8686,0 49.42110000000001,39.93081,0 49.48304,39.98943000000001,0 49.42499999999999,40.05388,0 49.49582,40.09055,0 49.48805000000001,40.15054,0 49.57167,40.21277,0 49.82472,40.28499,0 49.87804000000001,40.36276,0 49.98054,40.31998000000001,0 50.12417,40.35833000000001,0 50.2625,40.32916,0 50.39325,40.22689,0 50.63309,40.29893,0 50.62228,40.32742,0 50.36295000000001,40.47673000000001,0 50.23536,40.4908,0 50.125,40.51138,0 50.05525999999999,40.58444,0 49.80499,40.56471,0 49.52805,40.66277,0 49.50805,40.69305,0 49.53249000000001,40.78749,0 49.39804000000001,40.84971,0 49.22221,41.01833,0 49.15498000000001,41.15165,0 49.14055,41.26833000000001,0 49.03998,41.41415,0 48.89944,41.52583,0 48.67777000000001,41.78276,0 48.58395000000001,41.83577,0 48.54472,41.88028,0 48.38665,41.92638,0 48.3036,42.09748,0 48.11776,42.32638,0 47.94498,42.46249,0 47.85942,42.59389,0 47.73832,42.63388,0 47.69694000000001,42.86638,0 47.46221,43.01915,0 47.48333000000002,43.20777,0 47.58833000000001,43.29695,0 47.57249000000001,43.33054,0 47.48832,43.29361000000001,0 47.48721,43.45638,0 47.58498,43.72221,0 47.69832000000001,43.86887000000001,0 47.80731,43.98692,0 47.5322,44.50008,0 47.47952,44.4864,0 47.20554,44.21859,0 47.1586,44.20054,0 47.09248,44.24027,0 47.01222,44.36083,0 46.76027,44.39192,0 46.7,44.44276,0 46.67971,44.52304,0 46.72444,44.54472,0 46.71249,44.64777,0 46.95943,44.76389,0 47.00944,44.82111,0 46.99165,44.92192000000001,0 47.07555,44.78277,0 47.11666,44.86221,0 47.09722000000001,44.94971,0 47.14861,44.92694,0 47.19915000000001,44.96859,0 47.29193,45.18082,0 47.3761,45.18193000000001,0 47.38554000000001,45.29527,0 47.46277000000001,45.38081,0 47.37803,45.41137000000001,0 47.48611,45.41860000000001,0 47.50166,45.47998,0 47.54332,45.50527000000001,0 47.48619,45.57145,0 47.53247000000001,45.53033,0 47.81656,45.43218000000001,0 47.99829,45.51992000000001,0 48.015,45.69538,0 48.0714,45.71836,0 48.20509,45.7121,0 48.36385000000001,45.64942000000001,0 48.74612,45.69747000000001,0 48.72941,45.804,0 48.79208,45.82907,0 48.87982,45.94397000000001,0 48.99471,46.00246,0 49.05737,45.98365,0 49.18897,46.05259,0 49.3143,46.2573,0 49.22253,46.34631,0 48.91813000000001,46.48922,0 48.83388,46.48499000000001,0 48.74027000000001,46.55832,0 48.56054,46.56499,0 48.58400000000001,46.59843000000002,0 48.55415,46.64389,0 48.4762,46.66768,0 48.52166,46.74305,0 48.60333,46.77332000000001,0 48.71054,46.75972,0 48.76527,46.69082,0 48.94137,46.70416,0 49.02720999999999,46.77610000000001,0 48.7211,47.09833,0 48.54721000000001,47.41721,0 48.44388000000001,47.43693,0 48.20442000000001,47.70499000000001,0 48.06471000000001,47.77971,0 47.69137,47.76583,0 47.43581,47.84361000000001,0 47.38333,47.68888000000001,0 47.13665000000001,47.82249000000001,0 47.18277,47.87417,0 47.06248000000001,47.99609,0 47.21499000000001,48.07083,0 47.12221,48.10222,0 47.13832000000001,48.16999,0 47.09638000000001,48.21000000000001,0 47.13332000000001,48.24249,0 47.12277,48.27166,0 46.49916000000002,48.4175,0 46.77888000000001,48.93665,0 46.95444,49.01305,0 47.06275999999999,49.14277,0 47.02610000000001,49.23610999999999,0 46.79582,49.33972,0 46.92944,49.86361000000001,0 47.18833,49.94415000000001,0 47.30249,50.03194000000001,0 47.35666,50.09027,0 47.28054,50.18221,0 47.34276,50.24193,0 47.31666,50.29445000000001,0 47.4161,50.33193,0 47.4464,50.37695,0 47.59972,50.46083000000001,0 47.76082000000001,50.37527,0 48.11054000000001,50.0986,0 48.16554000000001,49.9661,0 48.24888000000001,49.90888000000001,0 48.25166000000001,49.86971,0 48.33221,49.87887000000001,0 48.45082,49.81693000000001,0 48.79695,49.94194,0 48.91693000000001,50.03417,0 48.87972000000001,50.10167000000001,0 48.79111,50.1236,0 48.81110000000001,50.19415000000001,0 48.72276000000001,50.35305000000002,0 48.69749,50.59194000000001,0 48.59555,50.62249000000001,0 48.59361,50.64833000000001,0 48.83027,50.59665,0 49.03083,50.68804999999999,0 49.15833,50.79278000000002,0 49.42583000000001,50.85139000000001,0 49.44083,50.90583000000002,0 49.36443,50.97971,0 49.46194,51.12416,0 49.80416,51.11027,0 49.96804,51.2261,0 50.36332,51.31694000000001,0 50.35443,51.37805000000001,0 50.39721999999999,51.39972,0 50.38472,51.42527000000001,0 50.54888,51.46861,0 50.54361,51.56722000000001,0 50.59471,51.58972,0 50.60277,51.63999,0 50.71749,51.62249,0 50.68277000000001,51.57306000000001,0 50.81054000000001,51.59166,0 50.81361,51.64805,0 50.75861,51.71970000000001,0 50.7733,51.76918,0 51.41249000000001,52.08971,0 51.45750000000001,52.22776,0 51.40805,52.25416,0 51.40694,52.34917,0 51.47166,52.36583000000001,0 51.46388,52.41360000000001,0 51.56361,52.43582,0 51.47083,52.52722,0 51.47360000000001,52.57972,0 51.55054,52.57417,0 51.50667000000001,52.63276000000001,0 51.53416,52.67416,0 51.73360000000001,52.6675,0 51.77944,52.79583000000001,0 51.71555,52.82277,0 51.72805,52.87194,0 51.82417000000001,52.87388,0 51.86694000000001,52.92943,0 52.05389,52.99055,0 52.06249,53.07833,0 52.15972,53.09665,0 52.05471,53.14249000000001,0 52.13417,53.17499,0 52.1236,53.22388,0 52.16388000000001,53.26167,0 52.13916,53.29166,0 52.19665000000001,53.37944,0 52.13803999999999,53.40305000000002,0 52.13499,53.44915,0 52.07527,53.50639,0 52.09167,53.55027,0 52.1836,53.55694,0 52.25804,53.65526,0 52.41415,53.93027000000001,0 52.37054,53.9761,0 52.4875,54.05777000000001,0 52.39804000000001,54.1286,0 52.27194,54.11388000000001,0 52.25833,54.14999,0 52.34388000000001,54.17194,0 52.34610000000001,54.22665000000001,0 52.19444,54.29721000000001,0 52.27943,54.32833000000002,0 52.51166,54.32194,0 52.53745,54.37707,0 52.62194,54.3411,0 52.68775999999999,54.36111,0 52.92304,54.31388,0 52.93249,54.28804000000001,0 52.88166,54.27777,0 52.92916,54.26805,0 53.01361,54.26805,0 53.02944000000001,54.28944,0 53.0014,54.31249,0 53.04749,54.34167000000002,0 53.11582,54.24944000000001,0 52.93694,54.2136,0 53.03361000000001,54.12749000000001,0 53.09137,54.12054,0 53.06054,54.06999,0 53.19444,54.09832,0 53.27221999999999,54.06999,0 53.285,54.02750000000001,0 53.37194,53.96749,0 53.41082,54.02694,0 53.47020000000001,54.0452,0 53.41305,54.22222,0 53.43444,54.26915,0 53.36138,54.32888,0 53.34444,54.38694000000001,0 53.42194,54.48666000000001,0 53.41055,54.55750000000001,0 53.6086,54.71138,0 53.57888,54.74888,0 53.60777,54.81249,0 53.57695,54.81499,0 53.64249000000002,54.90139,0 53.51412,54.88120000000001,0 53.40639000000001,54.99722,0 53.26694000000001,55.01028000000001,0 53.26834,55.05331,0 53.14138000000001,55.09389,0 53.13888000000001,55.14388,0 53.33443,55.16249000000001,0 53.33805000000001,55.19499,0 53.39944000000001,55.22110000000001,0 53.58611000000001,55.20776999999999,0 53.59999,55.26027,0 53.70916,55.3336,0 53.89833000000002,55.38166,0 53.93333000000001,55.4586,0 53.99694,55.50027,0 53.99638000000001,55.54972000000002,0 54.17833,55.62276000000001,0 54.24194000000001,55.69137000000001,0 54.09528000000001,55.77592,0 54.0261,55.75666,0 54.03820000000001,55.80095000000001,0 53.97027,55.78249000000002,0 53.99722,55.85082,0 53.63842,55.91552,0 53.67193,55.95999,0 53.78472,55.96915,0 53.83795000000001,56.04377,0 54.02443,56.02944000000001,0 54.10722,56.14749,0 54.35889,56.26222000000001,0 54.37526,56.30498999999999,0 54.31527,56.34138,0 54.35241,56.35857,0 54.32472000000001,56.46249,0 54.23611,56.43581,0 54.18472000000001,56.53722,0 54.12194,56.53361000000001,0 54.09083,56.58250000000001,0 54.02664999999999,56.58416,0 54.10083,56.66276000000001,0 54.0286,56.69276,0 53.96388,56.63110000000001,0 53.87,56.6075,0 53.83554,56.63556,0 53.88081,56.67222,0 53.80637999999999,56.77332,0 53.82832,56.81193,0 53.88943,56.80444,0 53.88999,56.76445,0 54.01056,56.74916,0 54.09177,56.79174,0 54.09805,56.96249,0 54.40269,57.03656000000002,0 54.37444000000001,57.07389000000001,0 54.27555,57.10082000000001,0 54.33472,57.15554000000001,0 54.32000000000001,57.28666000000001,0 54.11639,57.31027000000001,0 54.14443,57.38693,0 54.27166,57.42222,0 54.26472,57.46443000000001,0 54.17860000000001,57.465,0 54.16582,57.51222,0 54.20361,57.53083,0 54.16999000000001,57.55972000000001,0 54.11888,57.55944000000001,0 54.10139,57.51805,0 53.98749000000001,57.57111,0 54.12111,57.61193,0 54.06916,57.66666000000001,0 54.15665000000001,57.70249,0 54.13639000000001,57.83222,0 54.08749,57.91331,0 54.10722,57.97276,0 53.94276,58.09527000000001,0 53.89415,58.18804,0 53.80972,58.22887,0 53.88916,58.32222,0 53.79027,58.39249000000001,0 53.78463,58.43996000000001,0 53.69610000000001,58.60333000000001,0 53.75721999999999,58.6525,0 53.74027,58.67972,0 53.77055,58.71638000000002,0 53.92833,58.78166000000001,0 53.80721000000001,58.82777000000001,0 53.71915,58.93748999999999,0 53.76500000000001,59.02277000000002,0 53.84470000000001,59.03054,0 53.83500000000001,59.05832000000001,0 53.88416000000001,59.09054,0 53.75417,59.14111000000001,0 53.68916000000001,59.12332000000001,0 53.7236,59.09194000000002,0 53.38555,59.15554,0 53.24415000000001,59.27583,0 53.2047,59.34944,0 53.3661,59.51832,0 53.42054,59.68971,0 53.60278000000001,59.70055000000001,0 53.71194,60.00332,0 53.59887000000001,60.15666,0 53.41137000000001,60.22443000000001,0 53.38611,60.16555,0 53.01083,60.15915,0 52.42722000000001,60.20304,0 52.29815,60.24171,0 52.34777,60.37330999999999,0 52.34304000000001,60.44638,0 52.12499,60.47027000000001,0 52.15471000000001,60.54555000000001,0 51.77333,60.59693999999999,0 51.88777,60.87666,0 52.34333,60.835,0 52.42917000000001,60.98137,0 52.79499,60.94433,0 52.87666,61.09388000000001,0 53.38499000000001,61.03389,0 53.33944000000001,60.89388,0 53.57389,60.86500000000001,0 53.80915000000001,60.84777,0 53.86555,60.98749,0 54.97971,60.86388,0 55.06107,61.01941,0 55.19747,61.0041,0 55.27921000000001,61.12959000000002,0 55.72323,61.08145,0 55.82858,61.25057,0 56.29028000000001,61.20304000000001,0 56.34805,61.29388,0 56.31638000000001,61.32527,0 56.3886,61.43943000000001,0 56.54527,61.42888,0 56.60083,61.50249,0 56.67556,61.52777,0 57.09666,61.48525999999999,0 57.18,61.51194,0 58.80972,61.50556,0 58.94054000000001,61.55972,0 59.01082000000001,61.54472,0 59.14333000000001,61.63305,0 59.34887000000001,61.68221000000001,0 59.39694999999999,61.76110000000001,0 59.33915,61.80222,0 59.34137000000001,61.85695000000001,0 59.48555,61.98805,0 59.40444,62.14222000000001,0 59.51527,62.31721000000002,0 59.60028,62.36694,0 59.58472,62.41499,0 59.60889,62.45333000000001,0 59.65055,62.51721,0 59.50972000000001,62.54722,0 59.39138,62.72971,0 59.46083000000002,62.77917000000002,0 59.48721000000001,62.89778,0 59.42471000000001,62.94415,0 59.27665,62.96666,0 59.22221,63.07388,0 59.30277,63.12638,0 59.25889,63.2011,0 59.3386,63.28999000000001,0 59.28249,63.33278,0 59.35222,63.36306,0 59.31722000000001,63.39888000000001,0 59.47776000000001,63.56805,0 59.51389,63.77999000000001,0 59.57249000000002,63.83666,0 59.56583000000001,63.91915,0 59.77055,63.99942999999999,0 59.85972,64.1375,0 59.73388000000001,64.15331999999999,0 59.58805,64.23248,0 59.57943,64.27943000000001,0 59.6361,64.33749,0 59.60470999999999,64.46026999999999,0 59.47970999999999,64.48193000000001,0 59.61361,64.62276,0 59.70249,64.65166000000001,0 59.63805000000001,64.72387000000001,0 59.65416,64.78333000000001,0 60.15804000000001,65.06721,0 60.42749,65.05193,0 60.42972000000001,65.00082,0 60.59638,64.94193,0 60.63138,64.88361,0 60.81194,65.04859999999999,0 60.96277000000001,65.04165999999999,0 61.11166,65.17221000000001,0 61.23944,65.18552,0 61.3336,65.28888000000001,0 61.24917,65.31887999999999,0 61.41555000000002,65.39639,0 61.58222000000001,65.55165,0 61.68694,65.57388,0 61.87027000000001,65.70222,0 62.11306,65.72083000000001,0 62.68193999999999,65.86304,0 62.69388,65.86331,0 62.73193000000001,65.85776,0 62.86111,65.87804,0 62.79777000000001,65.93109,0 62.88833000000002,65.97998,0 62.81750000000001,66.01194,0 62.86166000000001,66.07720999999999,0 62.95917000000002,66.1097,0 63.04694000000001,66.2247,0 63.15388,66.26749,0 63.29056,66.23276,0 63.30416000000001,66.2747,0 63.22332000000001,66.32638,0 63.40860000000001,66.45277,0 63.40915,66.48109,0 63.53722000000001,66.46026999999999,0 63.65888000000001,66.52582,0 63.81554000000001,66.54721000000001,0 63.98277,66.65358999999999,0 64.31247999999999,66.66443,0 64.41277,66.72387000000001,0 64.53999,66.7272,0 64.5761,66.79915,0 65.10138000000001,66.89055000000001,0 65.10554000000001,67.00805000000001,0 65.07055,67.03942000000001,0 65.22136999999999,67.07693,0 65.18248,67.15082,0 65.65888,67.30609,0 65.71887,67.34054999999999,0 65.67249,67.36609,0 65.69053,67.38665,0 65.96138000000001,67.39525999999999,0 66.10664,67.47859,0 66.0397,67.57693,0 65.79165999999999,67.56971,0 65.86832,67.60664,0 65.81805,67.62608,0 65.84054999999999,67.65192999999999,0 65.99275,67.67915000000002,0 66.10526,67.64554,0 66.21053000000001,67.69609,0 66.18388,67.74832000000002,0 66.01805,67.79305000000001,0 66.05443,67.88083,0 66.09248,67.89027,0 66.08611000000001,67.93442,0 65.91081,67.96332,0 65.78055000000001,67.9233,0 65.43471,67.91804999999999,0 65.28498999999999,68.01194,0 65.33333,68.08638000000001,0 65.26775000000001,68.21998000000001,0 65.48054999999999,68.43053999999999,0 65.60609,68.48499,0 65.61443,68.52554000000001,0 65.66165,68.54694000000001,0 65.52361000000001,68.58414999999999,0 65.37831,68.68053999999999,0 65.42941999999999,68.7,0 65.40498,68.73276,0 65.32639000000002,68.72499000000001,0 65.34860000000001,68.79192000000001,0 65.20220999999999,68.82331000000001,0 65.08055,68.80888,0 64.80415000000001,68.89194000000001,0 64.75499000000001,68.88527000000001,0 64.74582,68.85526,0 64.54998999999999,68.87053000000002,0 64.52139,68.90776,0 64.58389,68.96082,0 64.51749,68.98248,0 64.51999000000001,69.01776,0 64.83257,69.15213,0 64.94275,69.2047,0 64.91499,69.25471,0 65.04832,69.27332,0 65.38193,69.18471,0 65.79581,69.13697000000001,0 66.2572,69.07253,0 66.52336,68.9671,0 66.55627,68.91167,0 67.12005000000001,68.84113000000001,0 67.39063,68.80437000000001,0 67.38152,68.76640999999999,0 67.27820000000001,68.74968,0 67.32339,68.69279,0 67.77222,68.51776,0 67.80582,68.50082,0 67.70610000000001,68.51054000000001,0 67.78306000000001,68.47749,0 68.15942,68.41137000000001,0 68.26054000000001,68.33472,0 68.20081999999999,68.29471,0 68.18526,68.23609999999999,0 68.27025999999999,68.23915,0 68.28333000000001,68.18498,0 68.43637,68.22499000000001,0 68.56415,68.31052,0 68.64999,68.31219,0 68.57165999999999,68.33778,0 68.56303,68.36942000000001,0 68.89776999999999,68.60748,0 69.00888000000001,68.79998999999999,0 69.09526,68.83333,0 69.10831,68.87248,0 68.94386,68.89803000000001,0 69.22026,68.95722000000001,0 69.03248000000001,68.94193,0 69.02164000000001,68.96416000000001,0 68.78498,68.91081,0 68.47331,68.97248999999999,0 68.04749,69.28137,0 68.02139,69.3436,0 68.10942,69.38889,0 68.10165000000001,69.54665,0 68.00721,69.51860000000001,0 68.03804,69.48888,0 67.96748,69.48415,0 67.78610000000001,69.51666,0 67.61304,69.59166999999999,0 67.38528000000001,69.61859,0 67.37054999999999,69.52164999999999,0 67.25494999999999,69.40298,0 67.16154,69.35935000000001,0 66.95407,69.40528000000001,0 66.93801000000001,69.52226,0 66.79192999999999,69.58028,0 66.76721000000001,69.75722,0 66.87331,70.00109999999999,0 66.99387,70.04886999999999,0 67.07941,70.12733,0 67.08862000000001,70.21623,0 67.19971,70.39027,0 67.26666,70.41110000000001,0 67.25194999999999,70.44832,0 67.29221,70.46998000000001,0 67.20889,70.52666000000001,0 67.33971,70.72499000000001,0 67.33249000000001,70.76888,0 67.22887,70.82555000000001,0 67.10720000000001,70.83526999999999,0 66.68886999999999,70.76054000000001,0 66.61275999999999,70.86773,0 66.54228000000001,70.92879000000001,0 66.62154,71.04885,0 66.78388,71.14221000000001,0 66.83665000000001,71.20972,0 66.91553999999999,71.29276,0 67.08581000000001,71.30387,0 67.53675,71.40988,0 67.53675,73.95477,0 72.53674,73.94411,0 77.53673000000001,73.93346,0 82.27669,73.92335,0 81.08696000000001,73.75897999999999,0 79.49023,73.66505000000001,0 78.53532,73.30501,0 78.20658,73.02322,0 78.17527,72.89798,0 78.4727,72.64751,0 78.50015000000001,72.37733,0 78.45471000000001,72.36443,0 78.44637,72.35971000000001,0 78.65913999999999,72.26111,0 78.67804,72.22165,0 78.59721999999999,72.20972,0 + + + 1 + + + + + +68.67328999999999,82.13631,0 67.53675,81.66452,0 67.53675,82.89028,0 67.53675,84.90001,0 67.53675,89.90000000000001,0 68.53611000000001,89.90000000000001,0 69.53547,89.90000000000001,0 70.53484,89.90000000000001,0 71.53419,89.90000000000001,0 72.53355000000001,89.90000000000001,0 73.53292999999999,89.90000000000001,0 74.53227,89.90000000000001,0 75.53164,89.90000000000001,0 76.53100000000001,89.90000000000001,0 77.53036,89.90000000000001,0 78.52972,89.90000000000001,0 79.52907999999999,89.90000000000001,0 80.52843,89.90000000000001,0 81.5278,89.90000000000001,0 82.52717,89.90000000000001,0 82.52717,87.88696,0 77.9092,85.97008,0 73.29124,84.05318,0 68.67328999999999,82.13631,0 + + + 1 + + + + + GMT +05:30 + + +]]> + #khStyle0550 + + + + + +69.14654,7.824959000000001,0 67.51169000000002,7.824905,0 67.51169000000002,12.15223,0 72.51169,12.15223,0 74.14655000000001,12.15223,0 74.14655000000001,7.825121,0 69.14654,7.824959000000001,0 + + + 1 + + + + + +94.5928,5.880672000000001,0 92.9025,5.880672000000001,0 90.34064000000001,5.884479,0 90.33504000000001,10.88448,0 90.33015,15.23029,0 94.58984000000001,15.23029,0 94.59142,10.23029,0 94.5928,5.880672000000001,0 + + + 1 + + + + + +79.43803000000001,35.96054000000001,0 79.46193,35.85804,0 79.58109000000002,35.86971,0 79.65886999999999,35.81916,0 79.63443000000001,35.75916,0 79.69359,35.65083,0 79.81303,35.62943,0 79.85887,35.5661,0 79.91914,35.61749,0 79.96416000000001,35.59583,0 80.05749,35.40777,0 80.14776999999999,35.45722,0 80.20663999999999,35.56193,0 80.2741,35.52753,0 80.29776,35.50333,0 80.38388000000001,35.51111,0 80.38666000000001,35.42528,0 80.28943,35.33999,0 80.29803,35.2075,0 80.19026,35.08764,0 80.20166999999999,34.89388,0 80.10248,34.7747,0 80.07138000000001,34.66945,0 79.8875,34.66276000000001,0 79.84387,34.57444,0 79.7247,34.52999,0 79.7636,34.45499,0 79.72275999999999,34.42054,0 79.53915000000002,34.42999,0 79.57805000000001,34.2086,0 79.51166000000001,34.19027,0 79.5247,34.11805,0 79.42915000000001,34.02166,0 78.97527,34.01721,0 78.90886999999999,33.97028,0 78.94941,33.83221,0 79.01944,33.75444000000001,0 79.04082,33.63943,0 78.91582,33.62944,0 78.93651,33.408,0 78.99638000000002,33.31499,0 79.09137,33.27499,0 79.10359,33.21971,0 79.18387,33.22582,0 79.40637,33.16166,0 79.35609,32.965,0 79.45027,32.88221,0 79.47083000000001,32.79388,0 79.53027,32.75416,0 79.51443,32.67222,0 79.45722000000001,32.60249,0 79.31386999999999,32.49665,0 79.25317000000001,32.516,0 79.13164999999999,32.47499,0 79.09915,32.37638,0 78.97110000000001,32.35082,0 78.78027,32.47887,0 78.76055,32.63556,0 78.70443,32.6311,0 78.6386,32.57778,0 78.42054,32.5661,0 78.39722,32.53111,0 78.4772,32.42471,0 78.44971,32.38694,0 78.47832,32.34999,0 78.47593999999999,32.24305,0 78.54471000000001,32.20943,0 78.68053000000001,32.03527,0 78.7711,31.98111,0 78.74507,31.91036,0 78.69247,31.77417,0 78.74249,31.68499,0 78.79053999999999,31.67472,0 78.84387,31.60417,0 78.71278,31.49833,0 78.79276000000002,31.44333,0 78.77054,31.305,0 78.87766000000001,31.29163,0 78.94193,31.36,0 79.00555,31.32555,0 79.01859,31.41138,0 79.09248,31.4375,0 79.21748,31.34083,0 79.24026000000001,31.24417,0 79.28665,31.22333,0 79.31499,31.13305,0 79.39324000000001,31.10106,0 79.42249,31.0275,0 79.49413,31.02416,0 79.59943,30.93556,0 79.74887,30.98972,0 79.87916,30.95916,0 79.94981,30.8849,0 80.04192000000001,30.84694,0 80.09415,30.78666000000001,0 80.17831,30.79945,0 80.25027,30.73999,0 80.18749,30.67583000000001,0 80.22776,30.62193,0 80.20699999999999,30.57552,0 80.32193,30.56472,0 80.53888000000001,30.46443,0 80.60693000000001,30.47472,0 80.75194999999999,30.395,0 80.80386,30.32666,0 80.99888,30.26194,0 81.02536000000001,30.20436,0 80.93637,30.18138,0 80.89333000000001,30.21111,0 80.8586,30.17472,0 80.87276,30.13888,0 80.74609,30.02138,0 80.59887000000001,29.95527,0 80.53970000000001,29.84611,0 80.37691,29.7486,0 80.40694000000001,29.59638,0 80.23637000000001,29.42527,0 80.27582,29.3225,0 80.30693000000001,29.31055,0 80.28777,29.20556,0 80.23997,29.21472,0 80.25694,29.14472,0 80.14664999999999,29.10833,0 80.1297,28.99305,0 80.05998,28.93166,0 80.05582,28.83611,0 80.24609,28.75082,0 80.35776,28.62944,0 80.44026,28.62888,0 80.50861,28.56693,0 80.50555,28.65833,0 80.57720999999999,28.68556,0 80.58499000000001,28.6536,0 80.66249000000001,28.63277,0 80.79832,28.52389,0 80.89249,28.50638,0 80.93858,28.44111,0 81.00694,28.44305,0 81.01888,28.40416000000001,0 81.19359,28.36667,0 81.31218,28.19333,0 81.31999000000002,28.13,0 81.42192,28.16638,0 81.48027,28.08,0 81.88026000000001,27.85721,0 81.97776000000002,27.91722,0 82.0664,27.91416,0 82.43471,27.67556,0 82.7011,27.71111000000001,0 82.76860000000001,27.50166,0 83.17638,27.44888,0 83.29137,27.33777,0 83.37665,27.37527,0 83.39610000000002,27.47861,0 83.60776,27.46916,0 83.85832000000001,27.35221,0 83.87553,27.38083,0 83.83526999999999,27.43805,0 84.04026,27.44472,0 84.09887000000001,27.51611,0 84.14333000000001,27.52417,0 84.29776,27.38832,0 84.60997999999999,27.33556,0 84.68414,27.21555,0 84.64749000000001,27.04527,0 84.75027,27.0075,0 84.84360000000001,27.01527,0 84.95277,26.95804,0 84.97331,26.90304,0 85.04109,26.88666,0 85.04082,26.84777,0 85.18388,26.86666,0 85.21165000000001,26.76694,0 85.33443,26.73582,0 85.41249000000001,26.79472000000001,0 85.45305000000001,26.78694000000001,0 85.63026000000001,26.8675,0 85.72609,26.80167000000001,0 85.73054999999999,26.66722,0 85.85027,26.57222,0 86.02943000000001,26.66306,0 86.18387,26.60806,0 86.20664000000001,26.58556,0 86.33167,26.61277,0 86.33249000000001,26.58499,0 86.53498999999999,26.52806,0 86.73165,26.41999,0 86.88598,26.46866,0 87.06137,26.58833,0 87.09415,26.45638,0 87.1375,26.40972,0 87.24525,26.41222,0 87.32805999999999,26.34777,0 87.37082,26.40333,0 87.44748,26.43250000000001,0 87.59999000000001,26.37972,0 87.69748,26.42944,0 87.76639,26.40861,0 87.78554,26.45638,0 87.84305000000001,26.43888000000002,0 87.89055999999999,26.47333,0 87.94941,26.40055,0 88.02638,26.36916,0 88.09583000000001,26.43888000000002,0 88.10193,26.53028000000001,0 88.19497,26.75416,0 88.11859,26.98444,0 87.99303999999999,27.11444,0 88.05971,27.32777000000002,0 88.03888000000001,27.37611,0 88.06667000000002,27.43693,0 88.05692999999999,27.53334,0 88.11913,27.60833,0 88.18887000000001,27.78777,0 88.19386,27.8475,0 88.14279999999999,27.86605,0 88.12053,27.90471000000001,0 88.14554,27.95527,0 88.53415,28.02917,0 88.62276,28.11805,0 88.83167,28.01334,0 88.88081,27.83667,0 88.83443,27.66111,0 88.76331999999999,27.54333,0 88.78333000000001,27.43805,0 88.91692000000001,27.32083,0 88.90138000000002,27.28222,0 88.79803,27.24638,0 88.75193,27.14861,0 88.86360999999999,27.09194000000002,0 88.87636999999999,26.95055,0 88.93332000000001,26.98499,0 88.95193000000002,26.92667000000001,0 89.03055000000001,26.92749,0 89.12608,26.82361,0 89.22083000000001,26.81472,0 89.36081,26.86,0 89.46833,26.79944,0 89.53360000000001,26.81221,0 89.63611,26.77111,0 89.61832,26.72694,0 89.64305000000002,26.71527,0 89.68552000000001,26.7336,0 89.84887000000001,26.70167,0 89.85942,26.73666,0 90.1236,26.74805,0 90.17747,26.77306000000002,0 90.21693000000001,26.85082,0 90.38527000000001,26.90333,0 90.55914,26.80722,0 90.6947,26.77222,0 91.03194000000002,26.78278,0 91.09109000000001,26.81639,0 91.31441000000001,26.77806,0 91.3797,26.8075,0 91.4247,26.87556,0 91.49721000000001,26.8725,0 91.54221,26.80445,0 91.71249,26.8,0 91.84360000000001,26.86416,0 91.90498,26.80556,0 91.91526,26.89389,0 91.99721,26.85194,0 92.08150999999999,26.86905,0 92.11193000000002,26.94416,0 92.00999000000002,27.10472,0 92.01776,27.1725,0 92.11443000000001,27.28583,0 92.08916000000001,27.34944,0 91.99887,27.47805,0 91.76833000000002,27.41611,0 91.76555000000002,27.45694,0 91.67359,27.48861,0 91.62082000000001,27.54861,0 91.59498000000001,27.64554,0 91.65277000000002,27.71167,0 91.65776,27.76472,0 92.01443,27.73471,0 92.11832000000003,27.8125,0 92.25388,27.81582,0 92.26804,27.87472,0 92.33110000000001,27.79472,0 92.35831000000003,27.84443,0 92.38666000000002,27.80472,0 92.4147,27.86028,0 92.45248000000001,27.82639,0 92.69942000000002,27.95555,0 92.72838000000002,28.03598,0 92.67525000000001,28.08071,0 92.75290000000001,28.16892,0 92.83004000000001,28.21276,0 92.84125,28.1888,0 92.88734000000001,28.19872000000001,0 92.99153,28.26286,0 93.01044000000003,28.24225,0 93.04571,28.31026,0 93.22205000000001,28.3193,0 93.23817000000001,28.38745,0 93.19270000000002,28.43213,0 93.28152000000002,28.49296,0 93.35194000000001,28.61877000000001,0 93.49408,28.65192,0 93.50206000000001,28.67916,0 93.64729,28.64746,0 93.85851000000001,28.69038,0 93.98059000000001,28.64518,0 93.96173,28.6692,0 94.01243,28.74736,0 94.0211,28.83603,0 94.15246000000002,28.9307,0 94.23455,29.07348,0 94.42776000000002,29.21551,0 94.5812,29.23153,0 94.64751,29.33347,0 94.69736,29.33652,0 94.79227,29.2608,0 94.83335,29.16837,0 95.00915999999999,29.12388,0 94.98471000000001,29.17361,0 95.38777,29.03527,0 95.46053000000001,29.05167,0 95.49609000000001,29.14083000000001,0 95.54665,29.13861,0 95.53442,29.21167,0 95.59108999999999,29.255,0 96.08389,29.46777000000001,0 96.23526000000001,29.25445,0 96.28943,29.24139,0 96.36249000000001,29.29055,0 96.39525999999999,29.25527,0 96.34860000000001,29.18,0 96.25665000000001,29.16444,0 96.11913,29.07916000000001,0 96.18222000000002,28.99527,0 96.14861000000001,28.94333,0 96.16914,28.90361,0 96.34387,29.0325,0 96.51194000000001,29.07,0 96.47581000000001,28.97472,0 96.51027000000001,28.96444,0 96.61582000000001,28.79027,0 96.60609000000001,28.73944,0 96.47083000000001,28.68833,0 96.47832,28.63861,0 96.34526,28.55695,0 96.36638000000001,28.48082000000001,0 96.26471000000001,28.41527,0 96.36165000000001,28.39278,0 96.39694000000002,28.35333,0 96.40192,28.35111,0 96.46053000000001,28.42194,0 96.65387,28.46749,0 96.78415,28.37306,0 96.88970999999999,28.37861,0 96.98471000000001,28.3325,0 97.13499000000002,28.38138,0 97.34887000000002,28.22278,0 97.31608000000001,28.08916,0 97.39413999999999,28.01861,0 97.36775,27.89666,0 97.31721,27.87833,0 97.29916,27.91667,0 97.24942,27.9075,0 97.08389,27.7486,0 97.04665,27.74972,0 96.88889,27.6175,0 96.91804999999999,27.50527,0 96.89999000000002,27.46861000000001,0 97.12636999999999,27.19083,0 97.15888,27.13861,0 97.14444000000002,27.09249,0 97.05974000000001,27.093,0 96.88831999999999,27.17805,0 96.86137000000001,27.21028,0 96.88416000000001,27.25472,0 96.72915999999999,27.36555,0 96.66025999999999,27.33916,0 96.60999,27.36694,0 96.52415000000002,27.29416,0 96.19414999999999,27.27084,0 96.03581,27.19249,0 95.93082,27.04611,0 95.80386,27.00111,0 95.71775000000001,26.89138,0 95.65804000000001,26.89528,0 95.61081,26.82139,0 95.51944,26.82306,0 95.44108,26.70916,0 95.2711,26.64472,0 95.24638,26.67972,0 95.15248000000001,26.62333,0 95.14777000000001,26.56583,0 95.06638,26.47972,0 95.09526,26.41,0 95.06526,26.32556,0 95.08389000000003,26.22277,0 95.12082,26.20166,0 95.11331,26.10916,0 95.17804,26.05889,0 95.08665000000001,25.95556,0 95.02222,25.92861,0 95.03387000000002,25.74222,0 94.99193,25.72916,0 94.88527000000001,25.57222000000001,0 94.66165000000001,25.42804,0 94.62553000000001,25.39777,0 94.57639000000002,25.21444,0 94.59943,25.17833,0 94.72859,25.13638,0 94.73442,25.02472,0 94.59777,24.72528000000001,0 94.53859000000001,24.70888,0 94.51470999999999,24.61945,0 94.38915,24.48,0 94.14444,23.84778,0 93.92666,23.95583,0 93.81914999999999,23.93527,0 93.75332,24.0075,0 93.62136,24.01611000000001,0 93.59636999999999,23.97222,0 93.49359,23.96277,0 93.38293,24.08935,0 93.34207000000001,24.0818,0 93.3279,24.03597,0 93.32805000000001,23.98166,0 93.38443,23.92138,0 93.40138,23.73582,0 93.43346,23.67889,0 93.40331999999999,23.37806,0 93.36609,23.34945,0 93.38666000000001,23.14027000000002,0 93.29359000000001,23.00889000000002,0 93.22915999999999,23.01333,0 93.20138000000002,23.05889,0 93.13805000000004,23.04805,0 93.16137000000001,22.91945,0 93.09822000000001,22.79037,0 93.09722000000001,22.66528,0 93.13638,22.59444,0 93.11859,22.53333,0 93.18055,22.44055,0 93.19664000000002,22.25638,0 93.14249,22.23694,0 93.15387,22.18666,0 93.04414000000001,22.20194,0 93.05276000000001,22.11889,0 93.00972000000003,22.1075,0 92.99638000000003,21.99278,0 92.94304000000001,22.02833,0 92.89639,21.95472,0 92.86554,22.04888,0 92.71192000000002,22.15972,0 92.67970000000001,22.02694,0 92.60081,21.98222000000001,0 92.56218,22.13333,0 92.60609,22.16277,0 92.51639000000002,22.71583,0 92.47054000000001,22.75638,0 92.44386000000002,22.88944,0 92.37469,22.94193,0 92.34860000000001,23.22361,0 92.38697999999999,23.27993,0 92.37358,23.35925,0 92.27831999999999,23.605,0 92.28888000000001,23.69611,0 92.25221000000002,23.7225,0 92.21165000000001,23.65222,0 92.17486000000001,23.73682,0 92.0372,23.64528,0 91.95,23.73222000000001,0 91.96609000000001,23.50166,0 91.93304000000001,23.44444,0 91.84498000000001,23.41027,0 91.78360000000001,23.3125,0 91.76805000000002,23.25,0 91.82055,23.09777,0 91.72499000000001,22.99472,0 91.64722000000002,22.98638,0 91.61360000000001,22.94305,0 91.56359999999999,22.9836,0 91.49332000000001,23.18666,0 91.41665999999999,23.26611,0 91.37746,23.20693,0 91.40221,23.06945,0 91.33554,23.11555,0 91.28859,23.32832,0 91.31469000000001,23.36416,0 91.28221000000002,23.37332,0 91.15942,23.64055000000001,0 91.20028000000004,23.67805,0 91.15915,23.70082,0 91.15860000000002,23.73666,0 91.21638,23.75611,0 91.25054000000002,23.83027,0 91.23776000000001,23.90777,0 91.29832,23.99388,0 91.36110000000001,23.99528,0 91.37329,24.10194,0 91.54633,24.08693,0 91.62746,24.10972,0 91.6572,24.22416,0 91.70385000000002,24.15166,0 91.75525,24.15833,0 91.75775,24.23917000000001,0 91.83192000000001,24.22611,0 91.89249,24.14972,0 91.93248,24.27555,0 91.91776,24.32667,0 91.94664000000002,24.34945,0 91.98943000000001,24.31944,0 91.97470000000001,24.37889,0 92.08638000000001,24.37472,0 92.13527000000002,24.41416,0 92.13247,24.51388,0 92.19108000000001,24.56528,0 92.25664999999999,24.77390000000001,0 92.25526000000004,24.90361,0 92.40173000000002,24.84041,0 92.49384000000001,24.87879,0 92.48305000000001,24.93,0 92.41665999999999,24.9725,0 92.40637,25.03056000000001,0 92.04080999999999,25.18777,0 91.75749000000002,25.17388,0 91.64888000000002,25.12667,0 91.59027,25.17278,0 91.48221000000001,25.13861,0 91.25777000000001,25.20778,0 90.84804,25.14861000000001,0 90.65305000000001,25.18111,0 90.43831,25.14721000000001,0 90.11053000000001,25.22472,0 89.91721000000001,25.31,0 89.84526000000001,25.2886,0 89.81554,25.36693,0 89.86443,25.64056,0 89.80721,25.82305,0 89.86545,25.93686,0 89.81671,25.95416000000001,0 89.85637,25.98111,0 89.77804999999999,26.04195,0 89.73915,26.15638,0 89.6493,26.18946,0 89.6386,26.2278,0 89.60173,26.22748,0 89.60896000000001,26.17790000000002,0 89.55986,26.16146000000001,0 89.60242,26.06897,0 89.52551,25.98821,0 89.39355000000001,26.0479,0 89.31990999999999,26.02483000000001,0 89.12967,26.15927,0 89.06721,26.3877,0 88.93877999999999,26.44582,0 88.90916,26.39271,0 88.98159000000001,26.29568,0 89.04134000000001,26.28179,0 89.02048000000001,26.23517,0 88.88330000000001,26.2852,0 88.82383,26.23343,0 88.76734,26.29859,0 88.66918,26.2609,0 88.67950999999999,26.30742,0 88.73037000000001,26.32068,0 88.69164000000001,26.34277,0 88.68082,26.42027,0 88.43304000000001,26.55139000000001,0 88.40109,26.62527,0 88.33777000000001,26.47389,0 88.35359,26.45167,0 88.37109,26.48917,0 88.48331,26.46111000000001,0 88.52554000000002,26.35972,0 88.45749000000001,26.36916,0 88.35609,26.28444,0 88.35526,26.22333,0 88.18442,26.1525,0 88.15636000000001,26.09249,0 88.18333,26.03389,0 88.09554,25.91527,0 88.11053,25.83555000000001,0 88.15194,25.77861,0 88.27998,25.80167,0 88.44693,25.66611,0 88.45054,25.59389,0 88.54693,25.50416,0 88.69414,25.46778,0 88.79971000000001,25.51055,0 88.83443,25.47916,0 88.82166000000001,25.40166,0 88.86998,25.33583,0 89.00888000000001,25.30083,0 88.93304000000001,25.16444,0 88.83778,25.20361000000001,0 88.80582,25.16556,0 88.70499,25.19527,0 88.62025,25.19806,0 88.58138,25.16945,0 88.45556000000001,25.19055,0 88.45999000000001,25.06944,0 88.34249,24.87028,0 88.26749000000001,24.88472,0 88.22135000000002,24.95433,0 88.13777,24.92138,0 88.1711,24.85166,0 88.04387,24.68972,0 88.12553,24.50861,0 88.32388,24.43443,0 88.49776,24.32083,0 88.70638,24.30277,0 88.75291,24.21413,0 88.70833,24.17138,0 88.70734,24.12171,0 88.70138,24.07917,0 88.75918000000002,24.03604,0 88.72272,23.99796,0 88.73665,23.9198,0 88.66949,23.86855,0 88.60284,23.8624,0 88.56386999999999,23.65222,0 88.74942,23.46693000000001,0 88.79331999999999,23.49417,0 88.71138000000001,23.30861000000001,0 88.72110000000002,23.25166,0 88.98609999999999,23.20833,0 88.87025,23.08777,0 88.86276000000001,22.96667,0 88.97110000000001,22.84694,0 88.93026999999999,22.74833,0 88.95860000000002,22.59138,0 88.92918,22.54767,0 88.99776000000001,22.46555,0 89.00722,22.27639,0 89.09637000000001,22.14861,0 89.063,22.11547,0 89.04387,22.13638,0 89.03665,22.09805,0 89.05749,21.92833,0 89.00861,21.93027,0 88.99970999999999,21.90277,0 88.94275,21.93666,0 88.93137,21.98638,0 88.90555000000001,21.95916,0 89.01639,21.86582,0 89.02110000000002,21.78222,0 89.08971,21.65027,0 89.07416000000001,21.61417,0 89.02748,21.62695,0 89.00027,21.60209,0 88.88085000000001,21.51552,0 88.78551,21.55832,0 88.70639,21.57051,0 88.53887,21.52715,0 88.49802,21.52056,0 88.48305000000001,21.55694,0 88.52554000000002,21.65583,0 88.50082,21.7525,0 88.53749000000002,21.81388000000001,0 88.49802,21.87027,0 88.49609,21.95027,0 88.45387,21.615,0 88.39082000000001,21.58833,0 88.38694,21.69695,0 88.34610000000001,21.68388,0 88.33333,21.71389,0 88.34415,21.62222,0 88.30859000000001,21.60305,0 88.29721000000001,21.77277,0 88.26194,21.8,0 88.30831000000001,21.57055,0 88.25225000000002,21.55052,0 88.20502000000001,21.51847,0 88.17249,21.53918,0 88.12221,21.61312,0 88.05122000000002,21.63086,0 87.94918,21.80093000000001,0 87.91101999999999,21.80093000000001,0 87.82944000000001,21.71916,0 87.68498,21.64777,0 87.48090000000002,21.61178,0 87.11693,21.51139,0 86.87553,21.27443,0 86.83443,21.18944,0 86.83526999999999,21.10611,0 86.96748,20.79527,0 86.87886,20.76777,0 86.98553,20.75278,0 86.99498,20.70666,0 86.93718,20.7,0 86.98888,20.67167,0 87.04165999999999,20.69333,0 86.75584000000001,20.49138,0 86.72083000000002,20.3725,0 86.78525999999999,20.38527,0 86.80441999999999,20.43611,0 86.80054,20.38166,0 86.69275,20.29416,0 86.74802000000001,20.3061,0 86.57444,20.21249,0 86.48888,20.10721,0 86.39360000000001,20.01388,0 86.42386999999999,19.98611,0 86.28027,19.91416,0 85.62385999999999,19.71361,0 85.23415,19.51195,0 84.86638000000001,19.22027,0 84.78610000000001,19.11443,0 84.74193,19.14889,0 84.72659,19.124,0 84.73526,19.07472,0 84.78083,19.09417,0 84.67638,18.94194,0 84.43552,18.64638,0 84.27554000000001,18.51833,0 84.24498,18.525,0 84.24165000000001,18.49611,0 84.27666000000001,18.49944,0 84.34942,18.54888,0 84.14166,18.37111,0 84.08028,18.26861,0 83.77582,18.14277,0 83.58275999999999,18.0175,0 83.47054,17.9,0 83.44332000000001,17.91582,0 83.45664000000001,17.88138,0 83.34220000000001,17.71444,0 83.29498000000001,17.68693,0 83.23693,17.71167,0 83.29694000000002,17.66555,0 83.21304000000001,17.63139,0 83.23859,17.60083,0 83.21638,17.58055,0 82.50555,17.22305,0 82.31331,17.04556,0 82.2486,16.92027,0 82.27222,16.86222,0 82.35971000000002,16.82056,0 82.36449,16.93222,0 82.37195,16.86854,0 82.34644,16.70472,0 82.31226,16.60444,0 82.28032,16.61944,0 82.30199,16.575,0 82.07449,16.44305,0 81.72726,16.31083,0 81.5856,16.33721,0 81.54504000000001,16.37305,0 81.54474999999999,16.34416,0 81.41947999999999,16.33777,0 81.25944000000001,16.27662,0 81.15782,16.05306,0 81.15837000000001,15.97527,0 81.00171,15.84445,0 81.01727,15.77555,0 80.81507000000001,15.71571,0 80.80443000000001,15.84472,0 80.67137000000001,15.90583,0 80.65776,15.88861,0 80.68552,15.88306,0 80.55415000000001,15.87694,0 80.27943000000001,15.69917,0 80.20637000000002,15.48861,0 80.09081999999999,15.30916,0 80.04886999999999,15.04889,0 80.10578000000001,14.78102,0 80.15331000000001,14.67445,0 80.18221,14.59638,0 80.14413999999999,14.56555,0 80.19859,14.57027,0 80.17415,14.34389,0 80.13721000000001,14.25639,0 80.07916,14.24472,0 80.03999,14.19528,0 80.12886,14.23667,0 80.14915000000002,14.01111,0 80.24748,13.80889,0 80.22581,13.68,0 80.34972000000001,13.33417,0 80.26277,12.94916,0 80.25888000000001,12.78222,0 80.16025999999999,12.47305,0 80.03360000000001,12.27861,0 79.94193,12.22305,0 80.0061,12.23027,0 79.86720000000001,12.03277,0 79.78386999999999,11.775,0 79.75139,11.54916,0 79.82249,11.37333,0 79.76667000000001,11.38389,0 79.67192,11.29556,0 79.76389,11.36,0 79.83110000000001,11.345,0 79.84081999999999,10.81778,0 79.85971000000001,10.29538,0 79.93916,10.12232,0 80.24818999999999,9.827252,0 80.36803000000002,9.653893999999999,0 80.80193,9.292769,0 80.73499,9.302498999999999,0 80.80582000000001,9.240273,0 80.79665,9.266660999999999,0 80.82444000000001,9.261945000000001,0 80.88388000000001,9.138609000000001,0 80.83222000000001,9.139715000000001,0 80.89249,9.111392,0 80.95750000000001,9.010556000000001,0 80.87608,9.036395000000001,0 80.93027000000001,8.979444000000001,0 80.92081000000002,8.935551,0 80.97971,8.973611999999999,0 81.23109,8.651106,0 81.20555000000002,8.608059000000001,0 81.25221000000001,8.542214,0 81.20833,8.570826,0 81.21388,8.508609,0 81.16137000000001,8.534447999999999,0 81.13054,8.500005,0 81.16775,8.514998,0 81.26555000000001,8.453609,0 81.32026999999999,8.520002,0 81.36136999999999,8.487215000000001,0 81.39137,8.367217999999999,0 81.35442000000001,8.403893,0 81.35498,8.366382,0 81.39499000000001,8.340831,0 81.44331,8.173889000000001,0 81.4397,8.101395,0 81.39916,8.187497000000001,0 81.39027,8.140003999999999,0 81.43359,8.085824000000002,0 81.46361,8.112769999999999,0 81.51555000000002,8.003052,0 81.56944000000001,7.983891000000001,0 81.59305000000001,7.838892,0 81.69465,7.757684,0 81.80025999999999,7.610552,0 81.82656,7.473186000000001,0 81.87886,7.312221000000001,0 81.89166,7.013609,0 81.78221000000001,6.624720000000001,0 81.66110000000001,6.440003000000001,0 81.32417,6.198327,0 81.21138000000001,6.160284,0 81.19609,6.181946,0 81.11887,6.112503000000001,0 80.8186,6.037776,0 80.71638,5.956946,0 80.59193000000001,5.918336,0 80.46471,5.933340000000001,0 80.44026,5.96555,0 80.20081999999999,6.026112000000001,0 80.12581,6.093891,0 80.02666000000001,6.268337000000001,0 79.98648,6.432363,0 79.85137,6.83639,0 79.85831,7.024167000000001,0 79.80748,7.192214,0 79.8436,7.125272000000001,0 79.86248999999999,7.155837,0 79.82639,7.198893000000001,0 79.79694000000001,7.661394,0 79.70638,8.035830000000001,0 79.69804000000001,8.217504,0 79.77399000000001,8.533196,0 79.92596,8.795825000000001,0 79.91638000000002,8.931663,0 79.88623,8.969967000000001,0 79.69427,9.086679,0 79.44081,9.148337,0 79.27222,9.252773,0 78.97110000000001,9.273607999999999,0 78.66221,9.176660999999999,0 78.65637,9.147779,0 78.39664999999999,9.089721000000001,0 78.19247,8.904166999999999,0 78.16361000000002,8.754165,0 78.20804,8.781658999999999,0 78.21053000000001,8.75555,0 78.11192,8.654715,0 78.13997999999999,8.617221000000001,0 78.13164999999999,8.486667000000001,0 78.06053,8.364167,0 77.99693000000001,8.338328000000001,0 77.79275,8.225,0 77.77554000000001,8.181108,0 77.5872,8.134722,0 77.54082,8.069715,0 77.30304,8.123327,0 76.9986,8.365273999999999,0 76.54387,8.907496999999999,0 76.54498,8.930277,0 76.60415999999999,8.90972,0 76.61414000000001,8.928890000000001,0 76.57082,8.939159,0 76.60053000000001,8.971947,0 76.65860000000001,8.964998,0 76.62943,8.981945,0 76.66748,9.003609000000001,0 76.57720999999999,8.994166999999999,0 76.55859,8.95166,0 76.55692999999999,8.990829,0 76.52694,8.938890000000001,0 76.45471000000001,9.122499,0 76.47581,9.115550000000001,0 76.48387,9.161667,0 76.46138000000001,9.149445,0 76.41914,9.249165,0 76.44247,9.143325000000001,0 76.31582,9.463608000000001,0 76.23848,9.953955000000002,0 76.23437,9.986049,0 76.19637,10.06528,0 76.17747,10.17,0 76.24109,10.22666,0 76.19497,10.26445,0 76.20663999999999,10.20306,0 76.15776,10.19527,0 76.05553999999999,10.505,0 75.92416,10.75556,0 75.93858,10.79277,0 75.90748000000001,10.80333,0 75.72553000000001,11.32972,0 75.7411,11.36306,0 75.67859,11.44583,0 75.61304,11.47166,0 75.52858999999999,11.70027,0 75.31219,11.90056,0 75.30775,11.93806,0 75.39664999999999,11.91611,0 75.39388,11.97222,0 75.30971,11.95222,0 75.27442000000001,12.00777,0 75.33167,12.01472,0 75.29636000000002,12.03777,0 75.25912,12.01889,0 75.27831999999999,11.96194,0 75.2186,12.01806,0 75.19582,12.00389,0 75.17613,12.06975,0 75.10721,12.22,0 74.85526,12.755,0 74.82332,12.83361,0 74.85999,12.82389,0 74.93998000000001,12.87111,0 74.84276,12.84556,0 74.81026000000001,12.86472,0 74.77916999999999,13.08389,0 74.68665,13.37833,0 74.68248000000001,13.46278,0 74.70139,13.41056,0 74.71249000000002,13.46806,0 74.67609,13.51028,0 74.66388000000002,13.63194,0 74.73443,13.65222,0 74.68193000000001,13.70611,0 74.65721000000002,13.65972,0 74.61913,13.8325,0 74.49442999999999,14.01639,0 74.42525999999999,14.24861,0 74.51186,14.24342,0 74.40942,14.29445,0 74.35138000000001,14.51028,0 74.39444,14.45332,0 74.42443,14.47611,0 74.35803,14.56833,0 74.3336,14.51555,0 74.30081,14.52166,0 74.28831,14.58417,0 74.33859,14.60611,0 74.26470999999999,14.62222,0 74.25082999999999,14.71889,0 74.22331,14.73777,0 74.19414000000002,14.71444,0 74.08971,14.79777,0 74.23499,14.87471,0 74.20914999999999,14.89527,0 74.12303000000001,14.84417,0 74.10136,14.86709,0 74.03361,14.91722,0 74.01999000000001,15.00055,0 73.91553999999999,15.07805,0 73.96082000000001,15.15472,0 73.88054,15.35971,0 73.78610000000001,15.39805,0 73.91249000000001,15.40111,0 73.96361,15.36361,0 73.91692999999999,15.41916,0 73.78859,15.455,0 73.86499000000002,15.50667,0 73.86388,15.53472,0 73.75832,15.49471,0 73.73081999999999,15.59777,0 73.83526000000001,15.65944,0 73.71638,15.61972,0 73.69721,15.72195,0 73.64193,15.74027,0 73.64943,15.78416,0 73.59387,15.89278,0 73.48553,15.99139,0 73.51331999999999,16.01972,0 73.44776,16.05584,0 73.48859,16.18,0 73.45499,16.16916,0 73.44776,16.10889,0 73.43804,16.21832,0 73.40998999999999,16.21749,0 73.35581999999999,16.36889,0 73.38191999999999,16.39861,0 73.30165,16.5225,0 73.31581,16.55695,0 73.36054,16.51222,0 73.36774,16.55861,0 73.30859,16.60306,0 73.37276,16.59249,0 73.37276,16.62305,0 73.31693,16.62861,0 73.29109,16.7575,0 73.30971,16.80583,0 73.26972000000001,16.85333,0 73.28805,16.98166,0 73.24832000000002,17.03555,0 73.27139,17.03056,0 73.2747,17.08194,0 73.18359,17.29888,0 73.24442999999999,17.28417,0 73.15998999999999,17.40055,0 73.18581,17.44027,0 73.12776,17.53943,0 73.12776,17.56611,0 73.19914,17.58638,0 73.14166,17.59361,0 73.11443,17.63666,0 73.10914,17.76972,0 73.01166000000001,17.94805,0 73.03498999999999,17.98472,0 73.00054,18.01444,0 73.04443000000001,18.05167000000001,0 72.97971,18.06305,0 72.96915,18.18694,0 72.92221000000001,18.22722,0 72.93803,18.27945,0 72.97165000000001,18.23944,0 73.05663000000001,18.22138,0 73.05165,18.18305,0 73.07887,18.21472,0 73.06499,18.27389,0 72.98581,18.28389,0 72.90694000000001,18.36249,0 72.90916,18.52638,0 72.95138,18.52944,0 72.99387,18.4561,0 73.01694000000001,18.46722,0 72.9611,18.55139000000001,0 72.91443000000001,18.55277,0 72.85748,18.64805,0 72.85741,18.79465,0 72.80582,18.895,0 72.80247,18.95304,0 72.76999000000002,18.94306,0 72.82249,19.03777,0 72.82082,19.17277,0 72.77998,19.16027,0 72.82666,19.25056,0 72.77638,19.20388,0 72.77748,19.30861,0 72.96971000000001,19.29166,0 73.01609999999999,19.20583,0 73.04722,19.21726,0 72.96388,19.30917,0 72.79776,19.32611,0 72.75443,19.36972,0 72.74359,19.47611,0 72.87916000000001,19.52778,0 72.79443000000001,19.52361,0 72.73305000000001,19.57805,0 72.74249,19.51056,0 72.71693000000001,19.5475,0 72.68831,19.72111,0 72.73165,19.70555,0 72.73220000000001,19.78277,0 72.67525999999999,19.74611,0 72.64748,19.84666,0 72.72745999999999,20.13218,0 72.75359,20.295,0 72.88527000000001,20.51305,0 72.90166000000001,20.73222,0 72.94609,20.75833,0 72.92110000000001,20.81583,0 72.88916999999999,20.79555,0 72.89305,20.87305,0 72.83443,20.83416,0 72.79096,20.87397,0 72.83098,20.92505,0 72.89109999999999,20.97888,0 72.78471999999999,21.00082,0 72.73706,20.99305,0 72.70739,21.07498,0 72.70011,21.07702,0 72.66921000000001,21.093,0 72.62608,21.08472,0 72.61248999999999,21.12068,0 72.60988999999999,21.25536,0 72.58249000000001,21.34138,0 72.64776999999999,21.35889,0 72.56667,21.3825,0 72.75499000000001,21.46472,0 72.6947,21.46972,0 72.59081999999999,21.41195,0 72.61156,21.47095,0 72.52789,21.67045,0 72.30326,21.63418,0 72.24249,21.46527,0 72.10387,21.30972,0 72.08611000000001,21.24471,0 72.11053,21.20194,0 72.04886999999999,21.16083,0 71.56026,20.94611,0 71.56191,20.97861,0 71.46693000000001,20.88194,0 71.01195000000001,20.74166,0 70.96608999999999,20.70277,0 70.83138,20.69444,0 70.52777,20.81111,0 70.26028,20.97666,0 70.01582999999999,21.18611,0 69.80888,21.46361,0 69.59582,21.63333,0 69.40331999999999,21.80306,0 69.38970999999999,21.87444,0 69.36053,21.84722,0 69.22942000000001,21.94722,0 68.96278,22.24777,0 68.94274,22.32166,0 68.96388,22.38445,0 69.06914,22.48121,0 69.13518999999999,22.5504,0 69.20937000000001,22.73017,0 69.14346999999999,22.8714,0 68.66665,23.14222,0 68.5936,23.22888,0 68.62053,23.26777,0 68.56887999999999,23.25,0 68.53916,23.27833,0 68.51105,23.36989,0 68.53804,23.41805,0 68.47638000000001,23.40027,0 68.46278,23.43944,0 68.43692,23.42638,0 68.39158999999999,23.4551,0 68.40292,23.51842,0 68.42331,23.62722,0 68.48553,23.61,0 68.46693000000001,23.65304,0 68.63638,23.75722,0 68.66887,23.80972,0 68.81833,23.87638000000001,0 68.62831,23.82611,0 68.58804000000001,23.76695,0 68.44747,23.72693,0 68.32138999999999,23.58083,0 68.14028,23.60471,0 68.2011,23.66417,0 68.23054999999999,23.64361,0 68.28027,23.66666,0 68.21388,23.68055,0 68.1978,23.76668,0 68.21442,23.86833,0 68.28194000000001,23.89777,0 68.29053999999999,23.94444,0 68.33054,23.91472,0 68.36193,23.97388,0 68.37637000000001,23.94417,0 68.39055000000001,23.96749000000001,0 68.74721,23.96999,0 68.74525,24.31639,0 68.78306000000001,24.33278,0 68.82471000000001,24.33278,0 68.85804,24.24166,0 68.92693,24.32555,0 68.98803,24.25694,0 69.08028,24.29722,0 69.18941,24.25805,0 69.31081,24.29666,0 69.59860000000001,24.28139,0 69.72360000000001,24.17111,0 70.01470999999999,24.16972000000001,0 70.07071000000002,24.19792,0 70.12009000000001,24.30904,0 70.56749000000002,24.43639,0 70.60081,24.415,0 70.56776000000001,24.37138,0 70.58443,24.27834,0 70.65054000000001,24.24138,0 70.79082,24.23944,0 70.88582,24.27444,0 70.86443,24.31694,0 70.92804,24.36167,0 71.02916999999999,24.36361,0 71.10581999999999,24.41638,0 71.08194,24.44861,0 71.0061,24.45805,0 71.00555,24.54084,0 70.97971,24.56056,0 70.99276,24.6361,0 71.07743000000001,24.68047,0 70.9422,24.93555,0 70.8797,25.15611,0 70.75333000000001,25.27389000000001,0 70.67747,25.40166,0 70.66638,25.69833,0 70.60637,25.71416,0 70.38611,25.67472,0 70.29276000000002,25.70138,0 70.1172,25.91888000000001,0 70.09276,26.08,0 70.17386999999999,26.24444,0 70.17192,26.55277,0 70.07138000000001,26.59611,0 69.80081,26.59416,0 69.72276000000001,26.66527,0 69.51277,26.74667000000001,0 69.48609999999999,26.80638,0 69.50972,26.99221,0 69.58333,27.17833,0 69.86749,27.40861,0 70.0311,27.59055,0 70.11971,27.81611,0 70.20354,27.88558,0 70.36832,28.02083,0 70.51443,28.03917,0 70.6636,27.92833,0 70.6622,27.86333000000001,0 70.73775999999999,27.73138,0 70.86665000000001,27.70693,0 71.22581,27.84583,0 71.62691,27.87611,0 71.89694,27.96194,0 71.91998,28.12082,0 72.20663999999999,28.4025,0 72.29221,28.68,0 72.38970999999999,28.785,0 72.94832,29.03583,0 72.98888,29.14194000000001,0 73.08638000000001,29.24582,0 73.26527,29.55306,0 73.39749000000001,29.94277,0 73.93341,30.136,0 73.96442,30.23472,0 73.93442,30.31416,0 73.8586,30.36028,0 73.8725,30.3901,0 73.93380000000002,30.41625,0 73.99609,30.505,0 74.05025999999999,30.515,0 74.04886999999999,30.59916000000001,0 74.16109,30.66167,0 74.31693,30.88944,0 74.40063000000001,30.88415000000001,0 74.43221,30.94277,0 74.55499,30.99505,0 74.56112,31.04559,0 74.69459000000002,31.05396,0 74.68432,31.11202,0 74.62375,31.12393,0 74.55728000000001,31.07605,0 74.53898,31.11872,0 74.54837000000001,31.35443,0 74.65510999999999,31.42797,0 74.59842,31.48941,0 74.61033999999999,31.55431,0 74.48872,31.72159,0 74.54922000000001,31.74385,0 74.60532000000001,31.87712,0 74.83311000000001,31.96271000000001,0 74.90347000000001,32.05329,0 75.04075000000002,32.04146,0 75.19403,32.07404,0 75.22417,32.11676,0 75.25653,32.09287,0 75.30686,32.13391,0 75.32883,32.20907,0 75.39130000000002,32.24158,0 75.32859000000001,32.29276,0 75.31931,32.34466,0 75.04886999999999,32.47832,0 74.93858,32.44887,0 74.86165,32.48472,0 74.74443000000001,32.465,0 74.70387,32.48555,0 74.65358999999999,32.59332,0 74.70165,32.84694,0 74.63248,32.77055,0 74.53166,32.75027,0 74.45444000000001,32.79306,0 74.37164,32.7711,0 74.32966999999999,32.81542,0 74.36388,32.86944,0 74.33414999999999,33.00054,0 74.17331,33.04749,0 74.01331999999999,33.19888,0 74.02415000000001,33.27638,0 74.12581,33.34333,0 74.18248,33.51056,0 74.15443000000001,33.56139,0 74,33.65417,0 73.99471,33.75555,0 74.05025999999999,33.83167,0 74.23581,33.88416,0 74.29582000000001,33.97748,0 74.24442999999999,34.01915,0 73.97887,34.01139,0 73.91332,34.0686,0 73.9122,34.11527,0 74.01416999999999,34.17556,0 74.01776,34.21804000000001,0 73.97331,34.30277,0 73.84805,34.3186,0 73.79637,34.38555,0 73.87054000000001,34.45833,0 73.88193,34.52194,0 73.94637,34.56554,0 73.94914,34.65444,0 74.38916,34.78194,0 74.69275,34.6936,0 75.24303999999999,34.62609,0 75.39249,34.55471,0 75.66137000000001,34.50082,0 75.80553999999999,34.50721,0 75.98804,34.62694,0 76.16748,34.58638,0 76.22916000000001,34.60944,0 76.29359,34.70027,0 76.47026,34.76999,0 76.56303000000001,34.73166,0 76.7272,34.74388,0 76.80138,34.67222,0 76.86998,34.65888,0 76.91692999999999,34.68138,0 76.96416000000001,34.94055,0 77.06081,35.01472,0 77.04248,35.09916,0 77.82393,35.50133000000001,0 77.92470000000002,35.48972,0 77.97248999999999,35.57417000000001,0 78.13694,35.54333,0 78.17221000000001,35.61943,0 78.29915,35.70194,0 78.62553,35.81666,0 78.74193,35.92027,0 78.93442,35.89249,0 79.32832999999999,35.98638,0 79.43803000000001,35.96054000000001,0 + + + 1 + + + + + GMT +05:45 + + +]]> + #khStyle0575 + + + + +82.0664,27.91416,0 81.97776000000002,27.91722,0 81.88026000000001,27.85721,0 81.48027,28.08,0 81.42192,28.16638,0 81.31999000000002,28.13,0 81.31218,28.19333,0 81.19359,28.36667,0 81.01888,28.40416000000001,0 81.00694,28.44305,0 80.93858,28.44111,0 80.89249,28.50638,0 80.79832,28.52389,0 80.66249000000001,28.63277,0 80.58499000000001,28.6536,0 80.57720999999999,28.68556,0 80.50555,28.65833,0 80.50861,28.56693,0 80.44026,28.62888,0 80.35776,28.62944,0 80.24609,28.75082,0 80.05582,28.83611,0 80.05998,28.93166,0 80.1297,28.99305,0 80.14664999999999,29.10833,0 80.25694,29.14472,0 80.23997,29.21472,0 80.28777,29.20556,0 80.30693000000001,29.31055,0 80.27582,29.3225,0 80.23637000000001,29.42527,0 80.40694000000001,29.59638,0 80.37691,29.7486,0 80.53970000000001,29.84611,0 80.59887000000001,29.95527,0 80.74609,30.02138,0 80.87276,30.13888,0 80.8586,30.17472,0 80.89333000000001,30.21111,0 80.93637,30.18138,0 81.02536000000001,30.20436,0 81.10971000000001,30.02472,0 81.22360000000001,30.01027,0 81.30193,30.08361,0 81.29082,30.13055,0 81.37777,30.16667,0 81.42110000000001,30.38528,0 81.54192000000001,30.33056,0 81.55775,30.38194,0 81.63721,30.42444,0 81.80304,30.36361,0 82.10054,30.34222000000001,0 82.10721,30.23083,0 82.17859,30.19055,0 82.15027000000001,30.12556,0 82.17776000000001,30.06361,0 82.23109,30.07527,0 82.55775,29.94277,0 82.65581,29.83527000000001,0 82.71554999999999,29.83194,0 82.71053000000001,29.78972,0 82.85525000000001,29.66889000000002,0 82.90860000000001,29.69444,0 82.9922,29.6725,0 83.09276,29.58305,0 83.11749,29.62056000000001,0 83.19525,29.63083,0 83.28306000000001,29.55111000000001,0 83.28442,29.47443,0 83.34610000000001,29.49666,0 83.37916,29.46611,0 83.38054,29.41638,0 83.52748,29.26916,0 83.55277,29.18583,0 83.67192,29.16027,0 83.72054,29.22889,0 83.91249000000001,29.28972,0 84.11388000000001,29.26194,0 84.13667,29.21443,0 84.18552,29.20556,0 84.15833000000001,29.13472,0 84.20249,29.05695,0 84.2561,29.04222,0 84.23693000000002,28.91888000000001,0 84.39554,28.85917,0 84.48109,28.73667,0 84.63639000000001,28.70277000000002,0 84.70663999999999,28.66055,0 84.70610000000001,28.60139,0 84.7747,28.59888,0 84.84663999999999,28.54445,0 84.95470000000002,28.54416,0 85.05998,28.64111,0 85.18996,28.60332,0 85.18192999999999,28.53,0 85.10193,28.44666,0 85.10332,28.31639,0 85.37665,28.26361,0 85.45889,28.30166,0 85.61998,28.25111,0 85.71832000000002,28.33943,0 85.74722,28.23693000000001,0 85.88611,28.15167,0 85.91887,28.03333,0 85.97803999999999,27.98972,0 85.97304,27.91583,0 86.01443,27.88277,0 86.08942999999999,27.89083000000001,0 86.13721,27.93194,0 86.0936,28.08611,0 86.18359,28.16388,0 86.22638000000001,28.00667,0 86.44498,27.90805,0 86.53498999999999,27.95499,0 86.57193,28.10583000000001,0 86.63666000000001,28.08555,0 86.68637,28.11222,0 86.75805,28.08027,0 86.76416,28.02666,0 86.87415,28.01777,0 86.93304000000002,27.95055,0 87.03943000000001,27.96083,0 87.19275,27.82306,0 87.30609,27.81639,0 87.40416999999999,27.86055,0 87.39360000000001,27.80916,0 87.5461,27.84583,0 87.59775999999999,27.81027,0 87.66054,27.82888,0 87.72054,27.805,0 87.79721000000001,27.83722,0 87.86887,27.91888,0 88.14279999999999,27.86605,0 88.19386,27.8475,0 88.18887000000001,27.78777,0 88.11913,27.60833,0 88.05692999999999,27.53334,0 88.06667000000002,27.43693,0 88.03888000000001,27.37611,0 88.05971,27.32777000000002,0 87.99303999999999,27.11444,0 88.11859,26.98444,0 88.19497,26.75416,0 88.10193,26.53028000000001,0 88.09583000000001,26.43888000000002,0 88.02638,26.36916,0 87.94941,26.40055,0 87.89055999999999,26.47333,0 87.84305000000001,26.43888000000002,0 87.78554,26.45638,0 87.76639,26.40861,0 87.69748,26.42944,0 87.59999000000001,26.37972,0 87.44748,26.43250000000001,0 87.37082,26.40333,0 87.32805999999999,26.34777,0 87.24525,26.41222,0 87.1375,26.40972,0 87.09415,26.45638,0 87.06137,26.58833,0 86.88598,26.46866,0 86.73165,26.41999,0 86.53498999999999,26.52806,0 86.33249000000001,26.58499,0 86.33167,26.61277,0 86.20664000000001,26.58556,0 86.18387,26.60806,0 86.02943000000001,26.66306,0 85.85027,26.57222,0 85.73054999999999,26.66722,0 85.72609,26.80167000000001,0 85.63026000000001,26.8675,0 85.45305000000001,26.78694000000001,0 85.41249000000001,26.79472000000001,0 85.33443,26.73582,0 85.21165000000001,26.76694,0 85.18388,26.86666,0 85.04082,26.84777,0 85.04109,26.88666,0 84.97331,26.90304,0 84.95277,26.95804,0 84.84360000000001,27.01527,0 84.75027,27.0075,0 84.64749000000001,27.04527,0 84.68414,27.21555,0 84.60997999999999,27.33556,0 84.29776,27.38832,0 84.14333000000001,27.52417,0 84.09887000000001,27.51611,0 84.04026,27.44472,0 83.83526999999999,27.43805,0 83.87553,27.38083,0 83.85832000000001,27.35221,0 83.60776,27.46916,0 83.39610000000002,27.47861,0 83.37665,27.37527,0 83.29137,27.33777,0 83.17638,27.44888,0 82.76860000000001,27.50166,0 82.7011,27.71111000000001,0 82.43471,27.67556,0 82.0664,27.91416,0 + + + 1 + + + + GMT +06:00 + + +]]> + #khStyle0600 + + + + + +73.35092,-9.431101,0 70.25215,-9.433405000000001,0 70.25215,-6.970275,0 73.34769,-6.970275,0 73.35092,-9.431101,0 + + + 1 + + + + + +88.43304000000001,26.55139000000001,0 88.68082,26.42027,0 88.69164000000001,26.34277,0 88.73037000000001,26.32068,0 88.67950999999999,26.30742,0 88.66918,26.2609,0 88.76734,26.29859,0 88.82383,26.23343,0 88.88330000000001,26.2852,0 89.02048000000001,26.23517,0 89.04134000000001,26.28179,0 88.98159000000001,26.29568,0 88.90916,26.39271,0 88.93877999999999,26.44582,0 89.06721,26.3877,0 89.12967,26.15927,0 89.31990999999999,26.02483000000001,0 89.39355000000001,26.0479,0 89.52551,25.98821,0 89.60242,26.06897,0 89.55986,26.16146000000001,0 89.60896000000001,26.17790000000002,0 89.60173,26.22748,0 89.6386,26.2278,0 89.6493,26.18946,0 89.73915,26.15638,0 89.77804999999999,26.04195,0 89.85637,25.98111,0 89.81671,25.95416000000001,0 89.86545,25.93686,0 89.80721,25.82305,0 89.86443,25.64056,0 89.81554,25.36693,0 89.84526000000001,25.2886,0 89.91721000000001,25.31,0 90.11053000000001,25.22472,0 90.43831,25.14721000000001,0 90.65305000000001,25.18111,0 90.84804,25.14861000000001,0 91.25777000000001,25.20778,0 91.48221000000001,25.13861,0 91.59027,25.17278,0 91.64888000000002,25.12667,0 91.75749000000002,25.17388,0 92.04080999999999,25.18777,0 92.40637,25.03056000000001,0 92.41665999999999,24.9725,0 92.48305000000001,24.93,0 92.49384000000001,24.87879,0 92.40173000000002,24.84041,0 92.25526000000004,24.90361,0 92.25664999999999,24.77390000000001,0 92.19108000000001,24.56528,0 92.13247,24.51388,0 92.13527000000002,24.41416,0 92.08638000000001,24.37472,0 91.97470000000001,24.37889,0 91.98943000000001,24.31944,0 91.94664000000002,24.34945,0 91.91776,24.32667,0 91.93248,24.27555,0 91.89249,24.14972,0 91.83192000000001,24.22611,0 91.75775,24.23917000000001,0 91.75525,24.15833,0 91.70385000000002,24.15166,0 91.6572,24.22416,0 91.62746,24.10972,0 91.54633,24.08693,0 91.37329,24.10194,0 91.36110000000001,23.99528,0 91.29832,23.99388,0 91.23776000000001,23.90777,0 91.25054000000002,23.83027,0 91.21638,23.75611,0 91.15860000000002,23.73666,0 91.15915,23.70082,0 91.20028000000004,23.67805,0 91.15942,23.64055000000001,0 91.28221000000002,23.37332,0 91.31469000000001,23.36416,0 91.28859,23.32832,0 91.33554,23.11555,0 91.40221,23.06945,0 91.37746,23.20693,0 91.41665999999999,23.26611,0 91.49332000000001,23.18666,0 91.56359999999999,22.9836,0 91.61360000000001,22.94305,0 91.64722000000002,22.98638,0 91.72499000000001,22.99472,0 91.82055,23.09777,0 91.76805000000002,23.25,0 91.78360000000001,23.3125,0 91.84498000000001,23.41027,0 91.93304000000001,23.44444,0 91.96609000000001,23.50166,0 91.95,23.73222000000001,0 92.0372,23.64528,0 92.17486000000001,23.73682,0 92.21165000000001,23.65222,0 92.25221000000002,23.7225,0 92.28888000000001,23.69611,0 92.27831999999999,23.605,0 92.37358,23.35925,0 92.38697999999999,23.27993,0 92.34860000000001,23.22361,0 92.37469,22.94193,0 92.44386000000002,22.88944,0 92.47054000000001,22.75638,0 92.51639000000002,22.71583,0 92.60609,22.16277,0 92.56218,22.13333,0 92.60081,21.98222000000001,0 92.62164,21.87583,0 92.60027000000001,21.63416,0 92.66935000000002,21.29698,0 92.59554000000001,21.25194,0 92.55359,21.37361,0 92.42747000000001,21.37472,0 92.37691,21.47416,0 92.31667,21.42138,0 92.26555000000002,21.42333,0 92.25305000000002,21.3725,0 92.19220000000001,21.32444,0 92.19859000000001,21.15417,0 92.26194,21.05431,0 92.26331999999999,20.91916000000001,0 92.33333,20.76416,0 92.31895,20.729,0 90.32641000000001,18.56566,0 90.33015,15.23029,0 90.33504000000001,10.88448,0 90.34064000000001,5.884479,0 92.9025,5.880672000000001,0 94.60397,3.503177,0 97.51384,-0.5628515,0 97.51384,-1.259497,0 97.51384,-6.259501,0 97.51384,-11.2595,0 93.69904000000001,-11.2595,0 93.69904000000001,-13.93192,0 97.51384,-13.93535,0 97.51384,-14.73534,0 97.51384,-19.73534,0 97.51384,-24.73534,0 97.51384,-29.73533,0 97.51384,-34.73534,0 97.51384,-39.73533000000001,0 97.51384,-44.73534,0 97.51384,-48.73533,0 97.51384,-53.73534000000002,0 97.51384,-58.73533,0 97.51384,-63.73534,0 97.51384,-64.90000000000001,0 97.51384,-69.90000000000001,0 97.51384,-74.90000000000001,0 97.51384,-79.90000000000001,0 97.51384,-84.89999,0 97.51384,-89.90000000000001,0 96.57599999999999,-89.90000000000001,0 95.63816,-89.90000000000001,0 94.70033000000002,-89.90000000000001,0 93.76249,-89.90000000000001,0 92.82466000000001,-89.90000000000001,0 91.88683000000002,-89.90000000000001,0 90.94899,-89.90000000000001,0 90.01115000000002,-89.90000000000001,0 89.07332,-89.90000000000001,0 88.13549,-89.90000000000001,0 87.19765,-89.90000000000001,0 86.25982000000001,-89.90000000000001,0 85.32198,-89.90000000000001,0 84.38415999999999,-89.90000000000001,0 83.44632000000001,-89.90000000000001,0 82.50848000000001,-89.90000000000001,0 82.50834999999999,-84.89999,0 82.50829,-82.28883,0 82.50816,-77.28883,0 82.50802,-72.28883000000002,0 82.50792,-68.68883,0 82.5078,-63.68882,0 82.50766,-58.68883,0 82.50753000000002,-53.68882000000001,0 82.5074,-48.68883000000001,0 82.50727999999999,-43.68883,0 82.50713,-38.68883,0 82.50700000000002,-33.68883,0 82.50697,-32.48883,0 82.50684,-27.48883,0 82.50671,-22.48882,0 82.50658,-17.48883,0 82.50655,-16.18883,0 82.5064,-11.18883,0 82.50624999999999,-6.188824,0 82.5061,-1.188829,0 82.50595000000001,3.811175,0 82.50581,8.811171,0 82.50565,13.81117,0 82.50555,17.22305,0 83.21638,17.58055,0 83.23859,17.60083,0 83.21304000000001,17.63138,0 83.29694000000002,17.66555,0 83.23693,17.71167,0 83.29498000000001,17.68693,0 83.34220000000001,17.71444,0 83.45664000000001,17.88138,0 83.44332000000001,17.91582,0 83.47054,17.9,0 83.58275999999999,18.0175,0 83.77582,18.14277,0 84.08028,18.26861,0 84.14166,18.37111,0 84.34942,18.54888,0 84.27666000000001,18.49944,0 84.24165000000001,18.49611,0 84.24498,18.525,0 84.27554000000001,18.51833,0 84.43552,18.64638,0 84.67638,18.94194,0 84.78083,19.09417,0 84.73526,19.07472,0 84.72659,19.124,0 84.74193,19.14889,0 84.78610000000001,19.11443,0 84.86638000000001,19.22027,0 85.23415,19.51195,0 85.62385999999999,19.71361,0 86.28027,19.91416,0 86.42386999999999,19.98611,0 86.39360000000001,20.01388,0 86.48888,20.10721,0 86.57444,20.21249,0 86.74802000000001,20.3061,0 86.69275,20.29416,0 86.80054,20.38166,0 86.80441999999999,20.43611,0 86.78525999999999,20.38527,0 86.72083000000002,20.3725,0 86.75584000000001,20.49138,0 87.04165999999999,20.69333,0 86.98888,20.67167,0 86.93718,20.7,0 86.99498,20.70666,0 86.98553,20.75278,0 86.87886,20.76777,0 86.96748,20.79527,0 86.83526999999999,21.10611,0 86.83443,21.18944,0 86.87553,21.27443,0 87.11693,21.51139,0 87.48090000000002,21.61178,0 87.68498,21.64777,0 87.82944000000001,21.71916,0 87.91101999999999,21.80093000000001,0 87.94918,21.80093000000001,0 88.05122000000002,21.63086,0 88.12221,21.61312,0 88.17249,21.53918,0 88.20502000000001,21.51847,0 88.25225000000002,21.55052,0 88.30831000000001,21.57055,0 88.26194,21.8,0 88.29721000000001,21.77277,0 88.30859000000001,21.60305,0 88.34415,21.62222,0 88.33333,21.71389,0 88.34610000000001,21.68388,0 88.38694,21.69695,0 88.39082000000001,21.58833,0 88.45387,21.615,0 88.49609,21.95027,0 88.49802,21.87027,0 88.53749000000002,21.81388000000001,0 88.50082,21.7525,0 88.52554000000002,21.65583,0 88.48305000000001,21.55694,0 88.49802,21.52056,0 88.53887,21.52715,0 88.70639,21.57051,0 88.78551,21.55832,0 88.88085000000001,21.51552,0 89.00027,21.60209,0 89.02748,21.62695,0 89.07416000000001,21.61417,0 89.08971,21.65027,0 89.02110000000002,21.78222,0 89.01639,21.86582,0 88.90555000000001,21.95916,0 88.93137,21.98638,0 88.94275,21.93666,0 88.99970999999999,21.90277,0 89.00861,21.93027,0 89.05749,21.92833,0 89.03665,22.09805,0 89.04387,22.13638,0 89.063,22.11547,0 89.09637000000001,22.14861,0 89.00722,22.27639,0 88.99776000000001,22.46555,0 88.92918,22.54767,0 88.95860000000002,22.59138,0 88.93026999999999,22.74833,0 88.97110000000001,22.84694,0 88.86276000000001,22.96667,0 88.87025,23.08777,0 88.98609999999999,23.20833,0 88.72110000000002,23.25166,0 88.71138000000001,23.30861000000001,0 88.79331999999999,23.49417,0 88.74942,23.46693000000001,0 88.56386999999999,23.65222,0 88.60284,23.8624,0 88.66949,23.86855,0 88.73665,23.9198,0 88.72272,23.99796,0 88.75918000000002,24.03604,0 88.70139,24.07917,0 88.70734,24.12171,0 88.70833,24.17138,0 88.75291,24.21413,0 88.70638,24.30277,0 88.49776,24.32083,0 88.32388,24.43443,0 88.12553,24.50861,0 88.04387,24.68972,0 88.1711,24.85166,0 88.13777,24.92138,0 88.22135000000002,24.95433,0 88.26749000000001,24.88472,0 88.34248,24.87028,0 88.45999000000001,25.06944,0 88.45556000000001,25.19055,0 88.58138,25.16945,0 88.62025,25.19806,0 88.70499,25.19527,0 88.80582,25.16556,0 88.83778,25.20361000000001,0 88.93304000000001,25.16444,0 89.00888000000001,25.30083,0 88.86998,25.33583,0 88.82166000000001,25.40166,0 88.83443,25.47916,0 88.79971000000001,25.51055,0 88.69414,25.46778,0 88.54693,25.50416,0 88.45054,25.59389,0 88.44693,25.66611,0 88.27998,25.80167,0 88.15194,25.77861,0 88.11053,25.83555000000001,0 88.09554,25.91527,0 88.18333,26.03389,0 88.15636000000001,26.09249,0 88.18442,26.1525,0 88.35526,26.22333,0 88.35609,26.28444,0 88.45749000000001,26.36916,0 88.52554000000002,26.35972,0 88.48331,26.46111000000001,0 88.37109,26.48917,0 88.35359,26.45167,0 88.33777000000001,26.47389,0 88.40109,26.62527,0 88.43304000000001,26.55139000000001,0 + + + 1 + + + + + +90.00002000000002,28.32405,0 90.38165000000001,28.25139,0 90.39554000000001,28.19888,0 90.35027,28.11222,0 90.37053000000002,28.08027,0 90.60804,28.06445,0 90.69942,28.09583,0 90.90998999999999,28.04944,0 91.01082000000001,27.98,0 91.08693,27.96999,0 91.21444,28.07305,0 91.31499,28.09667,0 91.41943000000001,28.01056,0 91.66721,27.94194,0 91.65776,27.76472,0 91.65277000000002,27.71167,0 91.59498000000001,27.64554,0 91.62082000000001,27.54861,0 91.67359,27.48861,0 91.76555000000002,27.45694,0 91.76833000000002,27.41611,0 91.99887,27.47805,0 92.08916000000001,27.34944,0 92.11443000000001,27.28583,0 92.01776,27.1725,0 92.00999000000002,27.10472,0 92.11193000000002,26.94416,0 92.08150999999999,26.86905,0 91.99721,26.85194,0 91.91526,26.89389,0 91.90498,26.80556,0 91.84360000000001,26.86416,0 91.71249,26.8,0 91.54221,26.80445,0 91.49721000000001,26.8725,0 91.4247,26.87556,0 91.3797,26.8075,0 91.31441000000001,26.77806,0 91.09109000000001,26.81639,0 91.03194000000002,26.78278,0 90.6947,26.77222,0 90.55914,26.80722,0 90.38527000000001,26.90333,0 90.21693000000001,26.85082,0 90.17747,26.77306000000002,0 90.1236,26.74805,0 89.85942,26.73666,0 89.84887000000001,26.70167,0 89.68552000000001,26.7336,0 89.64305000000002,26.71527,0 89.61832,26.72694,0 89.63611,26.77111,0 89.53360000000001,26.81221,0 89.46833,26.79944,0 89.36081,26.86,0 89.22083000000001,26.81472,0 89.12608,26.82361,0 89.03055000000001,26.92749,0 88.95193000000002,26.92667000000001,0 88.93332000000001,26.98499,0 88.87636999999999,26.95055,0 88.86360999999999,27.09194000000002,0 88.75193,27.14861,0 88.79803,27.24638,0 88.90138000000002,27.28222,0 88.91692000000001,27.32083,0 88.97110000000001,27.47361,0 89.12581,27.5675,0 89.12804,27.62333,0 89.22553000000001,27.795,0 89.35999,27.87167000000001,0 89.48749000000001,28.05777,0 89.6236,28.15833,0 89.79276000000002,28.19416,0 89.89388,28.30611,0 89.95027,28.29222,0 90.00002000000002,28.32405,0 + + + 1 + + + + + +75.2397,58.21998,0 75.06638000000001,58.11833,0 75.56441,57.93387,0 75.58275999999999,57.64639,0 75.71249,57.63917000000001,0 75.8586,57.39917,0 75.96638,57.41416,0 76.10887,57.25027999999999,0 76.19192,56.97276000000001,0 76.25194999999999,56.91833,0 76.28943,56.72694,0 76.14915000000001,56.63082,0 76.0461,56.62165000000002,0 76.01528,56.55165000000001,0 75.86526000000001,56.49971000000001,0 75.84415,56.45,0 75.895,56.44276,0 75.93581,56.47971,0 76.0061,56.45388,0 76.05748,56.48277,0 76.14194000000001,56.4511,0 76.07805999999999,56.41471,0 76.11665000000002,56.31415,0 76.29971000000001,56.23638,0 76.31887999999999,56.18555,0 76.16304,56.14943,0 76.15082,56.18055,0 75.99442999999999,56.17832000000001,0 75.95638,56.12749000000001,0 75.74887,56.14111000000001,0 75.70055000000001,56.0675,0 75.54304999999999,56.04722000000002,0 75.50584000000001,55.99610000000001,0 75.31219,55.89166000000001,0 75.29749,55.84471,0 75.37331,55.81333,0 75.37025,55.76666,0 75.08194,55.75027,0 75.13694000000001,55.72332,0 75.12886,55.69943000000001,0 75.23775999999999,55.65999999999999,0 75.13136,55.59888000000002,0 75.1972,55.55972,0 75.30582000000001,55.56917,0 75.32223000000001,55.54027,0 75.325,55.50722,0 75.17137,55.45277,0 75.16859,55.4211,0 75.09138,55.38221,0 75.26944,55.25416,0 75.24803,55.1375,0 75.40027000000002,55.02804,0 75.34027,54.91416,0 75.54082,54.90194,0 75.49165000000001,54.86138,0 75.51331999999999,54.82333,0 75.65721000000001,54.80999,0 75.70972,54.68639,0 75.80887,54.69304,0 75.7897,54.66945,0 75.83499000000001,54.60471,0 75.80609,54.56554,0 75.67777000000001,54.53417,0 75.69136,54.11027,0 76.20721,54.25916000000002,0 76.18552,54.29554000000001,0 76.23888,54.35889,0 76.48775999999999,54.32556,0 76.65694000000001,54.36777000000001,0 76.70663999999999,54.44721,0 76.92359999999999,54.47554000000001,0 76.92498999999999,54.43749,0 76.77888,54.39415,0 76.85583000000001,54.35889,0 76.86498,54.31805000000001,0 76.72136999999999,54.15331000000001,0 76.39333000000001,54.16361,0 76.52164999999999,53.99388,0 77.52387,53.50639,0 77.92137,53.2589,0 78.92303,52.17638000000002,0 79.53637000000001,51.45000000000001,0 79.99387,50.81304999999999,0 80.1096,50.75947,0 80.03516999999999,50.83338,0 80.06545,50.86060000000001,0 80.17211,50.82919,0 80.19905,50.88837,0 80.46236,50.96408000000001,0 80.48678,51.05877,0 80.43068000000001,51.11909,0 80.43872,51.19797000000001,0 80.63344000000001,51.21476000000001,0 80.68783999999999,51.31472000000001,0 80.87224999999999,51.25904,0 80.93223999999999,51.28399,0 80.94029000000002,51.22122,0 81.04084,51.18143,0 81.18359,51.19609,0 81.07639,50.94781,0 81.4247,50.96638,0 81.42192,50.92777,0 81.48997,50.8411,0 81.43747999999999,50.76445,0 81.59540000000001,50.73573,0 81.72581,50.74749000000001,0 81.78276,50.79333,0 81.82887000000001,50.76833000000001,0 82.01111,50.77138999999999,0 82.15027000000001,50.71054,0 82.35637,50.75972,0 82.44274,50.75804999999999,0 82.49887,50.7211,0 82.72026,50.81081,0 82.72748,50.89888,0 82.76111,50.91082,0 83.00999,50.88944000000001,0 83.0872,50.92361,0 83.1386,51.00194000000001,0 83.45638,51.00249000000001,0 83.51361,50.95555000000001,0 83.84333,50.87749000000001,0 83.90166000000002,50.81388000000001,0 83.97693,50.79749,0 83.96998000000001,50.71555,0 84.10621999999999,50.64296,0 84.22304,50.51471000000002,0 84.19692000000001,50.45304,0 84.26277,50.35443,0 84.26694000000001,50.27054,0 84.37302,50.20971000000002,0 84.47386,50.25666,0 84.55998,50.19555,0 84.67443,50.19694,0 84.73636999999999,50.1461,0 84.81053,50.14416000000001,0 84.85193,50.09166000000001,0 85.01443,50.07583,0 85.05832,50.01361,0 84.97915999999999,49.99777,0 84.97776,49.91276,0 85.0836,49.88138,0 85.09193000000001,49.81971,0 85.21053000000001,49.71555000000001,0 85.21111000000001,49.64721000000001,0 85.2586,49.59138000000001,0 85.40387,49.62332,0 85.52443,49.59055,0 85.63081,49.62749,0 85.69054,49.56444,0 85.77083,49.57999,0 85.8372,49.54388000000001,0 85.96915,49.56638,0 85.96944000000001,49.48861000000001,0 86.13275,49.53277000000001,0 86.19107,49.4725,0 86.24582000000001,49.50139999999999,0 86.28749000000001,49.58582000000001,0 86.50583,49.67638,0 86.49706999999999,49.7155,0 86.61109,49.76111,0 86.61638000000001,49.79721,0 86.77499,49.78889,0 86.76277000000002,49.73444000000001,0 86.80025999999999,49.70222,0 86.68221000000001,49.66999,0 86.61665000000001,49.58721000000001,0 86.84694,49.52166,0 86.83971,49.45222,0 86.96442,49.39194,0 86.92665,49.35306,0 87.05247,49.25417000000001,0 87.21887,49.2461,0 87.29971000000001,49.21054000000001,0 87.34821,49.09261,0 87.16748,49.13304,0 86.99887,49.09944,0 86.87469,49.11083000000001,0 86.73054999999999,48.97222,0 86.75277000000001,48.90028000000002,0 86.82138000000001,48.84665,0 86.75943,48.79361,0 86.78333000000002,48.72776000000001,0 86.64499000000002,48.61639,0 86.59610000000001,48.53611,0 86.46362000000001,48.49361,0 86.34415,48.49527000000001,0 86.23081999999999,48.42527000000001,0 85.86248999999999,48.42527000000001,0 85.75915999999999,48.38777000000001,0 85.61388,48.15833,0 85.53777,47.95999,0 85.62221,47.62111,0 85.60359,47.51943,0 85.70055000000001,47.38388000000001,0 85.70555,47.2836,0 85.68665,47.21194000000001,0 85.57331000000002,47.17694,0 85.52931,47.06016,0 85.25776999999999,47.0511,0 84.96361,46.86415,0 84.75942000000001,46.82638,0 84.73526,46.83694,0 84.77887,46.93166,0 84.67804,46.99361,0 84.53194000000001,46.97527000000001,0 84.29471,47.0075,0 84.11109999999999,46.97166000000001,0 83.90000000000001,46.97721,0 83.56499,47.0611,0 83.18571,47.21664,0 83.03276,47.20416,0 83.01470999999999,46.96027,0 82.87387000000001,46.76359999999999,0 82.70889,46.35415,0 82.57332000000001,46.17305,0 82.51082,45.90192,0 82.31493,45.5448,0 82.3622,45.49552000000001,0 82.64943,45.43026,0 82.63554000000001,45.24053,0 82.54943,45.12331,0 82.48165,45.12748,0 82.29694000000001,45.23775,0 81.94804000000001,45.15748,0 81.81581,45.20053,0 81.79776,45.30581,0 81.68831,45.35082,0 81.05444,45.16608,0 80.46915,45.1111,0 80.39166,45.04915,0 80.12138,45.03942000000001,0 79.87109000000001,44.90497,0 79.87581000000002,44.86554,0 80.00166,44.79776,0 80.26221,44.82443,0 80.52083,44.73248,0 80.51666,44.7072,0 80.37497999999999,44.65607,0 80.40721000000002,44.6022,0 80.34887000000001,44.45024,0 80.39999000000002,44.26414,0 80.36276000000001,44.12524000000001,0 80.43136,44.05303,0 80.43886999999999,43.99219000000001,0 80.55371,43.81323,0 80.73859000000002,43.4719,0 80.66054,43.32884,0 80.76914000000001,43.28886,0 80.8147,43.13997,0 80.74359,43.10775,0 80.64637999999999,43.14135,0 80.37665000000001,43.02524,0 80.44443,42.95468,0 80.56135999999999,42.92635,0 80.57861,42.89108,0 80.26066,42.81941,0 80.17192,42.6605,0 80.18221,42.56802,0 80.24249,42.49051,0 80.21720999999999,42.45051,0 80.23831000000001,42.3633,0 80.29387,42.25218,0 80.2811,42.21218,0 80.23403,42.19622,0 80.28332,42.07968000000001,0 80.25139,42.04245,0 79.87943,42.01635,0 79.77858000000001,41.88717,0 79.65498,41.88218000000001,0 79.43192999999999,41.78216,0 79.30943000000001,41.79134,0 79.20749000000001,41.72828,0 78.69553000000001,41.54301,0 78.63997999999999,41.483,0 78.53109000000001,41.46384,0 78.37553,41.37882,0 78.37997,41.28384,0 78.24623,41.16513,0 78.08083000000001,41.04079,0 77.85471,41.0694,0 77.68471,41.00189,0 77.54359000000001,40.98661,0 77.37747,41.028,0 77.13805000000001,41.01606,0 77.05831000000001,41.04911,0 76.87387,41.01411,0 76.78194000000001,40.94077,0 76.79359,40.86245,0 76.64971,40.74494,0 76.63943,40.60856,0 76.55304,40.54411,0 76.48693,40.43105,0 76.33859,40.34855,0 76.27748,40.45438,0 76.19414,40.37799,0 76.06805,40.39577,0 75.97803999999999,40.36327,0 75.92886,40.30550000000001,0 75.6972,40.29911,0 75.66137000000001,40.39827,0 75.69664,40.44494,0 75.64554,40.4866,0 75.62276,40.59799,0 75.57805000000001,40.64799,0 75.22554,40.44688,0 75.16137000000001,40.47022,0 75.05888,40.44772,0 74.86026,40.51939000000001,0 74.81026000000001,40.4198,0 74.88443,40.32771,0 74.73054999999999,40.33966,0 74.36219,40.09965,0 74.19803,40.11383,0 73.99442999999999,40.04605000000001,0 73.84498000000002,39.8055,0 73.84444000000001,39.75576,0 73.91080000000001,39.7252,0 73.95609000000002,39.59771000000001,0 73.90248,39.56966,0 73.84805,39.47493000000001,0 73.65569000000001,39.45483,0 73.66998,39.34409,0 73.6172,39.23215,0 73.72165,39.08244,0 73.85332,38.96909,0 73.70499,38.88076,0 73.7625,38.80076,0 73.75776999999999,38.73021,0 73.80219,38.64983,0 73.81776000000001,38.6077,0 73.93665,38.54105000000001,0 74.06887999999999,38.53659,0 74.06052,38.60465,0 74.11081,38.6216,0 74.13415999999999,38.67326,0 74.35471,38.67439,0 74.71833,38.5291,0 74.78859,38.52742,0 74.85664,38.47048,0 74.8647,38.38882,0 74.79443000000001,38.30603,0 74.8147,38.07883,0 74.91361000000001,38.01772,0 74.90833000000001,37.91049,0 74.93665000000001,37.88884,0 74.90277,37.84717,0 74.99109000000001,37.78382,0 74.90277,37.64715,0 74.94942,37.56298,0 75.18747999999999,37.40658,0 75.11109999999999,37.38353,0 75.09665,37.32186,0 74.95804,37.28183,0 74.91575,37.23733,0 74.83277,37.32545,0 74.68427,37.39974,0 74.54221,37.38181,0 74.36388,37.42846,0 74.23997,37.40705,0 74.23748999999999,37.36119,0 74.19721,37.33897,0 73.73858,37.22164,0 73.61998,37.26248,0 73.64943,37.30415,0 73.76888,37.34113,0 73.77598,37.4343,0 73.45637000000001,37.47611,0 73.37248,37.44692,0 73.30721,37.46275,0 73.15054000000001,37.40049,0 73.06914999999999,37.31407,0 72.79359,37.22623,0 72.65851000000001,37.0212,0 72.30636,36.9781,0 71.84276,36.6921,0 71.69525,36.67184,0 71.61006999999999,36.70038,0 71.55468999999999,36.76068,0 71.45694,36.94474,0 71.42943,37.07583,0 71.44693000000001,37.20722000000001,0 71.49026000000001,37.28362,0 71.47942000000001,37.41003,0 71.5141,37.46773,0 71.49571,37.55815,0 71.52878,37.7639,0 71.58859,37.81565,0 71.59193000000002,37.90262,0 71.51537,37.94846,0 71.33472,37.88787,0 71.25277,37.92204,0 71.36638000000002,38.23627,0 71.14554,38.38574,0 71.04971000000001,38.40294,0 70.96720000000002,38.47212,0 70.92998,38.43045,0 70.87388,38.45295,0 70.67221000000001,38.41403,0 70.68552,38.37486,0 70.59775999999999,38.34151,0 70.58443,38.27816,0 70.46416000000001,38.11119,0 70.24721,37.96394,0 70.24745,37.93169,0 70.16137000000001,37.93337,0 70.16553999999999,37.87172,0 70.24693000000001,37.81255,0 70.28581,37.69707,0 70.25360000000001,37.61574,0 70.21554999999999,37.61638,0 70.16193,37.53956,0 70.06245,37.54134,0 69.9586,37.56499,0 69.89915000000001,37.61501,0 69.80692999999999,37.58305,0 69.51582999999999,37.58082,0 69.38026000000001,37.4511,0 69.41110000000001,37.24083000000001,0 69.45055000000001,37.22527,0 69.3886,37.1586,0 69.24664,37.09416,0 69.12527,37.16304,0 68.9997,37.30777,0 68.88777,37.33860000000001,0 68.91943000000001,37.27555,0 68.83804000000001,37.32695,0 68.80663,37.31806,0 68.82165999999999,37.24499,0 68.66415000000001,37.27499,0 68.62388,37.20055000000001,0 68.4122,37.14805,0 68.39749000000001,37.09916000000001,0 68.29471,37.10832,0 68.27499,37.01222,0 68.18719,37.02055,0 68.02831999999999,36.92389,0 67.88554000000001,37.06138,0 67.78221000000001,37.09610000000001,0 67.77988000000001,37.18582,0 67.83804000000001,37.26194,0 67.81749000000002,37.4461,0 67.83832,37.50583,0 68.07305,37.76528,0 68.15054000000001,37.92805,0 68.27748,37.95889,0 68.38415000000001,38.19555,0 68.33138,38.27333,0 68.21554999999999,38.33221,0 68.1272,38.42444,0 68.07193,38.54138,0 68.05775,38.69694,0 68.10081,38.73916,0 68.08305,38.79445,0 68.15498,38.8086,0 68.19637,38.85444,0 68.12387,38.98554,0 67.70943,38.99666000000001,0 67.69026,39.13805,0 67.37636999999999,39.21249,0 67.36609,39.29361,0 67.41054,39.29916,0 67.44196,39.48359,0 67.29803,39.58611,0 67.29248,39.66555,0 67.37109,39.68777,0 67.38136,39.78055,0 67.50444,39.81554,0 67.47971,39.93194,0 67.10554999999999,39.98611,0 67.02361000000001,40.03277,0 67.03471999999999,40.06888,0 66.9422,40.06333,0 66.93471,40.125,0 66.97998,40.17389,0 66.90860000000001,40.24804,0 66.88831999999999,40.47833,0 66.62003,40.49509,0 66.80525,40.76611,0 66.7664,40.88750000000001,0 66.63247,40.93888,0 66.60804,41.11333000000001,0 66.75305,41.11693,0 66.75949000000001,41.16484000000001,0 66.71998000000001,41.17499,0 66.56247999999999,41.71693,0 66.52638000000002,42.00305000000001,0 66.02916999999999,42.00305000000001,0 66.03665,42.42332,0 66.07079,42.42387,0 66.21886000000001,42.42361,0 67.01609999999999,42.8661,0 67.82971000000001,43.24944,0 67.77831000000001,43.27805,0 67.8111,43.30249000000001,0 67.7961,43.33749,0 67.74274,43.33693,0 67.72638000000001,43.35305000000001,0 67.75694,43.36055,0 67.72026,43.37276,0 67.6797,43.30249000000001,0 67.66199,43.37128,0 67.84221000000001,43.58804,0 67.84666,43.74749,0 67.97387000000001,43.69555,0 67.99026000000001,43.80555,0 67.94193,43.90527,0 67.96387000000001,43.94972,0 68.08277,44.00528,0 68.03525999999999,44.06888000000001,0 67.82887000000001,44.15971,0 67.765,44.23277,0 67.79832,44.26417,0 67.47887,44.36361,0 67.50360000000001,44.40028,0 67.50499000000001,45.16194,0 67.36275999999999,45.17916,0 67.17833,45.29341,0 67.24942,45.45778000000001,0 67.25333000000001,45.58389,0 67.35831,45.7711,0 67.31441,45.84720999999999,0 67.18192999999999,45.9411,0 67.16988000000001,45.99897000000001,0 67.15776,46.12944000000001,0 67.12168,46.16551,0 66.53555,46.14277,0 65.62943,46.18166000000001,0 65.27638,46.36306,0 65.11913,46.48082000000002,0 64.97026,46.47276,0 64.38889,46.69665000000001,0 63.41805000000001,46.92028000000001,0 63.08611,47.08972,0 62.69305000000001,47.04257,0 62.85190999999999,47.13889,0 63.14249,47.285,0 63.19526000000001,47.34083,0 64.01609999999999,47.72165,0 64.28915000000001,47.88832,0 64.13443,47.98499,0 64.01220000000001,48.15694,0 63.91554,48.23388,0 63.76111,48.45082,0 63.47083,48.53583,0 63.41499000000001,48.59249,0 63.09416,48.67943000000001,0 63.05693,48.72249,0 63.10055000000001,48.86055,0 62.97610000000001,48.91194,0 62.84722,48.84332000000001,0 62.56527,49.01082,0 62.46249,49.17638000000001,0 62.33611,49.19971,0 62.35665000000001,49.25944,0 62.54499000000001,49.25111,0 62.35027,49.46944000000001,0 62.30305,49.48638,0 62.37360000000001,49.56833,0 62.48417,49.54805000000001,0 62.45444,49.67888,0 62.59694,49.77999000000001,0 62.57667000000001,49.85277,0 62.73861,49.94778,0 62.90444,49.89415000000001,0 62.94083000000001,49.99138,0 62.86415,50.09777,0 62.71027,50.2122,0 62.69833,50.28305000000001,0 62.50833000000001,50.46805,0 62.38249,50.7225,0 62.25444000000001,50.68249,0 62.18916000000001,50.71000000000001,0 62.23583,50.74138,0 62.19276,50.80443000000001,0 62.42528,50.85695,0 62.78388,50.86056,0 62.86833000000001,50.82110999999999,0 62.93999,50.86555,0 63.13193,50.82222,0 63.20193,50.8772,0 63.265,50.82638000000002,0 63.81416,50.93859,0 64.09942,51.03916,0 64.34915000000001,50.87749000000001,0 64.25888000000001,50.75054999999999,0 64.18747999999999,50.7336,0 64.05998,50.57749,0 64.22553000000001,50.51416,0 64.25,50.54055,0 64.36461,50.51109,0 64.38943,50.55166,0 64.47837,50.58194000000001,0 64.47248999999999,50.63304999999999,0 64.56219,50.67888,0 64.60415999999999,50.65138000000002,0 64.69275,50.6711,0 64.73027,50.73805,0 64.81386999999999,50.78638,0 64.91553999999999,51.00805,0 64.81944,51.07222000000001,0 64.84972000000001,51.09664999999999,0 64.91415000000001,51.13972,0 64.97776,51.10333,0 65.20583000000001,51.17332,0 65.29498,51.16471,0 65.40694000000001,51.23166,0 65.30359,51.28221,0 65.21608999999999,51.24888000000001,0 65.13164999999999,51.28139000000002,0 64.88415999999999,51.47027,0 64.95444000000001,51.52694,0 64.94247,51.61306,0 65.01138,51.63777,0 64.95775999999999,51.74943,0 65.01666,51.82332,0 65.00888000000001,51.89249,0 64.925,51.90889,0 64.80609,52.02555,0 64.80138,52.12444,0 64.74887,52.12832,0 64.75166,52.18166999999999,0 65.05859,52.23165,0 65.04498,52.28027,0 65.46082,52.29639,0 65.58472,52.32777,0 65.58414999999999,52.38972,0 66.02887,52.45304000000001,0 66.05247,52.8186,0 66.13443,52.81998999999999,0 66.14360000000001,52.88610000000001,0 66.40886999999999,52.90331,0 66.41277,52.95222,0 66.07777,52.96305000000001,0 66.08194,53.06277,0 66.20359999999999,53.10443,0 66.40526,53.09972000000001,0 66.41443,53.1686,0 66.26639,53.19388000000001,0 66.26888,53.28277,0 66.25526000000001,53.48555,0 66.11165,53.49276,0 66.11775,53.63082,0 66.18304000000001,53.68249000000001,0 66.16499,53.78111,0 66.06581,53.79277,0 66.07581999999999,53.91526000000001,0 66.03610000000002,53.91805,0 66.00139,53.99471,0 66.21442,54.07694999999999,0 66.35693000000001,54.08444,0 66.27858000000001,54.19028,0 66.20610000000001,54.18333000000001,0 66.11803999999999,54.2375,0 66.21944000000001,54.28055,0 66.15358999999999,54.38055,0 66.16277,54.41945,0 66.1236,54.44500000000001,0 66.15192,54.48555,0 66.11304,54.5425,0 66.10831,54.64500000000002,0 66.49525,54.72304,0 66.72275999999999,54.72694,0 66.80887,54.76666,0 67.24552,54.80665,0 67.32277000000001,54.86749,0 67.58138,54.85443,0 67.76639000000002,54.89194,0 67.83223,54.96332000000001,0 67.9297,54.98332,0 68.03442,54.95027,0 68.20526,54.96609,0 68.25943,55.04888,0 68.33083000000001,55.08056,0 68.24444,55.10471,0 68.19971,55.17833000000001,0 68.30443,55.20527,0 68.62581,55.20192999999999,0 68.63889,55.25555,0 68.70499000000001,55.28667,0 68.73137,55.37055,0 68.87997,55.34276,0 68.93332,55.28611,0 69.00249,55.28749,0 69.00109999999999,55.35361,0 68.93941,55.37028000000001,0 68.9233,55.42416,0 68.95247999999999,55.44471,0 69.16831999999999,55.40054,0 69.18552,55.34388000000001,0 69.23276,55.3325,0 69.35138000000001,55.39443000000001,0 69.67276,55.35443,0 69.84610000000001,55.29500000000001,0 69.94914,55.20416,0 70.05582,55.20776999999999,0 70.23888,55.13888,0 70.28804,55.18721,0 70.39833,55.20917,0 70.46998000000001,55.29667000000001,0 70.50666,55.33777000000001,0 70.46608999999999,55.40499000000001,0 70.48775999999999,55.43859000000001,0 70.54915,55.49138,0 70.69664,55.50638,0 70.7636,55.59778,0 70.54693,55.67499,0 70.58360999999999,55.7961,0 70.78554,55.83306,0 70.75915999999999,55.86332,0 70.59138,55.83611000000001,0 70.47527,55.85222000000001,0 70.47415,55.89166000000001,0 70.80415000000001,55.92028000000001,0 70.91638,56.11055,0 70.81749000000001,56.17333,0 70.84027,56.25695,0 70.77222,56.25471000000001,0 70.76277,56.28667000000001,0 70.93359,56.34694,0 70.94136,56.41167000000001,0 70.86248999999999,56.46389000000001,0 70.78471999999999,56.43665,0 70.75972,56.46111000000001,0 70.85776,56.50305,0 70.95416,56.4911,0 71.09081999999999,56.55555,0 71.11913,56.64555,0 71.03306000000001,56.69221000000001,0 71.05582,56.71028,0 71.16665999999999,56.67138,0 71.34887000000001,56.66916,0 71.39388,56.68472,0 71.39695,56.73305,0 71.54082,56.71915000000001,0 71.58553000000001,56.79445,0 71.67554,56.82638,0 71.65860000000001,56.91470000000001,0 71.61304,56.95693,0 71.37082,57.06360999999999,0 71.23387,57.20027,0 71.09027,57.22055,0 71.14776999999999,57.25139000000001,0 71.09248,57.28999,0 71.10248,57.34083,0 70.81165,57.32804,0 70.75417,57.27749,0 70.78194000000001,57.19916,0 70.69443,57.19305,0 70.60971000000001,57.19916,0 70.65609000000001,57.26416,0 70.51721000000001,57.28695,0 70.42498999999999,57.38916,0 70.68747999999999,57.51445,0 70.69108,57.56666,0 70.66721,57.59276,0 70.57720999999999,57.57861,0 70.57443000000001,57.70916,0 70.49887,57.7075,0 70.48387,57.76777,0 70.42554,57.76639,0 70.44171,57.83843000000001,0 70.37864999999999,57.91712,0 70.43691,57.9336,0 70.87302,58.5425,0 71.07888,58.5286,0 71.11998,58.44887,0 71.30387,58.39749000000001,0 71.24721,58.3561,0 71.21915,58.14695,0 71.24887,58.12194,0 71.23859,58.07111,0 71.98888,58.12471,0 72.07055,58.09415,0 72.12164,58.02304000000001,0 72.87221,58.0061,0 72.96915,58.06055,0 72.93858,58.08749000000001,0 73.08443,58.14916,0 74.20638,58.13361,0 74.45499,58.25861,0 74.62053,58.29361000000001,0 74.62665000000001,58.33915,0 74.79998999999999,58.42694,0 74.87608,58.42722,0 74.89166,58.47776,0 75.10526,58.58111,0 75.35554999999999,58.47277,0 75.05415000000001,58.3447,0 75.2397,58.21998,0 + + + 1 + + + + + +82.27669,74.95653,0 82.27669,73.92335,0 77.53673000000001,73.93346,0 72.53674,73.94411,0 67.53675,73.95477,0 67.53675,76.19176,0 68.31331,76.28333000000001,0 68.16943999999999,76.31805,0 68.33333,76.33582,0 68.43941,76.38972,0 68.40109,76.40609000000001,0 68.57971000000001,76.43304999999999,0 68.92554,76.55888,0 68.78471999999999,76.58778,0 68.85637,76.65665,0 69.03027000000002,76.70802999999999,0 68.90054000000001,76.72776,0 68.89361,76.75749,0 68.93137,76.78276,0 68.75443,76.82222,0 68.80942,76.86638000000002,0 68.47275999999999,76.92554,0 68.50082,76.95638,0 67.53675,77.00954,0 67.53675,81.66452,0 68.67328999999999,82.13631,0 73.29124,84.05318,0 77.9092,85.97008,0 82.52717,87.88696,0 82.52717,89.90000000000001,0 83.52695,89.90000000000001,0 84.52673000000002,89.90000000000001,0 85.52652000000001,89.90000000000001,0 86.52631000000001,89.90000000000001,0 87.52609,89.90000000000001,0 88.52588000000002,89.90000000000001,0 89.52567000000001,89.90000000000001,0 90.52546,89.90000000000001,0 91.52525,89.90000000000001,0 92.52502000000001,89.90000000000001,0 93.52481,89.90000000000001,0 94.52460000000001,89.90000000000001,0 95.52439,89.90000000000001,0 96.52417000000001,89.90000000000001,0 97.52396,89.90000000000001,0 97.52396,84.90001,0 97.52396,83.39419,0 92.52396,83.38905,0 87.52397000000001,83.3839,0 82.52397000000001,83.37876,0 82.30801,83.37854000000002,0 82.30801,78.37854,0 82.30801,76.45934,0 82.84025,76.36541,0 83.27856,76.17757,0 83.49773000000002,75.83316000000002,0 83.37249,75.30092999999999,0 82.90286,74.98784000000001,0 82.27669,74.95653,0 + + + 1 + + + + + GMT +06:30 + + +]]> + #khStyle0650 + + + + + +97.51384,-11.2595,0 97.51384,-13.93535,0 93.69904000000001,-13.93192,0 93.69904000000001,-11.2595,0 97.51384,-11.2595,0 + + + 1 + + + + + +97.56944,28.54888,0 97.63136,28.48416,0 97.71138000000001,28.51694,0 97.79694000000001,28.34916,0 97.90886999999999,28.37638,0 98.01888,28.27832,0 98.01304,28.21472,0 98.06944,28.21138,0 98.13621999999999,28.15632,0 98.15776,28.11333,0 98.13082,27.96916,0 98.20387000000001,27.91638,0 98.16692000000001,27.87055,0 98.23248,27.82471,0 98.22693000000002,27.73471,0 98.31638,27.54194,0 98.36887,27.52944,0 98.40860000000001,27.55750000000002,0 98.43248000000001,27.68944,0 98.52164999999999,27.64667,0 98.55110000000001,27.66693,0 98.59471000000002,27.59971000000001,0 98.66804999999999,27.61944,0 98.70471000000001,27.5825,0 98.68552,27.46611,0 98.73665,27.32917000000001,0 98.69166,27.20193,0 98.70694,27.09778,0 98.76221,27.06445,0 98.7397,26.86416,0 98.77777,26.79167,0 98.75555,26.72417,0 98.77554000000001,26.60583000000002,0 98.73748999999999,26.38694,0 98.66582,26.26056000000001,0 98.70110000000001,26.25195,0 98.73055000000002,26.17722,0 98.66443,26.09833,0 98.64888000000001,26.15166,0 98.56805,26.12306,0 98.60525,25.98861,0 98.64166,25.98444,0 98.71638000000002,25.87749,0 98.63193,25.80111,0 98.53083,25.84555,0 98.39166,25.65666,0 98.38305,25.59195,0 98.32665000000002,25.55167000000001,0 98.16526,25.62277,0 98.16804999999999,25.55027,0 98.12497999999999,25.50584,0 98.1386,25.38694,0 98.10746,25.38722,0 98.06944,25.31444,0 97.94108000000001,25.21416,0 97.83333,25.25916000000001,0 97.78943,25.1375,0 97.72331000000003,25.06944,0 97.72581,25.06472,0 97.73665000000003,24.91888,0 97.80025999999999,24.85139,0 97.68941000000001,24.83445,0 97.55247,24.74304,0 97.56248000000001,24.57111,0 97.53082000000001,24.44749,0 97.66526,24.44416,0 97.71776000000001,24.35833,0 97.66888,24.34166000000001,0 97.6647,24.3061,0 97.74165000000002,24.29027,0 97.75999000000002,24.2575,0 97.72749,24.22499,0 97.74970999999999,24.16999,0 97.72470000000001,24.11806,0 97.53637000000001,23.95056,0 97.64998,23.8517,0 97.78831,23.94888,0 97.85249000000002,23.95832,0 97.91249000000001,24.02666,0 98.06448,24.0891,0 98.22078000000001,24.12531,0 98.35732000000002,24.10319000000001,0 98.44659000000002,24.13496,0 98.54462,24.1257,0 98.59703,24.07648,0 98.89072,24.16008,0 98.89391000000001,24.09795,0 98.67720000000001,23.96805,0 98.70387000000002,23.95138,0 98.68858000000002,23.80139000000001,0 98.81554000000001,23.76722,0 98.81915000000001,23.70556,0 98.88582,23.61333000000001,0 98.80609000000001,23.54167,0 98.82471000000001,23.48083,0 98.87997,23.4836,0 98.91470000000001,23.41722,0 98.91859000000001,23.36472,0 98.87886,23.32972,0 98.94025000000002,23.31361,0 98.88136,23.18805,0 99.05888,23.1675,0 99.06137000000001,23.12361,0 99.11109999999999,23.10194,0 99.35638,23.13499,0 99.50388,23.08972,0 99.56638000000001,22.93805,0 99.51416,22.91222000000001,0 99.44553000000003,22.94972,0 99.44053,22.865,0 99.32805000000001,22.74472,0 99.38499,22.60333,0 99.38442000000001,22.50389,0 99.26082,22.39111,0 99.27054,22.34777,0 99.18221000000001,22.195,0 99.20055000000001,22.17333,0 99.16277,22.15916,0 99.23248,22.11444,0 99.35942,22.09306,0 99.46555000000002,22.13583,0 99.52164999999999,22.1,0 99.64444,22.09917,0 99.70914999999999,22.03972,0 99.74915,22.07527,0 99.84388,22.02332,0 99.88055,22.06145,0 99.96805000000002,22.05027,0 99.99054,21.95833,0 99.94193000000001,21.825,0 99.97360000000001,21.73388,0 100.0022,21.69611,0 100.125,21.69056000000001,0 100.1719,21.65388,0 100.1061,21.58333,0 100.1239,21.50472,0 100.2039,21.43535,0 100.3789,21.53889,0 100.43,21.52861,0 100.485,21.45833,0 100.6667,21.47943,0 100.8867,21.68333,0 101.1053,21.77138,0 101.1686,21.63028,0 101.1482,21.57264,0 101.1617,21.53056,0 100.9975,21.39583,0 100.8347,21.3025,0 100.7226,21.30771,0 100.6719,21.12806,0 100.6214,21.05167,0 100.5455,21.02527,0 100.52,20.94943,0 100.5255,20.87111,0 100.6336,20.89154,0 100.6472,20.87056,0 100.5319,20.80527,0 100.3689,20.82694,0 100.2539,20.74555,0 100.1753,20.63527,0 100.0914,20.34861,0 99.95914000000001,20.45527,0 99.86997000000001,20.42722,0 99.80914,20.33638,0 99.67360000000001,20.31083,0 99.45610000000002,20.38861,0 99.55525000000003,20.20667,0 99.53887,20.14943,0 99.32555000000001,20.06611,0 99.18388,20.12805,0 99.07639,20.0975,0 99.04082,20.03722,0 99.02970999999999,19.82888000000001,0 98.91388000000001,19.74638,0 98.83693000000002,19.81639,0 98.77554000000001,19.75889,0 98.64915000000001,19.74193,0 98.56165,19.67527,0 98.50971,19.71249,0 98.25360000000002,19.67305,0 98.23859,19.72222,0 98.04998999999999,19.8075,0 98.03498,19.64389,0 97.86908,19.57018,0 97.87665,19.49528,0 97.79248,19.40194,0 97.83720000000001,19.29888,0 97.78831,19.27695,0 97.84180000000002,19.2071,0 97.83638000000001,19.1011,0 97.6772,18.93416,0 97.74776,18.86556,0 97.7747,18.57,0 97.62415000000003,18.55445,0 97.52692,18.48917,0 97.44247000000001,18.49722,0 97.36229,18.57965,0 97.34749000000001,18.53889,0 97.49444000000001,18.2825,0 97.53580000000001,18.26861,0 97.56359999999999,18.32777,0 97.64305000000002,18.29027,0 97.61803999999999,18.23138,0 97.68665,18.14666,0 97.69136000000002,18.05806,0 97.75193000000003,17.97222,0 97.68665,17.86444,0 97.77442000000001,17.75083,0 97.77831999999999,17.70332,0 98.01470999999999,17.50639,0 98.05304,17.41583,0 98.11554,17.37611,0 98.11887,17.31388,0 98.24249000000002,17.21861,0 98.33582000000001,17.05556,0 98.42359,17.05333,0 98.48831,16.98194,0 98.54998999999999,16.85471,0 98.51972000000002,16.86777,0 98.54665,16.80777,0 98.47776000000002,16.73499,0 98.53360000000001,16.64167,0 98.58028,16.62027,0 98.58998,16.55333,0 98.66249000000001,16.46027,0 98.68970000000002,16.285,0 98.71581000000002,16.27638,0 98.81441,16.37582,0 98.86081,16.47527,0 98.86749000000003,16.43416,0 98.92638,16.39111,0 98.91859000000001,16.26861,0 98.86331,16.21471,0 98.85276000000003,16.13416000000001,0 98.80803000000002,16.10305,0 98.69275000000002,16.12832,0 98.63805000000002,16.04721,0 98.57249,16.05166,0 98.61749000000002,15.97,0 98.59055000000001,15.92389,0 98.60999,15.86695,0 98.56526000000001,15.72277,0 98.57557,15.66188,0 98.59636999999999,15.45834,0 98.56999,15.33667,0 98.49748,15.38778,0 98.42249,15.36,0 98.41361000000001,15.26,0 98.31026,15.30305,0 98.2664,15.23555,0 98.20139,15.22083,0 98.21721000000001,15.1775,0 98.18442,15.09916,0 98.23442,15.04695,0 98.21388,15.00333,0 98.25499000000002,14.92083,0 98.25999,14.81666,0 98.44775000000001,14.60583,0 98.4772,14.52805,0 98.50221000000003,14.53139,0 98.61691999999999,14.31916,0 98.73109,14.27777,0 98.75972000000003,14.2175,0 98.97165,14.08361,0 99.03276,13.93777,0 99.11942999999999,13.87861,0 99.12776,13.77361,0 99.18054000000001,13.7125,0 99.17054,13.57111,0 99.21720999999999,13.40583,0 99.21278000000001,13.21611,0 99.12082,13.17583,0 99.11219,13.05584,0 99.19166000000001,12.97444,0 99.17859000000001,12.9175,0 99.24526,12.72361,0 99.43623,12.57444,0 99.41249000000001,12.46639,0 99.49970999999999,12.18833,0 99.47331,12.13389,0 99.57332000000002,12.13666,0 99.54526000000001,12.04555,0 99.59444000000002,11.99695,0 99.58942999999999,11.8725,0 99.66165000000001,11.82694,0 99.63581000000001,11.73361,0 99.56193000000002,11.63056,0 99.46776,11.60972,0 99.46887,11.52,0 99.40470999999999,11.45166,0 99.40054000000001,11.38416,0 99.33028,11.32222,0 99.23750000000003,11.10945,0 99.10664,11.01,0 99.08167,10.95139,0 99.02027,10.96333,0 99.00694,10.83195,0 98.91304,10.80972,0 98.7872,10.68222,0 98.77388999999999,10.61695,0 98.82388,10.51666,0 98.74275,10.34861,0 98.55254000000001,9.983105999999999,0 98.53130000000002,9.91836,0 98.45473,9.958472,0 98.19220000000001,9.911070000000001,0 98.11197,9.688651999999999,0 97.9479,9.590201,0 97.9953,9.819918000000001,0 98.10104000000001,9.932957999999999,0 98.16302000000002,10.06057,0 98.14115,10.11526,0 98.07916,10.10797,0 97.97341,10.02046,0 97.93331000000001,10.07151,0 97.96977000000001,10.31945,0 97.87497000000001,10.3778,0 97.88226,10.50542,0 97.93696,10.57105,0 98.20678,10.69868,0 98.14843999999999,10.84087,0 98.09374,10.819,0 97.95882,10.85181,0 97.86767999999999,10.81534,0 97.87132,10.89922,0 97.89686,10.94297,0 98.29064000000001,11.04142,0 98.19584,11.3003,0 98.11562000000001,11.36958,0 97.95882,11.39511,0 97.95882,11.46803,0 98.04635000000002,11.61752,0 97.98801,11.6941,0 97.97707,11.83266,0 97.48117000000001,11.7488,0 97.42283000000001,11.81078,0 97.71453000000003,12.19182,0 97.75829,12.29392,0 97.80204999999999,12.458,0 97.82026999999999,12.82627,0 98.24323000000001,12.98124,0 98.06093,13.72507,0 97.89319999999999,13.76518,0 97.88955000000003,13.9475,0 97.76558,14.16262,0 97.79111,14.22826,0 97.75100000000001,14.40693,0 97.90778000000002,14.53273,0 97.78746000000001,14.84631,0 97.75100000000001,15.20729,0 97.70359999999999,15.28751,0 97.71453000000003,15.40054,0 97.63795,15.48805,0 97.63068,15.5938,0 97.69629999999999,15.69954,0 97.68902000000001,15.88368,0 97.56868,15.98212,0 97.56868,16.15714,0 97.45565000000001,16.31758,0 97.41919,16.4379,0 97.34990999999999,16.47072,0 97.31709000000001,16.60199,0 97.21863999999999,16.76607,0 97.16030000000001,16.80983,0 96.92329000000001,16.81347,0 96.83213000000002,16.76972,0 96.77744000000001,16.67857,0 96.60242000000001,16.52907,0 96.06641999999999,16.28112,0 95.97891000000001,16.19361,0 95.86951000000001,16.18266,0 95.7346,16.06963,0 95.70179000000002,15.95296,0 95.43562,15.71047,0 95.32623000000001,15.68495,0 94.71001000000001,15.79069,0 94.53134,15.94019,0 94.49487000000001,15.93654,0 94.41101000000001,15.80893,0 94.37090000000002,15.93654,0 94.33808000000001,15.95842,0 94.24328,15.92924,0 94.17400000000001,16.0277,0 94.23962000000002,16.54183,0 94.32715000000003,16.65121,0 94.35996000000002,16.89915,0 94.43653000000001,16.99761,0 94.43288000000001,17.19451,0 94.54227,17.3677,0 94.5204,17.71045,0 94.47664,17.7615,0 94.4183,17.9584,0 94.45112,18.07508,0 94.39643,18.20634,0 94.30162,18.22458,0 94.33079000000001,18.3595,0 94.15577,18.68948,0 94.08649,18.72959,0 93.99169000000001,18.7077,0 93.76926,18.59103,0 93.63070999999999,18.66396,0 93.46298000000003,18.87544,0 93.61612000000001,18.93379,0 93.65987,19.02129,0 93.46662000000001,19.33487,0 93.47028,19.42239,0 93.52132,19.47342,0 93.3937,19.72502,0 93.42287,19.80888,0 93.38276999999999,19.90186,0 93.33535999999999,19.93833,0 93.27337,19.93468,0 93.25879000000002,19.81435,0 93.16398000000001,19.78154,0 93.08742,19.81435,0 93.00718999999999,19.80706,0 92.85404,20.1097,0 92.76654000000001,20.17898,0 92.62797999999999,20.40141,0 92.37385999999999,20.70083,0 92.26194,21.05431,0 92.19859000000001,21.15417,0 92.19220000000001,21.32444,0 92.25305000000002,21.3725,0 92.26555000000002,21.42333,0 92.31667,21.42138,0 92.37691,21.47416,0 92.42747000000001,21.37472,0 92.55359,21.37361,0 92.59554000000001,21.25194,0 92.66935000000002,21.29698,0 92.60027000000001,21.63416,0 92.62164,21.87583,0 92.60081,21.98222000000001,0 92.67970000000001,22.02694,0 92.71192000000002,22.15972,0 92.86554,22.04888,0 92.89639,21.95472,0 92.94304000000001,22.02833,0 92.99638000000003,21.99278,0 93.00972000000003,22.1075,0 93.05276000000001,22.11889,0 93.04414000000001,22.20194,0 93.15387,22.18666,0 93.14249,22.23694,0 93.19664000000002,22.25638,0 93.18055,22.44055,0 93.11859,22.53333,0 93.13638,22.59444,0 93.09722000000001,22.66528,0 93.09822000000001,22.79037,0 93.16137000000001,22.91945,0 93.13805000000004,23.04805,0 93.20139,23.05889,0 93.22915999999999,23.01333,0 93.29359000000001,23.00889000000002,0 93.38666000000001,23.14027000000002,0 93.36609,23.34945,0 93.40331999999999,23.37806,0 93.43346,23.67889,0 93.40138,23.73582,0 93.38443,23.92138,0 93.32805000000001,23.98166,0 93.3279,24.03597,0 93.34207000000001,24.0818,0 93.38293,24.08935,0 93.49359,23.96277,0 93.59636999999999,23.97222,0 93.62136,24.01611000000001,0 93.75332,24.0075,0 93.81914999999999,23.93527,0 93.92666,23.95583,0 94.14444,23.84778,0 94.38915,24.48,0 94.51470999999999,24.61945,0 94.53859000000001,24.70888,0 94.59777,24.72528000000001,0 94.73442,25.02472,0 94.72859,25.13638,0 94.59943,25.17833,0 94.57639000000002,25.21444,0 94.62553000000001,25.39777,0 94.66165000000001,25.42804,0 94.88527000000001,25.57222000000001,0 94.99193,25.72916,0 95.03387000000002,25.74222,0 95.02222,25.92861,0 95.08665000000001,25.95556,0 95.17804,26.05889,0 95.11331,26.10916,0 95.12082,26.20166,0 95.08389000000003,26.22277,0 95.06526,26.32556,0 95.09526,26.41,0 95.06638,26.47972,0 95.14777000000001,26.56583,0 95.15248000000001,26.62333,0 95.24638,26.67972,0 95.2711,26.64472,0 95.44108,26.70916,0 95.51944,26.82306,0 95.61081,26.82139,0 95.65804000000001,26.89528,0 95.71775000000001,26.89138,0 95.80386,27.00111,0 95.93082,27.04611,0 96.03581,27.19249,0 96.19414999999999,27.27084,0 96.52415000000002,27.29416,0 96.60999,27.36694,0 96.66025999999999,27.33916,0 96.72915999999999,27.36555,0 96.88416000000001,27.25472,0 96.86137000000001,27.21028,0 96.88831999999999,27.17805,0 97.05974000000001,27.093,0 97.14444000000002,27.09249,0 97.15888,27.13861,0 97.12636999999999,27.19083,0 96.89999000000002,27.46861000000001,0 96.91804999999999,27.50527,0 96.88889,27.6175,0 97.04665,27.74972,0 97.08389,27.7486,0 97.24942,27.9075,0 97.29916,27.91667,0 97.31721,27.87833,0 97.36775,27.89666,0 97.39413999999999,28.01861,0 97.31608000000001,28.08916,0 97.34887000000002,28.22278,0 97.41054,28.2925,0 97.46887000000001,28.29611,0 97.47083000000001,28.39111,0 97.56944,28.54888,0 + + + 1 + + + + + GMT +07:00 + + +]]> + #khStyle0700 + + + + + +105.3275,23.37803,0 105.398,23.28167,0 105.4458,23.28445,0 105.5544,23.16028,0 105.5657,23.09678,0 105.5775,23.05916,0 105.7244,23.04805,0 105.8725,22.91027,0 105.9872,22.93583,0 106.0153,22.98472,0 106.1347,22.98861,0 106.2294,22.95083,0 106.25,22.87416,0 106.285,22.8586,0 106.4194,22.87056,0 106.5203,22.93528,0 106.6005,22.90917,0 106.648,22.85333,0 106.7072,22.865,0 106.7614,22.79471,0 106.8217,22.80028,0 106.7669,22.74249,0 106.7128,22.58666,0 106.6761,22.57277,0 106.6386,22.61416,0 106.6072,22.60695,0 106.5517,22.45682,0 106.5655,22.34583,0 106.6583,22.32444,0 106.6958,22.2225,0 106.6653,22.19944,0 106.7033,22.08972,0 106.6794,21.97389,0 106.7553,22.01527000000001,0 106.8086,21.97361,0 106.9017,21.97056,0 106.9327,21.92749,0 107.0292,21.93666,0 107.0491,21.90722,0 107.0203,21.8225,0 107.2208,21.70832,0 107.3014,21.73111,0 107.3627,21.60526,0 107.4578,21.65833,0 107.4858,21.59778,0 107.5361,21.58638,0 107.7831,21.66693,0 107.8586,21.65083,0 107.948,21.54195,0 107.99,21.54241,0 108.0824,21.49174,0 108.0038,21.44677,0 107.9893,21.3862,0 107.9865,18.50449,0 110.1489,14.71173,0 112.5137,14.71173,0 112.5076,9.711738,0 112.5034,6.222851,0 107.5034,6.229232,0 102.5034,6.235613,0 102.0952,6.236135,0 102.0916,6.110559,0 101.9483,5.969448,0 101.9438,5.861942,0 101.8339,5.743340000000001,0 101.7625,5.788889,0 101.6916,5.763608,0 101.6589,5.860557,0 101.57,5.916663,0 101.3516,5.808339,0 101.2897,5.810553,0 101.2561,5.705837,0 101.1458,5.631111,0 100.9902,5.788053,0 101.0358,5.896106,0 101.1014,5.92695,0 101.1194,5.984441,0 101.12,6.098337,0 101.0755,6.150555,0 101.1216,6.187221,0 101.1155,6.248888000000001,0 101.0333,6.243894,0 100.9897,6.277500000000001,0 100.9514,6.239717000000001,0 100.8575,6.234444,0 100.8336,6.419447,0 100.7655,6.451946,0 100.7542,6.501942,0 100.6611,6.4475,0 100.4989,6.523056000000001,0 100.3875,6.536106,0 100.3344,6.586946000000001,0 100.2939,6.703892,0 100.1958,6.702497,0 100.1714,6.476660000000001,0 100.1271,6.424946000000001,0 99.84238000000002,6.479837,0 99.63088000000001,6.427682,0 99.64923,6.352362,0 99.72359,6.164054,0 100.1668,5.375079,0 100.1688,5.261129,0 100.3311,5.074793,0 100.4195,4.901795,0 100.5095,4.824638,0 100.5673,4.663917,0 100.5031,3.976011000000001,0 100.9499,3.657770000000001,0 101.1781,3.345965,0 101.2874,3.114522,0 101.2167,3.040577,0 101.2038,2.93129,0 101.2906,2.815568,0 101.416,2.786633,0 101.5188,2.654846,0 101.7567,2.561625,0 101.8371,2.442689,0 101.8499,2.362329,0 101.9303,2.391254,0 102.1489,2.208024,0 102.3418,2.134089,0 102.5378,2.01195,0 102.6921,1.831931,0 102.8175,1.831931,0 102.9461,1.719422,0 103.2097,1.584413,0 103.2418,1.45583,0 103.4122,1.301534,0 103.5311,1.234025,0 103.7561,1.185812,0 103.9265,1.256534,0 104.3122,1.346534,0 105.132,2.002301,0 105.1191,4.869648,0 109.3237,4.869648,0 109.3237,1.966571,0 109.2409,1.725713,0 109.0775,1.576584,0 109.0278,1.491362,0 109.0278,1.363535,0 108.9071,1.1789,0 108.9071,1.086578,0 108.7438,0.8593374000000001,0 108.6657,0.8522364,0 108.6586,0.7457215000000002,0 108.829,0.4758655000000001,0 108.8929,0.2912305000000001,0 109.0775,0.2344225,0 109.113,0.02848446,0 109.0207,-0.2484725,0 109.106,-0.5467235,0 109.2622,-0.9018005000000001,0 109.4255,-1.022518,0 109.39,-1.285273,0 109.461,-1.349182,0 109.7664,-1.207152,0 110.0433,-1.363393,0 109.9865,-1.682947,0 109.8942,-1.746865,0 109.8729,-1.839177,0 109.9297,-1.917289,0 110.0504,-1.952803,0 110.093,-2.030923,0 110.0717,-2.258163,0 110.1143,-2.499607,0 110.0646,-2.925694000000001,0 110.1712,-3.032208,0 110.3061,-3.060612,0 110.5049,-2.996703999999999,0 110.6754,-3.138724,0 110.7819,-3.103219000000001,0 110.9097,-3.138724,0 111.0162,-3.124531,0 111.3358,-3.032208,0 111.7761,-3.074815,0 111.7903,-3.387277000000001,0 111.7335,-3.536407,0 111.7903,-3.600316,0 111.9465,-3.62872,0 112.2021,-3.4867,0 112.5075,-3.479589,0 112.5004,-5.205232,0 116.3209,-5.205232,0 116.3209,-7.548669,0 115.767,-7.548669,0 115.767,-9.636480000000001,0 112.5004,-9.636480000000001,0 112.5004,-14.63648,0 112.5004,-19.63648,0 112.5004,-24.63648,0 112.5004,-29.63648,0 112.5004,-34.63648,0 112.5004,-39.63649,0 112.5004,-39.73648000000001,0 112.5004,-44.73647,0 112.5004,-49.73648,0 112.5004,-54.73646999999999,0 112.5004,-59.43648,0 112.5004,-64.43649000000001,0 112.5004,-69.43648000000002,0 112.5004,-74.43648,0 112.5004,-79.43648,0 112.5004,-84.43648,0 112.5004,-89.43648,0 112.5004,-89.90000000000001,0 111.5013,-89.90000000000001,0 110.5022,-89.90000000000001,0 109.5031,-89.90000000000001,0 108.504,-89.90000000000001,0 107.5049,-89.90000000000001,0 106.5058,-89.90000000000001,0 105.5067,-89.90000000000001,0 104.5076,-89.90000000000001,0 103.5085,-89.90000000000001,0 102.5094,-89.90000000000001,0 101.5103,-89.90000000000001,0 100.5111,-89.90000000000001,0 99.51205,-89.90000000000001,0 98.51294,-89.90000000000001,0 97.51384,-89.90000000000001,0 97.51384,-84.89999,0 97.51384,-79.90000000000001,0 97.51384,-74.90000000000001,0 97.51384,-69.90000000000001,0 97.51384,-64.90000000000001,0 97.51384,-63.73534,0 97.51384,-58.73533,0 97.51384,-53.73534000000002,0 97.51384,-48.73533,0 97.51384,-44.73534,0 97.51384,-39.73533000000001,0 97.51384,-34.73534,0 97.51384,-29.73533,0 97.51384,-24.73534,0 97.51384,-19.73534,0 97.51384,-14.73534,0 97.51384,-13.93535,0 97.51384,-11.2595,0 97.51384,-6.259501,0 97.51384,-1.259497,0 97.51384,-0.5628515,0 94.60397,3.503177,0 92.9025,5.880672000000001,0 94.5928,5.880672000000001,0 94.59142,10.23029,0 94.58984000000001,15.23029,0 90.33015,15.23029,0 90.32641000000001,18.56566,0 92.31895,20.729,0 92.33333,20.76416,0 92.26331999999999,20.91916000000001,0 92.26194,21.05431,0 92.37385999999999,20.70083,0 92.62797999999999,20.40141,0 92.76654000000001,20.17898,0 92.85404,20.1097,0 93.00718999999999,19.80706,0 93.08742,19.81435,0 93.16398000000001,19.78154,0 93.25879000000002,19.81435,0 93.27337,19.93468,0 93.33535999999999,19.93833,0 93.38276999999999,19.90186,0 93.42287,19.80888,0 93.3937,19.72502,0 93.52132,19.47342,0 93.47028,19.42239,0 93.46662000000001,19.33487,0 93.65987,19.02129,0 93.61612000000001,18.93379,0 93.46298000000003,18.87544,0 93.63070999999999,18.66396,0 93.76926,18.59103,0 93.99169000000001,18.7077,0 94.08649,18.72959,0 94.15577,18.68948,0 94.33079000000001,18.3595,0 94.30162,18.22458,0 94.39643,18.20634,0 94.45112,18.07508,0 94.4183,17.9584,0 94.47664,17.7615,0 94.5204,17.71045,0 94.54227,17.3677,0 94.43288000000001,17.19451,0 94.43653000000001,16.99761,0 94.35996000000002,16.89915,0 94.32715000000003,16.65121,0 94.23962000000002,16.54183,0 94.17400000000001,16.0277,0 94.24328,15.92924,0 94.33808000000001,15.95842,0 94.37090000000002,15.93654,0 94.41101000000001,15.80893,0 94.49487000000001,15.93654,0 94.53134,15.94019,0 94.71001000000001,15.79069,0 95.32623000000001,15.68495,0 95.43562,15.71047,0 95.70179000000002,15.95296,0 95.7346,16.06963,0 95.86951000000001,16.18266,0 95.97891000000001,16.19361,0 96.06641999999999,16.28112,0 96.60242000000001,16.52907,0 96.77744000000001,16.67857,0 96.83213000000002,16.76972,0 96.92329000000001,16.81347,0 97.16030000000001,16.80983,0 97.21863999999999,16.76607,0 97.31709000000001,16.60199,0 97.34990999999999,16.47072,0 97.41919,16.4379,0 97.45565000000001,16.31758,0 97.56868,16.15714,0 97.56868,15.98212,0 97.68902000000001,15.88368,0 97.69629999999999,15.69954,0 97.63068,15.5938,0 97.63795,15.48805,0 97.71453000000003,15.40054,0 97.70359999999999,15.28751,0 97.75100000000001,15.20729,0 97.78746000000001,14.84631,0 97.90778000000002,14.53273,0 97.75100000000001,14.40693,0 97.79111,14.22826,0 97.76558,14.16262,0 97.88955000000003,13.9475,0 97.89319999999999,13.76518,0 98.06093,13.72507,0 98.24323000000001,12.98124,0 97.82026999999999,12.82628,0 97.80204999999999,12.458,0 97.75829,12.29392,0 97.71453000000003,12.19182,0 97.42283000000001,11.81078,0 97.48117000000001,11.7488,0 97.97707,11.83266,0 97.98801,11.6941,0 98.04635000000002,11.61752,0 97.95882,11.46803,0 97.95882,11.39511,0 98.11562000000001,11.36958,0 98.19584,11.3003,0 98.29064000000001,11.04142,0 97.89686,10.94297,0 97.87132,10.89922,0 97.86767999999999,10.81534,0 97.95882,10.85181,0 98.09374,10.819,0 98.14843999999999,10.84087,0 98.20678,10.69868,0 97.93696,10.57105,0 97.88226,10.50542,0 97.87497000000001,10.3778,0 97.96977000000001,10.31945,0 97.93331000000001,10.07151,0 97.97341,10.02046,0 98.07916,10.10797,0 98.14115,10.11526,0 98.16302000000002,10.06057,0 98.10104000000001,9.932957999999999,0 97.9953,9.819918000000001,0 97.9479,9.590201,0 98.11197,9.688651999999999,0 98.19220000000001,9.911070000000001,0 98.45473,9.958472,0 98.53130000000002,9.91836,0 98.55254000000001,9.983105999999999,0 98.74275,10.34861,0 98.82388,10.51666,0 98.77388999999999,10.61695,0 98.7872,10.68222,0 98.91304,10.80972,0 99.00694,10.83195,0 99.02027,10.96333,0 99.08167,10.95139,0 99.10664,11.01,0 99.23750000000003,11.10945,0 99.33028,11.32222,0 99.40054000000001,11.38416,0 99.40470999999999,11.45166,0 99.46887,11.52,0 99.46776,11.60972,0 99.56193000000002,11.63056,0 99.63581000000001,11.73361,0 99.66165000000001,11.82694,0 99.58942999999999,11.8725,0 99.59444000000002,11.99695,0 99.54526000000001,12.04555,0 99.57332000000002,12.13666,0 99.47331,12.13389,0 99.49970999999999,12.18833,0 99.41249000000001,12.46639,0 99.43623,12.57444,0 99.24526,12.72361,0 99.17859000000001,12.9175,0 99.19166000000001,12.97444,0 99.11219,13.05584,0 99.12082,13.17583,0 99.21278000000001,13.21611,0 99.21720999999999,13.40583,0 99.17054,13.57111,0 99.18054000000001,13.7125,0 99.12776,13.77361,0 99.11942999999999,13.87861,0 99.03276,13.93777,0 98.97165,14.08361,0 98.75972000000003,14.2175,0 98.73109,14.27777,0 98.61691999999999,14.31916,0 98.50221000000003,14.53139,0 98.4772,14.52805,0 98.44775000000001,14.60583,0 98.25999,14.81666,0 98.25499000000002,14.92083,0 98.21388,15.00333,0 98.23442,15.04695,0 98.18442,15.09916,0 98.21721000000001,15.1775,0 98.20139,15.22083,0 98.2664,15.23555,0 98.31026,15.30305,0 98.41361000000001,15.26,0 98.42249,15.36,0 98.49748,15.38778,0 98.56999,15.33667,0 98.59636999999999,15.45834,0 98.57557,15.66188,0 98.56526000000001,15.72277,0 98.60999,15.86695,0 98.59055000000001,15.92389,0 98.61749000000002,15.97,0 98.57249,16.05166,0 98.63805000000002,16.04721,0 98.69275000000002,16.12832,0 98.80803000000002,16.10305,0 98.85276000000003,16.13416000000001,0 98.86331,16.21471,0 98.91859000000001,16.26861,0 98.92638,16.39111,0 98.86749000000003,16.43416,0 98.86081,16.47527,0 98.81441,16.37582,0 98.71581000000002,16.27638,0 98.68970000000002,16.285,0 98.66249000000001,16.46027,0 98.58998,16.55333,0 98.58028,16.62027,0 98.53360000000001,16.64167,0 98.47776000000002,16.73499,0 98.54665,16.80777,0 98.51972000000002,16.86777,0 98.54998999999999,16.85471,0 98.48831,16.98194,0 98.42359,17.05333,0 98.33582000000001,17.05556,0 98.24249000000002,17.21861,0 98.11887,17.31388,0 98.11554,17.37611,0 98.05304,17.41583,0 98.01470999999999,17.50639,0 97.77831999999999,17.70332,0 97.77442000000001,17.75083,0 97.68665,17.86444,0 97.75193000000003,17.97222,0 97.69136000000002,18.05806,0 97.68665,18.14666,0 97.61803999999999,18.23138,0 97.64305000000002,18.29027,0 97.56359999999999,18.32777,0 97.53580000000001,18.26861,0 97.49444000000001,18.2825,0 97.34749000000001,18.53889,0 97.36229,18.57965,0 97.44247000000001,18.49722,0 97.52692,18.48917,0 97.62415000000003,18.55445,0 97.7747,18.57,0 97.74776,18.86556,0 97.6772,18.93416,0 97.83638000000001,19.1011,0 97.84180000000002,19.2071,0 97.78831,19.27695,0 97.83720000000001,19.29888,0 97.79248,19.40194,0 97.87665,19.49528,0 97.86908,19.57018,0 98.03498,19.64389,0 98.04998999999999,19.8075,0 98.23859,19.72222,0 98.25360000000002,19.67305,0 98.50971,19.71249,0 98.56165,19.67527,0 98.64915000000001,19.74193,0 98.77554000000001,19.75889,0 98.83693000000002,19.81639,0 98.91388000000001,19.74638,0 99.02970999999999,19.82888000000001,0 99.04082,20.03722,0 99.07639,20.0975,0 99.18388,20.12805,0 99.32555000000001,20.06611,0 99.53887,20.14943,0 99.55525000000003,20.20667,0 99.45610000000002,20.38861,0 99.67360000000001,20.31083,0 99.80914,20.33638,0 99.86997000000001,20.42722,0 99.95914000000001,20.45527,0 100.0914,20.34861,0 100.1753,20.63527,0 100.2539,20.74555,0 100.3689,20.82694,0 100.5319,20.80527,0 100.6472,20.87056,0 100.6336,20.89154,0 100.5255,20.87111,0 100.52,20.94943,0 100.5455,21.02527,0 100.6214,21.05167,0 100.6719,21.12806,0 100.7226,21.30771,0 100.8347,21.3025,0 100.9975,21.39583,0 101.1617,21.53056,0 101.1482,21.57264,0 101.2164,21.54556,0 101.1936,21.41277,0 101.2653,21.37611,0 101.2283,21.31222,0 101.2819,21.18027,0 101.5686,21.24749,0 101.6153,21.22833,0 101.6075,21.18027,0 101.67,21.19971,0 101.73,21.13972,0 101.7872,21.14417,0 101.7822,21.20693,0 101.838,21.21111,0 101.8514,21.24916,0 101.7392,21.31639,0 101.7489,21.48194,0 101.7775,21.515,0 101.763,21.57833,0 101.8331,21.62138,0 101.7831,21.65083,0 101.7525,21.72443,0 101.7847,21.825,0 101.7086,21.92889,0 101.6255,21.97193,0 101.5744,22.10917,0 101.5969,22.16166,0 101.5389,22.24417,0 101.57,22.27917,0 101.6269,22.28166,0 101.6805,22.37917,0 101.6719,22.44639000000001,0 101.738,22.49694,0 101.8,22.48943,0 101.8755,22.38305,0 101.92,22.43611,0 102.0308,22.45527,0 102.1147,22.43389000000001,0 102.1407,22.39628,0 102.1867,22.43,0 102.2533,22.41471,0 102.2697,22.49166,0 102.4164,22.63583,0 102.383,22.67749,0 102.4261,22.68832,0 102.4797,22.77389,0 102.5428,22.74889,0 102.5603,22.69749,0 102.6103,22.72278,0 102.8628,22.60139,0 102.9286,22.48194000000001,0 103.0305,22.43555,0 103.0725,22.44749,0 103.0761,22.49833,0 103.1708,22.54694,0 103.1556,22.58666,0 103.1839,22.62888,0 103.28,22.67304,0 103.3289,22.79500000000001,0 103.4305,22.74388,0 103.4569,22.64249,0 103.5224,22.58437,0 103.5842,22.64416,0 103.5636,22.70138,0 103.6178,22.78,0 103.6553,22.7825,0 103.9644,22.49911,0 104.0097,22.52424,0 104.0331,22.68527,0 104.1116,22.79972,0 104.2672,22.82919,0 104.2619,22.73777,0 104.37,22.68583,0 104.5836,22.84472,0 104.6044,22.80972,0 104.7314,22.81666,0 104.8611,22.93666,0 104.825,23.10611,0 104.8763,23.11084,0 104.9075,23.18027,0 104.9619,23.16556,0 105.0811,23.24222,0 105.2405,23.26055,0 105.2647,23.33416,0 105.3275,23.37803,0 + + + 1 + + + + + +111.0883,72.37220000000001,0 111.3592,72.31693,0 111.5806,72.31944,0 111.6686,72.26582999999999,0 111.6242,72.21361,0 111.7436,72.20721,0 111.775,72.14499000000001,0 112.0122,72.13332,0 112.0111,71.40694000000001,0 112.333,71.34333,0 112.5128,71.26582999999999,0 112.6428,71.2897,0 112.7258,71.24359,0 112.6869,71.20277,0 112.5219,71.16388000000001,0 112.5975,71.10471,0 112.385,71.0647,0 112.2561,71.00000000000001,0 112.0775,71.06164,0 111.9772,70.98276,0 111.4647,70.93864000000001,0 111.3625,70.85526,0 111.0057,70.84365,0 110.8808,70.79638000000001,0 110.7223,70.82165999999999,0 110.5383,70.79721000000001,0 110.5031,70.77083,0 110.5136,70.71693000000001,0 110.3236,70.70471000000001,0 110.1236,70.63612000000001,0 110.1625,70.56554,0 110.1594,70.55247,0 110.0989,70.55776,0 110.1461,70.52388000000001,0 110.1405,70.47859,0 110.3036,70.44942,0 110.2725,70.41721000000001,0 109.6417,70.38499,0 109.5817,70.35526000000002,0 109.633,70.31972,0 109.5695,70.265,0 109.3205,70.21887,0 109.3055,70.17776000000001,0 109.3828,70.11942999999999,0 109.3811,70.07944000000001,0 109.5439,70.03498,0 109.3836,69.92944,0 109.4211,69.89276,0 109.3644,69.83832,0 109.2261,69.77164999999999,0 108.9539,69.78526000000001,0 108.8725,69.84109000000001,0 108.2366,69.85444,0 108.0536,69.77970999999999,0 108.0181,69.70749000000001,0 107.9022,69.67498999999999,0 107.6053,69.6636,0 106.8147,69.51361,0 106.5911,69.51666,0 106.4547,69.57249,0 106.2853,69.45833,0 106.1367,69.41971,0 106.8908,68.86026,0 106.8766,67.84166999999999,0 106.7989,67.33832,0 106.6678,67.24387,0 106.5036,67.28637000000001,0 106.2325,67.18498,0 106.0539,67.16804999999999,0 105.9955,67.07887,0 105.9053,67.04553,0 105.5283,67.02222,0 105.6436,66.94664,0 105.8189,66.94859,0 105.8686,66.91804999999999,0 106.0683,66.89525999999999,0 106.075,66.86081,0 105.9889,66.79776000000001,0 106.1875,66.80247,0 106.1997,66.78333000000001,0 106.1361,66.7561,0 106.1461,66.72693,0 106.26,66.69942,0 106.2272,66.66052999999999,0 106.2417,66.58167,0 106.3058,66.55359000000001,0 106.2939,66.50221000000001,0 106.3269,66.47553000000001,0 106.1008,66.37803,0 106.1489,66.25776999999999,0 106.1158,66.19859,0 106.1833,66.15555999999999,0 106.353,66.15082,0 106.4889,66.00471,0 106.4667,65.93192999999999,0 106.4961,65.895,0 106.4483,65.82138000000001,0 106.4764,65.80443,0 106.448,65.77415000000001,0 106.4711,65.74108,0 106.4153,65.70139,0 106.4214,65.66692999999999,0 106.6439,65.6322,0 106.6219,65.61053,0 106.715,65.59305999999999,0 106.6989,65.55109,0 106.9647,65.50443,0 106.8761,65.44108,0 106.8414,65.37608,0 106.6116,65.39276,0 106.4422,65.30888,0 106.4269,65.26138,0 106.5117,65.20387,0 106.3736,65.20499,0 106.2911,65.13889,0 106.1925,65.12858,0 106.1658,65.09027,0 105.9986,65.03915000000001,0 105.9748,65.00305,0 106.2233,64.85722,0 106.1058,64.85915,0 106.0408,64.90470999999999,0 105.9491,64.89499000000001,0 106.0097,64.81805,0 105.898,64.82138000000001,0 105.8472,64.79165999999999,0 105.8289,64.74193,0 105.8772,64.65804,0 105.7039,64.65886999999999,0 105.7494,64.61443,0 105.7261,64.57222,0 105.8042,64.53055000000001,0 105.7925,64.47803999999999,0 106.0389,64.51609999999999,0 106.1475,64.48526,0 106.0661,64.42081,0 106.1867,64.39639,0 106.3944,64.44331,0 106.5858,64.44443,0 106.5655,64.49582,0 106.6042,64.51331999999999,0 106.6733,64.49802,0 106.7533,64.41193,0 106.8864,64.41609,0 107.1022,64.33693,0 107.2342,64.33138,0 107.2366,64.28693,0 107.3344,64.24442999999999,0 107.5947,64.29915,0 107.8508,64.18053999999999,0 107.9933,64.16971,0 108.0265,64.22346,0 108.1253,64.24054,0 108.15,64.24082,0 108.2211,64.20833,0 108.3222,64.03943,0 108.2619,63.99083000000002,0 107.6792,63.98999,0 107.6194,63.9575,0 107.6219,63.91361000000001,0 107.5628,63.85695000000001,0 107.3592,63.86775999999999,0 107.2911,63.95083,0 107.1819,63.95361,0 107.0714,63.88528,0 106.8603,63.97721,0 106.7028,63.98555000000002,0 106.6803,63.92499,0 106.7972,63.84415,0 106.6283,63.69833,0 106.685,63.61361000000001,0 106.5069,63.49166000000002,0 106.7364,63.3686,0 106.6741,63.29667,0 106.4441,63.33111,0 106.3619,63.27139,0 106.3583,63.21999,0 106.433,63.20055,0 106.3836,63.1461,0 106.4108,63.11527000000001,0 106.3033,63.07277,0 106.1216,63.05833000000001,0 106.1875,62.98611,0 106.1561,62.9586,0 106.2194,62.94194000000001,0 106.2161,62.8961,0 106.4447,62.84361,0 106.4678,62.77694,0 106.5258,62.74722000000001,0 106.4691,62.68166000000001,0 106.8144,62.59972,0 106.7072,62.58277,0 106.6533,62.53833,0 106.7144,62.47721000000001,0 106.5308,62.37249000000001,0 106.4275,62.38388,0 106.4792,62.31721000000002,0 106.3939,62.31777000000001,0 106.3192,62.26194000000001,0 106.4477,62.24167,0 106.4475,62.18581,0 106.373,62.10277,0 106.4097,62.08472,0 106.3789,62.06528,0 106.4133,62.02750000000001,0 106.2,61.99749000000001,0 106.0478,61.9086,0 106.0431,61.90277,0 105.8894,61.82305000000001,0 105.9491,61.68333,0 105.8647,61.67389,0 105.8028,61.61776,0 105.6947,61.64943,0 105.5925,61.61721,0 105.5575,61.56554000000001,0 105.3664,61.53278,0 105.2736,61.47805000000002,0 105.2758,61.41999,0 105,61.40661000000001,0 104.785,61.34943,0 104.9272,61.31944,0 104.9314,61.26944,0 104.9628,61.26498999999999,0 105.0119,61.17749,0 104.835,61.17776000000001,0 104.7103,61.08999000000001,0 104.6147,61.07444,0 104.6003,61.05416,0 104.6419,61.03804,0 104.6,61.00054,0 104.6144,60.97639,0 104.5597,60.94554000000001,0 104.6344,60.89388,0 104.4569,60.83972,0 104.6022,60.74333000000001,0 104.5167,60.63332,0 104.5577,60.61721,0 104.568,60.54084,0 104.6414,60.49416000000002,0 104.6764,60.42499999999999,0 104.6539,60.40249,0 104.7642,60.38221,0 104.8772,60.30388000000001,0 105.2219,60.27528,0 105.2967,60.29860999999999,0 105.3758,60.24917000000001,0 105.4772,60.25443,0 105.4786,60.19249,0 105.4208,60.10999000000001,0 105.4889,60.01194000000002,0 105.4305,59.89388,0 105.4952,59.84554000000001,0 105.3783,59.82083000000001,0 105.1853,59.86027000000001,0 105.0191,59.83721,0 105.0191,59.77083,0 104.8922,59.75027000000001,0 104.7944,59.69332,0 104.8005,59.6361,0 104.8769,59.58582,0 104.8561,59.55110000000001,0 104.8828,59.52527,0 104.9853,59.46028,0 105.183,59.47305,0 105.2308,59.42527000000001,0 105.2136,59.40777,0 105.2094,59.40192,0 105.2455,59.35082,0 105.1841,59.31055000000001,0 105.2961,59.26111,0 105.3319,59.1986,0 105.3019,59.14861000000001,0 105.3628,59.09499,0 105.1439,59.04582,0 105.085,58.99277,0 104.8386,58.89443,0 104.7558,58.81526000000001,0 104.8733,58.72164000000001,0 104.795,58.66859,0 104.6314,58.64804,0 104.5828,58.61415,0 104.5233,58.63832000000001,0 104.4583,58.60054,0 104.3936,58.64526,0 104.3991,58.69915000000001,0 104.2836,58.71305000000001,0 104.2364,58.75866000000001,0 104.0444,58.77304,0 103.9922,58.73555,0 103.8558,58.73498000000001,0 103.9458,58.76582,0 103.9542,58.84859,0 103.8933,58.90555,0 103.5928,58.91304,0 103.5919,58.95193,0 103.5383,58.98611,0 103.3892,59.02138000000002,0 103.2444,59.17944,0 103.2366,59.2286,0 103.338,59.22721,0 103.3264,59.26082000000002,0 103.2064,59.28972,0 103.1644,59.25999000000001,0 103.0822,59.26416,0 103.0155,59.32193,0 102.8717,59.26527999999999,0 102.8286,59.21194,0 102.5353,59.19166000000001,0 102.4433,59.14471,0 102.4044,59.07249000000001,0 102.4508,59.00111,0 102.4369,58.94304000000001,0 102.54,58.89777000000001,0 102.5669,58.79694,0 102.5114,58.71667,0 102.3105,58.64527,0 102.1944,58.52527000000001,0 101.685,58.41888,0 101.5347,58.22471,0 101.2764,58.21861000000001,0 101.2161,58.14444,0 101.1097,58.11528000000001,0 101.105,58.10528,0 101.1608,58.06055,0 101.1583,58.02471000000001,0 101.1394,57.98249,0 101.0281,57.92249000000002,0 101.0353,57.89804000000001,0 100.953,57.86694000000001,0 100.8077,57.88611,0 100.8505,57.84222,0 100.84,57.80083000000001,0 100.8911,57.77361,0 100.7969,57.66833000000001,0 100.8461,57.60999000000001,0 100.9536,57.5611,0 100.9391,57.51583,0 100.9628,57.50083000000001,0 100.9112,57.44835,0 100.855,57.465,0 100.7419,57.40193000000001,0 100.6505,57.47444,0 100.4036,57.54804,0 100.3958,57.59887,0 100.3461,57.63833,0 100.3664,57.67556,0 100.328,57.68250000000001,0 100.373,57.7311,0 100.2664,57.76139,0 100.2744,57.80915,0 100.123,57.86554,0 100.0767,57.96111,0 100.0775,58.0561,0 100.0441,58.07944,0 99.80138000000001,58.05721,0 99.68193000000001,58.08111,0 99.61582,58.04805000000001,0 99.61971,58.00166,0 99.49442999999999,57.93415,0 99.42165000000001,57.79333000000001,0 99.08414999999999,57.77416,0 98.97415,57.72165,0 98.85415999999999,57.72804,0 98.76944,57.79166000000001,0 97.91721,57.80694,0 97.34009000000002,57.04317,0 97.47693000000001,56.96444,0 97.62302,56.95528000000001,0 97.48055000000001,56.89111000000001,0 97.48581000000003,56.81028,0 97.77609,56.78054,0 97.75027000000002,56.70417000000001,0 97.78581,56.66415000000001,0 97.75193000000003,56.64054,0 97.77528000000002,56.6075,0 97.74498,56.55860000000001,0 97.87943,56.55944,0 97.88193,56.39249000000002,0 97.55663000000001,56.3875,0 97.58693000000001,56.18943000000001,0 97.42859,56.14666,0 97.43248,56.09583000000001,0 97.35220000000001,56.04861,0 97.12361,56.11639,0 97.0611,56.02556,0 96.98054999999999,56.02221999999999,0 96.96971000000001,55.85583,0 96.82111,55.79166,0 96.75526000000002,55.74722,0 96.82471,55.69749,0 96.74638,55.65138000000001,0 96.85582000000001,55.59444000000001,0 96.81721,55.55915,0 96.85526000000002,55.47776,0 96.84137000000001,55.43749,0 96.92027,55.32472,0 96.70055000000001,55.25528,0 96.69721,55.17276,0 96.65192,55.0986,0 96.68692,55.08083,0 96.57777,55.02028,0 96.71527,54.92138000000001,0 96.67359999999999,54.80222000000001,0 96.56192,54.69694,0 96.58888,54.65972,0 96.55053,54.58082,0 96.57083,54.51250000000001,0 96.31582,54.57139000000001,0 96.21720999999999,54.54084,0 96.05582,54.5761,0 95.97638000000001,54.47721000000001,0 95.98665,54.44833,0 95.91577000000002,54.3956,0 95.79082,54.42082000000001,0 95.70526,54.37999,0 95.66303000000004,54.33999,0 95.65860000000002,54.25943,0 95.91805000000002,54.15999,0 95.98803000000001,54.08721,0 96.05332,54.09389000000002,0 96.08167000000003,54.05749000000001,0 96.04943,53.99554,0 96.20721,53.92638,0 96.5,53.68499000000001,0 96.57165999999999,53.64554,0 96.60860000000001,53.67583,0 96.68415,53.6386,0 96.72776,53.70665,0 96.88666000000001,53.72887000000001,0 97.12275,53.60944,0 97.33221,53.59999,0 97.44107,53.46027000000002,0 97.58749,53.43888000000001,0 97.59972000000001,53.37138,0 97.96304000000001,53.35999,0 97.96998000000002,53.29639000000001,0 98.03027,53.25054000000001,0 98.28581,53.22721,0 98.29998999999999,53.10055,0 98.60249000000002,53.10139000000001,0 98.68637000000001,53.15611000000001,0 98.8772,53.11944,0 98.92360000000001,53.15388,0 99.06526000000001,53.10249,0 98.98553,53.03444,0 99.24997000000001,52.95378,0 99.20610000000002,52.8511,0 98.93107999999999,52.925,0 98.84444000000001,52.83194,0 98.86526000000001,52.79167,0 98.9408,52.79722000000001,0 98.93248000000001,52.65444000000001,0 98.80415000000001,52.61166,0 98.78276,52.57333,0 98.82721000000001,52.53999000000001,0 98.81527,52.52054,0 98.73522000000001,52.5118,0 98.72083000000001,52.46054000000001,0 98.62553,52.42416,0 98.67970000000001,52.36999,0 98.64444,52.26167000000001,0 98.72248999999999,52.29527000000001,0 98.80721,52.27444,0 98.81360000000001,52.18693,0 98.91304,52.2011,0 98.94189,52.14068,0 98.88109,52.11416,0 98.86942999999999,52.03861,0 98.70804000000001,51.82805,0 98.62442,51.77999000000001,0 98.33527000000001,51.71804000000001,0 98.24802,51.5811,0 98.25999,51.51583000000002,0 98.23235,51.45989000000001,0 98.06469000000001,51.46694,0 97.93777,51.31249,0 97.9586,51.22332,0 97.83195000000001,50.98999000000001,0 97.87747,50.92972,0 98.01304,50.85583,0 97.96388,50.77832,0 98.06331000000002,50.63054000000001,0 98.16748,50.56889,0 98.27443,50.56055,0 98.32555000000001,50.51083000000001,0 98.28554,50.41361000000001,0 98.29221,50.29861,0 98.10721000000002,50.04888,0 97.86388000000001,49.93277,0 97.78609,49.96915,0 97.59415000000001,49.92749,0 97.58638000000001,49.84361000000001,0 97.31303,49.7311,0 97.16943000000001,49.76167,0 96.99693000000002,49.89415000000001,0 96.72248999999999,49.9211,0 96.59248000000001,49.86500000000001,0 96.54749,49.92583,0 96.37916,49.89360000000001,0 96.29443999999999,49.94665000000001,0 96.07444,50.00694,0 95.96026999999999,49.94415000000001,0 95.90721000000002,50.01415999999999,0 95.83472,50.02499000000001,0 95.73526,49.95471000000001,0 95.59193000000001,49.94083,0 95.53859,49.89472,0 95.49157,49.9077,0 95.42249000000001,49.95610000000001,0 95.06608,49.96193000000001,0 94.97609,50.0561,0 94.62276,50.02999,0 94.51582999999999,50.16109,0 94.38998000000001,50.21444000000001,0 94.3522,50.41499,0 94.27499,50.56944,0 93.55832000000001,50.58972000000001,0 93.44886,50.62249000000001,0 93.03333000000001,50.6086,0 92.97102,50.66649,0 92.99915,50.7514,0 92.97500000000001,50.7911,0 92.80276000000001,50.79361,0 92.76028,50.71249,0 92.66081,50.68166,0 92.5736,50.75778,0 92.47275999999999,50.78527,0 92.38361000000002,50.87471000000001,0 92.32693,50.855,0 92.29498,50.75361,0 92.22137000000002,50.70556,0 91.90556000000002,50.71472000000001,0 91.77222000000002,50.68999000000001,0 91.65886999999999,50.63722000000001,0 91.60693000000001,50.57305,0 91.46776000000001,50.52694000000001,0 91.44748,50.4711,0 91.02970999999999,50.43306,0 90.87025,50.32638000000001,0 90.74860000000001,50.29749,0 90.69859,50.21943,0 90.50973000000001,50.22444000000001,0 90.37858,50.18582000000001,0 90.24443000000001,50.12027,0 90.05137000000003,50.0825,0 89.98526,49.97222000000001,0 89.64270000000001,49.90482999999999,0 89.6375,49.855,0 89.67137,49.82083,0 89.65107999999999,49.79527000000002,0 89.73609999999999,49.74889000000001,0 89.71138000000001,49.71472,0 89.45972,49.64999000000001,0 89.37221,49.57972,0 89.22665000000001,49.63833,0 89.19748,49.61111,0 89.23054999999999,49.53667,0 89.01331999999999,49.46360000000001,0 88.92886,49.54639,0 88.8875,49.54361000000001,0 88.89999000000002,49.44332,0 88.73081999999999,49.45083,0 88.65082,49.50055,0 88.22083000000001,49.46166,0 88.13193,49.36833000000001,0 88.1622,49.27222,0 87.98859,49.17722000000001,0 87.8407,49.17296000000001,0 87.52528,49.12915,0 87.46693000000001,49.07972,0 87.34821,49.09261,0 87.29971000000001,49.21054000000001,0 87.21887,49.2461,0 87.05247,49.25417000000001,0 86.92665,49.35306,0 86.96442,49.39194,0 86.83971,49.45222,0 86.84694,49.52166,0 86.61665000000001,49.58721000000001,0 86.68221000000001,49.66999,0 86.80025999999999,49.70222,0 86.76277000000002,49.73444000000001,0 86.77499,49.78889,0 86.61638000000001,49.79721,0 86.61109,49.76111,0 86.49706999999999,49.7155,0 86.50583,49.67638,0 86.28749000000001,49.58582000000001,0 86.24582000000001,49.50139999999999,0 86.19107,49.4725,0 86.13275,49.53277000000001,0 85.96944000000001,49.48861000000001,0 85.96915,49.56638,0 85.8372,49.54388000000001,0 85.77083,49.57999,0 85.69054,49.56444,0 85.63081,49.62749,0 85.52443,49.59055,0 85.40387,49.62332,0 85.2586,49.59138000000001,0 85.21111000000001,49.64721000000001,0 85.21053000000001,49.71555000000001,0 85.09193000000001,49.81971,0 85.0836,49.88138,0 84.97776,49.91276,0 84.97915,49.99777,0 85.05832,50.01361,0 85.01443,50.07583,0 84.85193,50.09166000000001,0 84.81053,50.14416000000001,0 84.73636999999999,50.1461,0 84.67443,50.19694,0 84.55998,50.19555,0 84.47386,50.25666,0 84.37302,50.20971000000002,0 84.26694000000001,50.27054,0 84.26277,50.35443,0 84.19692000000001,50.45304,0 84.22304,50.51471000000002,0 84.10621999999999,50.64296,0 83.96998000000001,50.71555,0 83.97693,50.79749,0 83.90166000000002,50.81388000000001,0 83.84333,50.87749000000001,0 83.51361,50.95555000000001,0 83.45638,51.00249000000001,0 83.1386,51.00194000000001,0 83.0872,50.92361,0 83.00999,50.88944000000001,0 82.76111,50.91082,0 82.72748,50.89888,0 82.72026,50.81081,0 82.49887,50.7211,0 82.44274,50.75804999999999,0 82.35637,50.75972,0 82.15027000000001,50.71054,0 82.01111,50.77138999999999,0 81.82887000000001,50.76833000000001,0 81.78276,50.79333,0 81.72581,50.74749000000001,0 81.59540000000001,50.73573,0 81.43747999999999,50.76445,0 81.48997,50.8411,0 81.42192,50.92777,0 81.4247,50.96638,0 81.07639,50.94781,0 81.18359,51.19609,0 81.04084,51.18143,0 80.94029000000002,51.22122,0 80.93223999999999,51.28399,0 80.87224999999999,51.25904,0 80.68783999999999,51.31472000000001,0 80.63344000000001,51.21476000000001,0 80.43872,51.19797000000001,0 80.43068000000001,51.11909,0 80.48678,51.05877,0 80.46236,50.96408000000001,0 80.19905,50.88837,0 80.17211,50.82919,0 80.06545,50.86060000000001,0 80.03516999999999,50.83338,0 80.1096,50.75947,0 79.99387,50.81304999999999,0 79.53637000000001,51.45000000000001,0 78.92303,52.17638000000002,0 77.92137,53.2589,0 77.52387,53.50639,0 76.52164999999999,53.99388,0 76.39333000000001,54.16361,0 76.72136999999999,54.15331000000001,0 76.86498,54.31805000000001,0 76.85583000000001,54.35889,0 76.77888,54.39415,0 76.92498999999999,54.43749,0 76.92359999999999,54.47554000000001,0 76.70663999999999,54.44721,0 76.65694000000001,54.36777000000001,0 76.48775999999999,54.32556,0 76.23888,54.35889,0 76.18552,54.29554000000001,0 76.20721,54.25916000000002,0 75.69136,54.11027,0 75.67777000000001,54.53417,0 75.80609,54.56554,0 75.83499000000001,54.60471,0 75.7897,54.66945,0 75.80887,54.69304,0 75.70972,54.68639,0 75.65721000000001,54.80999,0 75.51331999999999,54.82333,0 75.49165000000001,54.86138,0 75.54082,54.90194,0 75.34027,54.91416,0 75.40027000000002,55.02804,0 75.24803,55.1375,0 75.26944,55.25416,0 75.09138,55.38221,0 75.16859,55.4211,0 75.17137,55.45277,0 75.325,55.50722,0 75.32223000000001,55.54027,0 75.30582000000001,55.56917,0 75.1972,55.55972,0 75.13136,55.59888000000002,0 75.23775999999999,55.65999999999999,0 75.12886,55.69943000000001,0 75.13694000000001,55.72332,0 75.08194,55.75027,0 75.37025,55.76666,0 75.37331,55.81333,0 75.29749,55.84471,0 75.31219,55.89166000000001,0 75.50584000000001,55.99610000000001,0 75.54304999999999,56.04722000000002,0 75.70055000000001,56.0675,0 75.74887,56.14111000000001,0 75.95638,56.12749000000001,0 75.99442999999999,56.17832000000001,0 76.15082,56.18055,0 76.16304,56.14943,0 76.31887999999999,56.18555,0 76.29971000000001,56.23638,0 76.11665000000002,56.31415,0 76.07805999999999,56.41471,0 76.14194000000001,56.4511,0 76.05748,56.48277,0 76.0061,56.45388,0 75.93581,56.47971,0 75.895,56.44276,0 75.84415,56.45,0 75.86526000000001,56.49971000000001,0 76.01528,56.55165000000001,0 76.0461,56.62165000000002,0 76.14915000000001,56.63082,0 76.28943,56.72694,0 76.25194999999999,56.91833,0 76.19192,56.97276000000001,0 76.10887,57.25027999999999,0 75.96638,57.41416,0 75.8586,57.39917,0 75.71249,57.63917000000001,0 75.58275999999999,57.64639,0 75.56441,57.93387,0 75.06638000000001,58.11833,0 75.2397,58.21998,0 75.05415000000001,58.3447,0 75.35554999999999,58.47277,0 75.10526,58.58111,0 75.17081,58.6186,0 75.15028000000001,58.67805,0 75.38164999999999,58.78804,0 75.69054,59.01194,0 75.61526000000001,59.2411,0 75.83138,59.29639,0 75.89749000000001,59.43721000000001,0 75.99082,59.41972,0 76.16304,59.54361,0 76.45583000000001,59.54445,0 76.64833,59.58027,0 76.64554000000001,59.69332,0 76.74136,59.72943000000001,0 76.75888999999999,60.06081,0 76.68719,60.10777000000001,0 76.85165000000001,60.26806000000001,0 76.8186,60.33028000000002,0 76.74471,60.34249000000001,0 76.77443,60.47665,0 77.03749000000001,60.535,0 77.04721000000001,60.60361,0 77.03167000000001,60.63277,0 76.96527,60.64111,0 76.96776,60.71,0 77.07805000000001,60.72721,0 77.10498,60.85333000000001,0 77.40804,60.81027,0 77.68941,60.82749,0 77.92137,60.74665,0 78.12025,60.80222000000001,0 78.47527,60.77694,0 78.68941,60.83083,0 78.80721,60.77887,0 78.91110000000001,60.78722000000001,0 78.96915000000001,60.82805,0 79.18553,60.83860000000001,0 79.31833,60.79667000000001,0 79.28360000000001,60.71999000000001,0 79.38666000000001,60.64861,0 79.50249,60.68694,0 79.71581999999999,60.69555,0 80.18398999999999,60.66193,0 80.42100000000001,60.76556999999999,0 80.63061,60.76768000000001,0 80.69771000000002,60.80017,0 81.03823000000001,60.75419,0 81.0555,60.68084,0 81.11116,60.6375,0 81.49776,60.61555,0 81.86165,60.65055,0 82.16665,60.51832,0 82.39027,60.61028,0 82.38247,60.71278,0 83.14499000000001,61.03277000000001,0 83.50944,61.04916,0 83.99387,60.82472,0 84.25964000000001,60.85542,0 84.61415,61,0 85.71054,61.29749,0 85.64360000000001,61.38805,0 85.75249,61.43999,0 85.96639,61.46915,0 85.96915,61.54305,0 85.85193,61.59777,0 85.72275999999999,61.57361,0 85.46777,61.62860000000001,0 85.38582000000001,61.70167,0 85.24832000000001,61.68526000000001,0 85.00805,61.78416,0 84.68749,61.8061,0 84.63388999999999,61.87971000000001,0 84.55749,61.89472000000001,0 84.51666,61.93915,0 84.55441999999999,61.99694,0 84.43692,62.18915,0 84.72638000000001,62.40694,0 84.85915,62.44778,0 84.91387,62.49944000000001,0 84.89055000000001,62.54220999999999,0 84.94803000000002,62.59137000000001,0 85.09860000000001,62.6386,0 85.07777,62.67138000000001,0 85.2372,62.81444000000001,0 85.33249000000001,62.87331,0 85.4511,62.88277,0 85.52083,62.93277,0 85.49332,62.99027000000001,0 85.58716000000001,63.06996,0 85.46638,63.13805,0 85.47832,63.17054,0 85.53665,63.26083,0 85.67387000000001,63.35443999999999,0 85.55942,63.37499,0 85.40776,63.35,0 85.35276,63.40276999999999,0 85.38970000000002,63.42333000000001,0 85.37415,63.46220000000002,0 85.2961,63.51583,0 85.21193,63.50306000000001,0 85.08194,63.53638000000001,0 85.03203000000001,63.58649000000001,0 85.08998,63.60860000000002,0 85.17693,63.59137,0 85.26721000000001,63.64638000000001,0 85.33998,63.70693000000001,0 85.36693,63.81333,0 85.51639,63.93000000000001,0 85.95804,64.05443,0 85.96776,64.09775999999999,0 85.93248000000001,64.12776,0 86.0311,64.27528,0 85.94970000000002,64.32832999999999,0 85.92359999999999,64.41721,0 85.84081999999999,64.45889,0 85.84526,64.50749,0 85.91804000000001,64.5836,0 85.80859,64.64749000000001,0 85.86081,64.75526000000001,0 85.54694000000001,64.83028,0 85.14694,64.75166,0 85.09444000000001,64.81219,0 84.93222,64.82639,0 84.97748,64.88666000000001,0 84.90665,64.93026999999999,0 84.29137,64.9011,0 84.27804999999999,64.94054,0 84.39665000000001,64.99387,0 84.38108,65.03276,0 84.31386999999999,65.05721,0 84.3111,65.09860000000001,0 84.40999000000001,65.19082,0 84.52443,65.21278,0 84.58832,65.31303,0 84.50194000000001,65.39664999999999,0 84.55464000000001,65.43516,0 84.45028000000001,65.54554,0 84.19054,65.59444000000001,0 84.29276000000002,65.6122,0 84.31914999999999,65.66943000000001,0 84.32249,65.67609,0 84.17665,65.7,0 84.01111,65.79832,0 83.59108999999999,65.7736,0 83.50637,65.82944000000001,0 83.52804999999999,65.90443000000001,0 83.37276000000001,65.9836,0 83.28943,66.06693,0 83.37109,66.13666000000001,0 83.53970000000001,66.19525,0 83.34415,66.34193000000001,0 83.12469,66.42165,0 83.08693,66.46972,0 83.08666,66.61053,0 83.30582,66.66165,0 83.1836,66.74748,0 83.17249,66.80914,0 83.02748,66.85971000000001,0 83.06192,66.88081,0 83.04109,66.89221000000002,0 82.11942999999999,67.23888000000001,0 82.19721,67.25943,0 82.18165999999999,67.28803000000001,0 82.25915999999999,67.27998,0 82.21833,67.31137,0 82.3647,67.33055,0 82.2811,67.34887000000001,0 82.33778,67.3608,0 82.2336,67.42081,0 82.32971000000001,67.48109,0 82.38054,67.47971,0 82.35138000000001,67.50109999999999,0 82.39664999999999,67.53498999999999,0 82.11416,67.59943,0 82.04109,67.65665,0 82.11913,67.68747999999999,0 82.08055,67.68858,0 82.10554999999999,67.72887,0 81.90304999999999,67.77778000000001,0 81.72443000000001,67.92415,0 81.76194,67.95247999999999,0 81.8772,67.93165999999999,0 81.98888,67.96332,0 82.37442,67.94914,0 82.39610999999999,68.05914,0 82.35693000000001,68.09583000000001,0 82.39276,68.17747,0 82.54359,68.17276,0 82.52332000000001,68.20694,0 82.57361,68.25583,0 82.70663999999999,68.29331999999999,0 82.68443000000001,68.34636999999999,0 82.71249,68.40443000000001,0 82.68053999999999,68.49137,0 82.45610000000001,68.57832999999999,0 82.54915,68.61443,0 82.55859000000001,68.61111,0 82.58999,68.60276,0 82.69302999999999,68.63275,0 82.9011,68.62527,0 83.04276,68.66776,0 82.80164000000001,68.74082,0 82.78288000000001,68.79881,0 82.5522,68.81833,0 82.49721,68.98775999999999,0 82.31638,69.05387,0 82.50472000000002,69.10831,0 82.46138999999999,69.12442,0 82.46388,69.16054,0 81.81331,69.20055000000001,0 81.75972000000002,69.25249000000001,0 81.93611,69.34665,0 81.7811,69.43137,0 81.67249,69.44832,0 81.62302,69.41526,0 81.61387000000002,69.32833000000001,0 81.64028,69.31135999999999,0 81.58249000000001,69.27582,0 81.44414,69.25443000000001,0 81.33582,69.28803000000001,0 80.95596000000001,69.20667,0 80.79311,69.26394999999999,0 80.76669000000001,69.30504000000001,0 80.14597999999999,69.36324999999999,0 79.85914000000001,69.34610000000001,0 79.8772,69.37276,0 79.82278,69.39444,0 79.82805000000001,69.42249,0 79.71388,69.43248,0 79.74082,69.44832,0 79.63916999999999,69.48582,0 79.59583000000001,69.58832,0 79.50082,69.60471,0 79.5372,69.63081,0 79.49165000000001,69.63638,0 79.50583,69.65358999999999,0 79.00417,69.69693,0 79.13970999999999,69.74303999999999,0 79.06638,69.74721,0 79.06331,69.78664000000001,0 78.97582000000001,69.81165,0 79.01888,69.83499999999999,0 78.87527,69.88164999999999,0 78.96582000000001,69.88026000000002,0 79.18747999999999,69.96416000000002,0 79.11971,70.00664999999999,0 79.21860000000001,70.01166000000001,0 79.17859,70.03498,0 79.19443,70.05165,0 79.34943,70.04498,0 79.32805000000001,70.14888000000001,0 79.49887,70.11053,0 79.62943,70.22109,0 79.70889,70.23859,0 79.73831,70.24887,0 79.70360000000001,70.26999000000001,0 79.7247,70.28415000000001,0 79.85748,70.27222000000002,0 80.11404,70.36096000000001,0 80.08208999999999,70.39373000000001,0 80.18601000000001,70.39182,0 80.17683,70.43655,0 80.57176,70.46187999999999,0 80.62567,70.42167000000001,0 80.69155000000001,70.42319999999999,0 80.70740000000001,70.39100999999999,0 80.76217,70.39443,0 80.72770000000001,70.41077,0 80.79106,70.41504999999999,0 80.79858,70.44119000000001,0 80.67014000000002,70.44623,0 80.60648999999999,70.50095,0 80.66569,70.51388,0 80.6601,70.57407000000001,0 80.72072,70.5945,0 80.75629000000001,70.66586,0 80.59229000000001,70.71675000000001,0 80.69016000000001,70.80186000000001,0 80.56647,70.85477,0 80.55004,71.05757,0 79.96638,71.13109,0 79.50832,71.29331999999999,0 79.22915999999999,71.3175,0 79.1747,71.34609,0 79.14027,71.42165,0 79.3586,71.49413,0 79.39082000000001,71.54387,0 79.33138,71.59775999999999,0 79.38026000000001,71.61637,0 79.86972,71.60027,0 80.13540999999999,71.67453,0 80.06631,71.76943,0 80.12739999999999,71.7749,0 80.03504,71.83147,0 80.17328999999999,71.86931,0 80.27464000000001,71.85148,0 80.2719,71.87848,0 80.34878999999999,71.88601,0 80.24838,71.91006,0 80.23093,71.94193,0 79.91002,71.98448000000001,0 79.86720000000001,72.02249000000001,0 79.69692000000001,72.05915,0 79.42276,72.03554,0 79.38275000000002,72.06219,0 79.09444000000001,72.07055,0 79.09193000000001,72.10165000000001,0 79.01859,72.11998,0 78.91081,72.11471,0 78.91165,72.14444,0 78.7711,72.17027,0 78.80803,72.18332000000001,0 78.67693,72.17944,0 78.59721999999999,72.20972,0 78.67804,72.22165,0 78.65913999999999,72.26111,0 78.44637,72.35971000000001,0 78.45471000000001,72.36443,0 78.50015000000001,72.37733,0 78.4727,72.64751,0 78.17527,72.89798,0 78.20658,73.02322,0 78.53532,73.30501,0 79.49023,73.66505000000001,0 81.08696000000001,73.75897999999999,0 82.27669,73.92335,0 82.27669,74.95653,0 82.90286,74.98784000000001,0 83.37249,75.30092999999999,0 83.49773000000002,75.83316000000002,0 83.27856,76.17757,0 82.84025,76.36541,0 82.30801,76.45934,0 82.30801,78.37854,0 82.30801,83.37854000000002,0 82.52397000000001,83.37876,0 87.52397000000001,83.3839,0 92.52396,83.38905,0 97.52396,83.39419,0 97.52396,84.90001,0 97.52396,89.90000000000001,0 98.4623,89.90000000000001,0 99.40063000000002,89.90000000000001,0 100.339,89.90000000000001,0 101.2773,89.90000000000001,0 102.2156,89.90000000000001,0 103.154,89.90000000000001,0 104.0923,89.90000000000001,0 105.0307,89.90000000000001,0 105.969,89.90000000000001,0 106.9073,89.90000000000001,0 107.8457,89.90000000000001,0 108.784,89.90000000000001,0 109.7223,89.90000000000001,0 110.6607,89.90000000000001,0 111.599,89.90000000000001,0 112.5374,89.90000000000001,0 112.5259,84.90002,0 112.5144,79.90003,0 112.5097,77.85098000000001,0 112.5083,77.24612000000001,0 113.351,76.87012,0 113.9618,76.43810000000001,0 114.1406,75.88692,0 113.8128,75.26125999999999,0 112.6509,74.76967999999999,0 111.3847,74.42704000000001,0 111.34,74.27808,0 111.6826,74.06952,0 111.6379,73.93545,0 111.2942,73.85934,0 110.8934,73.76541,0 110.9169,73.76028,0 110.8775,73.72859,0 110.9143,73.69668,0 111.0803,73.65860000000001,0 111.1433,73.63777,0 111.1178,73.59359000000001,0 111.0547,73.57165999999999,0 110.8483,73.56554,0 110.8036,73.50832,0 110.5641,73.40637,0 110.1644,73.40248,0 110.5667,73.31944,0 110.6272,73.26888,0 110.423,73.18997,0 110.7978,73.17303,0 110.8583,73.07805000000002,0 110.9417,73.03888000000001,0 110.7778,73.00054,0 110.8155,72.95359999999999,0 110.8755,72.94859,0 110.6466,72.89554,0 110.6597,72.85305,0 110.7317,72.82999,0 110.6322,72.78665000000001,0 110.7303,72.64472000000001,0 110.925,72.63193,0 110.89,72.58110000000002,0 111.3155,72.51277,0 111.3036,72.47832,0 111.0758,72.4061,0 111.0883,72.37220000000001,0 + + + 1 + + + + + GMT +08:00 + + +]]> + #khStyle0800 + + + + + +108.4614,64.28581,0 108.5394,64.23248,0 108.4769,64.20081999999999,0 108.5441,64.1747,0 108.49,64.1147,0 108.7383,63.98082,0 108.6839,63.9086,0 108.7719,63.86472,0 108.6489,63.78582,0 108.6056,63.80749,0 108.4661,63.78944000000001,0 108.3716,63.82638,0 108.2886,63.80805,0 108.2703,63.67888,0 108.1164,63.62249,0 108.1314,63.56777,0 108.5586,63.59972000000001,0 108.8566,63.53582000000002,0 109.0433,63.55416000000002,0 109.2289,63.44027,0 109.2717,63.34722,0 109.363,63.36193,0 109.3917,63.32472,0 109.3753,63.25528000000001,0 109.4564,63.21860000000001,0 109.4061,63.18277,0 109.46,63.15055,0 109.4317,63.09361,0 109.4647,63.07749,0 109.4472,63.03611,0 109.4811,63.02777,0 109.4553,62.99972000000001,0 109.4811,62.9961,0 109.4683,62.93388000000002,0 109.6158,62.87609,0 109.6505,62.82444000000002,0 109.5039,62.77527,0 109.4561,62.66637999999999,0 109.375,62.64583,0 109.3869,62.58306000000001,0 109.2444,62.57277,0 109.2642,62.52332,0 109.3158,62.47554000000001,0 109.4205,62.45832,0 109.4711,62.40499,0 109.5442,62.4325,0 109.9036,62.41388,0 109.9247,62.39722,0 109.8911,62.35333,0 109.9628,62.32249000000002,0 109.96,62.31639,0 110,62.28220000000001,0 109.9333,62.23472,0 109.9997,62.16361,0 109.9036,62.11306,0 109.8183,62.00363000000001,0 109.6116,61.89277000000001,0 109.5864,61.82333000000001,0 109.5858,61.77443,0 109.6389,61.76083000000001,0 109.6126,61.71394000000001,0 109.7161,61.67666,0 109.7061,61.64804,0 109.8742,61.53333000000001,0 109.8653,61.49305,0 109.8247,61.47748,0 109.8492,61.43054000000001,0 109.7875,61.32721000000001,0 109.8553,61.29139000000001,0 110.0903,61.27027,0 110.1797,61.15639,0 110.3211,61.14638000000001,0 110.3972,61.18111,0 110.483,61.15971,0 110.5208,61.08138,0 110.4575,61.03667,0 110.448,60.97694000000001,0 110.23,60.81916,0 110.225,60.79610000000002,0 110.2947,60.76999000000001,0 110.2703,60.76222,0 110.2678,60.69194,0 110.04,60.66915,0 110.1222,60.62416,0 110.1178,60.57972,0 110.0389,60.55833,0 110.0219,60.51694,0 109.9164,60.45889,0 109.9519,60.40359999999999,0 109.8611,60.37417000000001,0 109.8789,60.33805,0 109.8055,60.31305,0 109.8069,60.25443,0 109.7264,60.22610000000001,0 109.6936,60.11193,0 109.7164,60.05222000000001,0 109.7694,60.02887000000001,0 109.62,59.90305,0 109.6514,59.86193000000001,0 109.4947,59.75027000000001,0 109.4842,59.68721000000002,0 109.5339,59.64555,0 109.2594,59.4511,0 109.3558,59.41667000000001,0 109.245,59.36306,0 109.2605,59.31694,0 109.5167,59.29193,0 109.5172,59.23082,0 109.5405,59.22083,0 109.5281,59.18027,0 109.6286,59.1511,0 109.6405,59.06166,0 109.7411,59.07194000000001,0 109.8203,58.97971,0 109.9355,59.00917,0 110.2783,58.98194,0 110.3522,59.03582,0 110.4819,59.03334,0 110.5386,59.06221000000001,0 110.5425,59.10556,0 110.5917,59.13110000000001,0 110.5789,59.19166000000001,0 110.6927,59.25777000000001,0 110.9969,59.20805000000001,0 111.0831,59.23944,0 111.1822,59.18332000000001,0 111.3042,59.25694000000001,0 111.4353,59.27388,0 111.6461,59.2061,0 111.7681,59.27805,0 111.9419,59.2711,0 111.9933,59.34470000000001,0 112.2214,59.50361,0 112.2739,59.50444000000001,0 112.2714,59.46638,0 112.3341,59.41694,0 112.2728,59.365,0 112.3075,59.33666000000002,0 112.2839,59.30305,0 112.438,59.33028,0 112.6322,59.31082000000001,0 112.6386,59.26944000000001,0 112.5378,59.23694,0 112.46,59.16166,0 112.4461,58.92805,0 112.5003,58.86999,0 112.6276,58.96118,0 112.5555,59.02665,0 112.5742,59.07168,0 112.6453,59.03249,0 112.7314,59.0872,0 112.8822,59.11833,0 112.9117,59.15499,0 112.9714,59.13444000000001,0 113.2817,59.16109000000001,0 113.4694,59.26500000000001,0 113.4558,59.29889,0 113.4869,59.33333,0 113.4211,59.37665,0 113.4728,59.43860000000001,0 113.6097,59.49527000000001,0 113.5864,59.55915000000002,0 113.6089,59.58111000000001,0 113.7836,59.60999,0 113.8492,59.68832,0 114.0419,59.68054999999999,0 114.0433,59.74110000000001,0 114.1655,59.74582000000002,0 114.3155,59.88361,0 114.5667,59.99777000000001,0 114.5211,60.04527,0 114.5461,60.11388000000001,0 114.6966,60.21998,0 114.8139,60.18054,0 115.013,60.27167,0 115.0906,60.38276000000001,0 115.1891,60.42972000000001,0 115.6755,60.52666,0 115.8428,60.465,0 116.0032,60.45931000000002,0 116.078,60.40417,0 116.6008,60.35722000000001,0 116.7322,60.25777,0 116.84,60.24222,0 116.9736,60.15777,0 117.0444,60.08250000000001,0 117.0486,60.03583,0 117.2975,60.01943,0 117.3089,59.99528,0 117.2333,59.95694,0 117.1139,59.96333,0 117.0572,59.90889,0 117.2275,59.82943,0 117.2008,59.65499,0 117.0844,59.58721,0 117.1966,59.56916,0 117.2361,59.52777,0 117.5989,59.47083,0 117.7583,59.54084000000001,0 117.8189,59.44944000000001,0 117.8836,59.44165,0 117.94,59.45471,0 117.9864,59.53638,0 118.0572,59.58333,0 118.2836,59.61055,0 118.3503,59.58888,0 118.3903,59.51777,0 118.7644,59.4011,0 118.7633,59.38722000000001,0 118.7553,59.33333,0 118.8514,59.28611,0 118.7014,59.21305000000001,0 118.7025,59.06554,0 118.7369,59.02361000000001,0 118.8478,59.01441000000001,0 118.8539,58.94360000000001,0 118.7922,58.9397,0 118.7867,58.8875,0 118.8969,58.81471000000001,0 118.8875,58.69554000000001,0 118.8269,58.61527,0 118.763,58.61249,0 119.1297,58.48249,0 119.1261,58.40833000000001,0 119.0655,58.36388,0 119.1317,58.29027,0 119.1084,58.22268,0 118.803,58.21666000000001,0 118.6475,58.17028000000001,0 118.5614,58.21444,0 118.4892,58.21111,0 118.3072,58.36028000000001,0 118.1354,58.38744,0 118.0639,58.33832000000001,0 118.013,58.39305,0 117.8308,58.4122,0 117.6722,58.40055,0 117.6644,58.3711,0 117.4792,58.31361,0 117.4714,58.28278,0 117.5906,58.18555,0 117.5739,58.13582,0 117.44,58.15721,0 117.4075,58.12721,0 117.4139,58.08749000000001,0 117.3725,58.0611,0 117.3958,58.02610000000001,0 117.3647,57.99554,0 117.3661,57.92749,0 117.4175,57.90666,0 117.31,57.84388000000001,0 117.123,57.84277,0 117.0844,57.80416000000001,0 117.1783,57.73888000000002,0 117.1378,57.63972,0 117.2878,57.61306,0 117.3105,57.56555,0 117.2522,57.51333000000002,0 117.2889,57.45833,0 117.3286,57.45443,0 117.365,57.32778,0 117.4444,57.32972,0 117.4264,57.25861,0 117.4742,57.23778,0 117.5464,57.25999,0 117.5964,57.32333,0 117.7758,57.30249000000001,0 117.7955,57.28722,0 117.7452,57.19583000000001,0 117.5969,57.15332,0 117.6783,57.06666,0 117.6889,57.01444999999999,0 117.6744,56.9747,0 117.57,56.93555000000001,0 117.5728,56.84722,0 117.498,56.87137,0 117.4605,56.81694000000001,0 117.4103,56.82583000000001,0 117.4153,56.85777,0 117.3447,56.86693000000001,0 117.3642,56.91610000000001,0 117.3311,56.9486,0 117.1933,56.87943,0 117.1355,56.80111,0 117.0222,56.81554,0 117.0017,56.79943000000001,0 117.0403,56.77638,0 116.9672,56.78111,0 116.8072,56.72388,0 116.7386,56.76083000000001,0 116.5594,56.7589,0 116.3639,56.84860000000001,0 116.1211,56.81221000000002,0 116.0417,56.86361,0 115.9628,56.86111,0 115.8617,56.93277000000001,0 115.7368,56.95655,0 115.5864,56.87249000000001,0 115.6136,56.78611,0 115.5903,56.71554,0 115.443,56.66388,0 115.4311,56.62823,0 115.4647,56.58971,0 115.6819,56.56527000000001,0 115.6755,56.49277,0 115.7988,56.42968000000001,0 115.7844,56.40193,0 115.6797,56.39721,0 115.6841,56.29694,0 115.7619,56.17416,0 115.8369,56.14943,0 115.7691,56.11694,0 115.7855,56.07193000000001,0 115.7586,56.04111000000001,0 115.898,55.91667000000001,0 115.8419,55.82638000000001,0 115.8683,55.74499,0 115.8411,55.67222000000001,0 115.913,55.6461,0 115.8894,55.49889000000001,0 115.9672,55.44526000000001,0 115.93,55.39694,0 115.9639,55.36555,0 116.0694,55.37944,0 116.1144,55.34749000000002,0 116.4022,55.36082,0 116.4616,55.30555,0 116.4694,55.22748,0 116.6991,55.11472000000001,0 116.7825,55.11028,0 116.8411,55.02138,0 116.8264,54.97860000000001,0 116.8892,54.94165,0 116.8778,54.90527,0 116.9239,54.79554,0 116.8694,54.7686,0 116.8739,54.70416,0 116.7697,54.66109,0 116.77,54.59222,0 116.7144,54.56333000000001,0 116.7119,54.52944,0 116.5372,54.50943,0 116.5228,54.46408,0 116.185,54.50722,0 115.6708,54.42388,0 115.5092,54.36472000000001,0 115.4993,54.30138000000001,0 115.1833,54.18444,0 115.1494,54.12027000000001,0 115.0241,54.07027000000002,0 115.0239,54.03082,0 114.9758,53.99249,0 114.5958,53.90277,0 114.5031,53.80915000000001,0 114.4453,53.80249000000001,0 114.3747,53.81249,0 114.2961,53.74666000000001,0 114.1431,53.75610000000001,0 113.9947,53.71694,0 113.9686,53.69944000000001,0 113.9744,53.64444000000001,0 113.8147,53.61644,0 113.8955,53.53472,0 113.8278,53.4575,0 113.8322,53.38971999999999,0 113.9433,53.35638,0 113.9639,53.31945,0 113.94,53.28444,0 113.9822,53.23305,0 114.048,53.25249,0 114.0464,53.22359,0 114.0925,53.2047,0 114.2017,53.19222,0 114.1269,53.07194,0 114.2314,53.10361000000001,0 114.3253,53.06777,0 114.2814,53.02139,0 114.3172,52.96721,0 114.2322,52.96527,0 114.2422,52.92749,0 114.2144,52.89054000000001,0 114.2422,52.82388,0 114.1236,52.71832,0 113.9542,52.62555,0 113.8978,52.63499,0 113.738,52.57722,0 113.5792,52.45027,0 113.5341,52.49416,0 113.2733,52.47805000000001,0 112.9303,52.33665000000001,0 112.5389,52.34972000000001,0 112.4925,52.25000000000001,0 112.4022,52.20694,0 112.2964,52.25278000000001,0 112.2089,52.24054,0 112.1683,52.30389000000001,0 112.0608,52.27833,0 111.6078,51.92778,0 111.198,51.82361000000001,0 111.1397,51.83527,0 111.015,51.78221000000001,0 111.0019,51.72222,0 110.8414,51.66915000000002,0 110.8639,51.59222,0 110.7817,51.57471,0 110.6961,51.50277,0 110.5447,51.49471,0 110.4205,51.52222,0 110.3947,51.57944,0 110.0491,51.62000000000001,0 109.6789,51.46305,0 109.4289,51.41610000000001,0 109.38,51.34666,0 109.3386,51.39138,0 109.2522,51.36221000000001,0 109.0636,51.50861,0 108.945,51.43999000000002,0 108.743,51.44583000000001,0 108.6208,51.51306,0 108.547,51.47527,0 108.4736,51.34499,0 108.3525,51.26528,0 108.4542,51.22776000000001,0 108.5747,51.11528,0 108.4997,51.05915000000002,0 108.3322,51.04887999999999,0 108.2515,50.83393,0 108.0655,50.75804999999999,0 108.1794,50.65915,0 108.4167,50.61361,0 108.5447,50.52777,0 108.6583,50.53777,0 108.6853,50.50417,0 108.6039,50.45221999999999,0 108.4369,50.46249000000002,0 108.3386,50.40444000000001,0 108.2042,50.41109,0 108.1325,50.31444,0 108.0761,50.35332,0 107.9855,50.33721,0 107.9375,50.22221,0 107.8936,50.19249000000001,0 107.8205,50.20665000000002,0 107.7736,50.15749000000002,0 107.7619,50.10471,0 107.8008,50.09166000000001,0 107.7989,50.02999,0 107.7536,49.97955000000001,0 107.8133,49.94860000000001,0 107.9806,49.94083,0 107.9553,49.85167,0 107.9892,49.74499,0 107.9475,49.68333,0 108.0319,49.67471,0 108.0419,49.61082,0 108.1375,49.55804,0 108.2719,49.53555000000001,0 108.3589,49.44526000000001,0 108.5275,49.34555,0 108.6511,49.33173000000001,0 109.2069,49.36028,0 109.3519,49.33694,0 109.5442,49.23249,0 109.7394,49.23499000000001,0 109.8503,49.18999,0 110.2369,49.16945,0 110.4011,49.25500000000001,0 110.6303,49.15249,0 110.7886,49.14944,0 110.9811,49.20083,0 111.3714,49.37416,0 111.498,49.34916000000001,0 111.6822,49.40665,0 111.9639,49.40694,0 112.4917,49.54138,0 112.7669,49.50083,0 113.0908,49.59859,0 113.1014,49.67888,0 113.2167,49.81917,0 113.5861,50.01639,0 113.7825,50.08693000000002,0 113.8747,50.08693000000002,0 114.1764,50.24833,0 114.313,50.28416,0 114.4439,50.24527,0 114.6758,50.26415999999999,0 114.8542,50.22832,0 115.0236,50.15193,0 115.2053,49.99833,0 115.3964,49.90110000000001,0 115.7547,49.88443000000001,0 116.0697,50.00278,0 116.2461,50.02749000000001,0 116.6155,49.93138,0 116.7114,49.83046000000001,0 117.17,49.6525,0 117.4944,49.62305,0 117.872,49.51022,0 117.8958,49.55,0 118.3658,49.77832000000002,0 118.3855,49.81667000000001,0 118.4647,49.82444,0 118.5833,49.92694,0 119.0996,49.99044,0 119.2141,50.01528,0 119.3222,50.09722000000001,0 119.3481,50.15948,0 119.3289,50.27388000000001,0 119.368,50.30999,0 119.348,50.34833,0 119.1983,50.34527,0 119.1353,50.38972,0 119.2422,50.44526,0 119.2869,50.59389000000001,0 119.5022,50.74221000000001,0 119.5225,50.90499,0 119.7467,51.0736,0 119.7805,51.1661,0 119.7553,51.20750000000001,0 119.818,51.21416,0 119.8097,51.26416,0 119.9208,51.33638,0 119.8914,51.37417,0 119.9566,51.38999,0 119.983,51.49305,0 120.0491,51.54777000000001,0 120.0969,51.66138,0 120.1972,51.68610000000002,0 120.4886,51.8772,0 120.6578,51.9175,0 120.7128,51.98249000000001,0 120.695,52.04860999999999,0 120.7531,52.07917,0 120.7828,52.15526,0 120.7592,52.23916,0 120.6228,52.34026999999999,0 120.6867,52.43361000000001,0 120.7136,52.54472000000001,0 120.4403,52.63722,0 120.1891,52.58028,0 120.073,52.59,0 120.0306,52.61721,0 120.0292,52.76805,0 120.2728,52.85777,0 120.8639,53.27972000000001,0 121.2083,53.27055000000001,0 121.325,53.31833,0 121.4738,53.32382,0 121.83,53.41305,0 122.0261,53.41397,0 122.3144,53.48777,0 122.41,53.43721000000001,0 122.8244,53.45,0 123.1533,53.50054999999999,0 123.2461,53.55305,0 123.4789,53.49917,0 123.4975,53.54694,0 123.5428,53.53388,0 123.5294,53.49944,0 123.6194,53.54277,0 123.6975,53.49583,0 123.9108,53.46471,0 124.1044,53.34083,0 124.2553,53.35665,0 124.4022,53.21221,0 124.6528,53.18581,0 124.7058,53.13443000000001,0 124.805,53.13305,0 124.8516,53.08915,0 124.89,53.09471,0 124.8755,53.14388000000001,0 124.9122,53.16972,0 125.1342,53.19749000000001,0 125.4661,53.08388000000001,0 125.5061,53.03832,0 125.623,53.05,0 125.7289,52.97943,0 125.7191,52.94222,0 125.6486,52.91276,0 125.6469,52.87887000000001,0 125.8447,52.89943000000002,0 125.8592,52.85166000000001,0 125.9705,52.76333,0 126.0508,52.78583,0 126.0955,52.76444,0 126.0355,52.7211,0 126.0642,52.67638,0 125.973,52.64167,0 125.9886,52.58222,0 126.0308,52.56333,0 126.0939,52.58804,0 126.2094,52.50139000000002,0 126.1977,52.46444,0 126.2675,52.4586,0 126.3403,52.38942999999999,0 126.3203,52.30832,0 126.4364,52.28082000000001,0 126.3064,52.20417,0 126.5572,52.13055,0 126.5122,52.03889,0 126.4616,52.02694,0 126.4422,51.98804,0 126.6414,51.74527,0 126.7214,51.7086,0 126.7292,51.63833000000001,0 126.6728,51.57471,0 126.8025,51.53694,0 126.8247,51.50139,0 126.7905,51.42443000000001,0 126.9153,51.37915,0 126.9019,51.33943,0 126.8214,51.33028000000001,0 126.8161,51.26639000000001,0 126.8933,51.23915000000001,0 126.8611,51.30693999999999,0 126.9755,51.31360999999999,0 126.8986,51.18665,0 126.9305,51.05999000000001,0 127.1272,50.91555,0 127.2175,50.78416,0 127.2972,50.73249,0 127.28,50.68083,0 127.3677,50.57083,0 127.2894,50.46027000000001,0 127.3542,50.41332,0 127.3366,50.31027,0 127.5861,50.20856,0 127.5697,50.12833,0 127.4883,50.04221,0 127.4878,49.98055000000002,0 127.5314,49.91972000000001,0 127.5083,49.82,0 127.5419,49.78249000000001,0 127.6717,49.74889000000001,0 127.6914,49.66721,0 127.8214,49.5911,0 127.9744,49.60249000000001,0 128.075,49.54222000000001,0 128.1911,49.53416000000001,0 128.5052,49.58694,0 128.6259,49.56967000000001,0 128.6689,49.61193,0 128.8025,49.55916,0 128.7525,49.46804000000001,0 128.8752,49.47776,0 128.9927,49.44165,0 129.0769,49.35279,0 129.1997,49.39059000000001,0 129.3535,49.3423,0 129.3691,49.41396000000001,0 129.4122,49.43176,0 129.5235,49.39124,0 129.545,49.29318,0 129.7219,49.26626,0 129.7327,49.19294,0 129.8474,49.15796000000001,0 129.833,49.11796,0 129.9127,49.08241,0 129.9164,49.02963,0 130.2289,48.86221,0 130.418,48.8961,0 130.5044,48.85194,0 130.6277,48.87465,0 130.675,48.84415000000001,0 130.523,48.60277,0 130.6175,48.56194000000001,0 130.6269,48.47720000000001,0 130.7578,48.48805,0 130.7375,48.41833,0 130.8322,48.29694,0 130.6594,48.0986,0 130.6814,48.04554,0 130.8897,47.90028,0 130.9461,47.80055,0 130.9464,47.71138,0 131.0405,47.67583,0 131.4167,47.7386,0 131.5372,47.71888,0 131.5755,47.6561,0 131.6783,47.69915000000002,0 131.9194,47.66999,0 132.3411,47.74248999999999,0 132.5425,47.71389000000001,0 132.6597,47.86583,0 132.6714,47.94972000000001,0 132.8089,47.94194,0 132.8844,48.00860999999999,0 133.018,48.03528000000001,0 133.0886,48.10167,0 133.3872,48.10528,0 133.5067,48.07138000000001,0 133.5936,48.17249,0 133.6964,48.18694,0 133.7514,48.24972,0 133.978,48.25972000000001,0 134.0458,48.32528000000001,0 134.4153,48.39112,0 134.4827,48.35028,0 134.5718,48.36446000000001,0 134.6105,48.30694,0 134.7408,48.26712,0 134.6814,48.22055,0 134.6678,48.10722,0 134.5839,48.06276,0 134.5572,47.99471000000001,0 134.5988,47.90471,0 134.6619,47.87417,0 134.6844,47.80090000000001,0 134.7703,47.73944,0 134.7672,47.7075,0 134.6836,47.62972,0 134.6741,47.57194,0 134.5521,47.46692,0 134.4791,47.42778,0 134.3147,47.4211,0 134.1825,47.32332000000001,0 134.1478,47.24942999999999,0 134.1947,47.20665000000001,0 134.2222,47.11083000000001,0 134.1312,47.07423,0 134.0627,46.97527000000001,0 134.0669,46.9161,0 134.0119,46.82389,0 134.0438,46.75289999999999,0 133.9977,46.64016,0 133.9016,46.57222,0 133.8458,46.47554000000001,0 133.85,46.43999,0 133.9286,46.39249,0 133.8619,46.33138,0 133.9102,46.31444,0 133.8839,46.29361,0 133.9002,46.25031000000001,0 133.6869,46.14332,0 133.7247,46.06528,0 133.6605,45.93458,0 133.6108,45.93194,0 133.583,45.87137,0 133.5222,45.88665,0 133.4747,45.82027999999999,0 133.508,45.77777,0 133.4419,45.69804,0 133.4886,45.68277000000001,0 133.4533,45.64722,0 133.4683,45.62222,0 133.4191,45.60722,0 133.4171,45.5691,0 133.1905,45.50416000000001,0 133.1491,45.45083000000001,0 133.0925,45.24415,0 133.1222,45.12860000000001,0 133.0333,45.06167,0 132.9233,45.02194000000001,0 131.9886,45.24194,0 131.8647,45.34555,0 131.7536,45.21305000000001,0 131.6464,45.19887,0 131.6444,45.10555,0 131.4666,44.96721,0 131.35,44.97471,0 131.2125,44.91055,0 131.118,44.92583,0 131.0425,44.86333,0 130.9539,44.8461,0 131.0955,44.69137,0 131.298,44.05194,0 131.2472,44.0275,0 131.2311,43.97387,0 131.2461,43.91806,0 131.1991,43.81889,0 131.2205,43.59527,0 131.1889,43.53666,0 131.1944,43.52777,0 131.223,43.51167,0 131.3044,43.45583,0 131.3114,43.39222,0 131.2741,43.36333,0 131.2611,43.26445,0 131.1911,43.19665,0 131.2144,43.13305,0 131.1047,43.03611,0 131.1322,42.91916,0 131.0458,42.90193,0 131.0153,42.855,0 130.8186,42.87610000000001,0 130.7705,42.83194,0 130.638,42.83167,0 130.4052,42.71804,0 130.4589,42.67999,0 130.5389,42.68194,0 130.6052,42.61971000000001,0 130.618,42.57944000000001,0 130.5591,42.50667000000001,0 130.6044,42.42186,0 130.5675,42.44305,0 130.5147,42.60222,0 130.4614,42.59389,0 130.4725,42.55694,0 130.4372,42.545,0 130.4255,42.60222,0 130.2433,42.71833,0 130.2522,42.89249,0 130.1008,42.91194,0 130.1358,42.96221,0 130.1075,42.97833,0 129.9996,42.96142,0 129.9075,43.00581,0 129.8756,42.9897,0 129.9056,42.96999,0 129.8512,42.95998,0 129.7578,42.72971,0 129.7533,42.69415,0 129.7875,42.675,0 129.7427,42.64083,0 129.7608,42.60332,0 129.725,42.56139,0 129.7119,42.44415,0 129.5908,42.44526,0 129.5397,42.36361,0 129.4422,42.43443000000001,0 129.3419,42.44583,0 129.3441,42.41471,0 129.24,42.37417,0 129.2377,42.32194,0 129.1905,42.31333,0 129.2244,42.29639,0 129.1758,42.23499,0 129.2102,42.21721,0 129.0141,42.0942,0 128.9577,42.08111,0 128.9122,42.0211,0 128.7291,42.04695,0 128.4894,41.99555,0 128.2825,42.03916,0 128.0589,42.00332,0 128.1019,41.7961,0 128.3019,41.57778,0 128.2044,41.41667000000001,0 128.1127,41.36971,0 128.1061,41.39415,0 128.0441,41.38943,0 128.0475,41.41888,0 128.0208,41.4086,0 128.0008,41.44555,0 127.9814,41.42276,0 127.8739,41.43943,0 127.8583,41.40444,0 127.6475,41.40277,0 127.5572,41.42972,0 127.5391,41.46361,0 127.2708,41.4725,0 127.2872,41.50111,0 127.1022,41.53528,0 127.1786,41.58749,0 127.057,41.64351,0 127.04,41.67194,0 127.078,41.68194,0 127.0453,41.72444,0 126.9364,41.76305,0 126.9361,41.79444,0 126.7975,41.7311,0 126.7869,41.69222,0 126.6947,41.74027,0 126.6789,41.72444,0 126.7222,41.69804000000001,0 126.6151,41.66418,0 126.5633,41.61092,0 126.5844,41.56860000000001,0 126.5008,41.43194,0 126.5272,41.3575,0 126.4561,41.35722,0 126.2792,41.15277,0 126.1239,41.08111,0 126.1322,41.04416000000001,0 126.0733,40.97305,0 125.9775,40.91331,0 126.0169,40.89999,0 125.8786,40.89472,0 125.8214,40.86139,0 125.7619,40.88361,0 125.6531,40.82166,0 125.6803,40.76554,0 125.5641,40.77832,0 125.5447,40.7186,0 125.4642,40.7136,0 125.4058,40.62082,0 125.2861,40.64749,0 125.248,40.60388,0 125.0178,40.53082,0 125.04,40.45722,0 124.8805,40.47054,0 124.8328,40.40915,0 124.7433,40.37,0 124.7084,40.30505,0 124.5547,40.24222000000001,0 124.3736,40.09361,0 124.3702,40.0028,0 124.1097,39.48034,0 124.1097,37.96414,0 124.1097,32.96414,0 127.5079,32.96414,0 127.5079,32.5252,0 127.5079,27.5252,0 122.8135,27.5252,0 122.8135,23.56643,0 127.5079,23.5489,0 127.5079,23.43974,0 127.5079,18.43974,0 127.5079,13.43974,0 127.5079,8.439740000000001,0 127.5079,3.439736,0 127.1436,2.912129,0 124.3024,-1.202193,0 124.3024,-3.067723,0 125.441,-3.067723,0 125.441,-7.306758,0 127.3328,-7.298002000000002,0 127.3328,-8.906616,0 127.3328,-13.90662,0 127.3967,-13.965,0 127.4278,-13.95666,0 127.4466,-14.05916,0 127.5044,-14.06334,0 127.6136,-14.13611,0 127.7605,-14.30055,0 127.8228,-14.38694,0 127.8247,-14.44444,0 127.865,-14.42056,0 127.8514,-14.48222,0 127.8855,-14.47277,0 127.9494,-14.52667,0 127.9453,-14.57639,0 128.0036,-14.56111,0 128.0697,-14.64584,0 128.2153,-14.69975,0 128.3259,-14.71017,0 128.3877,-14.79719,0 128.5417,-14.75778,0 129,-14.87108,0 129.0006,-16.0049,0 129.0032,-21.0049,0 129.0059,-26.0049,0 129.0052,-26.69261,0 129.0003,-31.69261,0 128.2483,-32.01084,0 128.0039,-32.09223,0 127.7539,-32.1286,0 127.508,-32.22667,0 127.508,-33.42665,0 127.508,-38.42665,0 127.508,-43.42665,0 127.508,-48.42665000000001,0 127.508,-53.42665000000001,0 127.508,-58.42665,0 127.508,-63.42665,0 127.508,-68.42665,0 127.508,-72.02666000000001,0 127.508,-77.02666000000001,0 127.508,-82.02666000000001,0 127.508,-84.89999,0 127.508,-89.90000000000001,0 126.57,-89.90000000000001,0 125.632,-89.90000000000001,0 124.694,-89.90000000000001,0 123.7561,-89.90000000000001,0 122.8181,-89.90000000000001,0 121.8801,-89.90000000000001,0 120.9422,-89.90000000000001,0 120.0042,-89.90000000000001,0 119.0662,-89.90000000000001,0 118.1282,-89.90000000000001,0 117.1903,-89.90000000000001,0 116.2523,-89.90000000000001,0 115.3143,-89.90000000000001,0 114.3764,-89.90000000000001,0 113.4384,-89.90000000000001,0 112.5004,-89.90000000000001,0 112.5004,-89.43648,0 112.5004,-84.43648,0 112.5004,-79.43648,0 112.5004,-74.43648,0 112.5004,-69.43648000000002,0 112.5004,-64.43649000000001,0 112.5004,-59.43648,0 112.5004,-54.73646999999999,0 112.5004,-49.73648,0 112.5004,-44.73647,0 112.5004,-39.73648000000001,0 112.5004,-39.63649,0 112.5004,-34.63648,0 112.5004,-29.63648,0 112.5004,-24.63648,0 112.5004,-19.63648,0 112.5004,-14.63648,0 112.5004,-9.636480000000001,0 115.767,-9.636480000000001,0 115.767,-7.548669,0 116.3209,-7.548669,0 116.3209,-5.205232,0 112.5004,-5.205232,0 112.5075,-3.479589,0 112.2021,-3.4867,0 111.9465,-3.62872,0 111.7903,-3.600316,0 111.7335,-3.536407,0 111.7903,-3.387277000000001,0 111.7761,-3.074815,0 111.3358,-3.032208,0 111.0162,-3.124531,0 110.9097,-3.138724,0 110.7819,-3.103219000000001,0 110.6754,-3.138724,0 110.5049,-2.996703999999999,0 110.3061,-3.060612,0 110.1712,-3.032208,0 110.0646,-2.925694000000001,0 110.1143,-2.499607,0 110.0717,-2.258163,0 110.093,-2.030923,0 110.0504,-1.952803,0 109.9297,-1.917289,0 109.8729,-1.839177,0 109.8942,-1.746865,0 109.9865,-1.682947,0 110.0433,-1.363393,0 109.7664,-1.207152,0 109.461,-1.349182,0 109.39,-1.285273,0 109.4255,-1.022518,0 109.2622,-0.9018005000000001,0 109.106,-0.5467235,0 109.0207,-0.2484725,0 109.113,0.02848446,0 109.0775,0.2344225,0 108.8929,0.2912305000000001,0 108.829,0.4758655000000001,0 108.6586,0.7457215000000002,0 108.6657,0.8522364,0 108.7438,0.8593374000000001,0 108.9071,1.086578,0 108.9071,1.1789,0 109.0278,1.363535,0 109.0278,1.491362,0 109.0775,1.576584,0 109.2409,1.725713,0 109.3237,1.966571,0 109.3237,4.869648,0 105.1191,4.869648,0 105.132,2.002301,0 104.3122,1.346534,0 103.9265,1.256534,0 103.7561,1.185812,0 103.5311,1.234025,0 103.4122,1.301534,0 103.2418,1.45583,0 103.2097,1.584413,0 102.9461,1.719422,0 102.8175,1.831931,0 102.6921,1.831931,0 102.5378,2.01195,0 102.3418,2.134089,0 102.1489,2.208024,0 101.9303,2.391254,0 101.8499,2.362329,0 101.8371,2.442689,0 101.7567,2.561625,0 101.5188,2.654846,0 101.416,2.786633,0 101.2906,2.815568,0 101.2038,2.93129,0 101.2167,3.040577,0 101.2874,3.114522,0 101.1781,3.345965,0 100.9499,3.657770000000001,0 100.5031,3.976011000000001,0 100.5673,4.663917,0 100.5095,4.824638,0 100.4195,4.901795,0 100.3311,5.074793,0 100.1688,5.261129,0 100.1668,5.375079,0 99.72359,6.164054,0 99.64923,6.352362,0 99.63088000000001,6.427682,0 99.84238000000002,6.479837,0 100.1271,6.424946000000001,0 100.1714,6.476660000000001,0 100.1958,6.702497,0 100.2939,6.703892,0 100.3344,6.586946000000001,0 100.3875,6.536106,0 100.4989,6.523056000000001,0 100.6611,6.4475,0 100.7542,6.501942,0 100.7655,6.451946,0 100.8336,6.419447,0 100.8575,6.234444,0 100.9514,6.239717000000001,0 100.9897,6.277500000000001,0 101.0333,6.243894,0 101.1155,6.248888000000001,0 101.1216,6.187221,0 101.0755,6.150555,0 101.12,6.098337,0 101.1194,5.984441,0 101.1014,5.92695,0 101.0358,5.896106,0 100.9902,5.788053,0 101.1458,5.631111,0 101.2561,5.705837,0 101.2897,5.810553,0 101.3516,5.808339,0 101.57,5.916663,0 101.6589,5.860557,0 101.6916,5.763608,0 101.7625,5.788889,0 101.8339,5.743340000000001,0 101.9438,5.861942,0 101.9483,5.969448,0 102.0916,6.110559,0 102.0952,6.236135,0 102.5034,6.235613,0 107.5034,6.229232,0 112.5034,6.222851,0 112.5076,9.711738,0 112.5137,14.71173,0 110.1489,14.71173,0 107.9865,18.50449,0 107.9893,21.3862,0 108.0038,21.44677,0 108.0824,21.49174,0 107.99,21.54241,0 107.948,21.54195,0 107.8586,21.65083,0 107.7831,21.66693,0 107.5361,21.58638,0 107.4858,21.59778,0 107.4578,21.65833,0 107.3627,21.60526,0 107.3014,21.73111,0 107.2208,21.70832,0 107.0203,21.8225,0 107.0491,21.90722,0 107.0292,21.93666,0 106.9327,21.92749,0 106.9017,21.97056,0 106.8086,21.97361,0 106.7553,22.01527000000001,0 106.6794,21.97389,0 106.7033,22.08972,0 106.6653,22.19944,0 106.6958,22.2225,0 106.6583,22.32444,0 106.5655,22.34583,0 106.5517,22.45682,0 106.6072,22.60695,0 106.6386,22.61416,0 106.6761,22.57277,0 106.7128,22.58666,0 106.7669,22.74249,0 106.8217,22.80028,0 106.7614,22.79471,0 106.7072,22.865,0 106.648,22.85333,0 106.6005,22.90917,0 106.5203,22.93528,0 106.4194,22.87056,0 106.285,22.8586,0 106.25,22.87416,0 106.2294,22.95083,0 106.1347,22.98861,0 106.0153,22.98472,0 105.9872,22.93583,0 105.8725,22.91027,0 105.7244,23.04805,0 105.5775,23.05916,0 105.5657,23.09678,0 105.5544,23.16028,0 105.4458,23.28445,0 105.398,23.28167,0 105.3275,23.37803,0 105.2647,23.33416,0 105.2405,23.26055,0 105.0811,23.24222,0 104.9619,23.16556,0 104.9075,23.18027,0 104.8763,23.11084,0 104.825,23.10611,0 104.8611,22.93666,0 104.7314,22.81666,0 104.6044,22.80972,0 104.5836,22.84472,0 104.37,22.68583,0 104.2619,22.73777,0 104.2672,22.82919,0 104.1116,22.79972,0 104.0331,22.68527,0 104.0097,22.52424,0 103.9644,22.49911,0 103.6553,22.7825,0 103.6178,22.78,0 103.5636,22.70138,0 103.5842,22.64416,0 103.5224,22.58437,0 103.4569,22.64249,0 103.4305,22.74388,0 103.3289,22.79500000000001,0 103.28,22.67304,0 103.1839,22.62888,0 103.1556,22.58666,0 103.1708,22.54694,0 103.0761,22.49833,0 103.0725,22.44749,0 103.0305,22.43555,0 102.9286,22.48194000000001,0 102.8628,22.60139,0 102.6103,22.72278,0 102.5603,22.69749,0 102.5428,22.74889,0 102.4797,22.77389,0 102.4261,22.68832,0 102.383,22.67749,0 102.4164,22.63583,0 102.2697,22.49166,0 102.2533,22.41471,0 102.1867,22.43,0 102.1407,22.39628,0 102.1147,22.43389000000001,0 102.0308,22.45527,0 101.92,22.43611,0 101.8755,22.38305,0 101.8,22.48943,0 101.738,22.49694,0 101.6719,22.44639000000001,0 101.6805,22.37917,0 101.6269,22.28166,0 101.57,22.27917,0 101.5389,22.24417,0 101.5969,22.16166,0 101.5744,22.10917,0 101.6255,21.97193,0 101.7086,21.92889,0 101.7847,21.825,0 101.7525,21.72443,0 101.7831,21.65083,0 101.8331,21.62138,0 101.763,21.57833,0 101.7775,21.515,0 101.7489,21.48194,0 101.7392,21.31639,0 101.8514,21.24916,0 101.838,21.21111,0 101.7822,21.20693,0 101.7872,21.14417,0 101.73,21.13972,0 101.67,21.19971,0 101.6075,21.18027,0 101.6153,21.22833,0 101.5686,21.24749,0 101.2819,21.18027,0 101.2283,21.31222,0 101.2653,21.37611,0 101.1936,21.41277,0 101.2164,21.54556,0 101.1482,21.57264,0 101.1686,21.63028,0 101.1053,21.77138,0 100.8867,21.68333,0 100.6667,21.47943,0 100.485,21.45833,0 100.43,21.52861,0 100.3789,21.53889,0 100.2039,21.43535,0 100.1239,21.50472,0 100.1061,21.58333,0 100.1719,21.65388,0 100.125,21.69056000000001,0 100.0022,21.69611,0 99.97360000000001,21.73388,0 99.94193000000001,21.825,0 99.99054,21.95833,0 99.96805000000002,22.05027,0 99.88055,22.06145,0 99.84388,22.02332,0 99.74915,22.07527,0 99.70914999999999,22.03972,0 99.64444,22.09917,0 99.52164999999999,22.1,0 99.46555000000002,22.13583,0 99.35942,22.09306,0 99.23248,22.11444,0 99.16277,22.15916,0 99.20055000000001,22.17333,0 99.18221000000001,22.195,0 99.27054,22.34777,0 99.26082,22.39111,0 99.38442000000001,22.50389,0 99.38499,22.60333,0 99.32805000000001,22.74472,0 99.44053,22.865,0 99.44553000000003,22.94972,0 99.51416,22.91222000000001,0 99.56638000000001,22.93805,0 99.50388,23.08972,0 99.35638,23.13499,0 99.11109999999999,23.10194,0 99.06137000000001,23.12361,0 99.05888,23.1675,0 98.88136,23.18805,0 98.94025000000002,23.31361,0 98.87886,23.32972,0 98.91859000000001,23.36472,0 98.91470000000001,23.41722,0 98.87997,23.4836,0 98.82471000000001,23.48083,0 98.80609000000001,23.54167,0 98.88582,23.61333000000001,0 98.81915000000001,23.70556,0 98.81554000000001,23.76722,0 98.68858000000002,23.80139000000001,0 98.70387000000002,23.95138,0 98.67720000000001,23.96805,0 98.89391000000001,24.09795,0 98.89072,24.16008,0 98.59703,24.07648,0 98.54462,24.1257,0 98.44659000000002,24.13496,0 98.35732000000002,24.10319000000001,0 98.22078000000001,24.12531,0 98.06448,24.0891,0 97.91249000000001,24.02666,0 97.85249000000002,23.95832,0 97.78831,23.94888,0 97.64998,23.8517,0 97.53637000000001,23.95056,0 97.72470000000001,24.11806,0 97.74970999999999,24.16999,0 97.72749,24.22499,0 97.75999000000002,24.2575,0 97.74165000000002,24.29027,0 97.6647,24.3061,0 97.66888,24.34166000000001,0 97.71776000000001,24.35833,0 97.66526,24.44416,0 97.53082000000001,24.44749,0 97.56248000000001,24.57111,0 97.55247,24.74304,0 97.68941000000001,24.83445,0 97.80025999999999,24.85139,0 97.73665000000003,24.91888,0 97.72581,25.06472,0 97.72331000000003,25.06944,0 97.78943,25.1375,0 97.83333,25.25916000000001,0 97.94108000000001,25.21416,0 98.06944,25.31444,0 98.10746,25.38722,0 98.1386,25.38694,0 98.12497999999999,25.50584,0 98.16804999999999,25.55027,0 98.16526,25.62277,0 98.32665000000002,25.55167000000001,0 98.38305,25.59195,0 98.39166,25.65666,0 98.53083,25.84555,0 98.63193,25.80111,0 98.71638000000002,25.87749,0 98.64166,25.98444,0 98.60525,25.98861,0 98.56805,26.12306,0 98.64888000000001,26.15166,0 98.66443,26.09833,0 98.73055000000002,26.17722,0 98.70110000000001,26.25195,0 98.66582,26.26056000000001,0 98.73748999999999,26.38694,0 98.77554000000001,26.60583000000002,0 98.75555,26.72417,0 98.77777,26.79167,0 98.7397,26.86416,0 98.76221,27.06445,0 98.70694,27.09778,0 98.69166,27.20193,0 98.73665,27.32917000000001,0 98.68552,27.46611,0 98.70471000000001,27.5825,0 98.66804999999999,27.61944,0 98.59471000000002,27.59971000000001,0 98.55110000000001,27.66693,0 98.52164999999999,27.64667,0 98.43248000000001,27.68944,0 98.40860000000001,27.55750000000002,0 98.36887,27.52944,0 98.31638,27.54194,0 98.22693000000002,27.73471,0 98.23248,27.82471,0 98.16692000000001,27.87055,0 98.20387000000001,27.91638,0 98.13082,27.96916,0 98.15776,28.11333,0 98.13621999999999,28.15632,0 98.06944,28.21138,0 98.01304,28.21472,0 98.01888,28.27832,0 97.90886999999999,28.37638,0 97.79694000000001,28.34916,0 97.71138000000001,28.51694,0 97.63136,28.48416,0 97.56944,28.54888,0 97.47083000000001,28.39111,0 97.46887000000001,28.29611,0 97.41054,28.2925,0 97.34887000000002,28.22278,0 97.13499000000002,28.38138,0 96.98471000000001,28.3325,0 96.88970999999999,28.37861,0 96.78415,28.37306,0 96.65387,28.46749,0 96.46053000000001,28.42194,0 96.40192,28.35111,0 96.39694000000002,28.35333,0 96.36165000000001,28.39278,0 96.26471000000001,28.41527,0 96.36638000000001,28.48082000000001,0 96.34526,28.55695,0 96.47832,28.63861,0 96.47083000000001,28.68833,0 96.60609000000001,28.73944,0 96.61582000000001,28.79027,0 96.51027000000001,28.96444,0 96.47581000000001,28.97472,0 96.51194000000001,29.07,0 96.34387,29.0325,0 96.16914,28.90361,0 96.14861000000001,28.94333,0 96.18222000000002,28.99527,0 96.11913,29.07916000000001,0 96.25665000000001,29.16444,0 96.34860000000001,29.18,0 96.39525999999999,29.25527,0 96.36249000000001,29.29055,0 96.28943,29.24139,0 96.23526000000001,29.25445,0 96.08389,29.46777000000001,0 95.59108999999999,29.255,0 95.53442,29.21167,0 95.54665,29.13861,0 95.49609000000001,29.14083000000001,0 95.46053000000001,29.05167,0 95.38777,29.03527,0 94.98471000000001,29.17361,0 95.00915999999999,29.12388,0 94.83335,29.16837,0 94.79227,29.2608,0 94.69736,29.33652,0 94.64751,29.33347,0 94.5812,29.23153,0 94.42776000000002,29.21551,0 94.23455,29.07348,0 94.15246000000002,28.9307,0 94.0211,28.83603,0 94.01243,28.74736,0 93.96173,28.6692,0 93.98059000000001,28.64518,0 93.85851000000001,28.69038,0 93.64729,28.64746,0 93.50206000000001,28.67916,0 93.49408,28.65192,0 93.35194000000001,28.61877000000001,0 93.28152000000002,28.49296,0 93.19270000000002,28.43213,0 93.23817000000001,28.38745,0 93.22205000000001,28.3193,0 93.04571,28.31026,0 93.01044000000003,28.24225,0 92.99153,28.26286,0 92.88734000000001,28.19872000000001,0 92.84125,28.1888,0 92.83004000000001,28.21276,0 92.75290000000001,28.16892,0 92.67525000000001,28.08071,0 92.72838000000002,28.03598,0 92.69942000000002,27.95555,0 92.45248000000001,27.82639,0 92.4147,27.86028,0 92.38666000000002,27.80472,0 92.35831000000003,27.84443,0 92.33110000000001,27.79472,0 92.26804,27.87472,0 92.25388,27.81582,0 92.11832000000003,27.8125,0 92.01443,27.73471,0 91.65776,27.76472,0 91.66721,27.94194,0 91.41943000000001,28.01056,0 91.31499,28.09667,0 91.21444,28.07305,0 91.08693,27.96999,0 91.01082000000001,27.98,0 90.90998999999999,28.04944,0 90.69942,28.09583,0 90.60804,28.06445,0 90.37053000000002,28.08027,0 90.35027,28.11222,0 90.39554000000001,28.19888,0 90.38165000000001,28.25139,0 90.00002000000002,28.32405,0 89.95027,28.29222,0 89.89388,28.30611,0 89.79276000000002,28.19416,0 89.6236,28.15833,0 89.48749000000001,28.05777,0 89.35999,27.87167000000001,0 89.22553000000001,27.795,0 89.12804,27.62333,0 89.12581,27.5675,0 88.97110000000001,27.47361,0 88.91692000000001,27.32083,0 88.78333000000001,27.43805,0 88.76331999999999,27.54333,0 88.83443,27.66111,0 88.88081,27.83667,0 88.83167,28.01334,0 88.62276,28.11805,0 88.53415,28.02917,0 88.14554,27.95527,0 88.12053,27.90471000000001,0 88.14279999999999,27.86605,0 87.86887,27.91888,0 87.79721000000001,27.83722,0 87.72054,27.805,0 87.66054,27.82888,0 87.59775999999999,27.81027,0 87.5461,27.84583,0 87.39360000000001,27.80916,0 87.40416999999999,27.86055,0 87.30609,27.81639,0 87.19275,27.82306,0 87.03943000000001,27.96083,0 86.93304000000002,27.95055,0 86.87415,28.01777,0 86.76416,28.02666,0 86.75805,28.08027,0 86.68637,28.11222,0 86.63666000000001,28.08555,0 86.57193,28.10583000000001,0 86.53498999999999,27.95499,0 86.44498,27.90805,0 86.22638000000001,28.00667,0 86.18359,28.16388,0 86.0936,28.08611,0 86.13721,27.93194,0 86.08942999999999,27.89083000000001,0 86.01443,27.88277,0 85.97304,27.91583,0 85.97803999999999,27.98972,0 85.91887,28.03333,0 85.88611,28.15167,0 85.74722,28.23693000000001,0 85.71832000000002,28.33943,0 85.61998,28.25111,0 85.45889,28.30166,0 85.37665,28.26361,0 85.10332,28.31639,0 85.10193,28.44666,0 85.18192999999999,28.53,0 85.18996,28.60332,0 85.05998,28.64111,0 84.95470000000002,28.54416,0 84.84663999999999,28.54445,0 84.7747,28.59888,0 84.70610000000001,28.60139,0 84.70663999999999,28.66055,0 84.63639000000001,28.70277000000002,0 84.48109,28.73667,0 84.39554,28.85917,0 84.23693000000002,28.91888000000001,0 84.2561,29.04222,0 84.20249,29.05695,0 84.15833000000001,29.13472,0 84.18552,29.20556,0 84.13667,29.21443,0 84.11388000000001,29.26194,0 83.91249000000001,29.28972,0 83.72054,29.22889,0 83.67192,29.16027,0 83.55277,29.18583,0 83.52748,29.26916,0 83.38054,29.41638,0 83.37916,29.46611,0 83.34610000000001,29.49666,0 83.28442,29.47443,0 83.28306000000001,29.55111000000001,0 83.19525,29.63083,0 83.11749,29.62056000000001,0 83.09276,29.58305,0 82.9922,29.6725,0 82.90860000000001,29.69444,0 82.85525000000001,29.66889000000002,0 82.71053000000001,29.78972,0 82.71554999999999,29.83194,0 82.65581,29.83527000000001,0 82.55775,29.94277,0 82.23109,30.07527,0 82.17776000000001,30.06361,0 82.15027000000001,30.12556,0 82.17859,30.19055,0 82.10721,30.23083,0 82.10054,30.34222000000001,0 81.80304,30.36361,0 81.63721,30.42444,0 81.55775,30.38194,0 81.54192000000001,30.33056,0 81.42110000000001,30.38528,0 81.37777,30.16667,0 81.29082,30.13055,0 81.30193,30.08361,0 81.22360000000001,30.01027,0 81.10971000000001,30.02472,0 81.02536000000001,30.20436,0 80.99888,30.26194,0 80.80386,30.32666,0 80.75194999999999,30.395,0 80.60693000000001,30.47472,0 80.53888000000001,30.46443,0 80.32193,30.56472,0 80.20699999999999,30.57552,0 80.22776,30.62193,0 80.18749,30.67583000000001,0 80.25027,30.73999,0 80.17831,30.79945,0 80.09415,30.78666000000001,0 80.04192000000001,30.84694,0 79.94981,30.8849,0 79.87916,30.95916,0 79.74887,30.98972,0 79.59943,30.93556,0 79.49413,31.02416,0 79.42249,31.0275,0 79.39324000000001,31.10106,0 79.31499,31.13305,0 79.28665,31.22333,0 79.24026000000001,31.24417,0 79.21748,31.34083,0 79.09248,31.4375,0 79.01859,31.41138,0 79.00555,31.32555,0 78.94193,31.36,0 78.87766000000001,31.29163,0 78.77054,31.305,0 78.79276000000002,31.44333,0 78.71278,31.49833,0 78.84387,31.60417,0 78.79053999999999,31.67472,0 78.74249,31.68499,0 78.69247,31.77417,0 78.74507,31.91036,0 78.7711,31.98111,0 78.68053000000001,32.03527,0 78.54471000000001,32.20943,0 78.47593999999999,32.24305,0 78.47832,32.34999,0 78.44971,32.38694,0 78.4772,32.42471,0 78.39722,32.53111,0 78.42054,32.5661,0 78.6386,32.57778,0 78.70443,32.6311,0 78.76055,32.63556,0 78.78027,32.47887,0 78.97110000000001,32.35082,0 79.09915,32.37638,0 79.13164999999999,32.47499,0 79.25317000000001,32.516,0 79.31386999999999,32.49665,0 79.45722000000001,32.60249,0 79.51443,32.67222,0 79.53027,32.75416,0 79.47083000000001,32.79388,0 79.45027,32.88221,0 79.35609,32.965,0 79.40637,33.16166,0 79.18387,33.22582,0 79.10359,33.21971,0 79.09137,33.27499,0 78.99638000000002,33.31499,0 78.93651,33.408,0 78.91582,33.62944,0 79.04082,33.63943,0 79.01944,33.75444000000001,0 78.94941,33.83221,0 78.90886999999999,33.97028,0 78.97527,34.01721,0 79.42915000000001,34.02166,0 79.5247,34.11805,0 79.51166000000001,34.19027,0 79.57805000000001,34.2086,0 79.53915000000002,34.42999,0 79.72275999999999,34.42054,0 79.7636,34.45499,0 79.7247,34.52999,0 79.84387,34.57444,0 79.8875,34.66276000000001,0 80.07138000000001,34.66945,0 80.10248,34.7747,0 80.20166999999999,34.89388,0 80.19026,35.08764,0 80.29803,35.2075,0 80.28943,35.33999,0 80.38666000000001,35.42528,0 80.38388000000001,35.51111,0 80.29776,35.50333,0 80.2741,35.52753,0 80.20663999999999,35.56193,0 80.14776999999999,35.45722,0 80.05749,35.40777,0 79.96416000000001,35.59583,0 79.91914,35.61749,0 79.85887,35.5661,0 79.81303,35.62943,0 79.69359,35.65083,0 79.63443000000001,35.75916,0 79.65886999999999,35.81916,0 79.58109000000002,35.86971,0 79.46193,35.85804,0 79.43803000000001,35.96054000000001,0 79.32832999999999,35.98638,0 78.93442,35.89249,0 78.74193,35.92027,0 78.62553,35.81666,0 78.29915,35.70194,0 78.17221000000001,35.61943,0 78.13694,35.54333,0 77.97248999999999,35.57417000000001,0 77.92470000000002,35.48972,0 77.82393,35.50133000000001,0 77.7011,35.46111,0 77.43137,35.47165,0 77.30803000000002,35.53472,0 77.18747999999999,35.52805,0 77.07555000000001,35.58777,0 76.91443,35.59777,0 76.86415,35.64888,0 76.77805000000001,35.65526,0 76.7122,35.715,0 76.58971000000001,35.75695,0 76.56416,35.91276,0 76.42165,35.8336,0 76.17693,35.81444,0 76.12387,35.97776,0 75.97275999999999,36.01165,0 75.92609,36.07721,0 75.92303,36.1236,0 75.99387,36.15971,0 75.99359,36.20833,0 76.04166000000001,36.23751,0 75.99082,36.31444,0 76.00499000000001,36.4586,0 75.85526000000002,36.66717,0 75.63916,36.76355,0 75.54637,36.76963,0 75.52303000000001,36.72906,0 75.45444000000001,36.73044,0 75.39722,36.91406000000001,0 75.14444,36.99987,0 74.95972,36.98012,0 74.90166000000001,36.91093,0 74.81749000000001,37.02176000000001,0 74.73943,37.02037,0 74.69081,37.06259,0 74.56543000000001,37.02782,0 74.40054000000001,37.13896,0 74.39722,37.17841,0 74.47942999999999,37.17925,0 74.52970999999999,37.24178,0 74.65109,37.23457,0 74.75110000000001,37.30375,0 74.8111,37.22041,0 74.91575,37.23733,0 74.95804,37.28183,0 75.09665,37.32186,0 75.11109999999999,37.38353,0 75.18747999999999,37.40658,0 74.94942,37.56298,0 74.90277,37.64715,0 74.99109000000001,37.78382,0 74.90277,37.84717,0 74.93665000000001,37.88884,0 74.90833000000001,37.91049,0 74.91361000000001,38.01772,0 74.8147,38.07883,0 74.79443000000001,38.30603,0 74.8647,38.38882,0 74.85664,38.47048,0 74.78859,38.52742,0 74.71833,38.5291,0 74.35471,38.67439,0 74.13415999999999,38.67326,0 74.11081,38.6216,0 74.06052,38.60465,0 74.06887999999999,38.53659,0 73.93665,38.54105000000001,0 73.81776000000001,38.6077,0 73.80219,38.64983,0 73.75776999999999,38.73021,0 73.7625,38.80076,0 73.70499,38.88076,0 73.85332,38.96909,0 73.72165,39.08244,0 73.6172,39.23215,0 73.66998,39.34409,0 73.65569000000001,39.45483,0 73.84805,39.47493000000001,0 73.90248,39.56966,0 73.95609000000002,39.59771000000001,0 73.91080000000001,39.7252,0 73.84444000000001,39.75576,0 73.84498000000002,39.8055,0 73.99442999999999,40.04605000000001,0 74.19803,40.11383,0 74.36219,40.09965,0 74.73054999999999,40.33966,0 74.88443,40.32771,0 74.81026000000001,40.4198,0 74.86026,40.51939000000001,0 75.05888,40.44772,0 75.16137000000001,40.47022,0 75.22554,40.44688,0 75.57805000000001,40.64799,0 75.62276,40.59799,0 75.64554,40.4866,0 75.69664,40.44494,0 75.66137000000001,40.39827,0 75.6972,40.29911,0 75.92886,40.30550000000001,0 75.97803999999999,40.36327,0 76.06805,40.39577,0 76.19414,40.37799,0 76.27748,40.45438,0 76.33859,40.34855,0 76.48693,40.43105,0 76.55304,40.54411,0 76.63943,40.60856,0 76.64971,40.74494,0 76.79359,40.86245,0 76.78194000000001,40.94077,0 76.87387,41.01411,0 77.05831000000001,41.04911,0 77.13805000000001,41.01606,0 77.37747,41.028,0 77.54359000000001,40.98661,0 77.68471,41.00189,0 77.85471,41.0694,0 78.08083000000001,41.04079,0 78.24623,41.16513,0 78.37997,41.28384,0 78.37553,41.37882,0 78.53109000000001,41.46384,0 78.63997999999999,41.483,0 78.69553000000001,41.54301,0 79.20749000000001,41.72828,0 79.30943000000001,41.79134,0 79.43192999999999,41.78216,0 79.65498,41.88218000000001,0 79.77858000000001,41.88717,0 79.87943,42.01635,0 80.25139,42.04245,0 80.28332,42.07968000000001,0 80.23403,42.19622,0 80.2811,42.21218,0 80.29387,42.25218,0 80.23831000000001,42.3633,0 80.21720999999999,42.45051,0 80.24249,42.49051,0 80.18221,42.56802,0 80.17192,42.6605,0 80.26066,42.81941,0 80.57861,42.89108,0 80.56135999999999,42.92635,0 80.44443,42.95468,0 80.37665000000001,43.02524,0 80.64637999999999,43.14135,0 80.74359,43.10775,0 80.8147,43.13997,0 80.76914000000001,43.28886,0 80.66054,43.32884,0 80.73859000000002,43.4719,0 80.55371,43.81323,0 80.43886999999999,43.99219000000001,0 80.43136,44.05303,0 80.36276000000001,44.12524000000001,0 80.39999000000002,44.26414,0 80.34887000000001,44.45024,0 80.40721000000002,44.6022,0 80.37497999999999,44.65607,0 80.51666,44.7072,0 80.52083,44.73248,0 80.26221,44.82443,0 80.00166,44.79776,0 79.87581000000002,44.86554,0 79.87109000000001,44.90497,0 80.12138,45.03942000000001,0 80.39166,45.04915,0 80.46915,45.1111,0 81.05444,45.16608,0 81.68831,45.35082,0 81.79776,45.30581,0 81.81581,45.20053,0 81.94804000000001,45.15748,0 82.29694000000001,45.23775,0 82.48165,45.12748,0 82.54943,45.12331,0 82.63554000000001,45.24053,0 82.64943,45.43026,0 82.3622,45.49552000000001,0 82.31493,45.5448,0 82.51082,45.90192,0 82.57332000000001,46.17305,0 82.70889,46.35415,0 82.87387000000001,46.76359999999999,0 83.01470999999999,46.96027,0 83.03276,47.20416,0 83.18571,47.21664,0 83.56499,47.0611,0 83.90000000000001,46.97721,0 84.11109999999999,46.97166000000001,0 84.29471,47.0075,0 84.53194000000001,46.97527000000001,0 84.67804,46.99361,0 84.77887,46.93166,0 84.73526,46.83694,0 84.75942000000001,46.82638,0 84.96361,46.86415,0 85.25776999999999,47.0511,0 85.52931,47.06016,0 85.57331000000002,47.17694,0 85.68665,47.21194000000001,0 85.70555,47.2836,0 85.70055000000001,47.38388000000001,0 85.60359,47.51943,0 85.62221,47.62111,0 85.53777,47.95999,0 85.61388,48.15833,0 85.75915999999999,48.38777000000001,0 85.86248999999999,48.42527000000001,0 86.23081999999999,48.42527000000001,0 86.34415,48.49527000000001,0 86.46362000000001,48.49361,0 86.59610000000001,48.53611,0 86.64499000000002,48.61639,0 86.78333000000002,48.72776000000001,0 86.75943,48.79361,0 86.82138000000001,48.84665,0 86.75277000000001,48.90028000000002,0 86.73054999999999,48.97222,0 86.87469,49.11083000000001,0 86.99887,49.09944,0 87.16748,49.13304,0 87.34821,49.09261,0 87.46693000000001,49.07972,0 87.52528,49.12915,0 87.8407,49.17296000000001,0 87.98859,49.17722000000001,0 88.1622,49.27222,0 88.13193,49.36833000000001,0 88.22083000000001,49.46166,0 88.65082,49.50055,0 88.73081999999999,49.45083,0 88.89999000000002,49.44332,0 88.8875,49.54361000000001,0 88.92886,49.54639,0 89.01331999999999,49.46360000000001,0 89.23054999999999,49.53667,0 89.19748,49.61111,0 89.22665000000001,49.63833,0 89.37221,49.57972,0 89.45972,49.64999000000001,0 89.71138000000001,49.71472,0 89.73609999999999,49.74889000000001,0 89.6511,49.79527000000002,0 89.67137,49.82083,0 89.6375,49.855,0 89.64270000000001,49.90482999999999,0 89.98526,49.97222000000001,0 90.05137000000003,50.0825,0 90.24443000000001,50.12027,0 90.37858,50.18582000000001,0 90.50973000000001,50.22444000000001,0 90.69859,50.21943,0 90.74860000000001,50.29749,0 90.87025,50.32638000000001,0 91.02970999999999,50.43306,0 91.44748,50.4711,0 91.46776000000001,50.52694000000001,0 91.60693000000001,50.57305,0 91.65886999999999,50.63722000000001,0 91.77222000000002,50.68999000000001,0 91.90556000000002,50.71472000000001,0 92.22137000000002,50.70556,0 92.29498,50.75361,0 92.32693,50.855,0 92.38361000000002,50.87471000000001,0 92.47275999999999,50.78527,0 92.5736,50.75778,0 92.66081,50.68166,0 92.76028,50.71249,0 92.80276000000001,50.79361,0 92.97500000000001,50.7911,0 92.99915,50.7514,0 92.97102,50.66649,0 93.03333000000001,50.6086,0 93.44886,50.62249000000001,0 93.55832000000001,50.58972000000001,0 94.27499,50.56944,0 94.3522,50.41499,0 94.38998000000001,50.21444000000001,0 94.51582999999999,50.16109,0 94.62276,50.02999,0 94.97609,50.0561,0 95.06608,49.96193000000001,0 95.42249000000001,49.95610000000001,0 95.49157,49.9077,0 95.53859,49.89472,0 95.59193000000001,49.94083,0 95.73526,49.95471000000001,0 95.83472,50.02499000000001,0 95.90721000000002,50.01415999999999,0 95.96026999999999,49.94415000000001,0 96.07444,50.00694,0 96.29443999999999,49.94665000000001,0 96.37916,49.89360000000001,0 96.54749,49.92583,0 96.59248000000001,49.86500000000001,0 96.72248999999999,49.9211,0 96.99693000000002,49.89415000000001,0 97.16943000000001,49.76167,0 97.31303,49.7311,0 97.58638000000001,49.84361000000001,0 97.59415000000001,49.92749,0 97.78609,49.96915,0 97.86388000000001,49.93277,0 98.10721000000002,50.04888,0 98.29221,50.29861,0 98.28554,50.41361000000001,0 98.32555000000001,50.51083000000001,0 98.27443,50.56055,0 98.16748,50.56889,0 98.06331000000002,50.63054000000001,0 97.96388,50.77832,0 98.01304,50.85583,0 97.87747,50.92972,0 97.83195000000001,50.98999000000001,0 97.9586,51.22332,0 97.93777,51.31249,0 98.06469000000001,51.46694,0 98.23235,51.45989000000001,0 98.25999,51.51583000000002,0 98.24802,51.5811,0 98.33527000000001,51.71804000000001,0 98.62442,51.77999000000001,0 98.70804000000001,51.82805,0 98.86942999999999,52.03861,0 98.88109,52.11416,0 98.94189,52.14068,0 98.91304,52.2011,0 98.81360000000001,52.18693,0 98.80721,52.27444,0 98.72248999999999,52.29527000000001,0 98.64444,52.26167000000001,0 98.67970000000001,52.36999,0 98.62553,52.42416,0 98.72083000000001,52.46054000000001,0 98.73522000000001,52.5118,0 98.81527,52.52054,0 98.82721000000001,52.53999000000001,0 98.78276,52.57333,0 98.80415000000001,52.61166,0 98.93248000000001,52.65444000000001,0 98.9408,52.79722000000001,0 98.86526000000001,52.79167,0 98.84444000000001,52.83194,0 98.93107999999999,52.925,0 99.20610000000002,52.8511,0 99.24997000000001,52.95378,0 98.98553,53.03444,0 99.06526000000001,53.10249,0 98.92360000000001,53.15388,0 98.8772,53.11944,0 98.68637000000001,53.15611000000001,0 98.60249000000002,53.10139000000001,0 98.29998999999999,53.10055,0 98.28581,53.22721,0 98.03027,53.25054000000001,0 97.96998000000002,53.29639000000001,0 97.96304000000001,53.35999,0 97.59972000000001,53.37138,0 97.58749,53.43888000000001,0 97.44107,53.46027000000002,0 97.33221,53.59999,0 97.12275,53.60944,0 96.88666000000001,53.72887000000001,0 96.72776,53.70665,0 96.68415,53.6386,0 96.60860000000001,53.67583,0 96.57165999999999,53.64554,0 96.5,53.68499000000001,0 96.20721,53.92638,0 96.04943,53.99554,0 96.08167000000003,54.05749000000001,0 96.05332,54.09389000000002,0 95.98803000000001,54.08721,0 95.91805000000002,54.15999,0 95.65860000000002,54.25943,0 95.66303000000004,54.33999,0 95.70526,54.37999,0 95.79082,54.42082000000001,0 95.91577000000002,54.3956,0 95.98665,54.44833,0 95.97638000000001,54.47721000000001,0 96.05582,54.5761,0 96.21720999999999,54.54084,0 96.31582,54.57139000000001,0 96.57083,54.51250000000001,0 96.55053,54.58082,0 96.58888,54.65972,0 96.56192,54.69694,0 96.67359999999999,54.80222000000001,0 96.71527,54.92138000000001,0 96.57777,55.02028,0 96.68692,55.08083,0 96.65192,55.0986,0 96.69721,55.17276,0 96.70055000000001,55.25528,0 96.92027,55.32472,0 96.84137000000001,55.43749,0 96.85526000000002,55.47776,0 96.81721,55.55915,0 96.85582000000001,55.59444000000001,0 96.74638,55.65138000000001,0 96.82471,55.69749,0 96.75526000000002,55.74722,0 96.82111,55.79166,0 96.96971000000001,55.85583,0 96.98054999999999,56.02221999999999,0 97.0611,56.02556,0 97.12361,56.11639,0 97.35220000000001,56.04861,0 97.43248,56.09583000000001,0 97.42859,56.14666,0 97.58693000000001,56.18943000000001,0 97.55663000000001,56.3875,0 97.88193,56.39249000000002,0 97.87943,56.55944,0 97.74498,56.55860000000001,0 97.77528000000002,56.6075,0 97.75193000000003,56.64054,0 97.78581,56.66415000000001,0 97.75027000000002,56.70417000000001,0 97.77609,56.78054,0 97.48581000000003,56.81028,0 97.48055000000001,56.89111000000001,0 97.62302,56.95528000000001,0 97.47693000000001,56.96444,0 97.34009000000002,57.04317,0 97.91721,57.80694,0 98.76944,57.79166000000001,0 98.85415999999999,57.72804,0 98.97415,57.72165,0 99.08414999999999,57.77416,0 99.42165000000001,57.79333000000001,0 99.49442999999999,57.93415,0 99.61971,58.00166,0 99.61582,58.04805000000001,0 99.68193000000001,58.08111,0 99.80138000000001,58.05721,0 100.0441,58.07944,0 100.0775,58.0561,0 100.0767,57.96111,0 100.123,57.86554,0 100.2744,57.80915,0 100.2664,57.76139,0 100.373,57.7311,0 100.328,57.68250000000001,0 100.3664,57.67556,0 100.3461,57.63833,0 100.3958,57.59887,0 100.4036,57.54804,0 100.6505,57.47444,0 100.7419,57.40193000000001,0 100.855,57.465,0 100.9112,57.44835,0 100.9628,57.50083000000001,0 100.9391,57.51583,0 100.9536,57.5611,0 100.8461,57.60999000000001,0 100.7969,57.66833000000001,0 100.8911,57.77361,0 100.84,57.80083000000001,0 100.8505,57.84222,0 100.8077,57.88611,0 100.953,57.86694000000001,0 101.0353,57.89804000000001,0 101.0281,57.92249000000002,0 101.1394,57.98249,0 101.1583,58.02471000000001,0 101.1608,58.06055,0 101.105,58.10528,0 101.1097,58.11528000000001,0 101.2161,58.14444,0 101.2764,58.21861000000001,0 101.5347,58.22471,0 101.685,58.41888,0 102.1944,58.52527000000001,0 102.3105,58.64527,0 102.5114,58.71667,0 102.5669,58.79694,0 102.54,58.89777000000001,0 102.4369,58.94304000000001,0 102.4508,59.00111,0 102.4044,59.07249000000001,0 102.4433,59.14471,0 102.5353,59.19166000000001,0 102.8286,59.21194,0 102.8717,59.26527999999999,0 103.0155,59.32193,0 103.0822,59.26416,0 103.1644,59.25999000000001,0 103.2064,59.28972,0 103.3264,59.26082000000002,0 103.338,59.22721,0 103.2366,59.2286,0 103.2444,59.17944,0 103.3892,59.02138000000002,0 103.5383,58.98611,0 103.5919,58.95193,0 103.5928,58.91304,0 103.8933,58.90555,0 103.9542,58.84859,0 103.9458,58.76582,0 103.8558,58.73498000000001,0 103.9922,58.73555,0 104.0444,58.77304,0 104.2364,58.75866000000001,0 104.2836,58.71305000000001,0 104.3991,58.69915000000001,0 104.3936,58.64526,0 104.4583,58.60054,0 104.5233,58.63832000000001,0 104.5828,58.61415,0 104.6314,58.64804,0 104.795,58.66859,0 104.8733,58.72164000000001,0 104.7558,58.81526000000001,0 104.8386,58.89443,0 105.085,58.99277,0 105.1439,59.04582,0 105.3628,59.09499,0 105.3019,59.14861000000001,0 105.3319,59.1986,0 105.2961,59.26111,0 105.1841,59.31055000000001,0 105.2455,59.35082,0 105.2094,59.40192,0 105.2136,59.40777,0 105.2308,59.42527000000001,0 105.183,59.47305,0 104.9853,59.46028,0 104.8828,59.52527,0 104.8561,59.55110000000001,0 104.8769,59.58582,0 104.8005,59.6361,0 104.7944,59.69332,0 104.8922,59.75027000000001,0 105.0191,59.77083,0 105.0191,59.83721,0 105.1853,59.86027000000001,0 105.3783,59.82083000000001,0 105.4952,59.84554000000001,0 105.4305,59.89388,0 105.4889,60.01194000000002,0 105.4208,60.10999000000001,0 105.4786,60.19249,0 105.4772,60.25443,0 105.3758,60.24917000000001,0 105.2967,60.29860999999999,0 105.2219,60.27528,0 104.8772,60.30388000000001,0 104.7642,60.38221,0 104.6539,60.40249,0 104.6764,60.42499999999999,0 104.6414,60.49416000000002,0 104.568,60.54084,0 104.5577,60.61721,0 104.5167,60.63332,0 104.6022,60.74333000000001,0 104.4569,60.83972,0 104.6344,60.89388,0 104.5597,60.94554000000001,0 104.6144,60.97639,0 104.6,61.00054,0 104.6419,61.03804,0 104.6003,61.05416,0 104.6147,61.07444,0 104.7103,61.08999000000001,0 104.835,61.17776000000001,0 105.0119,61.17749,0 104.9628,61.26498999999999,0 104.9314,61.26944,0 104.9272,61.31944,0 104.785,61.34943,0 105,61.40661000000001,0 105.2758,61.41999,0 105.2736,61.47805000000002,0 105.3664,61.53278,0 105.5575,61.56554000000001,0 105.5925,61.61721,0 105.6947,61.64943,0 105.8028,61.61776,0 105.8647,61.67389,0 105.9491,61.68333,0 105.8894,61.82305000000001,0 106.0431,61.90277,0 106.0478,61.9086,0 106.2,61.99749000000001,0 106.4133,62.02750000000001,0 106.3789,62.06528,0 106.4097,62.08472,0 106.373,62.10277,0 106.4475,62.18581,0 106.4477,62.24167,0 106.3192,62.26194000000001,0 106.3939,62.31777000000001,0 106.4792,62.31721000000002,0 106.4275,62.38388,0 106.5308,62.37249000000001,0 106.7144,62.47721000000001,0 106.6533,62.53833,0 106.7072,62.58277,0 106.8144,62.59972,0 106.4691,62.68166000000001,0 106.5258,62.74722000000001,0 106.4678,62.77694,0 106.4447,62.84361,0 106.2161,62.8961,0 106.2194,62.94194000000001,0 106.1561,62.9586,0 106.1875,62.98611,0 106.1216,63.05833000000001,0 106.3033,63.07277,0 106.4108,63.11527000000001,0 106.3836,63.1461,0 106.433,63.20055,0 106.3583,63.21999,0 106.3619,63.27139,0 106.4441,63.33111,0 106.6741,63.29667,0 106.7364,63.3686,0 106.5069,63.49166000000002,0 106.685,63.61361000000001,0 106.6283,63.69833,0 106.7972,63.84415,0 106.6803,63.92499,0 106.7028,63.98555000000002,0 106.8603,63.97721,0 107.0714,63.88528,0 107.1819,63.95361,0 107.2911,63.95083,0 107.3592,63.86775999999999,0 107.5628,63.85695000000001,0 107.6219,63.91361000000001,0 107.6194,63.9575,0 107.6792,63.98999,0 108.2619,63.99083000000002,0 108.3222,64.03943,0 108.2211,64.20833,0 108.15,64.24082,0 108.1253,64.24054,0 108.0265,64.22346,0 108.14,64.26221,0 108.3075,64.24915,0 108.3569,64.30081,0 108.4614,64.28581,0 + + + 1 + + + + + +112.8831,77.93326,0 112.5097,77.85098000000001,0 112.5144,79.90003,0 112.5259,84.90002,0 112.5374,89.90000000000001,0 113.5351,89.90000000000001,0 114.5329,89.90000000000001,0 115.5306,89.90000000000001,0 116.5284,89.90000000000001,0 117.5262,89.90000000000001,0 118.5239,89.90000000000001,0 119.5217,89.90000000000001,0 120.5195,89.90000000000001,0 121.5172,89.90000000000001,0 122.515,89.90000000000001,0 123.5128,89.90000000000001,0 124.5105,89.90000000000001,0 125.5083,89.90000000000001,0 126.5061,89.90000000000001,0 127.5038,89.90000000000001,0 127.5198,84.90002,0 127.5317,81.16092,0 122.6489,80.08503,0 117.766,79.00914,0 112.8831,77.93326,0 + + + 1 + + + + + GMT +09:00 + + +]]> + #khStyle0900 + + + + + +131.1522,-31.47416,0 131.7691,-31.72222,0 132.0908,-31.92111,0 132.2039,-32.03168,0 132.4142,-32.01167,0 132.4794,-32.03251,0 132.4508,-31.97277,0 132.5491,-31.93889,0 132.7644,-31.95084,0 132.8355,-31.97972,0 132.9774,-32.11306,0 133.0591,-32.11473,0 133.1447,-32.20583,0 133.1855,-32.18666,0 133.2672,-32.22084000000001,0 133.3041,-32.19694,0 133.4172,-32.21334,0 133.5382,-32.32338,0 133.7763,-32.43159,0 133.8505,-32.54055,0 133.9055,-32.54501,0 133.9314,-32.50084,0 133.9938,-32.50611,0 134.0355,-32.46389,0 134.143,-32.4575,0 134.2822,-32.60000000000001,0 134.2969,-32.68028,0 134.2241,-32.78389,0 134.2144,-32.81306,0 134.1941,-32.79029,0 134.2177,-32.72834,0 134.0683,-32.71667,0 134.1294,-32.84277,0 134.0611,-32.92139,0 134.1947,-32.95223,0 134.2039,-33.01112,0 134.1478,-33.0275,0 134.2355,-33.05140000000001,0 134.2691,-33.15972,0 134.3375,-33.20403,0 134.4536,-33.4363,0 134.4445,-33.78327,0 134.6956,-33.95219,0 135.0562,-34.44981,0 135.1056,-34.59302,0 135.2188,-34.56417,0 135.3219,-34.62166,0 135.3488,-34.65305,0 135.3225,-34.69111,0 135.4747,-34.75111,0 135.6061,-34.89305,0 135.6241,-34.95361,0 135.6778,-34.95555,0 135.7213,-34.86861,0 135.7867,-34.86029,0 135.928,-34.95945,0 135.9541,-35.01028,0 136.4239,-35.18024,0 136.4753,-35.25469,0 136.4895,-35.57197,0 136.5725,-35.77633,0 136.5344,-35.9125,0 136.6678,-35.98778,0 136.7164,-36.07168,0 136.8466,-36.03083,0 136.9061,-36.06028,0 137.0161,-36.02695,0 137.1566,-36.04361,0 137.2219,-35.98361000000001,0 137.3544,-36.00195,0 137.4577,-36.08666,0 137.6141,-36.01472,0 137.6055,-35.92945,0 137.7494,-35.86777,0 137.9289,-35.87666,0 138.038,-35.92418,0 138.1369,-35.855,0 138.2088,-35.71732000000001,0 138.3009,-35.65432,0 138.5355,-35.65445,0 138.6555,-35.56056,0 138.8005,-35.53694,0 139.2314,-35.76361,0 139.573,-36.0925,0 139.8269,-36.57778,0 139.8616,-36.66639,0 139.8547,-36.82611,0 139.8003,-36.89472,0 139.6697,-36.96362,0 139.7314,-37.00973000000001,0 139.7411,-37.08278,0 139.7803,-37.10778,0 139.7836,-37.15361,0 139.7375,-37.17805,0 139.8144,-37.29973,0 140.0022,-37.50501000000001,0 140.0408,-37.48721,0 140.1283,-37.53612,0 140.1141,-37.58055,0 140.228,-37.65944,0 140.405,-37.92805,0 140.675,-38.06861,0 140.968,-38.06421,0 141.2825,-38.22084,0 141.4022,-38.3289,0 141.3842,-38.39889,0 141.4694,-38.37527,0 141.5472,-38.44305,0 141.5908,-38.39917,0 141.6536,-38.40222,0 141.6213,-38.31751,0 141.7436,-38.26751,0 141.9619,-38.29083,0 142.163,-38.40111,0 142.3813,-38.36362,0 142.4572,-38.40722,0 142.5023,-38.37652,0 142.5023,-43.37653,0 142.5023,-48.37652000000001,0 142.5023,-53.37653,0 142.5023,-58.37653000000002,0 142.5023,-63.37653000000001,0 142.5023,-68.37653,0 142.5023,-73.37653,0 142.5023,-75.57653000000001,0 142.5023,-80.57653000000001,0 142.5023,-85.57653000000001,0 142.5023,-88.17653,0 142.5023,-89.90000000000001,0 141.5026,-89.90000000000001,0 140.503,-89.90000000000001,0 139.5034,-89.90000000000001,0 138.5038,-89.90000000000001,0 137.5042,-89.90000000000001,0 136.5045,-89.90000000000001,0 135.5049,-89.90000000000001,0 134.5053,-89.90000000000001,0 133.5057,-89.90000000000001,0 132.5061,-89.90000000000001,0 131.5064,-89.90000000000001,0 130.5068,-89.90000000000001,0 129.5072,-89.90000000000001,0 128.5076,-89.90000000000001,0 127.508,-89.90000000000001,0 127.508,-84.89999,0 127.508,-82.02666000000001,0 127.508,-77.02666000000001,0 127.508,-72.02666000000001,0 127.508,-68.42665,0 127.508,-63.42665,0 127.508,-58.42665,0 127.508,-53.42665000000001,0 127.508,-48.42665000000001,0 127.508,-43.42665,0 127.508,-38.42665,0 127.508,-33.42665,0 127.508,-32.22667,0 127.7539,-32.1286,0 128.0039,-32.09223,0 128.2483,-32.01084,0 129.0003,-31.69261,0 130.1489,-31.57916000000001,0 130.838,-31.60584,0 131.1522,-31.47416,0 + + + 1 + + + + + +140.948,46.03066,0 145.5292,44.44866,0 145.6765,43.53654,0 145.8775,43.38366,0 145.8579,43.31955,0 145.8469,43.2832,0 145.5455,43.11722,0 144.8695,42.9269,0 144.7778,42.92555,0 144.4636,42.93083,0 144.325,42.99805,0 144.0244,42.92139,0 143.8928,42.84916,0 143.5955,42.61971000000001,0 143.3738,42.36167,0 143.3297,42.28167,0 143.3169,42.04277,0 143.2463,41.92527,0 142.943,42.10665,0 142.501,42.25373,0 142.501,37.25373,0 142.501,32.25372,0 142.501,28.64826,0 137.5011,28.62327,0 135.5122,28.61333,0 135.5122,23.61333000000001,0 135.5122,19.23089,0 140.5122,19.23089,0 142.501,19.23089,0 142.501,14.23089,0 142.501,12,0 138.3636,12,0 137,11.16666,0 137,6.166665000000001,0 137,1.199996,0 141,-5.400000000000001e-007,0 141.0025,-2.607085,0 141.0035,-4.128462,0 141.007,-9.128467000000001,0 142.1419,-10.95666,0 142.1589,-11.14944,0 142.1241,-11.36722,0 141.9422,-11.95472,0 142.0289,-12.06221,0 141.9644,-12.04084,0 141.9175,-12.10528,0 141.8905,-11.98833,0 141.91,-11.95944,0 141.8524,-11.98445,0 141.7503,-12.205,0 141.8058,-12.2375,0 141.7161,-12.23305,0 141.6689,-12.38195,0 141.6658,-12.38666,0 141.593,-12.5575,0 141.6953,-12.54805,0 141.6544,-12.52833,0 141.6614,-12.44833,0 141.7444,-12.46111,0 141.6941,-12.50445,0 141.7589,-12.53222,0 141.7722,-12.57361,0 141.8191,-12.59695,0 141.9255,-12.56111,0 141.9753,-12.58944,0 141.8892,-12.60916,0 141.8297,-12.66278,0 141.9172,-12.71805,0 142.005,-12.72166,0 141.908,-12.75028,0 141.935,-12.91111,0 141.8905,-12.84639,0 141.8686,-12.70084,0 141.8158,-12.70361,0 141.8055,-12.67195,0 141.7597,-12.80805,0 141.6522,-12.9125,0 141.6299,-12.89528,0 141.5839,-12.98916,0 141.6883,-13.26083,0 141.6678,-13.34778,0 141.6297,-13.35416,0 141.5269,-13.57416,0 141.4661,-13.90667,0 141.6,-14.13445,0 141.5916,-14.26473,0 141.5203,-14.475,0 141.5677,-14.76889,0 141.6658,-15.03611,0 141.4605,-15.53611,0 141.3758,-15.92944,0 141.4269,-16.07917,0 141.3486,-16.21916,0 141.3269,-16.33195,0 141.2119,-16.6725,0 141.1299,-16.78083,0 141.0764,-16.80333,0 141.0511,-16.88389000000001,0 140.9491,-17.01362,0 140.8774,-17.37833,0 140.8352,-17.45027,0 140.758,-17.47778,0 140.7361,-17.52,0 140.3966,-17.67334,0 140.0514,-17.71806,0 139.9819,-17.70027,0 139.9308,-17.63139,0 139.8091,-17.57223,0 139.6219,-17.52556,0 139.4717,-17.40412,0 139.4543,-17.27115,0 139.4833,-17.18898,0 139.5816,-17.09876,0 139.5639,-17.02948,0 139.5075,-16.98919,0 139.4736,-16.83612,0 139.5574,-16.67661,0 139.7443,-16.50259,0 139.7379,-16.44136,0 139.5574,-16.3898,0 139.4543,-16.43814,0 139.3061,-16.45425,0 139.1562,-16.5896,0 139.1192,-16.78778,0 138.9894,-16.89061,0 138.8486,-16.87777,0 138.6466,-16.77973,0 138.4869,-16.78778,0 138.3039,-16.75112,0 138.1902,-16.705,0 138.0003,-16.55472,0 137.8605,-16.44,0 137.7355,-16.24916,0 137.4283,-16.15722,0 137.2488,-16.02194,0 137.0683,-15.93743,0 137.0997,-15.77525,0 137.0845,-15.66302,0 136.8828,-15.49533,0 136.7517,-15.55584,0 136.5764,-15.50668,0 136.4158,-15.62276,0 136.2791,-15.56722,0 136.2122,-15.39445,0 135.9369,-15.25361,0 135.7971,-15.14682,0 135.7612,-14.96609,0 135.7868,-14.90858,0 136.9212,-14.31743,0 136.9755,-14.26311,0 136.9308,-13.75824,0 136.7199,-13.64,0 136.6489,-13.01466,0 136.645,-12.9575,0 136.5392,-12.91639,0 136.5514,-12.88611,0 136.4843,-12.84594,0 136.4677,-12.78111,0 136.5397,-12.8175,0 136.5486,-12.74361,0 136.6186,-12.83584,0 136.6055,-12.72083,0 136.6808,-12.71029,0 136.6978,-12.62306,0 136.7683,-12.56972,0 136.7325,-12.48722,0 136.7986,-12.45667,0 136.7831,-12.545,0 136.9172,-12.3875,0 136.9794,-12.36139,0 136.9386,-12.35639,0 136.9336,-12.28694,0 136.8573,-12.21335,0 136.8317,-12.06468,0 136.6352,-11.74354,0 136.5952,-11.40484,0 136.7342,-11.20672,0 136.7838,-11.04376,0 136.7646,-11.00381,0 136.4738,-11.45757,0 136.2765,-11.5646,0 135.9633,-11.67485,0 135.0559,-11.9113,0 134.8282,-12.03977,0 134.8014,-12.04333,0 134.7661,-11.95055,0 134.6986,-11.9575,0 134.5941,-12.06611,0 134.415,-12.0575,0 134.2805,-11.97417,0 134.1855,-12.08277,0 134.1664,-11.97194,0 134.1997,-11.95861,0 134.1411,-11.88139,0 134.0841,-11.92805,0 134.045,-11.8425,0 133.9511,-11.91222,0 133.875,-11.89139,0 133.8352,-11.82695,0 133.9391,-11.75611,0 133.9136,-11.72722,0 133.8262,-11.72145,0 133.5198,-11.51235,0 133.479,-11.45118,0 132.5958,-10.95671,0 132.4684,-11.01023,0 132.346,-11.12238,0 131.9803,-11.11982,0 131.807,-11.1912,0 131.259,-11.1861,0 131.1188,-11.25238,0 130.8333,-11.31863,0 130.6982,-11.31863,0 130.5147,-11.27021,0 130.4051,-11.14532,0 130.3643,-11.16826,0 130.3516,-11.28041,0 130.2445,-11.33648,0 130.14,-11.47157,0 129.9998,-11.77998,0 130.0941,-11.84624,0 130.3133,-11.79272,0 130.4637,-11.85899,0 130.558,-12.07055,0 130.5766,-12.40278,0 130.6177,-12.43278,0 130.5875,-12.4575,0 130.6049,-12.49861,0 130.5733,-12.5825,0 130.6194,-12.60833,0 130.5536,-12.63029,0 130.598,-12.67666,0 130.6953,-12.7025,0 130.5855,-12.71472,0 130.505,-12.60221,0 130.5094,-12.65834,0 130.4433,-12.63083,0 130.3972,-12.68722,0 130.3558,-12.67,0 130.3408,-12.87611,0 130.235,-12.9475,0 130.1855,-12.9075,0 130.1408,-12.92416,0 130.1157,-13.14503,0 130.0907,-13.21581,0 130.2073,-13.22924,0 130.3264,-13.35389,0 130.2542,-13.32889,0 130.145,-13.45973,0 129.9861,-13.52778,0 129.9136,-13.51389,0 129.8861,-13.44528,0 129.8708,-13.50194,0 129.8275,-13.51945,0 129.7827,-13.69221,0 129.7844,-13.76305,0 129.8105,-13.75167,0 129.8152,-13.77779,0 129.7169,-13.86722,0 129.75,-13.93222,0 129.7327,-13.99472,0 129.6308,-14.04056,0 129.5977,-13.99945,0 129.6136,-14.05833,0 129.5889,-14.09722,0 129.4789,-14.04722,0 129.4925,-14.14223,0 129.4122,-14.23111,0 129.3632,-14.4277,0 129.4171,-14.63216,0 129.3895,-14.71341,0 129.0917,-14.90135,0 129,-14.87108,0 128.5417,-14.75778,0 128.3877,-14.79719,0 128.3259,-14.71017,0 128.2153,-14.69975,0 128.0697,-14.64584,0 128.0036,-14.56111,0 127.9453,-14.57639,0 127.9494,-14.52667,0 127.8855,-14.47277,0 127.8514,-14.48222,0 127.865,-14.42056,0 127.8247,-14.44444,0 127.8228,-14.38694,0 127.7605,-14.30055,0 127.6136,-14.13611,0 127.5044,-14.06334,0 127.4466,-14.05916,0 127.4278,-13.95666,0 127.3967,-13.965,0 127.3328,-13.90662,0 127.3328,-8.906616,0 127.3328,-7.298002000000002,0 125.441,-7.306758,0 125.441,-3.067723,0 124.3024,-3.067723,0 124.3024,-1.202193,0 127.1436,2.912129,0 127.5079,3.439736,0 127.5079,8.439740000000001,0 127.5079,13.43974,0 127.5079,18.43974,0 127.5079,23.43974,0 127.5079,23.5489,0 122.8135,23.56643,0 122.8135,27.5252,0 127.5079,27.5252,0 127.5079,32.5252,0 127.5079,32.96414,0 124.1097,32.96414,0 124.1097,37.96414,0 124.1097,39.48034,0 124.3702,40.0028,0 124.3736,40.09361,0 124.5547,40.24222000000001,0 124.7084,40.30505,0 124.7433,40.37,0 124.8328,40.40915,0 124.8805,40.47054,0 125.04,40.45722,0 125.0178,40.53082,0 125.248,40.60388,0 125.2861,40.64749,0 125.4058,40.62082,0 125.4642,40.7136,0 125.5447,40.7186,0 125.5641,40.77832,0 125.6803,40.76554,0 125.6531,40.82166,0 125.7619,40.88361,0 125.8214,40.86139,0 125.8786,40.89472,0 126.0169,40.89999,0 125.9775,40.91331,0 126.0733,40.97305,0 126.1322,41.04416000000001,0 126.1239,41.08111,0 126.2792,41.15277,0 126.4561,41.35722,0 126.5272,41.3575,0 126.5008,41.43194,0 126.5844,41.56860000000001,0 126.5633,41.61092,0 126.6151,41.66418,0 126.7222,41.69804000000001,0 126.6789,41.72444,0 126.6947,41.74027,0 126.7869,41.69222,0 126.7975,41.7311,0 126.9361,41.79444,0 126.9364,41.76305,0 127.0453,41.72444,0 127.078,41.68194,0 127.04,41.67194,0 127.057,41.64351,0 127.1786,41.58749,0 127.1022,41.53528,0 127.2872,41.50111,0 127.2708,41.4725,0 127.5391,41.46361,0 127.5572,41.42972,0 127.6475,41.40277,0 127.8583,41.40444,0 127.8739,41.43943,0 127.9814,41.42276,0 128.0008,41.44555,0 128.0208,41.4086,0 128.0475,41.41888,0 128.0441,41.38943,0 128.1061,41.39415,0 128.1127,41.36971,0 128.2044,41.41667000000001,0 128.3019,41.57778,0 128.1019,41.7961,0 128.0589,42.00332,0 128.2825,42.03916,0 128.4894,41.99555,0 128.7291,42.04695,0 128.9122,42.0211,0 128.9577,42.08111,0 129.0141,42.0942,0 129.2102,42.21721,0 129.1758,42.23499,0 129.2244,42.29639,0 129.1905,42.31333,0 129.2377,42.32194,0 129.24,42.37417,0 129.3441,42.41471,0 129.3419,42.44583,0 129.4422,42.43443000000001,0 129.5397,42.36361,0 129.5908,42.44526,0 129.7119,42.44415,0 129.725,42.56139,0 129.7608,42.60332,0 129.7427,42.64083,0 129.7875,42.675,0 129.7533,42.69415,0 129.7578,42.72971,0 129.8512,42.95998,0 129.9056,42.96999,0 129.8756,42.9897,0 129.9075,43.00581,0 129.9996,42.96142,0 130.1075,42.97833,0 130.1358,42.96221,0 130.1008,42.91194,0 130.2522,42.89249,0 130.2433,42.71833,0 130.4255,42.60222,0 130.4372,42.545,0 130.4725,42.55694,0 130.4614,42.59389,0 130.5147,42.60222,0 130.5675,42.44305,0 130.6044,42.42186,0 130.6591,42.37665,0 130.655,42.31388,0 130.6974,42.29221,0 130.7539,42.34749,0 130.7789,42.45194,0 130.8305,42.46388,0 130.8383,42.51832,0 130.8711,42.52333,0 130.7703,42.59638,0 130.7258,42.575,0 130.7366,42.61361,0 130.6733,42.64749,0 130.7108,42.68499,0 130.8411,42.6875,0 130.7861,42.64277,0 130.9528,42.645,0 130.93,42.61388,0 130.8191,42.62693,0 130.9253,42.59333,0 131.0228,42.645,0 131.1022,42.61804,0 131.1133,42.66444,0 131.1397,42.60917,0 131.1919,42.59527,0 131.1678,42.57138,0 131.2207,42.55566000000001,0 131.4794,42.62341,0 131.486,42.78592,0 131.8044,42.90532000000001,0 132.0598,43.06119,0 132.1858,43.00813,0 132.2953,42.74943,0 132.3549,42.70301000000001,0 132.4611,42.77265,0 132.6667,42.8224,0 132.853,42.73888,0 132.8878,42.80555,0 132.9905,42.82054,0 133.0775,42.7411,0 133.0008,42.72222,0 133.0236,42.68776,0 133.1583,42.68306,0 133.2269,42.74249,0 133.3747,42.7575,0 133.5944,42.84694,0 133.6602,42.85443,0 133.7105,42.81332,0 133.86,42.90387,0 133.9142,42.87555,0 134.115,42.99722,0 134.1883,43.07972000000001,0 134.4167,43.14833,0 134.6997,43.30111,0 134.7639,43.30694,0 134.9686,43.4586,0 135.1297,43.49888,0 135.2225,43.6386,0 135.2266,43.68749,0 135.1833,43.70943,0 135.2497,43.72915,0 135.273,43.68639,0 135.42,43.75417,0 135.5178,43.88499,0 135.4769,43.8761,0 135.4572,43.94332,0 135.5128,43.92139,0 135.5305,43.99166000000001,0 135.6319,44.04944,0 135.6483,44.15943,0 135.7216,44.23499,0 135.8005,44.26333,0 135.8847,44.39832,0 136.1844,44.51305,0 136.2491,44.67194,0 136.3336,44.70361,0 136.3075,44.73777000000001,0 136.3608,44.79027,0 136.4413,44.76832,0 136.4497,44.82695,0 136.5533,44.88889,0 136.5547,44.93833000000001,0 136.6522,45.02804,0 136.7622,45.08721,0 136.8167,45.19554,0 137.1414,45.37028,0 137.3383,45.57721,0 137.6569,45.78221,0 137.7037,45.85810000000001,0 140.948,46.03066,0 + + + 1 + + + + + +142.5194,79.90000000000001,0 142.5194,77.68817,0 138.667,77.71629,0 133.9557,76.04201000000001,0 131.8621,75.29801999999999,0 131.8621,71.38942,0 132.2701,66.40608,0 132.678,61.42275999999999,0 132.8709,59.06711,0 132.8588,59.02208000000001,0 132.9268,58.97153000000001,0 132.905,58.92134000000001,0 132.6281,58.88062,0 132.5582,58.80028999999999,0 132.5681,58.63096000000001,0 132.539,58.58086,0 132.404,58.50661,0 132.2431,58.51441000000001,0 132.1915,58.47281,0 132.2631,58.30735,0 132.0923,58.2122,0 132.1542,58.06819,0 131.732,58.18654,0 131.5646,58.1936,0 131.5448,58.17016000000001,0 131.5467,58.14072,0 131.6564,58.07726000000001,0 131.6874,58.0066,0 131.8208,57.9631,0 131.8702,57.83329000000001,0 132.1476,57.72349000000001,0 132.0838,57.63795,0 131.8647,57.60706,0 131.6878,57.45025,0 131.66,57.27824,0 131.5491,57.25599,0 131.2796,57.36280000000001,0 131.2694,57.28938,0 131.1433,57.21137000000001,0 131.1787,57.17673,0 131.3337,57.16616000000001,0 131.5165,57.0938,0 131.8783,56.76854,0 131.7752,56.62872,0 131.7346,56.49774000000001,0 131.5154,56.54887000000001,0 131.4501,56.48512000000001,0 131.3082,56.48672,0 131.182,56.41776000000001,0 131.1664,56.29863,0 130.974,55.9278,0 131.0924,55.7413,0 131.0922,55.68167,0 131.5875,55.7055,0 131.8277,55.67754,0 132.2958,55.75039,0 132.5187,55.73038,0 132.6783,55.64597,0 132.6778,55.5961,0 132.6198,55.5598,0 132.6032,55.50863,0 132.8499,55.45721000000001,0 132.9172,55.40487,0 132.7062,55.3788,0 132.5812,55.26958,0 132.4052,55.2324,0 132.3182,55.10742,0 132.102,55.05344000000001,0 131.8497,54.86316000000001,0 131.6391,54.78865,0 131.4381,54.76270000000001,0 131.2688,54.64863,0 131.2404,54.51491,0 131.1084,54.36098,0 131.0439,54.32481000000001,0 130.7881,54.30889,0 130.5956,54.16706,0 130.4401,53.95286000000001,0 130.4453,53.91442,0 130.5371,53.88297000000001,0 130.6684,53.88879,0 130.7704,53.82110999999999,0 130.8468,53.80831,0 131.0603,53.87516000000001,0 131.369,53.75986,0 131.4433,53.50145,0 131.4033,53.26408,0 131.4342,53.24406,0 131.7383,53.28881000000001,0 131.8331,53.2546,0 131.8363,53.20384,0 131.9606,53.16412,0 132.0767,53.2618,0 132.1492,53.28006000000001,0 132.7966,53.23391,0 132.9397,53.31208,0 133.1567,53.32175,0 133.2816,53.50229000000001,0 133.5405,53.55013,0 133.6865,53.48001000000001,0 133.7953,53.50423,0 134.045,53.46778000000001,0 134.4765,53.65137,0 134.8939,53.42523000000001,0 134.8608,53.39223,0 134.8063,53.39867,0 134.7772,53.35156000000001,0 134.8416,53.30129,0 134.8581,53.2211,0 134.6294,52.97923,0 134.572,52.87017000000001,0 134.5818,52.77556,0 134.7453,52.68349,0 134.605,52.58288,0 134.5947,52.53989,0 134.644,52.49686,0 134.5898,52.42293,0 134.1073,52.49435,0 133.9606,52.47187,0 133.4076,52.67120000000001,0 133.2485,52.66451,0 133.1741,52.56192000000001,0 133.2161,52.52879,0 133.1884,52.43139000000001,0 133.3646,52.27884,0 133.3551,52.22758,0 133.1079,52.16774000000001,0 132.7906,52.16892,0 132.5923,52.10018000000001,0 132.4668,51.94439000000001,0 132.3687,51.9752,0 132.2938,51.84838000000001,0 132.2201,51.81065,0 132.0319,51.81518,0 131.6162,51.66434000000002,0 131.3763,51.68487,0 131.4344,51.40771,0 131.4163,51.37443,0 131.1841,51.33065,0 131.1296,51.25358000000001,0 130.8823,51.1259,0 130.8353,51.0568,0 130.6651,50.99669,0 130.649,50.9649,0 130.7764,50.89289,0 130.5924,50.61773000000001,0 130.6539,50.59364000000001,0 130.7555,50.65919000000002,0 130.8691,50.65911,0 130.9657,50.59039000000001,0 130.9257,50.52943,0 130.84,50.48763,0 130.848,50.43361,0 131.0443,50.37701,0 131.2058,50.37281,0 131.4482,50.18406000000001,0 131.3611,50.08953,0 131.4545,49.94840000000001,0 131.4792,49.77464,0 131.4655,49.74212,0 131.3354,49.7038,0 131.3988,49.67189000000001,0 131.456,49.56964,0 131.4312,49.3426,0 131.3584,49.25607,0 131.0539,49.22533,0 130.9823,49.16279999999999,0 130.9003,48.97752000000001,0 130.5996,48.93345,0 130.5044,48.85194,0 130.418,48.8961,0 130.2289,48.86221,0 129.9164,49.02963,0 129.9127,49.08241,0 129.833,49.11796,0 129.8474,49.15796000000001,0 129.7327,49.19294,0 129.7219,49.26626,0 129.545,49.29318,0 129.5235,49.39124,0 129.4122,49.43176,0 129.3691,49.41396000000001,0 129.3535,49.3423,0 129.1997,49.39059000000001,0 129.0769,49.35279,0 128.9927,49.44165,0 128.8752,49.47776,0 128.7525,49.46804000000001,0 128.8025,49.55916,0 128.6689,49.61193,0 128.6259,49.56967000000001,0 128.5052,49.58694,0 128.1911,49.53416000000001,0 128.075,49.54222000000001,0 127.9744,49.60249000000001,0 127.8214,49.5911,0 127.6914,49.66721,0 127.6717,49.74889000000001,0 127.5419,49.78249000000001,0 127.5083,49.82,0 127.5314,49.91972000000001,0 127.4878,49.98055000000002,0 127.4883,50.04221,0 127.5697,50.12833,0 127.5861,50.20856,0 127.3366,50.31027,0 127.3542,50.41332,0 127.2894,50.46027000000001,0 127.3677,50.57083,0 127.28,50.68083,0 127.2972,50.73249,0 127.2175,50.78416,0 127.1272,50.91555,0 126.9305,51.05999000000001,0 126.8986,51.18665,0 126.9755,51.31360999999999,0 126.8611,51.30693999999999,0 126.8933,51.23915000000001,0 126.8161,51.26639000000001,0 126.8214,51.33028000000001,0 126.9019,51.33943,0 126.9153,51.37915,0 126.7905,51.42443000000001,0 126.8247,51.50139,0 126.8025,51.53694,0 126.6728,51.57471,0 126.7292,51.63833000000001,0 126.7214,51.7086,0 126.6414,51.74527,0 126.4422,51.98804,0 126.4616,52.02694,0 126.5122,52.03889,0 126.5572,52.13055,0 126.3064,52.20417,0 126.4364,52.28082000000001,0 126.3203,52.30832,0 126.3403,52.38942999999999,0 126.2675,52.4586,0 126.1977,52.46444,0 126.2094,52.50139000000002,0 126.0939,52.58804,0 126.0308,52.56333,0 125.9886,52.58222,0 125.973,52.64167,0 126.0642,52.67638,0 126.0355,52.7211,0 126.0955,52.76444,0 126.0508,52.78583,0 125.9705,52.76333,0 125.8592,52.85166000000001,0 125.8447,52.89943000000002,0 125.6469,52.87887000000001,0 125.6486,52.91276,0 125.7191,52.94222,0 125.7289,52.97943,0 125.623,53.05,0 125.5061,53.03832,0 125.4661,53.08388000000001,0 125.1342,53.19749000000001,0 124.9122,53.16972,0 124.8755,53.14388000000001,0 124.89,53.09471,0 124.8516,53.08915,0 124.805,53.13305,0 124.7058,53.13443000000001,0 124.6528,53.18581,0 124.4022,53.21221,0 124.2553,53.35665,0 124.1044,53.34083,0 123.9108,53.46471,0 123.6975,53.49583,0 123.6194,53.54277,0 123.5294,53.49944,0 123.5428,53.53388,0 123.4975,53.54694,0 123.4789,53.49917,0 123.2461,53.55305,0 123.1533,53.50054999999999,0 122.8244,53.45,0 122.41,53.43721000000001,0 122.3144,53.48777,0 122.0261,53.41397,0 121.83,53.41305,0 121.4738,53.32382,0 121.325,53.31833,0 121.2083,53.27055000000001,0 120.8639,53.27972000000001,0 120.2728,52.85777,0 120.0292,52.76805,0 120.0306,52.61721,0 120.073,52.59,0 120.1891,52.58028,0 120.4403,52.63722,0 120.7136,52.54472000000001,0 120.6867,52.43361000000001,0 120.6228,52.34026999999999,0 120.7592,52.23916,0 120.7828,52.15526,0 120.7531,52.07917,0 120.695,52.04860999999999,0 120.7128,51.98249000000001,0 120.6578,51.9175,0 120.4886,51.8772,0 120.1972,51.68610000000002,0 120.0969,51.66138,0 120.0491,51.54777000000001,0 119.983,51.49305,0 119.9566,51.38999,0 119.8914,51.37417,0 119.9208,51.33638,0 119.8097,51.26416,0 119.818,51.21416,0 119.7553,51.20750000000001,0 119.7805,51.1661,0 119.7467,51.0736,0 119.5225,50.90499,0 119.5022,50.74221000000001,0 119.2869,50.59389000000001,0 119.2422,50.44526,0 119.1353,50.38972,0 119.1983,50.34527,0 119.348,50.34833,0 119.368,50.30999,0 119.3289,50.27388000000001,0 119.3481,50.15948,0 119.3222,50.09722000000001,0 119.2141,50.01528,0 119.0996,49.99044,0 118.5833,49.92694,0 118.4647,49.82444,0 118.3855,49.81667000000001,0 118.3658,49.77832000000002,0 117.8958,49.55,0 117.872,49.51022,0 117.4944,49.62305,0 117.17,49.6525,0 116.7114,49.83046000000001,0 116.6155,49.93138,0 116.2461,50.02749000000001,0 116.0697,50.00278,0 115.7547,49.88443000000001,0 115.3964,49.90110000000001,0 115.2053,49.99833,0 115.0236,50.15193,0 114.8542,50.22832,0 114.6758,50.26415999999999,0 114.4439,50.24527,0 114.313,50.28416,0 114.1764,50.24833,0 113.8747,50.08693000000002,0 113.7825,50.08693000000002,0 113.5861,50.01639,0 113.2167,49.81917,0 113.1014,49.67888,0 113.0908,49.59859,0 112.7669,49.50083,0 112.4917,49.54138,0 111.9639,49.40694,0 111.6822,49.40665,0 111.498,49.34916000000001,0 111.3714,49.37416,0 110.9811,49.20083,0 110.7886,49.14944,0 110.6303,49.15249,0 110.4011,49.25500000000001,0 110.2369,49.16945,0 109.8503,49.18999,0 109.7394,49.23499000000001,0 109.5442,49.23249,0 109.3519,49.33694,0 109.2069,49.36028,0 108.6511,49.33173000000001,0 108.5275,49.34555,0 108.3589,49.44526000000001,0 108.2719,49.53555000000001,0 108.1375,49.55804,0 108.0419,49.61082,0 108.0319,49.67471,0 107.9475,49.68333,0 107.9892,49.74499,0 107.9553,49.85167,0 107.9806,49.94083,0 107.8133,49.94860000000001,0 107.7536,49.97955000000001,0 107.7989,50.02999,0 107.8008,50.09166000000001,0 107.7619,50.10471,0 107.7736,50.15749000000002,0 107.8205,50.20665000000002,0 107.8936,50.19249000000001,0 107.9375,50.22221,0 107.9855,50.33721,0 108.0761,50.35332,0 108.1325,50.31444,0 108.2042,50.41109,0 108.3386,50.40444000000001,0 108.4369,50.46249000000002,0 108.6039,50.45221999999999,0 108.6853,50.50417,0 108.6583,50.53777,0 108.5447,50.52777,0 108.4167,50.61361,0 108.1794,50.65915,0 108.0655,50.75804999999999,0 108.2515,50.83393,0 108.3322,51.04887999999999,0 108.4997,51.05915000000002,0 108.5747,51.11528,0 108.4542,51.22776000000001,0 108.3525,51.26528,0 108.4736,51.34499,0 108.547,51.47527,0 108.6208,51.51306,0 108.743,51.44583000000001,0 108.945,51.43999000000002,0 109.0636,51.50861,0 109.2522,51.36221000000001,0 109.3386,51.39138,0 109.38,51.34666,0 109.4289,51.41610000000001,0 109.6789,51.46305,0 110.0491,51.62000000000001,0 110.3947,51.57944,0 110.4205,51.52222,0 110.5447,51.49471,0 110.6961,51.50277,0 110.7817,51.57471,0 110.8639,51.59222,0 110.8414,51.66915000000002,0 111.0019,51.72222,0 111.015,51.78221000000001,0 111.1397,51.83527,0 111.198,51.82361000000001,0 111.6078,51.92778,0 112.0608,52.27833,0 112.1683,52.30389000000001,0 112.2089,52.24054,0 112.2964,52.25278000000001,0 112.4022,52.20694,0 112.4925,52.25000000000001,0 112.5389,52.34972000000001,0 112.9303,52.33665000000001,0 113.2733,52.47805000000001,0 113.5341,52.49416,0 113.5792,52.45027,0 113.738,52.57722,0 113.8978,52.63499,0 113.9542,52.62555,0 114.1236,52.71832,0 114.2422,52.82388,0 114.2144,52.89054000000001,0 114.2422,52.92749,0 114.2322,52.96527,0 114.3172,52.96721,0 114.2814,53.02139,0 114.3253,53.06777,0 114.2314,53.10361000000001,0 114.1269,53.07194,0 114.2017,53.19222,0 114.0925,53.2047,0 114.0464,53.22359,0 114.048,53.25249,0 113.9822,53.23305,0 113.94,53.28444,0 113.9639,53.31945,0 113.9433,53.35638,0 113.8322,53.38971999999999,0 113.8278,53.4575,0 113.8955,53.53472,0 113.8147,53.61644,0 113.9744,53.64444000000001,0 113.9686,53.69944000000001,0 113.9947,53.71694,0 114.1431,53.75610000000001,0 114.2961,53.74666000000001,0 114.3747,53.81249,0 114.4453,53.80249000000001,0 114.5031,53.80915000000001,0 114.5958,53.90277,0 114.9758,53.99249,0 115.0239,54.03082,0 115.0241,54.07027000000002,0 115.1494,54.12027000000001,0 115.1833,54.18444,0 115.4993,54.30138000000001,0 115.5092,54.36472000000001,0 115.6708,54.42388,0 116.185,54.50722,0 116.5228,54.46408,0 116.5372,54.50943,0 116.7119,54.52944,0 116.7144,54.56333000000001,0 116.77,54.59222,0 116.7697,54.66109,0 116.8739,54.70416,0 116.8694,54.7686,0 116.9239,54.79554,0 116.8778,54.90527,0 116.8892,54.94165,0 116.8264,54.97860000000001,0 116.8411,55.02138,0 116.7825,55.11028,0 116.6991,55.11472000000001,0 116.4694,55.22748,0 116.4616,55.30555,0 116.4022,55.36082,0 116.1144,55.34749000000002,0 116.0694,55.37944,0 115.9639,55.36555,0 115.93,55.39694,0 115.9672,55.44526000000001,0 115.8894,55.49889000000001,0 115.913,55.6461,0 115.8411,55.67222000000001,0 115.8683,55.74499,0 115.8419,55.82638000000001,0 115.898,55.91667000000001,0 115.7586,56.04111000000001,0 115.7855,56.07193000000001,0 115.7691,56.11694,0 115.8369,56.14943,0 115.7619,56.17416,0 115.6841,56.29694,0 115.6797,56.39721,0 115.7844,56.40193,0 115.7988,56.42968000000001,0 115.6755,56.49277,0 115.6819,56.56527000000001,0 115.4647,56.58971,0 115.4311,56.62823,0 115.443,56.66388,0 115.5903,56.71554,0 115.6136,56.78611,0 115.5864,56.87249000000001,0 115.7368,56.95655,0 115.8617,56.93277000000001,0 115.9628,56.86111,0 116.0417,56.86361,0 116.1211,56.81221000000002,0 116.3639,56.84860000000001,0 116.5594,56.7589,0 116.7386,56.76083000000001,0 116.8072,56.72388,0 116.9672,56.78111,0 117.0403,56.77638,0 117.0017,56.79943000000001,0 117.0222,56.81554,0 117.1355,56.80111,0 117.1933,56.87943,0 117.3311,56.9486,0 117.3642,56.91610000000001,0 117.3447,56.86693000000001,0 117.4153,56.85777,0 117.4103,56.82583000000001,0 117.4605,56.81694000000001,0 117.498,56.87137,0 117.5728,56.84722,0 117.57,56.93555000000001,0 117.6744,56.9747,0 117.6889,57.01444999999999,0 117.6783,57.06666,0 117.5969,57.15332,0 117.7452,57.19583000000001,0 117.7955,57.28722,0 117.7758,57.30249000000001,0 117.5964,57.32333,0 117.5464,57.25999,0 117.4742,57.23778,0 117.4264,57.25861,0 117.4444,57.32972,0 117.365,57.32778,0 117.3286,57.45443,0 117.2889,57.45833,0 117.2522,57.51333000000002,0 117.3105,57.56555,0 117.2878,57.61306,0 117.1378,57.63972,0 117.1783,57.73888000000002,0 117.0844,57.80416000000001,0 117.123,57.84277,0 117.31,57.84388000000001,0 117.4175,57.90666,0 117.3661,57.92749,0 117.3647,57.99554,0 117.3958,58.02610000000001,0 117.3725,58.0611,0 117.4139,58.08749000000001,0 117.4075,58.12721,0 117.44,58.15721,0 117.5739,58.13582,0 117.5906,58.18555,0 117.4714,58.28278,0 117.4792,58.31361,0 117.6644,58.3711,0 117.6722,58.40055,0 117.8308,58.4122,0 118.013,58.39305,0 118.0639,58.33832000000001,0 118.1354,58.38744,0 118.3072,58.36028000000001,0 118.4892,58.21111,0 118.5614,58.21444,0 118.6475,58.17028000000001,0 118.803,58.21666000000001,0 119.1084,58.22268,0 119.1317,58.29027,0 119.0655,58.36388,0 119.1261,58.40833000000001,0 119.1297,58.48249,0 118.763,58.61249,0 118.8269,58.61527,0 118.8875,58.69554000000001,0 118.8969,58.81471000000001,0 118.7867,58.8875,0 118.7922,58.9397,0 118.8539,58.94360000000001,0 118.8478,59.01441000000001,0 118.7369,59.02361000000001,0 118.7025,59.06554,0 118.7014,59.21305000000001,0 118.8514,59.28611,0 118.7553,59.33333,0 118.7633,59.38722000000001,0 118.7644,59.4011,0 118.3903,59.51777,0 118.3503,59.58888,0 118.2836,59.61055,0 118.0572,59.58333,0 117.9864,59.53638,0 117.94,59.45471,0 117.8836,59.44165,0 117.8189,59.44944000000001,0 117.7583,59.54084000000001,0 117.5989,59.47083,0 117.2361,59.52777,0 117.1966,59.56916,0 117.0844,59.58721,0 117.2008,59.65499,0 117.2275,59.82943,0 117.0572,59.90889,0 117.1139,59.96333,0 117.2333,59.95694,0 117.3089,59.99528,0 117.2975,60.01943,0 117.0486,60.03583,0 117.0444,60.08250000000001,0 116.9736,60.15777,0 116.84,60.24222,0 116.7322,60.25777,0 116.6008,60.35722000000001,0 116.078,60.40417,0 116.0032,60.45931000000002,0 115.8428,60.465,0 115.6755,60.52666,0 115.1891,60.42972000000001,0 115.0906,60.38276000000001,0 115.013,60.27167,0 114.8139,60.18054,0 114.6966,60.21998,0 114.5461,60.11388000000001,0 114.5211,60.04527,0 114.5667,59.99777000000001,0 114.3155,59.88361,0 114.1655,59.74582000000002,0 114.0433,59.74110000000001,0 114.0419,59.68054999999999,0 113.8492,59.68832,0 113.7836,59.60999,0 113.6089,59.58111000000001,0 113.5864,59.55915000000002,0 113.6097,59.49527000000001,0 113.4728,59.43860000000001,0 113.4211,59.37665,0 113.4869,59.33333,0 113.4558,59.29889,0 113.4694,59.26500000000001,0 113.2817,59.16109000000001,0 112.9714,59.13444000000001,0 112.9117,59.15499,0 112.8822,59.11833,0 112.7314,59.0872,0 112.6453,59.03249,0 112.5742,59.07168,0 112.5555,59.02665,0 112.6276,58.96118,0 112.5003,58.86999,0 112.4461,58.92805,0 112.46,59.16166,0 112.5378,59.23694,0 112.6386,59.26944000000001,0 112.6322,59.31082000000001,0 112.438,59.33028,0 112.2839,59.30305,0 112.3075,59.33666000000002,0 112.2728,59.365,0 112.3341,59.41694,0 112.2714,59.46638,0 112.2739,59.50444000000001,0 112.2214,59.50361,0 111.9933,59.34470000000001,0 111.9419,59.2711,0 111.7681,59.27805,0 111.6461,59.2061,0 111.4353,59.27388,0 111.3042,59.25694000000001,0 111.1822,59.18332000000001,0 111.0831,59.23944,0 110.9969,59.20805000000001,0 110.6927,59.25777000000001,0 110.5789,59.19166000000001,0 110.5917,59.13110000000001,0 110.5425,59.10556,0 110.5386,59.06221000000001,0 110.4819,59.03334,0 110.3522,59.03582,0 110.2783,58.98194,0 109.9355,59.00917,0 109.8203,58.97971,0 109.7411,59.07194000000001,0 109.6405,59.06166,0 109.6286,59.1511,0 109.5281,59.18027,0 109.5405,59.22083,0 109.5172,59.23082,0 109.5167,59.29193,0 109.2605,59.31694,0 109.245,59.36306,0 109.3558,59.41667000000001,0 109.2594,59.4511,0 109.5339,59.64555,0 109.4842,59.68721000000002,0 109.4947,59.75027000000001,0 109.6514,59.86193000000001,0 109.62,59.90305,0 109.7694,60.02887000000001,0 109.7164,60.05222000000001,0 109.6936,60.11193,0 109.7264,60.22610000000001,0 109.8069,60.25443,0 109.8055,60.31305,0 109.8789,60.33805,0 109.8611,60.37417000000001,0 109.9519,60.40359999999999,0 109.9164,60.45889,0 110.0219,60.51694,0 110.0389,60.55833,0 110.1178,60.57972,0 110.1222,60.62416,0 110.04,60.66915,0 110.2678,60.69194,0 110.2703,60.76222,0 110.2947,60.76999000000001,0 110.225,60.79610000000002,0 110.23,60.81916,0 110.448,60.97694000000001,0 110.4575,61.03667,0 110.5208,61.08138,0 110.483,61.15971,0 110.3972,61.18111,0 110.3211,61.14638000000001,0 110.1797,61.15639,0 110.0903,61.27027,0 109.8553,61.29139000000001,0 109.7875,61.32721000000001,0 109.8492,61.43054000000001,0 109.8247,61.47748,0 109.8653,61.49305,0 109.8742,61.53333000000001,0 109.7061,61.64804,0 109.7161,61.67666,0 109.6126,61.71394000000001,0 109.6389,61.76083000000001,0 109.5858,61.77443,0 109.5864,61.82333000000001,0 109.6116,61.89277000000001,0 109.8183,62.00363000000001,0 109.9036,62.11306,0 109.9997,62.16361,0 109.9333,62.23472,0 110,62.28220000000001,0 109.96,62.31639,0 109.9628,62.32249000000002,0 109.8911,62.35333,0 109.9247,62.39722,0 109.9036,62.41388,0 109.5442,62.4325,0 109.4711,62.40499,0 109.4205,62.45832,0 109.3158,62.47554000000001,0 109.2642,62.52332,0 109.2444,62.57277,0 109.3869,62.58306000000001,0 109.375,62.64583,0 109.4561,62.66637999999999,0 109.5039,62.77527,0 109.6505,62.82444000000002,0 109.6158,62.87609,0 109.4683,62.93388000000002,0 109.4811,62.9961,0 109.4553,62.99972000000001,0 109.4811,63.02777,0 109.4472,63.03611,0 109.4647,63.07749,0 109.4317,63.09361,0 109.46,63.15055,0 109.4061,63.18277,0 109.4564,63.21860000000001,0 109.3753,63.25528000000001,0 109.3917,63.32472,0 109.363,63.36193,0 109.2717,63.34722,0 109.2289,63.44027,0 109.0433,63.55416000000002,0 108.8566,63.53582000000002,0 108.5586,63.59972000000001,0 108.1314,63.56777,0 108.1164,63.62249,0 108.2703,63.67888,0 108.2886,63.80805,0 108.3716,63.82638,0 108.4661,63.78944000000001,0 108.6056,63.80749,0 108.6489,63.78582,0 108.7719,63.86472,0 108.6839,63.9086,0 108.7383,63.98082,0 108.49,64.1147,0 108.5441,64.1747,0 108.4769,64.20081999999999,0 108.5394,64.23248,0 108.4614,64.28581,0 108.3569,64.30081,0 108.3075,64.24915,0 108.14,64.26221,0 108.0265,64.22346,0 107.9933,64.16971,0 107.8508,64.18053999999999,0 107.5947,64.29915,0 107.3344,64.24442999999999,0 107.2366,64.28693,0 107.2342,64.33138,0 107.1022,64.33693,0 106.8864,64.41609,0 106.7533,64.41193,0 106.6733,64.49802,0 106.6042,64.51331999999999,0 106.5655,64.49582,0 106.5858,64.44443,0 106.3944,64.44331,0 106.1867,64.39639,0 106.0661,64.42081,0 106.1475,64.48526,0 106.0389,64.51609999999999,0 105.7925,64.47803999999999,0 105.8042,64.53055000000001,0 105.7261,64.57222,0 105.7494,64.61443,0 105.7039,64.65886999999999,0 105.8772,64.65804,0 105.8289,64.74193,0 105.8472,64.79165999999999,0 105.898,64.82138000000001,0 106.0097,64.81805,0 105.9491,64.89499000000001,0 106.0408,64.90470999999999,0 106.1058,64.85915,0 106.2233,64.85722,0 105.9748,65.00305,0 105.9986,65.03915000000001,0 106.1658,65.09027,0 106.1925,65.12858,0 106.2911,65.13889,0 106.3736,65.20499,0 106.5117,65.20387,0 106.4269,65.26138,0 106.4422,65.30888,0 106.6116,65.39276,0 106.8414,65.37608,0 106.8761,65.44108,0 106.9647,65.50443,0 106.6989,65.55109,0 106.715,65.59305999999999,0 106.6219,65.61053,0 106.6439,65.6322,0 106.4214,65.66692999999999,0 106.4153,65.70139,0 106.4711,65.74108,0 106.448,65.77415000000001,0 106.4764,65.80443,0 106.4483,65.82138000000001,0 106.4961,65.895,0 106.4667,65.93192999999999,0 106.4889,66.00471,0 106.353,66.15082,0 106.1833,66.15555999999999,0 106.1158,66.19859,0 106.1489,66.25776999999999,0 106.1008,66.37803,0 106.3269,66.47553000000001,0 106.2939,66.50221000000001,0 106.3058,66.55359000000001,0 106.2417,66.58167,0 106.2272,66.66052999999999,0 106.26,66.69942,0 106.1461,66.72693,0 106.1361,66.7561,0 106.1997,66.78333000000001,0 106.1875,66.80247,0 105.9889,66.79776000000001,0 106.075,66.86081,0 106.0683,66.89525999999999,0 105.8686,66.91804999999999,0 105.8189,66.94859,0 105.6436,66.94664,0 105.5283,67.02222,0 105.9053,67.04553,0 105.9955,67.07887,0 106.0539,67.16804999999999,0 106.2325,67.18498,0 106.5036,67.28637000000001,0 106.6678,67.24387,0 106.7989,67.33832,0 106.8766,67.84166999999999,0 106.8908,68.86026,0 106.1367,69.41971,0 106.2853,69.45833,0 106.4547,69.57249,0 106.5911,69.51666,0 106.8147,69.51361,0 107.6053,69.6636,0 107.9022,69.67498999999999,0 108.0181,69.70749000000001,0 108.0536,69.77970999999999,0 108.2366,69.85444,0 108.8725,69.84109000000001,0 108.9539,69.78526000000001,0 109.2261,69.77164999999999,0 109.3644,69.83832,0 109.4211,69.89276,0 109.3836,69.92944,0 109.5439,70.03498,0 109.3811,70.07944000000001,0 109.3828,70.11942999999999,0 109.3055,70.17776000000001,0 109.3205,70.21887,0 109.5695,70.265,0 109.633,70.31972,0 109.5817,70.35526000000002,0 109.6417,70.38499,0 110.2725,70.41721000000001,0 110.3036,70.44942,0 110.1405,70.47859,0 110.1461,70.52388000000001,0 110.0989,70.55776,0 110.1594,70.55247,0 110.1625,70.56554,0 110.1236,70.63612000000001,0 110.3236,70.70471000000001,0 110.5136,70.71693000000001,0 110.5031,70.77083,0 110.5383,70.79721000000001,0 110.7223,70.82165999999999,0 110.8808,70.79638000000001,0 111.0057,70.84365,0 111.3625,70.85526,0 111.4647,70.93864000000001,0 111.9772,70.98276,0 112.0775,71.06164,0 112.2561,71.00000000000001,0 112.385,71.0647,0 112.5975,71.10471,0 112.5219,71.16388000000001,0 112.6869,71.20277,0 112.7258,71.24359,0 112.6428,71.2897,0 112.5128,71.26582999999999,0 112.333,71.34333,0 112.0111,71.40694000000001,0 112.0122,72.13332,0 111.775,72.14499000000001,0 111.7436,72.20721,0 111.6242,72.21361,0 111.6686,72.26582999999999,0 111.5806,72.31944,0 111.3592,72.31693,0 111.0883,72.37220000000001,0 111.0758,72.4061,0 111.3036,72.47832,0 111.3155,72.51277,0 110.89,72.58110000000002,0 110.925,72.63193,0 110.7303,72.64472000000001,0 110.6322,72.78665000000001,0 110.7317,72.82999,0 110.6597,72.85305,0 110.6466,72.89554,0 110.8755,72.94859,0 110.8155,72.95359999999999,0 110.7778,73.00054,0 110.9417,73.03888000000001,0 110.8583,73.07805000000002,0 110.7978,73.17303,0 110.423,73.18997,0 110.6272,73.26888,0 110.5667,73.31944,0 110.1644,73.40248,0 110.5641,73.40637,0 110.8036,73.50832,0 110.8483,73.56554,0 111.0547,73.57165999999999,0 111.1178,73.59359000000001,0 111.1433,73.63777,0 111.0803,73.65860000000001,0 110.9143,73.69668,0 110.8775,73.72859,0 110.9169,73.76028,0 110.8934,73.76541,0 111.2942,73.85934,0 111.6379,73.93545,0 111.6826,74.06952,0 111.34,74.27808,0 111.3847,74.42704000000001,0 112.6509,74.76967999999999,0 113.8128,75.26125999999999,0 114.1406,75.88692,0 113.9618,76.43810000000001,0 113.351,76.87012,0 112.5083,77.24612000000001,0 112.5097,77.85098000000001,0 112.8831,77.93326,0 117.766,79.00914,0 122.6489,80.08503,0 127.5317,81.16092,0 127.5198,84.90002,0 127.5038,89.90000000000001,0 128.4423,89.90000000000001,0 129.3808,89.90000000000001,0 130.3193,89.90000000000001,0 131.2577,89.90000000000001,0 132.1962,89.90000000000001,0 133.1347,89.90000000000001,0 134.0732,89.90000000000001,0 135.0116,89.90000000000001,0 135.9501,89.90000000000001,0 136.8886,89.90000000000001,0 137.827,89.90000000000001,0 138.7655,89.90000000000001,0 139.704,89.90000000000001,0 140.6425,89.90000000000001,0 141.5809,89.90000000000001,0 142.5194,89.90000000000001,0 142.5194,84.90001,0 142.5194,79.90000000000001,0 + + + 1 + + + + + GMT +09:30 + + +]]> + #khStyle0950 + + + + +129,-14.87108,0 129.0917,-14.90135,0 129.3895,-14.71341,0 129.4171,-14.63216,0 129.3632,-14.4277,0 129.4122,-14.23111,0 129.4925,-14.14223,0 129.4789,-14.04722,0 129.5889,-14.09722,0 129.6136,-14.05833,0 129.5977,-13.99945,0 129.6308,-14.04056,0 129.7327,-13.99472,0 129.75,-13.93222,0 129.7169,-13.86722,0 129.8152,-13.77779,0 129.8105,-13.75167,0 129.7844,-13.76305,0 129.7827,-13.69221,0 129.8275,-13.51945,0 129.8708,-13.50194,0 129.8861,-13.44528,0 129.9136,-13.51389,0 129.9861,-13.52778,0 130.145,-13.45973,0 130.2542,-13.32889,0 130.3264,-13.35389,0 130.2073,-13.22924,0 130.0907,-13.21581,0 130.1157,-13.14503,0 130.1408,-12.92416,0 130.1855,-12.9075,0 130.235,-12.9475,0 130.3408,-12.87611,0 130.3558,-12.67,0 130.3972,-12.68722,0 130.4433,-12.63083,0 130.5094,-12.65834,0 130.505,-12.60221,0 130.5855,-12.71472,0 130.6953,-12.7025,0 130.598,-12.67666,0 130.5536,-12.63029,0 130.6194,-12.60833,0 130.5733,-12.5825,0 130.6049,-12.49861,0 130.5875,-12.4575,0 130.6177,-12.43278,0 130.5766,-12.40278,0 130.558,-12.07055,0 130.4637,-11.85899,0 130.3133,-11.79272,0 130.0941,-11.84624,0 129.9998,-11.77998,0 130.14,-11.47157,0 130.2445,-11.33648,0 130.3516,-11.28041,0 130.3643,-11.16826,0 130.4051,-11.14532,0 130.5147,-11.27021,0 130.6982,-11.31863,0 130.8333,-11.31863,0 131.1188,-11.25238,0 131.259,-11.1861,0 131.807,-11.1912,0 131.9803,-11.11982,0 132.346,-11.12238,0 132.4684,-11.01023,0 132.5958,-10.95671,0 133.479,-11.45118,0 133.5198,-11.51235,0 133.8262,-11.72145,0 133.9136,-11.72722,0 133.9391,-11.75611,0 133.8352,-11.82695,0 133.875,-11.89139,0 133.9511,-11.91222,0 134.045,-11.8425,0 134.0841,-11.92805,0 134.1411,-11.88139,0 134.1997,-11.95861,0 134.1664,-11.97194,0 134.1855,-12.08277,0 134.2805,-11.97417,0 134.415,-12.0575,0 134.5941,-12.06611,0 134.6986,-11.9575,0 134.7661,-11.95055,0 134.8014,-12.04333,0 134.8282,-12.03977,0 135.0559,-11.9113,0 135.9633,-11.67485,0 136.2765,-11.5646,0 136.4738,-11.45757,0 136.7646,-11.00381,0 136.7838,-11.04376,0 136.7342,-11.20672,0 136.5952,-11.40484,0 136.6352,-11.74354,0 136.8317,-12.06468,0 136.8573,-12.21335,0 136.9336,-12.28694,0 136.9386,-12.35639,0 136.9794,-12.36139,0 136.9172,-12.3875,0 136.7831,-12.545,0 136.7986,-12.45667,0 136.7325,-12.48722,0 136.7683,-12.56972,0 136.6978,-12.62306,0 136.6808,-12.71029,0 136.6055,-12.72083,0 136.6186,-12.83584,0 136.5486,-12.74361,0 136.5397,-12.8175,0 136.4677,-12.78111,0 136.4843,-12.84594,0 136.5514,-12.88611,0 136.5392,-12.91639,0 136.645,-12.9575,0 136.6489,-13.01466,0 136.7199,-13.64,0 136.9308,-13.75824,0 136.9755,-14.26311,0 136.9212,-14.31743,0 135.7868,-14.90858,0 135.7612,-14.96609,0 135.7971,-15.14682,0 135.9369,-15.25361,0 136.2122,-15.39445,0 136.2791,-15.56722,0 136.4158,-15.62276,0 136.5764,-15.50668,0 136.7517,-15.55584,0 136.8828,-15.49533,0 137.0845,-15.66302,0 137.0997,-15.77525,0 137.0683,-15.93743,0 137.2488,-16.02194,0 137.4283,-16.15722,0 137.7355,-16.24916,0 137.8605,-16.44,0 138.0003,-16.55472,0 138.0004,-21.55472,0 138.0005,-25.99945,0 141.0005,-25.99971,0 141.0027,-29.00021,0 140.9979,-34.00021,0 140.9979,-34.02403,0 140.968,-38.06421,0 140.675,-38.06861,0 140.405,-37.92805,0 140.228,-37.65944,0 140.1141,-37.58055,0 140.1283,-37.53612,0 140.0408,-37.48721,0 140.0022,-37.50501000000001,0 139.8144,-37.29973,0 139.7375,-37.17805,0 139.7836,-37.15361,0 139.7803,-37.10778,0 139.7411,-37.08278,0 139.7314,-37.00973000000001,0 139.6697,-36.96362,0 139.8003,-36.89472,0 139.8547,-36.82611,0 139.8616,-36.66639,0 139.8269,-36.57778,0 139.573,-36.0925,0 139.2314,-35.76361,0 138.8005,-35.53694,0 138.6555,-35.56056,0 138.5355,-35.65445,0 138.3009,-35.65432,0 138.2088,-35.71732000000001,0 138.1369,-35.855,0 138.038,-35.92418,0 137.9289,-35.87666,0 137.7494,-35.86777,0 137.6055,-35.92945,0 137.6141,-36.01472,0 137.4577,-36.08666,0 137.3544,-36.00195,0 137.2219,-35.98361000000001,0 137.1566,-36.04361,0 137.0161,-36.02695,0 136.9061,-36.06028,0 136.8466,-36.03083,0 136.7164,-36.07168,0 136.6678,-35.98778,0 136.5344,-35.9125,0 136.5725,-35.77633,0 136.4895,-35.57197,0 136.4753,-35.25469,0 136.4239,-35.18024,0 135.9541,-35.01028,0 135.928,-34.95945,0 135.7867,-34.86029,0 135.7213,-34.86861,0 135.6778,-34.95555,0 135.6241,-34.95361,0 135.6061,-34.89305,0 135.4747,-34.75111,0 135.3225,-34.69111,0 135.3488,-34.65305,0 135.3219,-34.62166,0 135.2188,-34.56417,0 135.1056,-34.59302,0 135.0562,-34.44981,0 134.6956,-33.95219,0 134.4445,-33.78327,0 134.4536,-33.4363,0 134.3375,-33.20403,0 134.2691,-33.15972,0 134.2355,-33.05140000000001,0 134.1478,-33.0275,0 134.2039,-33.01112,0 134.1947,-32.95223,0 134.0611,-32.92139,0 134.1294,-32.84277,0 134.0683,-32.71667,0 134.2177,-32.72834,0 134.1941,-32.79029,0 134.2144,-32.81306,0 134.2241,-32.78389,0 134.2969,-32.68028,0 134.2822,-32.60000000000001,0 134.143,-32.4575,0 134.0355,-32.46389,0 133.9938,-32.50611,0 133.9314,-32.50084,0 133.9055,-32.54501,0 133.8505,-32.54055,0 133.7763,-32.43159,0 133.5382,-32.32338,0 133.4172,-32.21334,0 133.3041,-32.19694,0 133.2672,-32.22084000000001,0 133.1855,-32.18666,0 133.1447,-32.20583,0 133.0591,-32.11473,0 132.9774,-32.11306,0 132.8355,-31.97972,0 132.7644,-31.95084,0 132.5491,-31.93889,0 132.4508,-31.97277,0 132.4794,-32.03251,0 132.4142,-32.01167,0 132.2039,-32.03168,0 132.0908,-31.92111,0 131.7691,-31.72222,0 131.1522,-31.47416,0 130.838,-31.60584,0 130.1489,-31.57916000000001,0 129.0003,-31.69261,0 129.0052,-26.69261,0 129.0059,-26.0049,0 129.0032,-21.0049,0 129.0006,-16.0049,0 129,-14.87108,0 + + + 1 + + + + GMT +10:00 + + +]]> + #khStyle1000 + + + + + +157.5176,-9.204364,0 157.5176,-14.20437,0 157.5176,-19.20436,0 157.5176,-24.20437,0 157.5176,-29.20436000000001,0 157.5176,-34.20436,0 157.5176,-39.20436,0 157.5176,-39.30436,0 157.5176,-44.30436,0 157.5176,-49.30437,0 157.5176,-54.30436,0 157.5176,-59.00436,0 157.5176,-64.00436000000001,0 157.5176,-69.00436000000001,0 157.5176,-74.00436000000001,0 157.5176,-79.00436000000001,0 157.5176,-84.00436000000001,0 157.5176,-89.00436000000001,0 157.5176,-89.90000000000001,0 156.5791,-89.90000000000001,0 155.6407,-89.90000000000001,0 154.7022,-89.90000000000001,0 153.7638,-89.90000000000001,0 152.8253,-89.90000000000001,0 151.8868,-89.90000000000001,0 150.9484,-89.90000000000001,0 150.0099,-89.90000000000001,0 149.0715,-89.90000000000001,0 148.133,-89.90000000000001,0 147.1945,-89.90000000000001,0 146.2561,-89.90000000000001,0 145.3176,-89.90000000000001,0 144.3792,-89.90000000000001,0 143.4407,-89.90000000000001,0 142.5023,-89.90000000000001,0 142.5023,-88.17653,0 142.5023,-85.57653000000001,0 142.5023,-80.57653000000001,0 142.5023,-75.57653000000001,0 142.5023,-73.37653,0 142.5023,-68.37653,0 142.5023,-63.37653000000001,0 142.5023,-58.37653000000002,0 142.5023,-53.37653,0 142.5023,-48.37652000000001,0 142.5023,-43.37653,0 142.5023,-38.37652,0 142.4572,-38.40722,0 142.3813,-38.36362,0 142.163,-38.40111,0 141.9619,-38.29083,0 141.7436,-38.26751,0 141.6213,-38.31751,0 141.6536,-38.40222,0 141.5908,-38.39917,0 141.5472,-38.44305,0 141.4694,-38.37527,0 141.3842,-38.39889,0 141.4022,-38.3289,0 141.2825,-38.22084,0 140.968,-38.06421,0 140.9979,-34.02403,0 140.9979,-34.00021,0 141.0027,-29.00021,0 141.0005,-25.99971,0 138.0005,-25.99945,0 138.0004,-21.55472,0 138.0003,-16.55472,0 138.1902,-16.705,0 138.3039,-16.75112,0 138.4869,-16.78778,0 138.6466,-16.77973,0 138.8486,-16.87777,0 138.9894,-16.89061,0 139.1192,-16.78778,0 139.1562,-16.5896,0 139.3061,-16.45425,0 139.4543,-16.43814,0 139.5574,-16.3898,0 139.7379,-16.44136,0 139.7443,-16.50259,0 139.5574,-16.67661,0 139.4736,-16.83612,0 139.5075,-16.98919,0 139.5639,-17.02948,0 139.5816,-17.09876,0 139.4833,-17.18898,0 139.4543,-17.27115,0 139.4717,-17.40412,0 139.6219,-17.52556,0 139.8091,-17.57223,0 139.9308,-17.63139,0 139.9819,-17.70027,0 140.0514,-17.71806,0 140.3966,-17.67334,0 140.7361,-17.52,0 140.758,-17.47778,0 140.8352,-17.45027,0 140.8774,-17.37833,0 140.9491,-17.01362,0 141.0511,-16.88389000000001,0 141.0764,-16.80333,0 141.1299,-16.78083,0 141.2119,-16.6725,0 141.3269,-16.33195,0 141.3486,-16.21916,0 141.4269,-16.07917,0 141.3758,-15.92944,0 141.4605,-15.53611,0 141.6658,-15.03611,0 141.5677,-14.76889,0 141.5203,-14.475,0 141.5916,-14.26473,0 141.6,-14.13445,0 141.4661,-13.90667,0 141.5269,-13.57416,0 141.6297,-13.35416,0 141.6678,-13.34778,0 141.6883,-13.26083,0 141.5839,-12.98916,0 141.6299,-12.89528,0 141.6522,-12.9125,0 141.7597,-12.80805,0 141.8055,-12.67195,0 141.8158,-12.70361,0 141.8686,-12.70084,0 141.8905,-12.84639,0 141.935,-12.91111,0 141.908,-12.75028,0 142.005,-12.72166,0 141.9172,-12.71805,0 141.8297,-12.66278,0 141.8892,-12.60916,0 141.9753,-12.58944,0 141.9255,-12.56111,0 141.8191,-12.59695,0 141.7722,-12.57361,0 141.7589,-12.53222,0 141.6941,-12.50445,0 141.7444,-12.46111,0 141.6614,-12.44833,0 141.6544,-12.52833,0 141.6953,-12.54805,0 141.593,-12.5575,0 141.6658,-12.38666,0 141.6689,-12.38195,0 141.7161,-12.23305,0 141.8058,-12.2375,0 141.7503,-12.205,0 141.8524,-11.98445,0 141.91,-11.95944,0 141.8905,-11.98833,0 141.9175,-12.10528,0 141.9644,-12.04084,0 142.0289,-12.06221,0 141.9422,-11.95472,0 142.1241,-11.36722,0 142.1589,-11.14944,0 142.1419,-10.95666,0 141.007,-9.128467000000001,0 141.0035,-4.128462,0 141.0025,-2.607085,0 141,-5.400000000000001e-007,0 146,-0.00688554,0 151,-0.01377954,0 156,-0.02066454,0 157.5176,-0.02275254,0 157.5176,-5.022757,0 157.5176,-5.728428,0 155,-7.3,0 157.5176,-9.204364,0 + + + 1 + + + + + +157.5082,43.79277,0 157.5082,38.79276,0 157.5082,33.79276,0 157.5082,28.79276,0 157.5082,23.79276000000001,0 157.5082,18.79276,0 157.5082,17,0 157.5082,12,0 157.501,12,0 152.501,12,0 147.501,12,0 142.501,12,0 142.501,14.23089,0 142.501,19.23089,0 140.5122,19.23089,0 135.5122,19.23089,0 135.5122,23.61333000000001,0 135.5122,28.61333,0 137.5011,28.62327,0 142.501,28.64826,0 142.501,32.25372,0 142.501,37.25373,0 142.501,42.25373,0 142.943,42.10665,0 143.2463,41.92527,0 143.3169,42.04277,0 143.3297,42.28167,0 143.3738,42.36167,0 143.5955,42.61971000000001,0 143.8928,42.84916,0 144.0244,42.92139,0 144.325,42.99805,0 144.4636,42.93083,0 144.7778,42.92555,0 144.8695,42.9269,0 145.5455,43.11722,0 145.8469,43.2832,0 145.8579,43.31955,0 146.017,43.30567,0 147.0505,43.68716,0 147.4426,44.61853,0 150.3838,45.74596,0 152.32,46.87341,0 153.7416,48.22143,0 154.6484,48.93221,0 155.1141,49.64299000000001,0 156.4621,50.57436,0 156.6092,50.81945,0 156.6455,50.88888000000002,0 156.693,50.89138,0 156.8188,50.97971,0 156.8247,51.01221000000002,0 156.9511,51.06028,0 157.1417,51.19221000000002,0 157.2567,51.22970999999999,0 157.3572,51.33471,0 157.5086,51.39201,0 157.5082,50.69276,0 157.5082,48.79276000000002,0 157.5082,43.79277,0 + + + 1 + + + + + +157.5071,79.90000000000001,0 157.5071,77.646,0 158.1819,76.97113,0 158.435,76.60558,0 158.5194,76.15566,0 158.4631,75.95882,0 158.1257,75.79011,0 157.0853,75.4808,0 152.1637,74.59863,0 151.1239,74.41226,0 149.3243,74.29978,0 145.7813,74.66534,0 144.2066,74.66534,0 142.2944,74.52473000000001,0 142.2944,74.13106999999999,0 143.5036,73.76551000000001,0 143.9254,73.48432,0 144.0097,73.25936,0 143.9816,72.92194000000001,0 143.8973,72.69698,0 142.6355,67.8588,0 141.3738,63.02061,0 141.2248,62.44925000000001,0 141.3777,62.25851,0 141.469,62.21404,0 141.6523,62.03364000000001,0 141.809,62.01836000000001,0 142.0864,62.06575,0 142.2051,61.94452,0 142.2928,61.90464000000001,0 142.5545,61.97489000000001,0 142.8312,61.9179,0 142.8849,61.9355,0 143.0034,62.08195,0 143.0821,62.13218,0 143.2357,62.03323,0 143.4179,62.06457000000001,0 143.5195,62.03001,0 143.533,61.92546,0 143.6266,61.89821,0 143.7727,61.98169,0 143.8912,61.96601,0 143.9069,61.93699000000001,0 143.8109,61.79792,0 144.1019,61.75510000000001,0 144.1931,61.77938000000002,0 144.3145,61.86486,0 144.4896,61.91393,0 144.5109,61.9786,0 144.672,62.10590000000001,0 144.8737,62.09342000000001,0 145.0974,61.9896,0 145.3697,62.02246,0 145.4535,61.96645,0 145.5982,62.08148,0 145.6794,62.08096,0 146.3024,61.84119,0 146.3988,61.79554,0 146.4794,61.71044000000001,0 146.6458,61.46524000000002,0 146.5954,61.35341,0 146.6452,61.12606000000001,0 146.597,61.07125,0 146.623,61.02689,0 146.6056,61.00037,0 146.3812,60.95324,0 146.4342,60.87623000000001,0 146.3924,60.75424,0 146.2405,60.70178,0 146.0911,60.76063,0 145.9837,60.76147,0 145.8941,60.69299,0 145.6304,60.62862000000001,0 145.4411,60.52949,0 145.403,60.4785,0 145.4866,60.43041000000001,0 145.4511,60.35231,0 145.6592,60.22936,0 146.2814,60.24876,0 146.4616,60.14434000000001,0 146.5698,60.12513,0 146.6143,60.07499,0 146.6149,59.98568000000001,0 146.6968,59.94598,0 146.9257,59.95415,0 147.1046,59.86969000000001,0 147.1353,59.79827,0 147.079,59.73552,0 147.0555,59.47459000000001,0 147.0332,59.43111,0 146.8809,59.39854,0 146.8662,59.35934000000001,0 142.1674,59.0727,0 141.702,54.09441,0 141.2365,49.11613,0 140.948,46.03066,0 137.7037,45.85810000000001,0 137.6569,45.78221,0 137.3383,45.57721,0 137.1414,45.37028,0 136.8167,45.19554,0 136.7622,45.08721,0 136.6522,45.02804,0 136.5547,44.93833000000001,0 136.5533,44.88889,0 136.4497,44.82695,0 136.4413,44.76832,0 136.3608,44.79027,0 136.3075,44.73777000000001,0 136.3336,44.70361,0 136.2491,44.67194,0 136.1844,44.51305,0 135.8847,44.39832,0 135.8005,44.26333,0 135.7216,44.23499,0 135.6483,44.15943,0 135.6319,44.04944,0 135.5305,43.99166000000001,0 135.5128,43.92139,0 135.4572,43.94332,0 135.4769,43.8761,0 135.5178,43.88499,0 135.42,43.75417,0 135.273,43.68639,0 135.2497,43.72915,0 135.1833,43.70943,0 135.2266,43.68749,0 135.2225,43.6386,0 135.1297,43.49888,0 134.9686,43.4586,0 134.7639,43.30694,0 134.6997,43.30111,0 134.4167,43.14833,0 134.1883,43.07972000000001,0 134.115,42.99722,0 133.9142,42.87555,0 133.86,42.90387,0 133.7105,42.81332,0 133.6602,42.85443,0 133.5944,42.84694,0 133.3747,42.7575,0 133.2269,42.74249,0 133.1583,42.68306,0 133.0236,42.68776,0 133.0008,42.72222,0 133.0775,42.7411,0 132.9905,42.82054,0 132.8878,42.80555,0 132.853,42.73888,0 132.6667,42.8224,0 132.4611,42.77265,0 132.3549,42.70301000000001,0 132.2953,42.74943,0 132.1858,43.00813,0 132.0598,43.06119,0 131.8044,42.90532000000001,0 131.486,42.78592,0 131.4794,42.62341,0 131.2207,42.55566000000001,0 131.1678,42.57138,0 131.1919,42.59527,0 131.1397,42.60917,0 131.1133,42.66444,0 131.1022,42.61804,0 131.0228,42.645,0 130.9253,42.59333,0 130.8191,42.62693,0 130.93,42.61388,0 130.9528,42.645,0 130.7861,42.64277,0 130.8411,42.6875,0 130.7108,42.68499,0 130.6733,42.64749,0 130.7366,42.61361,0 130.7258,42.575,0 130.7703,42.59638,0 130.8711,42.52333,0 130.8383,42.51832,0 130.8305,42.46388,0 130.7789,42.45194,0 130.7539,42.34749,0 130.6974,42.29221,0 130.655,42.31388,0 130.6591,42.37665,0 130.6044,42.42186,0 130.5591,42.50667000000001,0 130.618,42.57944000000001,0 130.6052,42.61971000000001,0 130.5389,42.68194,0 130.4589,42.67999,0 130.4052,42.71804,0 130.638,42.83167,0 130.7705,42.83194,0 130.8186,42.87610000000001,0 131.0153,42.855,0 131.0458,42.90193,0 131.1322,42.91916,0 131.1047,43.03611,0 131.2144,43.13305,0 131.1911,43.19665,0 131.2611,43.26445,0 131.2741,43.36333,0 131.3114,43.39222,0 131.3044,43.45583,0 131.223,43.51167,0 131.1944,43.52777,0 131.1889,43.53666,0 131.2205,43.59527,0 131.1991,43.81889,0 131.2461,43.91806,0 131.2311,43.97387,0 131.2472,44.0275,0 131.298,44.05194,0 131.0955,44.69137,0 130.9539,44.8461,0 131.0425,44.86333,0 131.118,44.92583,0 131.2125,44.91055,0 131.35,44.97471,0 131.4666,44.96721,0 131.6444,45.10555,0 131.6464,45.19887,0 131.7536,45.21305000000001,0 131.8647,45.34555,0 131.9886,45.24194,0 132.9233,45.02194000000001,0 133.0333,45.06167,0 133.1222,45.12860000000001,0 133.0925,45.24415,0 133.1491,45.45083000000001,0 133.1905,45.50416000000001,0 133.4171,45.5691,0 133.4191,45.60722,0 133.4683,45.62222,0 133.4533,45.64722,0 133.4886,45.68277000000001,0 133.4419,45.69804,0 133.508,45.77777,0 133.4747,45.82027999999999,0 133.5222,45.88665,0 133.583,45.87137,0 133.6108,45.93194,0 133.6605,45.93458,0 133.7247,46.06528,0 133.6869,46.14332,0 133.9002,46.25031000000001,0 133.8839,46.29361,0 133.9102,46.31444,0 133.8619,46.33138,0 133.9286,46.39249,0 133.85,46.43999,0 133.8458,46.47554000000001,0 133.9016,46.57222,0 133.9977,46.64016,0 134.0438,46.75289999999999,0 134.0119,46.82389,0 134.0669,46.9161,0 134.0627,46.97527000000001,0 134.1312,47.07423,0 134.2222,47.11083000000001,0 134.1947,47.20665000000001,0 134.1478,47.24942999999999,0 134.1825,47.32332000000001,0 134.3147,47.4211,0 134.4791,47.42778,0 134.5521,47.46692,0 134.6741,47.57194,0 134.6836,47.62972,0 134.7672,47.7075,0 134.7703,47.73944,0 134.6844,47.80090000000001,0 134.6619,47.87417,0 134.5988,47.90471,0 134.5572,47.99471000000001,0 134.5839,48.06276,0 134.6678,48.10722,0 134.6814,48.22055,0 134.7408,48.26712,0 134.6105,48.30694,0 134.5718,48.36446000000001,0 134.4827,48.35028,0 134.4153,48.39112,0 134.0458,48.32528000000001,0 133.978,48.25972000000001,0 133.7514,48.24972,0 133.6964,48.18694,0 133.5936,48.17249,0 133.5067,48.07138000000001,0 133.3872,48.10528,0 133.0886,48.10167,0 133.018,48.03528000000001,0 132.8844,48.00860999999999,0 132.8089,47.94194,0 132.6714,47.94972000000001,0 132.6597,47.86583,0 132.5425,47.71389000000001,0 132.3411,47.74248999999999,0 131.9194,47.66999,0 131.6783,47.69915000000002,0 131.5755,47.6561,0 131.5372,47.71888,0 131.4167,47.7386,0 131.0405,47.67583,0 130.9464,47.71138,0 130.9461,47.80055,0 130.8897,47.90028,0 130.6814,48.04554,0 130.6594,48.0986,0 130.8322,48.29694,0 130.7375,48.41833,0 130.7578,48.48805,0 130.6269,48.47720000000001,0 130.6175,48.56194000000001,0 130.523,48.60277,0 130.675,48.84415000000001,0 130.6277,48.87465,0 130.5044,48.85194,0 130.5996,48.93345,0 130.9003,48.97752000000001,0 130.9823,49.16279999999999,0 131.0539,49.22533,0 131.3584,49.25607,0 131.4312,49.3426,0 131.456,49.56964,0 131.3988,49.67189000000001,0 131.3354,49.7038,0 131.4655,49.74212,0 131.4792,49.77464,0 131.4545,49.94840000000001,0 131.3611,50.08953,0 131.4482,50.18406000000001,0 131.2058,50.37281,0 131.0443,50.37701,0 130.848,50.43361,0 130.84,50.48763,0 130.9257,50.52943,0 130.9657,50.59039000000001,0 130.8691,50.65911,0 130.7555,50.65919000000002,0 130.6539,50.59364000000001,0 130.5924,50.61773000000001,0 130.7764,50.89289,0 130.649,50.9649,0 130.6651,50.99669,0 130.8353,51.0568,0 130.8823,51.1259,0 131.1296,51.25358000000001,0 131.1841,51.33065,0 131.4163,51.37443,0 131.4344,51.40771,0 131.3763,51.68487,0 131.6162,51.66434000000002,0 132.0319,51.81518,0 132.2201,51.81065,0 132.2938,51.84838000000001,0 132.3687,51.9752,0 132.4668,51.94439000000001,0 132.5923,52.10018000000001,0 132.7906,52.16892,0 133.1079,52.16774000000001,0 133.3551,52.22758,0 133.3646,52.27884,0 133.1884,52.43139000000001,0 133.2161,52.52879,0 133.1741,52.56192000000001,0 133.2485,52.66451,0 133.4076,52.67120000000001,0 133.9606,52.47187,0 134.1073,52.49435,0 134.5898,52.42293,0 134.644,52.49686,0 134.5947,52.53989,0 134.605,52.58288,0 134.7453,52.68349,0 134.5818,52.77556,0 134.572,52.87017000000001,0 134.6294,52.97923,0 134.8581,53.2211,0 134.8416,53.30129,0 134.7772,53.35156000000001,0 134.8063,53.39867,0 134.8608,53.39223,0 134.8939,53.42523000000001,0 134.4765,53.65137,0 134.045,53.46778000000001,0 133.7953,53.50423,0 133.6865,53.48001000000001,0 133.5405,53.55013,0 133.2816,53.50229000000001,0 133.1567,53.32175,0 132.9397,53.31208,0 132.7966,53.23391,0 132.1492,53.28006000000001,0 132.0767,53.2618,0 131.9606,53.16412,0 131.8363,53.20384,0 131.8331,53.2546,0 131.7383,53.28881000000001,0 131.4342,53.24406,0 131.4033,53.26408,0 131.4433,53.50145,0 131.369,53.75986,0 131.0603,53.87516000000001,0 130.8468,53.80831,0 130.7704,53.82110999999999,0 130.6684,53.88879,0 130.5371,53.88297000000001,0 130.4453,53.91442,0 130.4401,53.95286000000001,0 130.5956,54.16706,0 130.7881,54.30889,0 131.0439,54.32481000000001,0 131.1084,54.36098,0 131.2404,54.51491,0 131.2688,54.64863,0 131.4381,54.76270000000001,0 131.6391,54.78865,0 131.8497,54.86316000000001,0 132.102,55.05344000000001,0 132.3182,55.10742,0 132.4052,55.2324,0 132.5812,55.26958,0 132.7062,55.3788,0 132.9172,55.40487,0 132.8499,55.45721000000001,0 132.6032,55.50863,0 132.6198,55.5598,0 132.6778,55.5961,0 132.6783,55.64597,0 132.5187,55.73038,0 132.2958,55.75039,0 131.8277,55.67754,0 131.5875,55.7055,0 131.0922,55.68167,0 131.0924,55.7413,0 130.974,55.9278,0 131.1664,56.29863,0 131.182,56.41776000000001,0 131.3082,56.48672,0 131.4501,56.48512000000001,0 131.5154,56.54887000000001,0 131.7346,56.49774000000001,0 131.7752,56.62872,0 131.8783,56.76854,0 131.5165,57.0938,0 131.3337,57.16616000000001,0 131.1787,57.17673,0 131.1433,57.21137000000001,0 131.2694,57.28938,0 131.2796,57.36280000000001,0 131.5491,57.25599,0 131.66,57.27824,0 131.6878,57.45025,0 131.8647,57.60706,0 132.0838,57.63795,0 132.1476,57.72349000000001,0 131.8702,57.83329000000001,0 131.8208,57.9631,0 131.6874,58.0066,0 131.6564,58.07726000000001,0 131.5467,58.14072,0 131.5448,58.17016000000001,0 131.5646,58.1936,0 131.732,58.18654,0 132.1542,58.06819,0 132.0923,58.2122,0 132.2631,58.30735,0 132.1915,58.47281,0 132.2431,58.51441000000001,0 132.404,58.50661,0 132.539,58.58086,0 132.5681,58.63096000000001,0 132.5582,58.80028999999999,0 132.6281,58.88062,0 132.905,58.92134000000001,0 132.9268,58.97153000000001,0 132.8588,59.02208000000001,0 132.8709,59.06711,0 132.678,61.42275999999999,0 132.2701,66.40608,0 131.8621,71.38942,0 131.8621,75.29801999999999,0 133.9557,76.04201000000001,0 138.667,77.71629,0 142.5194,77.68817,0 142.5194,79.90000000000001,0 142.5194,84.90001,0 142.5194,89.90000000000001,0 143.5186,89.90000000000001,0 144.5178,89.90000000000001,0 145.5169,89.90000000000001,0 146.5161,89.90000000000001,0 147.5153,89.90000000000001,0 148.5145,89.90000000000001,0 149.5136,89.90000000000001,0 150.5128,89.90000000000001,0 151.512,89.90000000000001,0 152.5112,89.90000000000001,0 153.5104,89.90000000000001,0 154.5095,89.90000000000001,0 155.5087,89.90000000000001,0 156.5079,89.90000000000001,0 157.5071,89.90000000000001,0 157.5071,84.90001,0 157.5071,79.90000000000001,0 + + + 1 + + + + + GMT +10:30 + + +]]> + #khStyle1050 + + + + +157.8347,-33.62319,0 157.833,-30.36589,0 162.833,-30.36515,0 164.8248,-30.36486,0 164.8248,-33.62319,0 159.8248,-33.62319,0 157.8347,-33.62319,0 + + + 1 + + + + GMT +11:00 + + +]]> + #khStyle1100 + + + + + +166.3565,-27.96984000000001,0 166.3565,-30.78259,0 167.5012,-30.78259,0 172.5012,-30.78259,0 172.5012,-32.24902,0 169.8135,-36.46523,0 167.1259,-40.68143,0 165.0656,-43.91332,0 165.0573,-48.91331,0 165.049,-53.9133,0 165.048,-54.52042000000001,0 170.048,-54.52042000000001,0 172.5188,-54.52042000000001,0 172.5163,-59.52043,0 172.5138,-64.52042,0 172.5113,-69.52042,0 172.5088,-74.52042,0 172.5063,-79.52042,0 172.5038,-84.52042000000002,0 172.5013,-89.52042,0 172.5011,-89.90000000000001,0 171.5022,-89.90000000000001,0 170.5033,-89.90000000000001,0 169.5044,-89.90000000000001,0 168.5055,-89.90000000000001,0 167.5066,-89.90000000000001,0 166.5077,-89.90000000000001,0 165.5088,-89.90000000000001,0 164.5099,-89.90000000000001,0 163.511,-89.90000000000001,0 162.5121,-89.90000000000001,0 161.5132,-89.90000000000001,0 160.5143,-89.90000000000001,0 159.5154,-89.90000000000001,0 158.5165,-89.90000000000001,0 157.5176,-89.90000000000001,0 157.5176,-89.00436000000001,0 157.5176,-84.00436000000001,0 157.5176,-79.00436000000001,0 157.5176,-74.00436000000001,0 157.5176,-69.00436000000001,0 157.5176,-64.00436000000001,0 157.5176,-59.00436,0 157.5176,-54.30436,0 157.5176,-49.30437,0 157.5176,-44.30436,0 157.5176,-39.30436,0 157.5176,-39.20436,0 157.5176,-34.20436,0 157.5176,-29.20436000000001,0 157.5176,-24.20437,0 157.5176,-19.20436,0 157.5176,-14.20437,0 157.5176,-9.204364,0 155,-7.3,0 157.5176,-5.728428,0 157.5176,-5.022757,0 157.5176,-0.02275254,0 156,-0.02066454,0 151,-0.01377954,0 146,-0.00688554,0 141,-5.400000000000001e-007,0 137,1.199996,0 137,6.166665000000001,0 137,11.16666,0 138.3636,12,0 142.501,12,0 147.501,12,0 152.501,12,0 157.501,12,0 157.5082,12,0 157.5082,17,0 157.5082,18.79276,0 157.5082,23.79276000000001,0 157.5082,28.79276,0 157.5082,33.79276,0 157.5082,38.79276,0 157.5082,43.79277,0 157.5082,48.79276000000002,0 157.5082,50.69276,0 162.5082,50.68582000000001,0 167.5082,50.67888,0 172.5082,50.67194,0 172.5127,50.67192,0 172.5106,45.67193000000001,0 172.5085,40.67192,0 172.5064,35.67193,0 172.5043,30.67193,0 172.5022,25.67193,0 172.5002,20.86006,0 167.5002,20.85992,0 162.5002,20.85979,0 160.5733,20.85973,0 160.5671,15.85973,0 160.5609,10.85973,0 160.5546,5.859737,0 160.5484,0.8597425000000001,0 160.5444,-2.353266,0 165.5444,-2.354284,0 170.5444,-2.355309,0 172.5015,-2.355705,0 172.5014,-7.35571,0 172.5014,-12.35571,0 172.5013,-17.35571,0 172.5013,-22.35571,0 172.5013,-27.35571,0 172.5013,-27.96984000000001,0 171.3565,-27.96984000000001,0 166.3565,-27.96984000000001,0 + + + + + +157.833,-30.36589,0 157.8347,-33.62319,0 159.8248,-33.62319,0 164.8248,-33.62319,0 164.8248,-30.36486,0 162.833,-30.36515,0 157.833,-30.36589,0 + + + 1 + + + + + +172.5346,74.89999,0 172.5346,71.32091,0 167.5346,71.32091,0 162.5346,71.32091,0 159.7593,71.32091,0 160.3981,70.18025,0 160.6752,70.07872999999999,0 160.9,70.04337,0 162.2945,69.98492,0 162.3981,69.86644,0 162.4037,69.67095000000001,0 162.271,69.58094000000001,0 162.2592,69.52155000000001,0 162.1759,69.45047,0 162.1934,69.42339,0 162.4407,69.38332,0 162.8192,69.22402,0 162.5843,69.15031000000001,0 162.5256,69.11716,0 162.4894,69.04481,0 162.4924,69.00284000000001,0 162.5952,68.95761,0 162.6687,68.86439000000001,0 162.5342,68.81356,0 162.4721,68.75452,0 162.6575,68.64811,0 162.5248,68.5097,0 162.516,68.39265,0 162.4043,68.32226,0 161.9774,68.33798,0 161.3543,68.46493,0 160.8015,68.27876000000001,0 160.4726,68.27036,0 160.0085,68.31707,0 159.7156,68.27837,0 159.6493,68.22415,0 159.4943,68.19717,0 159.219,68.22060000000001,0 158.8942,68.17033000000001,0 158.4859,68.15252,0 158.1873,68.05862000000001,0 157.957,67.91137000000001,0 157.9457,67.8794,0 158.1858,67.82414000000001,0 158.2565,67.76581,0 158.1298,67.73808,0 157.772,67.74168,0 157.6639,67.70263,0 157.6332,67.61433,0 157.822,67.39413999999999,0 157.8414,67.30539,0 158.5028,67.09791,0 158.7005,67.06403,0 158.7453,66.92084,0 158.8598,66.84213,0 158.8488,66.78941,0 158.6252,66.67805,0 158.4739,66.56100000000001,0 158.2896,66.48923000000001,0 158.2673,66.45123,0 158.4219,66.36732000000001,0 158.5064,66.35485,0 158.7805,66.2747,0 159.2178,66.20954999999999,0 159.1812,66.14093,0 158.9673,65.98079,0 158.9386,65.85458000000001,0 158.8529,65.72281,0 159.01,65.70184,0 159.2512,65.61183,0 160.0269,65.49356,0 160.2953,65.31647,0 160.4545,65.15871,0 161.2346,65.12815000000001,0 161.595,64.98701,0 161.8677,64.81350000000001,0 162.2872,64.74589,0 162.4811,64.75023,0 162.7342,64.67844,0 163.1004,64.66866,0 163.1754,64.69203,0 163.1694,64.79909000000001,0 163.2627,64.74456000000001,0 163.1777,64.67222,0 163.1747,64.62662,0 163.3588,64.38509000000001,0 163.2731,64.30114,0 163.2748,64.25255,0 163.2118,64.2088,0 163.0435,64.23567,0 162.7443,64.17494000000001,0 162.7434,64.14100000000001,0 162.8791,64.04618000000001,0 162.9514,63.91394,0 162.7401,63.85479,0 162.6724,63.80212,0 162.7899,63.71773,0 162.9543,63.65721000000001,0 162.9894,63.51587000000001,0 162.6794,63.42236000000001,0 162.7222,63.37083,0 162.8369,63.33097,0 162.835,63.26305,0 162.6071,63.20139000000001,0 162.5314,63.12977,0 162.2438,63.13342000000001,0 162.169,63.02766,0 162.1873,62.96365000000001,0 162.244,62.93481,0 162.5737,62.85993,0 162.633,62.83200000000002,0 162.6456,62.77090000000001,0 162.8105,62.71667000000002,0 162.72,62.65807,0 162.7746,62.47603,0 162.7042,62.35186,0 162.529,62.28267000000001,0 162.1591,62.23799,0 162.1606,62.20911000000001,0 162.5421,62.11821000000001,0 162.5609,62.07495,0 162.5376,62.0244,0 162.4909,61.99523,0 162.3335,61.98738,0 162.3959,61.93176,0 162.4478,61.67067000000001,0 162.2883,61.62471000000001,0 162.2875,61.58943,0 162.0422,61.45555,0 162.023,61.41777,0 161.9286,61.37778,0 161.883,61.42944,0 161.8658,61.35054,0 161.8005,61.38082000000001,0 161.7422,61.30804000000001,0 161.5633,61.26694000000001,0 161.6155,61.24305,0 161.5725,61.20193,0 161.473,61.20444000000001,0 161.4155,61.16693,0 161.43,61.13221000000001,0 161.2161,61.06555,0 161.1658,61.00054,0 160.9008,60.90942,0 160.7978,60.73527,0 160.6705,60.77638,0 160.6186,60.7311,0 160.5602,60.75861,0 160.443,60.71249,0 160.4003,60.73332,0 160.4228,60.75722,0 160.3777,60.75139999999999,0 160.3389,60.71776,0 160.3533,60.69332,0 160.2611,60.62555,0 160.1378,60.58359999999999,0 160.1244,60.6786,0 160.1852,60.68888,0 160.2247,60.73721,0 160.2247,60.78443999999999,0 160.1619,60.83778,0 160.3519,60.92221,0 160.3322,60.9547,0 160.4319,61.04721,0 160.1642,61.05082,0 159.8705,60.9286,0 159.7805,60.94083,0 159.7964,60.97776,0 159.9769,61.12111,0 159.94,61.14360000000001,0 159.9516,61.1825,0 159.9011,61.21083,0 159.918,61.24888,0 159.7455,61.25083,0 159.84,61.31192999999999,0 159.9325,61.28334,0 159.9922,61.30888,0 159.8905,61.32861,0 159.9708,61.39861000000001,0 160.0369,61.38694,0 160.0255,61.41526,0 160.0791,61.44833,0 160.0083,61.46194000000001,0 160.2297,61.56361,0 160.2311,61.63611,0 160.2839,61.66249,0 160.2372,61.70249,0 160.3738,61.77804,0 160.3461,61.81889,0 160.3736,61.84276,0 160.3452,61.87082000000001,0 160.3652,61.9086,0 160.3344,61.92333,0 160.3549,61.94749000000001,0 159.9602,61.82333000000001,0 159.8375,61.71221,0 159.6711,61.7236,0 159.5311,61.66276,0 159.485,61.7197,0 159.5378,61.82027000000001,0 159.4458,61.77443,0 159.3341,61.82666,0 159.3816,61.85917,0 159.3697,61.88777000000001,0 159.2475,61.92222,0 158.9055,61.89582,0 158.8386,61.85749,0 158.8472,61.81777,0 158.6333,61.83500000000001,0 158.5189,61.79167000000001,0 158.4377,61.82444,0 158.2978,61.82167,0 158.0283,61.72999,0 157.9,61.78556,0 157.5038,61.80479,0 157.5038,57.82619,0 157.4064,57.785,0 157.1744,57.77193000000001,0 157.0489,57.80028,0 156.985,57.85361,0 156.7869,57.76361,0 156.7488,57.72833000000001,0 156.8455,57.72554000000002,0 156.9355,57.64054,0 156.9805,57.52777,0 156.9778,57.41444,0 156.6953,57.10860000000001,0 156.7194,57.08416,0 156.6794,57.0425,0 156.5472,57.1075,0 156.4544,56.95722,0 156.1997,56.85666,0 156.1978,56.81694000000001,0 156.0633,56.71471,0 156.0747,56.75999000000002,0 156.1689,56.83526000000001,0 156.1044,56.81527000000001,0 155.9408,56.63360999999999,0 155.7361,56.13693,0 155.76,56.1061,0 155.6986,56.06554000000001,0 155.6461,55.91194000000002,0 155.6183,55.62138,0 155.5441,55.3036,0 155.6994,54.51250000000001,0 155.9408,53.84694,0 155.9194,53.83749,0 156.0858,53.09778000000001,0 156.1033,52.84916,0 156.2608,52.56722,0 156.365,52.51666,0 156.4411,52.52083,0 156.37,52.44249,0 156.3655,52.49527,0 156.2775,52.52361,0 156.4247,52.20916,0 156.4919,51.93166000000001,0 156.4727,51.51361000000001,0 156.5164,51.41667,0 156.518,51.32277,0 156.5514,51.27388,0 156.6736,51.22943000000001,0 156.708,51.18444,0 156.7016,51.09833,0 156.7461,51.07443,0 156.7455,50.98777000000001,0 156.6455,50.88888000000002,0 156.6092,50.81945,0 156.4621,50.57436,0 155.1141,49.64299000000001,0 154.6484,48.93221,0 153.7416,48.22143,0 152.32,46.87341,0 150.3838,45.74596,0 147.4426,44.61853,0 147.0505,43.68716,0 146.017,43.30567,0 145.8579,43.31955,0 145.8775,43.38366,0 145.6765,43.53654,0 145.5292,44.44866,0 140.948,46.03066,0 141.2365,49.11613,0 141.702,54.09441,0 142.1674,59.0727,0 146.8662,59.35934000000001,0 146.8809,59.39854,0 147.0332,59.43111,0 147.0555,59.47459000000001,0 147.079,59.73552,0 147.1353,59.79827,0 147.1046,59.86969000000001,0 146.9257,59.95415,0 146.6968,59.94598,0 146.6149,59.98568000000001,0 146.6143,60.07499,0 146.5698,60.12513,0 146.4616,60.14434000000001,0 146.2814,60.24876,0 145.6592,60.22936,0 145.4511,60.35231,0 145.4866,60.43041000000001,0 145.403,60.4785,0 145.4411,60.52949,0 145.6304,60.62862000000001,0 145.8941,60.69299,0 145.9837,60.76147,0 146.0911,60.76063,0 146.2405,60.70178,0 146.3924,60.75424,0 146.4342,60.87623000000001,0 146.3812,60.95324,0 146.6056,61.00037,0 146.623,61.02689,0 146.597,61.07125,0 146.6452,61.12606000000001,0 146.5954,61.35341,0 146.6458,61.46524000000002,0 146.4794,61.71044000000001,0 146.3988,61.79554,0 146.3024,61.84119,0 145.6794,62.08096,0 145.5982,62.08148,0 145.4535,61.96645,0 145.3697,62.02246,0 145.0974,61.9896,0 144.8737,62.09342000000001,0 144.672,62.10590000000001,0 144.5109,61.9786,0 144.4896,61.91393,0 144.3145,61.86486,0 144.1931,61.77938000000002,0 144.1019,61.75510000000001,0 143.8109,61.79792,0 143.9069,61.93699000000001,0 143.8912,61.96601,0 143.7727,61.98169,0 143.6266,61.89821,0 143.533,61.92546,0 143.5195,62.03001,0 143.4179,62.06457000000001,0 143.2357,62.03323,0 143.0821,62.13218,0 143.0034,62.08195,0 142.8849,61.9355,0 142.8312,61.9179,0 142.5545,61.97489000000001,0 142.2928,61.90464000000001,0 142.2051,61.94452,0 142.0864,62.06575,0 141.809,62.01836000000001,0 141.6523,62.03364000000001,0 141.469,62.21404,0 141.3777,62.25851,0 141.2248,62.44925000000001,0 141.3738,63.02061,0 142.6355,67.8588,0 143.8973,72.69698,0 143.9816,72.92194000000001,0 144.0097,73.25936,0 143.9254,73.48432,0 143.5036,73.76551000000001,0 142.2944,74.13106999999999,0 142.2944,74.52473000000001,0 144.2066,74.66534,0 145.7813,74.66534,0 149.3243,74.29978,0 151.1239,74.41226,0 152.1637,74.59863,0 157.0853,75.4808,0 158.1257,75.79011,0 158.4631,75.95882,0 158.5194,76.15566,0 158.435,76.60558,0 158.1819,76.97113,0 157.5071,77.646,0 157.5071,79.90000000000001,0 157.5071,84.90001,0 157.5071,89.90000000000001,0 158.4463,89.90000000000001,0 159.3855,89.90000000000001,0 160.3247,89.90000000000001,0 161.264,89.90000000000001,0 162.2032,89.90000000000001,0 163.1424,89.90000000000001,0 164.0816,89.90000000000001,0 165.0208,89.90000000000001,0 165.9601,89.90000000000001,0 166.8993,89.90000000000001,0 167.8385,89.90000000000001,0 168.7777,89.90000000000001,0 169.7169,89.90000000000001,0 170.6562,89.90000000000001,0 171.5954,89.90000000000001,0 172.5346,89.90000000000001,0 172.5346,84.90001,0 172.5346,79.90000000000001,0 172.5346,74.89999,0 + + + 1 + + + + + GMT +11:30 + + +]]> + #khStyle1150 + + + + +172.5013,-27.96984000000001,0 172.5012,-30.78259,0 167.5012,-30.78259,0 166.3565,-30.78259,0 166.3565,-27.96984000000001,0 171.3565,-27.96984000000001,0 172.5013,-27.96984000000001,0 + + + 1 + + + + GMT +12:00 + + +]]> + #khStyle1200 + + + + + +-172.5,-38.5,0 -172.5,-43.5,0 -172.5,-45,0 -176.2216,-48.22535,0 -180,-51.50000000000001,0 -180,-46.50682,0 -175.0824,-46.50682,0 -175.0824,-43.00079,0 -180,-43.00079,0 -180,-38.5,0 -180,-33.5,0 -180,-28.5,0 -180,-23.5,0 -175,-23.5,0 -172.5,-23.5,0 -172.5,-28.5,0 -172.5,-33.5,0 -172.5,-38.5,0 + + + 1 + + + + + +-177,-20.99139,0 -180,-21.87818,0 -180,-20,0 -180,-15,0 -180,-10,0 -180,-4.999996,0 -177,-9.000000999999999,0 -174,-13,0 -172.5,-15,0 -177,-15,0 -177,-15.99139,0 -177,-20.99139,0 + + + 1 + + + + + +-177.5929,60.38517000000001,0 -180,58.95238000000001,0 -180,60.00000000000001,0 -180,65,0 -180,70,0 -180,75,0 -175.7817,72.31562,0 -172.509,70.23302,0 -169,68,0 -169,65.5,0 -173.2965,62.94258000000001,0 -177.5929,60.38517000000001,0 + + + 1 + + + + + +180,68.95238000000001,0 180,63.95238000000001,0 180,58.95238000000001,0 177.7114,57.59015000000001,0 173.415,55.03272,0 170,53,0 171.5334,52.23330000000001,0 176.0055,49.99722,0 180,48,0 180,46.99903,0 180,41.99904,0 180,36.99903,0 180,31.99903000000001,0 180,26.99904,0 180,21.99903,0 180,16.99904,0 180,11.99903,0 180,6.999039000000001,0 180,1.999034,0 180,-3.000961,0 180,-8.000964,0 180,-13.00097,0 180,-18.00096,0 180,-23.00097,0 180,-28.00096,0 180,-33.00097,0 180,-38.00096,0 180,-43.00097,0 177.8549,-43.00097,0 176.0435,-45.19365,0 176.0435,-46.50451,0 180,-46.50451,0 180,-49.90001,0 180,-54.9,0 180,-59.90001,0 180,-64.90000000000001,0 180,-69.90000000000001,0 180,-74.90000000000001,0 180,-79.90000000000001,0 180,-84.89999,0 180,-89.90000000000001,0 179.0627,-89.90000000000001,0 178.1253,-89.90000000000001,0 177.1879,-89.90000000000001,0 176.2506,-89.90000000000001,0 175.3132,-89.90000000000001,0 174.3758,-89.90000000000001,0 173.4385,-89.90000000000001,0 172.5011,-89.90000000000001,0 172.5013,-89.52042,0 172.5038,-84.52042000000002,0 172.5063,-79.52042,0 172.5088,-74.52042,0 172.5113,-69.52042,0 172.5138,-64.52042,0 172.5163,-59.52043,0 172.5188,-54.52042000000001,0 170.048,-54.52042000000001,0 165.048,-54.52042000000001,0 165.049,-53.9133,0 165.0573,-48.91331,0 165.0656,-43.91332,0 167.1259,-40.68143,0 169.8135,-36.46523,0 172.5012,-32.24902,0 172.5012,-30.78259,0 172.5013,-27.96984000000001,0 172.5013,-27.35571,0 172.5013,-22.35571,0 172.5013,-17.35571,0 172.5014,-12.3557,0 172.5014,-7.35571,0 172.5015,-2.355705,0 170.5444,-2.355309,0 165.5444,-2.354284,0 160.5444,-2.353266,0 160.5484,0.8597425000000001,0 160.5546,5.859737,0 160.5609,10.85973,0 160.5671,15.85973,0 160.5733,20.85973,0 162.5002,20.85979,0 167.5002,20.85992,0 172.5002,20.86006,0 172.5022,25.67193,0 172.5043,30.67193,0 172.5064,35.67193,0 172.5085,40.67192,0 172.5106,45.67193000000001,0 172.5127,50.67192,0 172.5082,50.67194,0 167.5082,50.67888,0 162.5082,50.68582000000001,0 157.5082,50.69276,0 157.5086,51.39201,0 157.3572,51.33471,0 157.2567,51.22970999999999,0 157.1417,51.19221000000002,0 156.9511,51.06028,0 156.8247,51.01221000000002,0 156.8188,50.97971,0 156.693,50.89138,0 156.6455,50.88888000000002,0 156.7455,50.98777000000001,0 156.7461,51.07443,0 156.7016,51.09833,0 156.708,51.18444,0 156.6736,51.22943000000001,0 156.5514,51.27388,0 156.518,51.32277,0 156.5164,51.41667,0 156.4727,51.51361000000001,0 156.4919,51.93166000000001,0 156.4247,52.20916,0 156.2775,52.52361,0 156.3655,52.49527,0 156.37,52.44249,0 156.4411,52.52083,0 156.365,52.51666,0 156.2608,52.56722,0 156.1033,52.84916,0 156.0858,53.09778000000001,0 155.9194,53.83749,0 155.9408,53.84694,0 155.6994,54.51250000000001,0 155.5441,55.3036,0 155.6183,55.62138,0 155.6461,55.91194000000002,0 155.6986,56.06554000000001,0 155.76,56.1061,0 155.7361,56.13693,0 155.9408,56.63360999999999,0 156.1044,56.81527000000001,0 156.1689,56.83526000000001,0 156.0747,56.75999000000002,0 156.0633,56.71471,0 156.1978,56.81694000000001,0 156.1997,56.85666,0 156.4544,56.95722,0 156.5472,57.1075,0 156.6794,57.0425,0 156.7194,57.08416,0 156.6953,57.10860000000001,0 156.9778,57.41444,0 156.9805,57.52777,0 156.9355,57.64054,0 156.8455,57.72554000000002,0 156.7488,57.72833000000001,0 156.7869,57.76361,0 156.985,57.85361,0 157.0489,57.80028,0 157.1744,57.77193000000001,0 157.4064,57.785,0 157.5038,57.82619,0 157.5038,61.80479,0 157.9,61.78556,0 158.0283,61.72999,0 158.2978,61.82167,0 158.4377,61.82444,0 158.5189,61.79167000000001,0 158.6333,61.83500000000001,0 158.8472,61.81777,0 158.8386,61.85749,0 158.9055,61.89582,0 159.2475,61.92222,0 159.3697,61.88777000000001,0 159.3816,61.85917,0 159.3341,61.82666,0 159.4458,61.77443,0 159.5378,61.82027000000001,0 159.485,61.7197,0 159.5311,61.66276,0 159.6711,61.7236,0 159.8375,61.71221,0 159.9602,61.82333000000001,0 160.3549,61.94749000000001,0 160.3344,61.92333,0 160.3652,61.9086,0 160.3452,61.87082000000001,0 160.3736,61.84276,0 160.3461,61.81889,0 160.3738,61.77804,0 160.2372,61.70249,0 160.2839,61.66249,0 160.2311,61.63611,0 160.2297,61.56361,0 160.0083,61.46194000000001,0 160.0791,61.44833,0 160.0255,61.41526,0 160.0369,61.38694,0 159.9708,61.39861000000001,0 159.8905,61.32861,0 159.9922,61.30888,0 159.9325,61.28334,0 159.84,61.31192999999999,0 159.7455,61.25083,0 159.918,61.24888,0 159.9011,61.21083,0 159.9516,61.1825,0 159.94,61.14360000000001,0 159.9769,61.12111,0 159.7964,60.97776,0 159.7805,60.94083,0 159.8705,60.9286,0 160.1642,61.05082,0 160.4319,61.04721,0 160.3322,60.9547,0 160.3519,60.92221,0 160.1619,60.83778,0 160.2247,60.78443999999999,0 160.2247,60.73721,0 160.1852,60.68888,0 160.1244,60.6786,0 160.1378,60.58359999999999,0 160.2611,60.62555,0 160.3533,60.69332,0 160.3389,60.71776,0 160.3777,60.75139999999999,0 160.4228,60.75722,0 160.4003,60.73332,0 160.443,60.71249,0 160.5602,60.75861,0 160.6186,60.7311,0 160.6705,60.77638,0 160.7978,60.73527,0 160.9008,60.90942,0 161.1658,61.00054,0 161.2161,61.06555,0 161.43,61.13221000000001,0 161.4155,61.16693,0 161.473,61.20444000000001,0 161.5725,61.20193,0 161.6155,61.24305,0 161.5633,61.26694000000001,0 161.7422,61.30804000000001,0 161.8005,61.38082000000001,0 161.8658,61.35054,0 161.883,61.42944,0 161.9286,61.37778,0 162.023,61.41777,0 162.0422,61.45555,0 162.2875,61.58943,0 162.2883,61.62471000000001,0 162.4478,61.67067000000001,0 162.3959,61.93176,0 162.3335,61.98738,0 162.4909,61.99523,0 162.5376,62.0244,0 162.5609,62.07495,0 162.5421,62.11821000000001,0 162.1606,62.20911000000001,0 162.1591,62.23799,0 162.529,62.28267000000001,0 162.7042,62.35186,0 162.7746,62.47603,0 162.72,62.65807,0 162.8105,62.71667000000002,0 162.6456,62.77090000000001,0 162.633,62.83200000000002,0 162.5737,62.85993,0 162.244,62.93481,0 162.1873,62.96365000000001,0 162.169,63.02766,0 162.2438,63.13342000000001,0 162.5314,63.12977,0 162.6071,63.20139000000001,0 162.835,63.26305,0 162.8369,63.33097,0 162.7222,63.37083,0 162.6794,63.42236000000001,0 162.9894,63.51587000000001,0 162.9543,63.65721000000001,0 162.7899,63.71773,0 162.6724,63.80212,0 162.7401,63.85479,0 162.9514,63.91394,0 162.8791,64.04618000000001,0 162.7434,64.14100000000001,0 162.7443,64.17494000000001,0 163.0435,64.23567,0 163.2118,64.2088,0 163.2748,64.25255,0 163.2731,64.30114,0 163.3588,64.38509000000001,0 163.1747,64.62662,0 163.1777,64.67222,0 163.2627,64.74456000000001,0 163.1694,64.79909000000001,0 163.1754,64.69203,0 163.1004,64.66866,0 162.7342,64.67844,0 162.4811,64.75023,0 162.2872,64.74589,0 161.8677,64.81350000000001,0 161.595,64.98701,0 161.2346,65.12815000000001,0 160.4545,65.15871,0 160.2953,65.31647,0 160.0269,65.49356,0 159.2512,65.61183,0 159.01,65.70184,0 158.8529,65.72281,0 158.9386,65.85458000000001,0 158.9673,65.98079,0 159.1812,66.14093,0 159.2178,66.20954999999999,0 158.7805,66.2747,0 158.5064,66.35485,0 158.4219,66.36732000000001,0 158.2673,66.45123,0 158.2896,66.48923000000001,0 158.4739,66.56100000000001,0 158.6252,66.67805,0 158.8488,66.78941,0 158.8598,66.84213,0 158.7453,66.92084,0 158.7005,67.06403,0 158.5028,67.09791,0 157.8414,67.30539,0 157.822,67.39413999999999,0 157.6332,67.61433,0 157.6639,67.70263,0 157.772,67.74168,0 158.1298,67.73808,0 158.2565,67.76581,0 158.1858,67.82414000000001,0 157.9457,67.8794,0 157.957,67.91137000000001,0 158.1873,68.05862000000001,0 158.4859,68.15252,0 158.8942,68.17033000000001,0 159.219,68.22060000000001,0 159.4943,68.19717,0 159.6493,68.22415,0 159.7156,68.27837,0 160.0085,68.31707,0 160.4726,68.27036,0 160.8015,68.27876000000001,0 161.3543,68.46493,0 161.9774,68.33798,0 162.4043,68.32226,0 162.516,68.39265,0 162.5248,68.5097,0 162.6575,68.64811,0 162.4721,68.75452,0 162.5342,68.81356,0 162.6687,68.86439000000001,0 162.5952,68.95761,0 162.4924,69.00284000000001,0 162.4894,69.04481,0 162.5256,69.11716,0 162.5843,69.15031000000001,0 162.8192,69.22402,0 162.4407,69.38332,0 162.1934,69.42339,0 162.1759,69.45047,0 162.2592,69.52155000000001,0 162.271,69.58094000000001,0 162.4037,69.67095000000001,0 162.3981,69.86644,0 162.2945,69.98492,0 160.9,70.04337,0 160.6752,70.07872999999999,0 160.3981,70.18025,0 159.7593,71.32091,0 162.5346,71.32091,0 167.5346,71.32091,0 172.5346,71.32091,0 172.5346,74.89999,0 172.5346,79.90000000000001,0 172.5346,84.90001,0 172.5346,89.90000000000001,0 173.4678,89.90000000000001,0 174.401,89.90000000000001,0 175.3341,89.90000000000001,0 176.2673,89.90000000000001,0 177.2005,89.90000000000001,0 178.1337,89.90000000000001,0 179.0668,89.90000000000001,0 180,89.90000000000001,0 180,88.95238000000001,0 180,83.95238000000002,0 180,78.95237,0 180,73.95238000000001,0 180,68.95238000000001,0 + + + 1 + + + + + GMT +12:45 + + +]]> + #khStyle1275 + + + + + +180,-46.50451,0 176.0435,-46.50451,0 176.0435,-45.19365,0 177.8549,-43.00097,0 180,-43.00097,0 180,-46.50451,0 + + + 1 + + + + + +-175.0824,-46.50682,0 -180,-46.50682,0 -180,-43.00079,0 -175.0824,-43.00079,0 -175.0824,-46.50682,0 + + + 1 + + + + + GMT +13:00 + + +]]> + #khStyle1300 + + + + +-180,-21.87818,0 -177,-20.99139,0 -177,-15.99139,0 -177,-15,0 -172.5,-15,0 -172.5,-20,0 -172.5,-23.5,0 -175,-23.5,0 -180,-23.5,0 -180,-21.87818,0 + + + 1 + + + + diff --git a/master/examples/data/ogcsample.xml b/edit/examples/data/ogcsample.xml similarity index 100% rename from master/examples/data/ogcsample.xml rename to edit/examples/data/ogcsample.xml diff --git a/edit/examples/data/topojson/world-110m.json b/edit/examples/data/topojson/world-110m.json new file mode 100644 index 0000000000..2f4dd1fa57 --- /dev/null +++ b/edit/examples/data/topojson/world-110m.json @@ -0,0 +1 @@ +{"type":"Topology","transform":{"scale":[0.0036000360003600037,0.0016925586033320111],"translate":[-180,-85.60903777459777]},"objects":{"land":{"type":"MultiPolygon","arcs":[[[0]],[[1]],[[2]],[[3]],[[4]],[[5]],[[6]],[[7,8,9]],[[10,11]],[[12]],[[13]],[[14]],[[15]],[[16]],[[17]],[[18]],[[19]],[[20]],[[21]],[[22]],[[23]],[[24]],[[25]],[[26]],[[27]],[[28]],[[29,30]],[[31]],[[32]],[[33]],[[34]],[[35]],[[36]],[[37]],[[38]],[[39]],[[40]],[[41]],[[42,43]],[[44]],[[45]],[[46]],[[47,48,49,50]],[[51]],[[52]],[[53]],[[54]],[[55]],[[56]],[[57]],[[58]],[[59]],[[60]],[[61]],[[62,63]],[[64]],[[65]],[[66]],[[67]],[[68]],[[69]],[[70]],[[71]],[[72]],[[73]],[[74]],[[75]],[[76,77]],[[78]],[[79]],[[80]],[[81]],[[82]],[[83]],[[84]],[[85]],[[86]],[[87]],[[88]],[[89]],[[90,91]],[[92]],[[93]],[[94]],[[95]],[[96]],[[97]],[[98]],[[99]],[[100]],[[101]],[[102]],[[103]],[[104]],[[105]],[[106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221]],[[222,223]],[[224]],[[225]],[[226]],[[227]],[[228]],[[229]],[[230,231,232,233]],[[234]],[[235]],[[236]],[[237]],[[238]],[[239]],[[240]],[[241]],[[242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477],[478,479,480,481,482,483,484]],[[485]],[[486]],[[487]],[[488]],[[489]],[[490]],[[491]],[[492]],[[493]],[[494]],[[495]],[[496]],[[497]],[[498]]]},"countries":{"type":"GeometryCollection","geometries":[{"type":"Polygon","arcs":[[499,500,501,502,503,504]],"id":4},{"type":"MultiPolygon","arcs":[[[505,506,352,507]],[[354,508,509]]],"id":24},{"type":"Polygon","arcs":[[510,511,414,512,513,514]],"id":8},{"type":"Polygon","arcs":[[312,515,314,516,517]],"id":784},{"type":"MultiPolygon","arcs":[[[518,11]],[[519,520,521,166,522,168,523,524]]],"id":32},{"type":"Polygon","arcs":[[525,526,527,528,529]],"id":51},{"type":"MultiPolygon","arcs":[[[0]],[[1]],[[2]],[[3]],[[4]],[[5]],[[6]],[[530,531]]],"id":10},{"type":"Polygon","arcs":[[13]],"id":260},{"type":"MultiPolygon","arcs":[[[14]],[[24]]],"id":36},{"type":"Polygon","arcs":[[532,533,534,535,536,537,538]],"id":40},{"type":"MultiPolygon","arcs":[[[539,-528]],[[484,540,479,541,-526,542,543]]],"id":31},{"type":"Polygon","arcs":[[544,545,546]],"id":108},{"type":"Polygon","arcs":[[547,548,549,550,437]],"id":56},{"type":"Polygon","arcs":[[551,552,553,554,366]],"id":204},{"type":"Polygon","arcs":[[555,556,557,-553,558,559]],"id":854},{"type":"Polygon","arcs":[[560,561,289,562]],"id":50},{"type":"Polygon","arcs":[[563,404,564,565,566,567]],"id":100},{"type":"MultiPolygon","arcs":[[[71]],[[73]],[[74]]],"id":44},{"type":"Polygon","arcs":[[568,569,570]],"id":70},{"type":"Polygon","arcs":[[571,572,573,574,575]],"id":112},{"type":"Polygon","arcs":[[576,145,577]],"id":84},{"type":"Polygon","arcs":[[578,579,580,581,-525]],"id":68},{"type":"Polygon","arcs":[[-521,582,-581,583,584,585,586,587,588,164,589]],"id":76},{"type":"Polygon","arcs":[[48,590]],"id":96},{"type":"Polygon","arcs":[[591,592]],"id":64},{"type":"Polygon","arcs":[[593,594,595,596]],"id":72},{"type":"Polygon","arcs":[[597,598,599,600,601,602,603]],"id":140},{"type":"MultiPolygon","arcs":[[[84]],[[85]],[[86]],[[87]],[[88]],[[96]],[[97]],[[99]],[[101]],[[103]],[[604,107,605,109,606,111,607,113,608,115,609,117,610,199,611,201,612,215,613,217,614,219,615,221]],[[616,223]],[[224]],[[225]],[[226]],[[227]],[[229]],[[230,617,232,618]],[[235]],[[237]],[[238]],[[240]],[[241]],[[485]],[[486]],[[488]],[[489]],[[490]],[[496]],[[497]]],"id":124},{"type":"Polygon","arcs":[[-536,619,620,621]],"id":756},{"type":"MultiPolygon","arcs":[[[-519,622,623,624]],[[-524,169,625,171,626,-579]]],"id":152},{"type":"MultiPolygon","arcs":[[[64]],[[627,274,628,276,629,278,630,280,631,632,633,634,635,-593,636,637,638,639,-503,640,641,642,643,644,645]]],"id":156},{"type":"Polygon","arcs":[[369,646,647,648,-556,649]],"id":384},{"type":"Polygon","arcs":[[650,651,652,359,653,654,655,656,-604,657]],"id":120},{"type":"Polygon","arcs":[[658,659,-545,660,661,662,663,-508,353,-510,664,-602,665]],"id":180},{"type":"Polygon","arcs":[[-509,355,666,-658,-603,-665]],"id":178},{"type":"Polygon","arcs":[[667,174,668,155,669,-585,670]],"id":170},{"type":"Polygon","arcs":[[178,671,151,672]],"id":188},{"type":"Polygon","arcs":[[70]],"id":192},{"type":"Polygon","arcs":[[77,673]],"id":-99},{"type":"Polygon","arcs":[[76,-674]],"id":196},{"type":"Polygon","arcs":[[-538,674,675,676]],"id":203},{"type":"Polygon","arcs":[[445,677,-675,-537,-622,678,679,-549,680,441,681]],"id":276},{"type":"Polygon","arcs":[[337,682,683,684]],"id":262},{"type":"MultiPolygon","arcs":[[[92]],[[-682,442,685,444]]],"id":208},{"type":"Polygon","arcs":[[62,686]],"id":214},{"type":"Polygon","arcs":[[687,688,689,690,691,384,692,693]],"id":12},{"type":"Polygon","arcs":[[173,-668,694]],"id":218},{"type":"Polygon","arcs":[[333,695,696,390,697]],"id":818},{"type":"Polygon","arcs":[[698,699,700,336,-685]],"id":232},{"type":"Polygon","arcs":[[431,701,433,702,427,703,429,704]],"id":724},{"type":"Polygon","arcs":[[450,705,706]],"id":233},{"type":"Polygon","arcs":[[-684,707,708,709,710,711,712,-699]],"id":231},{"type":"Polygon","arcs":[[713,452,714,715,455,716,717]],"id":246},{"type":"MultiPolygon","arcs":[[[18]],[[19]],[[20]]],"id":242},{"type":"Polygon","arcs":[[12]],"id":238},{"type":"MultiPolygon","arcs":[[[718,719,163,-589]],[[82]],[[720,-679,-621,721,426,-703,434,722,436,-551]]],"id":250},{"type":"Polygon","arcs":[[356,723,-651,-667]],"id":266},{"type":"MultiPolygon","arcs":[[[724,90]],[[725,726,727,728,729,730,731,732]]],"id":826},{"type":"Polygon","arcs":[[400,733,-543,-530,734]],"id":268},{"type":"Polygon","arcs":[[368,-650,-560,735]],"id":288},{"type":"Polygon","arcs":[[736,737,374,738,739,740,-648]],"id":324},{"type":"Polygon","arcs":[[741,377]],"id":270},{"type":"Polygon","arcs":[[375,742,-739]],"id":624},{"type":"Polygon","arcs":[[357,-652,-724]],"id":226},{"type":"MultiPolygon","arcs":[[[78]],[[407,743,409,744,411,745,413,-512,746,-566,747]]],"id":300},{"type":"Polygon","arcs":[[498]],"id":304},{"type":"Polygon","arcs":[[185,748,-578,146,749,750]],"id":320},{"type":"Polygon","arcs":[[161,751,-587,752]],"id":328},{"type":"Polygon","arcs":[[182,753,754,-750,147,755,149,756]],"id":340},{"type":"Polygon","arcs":[[757,-571,758,417,759,419,760,761]],"id":191},{"type":"Polygon","arcs":[[-687,63]],"id":332},{"type":"Polygon","arcs":[[-533,762,763,764,765,-762,766]],"id":348},{"type":"MultiPolygon","arcs":[[[26]],[[767,30]],[[31]],[[32]],[[35]],[[36]],[[39]],[[40]],[[768,43]],[[44]],[[45]],[[769,50]],[[46]]],"id":360},{"type":"Polygon","arcs":[[-639,770,-637,-592,-636,771,-563,290,772,292,773,294,774,296,775]],"id":356},{"type":"Polygon","arcs":[[91,-725]],"id":372},{"type":"Polygon","arcs":[[776,-505,777,300,778,302,779,780,781,-540,-527,-542,480]],"id":364},{"type":"Polygon","arcs":[[782,783,784,785,786,-781,787]],"id":368},{"type":"Polygon","arcs":[[100]],"id":352},{"type":"Polygon","arcs":[[788,789,-698,391,790,791,792]],"id":376},{"type":"MultiPolygon","arcs":[[[79]],[[80]],[[793,421,794,423,795,425,-722,-620,-535]]],"id":380},{"type":"Polygon","arcs":[[61]],"id":388},{"type":"Polygon","arcs":[[796,-785,797,332,-790,798,-793]],"id":400},{"type":"MultiPolygon","arcs":[[[75]],[[81]],[[83]]],"id":392},{"type":"Polygon","arcs":[[799,800,482,801,-643,802]],"id":398},{"type":"Polygon","arcs":[[342,803,804,805,-710,806]],"id":404},{"type":"Polygon","arcs":[[-803,-642,807,808]],"id":417},{"type":"Polygon","arcs":[[809,810,811,283]],"id":116},{"type":"Polygon","arcs":[[265,812,267,813]],"id":410},{"type":"Polygon","arcs":[[-515,814,815,816]],"id":-99},{"type":"Polygon","arcs":[[304,817,-783]],"id":414},{"type":"Polygon","arcs":[[818,819,-634,820,-811]],"id":418},{"type":"Polygon","arcs":[[-791,392,821]],"id":422},{"type":"Polygon","arcs":[[370,822,372,823,-737,-647]],"id":430},{"type":"Polygon","arcs":[[824,-694,825,388,826,-697,827,828]],"id":434},{"type":"Polygon","arcs":[[52]],"id":144},{"type":"Polygon","arcs":[[829]],"id":426},{"type":"Polygon","arcs":[[830,448,831,-572,832]],"id":440},{"type":"Polygon","arcs":[[-680,-721,-550]],"id":442},{"type":"Polygon","arcs":[[449,-707,833,-573,-832]],"id":428},{"type":"Polygon","arcs":[[-692,834,835,836,837,383]],"id":504},{"type":"Polygon","arcs":[[838,839]],"id":498},{"type":"Polygon","arcs":[[23]],"id":450},{"type":"Polygon","arcs":[[840,-577,-749,186,841,188,842,190,843,192,844,194,845]],"id":484},{"type":"Polygon","arcs":[[-817,846,-567,-747,-511]],"id":807},{"type":"Polygon","arcs":[[847,-689,848,-557,-649,-741,849]],"id":466},{"type":"Polygon","arcs":[[287,-561,-772,-635,-820,850]],"id":104},{"type":"Polygon","arcs":[[416,-759,-570,851,-815,-514,852]],"id":499},{"type":"Polygon","arcs":[[853,-645]],"id":496},{"type":"Polygon","arcs":[[854,344,855,856,347,857,858,859,860,861,862]],"id":508},{"type":"Polygon","arcs":[[863,379,864,-690,-848]],"id":478},{"type":"Polygon","arcs":[[-863,865,866]],"id":454},{"type":"MultiPolygon","arcs":[[[285,867]],[[-770,47,-591,49]]],"id":458},{"type":"Polygon","arcs":[[351,-507,868,-595,869]],"id":516},{"type":"Polygon","arcs":[[17]],"id":540},{"type":"Polygon","arcs":[[-558,-849,-688,-825,870,-656,871,-554]],"id":562},{"type":"Polygon","arcs":[[361,872,363,873,365,-555,-872,-655]],"id":566},{"type":"Polygon","arcs":[[179,874,181,-757,150,-672]],"id":558},{"type":"Polygon","arcs":[[-681,-548,438,875,440]],"id":528},{"type":"MultiPolygon","arcs":[[[876,-718,877,457,878,459,879,461]],[[487]],[[492]],[[493]]],"id":578},{"type":"Polygon","arcs":[[-771,-638]],"id":524},{"type":"MultiPolygon","arcs":[[[15]],[[16]]],"id":554},{"type":"MultiPolygon","arcs":[[[880,319,881,882,883,-517,315,884,317]],[[-516,313]]],"id":512},{"type":"Polygon","arcs":[[-640,-776,297,885,299,-778,-504]],"id":586},{"type":"Polygon","arcs":[[175,886,177,-673,152,887,154,-669]],"id":591},{"type":"Polygon","arcs":[[-627,172,-695,-671,-584,-580]],"id":604},{"type":"MultiPolygon","arcs":[[[51]],[[54]],[[55]],[[56]],[[57]],[[58]],[[59]]],"id":608},{"type":"MultiPolygon","arcs":[[[37]],[[38]],[[-769,42]],[[41]]],"id":598},{"type":"Polygon","arcs":[[-678,446,888,-833,-576,889,890,-676]],"id":616},{"type":"Polygon","arcs":[[60]],"id":630},{"type":"Polygon","arcs":[[262,891,264,-814,892,269,893,271,894,273,-628,895]],"id":408},{"type":"Polygon","arcs":[[-705,430]],"id":620},{"type":"Polygon","arcs":[[-582,-583,-520]],"id":600},{"type":"Polygon","arcs":[[-799,-789]],"id":275},{"type":"Polygon","arcs":[[308,896,310,897]],"id":634},{"type":"Polygon","arcs":[[898,-840,899,403,-564,900,-765]],"id":642},{"type":"MultiPolygon","arcs":[[[89]],[[-889,447,-831]],[[102]],[[104]],[[105]],[[228]],[[234]],[[236]],[[239]],[[901,243,902,245,903,247,904,249,905,251,906,253,907,255,908,257,909,259,910,261,-896,-646,-854,-644,-802,483,-544,-734,401,911,-574,-834,-706,451,-714,-877,912,913,914,915,464,916,466,917,468,918,470,919,920,473,921,475,922,477]],[[491]],[[494]],[[495]]],"id":643},{"type":"Polygon","arcs":[[923,-546,-660,924]],"id":646},{"type":"Polygon","arcs":[[-691,-865,380,-835]],"id":732},{"type":"Polygon","arcs":[[925,329,926,331,-798,-784,-818,305,927,307,-898,311,-518,-884,928]],"id":682},{"type":"Polygon","arcs":[[-599,929,-828,-696,334,-700,-713,930,931,932]],"id":729},{"type":"Polygon","arcs":[[-711,-806,933,-666,-601,934,-932,935]],"id":728},{"type":"Polygon","arcs":[[378,-864,-850,-740,-743,376,-742]],"id":686},{"type":"MultiPolygon","arcs":[[[25]],[[27]],[[28]],[[33]],[[34]]],"id":90},{"type":"Polygon","arcs":[[373,-738,-824]],"id":694},{"type":"Polygon","arcs":[[184,-751,-755,936]],"id":222},{"type":"Polygon","arcs":[[-708,-683,338,937,340,938]],"id":-99},{"type":"Polygon","arcs":[[-807,-709,-939,341]],"id":706},{"type":"Polygon","arcs":[[-568,-847,-816,-852,-569,-758,-766,-901]],"id":688},{"type":"Polygon","arcs":[[162,-720,939,-588,-752]],"id":740},{"type":"Polygon","arcs":[[-891,940,-763,-539,-677]],"id":703},{"type":"Polygon","arcs":[[-534,-767,-761,420,-794]],"id":705},{"type":"Polygon","arcs":[[-878,-717,456]],"id":752},{"type":"Polygon","arcs":[[941,-859]],"id":748},{"type":"Polygon","arcs":[[-797,-792,-822,393,942,-786]],"id":760},{"type":"Polygon","arcs":[[-871,-829,-930,-598,-657]],"id":148},{"type":"Polygon","arcs":[[-736,-559,-552,367]],"id":768},{"type":"Polygon","arcs":[[284,-868,286,-851,-819,-810]],"id":764},{"type":"Polygon","arcs":[[-808,-641,-502,943]],"id":762},{"type":"Polygon","arcs":[[-777,481,-801,944,-500]],"id":795},{"type":"Polygon","arcs":[[29,-768]],"id":626},{"type":"Polygon","arcs":[[53]],"id":780},{"type":"Polygon","arcs":[[-693,385,945,387,-826]],"id":788},{"type":"MultiPolygon","arcs":[[[399,-735,-529,-782,-787,-943,394,946,947,397,948]],[[949,-748,-565,405]]],"id":792},{"type":"Polygon","arcs":[[72]],"id":158},{"type":"Polygon","arcs":[[-804,343,-855,-867,950,-663,951,-661,-547,-924,952]],"id":834},{"type":"Polygon","arcs":[[-925,-659,-934,-805,-953]],"id":800},{"type":"Polygon","arcs":[[-912,402,-900,-839,-899,-764,-941,-890,-575]],"id":804},{"type":"Polygon","arcs":[[-590,165,-522]],"id":858},{"type":"MultiPolygon","arcs":[[[65]],[[66]],[[67]],[[68]],[[69]],[[118,953,120,954,122,955,124,956,126,957,128,958,130,959,132,960,134,961,136,962,138,963,140,964,142,-846,195,965,966,967,968,969,-611]],[[93]],[[95]],[[98]],[[-613,202,970,204,971,206,972,208,973,210,974,212,975,214]]],"id":840},{"type":"Polygon","arcs":[[-945,-800,-809,-944,-501]],"id":860},{"type":"Polygon","arcs":[[156,976,158,977,160,-753,-586,-670]],"id":862},{"type":"Polygon","arcs":[[282,-812,-821,-633]],"id":704},{"type":"MultiPolygon","arcs":[[[21]],[[22]]],"id":548},{"type":"Polygon","arcs":[[321,978,323,979,325,980,327,-929,-883,981]],"id":887},{"type":"Polygon","arcs":[[982,350,-870,-594,983,-860,-942,-858,348],[-830]],"id":710},{"type":"Polygon","arcs":[[-866,-862,984,-596,-869,-506,-664,-951]],"id":894},{"type":"Polygon","arcs":[[-984,-597,-985,-861]],"id":716}]}},"arcs":[[[31586,3163],[625,-23],[599,-58],[207,243],[147,208],[288,-243],[-82,-301],[-81,-266],[-582,81],[-621,-35],[-348,197],[0,23],[-152,174]],[[4524,4144],[169,220],[517,-93],[277,-185],[212,-209],[76,-266],[-533,-81],[-364,208],[-163,209],[-11,35],[-180,162]],[[34954,2940],[49,243],[593,162],[239,197],[174,254],[126,220],[168,209],[180,243],[141,0],[414,127],[419,-127],[342,-255],[120,-359],[33,-254],[11,-301],[-430,-186],[-452,-150],[-522,-139],[-582,-116],[-658,35],[-365,197]],[[15938,7061],[60,197],[332,-104],[359,-93],[332,104],[-158,-208],[-261,-151],[-386,47],[-278,208]],[[14643,7177],[202,127],[277,-139],[425,-231],[-164,23],[-359,58],[-381,162]],[[21575,8103],[174,104],[353,-81],[403,-46],[305,-81],[304,69],[163,-335],[-217,46],[-337,-23],[-343,23],[-376,-35],[-283,116],[-146,243]],[[29163,8241],[305,231],[190,70],[321,-23],[82,301],[16,219],[-6,475],[158,278],[256,93],[147,-220],[65,-220],[120,-267],[92,-254],[76,-267],[33,-266],[-49,-231],[-76,-220],[-326,-81],[-311,-116],[-364,11],[136,232],[-327,-81],[-310,-81],[-212,174],[-16,243]],[[794,704],[78,49],[94,61],[81,52],[41,26]],[[1088,892],[41,-1],[29,-10]],[[1158,881],[402,-246],[352,246],[63,34],[816,104],[265,-138],[130,-71],[419,-196],[789,-151],[625,-185],[1072,-139],[800,162],[1181,-116],[669,-185],[734,174],[773,162],[60,278],[-1094,23],[-898,139],[-234,231],[-745,128],[49,266],[103,243],[104,220],[-55,243],[-462,162],[-212,209],[-430,185],[675,-35],[642,93],[402,-197],[495,173],[457,220],[223,197],[-98,243],[-359,162],[-408,174],[-571,35],[-500,81],[-539,58],[-180,220],[-359,185],[-217,208],[-87,672],[136,-58],[250,-185],[457,58],[441,81],[228,-255],[441,58],[370,127],[348,162],[315,197],[419,58],[-11,220],[-97,220],[81,208],[359,104],[163,-196],[425,115],[321,151],[397,12],[375,57],[376,139],[299,128],[337,127],[218,-35],[190,-46],[414,81],[370,-104],[381,11],[364,81],[375,-57],[414,-58],[386,23],[403,-12],[413,-11],[381,23],[283,174],[337,92],[349,-127],[331,104],[300,208],[179,-185],[98,-208],[180,-197],[288,174],[332,-220],[375,-70],[321,-162],[392,35],[354,104],[418,-23],[376,-81],[381,-104],[147,254],[-180,197],[-136,209],[-359,46],[-158,220],[-60,220],[-98,440],[213,-81],[364,-35],[359,35],[327,-93],[283,-174],[119,-208],[376,-35],[359,81],[381,116],[342,70],[283,-139],[370,46],[239,451],[224,-266],[321,-104],[348,58],[228,-232],[365,-23],[337,-69],[332,-128],[218,220],[108,209],[278,-232],[381,58],[283,-127],[190,-197],[370,58],[288,127],[283,151],[337,81],[392,69],[354,81],[272,127],[163,186],[65,254],[-32,244],[-87,231],[-98,232],[-87,231],[-71,209],[-16,231],[27,232],[130,220],[109,243],[44,231],[-55,255],[-32,232],[136,266],[152,173],[180,220],[190,186],[223,173],[109,255],[152,162],[174,151],[267,34],[174,186],[196,115],[228,70],[202,150],[157,186],[218,69],[163,-151],[-103,-196],[-283,-174],[-120,-127],[-206,92],[-229,-58],[-190,-139],[-202,-150],[-136,-174],[-38,-231],[17,-220],[130,-197],[-190,-139],[-261,-46],[-153,-197],[-163,-185],[-174,-255],[-44,-220],[98,-243],[147,-185],[229,-139],[212,-185],[114,-232],[60,-220],[82,-232],[130,-196],[82,-220],[38,-544],[81,-220],[22,-232],[87,-231],[-38,-313],[-152,-243],[-163,-197],[-370,-81],[-125,-208],[-169,-197],[-419,-220],[-370,-93],[-348,-127],[-376,-128],[-223,-243],[-446,-23],[-489,23],[-441,-46],[-468,0],[87,-232],[424,-104],[311,-162],[174,-208],[-310,-185],[-479,58],[-397,-151],[-17,-243],[-11,-232],[327,-196],[60,-220],[353,-220],[588,-93],[500,-162],[398,-185],[506,-186],[690,-92],[681,-162],[473,-174],[517,-197],[272,-278],[136,-220],[337,209],[457,173],[484,186],[577,150],[495,162],[691,12],[680,-81],[560,-139],[180,255],[386,173],[702,12],[550,127],[522,128],[577,81],[614,104],[430,150],[-196,209],[-119,208],[0,220],[-539,-23],[-571,-93],[-544,0],[-77,220],[39,440],[125,128],[397,138],[468,139],[337,174],[337,174],[251,231],[380,104],[376,81],[190,47],[430,23],[408,81],[343,116],[337,139],[305,139],[386,185],[245,197],[261,173],[82,232],[-294,139],[98,243],[185,185],[288,116],[305,139],[283,185],[217,232],[136,277],[202,163],[331,-35],[136,-197],[332,-23],[11,220],[142,231],[299,-58],[71,-220],[331,-34],[360,104],[348,69],[315,-34],[120,-243],[305,196],[283,105],[315,81],[310,81],[283,139],[310,92],[240,128],[168,208],[207,-151],[288,81],[202,-277],[157,-209],[316,116],[125,232],[283,162],[365,-35],[108,-220],[229,220],[299,69],[326,23],[294,-11],[310,-70],[300,-34],[130,-197],[180,-174],[304,104],[327,24],[315,0],[310,11],[278,81],[294,70],[245,162],[261,104],[283,58],[212,162],[152,324],[158,197],[288,-93],[109,-208],[239,-139],[289,46],[196,-208],[206,-151],[283,139],[98,255],[250,104],[289,197],[272,81],[326,116],[218,127],[228,139],[218,127],[261,-69],[250,208],[180,162],[261,-11],[229,139],[54,208],[234,162],[228,116],[278,93],[256,46],[244,-35],[262,-58],[223,-162],[27,-254],[245,-197],[168,-162],[332,-70],[185,-162],[229,-162],[266,-35],[223,116],[240,243],[261,-127],[272,-70],[261,-69],[272,-46],[277,0],[229,-614],[-11,-150],[-33,-267],[-266,-150],[-218,-220],[38,-232],[310,12],[-38,-232],[-141,-220],[-131,-243],[212,-185],[321,-58],[321,104],[153,232],[92,220],[153,185],[174,174],[70,208],[147,289],[174,58],[316,24],[277,69],[283,93],[136,231],[82,220],[190,220],[272,151],[234,115],[153,197],[157,104],[202,93],[277,-58],[250,58],[272,69],[305,-34],[201,162],[142,393],[103,-162],[131,-278],[234,-115],[266,-47],[267,70],[283,-46],[261,-12],[174,58],[234,-35],[212,-127],[250,81],[300,0],[255,81],[289,-81],[185,197],[141,196],[191,163],[348,439],[179,-81],[212,-162],[185,-208],[354,-359],[272,-12],[256,0],[299,70],[299,81],[229,162],[190,174],[310,23],[207,127],[218,-116],[141,-185],[196,-185],[305,23],[190,-150],[332,-151],[348,-58],[288,47],[218,185],[185,185],[250,46],[251,-81],[288,-58],[261,93],[250,0],[245,-58],[256,-58],[250,104],[299,93],[283,23],[316,0],[255,58],[251,46],[76,290],[11,243],[174,-162],[49,-266],[92,-244],[115,-196],[234,-105],[315,35],[365,12],[250,35],[364,0],[262,11],[364,-23],[310,-46],[196,-186],[-54,-220],[179,-173],[299,-139],[310,-151],[360,-104],[375,-92],[283,-93],[315,-12],[180,197],[245,-162],[212,-185],[245,-139],[337,-58],[321,-69],[136,-232],[316,-139],[212,-208],[310,-93],[321,12],[299,-35],[332,12],[332,-47],[310,-81],[288,-139],[289,-116],[195,-173],[-32,-232],[-147,-208],[-125,-266],[-98,-209],[-131,-243],[-364,-93],[-163,-208],[-360,-127],[-125,-232],[-190,-220],[-201,-185],[-115,-243],[-70,-220],[-28,-266],[6,-220],[158,-232],[60,-220],[130,-208],[517,-81],[109,-255],[-501,-93],[-424,-127],[-528,-23],[-234,-336],[-49,-278],[-119,-220],[-147,-220],[370,-196],[141,-244],[239,-219],[338,-197],[386,-186],[419,-185],[636,-185],[142,-289],[800,-128],[53,-45],[208,-175],[767,151],[636,-186],[-99504,-147],[245,344],[501,-185],[32,21]],[[31400,18145],[-92,-239],[-238,-183],[-301,67],[-202,177],[-291,86],[-350,330],[-283,317],[-383,662],[229,-124],[390,-395],[369,-212],[143,271],[90,405],[256,244],[198,-70]],[[30935,19481],[106,-274],[139,-443],[361,-355],[389,-147],[-125,-296],[-264,-29],[-141,208]],[[33000,19946],[333,354],[236,-148],[167,237],[222,-266],[-83,-207],[-375,-177],[-125,207],[-236,-266],[-139,266]],[[69088,21486],[41,244],[19,121],[179,-186],[263,-74],[9,-112],[-77,-269],[-427,-38],[-7,314]],[[90199,26260],[7,271],[181,-52],[269,-204],[151,81],[217,113],[166,-39],[20,-702],[-95,-203],[-29,-476],[-97,162],[-193,-412],[-57,32],[-171,19],[-171,505],[-38,390],[-160,515]],[[96252,23489],[149,438],[349,583],[179,111],[200,225],[238,310],[167,306],[123,441],[106,149],[41,330],[195,273],[61,-251],[63,-244],[198,239],[80,-249],[0,-249],[-103,-274],[-182,-435],[-142,-238],[103,-284],[-214,-7],[-238,-223],[-75,-387],[-157,-597],[-219,-264],[-138,-169],[-256,13],[-180,194],[-302,42],[-46,217]],[[97953,30179],[104,46],[151,-328],[216,-153],[78,-526],[202,-622],[5,403],[126,-161],[41,-447],[224,-192],[188,-48],[158,226],[141,-69],[-67,-524],[-85,-345],[-212,12],[-74,-179],[26,-254],[-41,-110],[-105,-319],[-138,-404],[-214,-236],[-48,155],[-116,85],[160,486],[-91,326],[-299,236],[8,214],[201,206],[47,455],[-13,382],[-113,396],[8,104],[-133,244],[-218,523],[-117,418]],[[95563,38701],[119,-9],[156,-201],[122,-200],[89,-166],[228,-366],[144,-272],[-105,-142],[-153,160],[-199,266],[-179,313],[-184,416],[-38,201]],[[99245,40108],[107,203],[126,-74],[69,98],[96,-171],[-46,-308],[-172,-81],[-153,73],[-27,260]],[[99609,40749],[139,121],[88,33],[163,184],[0,-289],[-177,-145],[-177,-124],[-36,220]],[[0,40798],[0,289],[57,27],[-34,-284],[-23,-32]],[[96438,41032],[10,158],[175,-339],[-92,-78],[-93,259]],[[96285,41938],[133,-182],[45,-476],[-75,74],[-58,-32],[-39,163],[-6,453]],[[62014,37548],[50,426],[128,102],[1,197],[133,447],[25,377],[-65,280],[-52,372],[-23,544],[97,331],[38,375],[138,22],[155,121],[103,107],[122,7],[158,337],[229,364],[83,297],[-38,253],[118,-71],[153,410],[6,356],[92,264],[96,-254],[74,-251],[69,-390],[45,-711],[72,-276],[-28,-284],[-49,-174],[-94,347],[-53,-175],[53,-438],[-24,-250],[-77,-137],[-18,-500],[-109,-689],[-137,-814],[-172,-1120],[-106,-821],[-125,-685],[-226,-140],[-243,-250],[-160,151],[-220,211],[-77,312],[-18,524],[-98,471],[-26,425]],[[81482,35149],[122,-255],[-93,548],[137,-171],[83,-229],[-5,303],[-138,465],[-26,186],[-65,177],[31,341],[56,146],[38,295],[-29,346],[114,425],[21,-450],[118,406],[225,198],[136,252],[212,217],[126,46],[77,-73],[219,220],[168,66],[42,129],[74,54],[153,-14],[292,173],[151,262],[71,316],[163,300],[13,236],[7,321],[194,502],[117,-510],[119,118],[-99,279],[87,287],[122,-128],[34,449],[152,291],[67,233],[140,101],[4,165],[122,-69],[5,148],[122,85],[134,80],[205,-271],[155,-350],[173,-4],[177,-56],[-59,325],[133,473],[126,155],[-44,147],[121,338],[168,208],[142,-70],[234,111],[-5,302],[-204,195],[148,86],[184,-147],[148,-242],[234,-151],[79,60],[172,-182],[162,169],[105,-51],[65,113],[127,-292],[-74,-316],[-105,-239],[-96,-20],[32,-236],[-81,-295],[-99,-291],[20,-166],[221,-327],[214,-189],[143,-204],[201,-350],[78,1],[145,-151],[43,-183],[265,-200],[183,202],[55,317],[56,262],[34,324],[85,470],[-39,286],[20,171],[-32,339],[37,445],[53,120],[-43,197],[67,313],[52,325],[7,168],[104,222],[78,-289],[19,-371],[70,-71],[11,-249],[101,-300],[21,-335],[-10,-214],[100,-464],[179,223],[92,-250],[133,-231],[-29,-262],[60,-506],[42,-295],[70,-72],[75,-505],[-27,-307],[90,-400],[301,-309],[197,-281],[186,-257],[-37,-143],[159,-371],[108,-639],[111,130],[113,-256],[68,91],[48,-626],[197,-363],[129,-226],[217,-478],[78,-475],[7,-337],[-19,-365],[132,-502],[-16,-523],[-48,-274],[-75,-527],[6,-339],[-55,-423],[-123,-538],[-205,-290],[-102,-458],[-93,-292],[-82,-510],[-107,-294],[-70,-442],[-36,-407],[14,-187],[-159,-205],[-311,-22],[-257,-242],[-127,-229],[-168,-254],[-230,262],[-170,104],[43,308],[-152,-112],[-243,-428],[-240,160],[-158,94],[-159,42],[-269,171],[-179,364],[-52,449],[-64,298],[-137,240],[-267,71],[91,287],[-67,438],[-136,-408],[-247,-109],[146,327],[42,341],[107,289],[-22,438],[-226,-504],[-174,-202],[-106,-470],[-217,243],[9,313],[-174,429],[-147,221],[52,137],[-356,358],[-195,17],[-267,287],[-498,-56],[-359,-211],[-317,-197],[-265,39],[-294,-303],[-241,-137],[-53,-309],[-103,-240],[-236,-15],[-174,-52],[-246,107],[-199,-64],[-191,-27],[-165,-315],[-81,26],[-140,-167],[-133,-187],[-203,23],[-186,0],[-295,377],[-149,113],[6,338],[138,81],[47,134],[-10,212],[34,411],[-31,350],[-147,598],[-45,337],[12,336],[-111,385],[-7,174],[-123,235],[-35,463],[-158,467],[-39,252]],[[94810,44550],[166,-142],[56,-22],[78,-203],[-194,4],[-106,363]],[[83046,44933],[259,116],[146,-180],[97,-180],[-17,-159],[-117,-11],[-368,414]],[[94344,44884],[17,235],[183,-93],[91,-124],[45,-155],[-108,-14],[-170,60],[-58,91]],[[94605,45664],[94,0],[100,-473],[111,-283],[-42,-109],[-206,512],[-57,353]],[[84713,45326],[32,139],[239,133],[194,20],[87,74],[105,-74],[-102,-160],[-289,-258],[-233,-170]],[[84746,45030],[-181,-441],[-238,-130],[-33,71],[25,201],[119,360],[275,235]],[[82427,45243],[95,340],[153,5],[74,209],[100,-158],[172,48],[69,-251],[-321,-119],[-193,-79],[-149,5]],[[83311,45374],[0,216],[220,123],[174,-177],[185,45],[249,216],[-41,-328],[-417,-168],[-370,73]],[[93947,46195],[41,60],[128,-142],[228,-272],[65,-187],[12,-119],[-218,251],[-152,212],[-104,197]],[[93469,46582],[14,99],[166,-250],[111,-193],[-56,-33],[-121,134],[-114,243]],[[79267,46532],[191,564],[337,-35],[224,-231],[115,-45],[38,-210],[533,-59],[61,244],[515,-284],[101,-383],[417,-108],[341,-351],[-317,-225],[-306,238],[-251,-16],[-288,44],[-260,106],[-322,225],[-204,59],[-116,-74],[-506,243],[-48,254],[-255,44]],[[87253,46951],[49,212],[58,200],[63,-173],[0,-282],[-143,-402],[-27,445]],[[92920,47543],[38,57],[30,-175],[84,-134],[135,-375],[131,-200],[-39,-166],[-78,-59],[-120,227],[-122,375],[-59,450]],[[91199,47184],[23,183],[249,-86],[152,46],[42,283],[40,15],[27,-314],[158,45],[78,202],[155,211],[-30,348],[166,11],[56,-97],[-5,-327],[-93,-361],[-146,-48],[-44,-166],[-152,-144],[-142,-138],[-148,1],[-228,171],[-158,165]],[[84996,48702],[281,29],[69,-195],[-104,-196],[-192,108],[-54,254]],[[85527,48575],[65,325],[344,24],[305,-172],[101,-452],[-234,244],[-232,49],[-157,-39],[-192,21]],[[91850,48960],[77,143],[150,-166],[94,-130],[117,-142],[111,-248],[106,-189],[33,-307],[-87,-157],[-52,348],[-65,229],[-126,193],[-158,252],[-200,174]],[[89166,49043],[482,-407],[513,-338],[192,-302],[154,-297],[43,-349],[462,-365],[68,-313],[-256,-64],[62,-393],[248,-388],[180,-627],[159,20],[-11,-262],[215,-100],[-84,-111],[295,-249],[-30,-171],[-184,-41],[-69,153],[-238,66],[-281,89],[-216,377],[-158,325],[-144,517],[-362,259],[-235,-169],[-170,-195],[35,-436],[-218,-203],[-155,99],[-288,25]],[[89175,45193],[-247,485],[-282,118],[-69,-168],[-352,-18],[118,481],[175,164],[-72,642],[-134,496],[-538,500],[-229,50],[-417,546],[-82,-287],[-107,-52],[-63,216],[-1,257],[-212,290],[299,213],[198,-11],[-23,156],[-407,1],[-110,352],[-248,109],[-117,293],[374,143],[142,192],[446,-242],[44,-220],[78,-955],[287,-354],[232,627],[319,356],[247,1],[238,-206],[206,-212],[298,-113]],[[82990,48924],[115,387],[40,469],[139,891],[58,243],[237,439],[217,-174],[350,-82],[319,25],[275,429],[48,-132],[-223,-587],[-209,-113],[-267,115],[-463,-29],[-243,-85],[-39,-447],[248,-526],[150,268],[518,201],[-22,-272],[-121,86],[-121,-347],[-245,-229],[263,-757],[-50,-203],[249,-682],[-2,-388],[-148,-173],[-109,207],[134,484],[-273,-229],[-69,164],[36,228],[-200,346],[21,576],[-186,-179],[24,-689],[11,-846],[-176,-85],[-119,173],[79,544],[-43,570],[-117,4],[-86,405]],[[85388,51177],[56,472],[92,215],[20,-322],[164,-52],[26,-241],[-15,-517],[-143,58],[-42,-359],[114,-312],[-78,-71],[-112,374],[-82,755]],[[76470,53817],[178,-24],[430,-114],[246,-577],[215,-401],[153,-246],[263,-635],[283,-9],[233,-405],[161,-495],[211,-270],[-111,-482],[159,-205],[100,-15],[47,-412],[97,-330],[204,-52],[135,-374],[-70,-735],[-11,-914],[-308,-12],[-234,494],[-356,482],[-119,358],[-210,481],[-138,443],[-212,827],[-244,493],[-81,508],[-103,461],[-250,372],[-145,506],[-209,330],[-290,652],[-24,300]],[[80461,51765],[204,-202],[214,110],[56,500],[119,112],[333,128],[199,467],[137,374]],[[81723,53254],[110,221],[236,323]],[[82069,53798],[214,411],[140,462],[112,2],[143,-299],[13,-257],[183,-165],[231,-177],[-20,-232],[-186,-29],[50,-289],[-205,-201]],[[82744,53024],[-158,-533],[204,-560],[-48,-272],[312,-546],[-329,-70],[-93,-403],[12,-535],[-267,-404],[-7,-589],[-107,-903],[-41,210],[-316,-266],[-110,361],[-198,34],[-139,189],[-330,-212],[-101,285],[-182,-32],[-229,68],[-43,793],[-138,164],[-134,505],[-38,517],[32,548],[165,392]],[[83866,54829],[109,498],[175,166],[151,223],[98,-268],[212,162],[45,264],[196,15],[-16,457],[225,-280],[23,-297],[20,-218],[28,-392],[16,-332],[-94,-540],[-102,602],[-130,-300],[89,-435],[-79,-277],[-327,343],[-78,428],[84,280],[-176,280],[-87,-245],[-131,23],[-205,-330],[-46,173]],[[72137,55425],[126,959],[192,-328],[129,-416],[134,-616],[-42,-615],[-116,-168],[-242,-135],[-132,470],[-49,849]],[[32791,56541],[81,163],[-6,233],[160,77],[58,-21],[-11,-440],[-232,-65],[-50,53]],[[83994,56319],[57,158],[70,165],[30,367],[153,35],[-44,-398],[205,570],[-26,-563],[-100,-195],[-87,-373],[-87,-175],[-171,409]],[[82548,55523],[136,414],[200,364],[167,409],[146,587],[49,-482],[-183,-325],[-146,-406],[-369,-561]],[[83856,57606],[166,-183],[177,1],[-5,-247],[-129,-251],[-176,-178],[-10,275],[20,301],[-43,282]],[[84518,57999],[266,-13],[77,-220],[78,-660],[-214,157],[5,-199],[68,-364],[-132,-133],[-11,416],[-84,31],[-43,357],[163,-47],[-4,224],[-169,451]],[[83422,58536],[238,-22],[97,-213],[-74,-510],[-119,295],[-142,450]],[[83300,60248],[112,-195],[29,925],[90,535],[169,-1],[171,-168],[85,153],[26,-150],[-46,-245],[95,-423],[-73,-491],[-164,-196],[-43,-476],[62,-471],[147,-65],[123,70],[347,-328],[-27,-321],[91,-142],[-29,-272],[-216,290],[-103,310],[-71,-217],[-177,354],[-253,-87],[-138,130],[14,244],[87,151],[-83,136],[-36,-213],[-137,340],[-41,257],[-11,566]],[[31321,61436],[40,86],[227,-3],[142,-52],[50,-118],[-71,-149],[-209,4],[-163,-21],[-16,253]],[[28239,61348],[34,135],[116,41],[64,-20],[187,-53],[147,-142],[46,-161],[-195,-11],[-84,-99],[-156,95],[-159,215]],[[30080,62227],[34,101],[217,-3],[165,-152],[73,15],[50,-209],[152,11],[-9,-176],[124,-21],[136,-217],[-103,-240],[-132,128],[-127,-25],[-92,28],[-50,-107],[-106,-37],[-43,144],[-92,-85],[-111,-405],[-71,94],[-14,170]],[[30081,61241],[-185,100],[-131,-41],[-169,43],[-130,-110],[-149,184],[24,190],[256,-82],[210,-47],[100,131],[-127,256],[2,226],[-175,92],[62,163],[170,-26],[241,-93]],[[80173,62023],[137,267],[304,166],[159,-14],[62,-226],[-122,-260],[-64,-341],[-240,-284],[-228,183],[-8,509]],[[6646,62221],[14,65],[48,97],[-19,116],[16,55],[21,-11],[107,-100],[49,-51],[45,-79],[71,-207],[-7,-33],[-108,-126],[-89,-92],[-41,-99],[-69,84],[8,165],[-46,216]],[[6469,62944],[27,50],[99,-56],[73,-90],[-23,-71],[-94,-43],[-47,125],[-32,48],[-3,37]],[[6298,63045],[21,72],[137,-26],[-9,-63],[-149,17]],[[6030,63329],[74,82],[23,-38],[80,-196],[-15,-34],[-19,8],[-97,21],[-35,133],[-11,24]],[[5611,63616],[14,43],[43,58],[64,-12],[5,-138],[-33,-58],[-93,107]],[[26396,63516],[146,183],[60,213],[126,131],[142,116],[210,56],[67,65],[240,-42],[219,-7],[261,-201],[110,-216],[260,66],[98,-138],[235,-366],[173,-267],[92,8],[165,-120],[-20,-167],[205,-24],[210,-242],[-33,-138],[-185,-75],[-187,-29],[-191,46],[-398,-57],[186,329],[-113,154],[-179,39],[-96,171],[-66,336],[-157,-23],[-259,159],[-83,124],[-362,91],[-97,115],[104,148],[-273,30],[-199,-307],[-115,-8],[-40,-144],[-138,-65],[-118,56]],[[28220,65099],[60,375],[84,-23],[97,-491],[1,-343],[-68,-29],[-70,340],[-104,171]],[[83362,64497],[163,581],[223,447],[127,-176],[-49,-357],[-167,-947],[-119,-485],[-146,499],[-32,438]],[[28061,66408],[130,47],[184,-18],[8,-153],[-303,-95],[-19,219]],[[28391,66555],[220,-265],[-48,-420],[-51,75],[4,309],[-124,234],[-1,67]],[[86767,70070],[2,281],[154,352],[158,-68],[114,248],[204,-127],[35,-203],[-156,-357],[-114,189],[-143,-137],[-73,-346],[-181,168]],[[59437,71293],[8,-48],[-285,-240],[-136,77],[-64,237],[132,22]],[[59092,71341],[19,3],[40,143],[200,-8],[253,176],[-188,-251],[21,-111]],[[56531,71424],[52,251],[152,-199],[216,34],[207,-42],[-7,-103],[151,71],[-35,-175],[-400,-50],[3,98],[-339,115]],[[53453,72802],[38,304],[325,-54],[284,64],[211,51],[-100,-465],[41,-183],[-58,-303],[-213,222],[-141,64],[-387,300]],[[52266,74774],[153,-30],[139,183],[166,-419],[-39,-782],[-126,38],[-113,-197],[-105,156],[-11,713],[-64,338]],[[85946,70252],[263,182],[145,371],[280,306],[203,403],[553,177],[297,-121],[291,1050],[185,-282],[408,591],[158,229],[174,723],[-47,664],[117,374],[295,108],[152,-819],[-9,-479],[-256,-595],[4,-610],[-104,-472],[48,-296],[-145,-416],[-355,-278],[-488,-36],[-396,-675],[-186,227],[-12,442],[-483,-130],[-329,-279],[-325,-11],[282,-435],[-186,-1004],[-179,-248],[-135,229],[69,533],[-176,172],[-113,405]],[[52373,75546],[56,219],[179,226],[47,-507],[-92,-456],[-126,120],[-64,398]],[[88837,75727],[138,455],[296,33],[81,817],[83,460],[326,-615],[213,-198],[195,-126],[197,250],[62,-663],[-412,-162],[-244,-587],[-436,404],[-152,-646],[-308,-9],[-39,587]],[[32113,78187],[105,183],[97,-288],[202,-79],[257,16],[-137,-242],[-102,-38],[-353,250],[-69,198]],[[32078,80046],[96,49],[365,-148],[284,-247],[8,-108],[-135,-11],[-360,186],[-258,279]],[[14321,80439],[24,137],[291,-129],[171,-89],[261,-63],[94,-204],[138,-280],[277,-244],[115,-327],[-140,-82],[-456,269],[-84,209],[-248,207],[-50,168],[-286,107],[-107,321]],[[33494,78880],[173,208],[-121,160],[234,356],[287,941],[172,336],[241,204],[129,-26],[-54,-160],[-148,-372],[-184,-517],[181,199],[187,-126],[-98,-206],[247,-162],[128,144],[277,-182],[-86,-433],[194,101],[36,-313],[86,-367],[-117,-520],[-125,-22],[-183,111],[60,484],[-77,75],[-322,-513],[-166,21],[196,277],[-267,144],[-298,-35],[-539,18],[-43,175]],[[12989,82396],[16,188],[131,-76],[267,47],[-84,-671],[242,-475],[-111,1],[-167,270],[-103,272],[-140,184],[-51,260]],[[89331,81264],[24,808],[257,271],[-110,274],[123,83],[73,-391],[96,-569],[-7,-581],[114,-597],[280,-1046],[-411,195],[-171,-854],[271,-605],[-8,-413],[-211,356],[-182,-457],[-51,496],[31,575],[-32,638],[64,446],[13,790],[-163,581]],[[47896,83153],[233,24],[298,-365],[-149,-406]],[[48278,82406],[46,-422],[-210,-528],[-493,-349],[-393,89],[225,617],[-145,601],[378,463],[210,276]],[[53028,83536],[408,195],[88,-296],[-166,-478],[-291,333],[-39,246]],[[7036,84529],[252,210],[148,90],[185,-40],[117,-183],[-240,-281],[-277,-225],[-142,152],[-43,277]],[[48291,84129],[101,611],[216,480],[222,-47],[335,49],[-297,-639],[283,81],[304,-3],[-72,-481],[-250,-530],[287,-38],[270,-759],[190,-95],[171,-673],[79,-233],[337,-113],[-34,-378],[-142,-173],[111,-305],[-250,-310],[-371,6],[-473,-163],[-130,116],[-183,-276],[-257,67],[-195,-226],[-148,118],[407,621],[249,127],[-436,99],[-79,235],[291,183],[-152,319],[52,387],[414,-54],[40,343],[-190,372],[-337,104],[-66,160],[101,264],[-92,163],[-149,-279],[-17,569],[-140,301]],[[3485,86155],[274,101],[220,-54],[27,-226],[-171,-92],[-182,110],[-168,161]],[[27677,87220],[13,41],[107,177],[114,-13],[70,-121],[-108,-310],[-123,50],[-73,176]],[[26668,87478],[207,273],[381,-6],[-6,-114],[-325,-326],[-196,13],[-61,160]],[[2280,88041],[17,223],[171,-113],[173,61],[225,-156],[276,-79],[-23,-64],[-211,-125],[-211,128],[-106,107],[-245,-34],[-66,52]],[[25771,88121],[242,292],[35,465],[95,542],[201,-49],[51,-259],[143,91],[161,-155],[304,-203],[318,-184],[25,-281],[204,46],[199,-196],[-247,-186],[-432,142],[-156,266],[-275,-314],[-396,-306],[-95,346],[-377,-57]],[[43242,89344],[188,385],[421,87],[433,-400],[422,321],[349,-167],[453,315],[461,-42],[-64,-382],[314,-403],[-361,-451],[-801,-405],[-240,-107],[-365,87],[-775,187],[273,261],[-605,289],[492,114],[-12,174],[-583,137]],[[28545,90512],[118,331],[255,82],[217,-163],[3,-253],[-32,-82],[-180,-174],[-312,-30],[-69,289]],[[0,88971],[0,2354],[681,-451],[728,-588],[-24,-367],[187,-147],[-64,429],[754,-88],[544,-553],[-276,-257],[-455,-61],[-7,-578],[-111,-122],[-260,17],[-212,206],[-369,172],[-62,257],[-283,96],[-315,-76],[-151,207],[60,219],[-333,-140],[126,-278],[-158,-251]],[[22278,91583],[245,183],[194,256],[295,-168],[166,-106],[84,-112],[169,-226],[-173,-207],[-374,179],[-226,-65],[-380,266]],[[99645,92586],[354,247],[0,-404],[-305,-30],[-49,187]],[[0,92429],[0,404],[36,24],[235,-1],[402,-169],[-24,-81],[-286,-141],[-363,-36]],[[26228,91219],[16,648],[394,-45]],[[26638,91822],[411,-87],[373,-293],[17,-293],[-207,-315],[196,-316],[-36,-288],[-544,-413],[-386,-91],[-287,178],[-83,-297],[-268,-498]],[[25824,89109],[-81,-258],[-322,-400]],[[25421,88451],[-397,-39],[-220,-250],[-18,-384],[-323,-74],[-340,-479],[-301,-665],[-108,-466]],[[23714,86094],[-15,-686],[408,-99]],[[24107,85309],[125,-553],[130,-448],[388,117],[517,-256],[277,-225],[199,-279]],[[25743,83665],[348,-162],[294,-249]],[[26385,83254],[459,-34],[302,-58],[-45,-511],[86,-594],[201,-661],[414,-561],[214,192],[150,607],[-145,934],[-196,311],[445,276],[314,415],[154,411]],[[28738,83981],[-22,395],[-189,502]],[[28527,84878],[-338,445],[328,619],[-121,535],[-93,922],[194,137],[476,-161],[286,-57],[230,155],[258,-200],[342,-343],[85,-229],[495,-45],[-8,-496],[92,-747],[254,-92],[201,-348],[402,328],[266,652],[184,274],[216,-527],[362,-754],[307,-709],[-112,-371],[370,-333],[250,-338],[442,-152],[179,-189],[110,-500],[216,-78],[112,-223],[20,-664],[-202,-222],[-199,-207],[-458,-210],[-349,-486],[-470,-96],[-594,125],[-417,4],[-287,-41],[-233,-424],[-354,-262],[-401,-782],[-320,-545],[236,97],[446,776],[583,493]],[[31513,79609],[416,59],[245,-290]],[[32174,79378],[-262,-397],[88,-637],[91,-446],[361,-295],[459,86],[278,664],[19,-429],[180,-214],[-344,-387],[-615,-351],[-276,-239],[-310,-426],[-211,44],[-11,500],[483,488],[-445,-19],[-309,-72]],[[31350,77248],[48,-194],[-296,-286],[-286,-204],[-293,-175]],[[30523,76389],[-159,-386],[-35,-98]],[[30329,75905],[-3,-313],[92,-313],[115,-15],[-29,216],[83,-131],[-22,-169],[-188,-96]],[[30377,75084],[-133,12],[-205,-104]],[[30039,74992],[-121,-29],[-162,-29],[-231,-171],[408,111],[82,-112],[-389,-177],[-177,-1],[8,72],[-84,-164],[82,-27],[-60,-424],[-203,-455],[-20,152]],[[29172,73738],[-61,31],[-91,147]],[[29020,73916],[57,-318]],[[29077,73598],[66,-106],[8,-222]],[[29151,73270],[-89,-230],[-157,-472],[-25,24],[86,402]],[[28966,72994],[-142,226],[-33,490]],[[28791,73710],[-53,-255],[59,-375]],[[28797,73080],[-175,88],[183,-186]],[[28805,72982],[12,-562],[79,-41],[29,-204],[39,-591],[-176,-439],[-288,-175],[-182,-346],[-139,-38],[-141,-217],[-39,-199],[-305,-383],[-157,-281],[-131,-351],[-43,-419],[50,-411],[92,-505],[124,-418],[1,-256],[132,-685],[-9,-398],[-12,-230],[-69,-361]],[[27672,65472],[-83,-74],[-137,71]],[[27452,65469],[-44,259]],[[27408,65728],[-106,136],[-147,508]],[[27155,66372],[-129,452],[-42,231],[57,393],[-77,325],[-217,494]],[[26747,68267],[-108,91],[-281,-269]],[[26358,68089],[-49,30]],[[26309,68119],[-135,276],[-174,146]],[[26000,68541],[-314,-75],[-247,66],[-212,-41]],[[25227,68491],[-118,-83],[54,-166]],[[25163,68242],[-5,-240],[59,-117],[-53,-77],[-103,87],[-104,-112],[-202,18]],[[24755,67801],[-207,313],[-242,-74]],[[24306,68040],[-202,137],[-173,-42],[-234,-138],[-253,-438],[-276,-255],[-152,-282],[-63,-266],[-3,-407],[14,-284],[52,-201]],[[23016,65864],[1,-1],[-1,-1],[-107,-516]],[[22909,65346],[-49,-426],[-20,-791],[-27,-289],[48,-322],[86,-288],[56,-458],[184,-440],[65,-337],[109,-291],[295,-157],[114,-247],[244,165],[212,60],[208,106],[175,101],[176,241],[67,345],[22,496],[48,173],[188,155],[294,137],[246,-21],[169,50],[66,-125],[-9,-285],[-149,-351],[-66,-360],[51,-103],[-42,-255],[-69,-461],[-71,152],[-58,-10]],[[25472,61510],[1,-87],[53,-3],[-5,-160],[-45,-256],[24,-91],[-29,-212],[18,-56],[-32,-299],[-55,-156],[-50,-19],[-55,-205]],[[25297,59966],[90,-107],[24,88],[82,-75]],[[25493,59872],[29,-23],[61,104],[79,8],[26,-48],[43,29],[129,-53]],[[25860,59889],[128,16],[90,65]],[[26078,59970],[32,66],[89,-31],[66,-40],[73,14],[55,51],[127,-82],[44,-13],[85,-110],[80,-132],[101,-91],[73,-162]],[[26903,59440],[-24,-57],[-14,-132],[29,-216],[-64,-202],[-30,-237],[-9,-261],[15,-152],[7,-266],[-43,-58],[-26,-253],[19,-156],[-56,-151],[12,-159],[43,-97]],[[26762,57043],[70,-321],[108,-238],[130,-252]],[[27070,56232],[100,-212]],[[27170,56020],[-6,-125],[111,-27]],[[27275,55868],[26,48],[77,-145],[136,42],[119,150],[168,119],[95,176],[153,-34],[-10,-58],[155,-21],[124,-102],[90,-177],[105,-164]],[[28513,55702],[143,-18],[209,412],[114,63],[3,195],[51,500],[159,274],[175,11],[22,123],[218,-49],[218,298],[109,132],[134,285],[98,-36],[73,-156],[-54,-199]],[[30185,57537],[-8,-139],[-163,-69],[91,-268],[-3,-309]],[[30102,56752],[-123,-343],[105,-469]],[[30084,55940],[120,38],[62,427],[-86,208],[-14,447],[346,241],[-38,278],[97,186],[100,-415],[195,-9],[180,-330],[11,-195],[249,-6],[297,61],[159,-264]],[[31762,56607],[213,-73],[155,184]],[[32130,56718],[4,149],[344,35],[333,9],[-236,-175],[95,-279],[222,-44],[210,-291],[45,-473],[144,13],[109,-139]],[[33400,55523],[183,-217],[171,-385],[8,-304],[105,-14],[149,-289],[109,-205]],[[34125,54109],[333,-119],[30,107],[225,43],[298,-159]],[[35011,53981],[95,-65],[204,-140],[294,-499],[46,-242]],[[35650,53035],[95,28],[69,-327],[155,-1033],[149,-97],[7,-408],[-208,-487],[86,-178],[491,-92],[10,-593],[211,388],[349,-212],[462,-361],[135,-346],[-45,-327],[323,182],[540,-313],[415,23],[411,-489],[355,-662],[214,-170],[237,-24],[101,-186],[94,-752],[46,-358],[-110,-977],[-142,-385],[-391,-822],[-177,-668],[-206,-513],[-69,-11],[-78,-435],[20,-1107],[-77,-910],[-30,-390],[-88,-233],[-49,-790],[-282,-771],[-47,-610],[-225,-256],[-65,-355],[-302,2],[-437,-227],[-195,-263],[-311,-173],[-327,-470],[-235,-586],[-41,-441],[46,-326],[-51,-597],[-63,-289],[-195,-325],[-308,-1040],[-244,-468],[-189,-277],[-127,-562],[-183,-337]],[[35174,30629],[-121,-372],[-313,-328],[-205,118],[-151,-63],[-256,253],[-189,-19],[-169,327]],[[33770,30545],[-19,-308],[353,-506],[-38,-408],[173,-257],[-14,-289],[-267,-757],[-412,-317],[-557,-123],[-305,59],[59,-352],[-57,-442],[51,-298],[-167,-208],[-284,-82],[-267,216],[-108,-155],[39,-587],[188,-178],[152,186],[82,-307],[-255,-183],[-223,-367],[-41,-595],[-66,-316],[-262,-2],[-218,-302],[-80,-443]],[[31227,23224],[274,-433],[265,-119]],[[31766,22672],[-96,-531],[-328,-333],[-180,-692],[-254,-234],[-113,-276],[89,-614],[185,-342],[-117,30]],[[30952,19680],[-247,4],[-134,-145],[-250,-213],[-45,-552],[-118,-14],[-313,192],[-318,412],[-346,338],[-87,374],[79,346],[-140,393],[-36,1007],[119,568],[293,457],[-422,172],[265,522],[94,982],[309,-208],[145,1224],[-186,157],[-87,-738],[-175,83],[87,845],[95,1095],[127,404]],[[29661,27385],[-79,576],[-23,666]],[[29559,28627],[117,19],[170,954],[192,945],[118,881],[-64,885],[83,487],[-34,730],[163,721],[50,1143],[89,1227],[87,1321],[-20,967],[-58,832]],[[30452,39739],[-279,340],[-24,242],[-551,593],[-498,646],[-214,365],[-115,488],[46,170],[-236,775],[-274,1090],[-262,1177],[-114,269],[-87,435],[-216,386],[-198,239],[90,264],[-134,563],[86,414],[221,373]],[[27693,48568],[148,442],[-60,258],[-106,-275],[-166,259],[56,167],[-47,536],[97,89],[52,368],[105,381],[-20,241],[153,126],[190,236]],[[28095,51396],[-37,183],[103,44],[-12,296],[65,214],[138,40],[117,371],[106,310],[-102,141],[52,343],[-62,540],[59,155],[-44,500],[-112,315]],[[28366,54848],[-93,170],[-59,319],[68,158],[-70,40]],[[28212,55535],[-52,195],[-138,165]],[[28022,55895],[-122,-38],[-56,-205],[-112,-149],[-61,-20],[-27,-123],[132,-321],[-75,-76],[-40,-87],[-130,-30],[-48,353],[-36,-101],[-92,35],[-56,238],[-114,39],[-72,69],[-119,-1],[-8,-128],[-32,89]],[[26954,55439],[-151,131],[-56,124],[32,103],[-11,130],[-77,142],[-109,116],[-95,76],[-19,173],[-73,105],[18,-172],[-55,-141],[-64,164],[-89,58],[-38,120],[2,179],[36,187],[-78,83],[64,114]],[[26191,57131],[-96,186],[-130,238],[-61,200],[-117,185],[-140,267]],[[25647,58207],[31,92],[46,-89]],[[25724,58210],[21,41]],[[25745,58251],[-48,185]],[[25697,58436],[-84,52],[-31,-140]],[[25582,58348],[-161,9],[-100,57],[-115,117],[-154,37],[-79,127]],[[24973,58695],[-142,103],[-174,11],[-127,117],[-149,244]],[[24381,59170],[-314,636]],[[24067,59806],[-144,192],[-226,154]],[[23697,60152],[-156,-43],[-223,-223],[-140,-58],[-196,156],[-208,112],[-260,271],[-208,83],[-314,275],[-233,282],[-70,158],[-155,35],[-284,187],[-116,270],[-299,335],[-139,373],[-66,288],[93,57],[-29,169],[64,153],[1,204],[-93,266],[-25,235],[-94,298],[-244,587],[-280,462],[-135,368],[-238,241],[-51,145],[42,365]],[[19641,66203],[-142,137],[-164,288]],[[19335,66628],[-69,412],[-149,48],[-162,311],[-130,288],[-12,184],[-149,446],[-99,452],[5,227]],[[18570,68996],[-201,235],[-93,-26]],[[18276,69205],[-159,163],[-44,-240],[46,-284],[27,-444],[95,-243],[206,-407],[46,-139],[42,-42],[37,-203],[49,8],[56,-381],[85,-150],[59,-210],[174,-300],[92,-550],[83,-259],[77,-277],[15,-311],[134,-20],[112,-268],[100,-264],[-6,-106],[-117,-217],[-49,3],[-74,359]],[[19362,64423],[-182,337],[-200,286]],[[18980,65046],[-142,150],[9,432],[-42,320],[-132,183],[-191,264],[-37,-76],[-70,154],[-171,143],[-164,343],[20,44],[115,-33],[103,221],[10,266],[-214,422],[-163,163],[-102,369],[-103,388],[-129,472],[-113,531]],[[17464,69802],[-46,302],[-180,340],[-130,71],[-30,169],[-156,30],[-100,159],[-258,59]],[[16564,70932],[-70,95],[-34,324]],[[16460,71351],[-270,594],[-231,821],[10,137],[-123,195],[-215,495],[-38,482],[-148,323],[61,489],[-10,507],[-89,453],[109,557],[67,1072],[-50,792],[-88,506],[-80,274],[33,115],[402,-200],[148,-558]],[[15948,78405],[68,156],[-44,485],[-94,484]],[[15878,79530],[-38,1],[-537,581],[-199,255]],[[15104,80367],[-503,245],[-155,523],[40,362]],[[14486,81497],[-356,252],[-48,476],[-336,429],[-6,304]],[[13740,82958],[-153,223],[-245,188],[-78,515],[-358,478],[-150,558],[-267,38],[-441,15],[-326,170],[-574,613],[-266,112],[-486,211]],[[10396,86079],[-385,-50],[-546,271]],[[9465,86300],[-330,252],[-309,-125],[58,-411],[-154,-38],[-321,-123],[-245,-199]],[[8164,85656],[-307,-126],[-40,348]],[[7817,85878],[125,580],[295,182],[-76,148],[-354,-329],[-190,-394],[-400,-420],[203,-287],[-262,-424]],[[7158,84934],[-299,-247],[-278,-181]],[[6581,84506],[-69,-261],[-434,-305],[-87,-278],[-325,-252],[-191,45],[-259,-165],[-282,-201],[-231,-197],[-477,-169],[-43,99],[304,276],[271,182],[296,324],[345,66],[137,243],[385,353],[62,119],[205,208],[48,448],[141,349],[-320,-179],[-90,102],[-150,-215],[-181,300],[-75,-212],[-104,294],[-278,-236],[-170,0],[-24,352]],[[4985,85596],[50,217],[-179,210]],[[4856,86023],[-361,-113],[-235,277],[-190,142],[-1,334],[-214,252],[108,340],[226,330],[99,303],[225,43],[191,-94],[224,285],[201,-51],[212,183],[-52,270],[-155,106],[205,228],[-170,-7],[-295,-128],[-85,-131],[-219,131],[-392,-67],[-407,142],[-117,238],[-351,343],[390,247],[620,289],[228,0]],[[4541,89915],[-38,-295],[586,22]],[[5089,89642],[-225,366]],[[4864,90008],[-342,226],[-197,295]],[[4325,90529],[-267,252],[-381,187],[155,309],[493,19],[350,270],[66,287],[284,281],[271,68],[526,262],[256,-40],[427,315],[421,-124],[201,-266],[123,114],[469,-35],[-16,-136],[425,-101],[283,59],[585,-186],[534,-56],[214,-77],[370,96],[421,-177],[302,-83]],[[10837,91767],[518,-142]],[[11355,91625],[438,-284],[289,-55]],[[12082,91286],[244,247],[336,184],[413,-72],[416,259],[455,148],[191,-245],[207,138],[62,278],[192,-63],[470,-530],[369,401]],[[15437,92031],[38,-448],[341,96]],[[15816,91679],[105,173],[337,-34],[424,-248],[650,-217],[383,-100],[272,38]],[[17987,91291],[375,-300],[-391,-293]],[[17971,90698],[502,-127],[750,70],[236,103],[296,-354],[302,299],[-283,251],[179,202],[338,27],[223,59],[224,-141],[279,-321],[310,47],[491,-266],[431,94],[405,-14],[-32,367],[247,103],[431,-200],[-2,-559],[177,471],[223,-16],[126,594],[-298,364],[-324,239],[22,653],[329,429],[366,-95],[281,-261],[378,-666],[-247,-290],[517,-120],[-1,-604],[371,463],[332,-380],[-83,-438],[269,-399],[290,427],[202,510]],[[19722,91216],[-824,-103],[-374,-41]],[[18524,91072],[-151,279],[-379,161],[-246,-66],[-343,468],[185,62],[429,101],[392,-26],[362,103],[-537,138],[-594,-47],[-394,12],[-146,217],[644,237],[-428,-9],[-485,156],[233,443],[193,235],[744,359],[284,-114],[-139,-277],[618,179],[386,-298],[314,302],[254,-194],[227,-580],[140,244],[-197,606],[244,86],[276,-94],[311,-239],[175,-575],[86,-417],[466,-293],[502,-279],[-31,-260],[-456,-48],[178,-227],[-94,-217],[-503,93],[-478,160],[-322,-36],[-522,-201]],[[20294,93981],[95,83],[372,24],[211,-130],[-244,-390],[-434,413]],[[27534,93906],[12,213],[133,39],[636,-63],[479,-325],[25,-163],[-296,17],[-299,13],[-304,-80],[-80,36],[-306,313]],[[24943,93258],[213,528],[286,241],[717,158],[-204,-382],[219,-369],[256,477],[704,242],[477,-611],[-42,-387],[550,172],[263,235],[616,-299],[383,-282],[36,-258],[515,134],[290,-376],[670,-234],[242,-238],[263,-553],[-510,-275],[654,-386],[441,-130],[400,-543],[437,-39],[-87,-414],[-487,-687],[-342,253],[-437,568],[-359,-74],[-35,-338],[292,-344],[377,-272],[114,-157],[181,-584],[-96,-425],[-350,160],[-697,473],[393,-509],[289,-357],[45,-206],[-753,236],[-596,343],[-337,287],[97,167],[-414,304],[-405,286],[5,-171],[-803,-94],[-235,203],[183,435],[522,10],[571,76],[-92,211],[96,294],[360,576],[-77,261],[-107,203],[-425,286],[-563,201],[178,150],[-294,367],[-245,34],[-219,201],[-149,-175],[-503,-76],[-1011,132],[-588,174],[-450,89],[-231,207],[290,270],[-394,2],[-88,599]],[[21528,93420],[5,189],[567,-73],[-306,386],[329,286],[331,-124],[496,75],[72,-172],[-259,-283],[420,-254],[-50,-532],[-455,-229],[-268,50],[-192,225],[-690,456]],[[88850,93928],[263,234],[348,54],[394,-226],[34,-155],[-421,-4],[-569,66],[-49,31]],[[23324,93674],[4,294],[145,251],[276,161],[579,-20],[530,-144],[-415,-526],[-331,-115],[-298,-442],[-317,22],[-173,519]],[[15808,92470],[-147,259],[-641,312]],[[15020,93041],[93,193],[218,489]],[[15331,93723],[241,388],[-272,362],[939,93],[397,-123],[709,-33],[270,-171],[298,-249],[-349,-149],[-681,-415],[-344,-414]],[[16539,93012],[0,-248],[-731,-294]],[[90588,94993],[66,192],[518,-89],[697,-155],[-321,-234],[-444,53],[-516,233]],[[23105,94849],[148,266],[399,159],[243,-208],[101,-187],[-151,-229],[-403,44],[-337,155]],[[88048,95046],[149,406],[366,111],[734,-26],[1004,-313],[-219,-439],[-1023,16],[-461,-139],[-550,384]],[[21509,95681],[299,-18],[419,201],[390,-34],[22,77],[212,-273],[9,-303],[-127,-440],[-458,-60],[-298,94],[5,345],[-455,-46],[-18,457]],[[17302,95023],[379,577],[262,165],[782,-199],[493,-350],[485,-45],[-397,565],[255,215],[286,-68],[94,-282],[109,-210],[247,99],[291,-26],[49,-289],[-169,-281],[-940,-91],[-701,-256],[-423,-14],[-35,193],[577,261],[-1255,-70],[-389,106]],[[64293,93128],[284,126],[-10,323],[551,503],[-255,73],[665,518],[-75,268],[621,312],[917,380],[925,110],[475,220],[541,76],[193,-233],[-187,-184],[-984,-293],[-848,-282],[-863,-562],[-414,-577],[-435,-568],[56,-491],[531,-484],[-164,-52],[-907,77],[-74,262],[-503,158],[-40,320]],[[23022,95926],[104,242],[573,-37],[308,-190],[547,1],[240,-194],[-64,-222],[319,-134],[177,-140],[374,-26],[406,-50],[441,128],[566,51],[451,-42],[298,-223],[62,-244],[-174,-157],[-414,-127],[-355,72],[-797,-91],[-570,-11],[-449,73],[-738,190],[-96,325],[-34,293],[-279,258],[-574,72],[-322,183]],[[15873,95551],[472,442],[570,383],[426,-9],[381,87],[-38,-454],[-214,-205],[-259,-29],[-517,-252],[-444,-91],[-377,128]],[[81143,94175],[250,112],[142,-379]],[[81535,93908],[122,153],[444,93],[892,-97],[67,-276],[1162,-88],[15,451]],[[84237,94144],[590,-103],[443,3]],[[85270,94044],[449,-312],[128,-378],[-165,-247],[349,-465],[437,-240],[268,620],[446,-266],[473,159],[538,-182],[204,166],[455,-83],[-201,549],[367,256],[2509,-384],[236,-351],[727,-451],[1122,112],[553,-98],[231,-244],[-33,-432],[342,-168],[372,121],[492,15],[525,-116],[526,66],[484,-526],[344,189],[-224,378]],[[97224,91732],[123,263],[886,-166]],[[98233,91829],[578,36],[799,-282],[389,-258],[0,-2354],[-2,-3],[-357,-260],[-360,44],[250,-315],[166,-487],[128,-159],[32,-244],[-71,-157],[-518,129],[-777,-445],[-247,-69],[-425,-415],[-403,-362],[-102,-269],[-397,409],[-724,-464]],[[96192,85904],[-126,220],[-268,-254]],[[95798,85870],[-371,81],[-90,-388],[-333,-572],[10,-239],[316,-132],[-37,-860],[-258,-22],[-119,-494],[116,-255]],[[95032,82989],[-486,-301],[-96,-675]],[[94450,82013],[-415,-144],[-83,-600],[-400,-551],[-103,407],[-119,862],[-155,1313],[134,819],[234,353]],[[93543,84472],[15,276],[431,132]],[[93989,84880],[496,744],[479,608],[499,471],[223,833],[-337,-50],[-167,-487]],[[95182,86999],[-705,-648],[-227,726]],[[94250,87077],[-717,-201],[-696,-990],[230,-362],[-620,-154],[-430,-61],[20,427],[-431,90],[-344,-291],[-850,102]],[[90412,85637],[-913,-175],[-900,-1153]],[[88599,84309],[-1065,-1394],[438,-74],[136,-370],[270,-132]],[[88378,82339],[178,296],[305,-39]],[[88861,82596],[401,-650]],[[89262,81946],[9,-502],[-217,-591]],[[89054,80853],[-23,-705],[-126,-945],[-418,-855],[-94,-409],[-377,-688],[-374,-682],[-179,-349],[-370,-346],[-175,-8],[-175,287],[-373,-432],[-43,-197]],[[86327,75524],[-106,36]],[[86221,75560],[-120,-201],[-83,-201]],[[86018,75158],[10,-424],[-143,-130],[-50,-105],[-104,-174],[-185,-97],[-121,-159],[-9,-256],[-32,-65],[111,-96],[157,-259]],[[85652,73393],[240,-697],[68,-383],[3,-681],[-105,-325],[-252,-113],[-222,-245],[-250,-51],[-31,322]],[[85103,71220],[52,443],[-123,615]],[[85032,72278],[206,99],[-190,506]],[[85048,72883],[-135,113],[-34,-112]],[[84879,72884],[-81,-49],[-10,112],[-72,54],[-75,94]],[[84641,73095],[77,260],[65,69]],[[84783,73424],[-25,108],[71,319]],[[84829,73851],[-18,97],[-163,64]],[[84648,74012],[-131,158]],[[84517,74170],[-388,-171],[-204,-277],[-300,-161],[148,274],[-58,230],[220,397],[-147,310],[-242,-209],[-314,-411],[-171,-381],[-272,-29],[-142,-275],[147,-400],[227,-97],[9,-265]],[[83030,72705],[220,-172],[311,421]],[[83561,72954],[247,-230],[179,-15]],[[83987,72709],[46,-310],[-394,-165]],[[83639,72234],[-130,-319],[-270,-296],[-142,-414]],[[83097,71205],[299,-324],[109,-582]],[[83505,70299],[169,-541],[189,-454],[-5,-439],[-174,-161],[66,-315],[164,-184],[-43,-481],[-71,-468],[-155,-53],[-203,-640],[-225,-775],[-258,-705],[-382,-545],[-386,-498],[-313,-68],[-170,-262],[-96,192],[-157,-294],[-388,-296],[-294,-90],[-95,-624],[-154,-35],[-73,429],[66,228]],[[80517,63220],[-373,190],[-131,-97]],[[80013,63313],[-371,-505],[-231,-558],[-61,-410],[212,-623],[260,-772],[252,-365],[169,-475],[127,-1093],[-37,-1039],[-232,-389],[-318,-381],[-227,-492],[-346,-550],[-101,378],[78,401],[-206,335]],[[78981,56775],[-233,87],[-112,307],[-141,611]],[[78495,57780],[-249,271],[-238,-11],[41,464],[-245,-3],[-22,-650],[-150,-863],[-90,-522],[19,-428],[181,-18],[113,-539],[50,-512],[155,-338],[168,-69],[144,-306]],[[78372,54256],[64,-56],[164,-356],[116,-396],[16,-398],[-29,-269],[27,-203],[20,-349],[98,-163],[109,-523],[-5,-199],[-197,-40],[-263,438],[-329,469],[-32,301],[-161,395],[-38,489],[-100,322],[30,431],[-61,250]],[[77801,54399],[-110,227],[-47,292],[-148,334],[-135,280],[-45,-347],[-53,328],[30,369],[82,566]],[[77375,56448],[-27,439],[86,452],[-94,350],[23,644],[-113,306],[-90,707],[-50,746],[-121,490],[-183,-297],[-315,-421],[-156,53],[-172,138],[96,732],[-58,554],[-218,681],[34,213],[-163,76],[-197,481]],[[75657,62792],[-79,309],[-16,301],[-53,284]],[[75509,63686],[-116,344],[-256,23],[25,-243],[-87,-329],[-118,120],[-41,-108],[-78,65],[-108,53]],[[74730,63611],[-39,-216],[-189,7],[-343,-122],[16,-445],[-148,-349],[-400,-398],[-311,-695],[-209,-373]],[[73107,61020],[-276,-386],[-1,-272]],[[72830,60362],[-138,-146]],[[72692,60216],[-250,-212],[-130,-31]],[[72312,59973],[-84,-450],[58,-769],[15,-490],[-118,-561],[-1,-1004],[-144,-29],[-126,-450],[84,-195]],[[71996,56025],[-253,-167],[-93,-402]],[[71650,55456],[-112,-170],[-263,552],[-128,827],[-107,596],[-97,279],[-148,568],[-69,739],[-48,369],[-253,811],[-115,1145],[-83,756],[1,716],[-54,553],[-404,-353],[-196,70],[-362,716],[133,214],[-82,232],[-326,501]],[[68937,64577],[-203,150]],[[68734,64727],[-83,425],[-215,449]],[[68436,65601],[-512,-111],[-451,-11],[-391,-83]],[[67082,65396],[-523,179]],[[66559,65575],[-302,136],[-314,76]],[[65943,65787],[-118,725],[-133,105],[-214,-106],[-280,-286],[-339,196],[-281,454],[-267,168],[-186,561],[-205,788],[-149,-96],[-177,196]],[[63594,68492],[-103,-231],[-165,29]],[[63326,68290],[58,-261],[-25,-135],[89,-445]],[[63448,67449],[109,-510],[137,-135],[47,-207]],[[63741,66597],[190,-248],[16,-244]],[[63947,66105],[-27,-197],[35,-199],[80,-165],[37,-194],[41,-145]],[[64113,65205],[-18,430],[75,310],[76,64]],[[64246,66009],[84,-186],[5,-345]],[[64335,65478],[-61,-348]],[[64274,65130],[53,-226]],[[64327,64904],[49,29],[11,-162],[217,93],[230,-15],[168,-18],[190,400],[207,379],[176,364]],[[65575,65974],[80,201],[35,-51],[-26,-244],[-37,-108]],[[65627,65772],[38,-466]],[[65665,65306],[125,-404],[155,-214]],[[65945,64688],[204,-78],[164,-107]],[[66313,64503],[125,-339],[75,-196],[100,-75],[-1,-132],[-101,-352],[-44,-166],[-117,-189],[-104,-404],[-126,31],[-58,-141],[-44,-300],[34,-395],[-26,-72],[-128,2],[-174,-221],[-27,-288],[-63,-125],[-173,5],[-109,-149]],[[65352,60997],[1,-239],[-134,-164]],[[65219,60594],[-153,56],[-186,-199]],[[64880,60451],[-128,-33],[-201,-159]],[[64551,60259],[-54,-263],[-6,-201],[-277,-249],[-444,-276],[-249,-417]],[[63521,58853],[-122,-32],[-83,34]],[[63316,58855],[-163,-245]],[[63153,58610],[-177,-113],[-233,-31]],[[62743,58466],[-70,-34],[-61,-156],[-73,-43]],[[62539,58233],[-42,-150],[-138,13]],[[62359,58096],[-89,-80],[-192,30],[-72,345],[8,323],[-46,174],[-54,437],[-80,243],[56,29],[-29,270],[34,114],[-12,257]],[[61883,60238],[-36,253],[-84,177]],[[61763,60668],[-22,236],[-143,212],[-148,495],[-79,482],[-192,406],[-124,97],[-184,563],[-32,411],[12,350],[-159,655],[-130,231],[-150,122],[-92,339],[15,133]],[[60335,65400],[-77,307],[-81,131]],[[60177,65838],[-108,440],[-170,476],[-141,406],[-139,-3],[44,325],[12,206],[34,236]],[[59709,67924],[-9,86]],[[59700,68010],[-78,-238],[-60,-446],[-75,-308],[-65,-103],[-93,191],[-125,263],[-198,847],[-29,-53],[115,-624],[171,-594],[210,-920],[102,-321],[90,-334],[249,-654],[-55,-103],[9,-384],[323,-530],[49,-121]],[[60240,63578],[90,-580],[-61,-107],[40,-608],[102,-706],[106,-145],[152,-219]],[[60669,61213],[161,-683],[77,-543]],[[60907,59987],[152,-288],[379,-558],[154,-336],[151,-341],[87,-203],[136,-178]],[[61966,58083],[66,-183],[-9,-245],[-158,-142],[119,-161]],[[61984,57352],[91,-109]],[[62075,57243],[54,-244],[125,-248]],[[62254,56751],[138,-2],[262,151],[302,70],[245,184],[138,39],[99,108],[158,20]],[[63596,57321],[89,12],[128,88],[147,59],[132,202],[105,2],[6,-163],[-25,-344],[1,-310],[-59,-214],[-78,-639],[-134,-659],[-172,-755],[-238,-866],[-237,-661],[-327,-806],[-278,-479],[-415,-586],[-259,-450],[-304,-715],[-64,-312],[-63,-140]],[[61551,49585],[-195,-236],[-68,-246],[-104,-44],[-40,-416],[-89,-238],[-54,-393],[-112,-195]],[[60889,47817],[-128,-728],[16,-335],[178,-216],[8,-153],[-76,-357],[16,-180],[-18,-282],[97,-370],[115,-583],[101,-129]],[[61198,44484],[45,-265],[-11,-588],[34,-519],[11,-923],[49,-290],[-83,-422],[-108,-410],[-177,-366],[-254,-225],[-313,-287],[-313,-634],[-107,-108],[-194,-420],[-115,-136],[-23,-421],[132,-448],[54,-346],[4,-177],[49,29],[-8,-579]],[[59870,36949],[-45,-274],[65,-102]],[[59890,36573],[-41,-246],[-116,-210]],[[59733,36117],[-229,-199],[-334,-320],[-122,-219],[24,-248],[71,-40],[-24,-311]],[[59119,34780],[-70,-430],[-32,-491],[-72,-267],[-190,-298],[-54,-86],[-118,-300],[-77,-303],[-158,-424],[-314,-609],[-196,-355]],[[57838,31217],[-209,-269],[-291,-229]],[[57338,30719],[-141,-31],[-36,-164],[-169,88],[-138,-113],[-301,114],[-168,-72],[-115,31],[-286,-233],[-238,-94],[-171,-223],[-127,-14],[-117,210],[-94,11],[-120,264],[-13,-82],[-37,159],[2,346],[-90,396],[89,108],[-7,453],[-182,553],[-139,501],[-1,1],[-199,768]],[[54540,33696],[-207,446],[-108,432],[-62,575],[-68,428],[-93,910],[-7,707],[-35,322],[-108,243],[-144,489],[-146,708],[-60,371],[-226,577],[-17,453]],[[53259,40357],[-26,372],[38,519],[96,541],[15,254],[90,532],[66,243],[159,386],[90,263],[29,438],[-15,335],[-83,211],[-74,358],[-68,355],[15,122],[85,235],[-84,570],[-57,396],[-139,374],[26,115]],[[53422,46976],[-39,183]],[[53383,47159],[-74,444]],[[53309,47603],[-228,626]],[[53081,48229],[-285,596],[-184,488],[-169,610],[9,196],[61,189],[67,430],[56,438]],[[52636,51176],[-52,90],[96,663]],[[52680,51929],[40,467],[-108,390]],[[52612,52786],[-127,100],[-56,265]],[[52429,53151],[-71,85],[3,163]],[[52361,53399],[-289,-213]],[[52072,53186],[-105,32],[-107,-133]],[[51860,53085],[-222,13],[-149,370],[-91,427]],[[51398,53895],[-197,390],[-209,-8]],[[50992,54277],[-245,1]],[[50747,54278],[-229,-69]],[[50518,54209],[-224,-126]],[[50294,54083],[-436,-346],[-154,-203],[-250,-171],[-248,168]],[[49206,53531],[-126,-7],[-194,116],[-178,-7],[-329,-103],[-193,-170],[-275,-217],[-54,15]],[[47857,53158],[-73,-5],[-286,282]],[[47498,53435],[-252,450],[-237,323]],[[47009,54208],[-187,381]],[[46822,54589],[-75,44],[-200,238],[-144,316],[-49,216],[-34,437]],[[46320,55840],[-122,349],[-108,232],[-71,76],[-69,118],[-32,261],[-41,130],[-80,97]],[[45797,57103],[-149,247],[-117,39],[-63,166],[1,90],[-84,125],[-18,127]],[[45367,57897],[-46,453]],[[45321,58350],[36,262]],[[45357,58612],[-115,460],[-138,210],[122,112],[134,415],[66,304]],[[45426,60113],[-24,318],[78,291],[34,557],[-30,583],[-34,294],[28,295],[-72,281],[-146,255]],[[45260,62987],[12,249]],[[45272,63236],[13,274],[106,161],[91,308],[-18,200],[96,417],[155,376],[93,95],[74,344],[6,315],[100,365],[185,216],[177,603],[144,235]],[[46494,67145],[259,66],[219,403],[139,158]],[[47111,67772],[232,493],[-70,735],[106,508],[37,312],[179,399],[278,270],[206,244],[186,612],[87,362],[205,-2],[167,-251],[264,41],[288,-131],[121,-6]],[[49397,71358],[267,323],[300,102],[175,244],[268,180],[471,105],[459,48],[140,-87],[262,232],[297,5],[113,-137],[190,35]],[[52339,72408],[302,239],[195,-71],[-9,-299],[236,217],[20,-113]],[[53083,72381],[-139,-289],[-2,-274]],[[52942,71818],[96,-147],[-36,-511],[-183,-297],[53,-322],[143,-10],[70,-281],[106,-92]],[[53191,70158],[326,-204],[117,51],[232,-98],[368,-264],[130,-526],[250,-114],[391,-248],[296,-293],[136,153],[133,272],[-65,452],[87,288],[200,277],[192,80],[375,-121],[95,-264],[104,-2],[88,-101]],[[56646,69496],[276,-69],[68,-196]],[[56990,69231],[369,10],[268,-156],[275,-175],[129,-92],[214,188],[114,169],[245,49],[198,-75],[75,-293],[65,193],[222,-140],[217,-33],[137,149]],[[59518,69025],[80,194],[-19,34],[74,276],[56,446],[40,149],[8,6]],[[59757,70130],[99,482],[138,416],[5,21]],[[59999,71049],[-26,452],[68,243]],[[60041,71744],[-102,268],[105,222],[-169,-51],[-233,136],[-191,-340],[-421,-66],[-225,317],[-300,20],[-64,-245]],[[58441,72005],[-192,-71],[-268,315]],[[57981,72249],[-303,-10],[-165,587]],[[57513,72826],[-203,328],[135,459],[-176,283],[308,565],[428,23],[117,449],[529,-78],[334,383],[324,167],[459,13]],[[59768,75418],[485,-416],[399,-229]],[[60652,74773],[323,91],[239,-53],[328,309]],[[61542,75120],[42,252],[-70,403],[-160,218],[-154,68],[-102,181]],[[61098,76242],[-354,499],[-317,223],[-240,347],[202,95],[231,494],[-156,234],[410,241],[-8,129],[-249,-95]],[[60617,78409],[-222,-48],[-185,-191],[-260,-31],[-239,-220],[16,-368],[136,-142],[284,35],[-55,-210],[-304,-103],[-377,-342],[-154,121],[61,277],[-304,173],[50,113],[265,197],[-80,135],[-432,149],[-19,221],[-257,-73],[-103,-325],[-215,-437]],[[58223,77340],[6,-152],[-135,-128],[-84,56],[-78,-713]],[[57932,76403],[-144,-245],[-101,-422],[89,-337]],[[57776,75399],[33,-228],[243,-190],[-51,-145],[-330,-33],[-118,-182],[-232,-319]],[[57321,74302],[-87,275],[3,122]],[[57237,74699],[-169,17],[-145,56],[-336,-154],[192,-332],[-141,-96]],[[56638,74190],[-154,0],[-147,304]],[[56337,74494],[-52,-130],[62,-353],[139,-277]],[[56486,73734],[-105,-130],[155,-272]],[[56536,73332],[137,-171],[4,-334],[-257,157],[82,-302],[-176,-62],[105,-521]],[[56431,72099],[-184,-7],[-228,257],[-104,472]],[[55915,72821],[-49,393],[-108,272],[-143,337],[-18,168]],[[55597,73991],[-48,41],[-5,130],[-154,199],[-24,281],[23,403],[38,184]],[[55427,75229],[-46,93],[-59,46]],[[55322,75368],[-78,192],[-120,118]],[[55124,75678],[-261,218],[-161,213],[-254,176]],[[54448,76285],[-233,435],[56,44]],[[54271,76764],[-127,248],[-5,200],[-179,93],[-85,-255],[-82,198],[6,205],[10,9]],[[53809,77462],[62,54]],[[53871,77516],[-221,86],[-226,-210],[15,-293],[-34,-168],[91,-301],[261,-298],[140,-488],[309,-476],[217,3],[68,-130],[-78,-118]],[[54413,75123],[249,-213],[204,-179]],[[54866,74731],[238,-308],[29,-111],[-52,-211],[-154,276],[-242,97],[-116,-382],[200,-219],[-33,-309],[-116,-35],[-148,-506],[-116,-46],[1,181],[57,317],[60,126],[-108,342],[-85,298],[-115,74],[-82,255],[-179,107],[-120,238],[-206,38],[-217,267],[-254,384]],[[53108,75604],[-189,341],[-86,584]],[[52833,76529],[-138,68],[-226,195],[-128,-80],[-161,-274],[-115,-43]],[[52065,76395],[-252,-334],[-548,160],[-404,-192],[-32,-355]],[[50829,75674],[15,-344],[-263,-393],[-356,-125],[-25,-199],[-171,-327],[-107,-481],[108,-338],[-160,-263],[-60,-384],[-210,-118]],[[49600,72702],[-197,-455],[-352,-8]],[[49051,72239],[-265,11],[-174,-209],[-106,-223],[-136,49],[-103,199],[-79,340],[-259,92]],[[47929,72498],[-112,-153],[-146,83],[-143,-65],[42,462],[-26,363],[-124,55],[-67,224],[22,386],[111,215],[20,239],[58,355],[-6,250],[-56,212],[-12,200]],[[47490,75324],[14,420],[-114,257],[393,426]],[[47783,76427],[340,-107],[373,4]],[[48496,76324],[296,-101],[230,31],[449,-19]],[[49471,76235],[144,354],[53,1177],[-287,620],[-205,299]],[[49176,78685],[-424,228],[-28,430]],[[48724,79343],[360,129],[466,-152],[-88,669],[263,-254],[646,461],[84,484],[243,119]],[[50698,80799],[222,117]],[[50920,80916],[143,162]],[[51063,81078],[244,870],[380,247]],[[51687,82195],[231,-17]],[[51918,82178],[54,125],[232,32],[52,-130],[188,291],[-63,222],[-13,335]],[[52368,83053],[-113,328],[-8,604],[46,159]],[[52293,84144],[80,178],[244,36]],[[52617,84358],[98,163],[223,167],[-9,-304],[-82,-192],[33,-166],[151,-89],[-68,-223],[-83,64],[-200,-425],[76,-288]],[[52756,83065],[4,-228],[281,-138],[-3,-210],[283,111],[156,162],[313,-233],[132,-189]],[[53922,82340],[189,174],[434,273],[350,200],[277,-100],[21,-144],[268,-7]],[[55461,82736],[63,260],[383,191]],[[55907,83187],[-59,497]],[[55848,83684],[10,445],[136,371],[262,202],[221,-442],[223,12],[53,453]],[[56753,84725],[32,349],[-102,-75],[-176,210],[-24,340],[351,164],[350,86],[301,-97],[287,17]],[[57772,85719],[316,327],[-291,280]],[[57797,86326],[-504,-47],[-489,-216],[-452,-125]],[[56352,85938],[-161,322],[-269,195],[62,581]],[[55984,87036],[-135,534],[133,344]],[[55982,87914],[252,371],[635,640],[185,124],[-28,250],[-387,279]],[[56639,89578],[-478,-167],[-269,-413],[43,-361],[-441,-475],[-537,-509],[-202,-832],[198,-416],[265,-328],[-255,-666],[-289,-138],[-106,-992],[-157,-554],[-337,57],[-158,-468],[-321,-27],[-89,558],[-232,671],[-211,835]],[[53063,85353],[-187,363],[-548,-684]],[[52328,85032],[-370,-138],[-385,301]],[[51573,85195],[-99,635]],[[51474,85830],[-88,1364],[256,380]],[[51642,87574],[733,496],[549,609],[508,824],[668,1141],[465,444],[763,741],[610,259],[457,-31],[423,489],[506,-26],[499,118],[869,-433],[-358,-158],[305,-371]],[[58639,91676],[286,206],[456,-358],[761,-140],[1050,-668],[213,-281],[18,-393],[-308,-311],[-454,-157],[-1240,449],[-204,-75],[453,-433],[36,-878],[358,-180],[217,-153],[36,286]],[[60317,88590],[-174,263],[183,215]],[[60326,89068],[672,-368]],[[60998,88700],[234,144],[-187,433]],[[61045,89277],[647,578],[256,-34],[260,-206],[161,406],[-231,352],[136,353],[-204,367],[777,-190],[158,-331],[-351,-73]],[[62654,90499],[2,-328],[218,-203]],[[62874,89968],[429,128],[68,377]],[[63371,90473],[581,282],[969,507]],[[64921,91262],[209,-29],[-273,-359],[344,-61],[199,202],[521,16],[412,245],[317,-356],[315,391],[-291,343],[145,195],[820,-179],[385,-185],[1006,-675],[186,309],[-282,313],[-8,125],[-335,58],[92,280],[-149,461],[-8,189],[512,535]],[[69038,93080],[182,537],[207,116]],[[69427,93733],[735,-156],[58,-328]],[[70220,93249],[-263,-479],[173,-189],[89,-413],[-63,-809],[307,-362],[-120,-395],[-544,-839],[318,-87],[110,213],[306,151],[74,293],[240,281],[-162,336],[130,390],[-304,49],[-67,328]],[[70444,91717],[222,594],[-361,481]],[[70305,92792],[497,398],[-64,421],[139,13],[145,-328],[-109,-570],[297,-108],[-127,426],[465,233],[577,31],[513,-337],[-247,492],[-28,630]],[[72363,94093],[484,119],[668,-26]],[[73515,94186],[602,77],[-226,309],[321,388],[319,16],[540,293],[734,79],[93,162],[729,55],[227,-133],[624,314],[510,-10],[77,255],[265,252],[656,242],[476,-191],[-378,-146],[629,-90],[75,-292],[254,143],[812,-7],[626,-289],[223,-221],[-69,-307],[-307,-175],[-730,-328],[-209,-175],[345,-83],[410,-149]],[[63720,73858],[-47,-207],[-102,-138]],[[63571,73513],[7,-293]],[[63578,73220],[88,-436],[263,-123],[193,-296],[395,-102],[434,156],[27,139]],[[64978,72558],[-52,417],[40,618],[-216,200],[71,405],[-184,34],[61,498],[262,-145],[244,189],[-202,355],[-80,338],[-224,-151],[-28,-433],[-87,383]],[[64583,75266],[-15,144],[68,246],[-53,206],[-322,202],[-125,530],[-154,150],[-9,192],[270,-56],[11,432],[236,96],[243,-88],[50,576],[-50,365],[-278,-28],[-236,144],[-321,-260],[-259,-124]],[[63639,77993],[-127,-350],[-269,-97],[-276,-610],[252,-561],[-27,-398],[303,-696]],[[63495,75281],[146,-311],[141,-419],[130,-28],[85,-159],[-228,-47],[-49,-459]],[[23212,96566],[559,-9],[195,-109],[-33,-68],[-126,-17],[-521,38],[-74,165]],[[18463,96506],[224,188],[406,60],[392,-92],[-93,-177],[-518,-170],[-411,191]],[[55757,96473],[191,152],[-167,189],[575,119],[110,-222],[401,-134],[-620,-241],[-490,137]],[[18738,96905],[5,84],[285,177],[149,-27],[361,-120],[-339,-115],[-461,1]],[[22602,97179],[360,-24],[162,-39],[332,-205],[-76,-214],[-411,-122],[-226,138],[-119,221],[-22,245]],[[20696,97433],[546,-81],[751,-215],[212,-281],[108,-247],[-453,66],[-457,192],[-619,21],[268,176],[-335,142],[-21,227]],[[77621,96617],[507,776],[229,66],[208,-38],[704,-336],[-82,-240],[-1566,-228]],[[52901,97640],[757,212],[152,-207],[396,8],[105,202],[408,20],[350,-206],[915,-440],[-699,-233],[-155,-435],[-243,-111],[-132,-490],[-335,-23],[-598,361],[252,210],[-416,170],[-541,499],[-216,463]],[[54824,98034],[858,165],[403,-142],[281,177],[702,-148],[545,-207],[-412,-318],[-806,-70],[-819,98],[-50,163],[-398,11],[-304,271]],[[62457,98194],[542,107],[422,8],[57,-160],[159,142],[262,97],[412,-129],[-107,-90],[-373,-78],[-250,-45],[-39,-97],[-324,-98],[-301,140],[158,185],[-618,18]],[[75327,98047],[722,404],[600,133],[540,-297],[640,-572],[-69,-531],[-606,-73],[-773,170],[-462,226],[-213,423],[-379,117]],[[23136,97939],[193,262],[192,180],[285,42],[-122,135],[646,30],[355,-315],[468,-127],[455,-112],[220,-390],[334,-190],[-381,-176],[-513,-445],[-492,-42],[-575,76],[-299,240],[4,215],[220,157],[-508,-4],[-306,196],[-176,268]],[[24559,98965],[413,112],[324,19],[545,96],[409,220],[344,-30],[300,-166],[211,319],[367,95],[498,65],[849,24],[148,-63],[802,100],[601,-38],[602,-37],[742,-47],[597,-75],[508,-161],[-12,-157],[-678,-257],[-672,-119],[-251,-133],[605,3],[-656,-358],[-452,-167],[-476,-483],[-573,-98],[-177,-120],[-841,-64],[383,-74],[-192,-105],[230,-292],[-264,-202],[-429,-167],[-132,-232],[-388,-176],[39,-134],[475,23],[6,-144],[-742,-355],[-726,163],[-816,-91],[-414,71],[-525,31],[-35,284],[514,133],[-137,427],[170,41],[742,-255],[-379,379],[-450,113],[225,229],[492,141],[79,206],[-392,231],[-118,304],[759,-26],[220,-64],[433,216],[-625,68],[-972,-38],[-491,201],[-232,239],[-324,173],[-61,202]],[[29639,96690],[39,229],[1051,285],[1018,284],[107,214],[-750,213],[243,235],[961,413],[404,63],[-115,265],[658,156],[854,93],[853,5],[303,-184],[737,325],[663,-221],[390,-46],[577,-192],[-660,318],[38,253],[932,353],[975,-27],[354,218],[982,57],[2219,-74],[1737,-469],[-513,-227],[-1062,-26],[-1496,-58],[140,-105],[984,65],[836,-204],[540,181],[231,-212],[-305,-344],[707,220],[1348,229],[833,-114],[156,-253],[-1132,-420],[-157,-136],[-888,-102],[643,-28],[-324,-431],[-224,-383],[9,-658],[333,-386],[-434,-24],[-457,-187],[513,-313],[65,-502],[-297,-55],[360,-508],[-617,-42],[322,-241],[-91,-208],[-391,-91],[-388,-2],[348,-400],[4,-263],[-549,244],[-143,-158],[375,-148],[364,-361],[105,-476],[-495,-114],[-214,228],[-344,340],[95,-401],[-322,-311],[732,-25],[383,-32],[-745,-515],[-755,-466],[-813,-204],[-306,-2],[-288,-228],[-386,-624],[-597,-414],[-192,-24],[-370,-145],[-399,-138],[-238,-365],[-4,-415],[-141,-388],[-453,-472],[112,-462],[-125,-488],[-142,-577],[-391,-36],[-410,482],[-556,3],[-269,324],[-186,577],[-481,735],[-141,385],[-38,530],[-384,546],[100,435],[-186,208],[275,691],[418,220],[110,247],[58,461],[-318,-209],[-151,-88],[-249,-84],[-341,193],[-19,401],[109,314],[258,9],[567,-157],[-478,375],[-249,202],[-276,-83],[-232,147],[310,550],[-169,220],[-220,409],[-335,626],[-353,230],[3,247],[-745,346],[-590,43],[-743,-24],[-677,-44],[-323,188],[-482,372],[729,186],[559,31],[-1188,154],[-627,241]],[[67002,71642],[284,-224],[209,79],[58,268],[219,89],[157,180],[55,472],[234,114],[44,211],[131,-158],[84,-19]],[[68477,72654],[154,-4],[210,-124]],[[68841,72526],[85,-72],[201,189],[93,-114],[90,271],[166,-12],[43,86],[29,239],[120,205],[150,-134],[-30,-181],[84,-28],[-26,-496],[110,-194],[97,125],[123,58],[173,265],[192,-44],[286,-1]],[[70827,72688],[50,-169]],[[70877,72519],[-162,-67],[-141,-109],[-319,-68],[-298,-124],[-163,-258],[66,-250],[32,-294],[-139,-248],[12,-227],[-76,-213],[-265,18],[110,-390],[-177,-150],[-118,-356],[15,-355],[-108,-166],[-103,55],[-212,-77],[-31,-166],[-207,1],[-154,-334],[-10,-503],[-361,-246],[-194,52],[-56,-129],[-166,75],[-278,-88],[-465,301]],[[66909,68203],[252,536],[-23,380],[-210,100],[-22,375],[-91,472],[119,323],[-121,87],[76,430],[113,736]],[[56642,44124],[29,-184],[-32,-286],[49,-277],[-41,-222],[24,-203],[-579,7],[-13,-1880],[188,-483],[181,-369]],[[56448,40227],[-510,-241],[-673,83],[-192,284],[-1126,-26],[-42,-41],[-166,267],[-180,17],[-166,-100],[-134,-113]],[[53422,46976],[115,79],[80,-11],[98,71],[820,-8],[68,-440],[80,-354],[64,-191],[106,-309],[184,47],[91,83],[154,-83],[42,148],[69,344],[172,23],[15,103],[142,2],[-24,-213],[337,5],[5,-372],[56,-228],[-41,-356],[21,-363],[93,-219],[-15,-703],[68,54],[121,-15],[172,89],[127,-35]],[[53309,47603],[112,255],[84,100],[104,-203]],[[53609,47755],[-101,-124],[-45,-152],[-9,-258],[-71,-62]],[[55719,75309],[-35,-201],[39,-254],[115,-144]],[[55838,74710],[-5,-155],[-91,-85],[-16,-192],[-129,-287]],[[55427,75229],[-47,93]],[[55380,75322],[-18,188],[120,291],[18,-111],[75,52]],[[55575,75742],[59,-159],[66,-60],[19,-214]],[[65575,65974],[52,-202]],[[65665,65306],[-142,-3],[-23,-384],[50,-82],[-126,-117],[-1,-241],[-81,-245],[-7,-238]],[[65335,63996],[-56,-125],[-835,298],[-106,599],[-11,136]],[[31400,18145],[-168,16],[-297,1],[0,1319]],[[32587,37434],[511,-964],[227,-89],[339,-437],[286,-231],[40,-261],[-273,-898],[280,-160],[312,-91],[220,95],[252,453],[45,521]],[[34826,35372],[138,114],[139,-341],[-6,-472],[-234,-326],[-186,-241],[-314,-573],[-370,-806]],[[33993,32727],[-70,-473],[-74,-607],[3,-588],[-61,-132],[-21,-382]],[[31227,23224],[273,-433],[266,-119]],[[30952,19680],[-257,93],[-672,79],[-115,344],[6,443],[-185,-38],[-98,214],[-24,626],[213,260],[88,375],[-33,299],[148,504],[101,782],[-30,347],[122,112],[-30,223],[-129,118],[92,248],[-126,224],[-65,682],[112,120],[-47,720],[65,605],[75,527],[166,215],[-84,576],[-1,543],[210,386],[-7,494],[159,576],[1,544],[-72,108],[-128,1020],[171,607],[-27,572],[100,537],[182,555],[196,367],[-83,232],[58,190],[-9,985],[302,291],[96,614],[-34,148]],[[31359,37147],[231,534],[364,-144],[163,-427],[109,475],[316,-24],[45,-127]],[[62492,74950],[57,-155],[106,-103],[-56,-148],[148,-202],[-78,-189],[118,-160],[124,-97],[7,-410]],[[62918,73486],[-101,-17]],[[62817,73469],[-113,342],[1,91],[-123,-2],[-82,159],[-58,-16]],[[62442,74043],[-109,172],[-207,147],[27,288],[-47,208]],[[62106,74858],[386,92]],[[1088,892],[38,-7],[32,-4]],[[1158,881],[402,-246],[352,246],[63,34],[816,104],[265,-138],[130,-71],[419,-196],[789,-151],[625,-185],[1072,-139],[800,162],[1181,-116],[669,-185],[734,174],[773,162],[60,278],[-1094,23],[-898,139],[-234,231],[-745,128],[49,266],[103,243],[104,220],[-55,243],[-462,162],[-212,209],[-430,185],[675,-35],[642,93],[402,-197],[495,173],[457,220],[223,197],[-98,243],[-359,162],[-408,174],[-571,35],[-500,81],[-539,58],[-180,220],[-359,185],[-217,208],[-87,672],[136,-58],[250,-185],[457,58],[441,81],[228,-255],[441,58],[370,127],[348,162],[315,197],[419,58],[-11,220],[-97,220],[81,208],[359,104],[163,-196],[425,115],[321,151],[397,12],[375,57],[376,139],[299,128],[337,127],[218,-35],[190,-46],[414,81],[370,-104],[381,11],[364,81],[375,-57],[414,-58],[386,23],[403,-12],[413,-11],[381,23],[283,174],[337,92],[349,-127],[331,104],[300,208],[179,-185],[98,-208],[180,-197],[288,174],[332,-220],[375,-70],[321,-162],[392,35],[354,104],[418,-23],[376,-81],[381,-104],[147,254],[-180,197],[-136,209],[-359,46],[-158,220],[-60,220],[-98,440],[213,-81],[364,-35],[359,35],[327,-93],[283,-174],[119,-208],[376,-35],[359,81],[381,116],[342,70],[283,-139],[370,46],[239,451],[224,-266],[321,-104],[348,58],[228,-232],[365,-23],[337,-69],[332,-128],[218,220],[108,209],[278,-232],[381,58],[283,-127],[190,-197],[370,58],[288,127],[283,151],[337,81],[392,69],[354,81],[272,127],[163,186],[65,254],[-32,244],[-87,231],[-98,232],[-87,231],[-71,209],[-16,231],[27,232],[130,220],[109,243],[44,231],[-55,255],[-32,232],[136,266],[152,173],[180,220],[190,186],[223,173],[109,255],[152,162],[174,151],[267,34],[174,186],[196,115],[228,70],[202,150],[157,186],[218,69],[163,-151],[-103,-196],[-283,-174],[-120,-127],[-206,92],[-229,-58],[-190,-139],[-202,-150],[-136,-174],[-38,-231],[17,-220],[130,-197],[-190,-139],[-261,-46],[-153,-197],[-163,-185],[-174,-255],[-44,-220],[98,-243],[147,-185],[229,-139],[212,-185],[114,-232],[60,-220],[82,-232],[130,-196],[82,-220],[38,-544],[81,-220],[22,-232],[87,-231],[-38,-313],[-152,-243],[-163,-197],[-370,-81],[-125,-208],[-169,-197],[-419,-220],[-370,-93],[-348,-127],[-376,-128],[-223,-243],[-446,-23],[-489,23],[-441,-46],[-468,0],[87,-232],[424,-104],[311,-162],[174,-208],[-310,-185],[-479,58],[-397,-151],[-17,-243],[-11,-232],[327,-196],[60,-220],[353,-220],[588,-93],[500,-162],[398,-185],[506,-186],[690,-92],[681,-162],[473,-174],[517,-197],[272,-278],[136,-220],[337,209],[457,173],[484,186],[577,150],[495,162],[691,12],[680,-81],[560,-139],[180,255],[386,173],[702,12],[550,127],[522,128],[577,81],[614,104],[430,150],[-196,209],[-119,208],[0,220],[-539,-23],[-571,-93],[-544,0],[-77,220],[39,440],[125,128],[397,138],[468,139],[337,174],[337,174],[251,231],[380,104],[376,81],[190,47],[430,23],[408,81],[343,116],[337,139],[305,139],[386,185],[245,197],[261,173],[82,232],[-294,139],[98,243],[185,185],[288,116],[305,139],[283,185],[217,232],[136,277],[202,163],[331,-35],[136,-197],[332,-23],[11,220],[142,231],[299,-58],[71,-220],[331,-34],[360,104],[348,69],[315,-34],[120,-243],[305,196],[283,105],[315,81],[310,81],[283,139],[310,92],[240,128],[168,208],[207,-151],[288,81],[202,-277],[157,-209],[316,116],[125,232],[283,162],[365,-35],[108,-220],[229,220],[299,69],[326,23],[294,-11],[310,-70],[300,-34],[130,-197],[180,-174],[304,104],[327,24],[315,0],[310,11],[278,81],[294,70],[245,162],[261,104],[283,58],[212,162],[152,324],[158,197],[288,-93],[109,-208],[239,-139],[289,46],[196,-208],[206,-151],[283,139],[98,255],[250,104],[289,197],[272,81],[326,116],[218,127],[228,139],[218,127],[261,-69],[250,208],[180,162],[261,-11],[229,139],[54,208],[234,162],[228,116],[278,93],[256,46],[244,-35],[262,-58],[223,-162],[27,-254],[245,-197],[168,-162],[332,-70],[185,-162],[229,-162],[266,-35],[223,116],[240,243],[261,-127],[272,-70],[261,-69],[272,-46],[277,0],[229,-614],[-11,-150],[-33,-267],[-266,-150],[-218,-220],[38,-232],[310,12],[-38,-232],[-141,-220],[-131,-243],[212,-185],[321,-58],[321,104],[153,232],[92,220],[153,185],[174,174],[70,208],[147,289],[174,58],[316,24],[277,69],[283,93],[136,231],[82,220],[190,220],[272,151],[234,115],[153,197],[157,104],[202,93],[277,-58],[250,58],[272,69],[305,-34],[201,162],[142,393],[103,-162],[131,-278],[234,-115],[266,-47],[267,70],[283,-46],[261,-12],[174,58],[234,-35],[212,-127],[250,81],[300,0],[255,81],[289,-81],[185,197],[141,196],[191,163],[348,439],[179,-81],[212,-162],[185,-208],[354,-359],[272,-12],[256,0],[299,70],[299,81],[229,162],[190,174],[310,23],[207,127],[218,-116],[141,-185],[196,-185],[305,23],[190,-150],[332,-151],[348,-58],[288,47],[218,185],[185,185],[250,46],[251,-81],[288,-58],[261,93],[250,0],[245,-58],[256,-58],[250,104],[299,93],[283,23],[316,0],[255,58],[251,46],[76,290],[11,243],[174,-162],[49,-266],[92,-244],[115,-196],[234,-105],[315,35],[365,12],[250,35],[364,0],[262,11],[364,-23],[310,-46],[196,-186],[-54,-220],[179,-173],[299,-139],[310,-151],[360,-104],[375,-92],[283,-93],[315,-12],[180,197],[245,-162],[212,-185],[245,-139],[337,-58],[321,-69],[136,-232],[316,-139],[212,-208],[310,-93],[321,12],[299,-35],[332,12],[332,-47],[310,-81],[288,-139],[289,-116],[195,-173],[-32,-232],[-147,-208],[-125,-266],[-98,-209],[-131,-243],[-364,-93],[-163,-208],[-360,-127],[-125,-232],[-190,-220],[-201,-185],[-115,-243],[-70,-220],[-28,-266],[6,-220],[158,-232],[60,-220],[130,-208],[517,-81],[109,-255],[-501,-93],[-424,-127],[-528,-23],[-234,-336],[-49,-278],[-119,-220],[-147,-220],[370,-196],[141,-244],[239,-219],[338,-197],[386,-186],[419,-185],[636,-185],[142,-289],[800,-128],[53,-45],[208,-175],[767,151],[636,-186],[-99504,-147],[245,344],[501,-185],[32,21],[294,188]],[[54716,79012],[-21,-241],[-156,-2],[53,-128],[-92,-380]],[[54500,78261],[-53,-100],[-243,-14],[-140,-134],[-229,45]],[[53835,78058],[-398,153],[-62,205],[-274,-102],[-32,-113],[-169,84]],[[52900,78285],[-142,16],[-125,108],[42,145],[-10,104]],[[52665,78658],[83,33],[141,-164],[39,156],[245,-25],[199,106],[133,-18],[87,-121],[26,100],[-40,385],[100,75],[98,272]],[[53776,79457],[206,-190],[157,242],[98,44],[215,-180],[131,30],[128,-111]],[[54711,79292],[-23,-75],[28,-205]],[[62817,73469],[-190,78],[-141,273],[-44,223]],[[63720,73858],[-48,-207],[-101,-138]],[[63578,73220],[-69,-29],[-173,309],[95,292],[-82,174],[-104,-44],[-327,-436]],[[62492,74950],[68,96],[207,-169],[149,-36],[38,70],[-136,319],[72,82]],[[62890,75312],[78,-20],[191,-359],[122,-40],[48,150],[166,238]],[[58149,47921],[-17,713],[-70,268]],[[58062,48902],[169,-46],[85,336],[147,-38]],[[58463,49154],[16,-233],[60,-134],[3,-192],[-69,-124],[-108,-308],[-101,-214],[-115,-28]],[[50920,80916],[204,-47],[257,123],[176,-258],[153,-138]],[[51710,80596],[-32,-400]],[[51678,80196],[-72,-22],[-30,-331]],[[51576,79843],[-243,269],[-143,-46],[-194,279],[-129,237],[-129,10],[-40,207]],[[50518,54209],[-69,407],[13,1357],[-56,122],[-11,290],[-96,207],[-85,174],[35,311]],[[50249,57077],[96,67],[56,258],[136,56],[61,176]],[[50598,57634],[93,173],[100,2],[212,-340]],[[51003,57469],[-11,-197],[62,-350],[-54,-238],[29,-159],[-135,-366],[-86,-181],[-52,-372],[7,-376],[-16,-952]],[[49214,56277],[-190,152],[-130,-22],[-97,-149],[-125,125],[-49,195],[-125,129]],[[48498,56707],[-18,343],[76,250],[-7,200],[221,490],[41,405],[76,144],[134,-79],[116,120],[38,152],[216,265],[53,184],[259,246],[153,84],[70,-114],[178,3]],[[50104,59400],[-22,-286],[37,-269],[156,-386],[9,-286],[320,-134],[-6,-405]],[[50249,57077],[-243,13]],[[50006,57090],[-128,47],[-90,-96],[-123,43],[-482,-27],[-7,-336],[38,-444]],[[75742,63602],[-6,-424],[-97,90],[18,-476]],[[75657,62792],[-79,308],[-16,301],[-53,285]],[[74730,63611],[-43,486],[-96,444],[47,356],[-171,159],[62,215],[173,220],[-200,313],[98,401],[220,-255],[133,-30],[24,-410],[265,-81],[257,8],[160,-101],[-128,-500],[-124,-34],[-86,-336],[152,-306],[46,377],[76,2],[147,-937]],[[56293,76715],[80,-243],[108,43],[213,-92],[408,-31],[138,150],[327,138],[202,-215],[163,-62]],[[57776,75399],[-239,79],[-283,-186]],[[57254,75292],[-3,-294],[-252,-56],[-196,206],[-222,-162],[-206,17]],[[56375,75003],[-20,391],[-139,189]],[[56216,75583],[46,84],[-30,70],[47,188],[105,185],[-135,255],[-24,216],[68,134]],[[55279,77084],[100,2],[-69,-260],[134,-227],[-41,-278],[-65,-27]],[[55338,76294],[-52,-53],[-90,-138],[-41,-325]],[[55155,75778],[-246,224],[-105,247],[-106,130],[-127,221],[-61,183],[-136,277],[59,245],[99,-136],[60,123],[130,13],[239,-98],[192,8],[126,-131]],[[56523,82432],[268,-4],[302,223],[64,333],[228,190],[-26,264]],[[57359,83438],[169,100],[298,228]],[[57826,83766],[293,-149],[39,-146],[146,70],[272,-141],[27,-277],[-60,-159],[174,-387],[113,-108],[-16,-107],[187,-104],[80,-157],[-108,-129],[-224,20],[-54,-55],[66,-196],[68,-379]],[[58829,81362],[-239,-35],[-85,-129],[-18,-298],[-111,57],[-250,-28],[-73,138],[-104,-103],[-105,86],[-218,12],[-310,141],[-281,47],[-215,-14],[-152,-160],[-133,-23]],[[56535,81053],[-6,263],[-85,274],[166,121],[2,235],[-77,225],[-12,261]],[[25238,61101],[-2,87],[33,27],[51,-70],[99,357],[53,8]],[[25297,59966],[-83,0],[22,667],[2,468]],[[31359,37147],[-200,-81],[-109,814],[-150,663],[88,572],[-146,250],[-37,426],[-136,402]],[[30669,40193],[175,638],[-119,496],[63,199],[-49,219],[108,295],[6,503],[13,415],[60,200],[-240,951]],[[30686,44109],[206,-50],[143,13],[62,179],[243,239],[147,222],[363,100],[-29,-443],[34,-227],[-23,-396],[302,-529],[311,-98],[109,-220],[188,-117],[115,-172],[175,6],[161,-175],[12,-342],[55,-172],[3,-255],[-81,-10],[107,-688],[533,-24],[-41,-342],[30,-233],[151,-166],[66,-367],[-49,-465],[-77,-259],[27,-337],[-87,-122]],[[33842,38659],[-4,182],[-259,302],[-258,9],[-484,-172],[-133,-520],[-7,-318],[-110,-708]],[[34826,35372],[54,341],[38,350],[0,325],[-100,107],[-104,-96],[-103,26],[-33,228],[-26,541],[-52,177],[-187,160],[-114,-116],[-293,113],[18,802],[-82,329]],[[30686,44109],[-157,-102],[-126,68],[18,898],[-228,-348],[-245,15],[-105,315],[-184,34],[59,254],[-155,359],[-115,532],[73,108],[0,250],[168,171],[-28,319],[71,206],[20,275],[318,402],[227,114],[37,89],[251,-28]],[[30585,48040],[125,1620],[6,256],[-43,339],[-123,215],[1,430],[156,97],[56,-61],[9,226],[-162,61],[-4,370],[541,-13],[92,203],[77,-187],[55,-349],[52,73]],[[31423,51320],[153,-312],[216,38],[54,181],[206,138],[115,97],[32,250],[198,168],[-15,124],[-235,51],[-39,372],[12,396],[-125,153],[52,55],[206,-76],[221,-148],[80,140],[200,92],[310,221],[102,225],[-37,167]],[[33129,53652],[145,26],[64,-136],[-36,-259],[96,-90],[63,-274],[-77,-209],[-44,-502],[71,-299],[20,-274],[171,-277],[137,-29],[30,116],[88,25],[126,104],[90,157],[154,-50],[67,21]],[[34294,51702],[151,-48],[25,120],[-46,118],[28,171],[112,-53],[131,61],[159,-125]],[[34854,51946],[121,-122],[86,160],[62,-25],[38,-166],[133,42],[107,224],[85,436],[164,540]],[[35174,30629],[-77,334],[122,280],[-160,402],[-218,327],[-286,379],[-103,-18],[-279,457],[-180,-63]],[[82069,53798],[-13,-291],[-16,-377],[-133,19],[-58,-202],[-126,307]],[[75471,66988],[113,-189],[-20,-363],[-227,-17],[-234,39],[-175,-92],[-252,224],[-6,119]],[[74670,66709],[184,439],[150,150],[198,-137],[147,-14],[122,-159]],[[58175,37528],[-393,-435],[-249,-442],[-93,-393],[-83,-222],[-152,-47],[-48,-283],[-28,-184],[-178,-138],[-226,29],[-133,166],[-117,71],[-135,-137],[-68,-283],[-132,-177],[-139,-264],[-199,-60],[-62,207],[26,360],[-165,562],[-75,88]],[[55526,35946],[0,1725],[274,20],[8,2105],[207,19],[428,207],[106,-243],[177,231],[85,2],[156,133]],[[56967,40145],[50,-44]],[[57017,40101],[107,-473],[56,-105],[87,-342],[315,-649],[119,-64],[0,-208],[82,-375],[215,-90],[177,-267]],[[54244,54965],[229,44],[52,152],[46,-11],[69,-134],[350,226],[118,230],[145,207],[-28,208],[78,54],[269,-36],[261,273],[201,645],[141,239],[176,101]],[[56351,57163],[31,-253],[160,-369],[1,-241],[-45,-246],[18,-184],[96,-170]],[[56612,55700],[212,-258]],[[56824,55442],[152,-239],[2,-192],[187,-308],[116,-255],[70,-355],[208,-234],[44,-187]],[[57603,53672],[-91,-63],[-178,14],[-209,62],[-104,-51],[-41,-143],[-90,-18],[-110,125],[-309,-295],[-127,60],[-38,-46],[-83,-357],[-207,115],[-203,59],[-177,218],[-229,200],[-149,-190],[-108,-300],[-25,-412]],[[55125,52650],[-178,33],[-188,99],[-166,-313],[-146,-550]],[[54447,51919],[-29,172],[-12,269],[-127,190],[-103,305],[-23,212],[-132,309],[23,176],[-28,249],[21,458],[67,107],[140,599]],[[26228,91219],[16,649],[394,-46]],[[25824,89109],[-81,-259],[-322,-399]],[[23714,86094],[-16,-686],[409,-99]],[[25743,83665],[348,-163],[294,-248]],[[28738,83981],[-23,395],[-188,502]],[[31513,79609],[415,58],[246,-289]],[[31350,77248],[-181,334],[0,805],[-123,171],[-187,-100],[-92,155],[-212,-446],[-84,-460],[-99,-269],[-118,-91],[-89,-30],[-28,-146],[-512,0],[-422,-4],[-125,-109],[-294,-425],[-34,-46],[-89,-231],[-255,1],[-273,-3],[-125,-93],[44,-116],[25,-181],[-5,-60],[-363,-293],[-286,-93],[-323,-316],[-70,0],[-94,93],[-31,85],[6,61],[61,207],[131,325],[81,349],[-56,514],[-59,536],[-290,277],[35,105],[-41,73],[-76,0],[-56,93],[-14,140],[-54,-61],[-75,18],[17,59],[-65,58],[-27,155],[-216,189],[-224,197],[-272,229],[-261,214],[-248,-167],[-91,-6],[-342,154],[-225,-77],[-269,183],[-284,94],[-194,36],[-86,100],[-49,325],[-94,-3],[-1,-227],[-575,0],[-951,0],[-944,0],[-833,0],[-834,0],[-819,0],[-847,0],[-273,0],[-825,0],[-788,0]],[[15104,80367],[-503,244],[-155,523],[40,363]],[[13740,82958],[154,285],[-7,373],[-473,376],[-284,674],[-173,424],[-255,266],[-187,242],[-147,306],[-279,-192],[-270,-330],[-247,388],[-194,259],[-271,164],[-273,17],[1,3364],[2,2193]],[[11355,91625],[438,-285],[289,-54]],[[15437,92031],[38,-449],[341,97]],[[17987,91291],[374,-300],[-390,-293]],[[19722,91216],[-704,-88],[-494,-56]],[[15020,93041],[119,250],[192,432]],[[16539,93012],[0,-257],[-731,-285]],[[52900,78285],[-22,-242],[-122,-100],[-206,75],[-60,-239],[-132,-19],[-48,94],[-156,-200],[-134,-28],[-120,126]],[[51900,77752],[-95,259],[-133,-92],[5,267],[203,332],[-9,150],[126,-54],[77,101]],[[52074,78715],[236,-4],[57,128],[298,-181]],[[31400,18145],[-92,-239],[-238,-183]],[[31070,17723],[-137,19],[-164,48]],[[30769,17790],[-202,177],[-291,86],[-350,330],[-283,317],[-383,662],[229,-124],[390,-395],[369,-212],[143,271],[90,405],[256,244],[198,-70]],[[29661,27385],[-80,576],[-22,666]],[[30452,39739],[143,151],[74,303]],[[86288,75628],[-179,348],[-111,-331],[-429,-254],[44,-312],[-241,22],[-131,185],[-191,-419],[-306,-318],[-227,-379]],[[83030,72705],[220,-173],[311,422]],[[83987,72709],[45,-310],[-393,-165]],[[83097,71205],[299,-325],[109,-581]],[[80517,63220],[-373,189],[-131,-96]],[[80013,63313],[-280,154],[-132,240],[44,340],[-254,108],[-134,222],[-236,-315],[-271,-68],[-221,3],[-149,-145]],[[78380,63852],[-144,-86],[42,-676],[-148,16],[-25,139]],[[78105,63245],[-9,244],[-203,-172],[-121,109],[-206,222],[81,490],[-176,115],[-66,544],[-293,-98],[33,701],[263,493],[11,487],[-8,452],[-121,141],[-93,348],[-162,-44]],[[77035,67277],[-300,89],[94,248],[-130,367],[-198,-249],[-233,145],[-321,-376],[-252,-439],[-224,-74]],[[74670,66709],[-23,465],[-170,-124]],[[74477,67050],[-324,57],[-314,136],[-225,259],[-216,117],[-93,284],[-157,84],[-280,385],[-223,182],[-115,-141]],[[72530,68413],[-386,413],[-273,374],[-78,651],[200,-79],[9,301],[-111,303],[28,482],[-298,692]],[[71621,71550],[-457,239],[-82,454],[-205,276]],[[70827,72688],[-42,337],[10,230],[-169,134],[-91,-59],[-70,546]],[[70465,73876],[79,136],[-39,138],[266,279],[192,116],[294,-80],[105,378],[356,70],[99,234],[438,320],[39,134]],[[72294,75601],[-22,337],[190,154],[-250,1026],[550,236],[143,131],[200,1058],[551,-194],[155,267],[13,592],[230,56],[212,393]],[[74266,79657],[109,49]],[[74375,79706],[73,-413],[233,-313],[396,-222],[192,-476],[-107,-690],[100,-256],[330,-101],[374,-83],[336,-368],[171,-66],[127,-544],[163,-351],[306,14],[574,-133],[369,82],[274,-88],[411,-359],[336,1],[123,-184],[324,318],[448,205],[417,22],[324,208],[200,316],[194,199],[-45,195],[-89,227],[146,381],[156,-53],[286,-120],[277,313],[423,229],[204,391],[195,168],[404,78],[219,-66],[30,210],[-251,413],[-223,189],[-214,-219],[-274,92],[-157,-74],[-72,241],[197,590],[135,446]],[[82410,80055],[333,-223],[392,373],[-3,260],[251,627],[155,189],[-4,326],[-152,141],[229,294],[345,106],[369,16],[415,-176],[244,-217],[172,-596],[104,-254],[97,-363],[103,-579],[483,-189],[329,-420],[112,-555],[423,-1],[240,233],[459,175],[-146,-532],[-107,-216],[-96,-647],[-186,-575],[-338,104],[-238,-208],[73,-506],[-40,-698],[-142,-16],[2,-300]],[[47857,53158],[22,487],[26,74],[-8,233],[-118,247],[-88,40],[-81,162],[60,262],[-28,286],[13,172]],[[47655,55121],[44,0],[17,258],[-22,114],[27,82],[103,71],[-69,473],[-64,245],[23,200],[55,46]],[[47769,56610],[36,54],[77,-89],[215,-5],[51,172],[48,-11],[80,67],[43,-253],[65,74],[114,88]],[[49214,56277],[74,-841],[-117,-496],[-73,-667],[121,-509],[-13,-233]],[[53632,51919],[-35,32],[-164,-76],[-169,79],[-132,-38]],[[53132,51916],[-452,13]],[[52680,51929],[40,466],[-108,391]],[[52429,53151],[-72,85],[4,163]],[[52361,53399],[71,418],[132,570],[81,6],[165,345],[105,10],[156,-243],[191,199],[26,246],[63,238],[43,299],[148,243],[56,414],[59,132],[39,307],[74,377],[234,457],[14,196],[31,107],[-110,235]],[[53939,57955],[9,188],[78,34]],[[54026,58177],[111,-378],[18,-392],[-10,-393],[151,-537],[-155,6],[-78,-42],[-127,60],[-60,-279],[164,-345],[121,-100],[39,-245],[87,-407],[-43,-160]],[[54447,51919],[-20,-319],[-220,140],[-225,156],[-350,23]],[[58564,52653],[-16,-691],[111,-80],[-89,-210],[-107,-157],[-106,-308],[-59,-274],[-15,-475],[-65,-225],[-2,-446]],[[58216,49787],[-80,-165],[-10,-351],[-38,-46],[-26,-323]],[[58149,47921],[50,-544],[-27,-307]],[[58172,47070],[55,-343],[161,-330]],[[58388,46397],[150,-745]],[[58538,45652],[-109,60],[-373,-99],[-75,-71],[-79,-377],[62,-261],[-49,-699],[-34,-593],[75,-105],[194,-230],[76,107],[23,-637],[-212,5],[-114,325],[-103,252],[-213,82],[-62,310],[-170,-187],[-222,83],[-93,268],[-176,55],[-131,-15],[-15,184],[-96,15]],[[53609,47755],[73,-60],[95,226],[152,-6],[17,-167],[104,-105],[164,370],[161,289],[71,189],[-10,486],[121,574],[127,304],[183,285],[32,189],[7,216],[45,205],[-14,335],[34,524],[55,368],[83,316],[16,357]],[[57603,53672],[169,-488],[124,-71],[75,99],[128,-39],[155,125],[66,-252],[244,-393]],[[53081,48229],[212,326],[-105,391],[95,148],[187,73],[23,261],[148,-283],[245,-25],[85,279],[36,393],[-31,461],[-131,350],[120,684],[-69,117],[-207,-48],[-78,305],[21,258]],[[29063,50490],[-119,140],[-137,195],[-79,-94],[-235,82],[-68,255],[-52,-10],[-278,338]],[[28366,54848],[36,287],[89,-43],[52,176],[-64,348],[34,86]],[[30185,57537],[-178,-99],[-71,-295],[-107,-169],[-81,-220],[-34,-422],[-77,-345],[144,-40],[35,-271],[62,-130],[21,-238],[-33,-219],[10,-123],[69,-49],[66,-207],[357,57],[161,-75],[196,-508],[112,63],[200,-32],[158,68],[99,-102],[-50,-318],[-62,-199],[-22,-423],[56,-393],[79,-175],[9,-133],[-140,-294],[100,-130],[74,-207],[85,-589]],[[30585,48040],[-139,314],[-83,14],[179,602],[-213,276],[-166,-51],[-101,103],[-153,-157],[-207,74],[-163,620],[-129,152],[-89,279],[-184,280],[-74,-56]],[[26191,57131],[42,76],[183,-156],[63,77],[89,-50],[46,-121],[82,-40],[66,126]],[[27070,56232],[-107,-53],[1,-238],[58,-88],[-41,-70],[10,-107],[-23,-120],[-14,-117]],[[59437,71293],[-30,21],[-53,-45],[-42,12],[-14,-22],[-5,59],[-20,37],[-54,6],[-75,-51],[-52,31]],[[53776,79457],[-157,254],[-141,142],[-30,249],[-49,176],[202,129],[103,147],[200,114],[70,113],[73,-68],[124,62]],[[54171,80775],[132,-191],[207,-51],[-17,-163],[151,-122],[41,153],[191,-66],[26,-185],[207,-36],[127,-291]],[[55236,79823],[-82,-1],[-43,-106],[-64,-26],[-18,-134],[-54,-28],[-7,-55],[-95,-61],[-123,10],[-39,-130]],[[53922,82340],[64,-300],[-77,-158],[101,-210],[69,-316],[-22,-204],[114,-377]],[[52074,78715],[35,421],[140,404],[-400,109],[-131,155]],[[51718,79804],[16,259],[-56,133]],[[51710,80596],[-47,619],[167,0],[70,222],[69,541],[-51,200]],[[52368,83053],[210,-78],[178,90]],[[61984,57352],[-102,-317]],[[61882,57035],[-62,106],[-67,-42],[-155,10],[-4,180],[-22,163],[94,277],[98,261]],[[61764,57990],[119,-51],[83,144]],[[52293,84144],[80,177],[244,37]],[[30081,61241],[5,161],[-71,177],[68,99],[21,228],[-24,321]],[[53333,64447],[-952,-1126],[-804,-1161],[-392,-263]],[[51185,61897],[-308,-58],[-3,376],[-129,96],[-173,169],[-66,277],[-937,1289],[-937,1289]],[[48632,65335],[-1045,1431]],[[47587,66766],[6,114],[-1,40]],[[47592,66920],[-2,700],[449,436],[277,90],[227,159],[107,295],[324,234],[12,438],[161,51],[126,219],[363,99],[51,230],[-73,125],[-96,624],[-17,359],[-104,379]],[[52339,72408],[-57,-303],[44,-563],[-65,-487],[-171,-330],[24,-445],[227,-352],[3,-143],[171,-238],[118,-1061]],[[52633,68486],[90,-522],[15,-274],[-49,-482],[21,-270],[-36,-323],[24,-371],[-110,-247],[164,-431],[11,-253],[99,-330],[130,109],[219,-275],[122,-370]],[[29063,50490],[38,-449],[-86,-384],[-303,-619],[-334,-233],[-170,-514],[-53,-398],[-157,-243],[-116,298],[-113,64],[-114,-47],[-8,216],[79,141],[-33,246]],[[60240,63578],[-1102,0],[-1077,0],[-1117,0]],[[56944,63578],[0,2175],[0,2101],[-83,476],[71,365],[-43,253],[101,283]],[[59518,69025],[182,-1015]],[[61764,57990],[-95,191],[-114,346],[-124,190],[-71,204],[-242,237],[-191,7],[-67,124],[-163,-139],[-168,268],[-87,-441],[-323,124]],[[60119,59101],[-30,236],[120,868],[27,393],[88,181],[204,97],[141,337]],[[60669,61213],[161,-684],[77,-542]],[[47783,76427],[340,-106],[373,3]],[[49471,76235],[111,-230],[511,-268],[101,127],[313,-267],[322,77]],[[49600,72702],[-197,-454],[-352,-9]],[[47929,72498],[-23,195],[103,222],[38,161],[-96,175],[77,388],[-111,355],[120,48],[11,280],[45,86],[3,461],[129,160],[-78,296],[-162,21],[-47,-75],[-164,0],[-70,289],[-113,-86],[-101,-150]],[[57772,85719],[42,-103],[-198,-341],[83,-551],[-120,-187]],[[57579,84537],[-229,1],[-239,219],[-121,73],[-237,-105]],[[61882,57035],[-61,-209],[103,-325],[102,-285],[106,-210],[909,-702],[233,4]],[[63274,55308],[-785,-1773],[-362,-26],[-247,-417],[-178,-11],[-76,-186]],[[61626,52895],[-190,0],[-112,200],[-254,-247],[-82,-247],[-185,47],[-62,68],[-65,-16],[-87,6],[-352,502],[-193,0],[-95,194],[0,332],[-145,99]],[[59804,53833],[-164,643],[-127,137],[-48,236],[-141,288],[-171,42],[95,337],[147,14],[42,181]],[[59437,55711],[-4,531]],[[59433,56242],[82,618],[132,166],[28,241],[119,451],[168,293],[112,582],[45,508]],[[57942,91385],[-41,-414],[425,-394],[-256,-445],[323,-673],[-187,-506],[250,-440],[-113,-385],[411,-405],[-105,-301],[-258,-341],[-594,-755]],[[56352,85938],[-161,323],[-269,193],[62,582]],[[55984,87036],[-135,533],[133,345]],[[56639,89578],[-93,230],[-8,910],[-433,402],[-371,289]],[[55734,91409],[167,156],[309,-312],[362,29],[298,-143],[265,262],[137,433],[431,200],[356,-235],[-117,-414]],[[34854,51946],[70,252],[24,269],[48,253],[-107,349]],[[34889,53069],[-22,404],[144,508]],[[51576,79843],[62,-52],[80,13]],[[51900,77752],[-11,-167],[82,-222],[-97,-180],[72,-457],[151,-75],[-32,-256]],[[49176,78685],[-424,227],[-28,431]],[[52636,51176],[94,35],[404,-6],[-2,711]],[[48278,82406],[-210,122],[-172,-9],[57,317],[-57,317]],[[49420,83612],[22,-62],[248,-697]],[[49690,82853],[190,-95],[171,-673],[79,-233],[337,-113],[-34,-378],[-142,-173],[111,-305],[-250,-310],[-371,6],[-473,-163],[-130,116],[-183,-276],[-257,67],[-195,-226],[-148,118],[407,621],[249,127]],[[49051,80963],[-2,1],[-434,98]],[[48615,81062],[-79,235],[291,183],[-152,319],[52,387]],[[48727,82186],[413,-54],[1,0]],[[49141,82132],[40,343]],[[49181,82475],[-186,364],[-4,8]],[[48991,82847],[-337,104],[-66,160],[101,264],[-92,163],[-149,-279],[-17,569],[-140,301],[101,611],[216,480],[222,-47],[335,49],[-297,-639],[283,81],[304,-3],[-72,-481],[-250,-530],[287,-38]],[[61098,76242],[34,70],[235,-101],[409,-96],[378,-283],[48,-110],[169,93],[259,-124],[85,-242],[175,-137]],[[62106,74858],[-268,290],[-296,-28]],[[50006,57090],[-20,-184],[116,-305],[-1,-429],[27,-466],[69,-215],[-61,-532],[22,-294],[74,-375],[62,-207]],[[47655,55121],[-78,15],[-57,-238],[-78,3],[-55,126],[19,237],[-116,362],[-73,-67],[-59,-13]],[[47158,55546],[-77,-34],[3,217],[-44,155],[9,171],[-60,249],[-78,211],[-222,1],[-65,-112],[-76,-13],[-48,-128],[-32,-163],[-148,-260]],[[45797,57103],[123,288],[84,-11],[73,99],[61,1],[44,78],[-24,196],[31,62],[5,200]],[[46194,58016],[134,-6],[200,-144],[61,13],[21,66],[151,-47],[40,33]],[[46801,57931],[16,-216],[44,1],[73,78],[46,-19],[77,-150],[119,-48],[76,128],[90,79],[67,83],[55,-15],[62,-130],[33,-163],[114,-248],[-57,-152],[-11,-192],[59,58],[35,-69],[-15,-176],[85,-170]],[[45357,58612],[302,17],[63,140],[88,9],[110,-145],[86,-3],[92,99],[56,-170],[-120,-133],[-121,11],[-119,124],[-103,-136],[-50,-5],[-67,-83],[-253,13]],[[45367,57897],[147,96],[92,-19],[75,67],[513,-25]],[[56638,74190],[-154,-1],[-147,305]],[[56486,73734],[-105,-129],[155,-273]],[[56431,72099],[-184,-8],[-228,257],[-104,473]],[[55838,74710],[182,53],[106,129],[150,-12],[46,103],[53,20]],[[57254,75292],[135,-157],[-86,-369],[-66,-67]],[[24381,59170],[7,172],[32,138],[-39,111],[133,481],[357,2],[7,201],[-45,36],[-31,128],[-103,136],[-103,198],[125,1],[1,333],[259,1],[257,-7]],[[25493,59872],[-127,-225],[-131,-166],[-20,-113],[22,-116],[-58,-150]],[[25179,59102],[-65,-37],[15,-69],[-52,-66],[-95,-149],[-9,-86]],[[34125,54109],[-44,-532],[-169,-154],[15,-139],[-51,-305],[123,-429],[89,-1],[37,-333],[169,-514]],[[33129,53652],[-188,448],[75,163],[-5,273],[171,95],[69,110],[-95,220],[24,215],[220,347]],[[25697,58436],[-84,51]],[[25613,58487],[19,237],[-38,64],[-57,42],[-122,-70],[-10,79],[-84,95],[-60,118],[-82,50]],[[25860,59889],[128,15],[90,66]],[[26903,59440],[-95,12],[-38,-81],[-97,-77],[-70,0],[-61,-76],[-56,27],[-47,90],[-29,-17],[-36,-141],[-27,5],[-4,-121],[-97,-163],[-51,-70],[-29,-74],[-82,120],[-60,-158],[-58,4],[-65,-14],[6,-290],[-41,-5],[-35,-135],[-86,-25]],[[55230,77704],[67,-229],[89,-169],[-107,-222]],[[55155,75778],[-31,-100]],[[54448,76285],[-233,434],[56,45]],[[53809,77462],[194,-20],[51,100],[94,-97],[109,-11],[-1,165],[97,60],[27,239],[221,157]],[[54601,78055],[88,-73],[208,-253],[229,-114],[104,89]],[[54716,79012],[141,-151],[103,-65],[233,73],[22,118],[111,18],[135,92],[30,-38],[130,74],[66,139],[91,36],[297,-180],[59,61]],[[56134,79189],[155,-161],[19,-159]],[[56308,78869],[-170,-123],[-131,-401],[-168,-401],[-223,-111]],[[55616,77833],[-173,26],[-213,-155]],[[54601,78055],[-54,200],[-47,6]],[[84713,45326],[28,-117],[5,-179]],[[89166,49043],[5,-1925],[4,-1925]],[[80461,51765],[47,-395],[190,-334],[179,121],[177,-43],[162,299],[133,52],[263,-166],[226,126],[143,822],[107,205],[96,672],[319,0],[241,-100]],[[72530,68413],[-176,-268],[-108,-553],[269,-224],[262,-289],[362,-332],[381,-76],[160,-301],[215,-56],[334,-138],[231,10],[32,234],[-36,375],[21,255]],[[77035,67277],[20,-224],[-97,-108],[23,-364],[-199,107],[-359,-408],[8,-338],[-153,-496],[-14,-288],[-124,-487],[-217,135],[-11,-612],[-63,-201],[30,-251],[-137,-140]],[[73107,61020],[-276,-387],[-1,-271]],[[72692,60216],[-251,-212],[-129,-31]],[[71996,56025],[-253,-168],[-93,-401]],[[68937,64577],[185,395],[612,-2],[-56,507],[-156,300],[-31,455],[-182,265],[306,619],[323,-45],[290,620],[174,599],[270,593],[-4,421],[236,342],[-224,292],[-96,400],[-99,517],[137,255],[421,-144],[310,88],[268,496]],[[64978,72558],[244,114],[197,338],[186,-17],[122,110],[197,-55],[308,-299],[221,-65],[318,-523],[207,-21],[24,-498]],[[66909,68203],[137,-310],[112,-357],[266,-260],[7,-520],[133,-96],[23,-272],[-400,-305],[-105,-687]],[[66559,65575],[-303,136],[-313,76]],[[63594,68492],[-104,-231]],[[63490,68261],[-153,311],[-3,314],[-89,0],[46,428],[-143,449],[-340,324],[-193,562],[65,461],[139,204],[-21,345],[-182,177],[-180,705]],[[62436,72541],[-152,473],[55,183],[-87,678],[190,168]],[[63326,68290],[-187,49],[-204,-567]],[[62935,67772],[-516,47],[-784,1188],[-413,414],[-335,160]],[[60887,69581],[-112,720]],[[60775,70301],[615,614],[105,715],[-26,431],[152,146],[142,369]],[[61763,72576],[119,92],[324,-77],[97,-150],[133,100]],[[63490,68261],[-164,29]],[[59873,69719],[-100,82],[-58,-394],[69,-66],[-71,-81],[-12,-156],[131,80]],[[59832,69184],[7,-230],[-139,-944]],[[59757,70130],[93,-1],[25,104],[75,8]],[[59950,70241],[4,-242],[-38,-90],[6,-4]],[[59922,69905],[-49,-186]],[[53835,78058],[-31,-291],[67,-251]],[[54413,75123],[249,-214],[204,-178]],[[53108,75604],[-189,340],[-86,585]],[[59922,69905],[309,-234],[544,630]],[[60887,69581],[-53,-89],[-556,-296],[277,-591],[-92,-101],[-46,-197],[-212,-82],[-66,-213],[-120,-182],[-310,94]],[[59832,69184],[41,173],[0,362]],[[69711,75551],[-159,-109],[-367,-412],[-121,-422],[-104,-4],[-76,280],[-353,19],[-57,484],[-135,4],[21,593],[-333,431],[-476,-46],[-326,-86],[-265,533],[-227,223],[-431,423],[-52,51],[-715,-349],[11,-2178]],[[65546,74986],[-142,-29],[-195,463],[-188,166],[-315,-123],[-123,-197]],[[63639,77993],[-142,96],[29,304],[-177,395],[-207,-17],[-235,401],[160,448],[-81,120],[222,649],[285,-342],[35,431],[573,643],[434,15],[612,-409],[329,-239],[295,249],[440,12],[356,-306],[80,175],[391,-25],[69,280],[-450,406],[267,288],[-52,161],[266,153],[-200,405],[127,202],[1039,205],[136,146],[695,218],[250,245],[499,-127],[88,-612],[290,144],[356,-202],[-23,-322],[267,33],[696,558],[-102,-185],[355,-457],[620,-1500],[148,309],[383,-340],[399,151],[154,-106],[133,-341],[194,-115],[119,-251],[358,79],[147,-361]],[[72294,75601],[-171,87],[-140,212],[-412,62],[-461,16],[-100,-65],[-396,248],[-158,-122],[-43,-349],[-457,204],[-183,-84],[-62,-259]],[[60889,47817],[-399,590],[-19,343],[-1007,1203],[-47,65]],[[59417,50018],[-3,627],[80,239],[137,391],[101,431],[-123,678],[-32,296],[-132,411]],[[59445,53091],[171,352],[188,390]],[[61626,52895],[-243,-670],[3,-2152],[165,-488]],[[70465,73876],[-526,-89],[-343,192],[-301,-46],[26,340],[303,-98],[101,182]],[[69725,74357],[212,-58],[355,425],[-329,311],[-198,-147],[-205,223],[234,382],[-83,58]],[[78495,57780],[-66,713],[178,492],[359,112],[261,-84]],[[79227,59013],[229,-232],[126,407],[246,-217]],[[79828,58971],[64,-394],[-34,-708],[-467,-455],[122,-358],[-292,-43],[-240,-238]],[[85103,71220],[51,443],[-122,615]],[[85048,72883],[17,54],[124,-21],[108,266],[197,29],[118,39],[40,143]],[[55575,75742],[52,132]],[[55627,75874],[66,43],[38,196],[50,33],[40,-84],[52,-36],[36,-94],[46,-28],[54,-110],[39,4],[-31,-144],[-33,-71],[9,-44]],[[55993,75539],[-62,-23],[-164,-91],[-13,-121],[-35,5]],[[63448,67449],[-196,-16],[-69,282],[-248,57]],[[79227,59013],[90,266],[12,500],[-224,515],[-18,583],[-211,480],[-210,40],[-56,-205],[-163,-17],[-83,104],[-293,-353],[-6,530],[68,623],[-188,27],[-16,355],[-120,182]],[[77809,62643],[59,218],[237,384]],[[78380,63852],[162,-466],[125,-537],[342,-5],[108,-515],[-178,-155],[-80,-212],[333,-353],[231,-699],[175,-520],[210,-411],[70,-418],[-50,-590]],[[59999,71049],[125,-31],[45,-231],[-151,-223],[-68,-323]],[[47498,53435],[-252,449],[-237,324]],[[46822,54589],[66,189],[15,172],[126,320],[129,276]],[[54125,64088],[-197,-220],[-156,324],[-439,255]],[[52633,68486],[136,137],[24,250],[-30,244],[191,228],[86,189],[135,170],[16,454]],[[56646,69496],[276,-70],[68,-195]],[[56944,63578],[0,-1180],[-320,-2],[-3,-248]],[[56621,62148],[-1108,1131],[-1108,1132],[-280,-323]],[[57499,32928],[148,374],[151,232],[130,120],[121,-182],[96,-178],[-85,-288],[-47,-192],[-155,-93],[-51,-188],[-99,-59],[-209,454]],[[56314,82678],[-23,150],[30,162],[-123,94],[-291,103]],[[55848,83684],[318,181],[466,-38],[273,59],[39,-123],[148,-38],[267,-287]],[[56523,82432],[-67,182],[-142,64]],[[57579,84537],[134,-136],[24,-287],[89,-348]],[[47592,66920],[-42,0],[7,-317],[-172,-19],[-90,-134],[-126,0],[-100,76],[-234,-63],[-91,-460],[-86,-44],[-131,-745],[-386,-637],[-92,-816],[-114,-265],[-33,-213],[-625,-48],[-5,1]],[[45272,63236],[13,274],[106,161],[91,308],[-18,200],[96,417],[155,376],[93,95],[74,344],[6,315],[100,365],[185,216],[177,603]],[[46350,66910],[5,8],[139,227]],[[46494,67145],[259,65],[218,404],[140,158]],[[57394,79070],[66,87],[185,58],[204,-184],[115,-22],[125,-159],[-20,-200],[101,-97],[40,-247],[97,-150],[-19,-88],[52,-60],[-74,-44],[-164,18],[-27,81],[-58,-47],[20,-106],[-76,-188],[-49,-203],[-70,-64]],[[57842,77455],[-50,270],[30,252],[-9,259],[-160,352],[-89,249],[-86,175],[-84,58]],[[23016,65864],[-107,-518],[-49,-426],[-20,-791],[-27,-289],[48,-322],[86,-288],[56,-458],[184,-440],[65,-337],[109,-291],[295,-157],[114,-247],[244,165],[212,60],[208,106],[175,101],[176,241],[67,345],[22,496],[48,173],[188,155],[294,137],[246,-21],[169,50],[66,-125],[-9,-285],[-149,-351],[-66,-360],[51,-103],[-42,-255],[-69,-461],[-71,152],[-58,-10]],[[24067,59806],[-144,191],[-226,155]],[[19641,66203],[-142,138],[-164,287]],[[18570,68996],[-201,234],[-93,-25]],[[19362,64423],[-181,337],[-201,286]],[[17464,69802],[316,46],[353,64],[-26,-116],[419,-287],[634,-416],[552,4],[221,0],[0,244],[481,0],[102,-210],[142,-186],[165,-260],[92,-309],[69,-325],[144,-178],[230,-177],[175,467],[227,11],[196,-236],[139,-404],[96,-346],[164,-337],[61,-414],[78,-277],[217,-184],[197,-130],[108,18]],[[55993,75539],[95,35],[128,9]],[[46619,59216],[93,107],[47,348],[88,14],[194,-165],[157,117],[107,-39],[42,131],[1114,9],[62,414],[-48,73],[-134,2550],[-134,2550],[425,10]],[[51185,61897],[1,-1361],[-152,-394],[-24,-364],[-247,-94],[-379,-51],[-102,-210],[-178,-23]],[[46801,57931],[13,184],[-24,229],[-104,166],[-54,338],[-13,368]],[[77809,62643],[-159,-137],[-162,-256],[-196,-26],[-127,-639],[-117,-107],[134,-519],[177,-431],[113,-390],[-101,-514],[-96,-109],[66,-296],[185,-470],[32,-330],[-4,-274],[108,-539],[-152,-551],[-135,-607]],[[55338,76294],[74,-101],[40,-82],[91,-63],[106,-123],[-22,-51]],[[55380,75322],[-58,46]],[[74375,79706],[292,102],[530,509],[423,278],[242,-182],[289,-8],[186,-276],[277,-22],[402,-148],[270,411],[-113,348],[288,612],[311,-244],[252,-69],[327,-152],[53,-443],[394,-248],[263,109],[351,78],[279,-78],[272,-284],[168,-302],[258,6],[350,-96],[255,146],[366,98],[407,416],[166,-63],[146,-198],[331,49]],[[59599,43773],[209,48],[334,-166],[73,74],[193,16],[99,177],[167,-10],[303,230],[221,342]],[[59870,36949],[-45,-275],[65,-101]],[[59890,36573],[-41,-245],[-116,-211]],[[59119,34780],[-211,5]],[[58908,34785],[-24,261],[-41,265]],[[58843,35311],[-23,212],[49,659],[-72,419],[-133,832]],[[58664,37433],[292,671],[74,426],[42,53],[31,348],[-45,175],[12,442],[54,409],[0,748],[-145,190],[-132,43],[-60,146],[-128,125],[-232,-12],[-18,220]],[[58409,41417],[-26,421],[843,487]],[[59226,42325],[159,-284],[77,54],[110,-149],[16,-237],[-59,-274],[21,-417],[181,-365],[85,410],[120,124],[-24,760],[-116,427],[-100,191],[-97,-9],[-77,768],[77,449]],[[46619,59216],[-184,405],[-168,435],[-184,157],[-133,173],[-155,-6],[-135,-129],[-138,51],[-96,-189]],[[45260,62987],[60,197],[1088,-4],[-53,853],[68,304],[261,53],[-9,1512],[911,-31],[1,895]],[[59226,42325],[-147,153],[85,549],[87,205],[-53,490],[56,479],[47,160],[-71,501],[-131,264]],[[59099,45126],[273,-110],[55,-164],[95,-275],[77,-804]],[[77801,54399],[48,105],[227,-258],[22,-304],[183,71],[91,243]],[[56448,40227],[228,134],[180,-34],[109,-133],[2,-49]],[[55526,35946],[0,-2182],[-248,-302],[-149,-43],[-175,112],[-125,43],[-47,252],[-109,162],[-133,-292]],[[54125,64088],[68,-919],[104,-153],[4,-188],[116,-203],[-60,-254],[-107,-1199],[-15,-769],[-354,-557],[-120,-778],[115,-219],[0,-380],[178,-13],[-28,-279]],[[53939,57955],[-52,-13],[-188,647],[-65,24],[-217,-331],[-215,173],[-150,34],[-80,-83],[-163,18],[-164,-252],[-141,-14],[-337,305],[-131,-145],[-142,10],[-104,223],[-279,221],[-298,-70],[-72,-128],[-39,-340],[-80,-238],[-19,-527]],[[52072,53186],[-105,31],[-107,-132]],[[51398,53895],[-197,389],[-209,-7]],[[25647,58207],[31,91],[46,-88]],[[51063,81078],[244,869],[380,248]],[[58639,91676],[-473,-237],[-224,-54]],[[55734,91409],[-172,-24],[-41,-389],[-523,95],[-74,-329],[-267,2],[-183,-421],[-278,-655],[-431,-831],[101,-202],[-97,-234],[-275,10],[-180,-554],[17,-784],[177,-300],[-92,-694],[-231,-405],[-122,-341]],[[52328,85032],[-371,-138],[-384,301]],[[51474,85830],[-88,1363],[256,381]],[[65352,60997],[1,-238],[-134,-165]],[[64880,60451],[-128,-34]],[[64752,60417],[-91,413],[-217,975]],[[64444,61805],[833,591],[185,1182],[-127,418]],[[65945,64688],[203,-78],[165,-107]],[[68734,64727],[-83,424],[-215,450]],[[28212,55535],[-52,196],[-138,164]],[[27170,56020],[-6,-126],[111,-26]],[[55461,82736],[342,-67],[511,9]],[[56535,81053],[139,-515],[-29,-166],[-138,-69],[-252,-491],[71,-266],[-60,35]],[[56266,79581],[-264,227],[-200,-84],[-131,61],[-165,-127],[-140,210],[-114,-81],[-16,36]],[[86221,75560],[-120,-200],[-83,-202]],[[85048,72883],[-135,112],[-34,-111]],[[84641,73095],[76,260],[66,69]],[[84829,73851],[-18,96],[-163,65]],[[86288,75628],[39,-104]],[[64246,66009],[84,-185],[5,-346]],[[64274,65130],[-77,-42],[-84,117]],[[56308,78869],[120,127],[172,-65],[178,-3],[129,-144],[95,91],[205,56],[69,139],[118,0]],[[57842,77455],[124,-109],[131,95],[126,-101]],[[56293,76715],[-51,103],[65,99],[-69,74],[-87,-133],[-162,172],[-22,244],[-169,139],[-31,188],[-151,232]],[[81143,94175],[251,112],[141,-379]],[[84237,94144],[590,-104],[443,4]],[[97224,91732],[123,262],[886,-165]],[[96192,85904],[-126,219],[-268,-253]],[[95032,82989],[-486,-302],[-96,-674]],[[93543,84472],[14,276],[432,132]],[[95182,86999],[-705,-649],[-227,727]],[[90412,85637],[-914,-175],[-899,-1153]],[[88378,82339],[178,295],[305,-38]],[[89262,81946],[9,-503],[-217,-590]],[[60617,78409],[9,262],[143,165],[269,43],[44,197],[-62,326],[113,310],[-3,173],[-410,192],[-162,-6],[-172,277],[-213,-94],[-352,208],[6,116],[-99,256],[-222,29],[-23,183],[70,120],[-178,334],[-288,-57],[-84,30],[-70,-134],[-104,23]],[[58639,91676],[286,206],[456,-358],[761,-140],[1050,-668],[213,-281],[18,-393],[-308,-311],[-454,-157],[-1240,449],[-204,-75],[453,-433]],[[59670,89515],[18,-274],[18,-604]],[[59706,88637],[358,-180],[217,-153],[36,286]],[[60317,88590],[-168,254],[177,224]],[[60998,88700],[233,144],[-186,433]],[[62654,90499],[1,-328],[219,-203]],[[63371,90473],[580,282],[970,507]],[[69038,93080],[183,537],[206,116]],[[69427,93733],[736,-156],[57,-328]],[[70444,91717],[222,593],[-361,482]],[[72363,94093],[483,119],[669,-26]],[[58449,49909],[110,-333],[-16,-348],[-80,-74]],[[58216,49787],[67,-60],[166,182]],[[61883,60238],[-37,252],[-83,178]],[[60335,65400],[-77,306],[-81,132]],[[63741,66597],[190,-249],[16,-243]],[[64444,61805],[-801,-226],[-259,-266],[-199,-620],[-130,-99],[-70,197],[-106,-30],[-269,60],[-50,59],[-321,-14],[-75,-53],[-114,153],[-74,-290],[28,-249],[-121,-189]],[[56351,57163],[3,143],[-102,174],[-3,343],[-58,228],[-98,-34],[28,217],[72,246],[-32,245],[92,181],[-58,138],[73,365],[127,435],[240,-41],[-14,2345]],[[59433,56242],[1,-71]],[[59434,56171],[-39,12],[5,294],[-33,203],[-143,233],[-34,426],[34,436],[-129,41],[-19,-132],[-167,-30],[67,-173],[23,-355],[-152,-324],[-138,-426],[-144,-61],[-233,345],[-105,-122],[-29,-172],[-143,-112],[-9,-122],[-277,0],[-38,122],[-200,20],[-100,-101],[-77,51],[-143,344],[-48,163],[-200,-81],[-76,-274],[-72,-528],[-95,-111],[-85,-65]],[[56635,55672],[-23,28]],[[59445,53091],[-171,-272],[-195,1],[-224,-138],[-176,132],[-115,-161]],[[56824,55442],[-189,230]],[[59434,56171],[3,-460]],[[25613,58487],[-31,-139]],[[62075,57243],[54,-245],[125,-247]],[[63596,57321],[-2,-9],[-1,-244],[0,-596],[0,-308],[-125,-363],[-194,-493]],[[34889,53069],[109,-351],[-49,-254],[-24,-270],[-71,-248]],[[56266,79581],[-77,-154],[-55,-238]],[[58908,34785],[-56,-263],[-163,-63],[-166,320],[-2,204],[76,222],[26,172],[80,42],[140,-108]],[[60041,71744],[74,129],[75,130],[15,329],[91,-115],[306,165],[147,-112],[229,2],[320,222],[149,-10],[316,92]],[[68841,72526],[156,598],[-60,440],[-204,140],[72,261],[232,-28],[132,326],[89,380],[371,137],[-58,-274],[40,-164],[114,15]],[[65546,74986],[313,8],[-45,297],[237,204],[234,343],[374,-312],[30,-471],[106,-121],[301,27],[93,-108],[137,-609],[317,-408],[181,-278],[291,-289],[369,-253],[-7,-362]],[[53083,72381],[-139,-290],[-2,-273]],[[58441,72005],[-192,-70],[-268,314]],[[57981,72249],[-303,-11],[-165,588]],[[59768,75418],[485,-417],[399,-228]],[[57321,74302],[-87,276],[3,121]],[[59099,45126],[-157,177],[-177,100],[-111,99],[-116,150]],[[58388,46397],[-161,331],[-55,342]],[[58449,49909],[98,71],[304,-7],[566,45]],[[30523,76389],[-147,-351],[-47,-133]],[[30377,75084],[-133,11],[-205,-103]],[[29172,73738],[-61,30],[-91,148]],[[29077,73598],[69,-105],[5,-223]],[[28966,72994],[-142,225],[-33,491]],[[28797,73080],[-183,93],[191,-191]],[[27672,65472],[-83,-75],[-137,72]],[[27408,65728],[-105,136],[-148,508]],[[26747,68267],[-108,90],[-281,-268]],[[26309,68119],[-135,275],[-174,147]],[[25227,68491],[-114,-92],[50,-157]],[[24755,67801],[-207,312],[-242,-73]],[[16564,70932],[-71,95],[-33,324]],[[16460,71351],[-270,594],[-231,821],[10,137],[-123,195],[-215,495],[-38,482],[-148,323],[61,489],[-10,507],[-89,453],[109,557]],[[15516,76404],[34,536],[33,536]],[[15583,77476],[-50,792],[-88,506],[-80,274],[33,115],[402,-200],[148,-558]],[[15948,78405],[69,156],[-45,484],[-94,485]],[[10396,86079],[-385,-51],[-546,272]],[[8164,85656],[-308,-126],[-39,348]],[[7158,84934],[-299,-248],[-278,-180]],[[4985,85596],[50,216],[-179,211]],[[4541,89915],[-38,-296],[586,23]],[[4864,90008],[-342,225],[-197,296]],[[30102,56752],[-123,-344],[105,-468]],[[31762,56607],[213,-74],[155,185]],[[63521,58853],[-122,-33],[-83,35]],[[63153,58610],[-177,-114],[-233,-30]],[[62539,58233],[-43,-150],[-137,13]],[[64752,60417],[-201,-158]],[[57838,31217],[-210,-269],[-290,-229]],[[58175,37528],[113,-7],[134,-100],[94,71],[148,-59]],[[58409,41417],[-210,-81],[-159,-235],[-33,-205],[-100,-46],[-241,-486],[-154,-383],[-94,-13],[-90,68],[-311,65]]]} diff --git a/edit/examples/device-orientation-require.js b/edit/examples/device-orientation-require.js new file mode 100644 index 0000000000..978d90f1b2 --- /dev/null +++ b/edit/examples/device-orientation-require.js @@ -0,0 +1,7 @@ +goog.require('ol.DeviceOrientation'); +goog.require('ol.Map'); +goog.require('ol.RendererHints'); +goog.require('ol.View2D'); +goog.require('ol.dom.Input'); +goog.require('ol.layer.Tile'); +goog.require('ol.source.OSM'); diff --git a/edit/examples/device-orientation.html b/edit/examples/device-orientation.html new file mode 100644 index 0000000000..0dfc54f789 --- /dev/null +++ b/edit/examples/device-orientation.html @@ -0,0 +1,63 @@ + + + + + + + + + + + Device-Orientation example + + + + + +
+ +
+
+
+
+
+ +
+ +
+

Device orientation example

+ +

α :

+

β :

+

γ :

+

heading :

+

Listen to DeviceOrientation events

+
+

See the device-orientation.js source to see how this is done.

+
+
orientation, openstreetmap
+
+ +
+ +
+ + + + + + diff --git a/edit/examples/device-orientation.js b/edit/examples/device-orientation.js new file mode 100644 index 0000000000..6711039c76 --- /dev/null +++ b/edit/examples/device-orientation.js @@ -0,0 +1,38 @@ +var map = new ol.Map({ + layers: [ + new ol.layer.Tile({ + source: new ol.source.OSM() + }) + ], + renderers: ol.RendererHints.createFromQueryData(), + target: 'map', + view: new ol.View2D({ + center: [0, 0], + zoom: 2 + }) +}); +var view = map.getView(); + +var deviceOrientation = new ol.DeviceOrientation(); +var track = new ol.dom.Input(document.getElementById('track')); +track.bindTo('checked', deviceOrientation, 'tracking'); + +deviceOrientation.on('change', function(event) { + document.getElementById('alpha').innerHTML = event.target.getAlpha(); + document.getElementById('beta').innerHTML = event.target.getBeta(); + document.getElementById('gamma').innerHTML = event.target.getGamma(); + document.getElementById('heading').innerHTML = event.target.getHeading(); +}); + +// tilt the map +deviceOrientation.on(['change:beta', 'change:gamma'], function(event) { + var center = view.getCenter(); + var resolution = view.getResolution(); + var beta = event.target.getBeta() || 0; + var gamma = event.target.getGamma() || 0; + + center[0] -= resolution * gamma * 25; + center[1] += resolution * beta * 25; + + view.setCenter(center); +}); diff --git a/master/examples/full-screen-require.js b/edit/examples/drag-rotate-and-zoom-require.js similarity index 53% rename from master/examples/full-screen-require.js rename to edit/examples/drag-rotate-and-zoom-require.js index be7a9b1a84..acc2313713 100644 --- a/master/examples/full-screen-require.js +++ b/edit/examples/drag-rotate-and-zoom-require.js @@ -1,6 +1,7 @@ -goog.require('ol.Coordinate'); goog.require('ol.Map'); goog.require('ol.RendererHints'); goog.require('ol.View2D'); -goog.require('ol.layer.TileLayer'); +goog.require('ol.interaction'); +goog.require('ol.interaction.DragRotateAndZoom'); +goog.require('ol.layer.Tile'); goog.require('ol.source.MapQuestOpenAerial'); diff --git a/edit/examples/drag-rotate-and-zoom.html b/edit/examples/drag-rotate-and-zoom.html new file mode 100644 index 0000000000..a59d2c1f5b --- /dev/null +++ b/edit/examples/drag-rotate-and-zoom.html @@ -0,0 +1,57 @@ + + + + + + + + + + + Drag rotate and zoom example + + + + + +
+ +
+
+
+
+
+ +
+ +
+

Drag rotate and zoom example

+

A single interaction to drag, rotate, and zoom.

+
+

Shift + Drag to rotate and zoom the map around its center.

+

See the drag-rotate-and-zoom.js source to see how this is done.

+
+
drag, rotate, zoom, interaction
+
+ +
+ +
+ + + + + + diff --git a/edit/examples/drag-rotate-and-zoom.js b/edit/examples/drag-rotate-and-zoom.js new file mode 100644 index 0000000000..c1a9ff67c8 --- /dev/null +++ b/edit/examples/drag-rotate-and-zoom.js @@ -0,0 +1,16 @@ +var map = new ol.Map({ + interactions: ol.interaction.defaults().extend([ + new ol.interaction.DragRotateAndZoom() + ]), + layers: [ + new ol.layer.Tile({ + source: new ol.source.MapQuestOpenAerial() + }) + ], + renderers: ol.RendererHints.createFromQueryData(), + target: 'map', + view: new ol.View2D({ + center: [0, 0], + zoom: 2 + }) +}); diff --git a/master/examples/epsg-4326-require.js b/edit/examples/epsg-4326-require.js similarity index 54% rename from master/examples/epsg-4326-require.js rename to edit/examples/epsg-4326-require.js index 425de5f5a7..e120b7c0e6 100644 --- a/master/examples/epsg-4326-require.js +++ b/edit/examples/epsg-4326-require.js @@ -1,9 +1,8 @@ -goog.require('ol.Coordinate'); goog.require('ol.Map'); goog.require('ol.RendererHint'); goog.require('ol.View2D'); +goog.require('ol.control'); goog.require('ol.control.ScaleLine'); goog.require('ol.control.ScaleLineUnits'); -goog.require('ol.control.defaults'); -goog.require('ol.layer.TileLayer'); -goog.require('ol.source.TiledWMS'); +goog.require('ol.layer.Tile'); +goog.require('ol.source.TileWMS'); diff --git a/master/examples/epsg-4326.html b/edit/examples/epsg-4326.html similarity index 52% rename from master/examples/epsg-4326.html rename to edit/examples/epsg-4326.html index a845d8f468..294ef3126f 100644 --- a/master/examples/epsg-4326.html +++ b/edit/examples/epsg-4326.html @@ -4,9 +4,10 @@ - - - + + + + EPSG:4326 example @@ -14,10 +15,12 @@